@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
@@ -13,25 +13,25 @@ export declare const loginAndCaptureSchema: z.ZodObject<{
13
13
  }, "strip", z.ZodTypeAny, {
14
14
  password: string;
15
15
  url: string;
16
- username: string;
17
- submit_selector: string;
18
16
  username_selector: string;
19
17
  password_selector: string;
18
+ username: string;
19
+ submit_selector: string;
20
20
  timeout?: number | undefined;
21
- screenshot_path?: string | undefined;
22
21
  full_page?: boolean | undefined;
23
22
  wait_after_login?: string | undefined;
23
+ screenshot_path?: string | undefined;
24
24
  }, {
25
25
  password: string;
26
26
  url: string;
27
- username: string;
28
- submit_selector: string;
29
27
  username_selector: string;
30
28
  password_selector: string;
29
+ username: string;
30
+ submit_selector: string;
31
31
  timeout?: number | undefined;
32
- screenshot_path?: string | undefined;
33
32
  full_page?: boolean | undefined;
34
33
  wait_after_login?: string | undefined;
34
+ screenshot_path?: string | undefined;
35
35
  }>;
36
36
  export declare const capturePageSchema: z.ZodObject<{
37
37
  url: z.ZodString;
@@ -46,20 +46,20 @@ export declare const capturePageSchema: z.ZodObject<{
46
46
  url: string;
47
47
  timeout?: number | undefined;
48
48
  page_id?: string | undefined;
49
- screenshot_path?: string | undefined;
50
49
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
51
- wait_ms?: number | undefined;
52
50
  full_page?: boolean | undefined;
51
+ screenshot_path?: string | undefined;
53
52
  wait_for_selector?: string | undefined;
53
+ wait_ms?: number | undefined;
54
54
  }, {
55
55
  url: string;
56
56
  timeout?: number | undefined;
57
57
  page_id?: string | undefined;
58
- screenshot_path?: string | undefined;
59
58
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
60
- wait_ms?: number | undefined;
61
59
  full_page?: boolean | undefined;
60
+ screenshot_path?: string | undefined;
62
61
  wait_for_selector?: string | undefined;
62
+ wait_ms?: number | undefined;
63
63
  }>;
64
64
  export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
65
65
  login: z.ZodObject<{
@@ -74,19 +74,19 @@ export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
74
74
  }, "strip", z.ZodTypeAny, {
75
75
  password: string;
76
76
  url: string;
77
- username: string;
78
- submit_selector: string;
79
77
  username_selector: string;
80
78
  password_selector: string;
79
+ username: string;
80
+ submit_selector: string;
81
81
  timeout?: number | undefined;
82
82
  wait_after_login?: string | undefined;
83
83
  }, {
84
84
  password: string;
85
85
  url: string;
86
- username: string;
87
- submit_selector: string;
88
86
  username_selector: string;
89
87
  password_selector: string;
88
+ username: string;
89
+ submit_selector: string;
90
90
  timeout?: number | undefined;
91
91
  wait_after_login?: string | undefined;
92
92
  }>;
@@ -99,51 +99,51 @@ export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
99
99
  }, "strip", z.ZodTypeAny, {
100
100
  url: string;
101
101
  screenshot_path: string;
102
- wait_ms?: number | undefined;
103
102
  full_page?: boolean | undefined;
104
103
  wait_for_selector?: string | undefined;
104
+ wait_ms?: number | undefined;
105
105
  }, {
106
106
  url: string;
107
107
  screenshot_path: string;
108
- wait_ms?: number | undefined;
109
108
  full_page?: boolean | undefined;
110
109
  wait_for_selector?: string | undefined;
110
+ wait_ms?: number | undefined;
111
111
  }>, "many">;
112
112
  }, "strip", z.ZodTypeAny, {
113
113
  login: {
114
114
  password: string;
115
115
  url: string;
116
- username: string;
117
- submit_selector: string;
118
116
  username_selector: string;
119
117
  password_selector: string;
118
+ username: string;
119
+ submit_selector: string;
120
120
  timeout?: number | undefined;
121
121
  wait_after_login?: string | undefined;
122
122
  };
123
123
  pages: {
124
124
  url: string;
125
125
  screenshot_path: string;
126
- wait_ms?: number | undefined;
127
126
  full_page?: boolean | undefined;
128
127
  wait_for_selector?: string | undefined;
128
+ wait_ms?: number | undefined;
129
129
  }[];
130
130
  }, {
131
131
  login: {
132
132
  password: string;
133
133
  url: string;
134
- username: string;
135
- submit_selector: string;
136
134
  username_selector: string;
137
135
  password_selector: string;
136
+ username: string;
137
+ submit_selector: string;
138
138
  timeout?: number | undefined;
139
139
  wait_after_login?: string | undefined;
140
140
  };
141
141
  pages: {
142
142
  url: string;
143
143
  screenshot_path: string;
144
- wait_ms?: number | undefined;
145
144
  full_page?: boolean | undefined;
146
145
  wait_for_selector?: string | undefined;
146
+ wait_ms?: number | undefined;
147
147
  }[];
148
148
  }>;
149
149
  export declare const extractContentSchema: z.ZodObject<{
@@ -161,21 +161,21 @@ export declare const extractContentSchema: z.ZodObject<{
161
161
  timeout?: number | undefined;
162
162
  page_id?: string | undefined;
163
163
  selector?: string | undefined;
164
+ script?: string | undefined;
165
+ wait_for_selector?: string | undefined;
164
166
  wait_ms?: number | undefined;
165
167
  extract_links?: boolean | undefined;
166
168
  extract_metadata?: boolean | undefined;
167
- script?: string | undefined;
168
- wait_for_selector?: string | undefined;
169
169
  }, {
170
170
  url?: string | undefined;
171
171
  timeout?: number | undefined;
172
172
  page_id?: string | undefined;
173
173
  selector?: string | undefined;
174
+ script?: string | undefined;
175
+ wait_for_selector?: string | undefined;
174
176
  wait_ms?: number | undefined;
175
177
  extract_links?: boolean | undefined;
176
178
  extract_metadata?: boolean | undefined;
177
- script?: string | undefined;
178
- wait_for_selector?: string | undefined;
179
179
  }>;
180
180
  export declare const submitFormSchema: z.ZodObject<{
181
181
  url: z.ZodString;
@@ -202,8 +202,8 @@ export declare const submitFormSchema: z.ZodObject<{
202
202
  selector: string;
203
203
  }[];
204
204
  timeout?: number | undefined;
205
- screenshot_path?: string | undefined;
206
205
  full_page?: boolean | undefined;
206
+ screenshot_path?: string | undefined;
207
207
  wait_after_submit?: string | undefined;
208
208
  }, {
209
209
  url: string;
@@ -213,7 +213,7 @@ export declare const submitFormSchema: z.ZodObject<{
213
213
  selector: string;
214
214
  }[];
215
215
  timeout?: number | undefined;
216
- screenshot_path?: string | undefined;
217
216
  full_page?: boolean | undefined;
217
+ screenshot_path?: string | undefined;
218
218
  wait_after_submit?: string | undefined;
219
219
  }>;
@@ -19,7 +19,7 @@ exports.loginAndCaptureSchema = zod_1.z.object({
19
19
  exports.capturePageSchema = zod_1.z.object({
20
20
  url: zod_1.z.string().describe('URL to navigate to and capture'),
21
21
  screenshot_path: zod_1.z.string().optional()
22
- .describe('File path to save the screenshot PNG. If omitted, auto-derived from the URL path (e.g., /admin/users → screenshots/admin-users.png).'),
22
+ .describe('Storage path for the screenshot PNG (persisted to file storage). If omitted, auto-derived from the URL path (e.g., /admin/users → screenshots/admin-users.png). The screenshot is saved automatically — no separate write_file call is needed.'),
23
23
  page_id: zod_1.z.string().optional().describe('Reuse an existing page to preserve session (e.g., from login_and_capture)'),
24
24
  full_page: zod_1.z.boolean().optional().describe('Capture full scrollable page (default: true)'),
25
25
  wait_for_selector: zod_1.z.string().optional()
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerAuthTools = registerAuthTools;
37
37
  const path = __importStar(require("path"));
38
- const logger_1 = require("../../../services/logger");
38
+ const logger_1 = require("../../../lib/logger");
39
39
  const playwright_1 = require("../playwright");
40
40
  const schemas_1 = require("./schemas");
41
41
  const helpers_1 = require("./helpers");
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerCaptureTools = registerCaptureTools;
37
37
  const path = __importStar(require("path"));
38
- const logger_1 = require("../../../services/logger");
38
+ const logger_1 = require("../../../lib/logger");
39
39
  const playwright_1 = require("../playwright");
40
40
  const schemas_1 = require("./schemas");
41
41
  const helpers_1 = require("./helpers");
@@ -43,7 +43,8 @@ function registerCaptureTools(srv) {
43
43
  // capture_page
44
44
  srv.registerTool('capture_page', {
45
45
  title: 'Capture Page',
46
- description: 'Navigate to a URL and capture a screenshot in one call. ' +
46
+ description: 'Navigate to a URL, capture a screenshot, and save it to persistent file storage in one call. ' +
47
+ 'The returned `path` is the storage reference — no separate write_file call is needed. ' +
47
48
  'Optionally waits for a CSS selector or a fixed delay to ensure content is loaded. ' +
48
49
  'Pass page_id from a prior login_and_capture to reuse the authenticated session.',
49
50
  inputSchema: schemas_1.capturePageSchema,
@@ -102,6 +103,7 @@ function registerCaptureTools(srv) {
102
103
  url: page.url(),
103
104
  title: await page.title(),
104
105
  ...screenshot,
106
+ storage_ref: screenshot.path,
105
107
  _handle: (0, playwright_1.buildHandle)(pageId),
106
108
  }),
107
109
  }],
@@ -0,0 +1,14 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Create the Translation MCP server.
4
+ *
5
+ * Returns a fresh McpServer instance each time. The MCP SDK only allows
6
+ * one transport per server, so each consumer needs its own instance.
7
+ */
8
+ export declare function createTranslationServer(options?: {
9
+ name?: string;
10
+ }): Promise<McpServer>;
11
+ /**
12
+ * Stop a Translation MCP server instance.
13
+ */
14
+ export declare function stopTranslationServer(): Promise<void>;
@@ -0,0 +1,130 @@
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.createTranslationServer = createTranslationServer;
37
+ exports.stopTranslationServer = stopTranslationServer;
38
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
39
+ const zod_1 = require("zod");
40
+ const llm_1 = require("../../services/llm");
41
+ const defaults_1 = require("../../modules/defaults");
42
+ const logger_1 = require("../../lib/logger");
43
+ function TRANSLATE_SYSTEM_PROMPT(targetLanguage) {
44
+ return `You are a translation assistant. Translate the user's text to ${targetLanguage}. Return ONLY a JSON object: {"translated_content": "...", "source_language": "detected ISO code"}. No markdown, no explanation.`;
45
+ }
46
+ const translateContentSchema = zod_1.z.object({
47
+ content: zod_1.z.string().describe('The content text to translate'),
48
+ target_language: zod_1.z.string().describe('Target language code (e.g. "en", "es")'),
49
+ source_language: zod_1.z.string().optional().describe('Source language code (auto-detected if omitted)'),
50
+ });
51
+ function registerTools(srv) {
52
+ srv.registerTool('translate_content', {
53
+ title: 'Translate Content',
54
+ description: 'Translate content text to the target language. Returns the translated content and detected source language.',
55
+ inputSchema: translateContentSchema,
56
+ }, async (args) => {
57
+ const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
58
+ if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
59
+ return {
60
+ content: [{
61
+ type: 'text',
62
+ text: JSON.stringify({
63
+ translated_content: args.content,
64
+ source_language: args.source_language || 'unknown',
65
+ target_language: args.target_language,
66
+ note: 'LLM API key not configured — returned content unchanged',
67
+ }),
68
+ }],
69
+ };
70
+ }
71
+ const systemPrompt = args.source_language
72
+ ? `You are a translation assistant. Translate the user's text from ${args.source_language} to ${args.target_language}. Return ONLY a JSON object: {"translated_content": "...", "source_language": "${args.source_language}"}. No markdown, no explanation.`
73
+ : TRANSLATE_SYSTEM_PROMPT(args.target_language);
74
+ const response = await (0, llm_1.callLLM)({
75
+ model: defaults_1.LLM_MODEL_SECONDARY,
76
+ messages: [
77
+ { role: 'system', content: systemPrompt },
78
+ { role: 'user', content: args.content },
79
+ ],
80
+ max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
81
+ temperature: 0,
82
+ });
83
+ const raw = response.content || '';
84
+ try {
85
+ const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
86
+ const parsed = JSON.parse(cleaned);
87
+ return {
88
+ content: [{
89
+ type: 'text',
90
+ text: JSON.stringify({
91
+ translated_content: parsed.translated_content || args.content,
92
+ source_language: parsed.source_language || args.source_language || 'unknown',
93
+ target_language: args.target_language,
94
+ }),
95
+ }],
96
+ };
97
+ }
98
+ catch {
99
+ return {
100
+ content: [{
101
+ type: 'text',
102
+ text: JSON.stringify({
103
+ translated_content: raw,
104
+ source_language: args.source_language || 'unknown',
105
+ target_language: args.target_language,
106
+ }),
107
+ }],
108
+ };
109
+ }
110
+ });
111
+ }
112
+ /**
113
+ * Create the Translation MCP server.
114
+ *
115
+ * Returns a fresh McpServer instance each time. The MCP SDK only allows
116
+ * one transport per server, so each consumer needs its own instance.
117
+ */
118
+ async function createTranslationServer(options) {
119
+ const name = options?.name || 'long-tail-translation';
120
+ const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
121
+ registerTools(instance);
122
+ logger_1.loggerRegistry.info(`[lt-mcp:translation] ${name} ready (1 tool registered)`);
123
+ return instance;
124
+ }
125
+ /**
126
+ * Stop a Translation MCP server instance.
127
+ */
128
+ async function stopTranslationServer() {
129
+ logger_1.loggerRegistry.info('[lt-mcp:translation] stopped');
130
+ }
@@ -0,0 +1,2 @@
1
+ export declare const ANALYZE_IMAGE_PROMPT = "You are an image analysis assistant. Analyze the provided image and return a JSON object with the following structure:\n{\"description\": \"brief description of the image\", \"text_content\": \"any text visible in the image or null\", \"objects\": [\"list\", \"of\", \"notable\", \"objects\"]}\nReturn ONLY the JSON object. No markdown, no explanation.";
2
+ export declare const DESCRIBE_IMAGE_PROMPT = "You are an image description assistant. Provide a clear, detailed description of the provided image. Return a JSON object:\n{\"description\": \"detailed description of the image\"}\nReturn ONLY the JSON object. No markdown, no explanation.";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DESCRIBE_IMAGE_PROMPT = exports.ANALYZE_IMAGE_PROMPT = void 0;
4
+ exports.ANALYZE_IMAGE_PROMPT = `You are an image analysis assistant. Analyze the provided image and return a JSON object with the following structure:
5
+ {"description": "brief description of the image", "text_content": "any text visible in the image or null", "objects": ["list", "of", "notable", "objects"]}
6
+ Return ONLY the JSON object. No markdown, no explanation.`;
7
+ exports.DESCRIBE_IMAGE_PROMPT = `You are an image description assistant. Provide a clear, detailed description of the provided image. Return a JSON object:
8
+ {"description": "detailed description of the image"}
9
+ Return ONLY the JSON object. No markdown, no explanation.`;
@@ -1,15 +1,14 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  /**
3
- * Create the Document Vision MCP server.
3
+ * Create the Vision MCP server.
4
4
  *
5
5
  * Returns a fresh McpServer instance each time. The MCP SDK only allows
6
- * one transport per server, so each consumer (triage activities, pipeline
7
- * workers, tests) needs its own instance to avoid "already connected" errors.
6
+ * one transport per server, so each consumer needs its own instance.
8
7
  */
9
8
  export declare function createVisionServer(options?: {
10
9
  name?: string;
11
10
  }): Promise<McpServer>;
12
11
  /**
13
- * Stop a Vision MCP server instance and release resources.
12
+ * Stop a Vision MCP server instance.
14
13
  */
15
14
  export declare function stopVisionServer(): Promise<void>;
@@ -0,0 +1,221 @@
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.createVisionServer = createVisionServer;
37
+ exports.stopVisionServer = stopVisionServer;
38
+ const path = __importStar(require("path"));
39
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
40
+ const zod_1 = require("zod");
41
+ const llm_1 = require("../../services/llm");
42
+ const defaults_1 = require("../../modules/defaults");
43
+ const logger_1 = require("../../lib/logger");
44
+ const storage_1 = require("../../lib/storage");
45
+ const vision_prompts_1 = require("./vision-prompts");
46
+ const MIME_MAP = {
47
+ '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg',
48
+ '.gif': 'image/gif', '.webp': 'image/webp', '.svg': 'image/svg+xml',
49
+ };
50
+ const analyzeImageSchema = zod_1.z.object({
51
+ image: zod_1.z.string().describe('Image source: a storage path (e.g. "amazon_initial.png"), ' +
52
+ 'a data URI (data:image/png;base64,...), or an https:// URL.'),
53
+ prompt: zod_1.z.string().optional().describe('Optional analysis prompt to guide the model'),
54
+ });
55
+ const describeImageSchema = zod_1.z.object({
56
+ image: zod_1.z.string().describe('Image source: a storage path, data URI, or https:// URL.'),
57
+ context: zod_1.z.string().optional().describe('Optional context about the image'),
58
+ });
59
+ /**
60
+ * Resolve an image reference to an LLM-ready content block.
61
+ *
62
+ * Accepts:
63
+ * - data:image/...;base64,... → used directly
64
+ * - https:// URL → passed as-is (OpenAI can fetch; Anthropic translate layer handles)
65
+ * - Storage path (anything else, including file:// prefixed) → read via storage backend
66
+ */
67
+ async function resolveImageContent(image) {
68
+ // Already a data URI — pass through
69
+ if (image.startsWith('data:')) {
70
+ return { type: 'image_url', image_url: { url: image } };
71
+ }
72
+ // HTTPS URL — pass through
73
+ if (image.startsWith('https://') || image.startsWith('http://')) {
74
+ return { type: 'image_url', image_url: { url: image } };
75
+ }
76
+ // Storage path — strip file:// prefix if present, read via backend
77
+ const storagePath = image.replace(/^file:\/\//, '');
78
+ const backend = (0, storage_1.getStorageBackend)();
79
+ const { data } = await backend.read(storagePath);
80
+ const ext = path.extname(storagePath).toLowerCase();
81
+ const mime = MIME_MAP[ext] || 'image/png';
82
+ const base64 = data.toString('base64');
83
+ return { type: 'image_url', image_url: { url: `data:${mime};base64,${base64}` } };
84
+ }
85
+ function registerTools(srv) {
86
+ // ── analyze_image ───────────────────────────────────────────────
87
+ srv.registerTool('analyze_image', {
88
+ title: 'Analyze Image',
89
+ description: 'Analyze an image and extract structured data: description, text content, and notable objects.',
90
+ inputSchema: analyzeImageSchema,
91
+ }, async (args) => {
92
+ const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
93
+ if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
94
+ return {
95
+ content: [{
96
+ type: 'text',
97
+ text: JSON.stringify({
98
+ error: 'LLM API key not configured',
99
+ description: null,
100
+ text_content: null,
101
+ objects: [],
102
+ }),
103
+ }],
104
+ };
105
+ }
106
+ const systemPrompt = args.prompt
107
+ ? `${vision_prompts_1.ANALYZE_IMAGE_PROMPT}\n\nAdditional guidance: ${args.prompt}`
108
+ : vision_prompts_1.ANALYZE_IMAGE_PROMPT;
109
+ const response = await (0, llm_1.callLLM)({
110
+ model: defaults_1.LLM_MODEL_SECONDARY,
111
+ messages: [
112
+ { role: 'system', content: systemPrompt },
113
+ {
114
+ role: 'user',
115
+ content: [await resolveImageContent(args.image)],
116
+ },
117
+ ],
118
+ max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
119
+ temperature: 0,
120
+ });
121
+ const raw = response.content || '';
122
+ try {
123
+ const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
124
+ const parsed = JSON.parse(cleaned);
125
+ return {
126
+ content: [{
127
+ type: 'text',
128
+ text: JSON.stringify({
129
+ description: parsed.description || null,
130
+ text_content: parsed.text_content || null,
131
+ objects: parsed.objects || [],
132
+ }),
133
+ }],
134
+ };
135
+ }
136
+ catch {
137
+ return {
138
+ content: [{
139
+ type: 'text',
140
+ text: JSON.stringify({
141
+ description: raw,
142
+ text_content: null,
143
+ objects: [],
144
+ }),
145
+ }],
146
+ };
147
+ }
148
+ });
149
+ // ── describe_image ──────────────────────────────────────────────
150
+ srv.registerTool('describe_image', {
151
+ title: 'Describe Image',
152
+ description: 'Generate a detailed description of an image.',
153
+ inputSchema: describeImageSchema,
154
+ }, async (args) => {
155
+ const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
156
+ if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
157
+ return {
158
+ content: [{
159
+ type: 'text',
160
+ text: JSON.stringify({
161
+ error: 'LLM API key not configured',
162
+ description: null,
163
+ }),
164
+ }],
165
+ };
166
+ }
167
+ const systemPrompt = args.context
168
+ ? `${vision_prompts_1.DESCRIBE_IMAGE_PROMPT}\n\nContext: ${args.context}`
169
+ : vision_prompts_1.DESCRIBE_IMAGE_PROMPT;
170
+ const response = await (0, llm_1.callLLM)({
171
+ model: defaults_1.LLM_MODEL_SECONDARY,
172
+ messages: [
173
+ { role: 'system', content: systemPrompt },
174
+ {
175
+ role: 'user',
176
+ content: [await resolveImageContent(args.image)],
177
+ },
178
+ ],
179
+ max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
180
+ temperature: 0,
181
+ });
182
+ const raw = response.content || '';
183
+ try {
184
+ const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
185
+ const parsed = JSON.parse(cleaned);
186
+ return {
187
+ content: [{
188
+ type: 'text',
189
+ text: JSON.stringify({ description: parsed.description || raw }),
190
+ }],
191
+ };
192
+ }
193
+ catch {
194
+ return {
195
+ content: [{
196
+ type: 'text',
197
+ text: JSON.stringify({ description: raw }),
198
+ }],
199
+ };
200
+ }
201
+ });
202
+ }
203
+ /**
204
+ * Create the Vision MCP server.
205
+ *
206
+ * Returns a fresh McpServer instance each time. The MCP SDK only allows
207
+ * one transport per server, so each consumer needs its own instance.
208
+ */
209
+ async function createVisionServer(options) {
210
+ const name = options?.name || 'long-tail-vision';
211
+ const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
212
+ registerTools(instance);
213
+ logger_1.loggerRegistry.info(`[lt-mcp:vision] ${name} ready (2 tools registered)`);
214
+ return instance;
215
+ }
216
+ /**
217
+ * Stop a Vision MCP server instance.
218
+ */
219
+ async function stopVisionServer() {
220
+ logger_1.loggerRegistry.info('[lt-mcp:vision] stopped');
221
+ }
@@ -38,7 +38,7 @@ exports.getWorkflowCompilerServer = getWorkflowCompilerServer;
38
38
  exports.stopWorkflowCompilerServer = stopWorkflowCompilerServer;
39
39
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
40
40
  const zod_1 = require("zod");
41
- const logger_1 = require("../../services/logger");
41
+ const logger_1 = require("../../lib/logger");
42
42
  const yamlGenerator = __importStar(require("../../services/yaml-workflow/generator"));
43
43
  const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
44
44
  const yamlDeployer = __importStar(require("../../services/yaml-workflow/deployer"));
@@ -39,7 +39,7 @@ exports.stopWorkflowServer = stopWorkflowServer;
39
39
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
40
40
  const zod_1 = require("zod");
41
41
  const defaults_1 = require("../../modules/defaults");
42
- const logger_1 = require("../../services/logger");
42
+ const logger_1 = require("../../lib/logger");
43
43
  const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
44
44
  const yamlDeployer = __importStar(require("../../services/yaml-workflow/deployer"));
45
45
  let server = null;