@hotmeshio/long-tail 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (615) hide show
  1. package/README.md +118 -173
  2. package/build/examples/seed.js +1 -1
  3. package/build/examples/workflows/basic-echo/activities.d.ts +2 -2
  4. package/build/examples/workflows/basic-echo/activities.js +7 -7
  5. package/build/examples/workflows/basic-echo/index.js +1 -1
  6. package/build/examples/workflows/kitchen-sink/index.js +2 -2
  7. package/build/index.d.ts +12 -10
  8. package/build/index.js +15 -12
  9. package/build/lib/db/index.d.ts +18 -0
  10. package/build/{services → lib}/db/index.js +9 -0
  11. package/build/{services → lib}/db/migrate.js +3 -3
  12. package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
  13. package/build/{services → lib}/telemetry/honeycomb.js +2 -2
  14. package/build/modules/defaults.d.ts +2 -0
  15. package/build/modules/defaults.js +3 -1
  16. package/build/routes/controlplane.js +1 -1
  17. package/build/routes/dba.js +4 -0
  18. package/build/routes/docs.d.ts +2 -0
  19. package/build/routes/docs.js +87 -0
  20. package/build/routes/escalations/bulk.js +120 -202
  21. package/build/routes/escalations/resolve.js +1 -1
  22. package/build/routes/escalations/single.js +1 -1
  23. package/build/routes/files.js +1 -1
  24. package/build/routes/index.js +2 -0
  25. package/build/routes/insight.js +2 -1
  26. package/build/routes/mcp.js +3 -2
  27. package/build/routes/oauth.js +1 -1
  28. package/build/routes/settings.js +4 -4
  29. package/build/routes/workflows/discovery.js +3 -3
  30. package/build/routes/workflows/invocation.js +1 -1
  31. package/build/routes/yaml-workflows/crud.js +1 -1
  32. package/build/routes/yaml-workflows/deployment.js +25 -0
  33. package/build/services/auth/bot-api-key.js +1 -1
  34. package/build/services/auth/index.d.ts +4 -0
  35. package/build/services/auth/index.js +17 -0
  36. package/build/services/auth/service-token.js +1 -1
  37. package/build/services/config/provider.js +1 -1
  38. package/build/services/config/read.js +1 -1
  39. package/build/services/config/write.js +1 -1
  40. package/build/services/controlplane/index.js +3 -4
  41. package/build/services/controlplane/quorum-bridge.js +2 -2
  42. package/build/services/cron/index.js +4 -5
  43. package/build/services/dba.d.ts +4 -0
  44. package/build/services/dba.js +3 -6
  45. package/build/services/escalation/bulk.js +1 -1
  46. package/build/services/escalation/crud.js +1 -1
  47. package/build/services/escalation/queries.js +1 -1
  48. package/build/services/export/client.js +2 -5
  49. package/build/services/export/index.js +14 -2
  50. package/build/services/hotmesh-utils.js +1 -1
  51. package/build/services/iam/bots.js +6 -12
  52. package/build/services/iam/context.d.ts +1 -1
  53. package/build/services/iam/context.js +5 -5
  54. package/build/services/iam/credentials.js +1 -1
  55. package/build/services/iam/ephemeral.js +8 -15
  56. package/build/services/iam/principal.js +3 -10
  57. package/build/services/iam/resolve.js +1 -1
  58. package/build/services/iam/sql.d.ts +10 -0
  59. package/build/services/iam/sql.js +42 -0
  60. package/build/services/insight/index.d.ts +1 -0
  61. package/build/services/insight/index.js +4 -6
  62. package/build/services/interceptor/activities/escalation.js +1 -1
  63. package/build/services/interceptor/activities/task.js +9 -6
  64. package/build/services/interceptor/activities/workflow.js +4 -5
  65. package/build/services/interceptor/activity-interceptor.d.ts +1 -1
  66. package/build/services/interceptor/activity-interceptor.js +5 -5
  67. package/build/services/interceptor/completion.js +1 -1
  68. package/build/services/interceptor/escalation.js +1 -1
  69. package/build/services/interceptor/index.js +4 -4
  70. package/build/services/interceptor/lifecycle.js +1 -1
  71. package/build/services/maintenance/index.js +4 -5
  72. package/build/services/mcp/adapter.js +1 -16
  73. package/build/services/mcp/client/connection.d.ts +1 -1
  74. package/build/services/mcp/client/connection.js +2 -2
  75. package/build/services/mcp/client/tools.js +1 -1
  76. package/build/services/mcp/db-server/index.js +1 -1
  77. package/build/services/mcp/db-server/tools.js +17 -4
  78. package/build/services/mcp/db.js +1 -1
  79. package/build/services/mcp/playwright-server/index.js +1 -1
  80. package/build/services/mcp/playwright-server/lifecycle.js +1 -1
  81. package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
  82. package/build/services/mcp/playwright-server/tools.js +1 -1
  83. package/build/services/mcp/register-tool.d.ts +11 -0
  84. package/build/services/mcp/register-tool.js +15 -0
  85. package/build/services/mcp/server.js +1 -1
  86. package/build/services/mcp/sql.d.ts +6 -0
  87. package/build/services/mcp/sql.js +34 -1
  88. package/build/services/mcp/workflow-compiler-server.js +1 -1
  89. package/build/services/mcp/workflow-server.js +1 -1
  90. package/build/services/mcp-runs/execution-builder.js +8 -6
  91. package/build/services/mcp-runs/queries.js +2 -2
  92. package/build/services/mcp-runs/sql.d.ts +4 -1
  93. package/build/services/mcp-runs/sql.js +23 -2
  94. package/build/services/namespace/index.js +1 -1
  95. package/build/services/oauth/db.js +9 -37
  96. package/build/services/oauth/index.js +1 -1
  97. package/build/services/oauth/providers/registry.js +1 -1
  98. package/build/services/oauth/sql.d.ts +7 -0
  99. package/build/services/oauth/sql.js +32 -0
  100. package/build/services/orchestrator/index.js +3 -3
  101. package/build/services/role/index.js +1 -1
  102. package/build/services/task/crud.js +1 -1
  103. package/build/services/task/process.js +1 -1
  104. package/build/services/task/resolve.js +1 -1
  105. package/build/services/user/auth.js +1 -1
  106. package/build/services/user/crud.js +1 -1
  107. package/build/services/user/rbac.js +1 -1
  108. package/build/services/user/roles.js +1 -1
  109. package/build/services/user/sql.d.ts +2 -0
  110. package/build/services/user/sql.js +3 -1
  111. package/build/services/yaml-workflow/db-utils.js +1 -1
  112. package/build/services/yaml-workflow/db.js +1 -1
  113. package/build/services/yaml-workflow/deployer-helpers.js +1 -1
  114. package/build/services/yaml-workflow/deployer.js +4 -4
  115. package/build/services/yaml-workflow/generator.js +1 -1
  116. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
  117. package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
  118. package/build/services/yaml-workflow/input-analyzer.js +16 -3
  119. package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
  120. package/build/services/yaml-workflow/pipeline/build/dag.js +10 -5
  121. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
  122. package/build/services/yaml-workflow/pipeline/extract.js +5 -3
  123. package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
  124. package/build/services/yaml-workflow/pipeline/index.js +22 -0
  125. package/build/services/yaml-workflow/pipeline/validate.js +2 -2
  126. package/build/services/yaml-workflow/workers/callbacks.js +1 -1
  127. package/build/services/yaml-workflow/workers/events.js +2 -2
  128. package/build/services/yaml-workflow/workers/register.js +8 -8
  129. package/build/start/adapters.js +7 -7
  130. package/build/start/index.js +4 -4
  131. package/build/start/server.js +1 -1
  132. package/build/start/workers.d.ts +1 -2
  133. package/build/start/workers.js +8 -7
  134. package/build/system/activities/claude-code.js +1 -1
  135. package/build/system/activities/file-storage.js +1 -1
  136. package/build/system/activities/knowledge.d.ts +58 -0
  137. package/build/system/activities/knowledge.js +128 -0
  138. package/build/system/activities/sql.d.ts +9 -0
  139. package/build/system/activities/sql.js +41 -0
  140. package/build/system/activities/triage/context.js +1 -1
  141. package/build/system/activities/triage/discovery.d.ts +2 -14
  142. package/build/system/activities/triage/discovery.js +5 -161
  143. package/build/system/activities/triage/llm.d.ts +1 -8
  144. package/build/system/activities/triage/llm.js +2 -28
  145. package/build/system/activities/triage/tools.d.ts +1 -17
  146. package/build/system/activities/triage/tools.js +8 -167
  147. package/build/system/index.js +5 -4
  148. package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
  149. package/build/system/mcp-servers/admin/escalations.js +149 -0
  150. package/build/system/mcp-servers/admin/index.d.ts +31 -0
  151. package/build/system/mcp-servers/admin/index.js +80 -0
  152. package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
  153. package/build/system/mcp-servers/admin/maintenance.js +58 -0
  154. package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
  155. package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
  156. package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
  157. package/build/system/mcp-servers/admin/schemas.js +177 -0
  158. package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
  159. package/build/system/mcp-servers/admin/tasks.js +112 -0
  160. package/build/system/mcp-servers/admin/users.d.ts +5 -0
  161. package/build/system/mcp-servers/admin/users.js +167 -0
  162. package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
  163. package/build/system/mcp-servers/admin/workflow-config.js +118 -0
  164. package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
  165. package/build/system/mcp-servers/admin/workflows.js +138 -0
  166. package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
  167. package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
  168. package/build/system/mcp-servers/claude-code.js +1 -1
  169. package/build/system/mcp-servers/db-query/index.js +1 -1
  170. package/build/system/mcp-servers/db-query/tools.js +17 -4
  171. package/build/system/mcp-servers/docs.d.ts +5 -0
  172. package/build/system/mcp-servers/docs.js +147 -0
  173. package/build/system/mcp-servers/file-storage.js +1 -1
  174. package/build/system/mcp-servers/http-fetch.js +1 -1
  175. package/build/system/mcp-servers/human-queue.js +1 -1
  176. package/build/system/mcp-servers/knowledge.d.ts +4 -0
  177. package/build/system/mcp-servers/knowledge.js +137 -0
  178. package/build/system/mcp-servers/oauth.js +1 -1
  179. package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
  180. package/build/system/mcp-servers/playwright/index.js +1 -1
  181. package/build/system/mcp-servers/playwright/schemas.d.ts +19 -8
  182. package/build/system/mcp-servers/playwright/schemas.js +3 -0
  183. package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
  184. package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
  185. package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
  186. package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
  187. package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
  188. package/build/system/mcp-servers/playwright-cli/index.js +1 -1
  189. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +28 -28
  190. package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
  191. package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
  192. package/build/system/mcp-servers/playwright-cli/tools-capture.js +4 -2
  193. package/build/system/mcp-servers/translation.d.ts +14 -0
  194. package/build/system/mcp-servers/translation.js +130 -0
  195. package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
  196. package/build/system/mcp-servers/vision-prompts.js +9 -0
  197. package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
  198. package/build/system/mcp-servers/vision.js +221 -0
  199. package/build/system/mcp-servers/workflow-compiler.js +1 -1
  200. package/build/system/mcp-servers/workflow.js +1 -1
  201. package/build/system/seed/index.js +13 -2
  202. package/build/system/seed/server-definitions.d.ts +1954 -322
  203. package/build/system/seed/server-definitions.js +65 -34
  204. package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
  205. package/build/system/seed/tool-manifests-admin.js +45 -0
  206. package/build/system/seed/tool-manifests-browser.d.ts +1 -1
  207. package/build/system/seed/tool-manifests-browser.js +3 -3
  208. package/build/system/seed/tool-manifests-data.d.ts +62 -21
  209. package/build/system/seed/tool-manifests-data.js +55 -17
  210. package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
  211. package/build/system/seed/tool-manifests-knowledge.js +94 -0
  212. package/build/system/workflows/mcp-deterministic/index.js +1 -1
  213. package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
  214. package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
  215. package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
  216. package/build/system/workflows/mcp-query/activities/llm.js +2 -27
  217. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
  218. package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
  219. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
  220. package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
  221. package/build/system/workflows/mcp-query/index.js +55 -5
  222. package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
  223. package/build/system/workflows/mcp-query/prompts.js +5 -32
  224. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
  225. package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
  226. package/build/system/workflows/mcp-query/types.d.ts +2 -10
  227. package/build/system/workflows/mcp-query/types.js +0 -1
  228. package/build/system/workflows/mcp-query-router/index.js +1 -1
  229. package/build/system/workflows/mcp-triage/index.d.ts +2 -2
  230. package/build/system/workflows/mcp-triage/index.js +39 -7
  231. package/build/system/workflows/mcp-triage/prompts.js +7 -14
  232. package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
  233. package/build/system/workflows/mcp-triage-router/index.js +1 -1
  234. package/build/system/workflows/shared/discovery.d.ts +35 -0
  235. package/build/system/workflows/shared/discovery.js +175 -0
  236. package/build/system/workflows/shared/index.d.ts +7 -0
  237. package/build/system/workflows/shared/index.js +18 -0
  238. package/build/system/workflows/shared/llm-caller.d.ts +8 -0
  239. package/build/system/workflows/shared/llm-caller.js +31 -0
  240. package/build/system/workflows/shared/prompts.d.ts +2 -0
  241. package/build/system/workflows/shared/prompts.js +32 -0
  242. package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
  243. package/build/system/workflows/shared/strategy-advisors.js +109 -0
  244. package/build/system/workflows/shared/tool-executor.d.ts +11 -0
  245. package/build/system/workflows/shared/tool-executor.js +111 -0
  246. package/build/system/workflows/shared/tool-loader.d.ts +19 -0
  247. package/build/system/workflows/shared/tool-loader.js +94 -0
  248. package/build/system/workflows/shared/types.d.ts +9 -0
  249. package/build/system/workflows/shared/types.js +2 -0
  250. package/build/system/workflows/tool-result-guard.d.ts +14 -0
  251. package/build/system/workflows/tool-result-guard.js +78 -0
  252. package/build/tsconfig.tsbuildinfo +1 -1
  253. package/build/types/user.d.ts +2 -0
  254. package/build/vitest.config.d.ts +1 -1
  255. package/build/vitest.integration.config.d.ts +1 -1
  256. package/build/workers/index.js +2 -8
  257. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js +2 -0
  258. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js.map +1 -0
  259. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js +2 -0
  260. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js.map +1 -0
  261. package/dashboard/dist/assets/BotPicker-C51nKFEu.js +2 -0
  262. package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-C51nKFEu.js.map} +1 -1
  263. package/dashboard/dist/assets/CollapsibleSection-BSyfd8uL.js +2 -0
  264. package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-BSyfd8uL.js.map} +1 -1
  265. package/dashboard/dist/assets/ConfirmDeleteModal-CBdhia5T.js +2 -0
  266. package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CBdhia5T.js.map} +1 -1
  267. package/dashboard/dist/assets/CopyableId-dGlewBCS.js +2 -0
  268. package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-dGlewBCS.js.map} +1 -1
  269. package/dashboard/dist/assets/CredentialsPage-CoBNFSAu.js +2 -0
  270. package/dashboard/dist/assets/{CredentialsPage-Ikzsot0w.js.map → CredentialsPage-CoBNFSAu.js.map} +1 -1
  271. package/dashboard/dist/assets/CustomDurationPicker-BataWFj8.js +2 -0
  272. package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-BataWFj8.js.map} +1 -1
  273. package/dashboard/dist/assets/DataTable-B3uf5CCo.js +2 -0
  274. package/dashboard/dist/assets/DataTable-B3uf5CCo.js.map +1 -0
  275. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js +2 -0
  276. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js.map +1 -0
  277. package/dashboard/dist/assets/EmptyState-BChBJNGS.js +2 -0
  278. package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BChBJNGS.js.map} +1 -1
  279. package/dashboard/dist/assets/EscalationsOverview-CxUv8xjG.js +2 -0
  280. package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-CxUv8xjG.js.map} +1 -1
  281. package/dashboard/dist/assets/EventTable-CVt8B0BZ.js +2 -0
  282. package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-CVt8B0BZ.js.map} +1 -1
  283. package/dashboard/dist/assets/FilterBar-CShf0oe7.js +2 -0
  284. package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CShf0oe7.js.map} +1 -1
  285. package/dashboard/dist/assets/McpOverview-CbaZRnJl.js +2 -0
  286. package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CbaZRnJl.js.map} +1 -1
  287. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js +5 -0
  288. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js.map +1 -0
  289. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js +2 -0
  290. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js.map +1 -0
  291. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js +2 -0
  292. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js.map +1 -0
  293. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js +2 -0
  294. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js.map +1 -0
  295. package/dashboard/dist/assets/Modal-CI5RBPOQ.js +2 -0
  296. package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-CI5RBPOQ.js.map} +1 -1
  297. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js +2 -0
  298. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js.map +1 -0
  299. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js +2 -0
  300. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js.map +1 -0
  301. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js +2 -0
  302. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js.map +1 -0
  303. package/dashboard/dist/assets/PriorityBadge-CQ0EsLTA.js +2 -0
  304. package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-CQ0EsLTA.js.map} +1 -1
  305. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js +2 -0
  306. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js.map +1 -0
  307. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js +2 -0
  308. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js.map +1 -0
  309. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js +2 -0
  310. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js.map +1 -0
  311. package/dashboard/dist/assets/RolePill-Crj4TH5p.js +2 -0
  312. package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-Crj4TH5p.js.map} +1 -1
  313. package/dashboard/dist/assets/RolesPage-C_RInUwS.js +2 -0
  314. package/dashboard/dist/assets/RolesPage-C_RInUwS.js.map +1 -0
  315. package/dashboard/dist/assets/RowActions-Cp5HyK_w.js +2 -0
  316. package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-Cp5HyK_w.js.map} +1 -1
  317. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js +2 -0
  318. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js.map +1 -0
  319. package/dashboard/dist/assets/StatCard-BKZLSgNV.js +2 -0
  320. package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-BKZLSgNV.js.map} +1 -1
  321. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js +2 -0
  322. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js.map +1 -0
  323. package/dashboard/dist/assets/StickyPagination-CTosgiU2.js +2 -0
  324. package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CTosgiU2.js.map} +1 -1
  325. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js +2 -0
  326. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js.map +1 -0
  327. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js +2 -0
  328. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js.map +1 -0
  329. package/dashboard/dist/assets/TaskQueuePill-BtJbZTT0.js +2 -0
  330. package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BtJbZTT0.js.map} +1 -1
  331. package/dashboard/dist/assets/TasksListPage-DtFLUEhg.js +2 -0
  332. package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-DtFLUEhg.js.map} +1 -1
  333. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js +2 -0
  334. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js.map +1 -0
  335. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js +2 -0
  336. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js.map +1 -0
  337. package/dashboard/dist/assets/UserName-DU9qeg13.js +2 -0
  338. package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-DU9qeg13.js.map} +1 -1
  339. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js +2 -0
  340. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js.map +1 -0
  341. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js +2 -0
  342. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js.map +1 -0
  343. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js +2 -0
  344. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js.map +1 -0
  345. package/dashboard/dist/assets/WorkflowsOverview-CPuvA4t3.js +2 -0
  346. package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-CPuvA4t3.js.map} +1 -1
  347. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js +2 -0
  348. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js.map +1 -0
  349. package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-BPiZXf2h.js} +2 -2
  350. package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-BPiZXf2h.js.map} +1 -1
  351. package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
  352. package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
  353. package/dashboard/dist/assets/escalation-DTY_OKRh.js +2 -0
  354. package/dashboard/dist/assets/escalation-DTY_OKRh.js.map +1 -0
  355. package/dashboard/dist/assets/escalation-columns-C91fHSkp.js +2 -0
  356. package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-C91fHSkp.js.map} +1 -1
  357. package/dashboard/dist/assets/helpers-DBUZ9pnG.js +2 -0
  358. package/dashboard/dist/assets/helpers-DBUZ9pnG.js.map +1 -0
  359. package/dashboard/dist/assets/index-BOeA-gfK.js +17 -0
  360. package/dashboard/dist/assets/{index-X85K5bHC.js.map → index-BOeA-gfK.js.map} +1 -1
  361. package/dashboard/dist/assets/index-BZ6K_kmL.js +3 -0
  362. package/dashboard/dist/assets/index-BZ6K_kmL.js.map +1 -0
  363. package/dashboard/dist/assets/index-Bpm0yeoi.js +2 -0
  364. package/dashboard/dist/assets/index-Bpm0yeoi.js.map +1 -0
  365. package/dashboard/dist/assets/index-BtOwLI0K.js +2 -0
  366. package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BtOwLI0K.js.map} +1 -1
  367. package/dashboard/dist/assets/index-CBF3ZvRZ.js +6 -0
  368. package/dashboard/dist/assets/index-CBF3ZvRZ.js.map +1 -0
  369. package/dashboard/dist/assets/index-CDWOfCmi.js +2 -0
  370. package/dashboard/dist/assets/index-CDWOfCmi.js.map +1 -0
  371. package/dashboard/dist/assets/index-Ce6sL__n.js +2 -0
  372. package/dashboard/dist/assets/index-Ce6sL__n.js.map +1 -0
  373. package/dashboard/dist/assets/index-DSzSoku1.js +283 -0
  374. package/dashboard/dist/assets/index-DSzSoku1.js.map +1 -0
  375. package/dashboard/dist/assets/index-D_qEAYrg.js +2 -0
  376. package/dashboard/dist/assets/index-D_qEAYrg.js.map +1 -0
  377. package/dashboard/dist/assets/index-gCy9XX3W.css +1 -0
  378. package/dashboard/dist/assets/mcp-BzVpaaKF.js +2 -0
  379. package/dashboard/dist/assets/{mcp-blCW6IL7.js.map → mcp-BzVpaaKF.js.map} +1 -1
  380. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js +2 -0
  381. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js.map +1 -0
  382. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DmXYJD19.js} +2 -2
  383. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DmXYJD19.js.map} +1 -1
  384. package/dashboard/dist/assets/namespaces-DoGa7jc7.js +2 -0
  385. package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-DoGa7jc7.js.map} +1 -1
  386. package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-wCdQ2Z7k.js} +2 -2
  387. package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-wCdQ2Z7k.js.map} +1 -1
  388. package/dashboard/dist/assets/settings-DDe_L7JT.js +2 -0
  389. package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-DDe_L7JT.js.map} +1 -1
  390. package/dashboard/dist/assets/tasks-3Hih8Bt7.js +2 -0
  391. package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-3Hih8Bt7.js.map} +1 -1
  392. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
  393. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
  394. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js → useNatsEvents-DeGKHFTX.js} +2 -2
  395. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js.map → useNatsEvents-DeGKHFTX.js.map} +1 -1
  396. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-B5dHec6Y.js} +2 -2
  397. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js.map → useYamlActivityEvents-B5dHec6Y.js.map} +1 -1
  398. package/dashboard/dist/assets/{users-tMvNyOo8.js → users-BTagPmGW.js} +2 -2
  399. package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-BTagPmGW.js.map} +1 -1
  400. package/dashboard/dist/assets/{vendor-icons-ZTAKVwGc.js → vendor-icons-DCLlGYO9.js} +112 -57
  401. package/dashboard/dist/assets/vendor-icons-DCLlGYO9.js.map +1 -0
  402. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  403. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  404. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
  405. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
  406. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-B20dR3NE.js} +2 -2
  407. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-B20dR3NE.js.map} +1 -1
  408. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js +2 -0
  409. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js.map +1 -0
  410. package/dashboard/dist/index.html +5 -5
  411. package/docs/api/dba.md +81 -0
  412. package/docs/api/escalations.md +575 -0
  413. package/docs/api/exports.md +170 -0
  414. package/docs/api/maintenance.md +93 -0
  415. package/docs/api/mcp-runs.md +128 -0
  416. package/docs/api/mcp-servers.md +195 -0
  417. package/docs/api/namespaces.md +48 -0
  418. package/docs/api/roles.md +390 -0
  419. package/docs/api/service-accounts.md +188 -0
  420. package/docs/api/settings.md +33 -0
  421. package/docs/api/tasks.md +167 -0
  422. package/docs/api/users.md +180 -0
  423. package/docs/api/workflows.md +616 -0
  424. package/docs/api/yaml-workflows.md +312 -0
  425. package/docs/architecture.md +221 -0
  426. package/docs/auth.md +181 -0
  427. package/docs/cloud.md +272 -0
  428. package/docs/compilation.md +136 -0
  429. package/docs/contributing.md +56 -0
  430. package/docs/dashboard.md +145 -0
  431. package/docs/data.md +478 -0
  432. package/docs/escalation-strategies.md +264 -0
  433. package/docs/events.md +251 -0
  434. package/docs/iam.md +222 -0
  435. package/docs/img/01-login.png +0 -0
  436. package/docs/img/02-dashboard-home.png +0 -0
  437. package/docs/img/03-processes-list.png +0 -0
  438. package/docs/img/04-escalations-list.png +0 -0
  439. package/docs/img/05-mcp-servers.png +0 -0
  440. package/docs/img/06-mcp-pipelines.png +0 -0
  441. package/docs/img/07-workflows-list.png +0 -0
  442. package/docs/img/compilation/01-query-submit.png +0 -0
  443. package/docs/img/compilation/02-mcp-servers.png +0 -0
  444. package/docs/img/compilation/03-query-completed.png +0 -0
  445. package/docs/img/compilation/04-wizard-original.png +0 -0
  446. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  447. package/docs/img/compilation/06-wizard-profile.png +0 -0
  448. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  449. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  450. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  451. package/docs/img/compilation/10-wizard-verify.png +0 -0
  452. package/docs/logging.md +110 -0
  453. package/docs/maintenance.md +221 -0
  454. package/docs/mcp.md +715 -0
  455. package/docs/oauth-and-delegation.md +469 -0
  456. package/docs/telemetry.md +144 -0
  457. package/docs/workflows.md +695 -0
  458. package/lib/db/schemas/015_knowledge.sql +23 -0
  459. package/package.json +8 -9
  460. package/build/services/db/index.d.ts +0 -3
  461. package/build/services/mcp/vision-server.d.ts +0 -15
  462. package/build/services/mcp/vision-server.js +0 -214
  463. package/build/system/mcp-servers/document-vision.js +0 -228
  464. package/build/system/mcp-servers/prompts.d.ts +0 -4
  465. package/build/system/mcp-servers/prompts.js +0 -10
  466. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
  467. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
  468. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
  469. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
  470. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
  471. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
  472. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
  473. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
  474. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
  475. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
  476. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
  477. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
  478. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
  479. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
  480. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
  481. package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
  482. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
  483. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  484. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
  485. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
  486. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
  487. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
  488. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
  489. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
  490. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
  491. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
  492. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
  493. package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
  494. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
  495. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
  496. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
  497. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
  498. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  499. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
  500. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
  501. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
  502. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
  503. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
  504. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
  505. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
  506. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  507. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
  508. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
  509. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  510. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
  511. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
  512. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
  513. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
  514. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
  515. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
  516. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
  517. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
  518. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
  519. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
  520. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
  521. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
  522. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
  523. package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
  524. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
  525. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
  526. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
  527. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
  528. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
  529. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
  530. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
  531. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
  532. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
  533. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
  534. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
  535. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
  536. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
  537. package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
  538. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
  539. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
  540. package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
  541. package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
  542. package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
  543. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
  544. package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
  545. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
  546. package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
  547. package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
  548. package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
  549. package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
  550. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
  551. package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
  552. package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
  553. package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
  554. package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
  555. package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
  556. package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
  557. package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
  558. package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
  559. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
  560. package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
  561. package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
  562. package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
  563. package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
  564. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
  565. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
  566. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
  567. package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
  568. package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
  569. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
  570. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  571. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  572. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
  573. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
  574. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
  575. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
  576. /package/build/{services → lib}/db/migrate.d.ts +0 -0
  577. /package/build/{services → lib}/events/index.d.ts +0 -0
  578. /package/build/{services → lib}/events/index.js +0 -0
  579. /package/build/{services → lib}/events/memory.d.ts +0 -0
  580. /package/build/{services → lib}/events/memory.js +0 -0
  581. /package/build/{services → lib}/events/nats.d.ts +0 -0
  582. /package/build/{services → lib}/events/nats.js +0 -0
  583. /package/build/{services → lib}/events/publish.d.ts +0 -0
  584. /package/build/{services → lib}/events/publish.js +0 -0
  585. /package/build/{services → lib}/events/socketio.d.ts +0 -0
  586. /package/build/{services → lib}/events/socketio.js +0 -0
  587. /package/build/{services → lib}/logger/index.d.ts +0 -0
  588. /package/build/{services → lib}/logger/index.js +0 -0
  589. /package/build/{services → lib}/logger/pino.d.ts +0 -0
  590. /package/build/{services → lib}/logger/pino.js +0 -0
  591. /package/build/{services → lib}/storage/index.d.ts +0 -0
  592. /package/build/{services → lib}/storage/index.js +0 -0
  593. /package/build/{services → lib}/storage/local.d.ts +0 -0
  594. /package/build/{services → lib}/storage/local.js +0 -0
  595. /package/build/{services → lib}/storage/s3.d.ts +0 -0
  596. /package/build/{services → lib}/storage/s3.js +0 -0
  597. /package/build/{services → lib}/storage/types.d.ts +0 -0
  598. /package/build/{services → lib}/storage/types.js +0 -0
  599. /package/build/{services → lib}/telemetry/index.d.ts +0 -0
  600. /package/build/{services → lib}/telemetry/index.js +0 -0
  601. /package/{services → lib}/db/README.md +0 -0
  602. /package/{services → lib}/db/schemas/001_schema.sql +0 -0
  603. /package/{services → lib}/db/schemas/002_seed.sql +0 -0
  604. /package/{services → lib}/db/schemas/003_workflow_discovery.sql +0 -0
  605. /package/{services → lib}/db/schemas/004_query_router.sql +0 -0
  606. /package/{services → lib}/db/schemas/005_triage_router.sql +0 -0
  607. /package/{services → lib}/db/schemas/006_oauth.sql +0 -0
  608. /package/{services → lib}/db/schemas/007_security.sql +0 -0
  609. /package/{services → lib}/db/schemas/008_bot_accounts.sql +0 -0
  610. /package/{services → lib}/db/schemas/009_audit_trail.sql +0 -0
  611. /package/{services → lib}/db/schemas/010_credential_providers.sql +0 -0
  612. /package/{services → lib}/db/schemas/011_system_workflow_configs.sql +0 -0
  613. /package/{services → lib}/db/schemas/012_drop_modality.sql +0 -0
  614. /package/{services → lib}/db/schemas/013_execute_as.sql +0 -0
  615. /package/{services → lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerYamlWorkflowTools = registerYamlWorkflowTools;
37
+ const yamlDb = __importStar(require("../../../services/yaml-workflow/db"));
38
+ const yamlGenerator = __importStar(require("../../../services/yaml-workflow/generator"));
39
+ const yamlDeployer = __importStar(require("../../../services/yaml-workflow/deployer"));
40
+ const yamlWorkers = __importStar(require("../../../services/yaml-workflow/workers"));
41
+ const task_1 = require("../../../services/task");
42
+ const schemas_1 = require("./schemas");
43
+ function registerYamlWorkflowTools(server) {
44
+ // mirrors GET /api/yaml-workflows
45
+ server.registerTool('list_yaml_workflows', {
46
+ title: 'List Pipeline Workflows',
47
+ description: 'List compiled YAML workflows with optional filters by status, ' +
48
+ 'namespace, or search term. Returns name, status, source, and activity count.',
49
+ inputSchema: schemas_1.listYamlWorkflowsSchema,
50
+ }, async (args) => {
51
+ const { workflows, total } = await yamlDb.listYamlWorkflows({
52
+ status: args.status,
53
+ app_id: args.app_id,
54
+ search: args.search,
55
+ source_workflow_id: args.source_workflow_id,
56
+ limit: args.limit,
57
+ offset: args.offset,
58
+ });
59
+ return {
60
+ content: [{
61
+ type: 'text',
62
+ text: JSON.stringify({
63
+ total,
64
+ count: workflows.length,
65
+ workflows: workflows.map((w) => ({
66
+ id: w.id,
67
+ name: w.name,
68
+ app_id: w.app_id,
69
+ status: w.status,
70
+ source_workflow_type: w.source_workflow_type,
71
+ graph_topic: w.graph_topic,
72
+ activity_count: w.activity_manifest?.filter((a) => a.type === 'worker').length ?? 0,
73
+ tags: w.tags,
74
+ created_at: w.created_at,
75
+ })),
76
+ }),
77
+ }],
78
+ };
79
+ });
80
+ // mirrors GET /api/yaml-workflows/:id
81
+ server.registerTool('get_yaml_workflow', {
82
+ title: 'Get Pipeline Workflow',
83
+ description: 'Inspect a compiled workflow by ID. Returns the activity manifest, ' +
84
+ 'input/output schemas, YAML content, and provenance.',
85
+ inputSchema: schemas_1.getYamlWorkflowSchema,
86
+ }, async (args) => {
87
+ const wf = await yamlDb.getYamlWorkflow(args.id);
88
+ if (!wf) {
89
+ return {
90
+ content: [{ type: 'text', text: JSON.stringify({ error: 'YAML workflow not found' }) }],
91
+ isError: true,
92
+ };
93
+ }
94
+ return {
95
+ content: [{ type: 'text', text: JSON.stringify(wf) }],
96
+ };
97
+ });
98
+ // mirrors POST /api/yaml-workflows
99
+ server.registerTool('create_yaml_workflow', {
100
+ title: 'Compile Execution to Pipeline',
101
+ description: 'Generate a deterministic YAML workflow from a completed execution. ' +
102
+ 'Extracts the tool call sequence and replaces LLM reasoning with ' +
103
+ 'direct tool-to-tool data piping. Stored as a draft.',
104
+ inputSchema: schemas_1.createYamlWorkflowSchema,
105
+ }, async (args) => {
106
+ // Reject incomplete executions (same check as route)
107
+ const task = await (0, task_1.getTaskByWorkflowId)(args.workflow_id);
108
+ if (task) {
109
+ const milestones = task.milestones ?? [];
110
+ if (milestones.some((m) => m.name === 'rounds_exhausted')) {
111
+ return {
112
+ content: [{
113
+ type: 'text',
114
+ text: JSON.stringify({
115
+ error: 'Cannot compile: source execution exhausted its tool rounds without completing.',
116
+ }),
117
+ }],
118
+ isError: true,
119
+ };
120
+ }
121
+ }
122
+ const result = await yamlGenerator.generateYamlFromExecution({
123
+ workflowId: args.workflow_id,
124
+ taskQueue: args.task_queue,
125
+ workflowName: args.workflow_name,
126
+ name: args.name,
127
+ description: args.description,
128
+ compilationFeedback: args.compilation_feedback,
129
+ });
130
+ const mergedTags = [...new Set([
131
+ ...(result.tags || []),
132
+ ...(args.tags || []),
133
+ ])];
134
+ const record = await yamlDb.createYamlWorkflow({
135
+ name: args.name,
136
+ description: args.description,
137
+ app_id: result.appId,
138
+ yaml_content: result.yaml,
139
+ graph_topic: result.graphTopic,
140
+ input_schema: result.inputSchema,
141
+ output_schema: result.outputSchema,
142
+ activity_manifest: result.activityManifest,
143
+ tags: mergedTags,
144
+ source_workflow_id: args.workflow_id,
145
+ source_workflow_type: args.workflow_name,
146
+ original_prompt: result.originalPrompt || undefined,
147
+ category: result.category || undefined,
148
+ metadata: {
149
+ input_field_meta: result.inputFieldMeta,
150
+ ...(result.validationIssues?.length ? { validation_warnings: result.validationIssues } : {}),
151
+ },
152
+ });
153
+ return {
154
+ content: [{
155
+ type: 'text',
156
+ text: JSON.stringify({
157
+ id: record.id,
158
+ name: record.name,
159
+ app_id: record.app_id,
160
+ status: record.status,
161
+ activity_count: record.activity_manifest?.filter((a) => a.type === 'worker').length ?? 0,
162
+ }),
163
+ }],
164
+ };
165
+ });
166
+ // mirrors POST /api/yaml-workflows/:id/deploy
167
+ server.registerTool('deploy_yaml_workflow', {
168
+ title: 'Deploy Pipeline Workflow',
169
+ description: 'Deploy a compiled YAML workflow to HotMesh, activate it, and ' +
170
+ 'register workers. All sibling workflows sharing the same app_id ' +
171
+ 'are deployed together.',
172
+ inputSchema: schemas_1.deployYamlWorkflowSchema,
173
+ }, async (args) => {
174
+ const wf = await yamlDb.getYamlWorkflow(args.id);
175
+ if (!wf) {
176
+ return {
177
+ content: [{ type: 'text', text: JSON.stringify({ error: 'YAML workflow not found' }) }],
178
+ isError: true,
179
+ };
180
+ }
181
+ const deployVersion = wf.app_version || '1';
182
+ const siblings = await yamlDb.listYamlWorkflowsByAppId(wf.app_id);
183
+ await yamlDeployer.deployAppId(wf.app_id, deployVersion);
184
+ for (const sibling of siblings) {
185
+ await yamlDb.updateYamlWorkflowVersion(sibling.id, deployVersion);
186
+ await yamlWorkers.registerWorkersForWorkflow(sibling);
187
+ if (sibling.status === 'draft' || sibling.status === 'deployed') {
188
+ await yamlDb.updateYamlWorkflowStatus(sibling.id, 'active');
189
+ }
190
+ }
191
+ await yamlDb.markAppIdContentDeployed(wf.app_id);
192
+ const updated = await yamlDb.getYamlWorkflow(args.id);
193
+ return {
194
+ content: [{
195
+ type: 'text',
196
+ text: JSON.stringify({
197
+ deployed: true,
198
+ id: updated?.id,
199
+ name: updated?.name,
200
+ status: updated?.status,
201
+ app_id: updated?.app_id,
202
+ }),
203
+ }],
204
+ };
205
+ });
206
+ // mirrors POST /api/yaml-workflows/:id/invoke
207
+ server.registerTool('invoke_yaml_workflow', {
208
+ title: 'Invoke Pipeline Workflow',
209
+ description: 'Run a compiled YAML workflow. Deterministic — no LLM reasoning, ' +
210
+ 'just direct tool-to-tool data piping. Set sync=true to wait for result.',
211
+ inputSchema: schemas_1.invokeYamlWorkflowSchema,
212
+ }, async (args) => {
213
+ const wf = await yamlDb.getYamlWorkflow(args.id);
214
+ if (!wf) {
215
+ return {
216
+ content: [{ type: 'text', text: JSON.stringify({ error: 'YAML workflow not found' }) }],
217
+ isError: true,
218
+ };
219
+ }
220
+ if (wf.status !== 'active') {
221
+ return {
222
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Workflow must be active to invoke' }) }],
223
+ isError: true,
224
+ };
225
+ }
226
+ if (args.sync) {
227
+ const { job_id, result } = await yamlDeployer.invokeYamlWorkflowSync(wf.app_id, wf.graph_topic, args.data, args.timeout, wf.graph_topic);
228
+ return {
229
+ content: [{ type: 'text', text: JSON.stringify({ job_id, result }) }],
230
+ };
231
+ }
232
+ const jobId = await yamlDeployer.invokeYamlWorkflow(wf.app_id, wf.graph_topic, args.data, wf.graph_topic);
233
+ return {
234
+ content: [{ type: 'text', text: JSON.stringify({ job_id: jobId }) }],
235
+ };
236
+ });
237
+ }
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createClaudeCodeServer = createClaudeCodeServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
- const logger_1 = require("../../services/logger");
39
+ const logger_1 = require("../../lib/logger");
40
40
  const claudeCode = __importStar(require("../activities/claude-code"));
41
41
  // ── Schemas ──────────────────────────────────────────────────────────────────
42
42
  const executeTaskSchema = zod_1.z.object({
@@ -4,7 +4,7 @@ exports.createDbServer = createDbServer;
4
4
  exports.getDbServer = getDbServer;
5
5
  exports.stopDbServer = stopDbServer;
6
6
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
7
- const logger_1 = require("../../../services/logger");
7
+ const logger_1 = require("../../../lib/logger");
8
8
  const tools_1 = require("./tools");
9
9
  let server = null;
10
10
  /**
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerTools = registerTools;
37
- const db_1 = require("../../../services/db");
37
+ const db_1 = require("../../../lib/db");
38
38
  const taskService = __importStar(require("../../../services/task"));
39
39
  const escalationService = __importStar(require("../../../services/escalation"));
40
40
  const configService = __importStar(require("../../../services/config"));
@@ -190,16 +190,22 @@ function registerTools(instance) {
190
190
  // ── get_system_health ──────────────────────────────────────────
191
191
  instance.registerTool('get_system_health', {
192
192
  title: 'Get System Health',
193
- description: 'Overall system health snapshot: task counts by status, escalation counts by status, ' +
194
- 'active workflow types, and recent activity window.',
193
+ description: 'Full system overview: durable workflow execution counts by type (active/completed), ' +
194
+ 'task counts by status, escalation counts by status, recent activity window, ' +
195
+ 'MCP servers (with tool counts and tags), compiled workflow totals, and workflow configurations.',
195
196
  inputSchema: schemas_1.getSystemHealthSchema,
196
197
  }, async (_args) => {
197
198
  const pool = (0, db_1.getPool)();
198
- const [taskCounts, escalationCounts, activeTypes, recentActivity] = await Promise.all([
199
+ const [taskCounts, escalationCounts, activeTypes, recentActivity, mcpServers, mcpServerList, compiledWorkflows, workflowConfigs, durableWorkflows,] = await Promise.all([
199
200
  pool.query(sql_1.HEALTH_TASK_COUNTS),
200
201
  pool.query(sql_1.HEALTH_ESCALATION_COUNTS),
201
202
  pool.query(sql_1.HEALTH_ACTIVE_WORKFLOW_TYPES),
202
203
  pool.query(sql_1.HEALTH_RECENT_ACTIVITY),
204
+ pool.query(sql_1.HEALTH_MCP_SERVERS),
205
+ pool.query(sql_1.HEALTH_MCP_SERVER_LIST),
206
+ pool.query(sql_1.HEALTH_COMPILED_WORKFLOWS),
207
+ pool.query(sql_1.HEALTH_WORKFLOW_CONFIGS),
208
+ pool.query(sql_1.HEALTH_DURABLE_WORKFLOWS),
203
209
  ]);
204
210
  const tasksByStatus = {};
205
211
  for (const row of taskCounts.rows) {
@@ -213,10 +219,17 @@ function registerTools(instance) {
213
219
  content: [{
214
220
  type: 'text',
215
221
  text: JSON.stringify({
222
+ durable_workflows: durableWorkflows.rows,
216
223
  tasks: tasksByStatus,
217
224
  escalations: escalationsByStatus,
218
225
  active_workflow_types: activeTypes.rows.map((r) => r.workflow_type),
219
226
  recent_activity: recentActivity.rows[0],
227
+ mcp_servers: {
228
+ ...mcpServers.rows[0],
229
+ servers: mcpServerList.rows,
230
+ },
231
+ compiled_workflows: compiledWorkflows.rows[0],
232
+ workflow_configs: workflowConfigs.rows,
220
233
  }),
221
234
  }],
222
235
  };
@@ -0,0 +1,5 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function createDocsServer(options?: {
3
+ name?: string;
4
+ }): Promise<McpServer>;
5
+ export declare function stopDocsServer(): Promise<void>;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createDocsServer = createDocsServer;
37
+ exports.stopDocsServer = stopDocsServer;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
41
+ const zod_1 = require("zod");
42
+ const logger_1 = require("../../lib/logger");
43
+ // Resolve docs directory (works from ts-node root and compiled build/)
44
+ function docsDir() {
45
+ const candidates = [
46
+ path.join(__dirname, '..', '..', 'docs'),
47
+ path.join(__dirname, '..', '..', '..', 'docs'),
48
+ ];
49
+ for (const dir of candidates) {
50
+ if (fs.existsSync(dir))
51
+ return dir;
52
+ }
53
+ return candidates[0];
54
+ }
55
+ function listMarkdownFiles(dir, prefix = '') {
56
+ if (!fs.existsSync(dir))
57
+ return [];
58
+ const results = [];
59
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
60
+ const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
61
+ if (entry.isDirectory()) {
62
+ results.push(...listMarkdownFiles(path.join(dir, entry.name), rel));
63
+ }
64
+ else if (entry.name.endsWith('.md')) {
65
+ const content = fs.readFileSync(path.join(dir, entry.name), 'utf-8');
66
+ const firstLine = content.split('\n').find(l => l.startsWith('# '));
67
+ const title = firstLine ? firstLine.replace(/^#\s+/, '') : entry.name;
68
+ results.push({ path: rel, title });
69
+ }
70
+ }
71
+ return results;
72
+ }
73
+ const listDocsSchema = zod_1.z.object({});
74
+ const searchDocsSchema = zod_1.z.object({
75
+ query: zod_1.z.string().describe('Search term or phrase to find in documentation'),
76
+ });
77
+ const readDocSchema = zod_1.z.object({
78
+ path: zod_1.z.string().describe('Document path relative to docs/ (e.g. "mcp.md" or "api/tasks.md")'),
79
+ });
80
+ function registerTools(srv) {
81
+ srv.registerTool('list_docs', {
82
+ title: 'List Documentation',
83
+ description: 'List all available documentation files with their titles.',
84
+ inputSchema: listDocsSchema,
85
+ }, async () => {
86
+ const docs = listMarkdownFiles(docsDir());
87
+ return {
88
+ content: [{ type: 'text', text: JSON.stringify({ docs }) }],
89
+ };
90
+ });
91
+ srv.registerTool('search_docs', {
92
+ title: 'Search Documentation',
93
+ description: 'Search across all documentation for a keyword or phrase. Returns matching files with line context.',
94
+ inputSchema: searchDocsSchema,
95
+ }, async (args) => {
96
+ const dir = docsDir();
97
+ const files = listMarkdownFiles(dir);
98
+ const query = args.query.toLowerCase();
99
+ const matches = [];
100
+ for (const file of files) {
101
+ const content = fs.readFileSync(path.join(dir, file.path), 'utf-8');
102
+ const fileLines = content.split('\n');
103
+ const hits = [];
104
+ for (let i = 0; i < fileLines.length; i++) {
105
+ if (fileLines[i].toLowerCase().includes(query)) {
106
+ // Include surrounding context
107
+ const start = Math.max(0, i - 1);
108
+ const end = Math.min(fileLines.length, i + 2);
109
+ hits.push(fileLines.slice(start, end).join('\n'));
110
+ }
111
+ }
112
+ if (hits.length > 0) {
113
+ matches.push({ path: file.path, title: file.title, lines: hits.slice(0, 5) });
114
+ }
115
+ }
116
+ return {
117
+ content: [{ type: 'text', text: JSON.stringify({ query: args.query, matches }) }],
118
+ };
119
+ });
120
+ srv.registerTool('read_doc', {
121
+ title: 'Read Documentation',
122
+ description: 'Read the full content of a documentation file.',
123
+ inputSchema: readDocSchema,
124
+ }, async (args) => {
125
+ const filePath = path.join(docsDir(), args.path);
126
+ if (!fs.existsSync(filePath)) {
127
+ return {
128
+ content: [{ type: 'text', text: JSON.stringify({ error: `Document not found: ${args.path}` }) }],
129
+ };
130
+ }
131
+ const content = fs.readFileSync(filePath, 'utf-8');
132
+ return {
133
+ content: [{ type: 'text', text: JSON.stringify({ path: args.path, content }) }],
134
+ };
135
+ });
136
+ }
137
+ async function createDocsServer(options) {
138
+ const name = options?.name || 'long-tail-docs';
139
+ const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
140
+ registerTools(instance);
141
+ const docs = listMarkdownFiles(docsDir());
142
+ logger_1.loggerRegistry.info(`[lt-mcp:docs] ${name} ready (3 tools, ${docs.length} docs indexed)`);
143
+ return instance;
144
+ }
145
+ async function stopDocsServer() {
146
+ logger_1.loggerRegistry.info('[lt-mcp:docs] stopped');
147
+ }
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createFileStorageServer = createFileStorageServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
- const logger_1 = require("../../services/logger");
39
+ const logger_1 = require("../../lib/logger");
40
40
  const fileStorage = __importStar(require("../activities/file-storage"));
41
41
  const writeFileSchema = zod_1.z.object({
42
42
  path: zod_1.z.string().describe('File path relative to storage root'),
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createHttpFetchServer = createHttpFetchServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
- const logger_1 = require("../../services/logger");
39
+ const logger_1 = require("../../lib/logger");
40
40
  const http = __importStar(require("../activities/http"));
41
41
  const httpRequestSchema = zod_1.z.object({
42
42
  url: zod_1.z.string().describe('URL to request'),
@@ -39,7 +39,7 @@ exports.stopServer = stopServer;
39
39
  const crypto = __importStar(require("crypto"));
40
40
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
41
41
  const zod_1 = require("zod");
42
- const logger_1 = require("../../services/logger");
42
+ const logger_1 = require("../../lib/logger");
43
43
  const escalationService = __importStar(require("../../services/escalation"));
44
44
  let server = null;
45
45
  // ── Schemas (extracted to break TS2589 deep-instantiation in registerTool generics) ──
@@ -0,0 +1,4 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function createKnowledgeServer(options?: {
3
+ name?: string;
4
+ }): Promise<McpServer>;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createKnowledgeServer = createKnowledgeServer;
37
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
+ const zod_1 = require("zod");
39
+ const logger_1 = require("../../lib/logger");
40
+ const knowledge = __importStar(require("../activities/knowledge"));
41
+ const storeSchema = zod_1.z.object({
42
+ domain: zod_1.z.string().describe('Knowledge domain (namespace)'),
43
+ key: zod_1.z.string().describe('Unique key within domain'),
44
+ data: zod_1.z.record(zod_1.z.any()).describe('JSONB payload to store'),
45
+ tags: zod_1.z.array(zod_1.z.string()).optional().describe('Categorization tags'),
46
+ });
47
+ const getSchema = zod_1.z.object({
48
+ domain: zod_1.z.string().describe('Knowledge domain'),
49
+ key: zod_1.z.string().describe('Document key'),
50
+ });
51
+ const searchSchema = zod_1.z.object({
52
+ domain: zod_1.z.string().describe('Knowledge domain to search'),
53
+ query: zod_1.z.record(zod_1.z.any()).describe('JSONB containment query (e.g. {"type":"screenshot"})'),
54
+ tags: zod_1.z.array(zod_1.z.string()).optional().describe('Filter by tags (any match)'),
55
+ limit: zod_1.z.number().optional().describe('Max results (default 50, max 200)'),
56
+ });
57
+ const listSchema = zod_1.z.object({
58
+ domain: zod_1.z.string().describe('Knowledge domain'),
59
+ tags: zod_1.z.array(zod_1.z.string()).optional().describe('Filter by tags (any match)'),
60
+ limit: zod_1.z.number().optional().describe('Max results (default 50, max 200)'),
61
+ offset: zod_1.z.number().optional().describe('Pagination offset'),
62
+ });
63
+ const deleteSchema = zod_1.z.object({
64
+ domain: zod_1.z.string().describe('Knowledge domain'),
65
+ key: zod_1.z.string().describe('Document key to delete'),
66
+ });
67
+ const appendSchema = zod_1.z.object({
68
+ domain: zod_1.z.string().describe('Knowledge domain'),
69
+ key: zod_1.z.string().describe('Document key'),
70
+ path: zod_1.z.string().describe('JSONB path to array field (e.g. "screenshots" or "analysis.variations")'),
71
+ value: zod_1.z.any().refine((v) => v !== undefined, 'value is required').describe('Value to append to the array'),
72
+ });
73
+ function registerTools(server) {
74
+ server.registerTool('store_knowledge', {
75
+ title: 'Store Knowledge',
76
+ description: 'Store or update a knowledge entry. Upserts by domain+key: merges data and unions tags if the entry already exists.',
77
+ inputSchema: storeSchema,
78
+ }, async (args) => {
79
+ const result = await knowledge.storeKnowledge(args);
80
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
81
+ });
82
+ server.registerTool('get_knowledge', {
83
+ title: 'Get Knowledge',
84
+ description: 'Retrieve a single knowledge entry by domain and key.',
85
+ inputSchema: getSchema,
86
+ }, async (args) => {
87
+ const result = await knowledge.getKnowledge(args);
88
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
89
+ });
90
+ server.registerTool('search_knowledge', {
91
+ title: 'Search Knowledge',
92
+ description: 'Search knowledge entries using JSONB containment queries. The query object matches entries whose data contains the specified key-value pairs.',
93
+ inputSchema: searchSchema,
94
+ }, async (args) => {
95
+ const result = await knowledge.searchKnowledge(args);
96
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
97
+ });
98
+ server.registerTool('list_knowledge', {
99
+ title: 'List Knowledge',
100
+ description: 'List knowledge entries in a domain, optionally filtered by tags. Returns most recently updated first.',
101
+ inputSchema: listSchema,
102
+ }, async (args) => {
103
+ const result = await knowledge.listKnowledge(args);
104
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
105
+ });
106
+ server.registerTool('delete_knowledge', {
107
+ title: 'Delete Knowledge',
108
+ description: 'Delete a knowledge entry by domain and key.',
109
+ inputSchema: deleteSchema,
110
+ }, async (args) => {
111
+ const result = await knowledge.deleteKnowledge(args);
112
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
113
+ });
114
+ server.registerTool('list_domains', {
115
+ title: 'List Knowledge Domains',
116
+ description: 'List all knowledge domains with entry counts and last-updated timestamps.',
117
+ inputSchema: zod_1.z.object({}),
118
+ }, async () => {
119
+ const result = await knowledge.listDomains();
120
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
121
+ });
122
+ server.registerTool('append_knowledge', {
123
+ title: 'Append to Knowledge',
124
+ description: 'Append a value to an array field within a knowledge entry. Creates the entry and array if they do not exist.',
125
+ inputSchema: appendSchema,
126
+ }, async (args) => {
127
+ const result = await knowledge.appendKnowledge(args);
128
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
129
+ });
130
+ }
131
+ async function createKnowledgeServer(options) {
132
+ const name = options?.name || 'long-tail-knowledge';
133
+ const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
134
+ registerTools(instance);
135
+ logger_1.loggerRegistry.info(`[lt-mcp:knowledge] ${name} ready`);
136
+ return instance;
137
+ }
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createOAuthServer = createOAuthServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
- const logger_1 = require("../../services/logger");
39
+ const logger_1 = require("../../lib/logger");
40
40
  const oauth = __importStar(require("../activities/oauth"));
41
41
  const getAccessTokenSchema = zod_1.z.object({
42
42
  provider: zod_1.z.string().describe('OAuth provider name (google, github, microsoft, anthropic, etc.)'),
@@ -7,7 +7,7 @@ exports.resolvePage = resolvePage;
7
7
  exports.buildHandle = buildHandle;
8
8
  exports.stopPlaywrightServer = stopPlaywrightServer;
9
9
  const playwright_1 = require("playwright");
10
- const logger_1 = require("../../../services/logger");
10
+ const logger_1 = require("../../../lib/logger");
11
11
  const types_1 = require("./types");
12
12
  // ── Browser lifecycle ────────────────────────────────────────────────────────
13
13
  // Shared browser instance across tool calls within a single server lifetime.