@hotmeshio/long-tail 0.23.2 → 0.24.1

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 (499) hide show
  1. package/build/adapters/express.d.ts +11 -1
  2. package/build/adapters/express.js +42 -41
  3. package/build/api/auth-sso.d.ts +1 -1
  4. package/build/api/bot-accounts.d.ts +2 -0
  5. package/build/api/bot-accounts.js +4 -0
  6. package/build/api/capabilities.d.ts +7 -2
  7. package/build/api/capabilities.js +13 -2
  8. package/build/api/escalations/analytics.js +5 -0
  9. package/build/api/escalations/bulk.d.ts +2 -0
  10. package/build/api/escalations/bulk.js +9 -4
  11. package/build/api/escalations/helpers.d.ts +5 -0
  12. package/build/api/escalations/helpers.js +7 -0
  13. package/build/api/escalations/metadata.js +3 -0
  14. package/build/api/escalations/single.d.ts +3 -2
  15. package/build/api/escalations/single.js +8 -3
  16. package/build/api/mcp/tools.d.ts +12 -0
  17. package/build/api/mcp/tools.js +113 -9
  18. package/build/api/scan-codes/choice.js +31 -7
  19. package/build/api/settings.js +9 -0
  20. package/build/api/tasks.d.ts +3 -3
  21. package/build/api/tasks.js +30 -7
  22. package/build/api/workflows/input-lookups.js +1 -1
  23. package/build/api/workflows/invocable.js +2 -2
  24. package/build/api/workflows/invocation.js +1 -1
  25. package/build/api/yaml-workflows/cron.d.ts +3 -2
  26. package/build/api/yaml-workflows/cron.js +6 -1
  27. package/build/api/yaml-workflows/deploy.d.ts +15 -2
  28. package/build/api/yaml-workflows/deploy.js +69 -2
  29. package/build/lib/db/schemas/038_oauth_server.sql +46 -0
  30. package/build/lib/db/schemas/039_nats_ws_tickets.sql +12 -0
  31. package/build/lib/events/browser-view.d.ts +20 -0
  32. package/build/lib/events/browser-view.js +117 -0
  33. package/build/lib/events/nats-ws-filter.d.ts +29 -0
  34. package/build/lib/events/nats-ws-filter.js +109 -0
  35. package/build/lib/events/nats-ws-proxy.d.ts +7 -0
  36. package/build/lib/events/nats-ws-proxy.js +86 -7
  37. package/build/lib/events/nats-ws-server-filter.d.ts +16 -0
  38. package/build/lib/events/nats-ws-server-filter.js +56 -0
  39. package/build/lib/events/nats-ws-ticket.d.ts +19 -0
  40. package/build/lib/events/nats-ws-ticket.js +63 -0
  41. package/build/lib/events/socketio.d.ts +10 -1
  42. package/build/lib/events/socketio.js +10 -3
  43. package/build/lib/http/index.d.ts +27 -0
  44. package/build/lib/http/index.js +55 -0
  45. package/build/modules/auth.d.ts +15 -24
  46. package/build/modules/auth.js +43 -126
  47. package/build/modules/capabilities.d.ts +62 -0
  48. package/build/modules/capabilities.js +188 -0
  49. package/build/modules/config.d.ts +19 -0
  50. package/build/modules/config.js +27 -0
  51. package/build/modules/defaults.d.ts +10 -0
  52. package/build/modules/defaults.js +12 -1
  53. package/build/modules/maintenance.d.ts +2 -0
  54. package/build/modules/maintenance.js +7 -0
  55. package/build/modules/mcp-auth.d.ts +11 -0
  56. package/build/modules/mcp-auth.js +56 -0
  57. package/build/modules/oauth-server.d.ts +18 -0
  58. package/build/modules/oauth-server.js +40 -0
  59. package/build/routes/agents.js +47 -14
  60. package/build/routes/announcements.js +2 -2
  61. package/build/routes/auth-sso.js +2 -2
  62. package/build/routes/auth.js +2 -2
  63. package/build/routes/bot-accounts.js +26 -3
  64. package/build/routes/capabilities.js +4 -4
  65. package/build/routes/controlplane.js +2 -2
  66. package/build/routes/dba.js +2 -2
  67. package/build/routes/delegation.js +2 -2
  68. package/build/routes/diagnostics.js +2 -2
  69. package/build/routes/docs.js +2 -2
  70. package/build/routes/domain.js +2 -2
  71. package/build/routes/escalations/accumulate.d.ts +1 -1
  72. package/build/routes/escalations/acting.d.ts +1 -1
  73. package/build/routes/escalations/analytics.d.ts +1 -1
  74. package/build/routes/escalations/bulk.d.ts +1 -1
  75. package/build/routes/escalations/facets.d.ts +1 -1
  76. package/build/routes/escalations/index.js +2 -2
  77. package/build/routes/escalations/list.d.ts +1 -1
  78. package/build/routes/escalations/metadata.d.ts +1 -1
  79. package/build/routes/escalations/related.d.ts +1 -1
  80. package/build/routes/escalations/resolve.d.ts +1 -1
  81. package/build/routes/escalations/single.d.ts +1 -1
  82. package/build/routes/escalations/single.js +1 -1
  83. package/build/routes/exports.js +14 -13
  84. package/build/routes/file-browser.js +9 -8
  85. package/build/routes/files.js +2 -2
  86. package/build/routes/index.js +4 -2
  87. package/build/routes/insight.js +5 -4
  88. package/build/routes/knowledge.js +2 -2
  89. package/build/routes/maintenance.js +2 -2
  90. package/build/routes/mcp-endpoint.d.ts +3 -1
  91. package/build/routes/mcp-endpoint.js +18 -8
  92. package/build/routes/mcp.js +35 -15
  93. package/build/routes/me.js +2 -2
  94. package/build/routes/namespaces.js +4 -3
  95. package/build/routes/nats-credentials.js +27 -3
  96. package/build/routes/oauth-server/authorize.d.ts +2 -0
  97. package/build/routes/oauth-server/authorize.js +110 -0
  98. package/build/routes/oauth-server/grants.d.ts +2 -0
  99. package/build/routes/oauth-server/grants.js +35 -0
  100. package/build/routes/oauth-server/index.d.ts +8 -0
  101. package/build/routes/oauth-server/index.js +52 -0
  102. package/build/routes/oauth-server/registration.d.ts +2 -0
  103. package/build/routes/oauth-server/registration.js +38 -0
  104. package/build/routes/oauth-server/token.d.ts +2 -0
  105. package/build/routes/oauth-server/token.js +100 -0
  106. package/build/routes/oauth-well-known.d.ts +8 -0
  107. package/build/routes/oauth-well-known.js +31 -0
  108. package/build/routes/oauth.js +2 -2
  109. package/build/routes/overview.js +2 -2
  110. package/build/routes/personas.js +2 -2
  111. package/build/routes/pipelines.js +6 -5
  112. package/build/routes/roles.js +2 -2
  113. package/build/routes/scan-codes.js +2 -2
  114. package/build/routes/settings.js +2 -2
  115. package/build/routes/tasks.js +5 -5
  116. package/build/routes/topics.js +21 -9
  117. package/build/routes/users.js +25 -22
  118. package/build/routes/workflow-sets.js +13 -12
  119. package/build/routes/workflows/config.js +15 -2
  120. package/build/routes/workflows/discovery.js +2 -2
  121. package/build/routes/workflows/index.js +2 -2
  122. package/build/routes/workflows/invocation.js +11 -10
  123. package/build/routes/yaml-workflows/cron.js +20 -7
  124. package/build/routes/yaml-workflows/crud.js +13 -12
  125. package/build/routes/yaml-workflows/deployment.js +11 -10
  126. package/build/routes/yaml-workflows/index.js +2 -2
  127. package/build/routes/yaml-workflows/versions.js +2 -2
  128. package/build/services/agent/authority.d.ts +15 -0
  129. package/build/services/agent/authority.js +59 -0
  130. package/build/services/agent/trigger-registry.js +7 -2
  131. package/build/services/auth/bot-api-key.d.ts +2 -0
  132. package/build/services/auth/bot-api-key.js +10 -0
  133. package/build/services/auth/oauth-server/access-token.d.ts +36 -0
  134. package/build/services/auth/oauth-server/access-token.js +80 -0
  135. package/build/services/auth/oauth-server/authorization.d.ts +47 -0
  136. package/build/services/auth/oauth-server/authorization.js +54 -0
  137. package/build/services/auth/oauth-server/constants.d.ts +11 -0
  138. package/build/services/auth/oauth-server/constants.js +16 -0
  139. package/build/services/auth/oauth-server/index.d.ts +3 -0
  140. package/build/services/auth/oauth-server/index.js +27 -0
  141. package/build/services/auth/oauth-server/metadata.d.ts +21 -0
  142. package/build/services/auth/oauth-server/metadata.js +53 -0
  143. package/build/services/auth/oauth-server/registration.d.ts +42 -0
  144. package/build/services/auth/oauth-server/registration.js +134 -0
  145. package/build/services/auth/oauth-server/sql.d.ts +50 -0
  146. package/build/services/auth/oauth-server/sql.js +156 -0
  147. package/build/services/auth/oauth-server/store.d.ts +88 -0
  148. package/build/services/auth/oauth-server/store.js +171 -0
  149. package/build/services/auth/sql.d.ts +1 -0
  150. package/build/services/auth/sql.js +3 -1
  151. package/build/services/cron/index.js +5 -3
  152. package/build/services/escalation/queries.js +7 -2
  153. package/build/services/export/index.d.ts +10 -0
  154. package/build/services/export/index.js +27 -0
  155. package/build/services/invocation-access.d.ts +25 -4
  156. package/build/services/invocation-access.js +39 -7
  157. package/build/services/maintenance/index.js +8 -0
  158. package/build/services/mcp/client/connection-dispatch.d.ts +6 -1
  159. package/build/services/mcp/client/connection-dispatch.js +3 -2
  160. package/build/services/mcp/client/connection-lifecycle.d.ts +10 -2
  161. package/build/services/mcp/client/connection-lifecycle.js +45 -7
  162. package/build/services/mcp/client/connection-test.js +2 -6
  163. package/build/services/mcp/client/connection.d.ts +1 -1
  164. package/build/services/mcp/client/connection.js +3 -1
  165. package/build/services/mcp/client/index.d.ts +2 -2
  166. package/build/services/mcp/client/index.js +4 -1
  167. package/build/services/mcp/client/network-transport.d.ts +12 -0
  168. package/build/services/mcp/client/network-transport.js +20 -0
  169. package/build/services/mcp/client/tools.d.ts +13 -0
  170. package/build/services/mcp/client/tools.js +18 -0
  171. package/build/services/mcp/db-server/index.js +2 -1
  172. package/build/services/mcp/external-server.d.ts +9 -4
  173. package/build/services/mcp/external-server.js +34 -11
  174. package/build/services/mcp/playwright-server/index.js +2 -1
  175. package/build/services/mcp/registered-tools.d.ts +3 -0
  176. package/build/services/mcp/registered-tools.js +7 -0
  177. package/build/services/mcp/seed-service-account.d.ts +4 -1
  178. package/build/services/mcp/seed-service-account.js +11 -6
  179. package/build/services/mcp/server-lifecycle.js +2 -1
  180. package/build/services/workflow-invocation.d.ts +16 -3
  181. package/build/services/workflow-invocation.js +42 -10
  182. package/build/services/yaml-workflow/deployer.d.ts +10 -2
  183. package/build/services/yaml-workflow/deployer.js +17 -5
  184. package/build/services/yaml-workflow/invoke.js +31 -26
  185. package/build/services/yaml-workflow/workers/register.js +3 -13
  186. package/build/services/yaml-workflow/workers/step-tool.d.ts +7 -0
  187. package/build/services/yaml-workflow/workers/step-tool.js +69 -0
  188. package/build/start/config.js +7 -0
  189. package/build/start/index.js +4 -22
  190. package/build/start/server.d.ts +6 -4
  191. package/build/start/server.js +11 -35
  192. package/build/start/socket-auth.js +2 -1
  193. package/build/start/workers.js +1 -1
  194. package/build/system/mcp-servers/admin/agent-subscriptions.js +25 -1
  195. package/build/system/mcp-servers/admin/agents.js +25 -2
  196. package/build/system/mcp-servers/admin/announcements.js +3 -2
  197. package/build/system/mcp-servers/admin/bot-accounts.js +37 -5
  198. package/build/system/mcp-servers/admin/escalations.d.ts +3 -5
  199. package/build/system/mcp-servers/admin/escalations.js +74 -70
  200. package/build/system/mcp-servers/admin/exports.js +7 -1
  201. package/build/system/mcp-servers/admin/index.js +24 -25
  202. package/build/system/mcp-servers/admin/overview.d.ts +2 -2
  203. package/build/system/mcp-servers/admin/run-read.d.ts +2 -0
  204. package/build/system/mcp-servers/admin/run-read.js +5 -0
  205. package/build/system/mcp-servers/admin/scan-codes.d.ts +2 -2
  206. package/build/system/mcp-servers/admin/scan-codes.js +5 -11
  207. package/build/system/mcp-servers/admin/schemas.d.ts +26 -26
  208. package/build/system/mcp-servers/admin/tasks.js +7 -2
  209. package/build/system/mcp-servers/admin/users.js +31 -4
  210. package/build/system/mcp-servers/admin/workflow-config.js +12 -1
  211. package/build/system/mcp-servers/admin/workflows.js +27 -5
  212. package/build/system/mcp-servers/admin/yaml-workflows.js +13 -21
  213. package/build/system/mcp-servers/caller-auth.d.ts +18 -0
  214. package/build/system/mcp-servers/caller-auth.js +29 -0
  215. package/build/system/mcp-servers/claude-code.js +2 -1
  216. package/build/system/mcp-servers/db-query/index.js +2 -1
  217. package/build/system/mcp-servers/file-storage.js +2 -1
  218. package/build/system/mcp-servers/http-fetch.js +2 -1
  219. package/build/system/mcp-servers/human-queue.js +7 -3
  220. package/build/system/mcp-servers/oauth.js +31 -4
  221. package/build/system/mcp-servers/schema-exchange.js +2 -1
  222. package/build/system/mcp-servers/vision.d.ts +1 -0
  223. package/build/system/mcp-servers/vision.js +17 -7
  224. package/build/system/mcp-servers/workflow.js +13 -25
  225. package/build/system/seed/tool-manifests-admin.d.ts +2 -17985
  226. package/build/system/seed/tool-manifests-admin.js +121 -121
  227. package/build/system/seed/tool-manifests-data.d.ts +8 -374
  228. package/build/system/seed/tool-manifests-data.js +22 -4
  229. package/build/system/seed/tool-manifests-escalation.d.ts +2 -352
  230. package/build/system/seed/tool-manifests-escalation.js +11 -1
  231. package/build/system/seed/tool-manifests-events.d.ts +2 -116
  232. package/build/system/seed/tool-manifests-events.js +6 -2
  233. package/build/system/seed/tool-manifests-knowledge.d.ts +2 -221
  234. package/build/system/seed/tool-manifests-knowledge.js +41 -1
  235. package/build/system/seed/tool-manifests-workflows.d.ts +2 -71
  236. package/build/system/seed/tool-manifests-workflows.js +3 -1
  237. package/build/system/workflows/shared/principal-tools.d.ts +20 -0
  238. package/build/system/workflows/shared/principal-tools.js +64 -0
  239. package/build/system/workflows/shared/tool-executor.js +21 -11
  240. package/build/system/workflows/shared/tool-loader.js +8 -1
  241. package/build/tsconfig.tsbuildinfo +1 -1
  242. package/build/types/auth.d.ts +1 -1
  243. package/build/types/capability.d.ts +14 -0
  244. package/build/types/capability.js +2 -0
  245. package/build/types/events.d.ts +1 -1
  246. package/build/types/index.d.ts +3 -1
  247. package/build/types/maintenance.d.ts +2 -2
  248. package/build/types/mcp.d.ts +3 -1
  249. package/build/types/oauth-server.d.ts +52 -0
  250. package/build/types/oauth-server.js +2 -0
  251. package/build/types/startup.d.ts +15 -7
  252. package/build/vitest.config.js +2 -1
  253. package/build/vitest.fast.config.d.ts +2 -0
  254. package/build/vitest.fast.config.js +20 -0
  255. package/build/vitest.llm.config.d.ts +2 -0
  256. package/build/vitest.llm.config.js +16 -0
  257. package/dashboard/dist/assets/{AdminDashboard-BPWsgMfZ.js → AdminDashboard-B3mkMIOT.js} +2 -2
  258. package/dashboard/dist/assets/{AdminDashboard-BPWsgMfZ.js.map → AdminDashboard-B3mkMIOT.js.map} +1 -1
  259. package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js → AgentConfigPage-CQj2B678.js} +2 -2
  260. package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js.map → AgentConfigPage-CQj2B678.js.map} +1 -1
  261. package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js → AgentDetailPage-CzrD8JJI.js} +3 -3
  262. package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js.map → AgentDetailPage-CzrD8JJI.js.map} +1 -1
  263. package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js → AgentsPage-jg2OFwyW.js} +2 -2
  264. package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js.map → AgentsPage-jg2OFwyW.js.map} +1 -1
  265. package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js → AvailableEscalationsPage-IS28XBRe.js} +2 -2
  266. package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js.map → AvailableEscalationsPage-IS28XBRe.js.map} +1 -1
  267. package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js → BotPicker-DvEJFpwS.js} +2 -2
  268. package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js.map → BotPicker-DvEJFpwS.js.map} +1 -1
  269. package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js → BulkAssignModal-BoQCi-YC.js} +2 -2
  270. package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js.map → BulkAssignModal-BoQCi-YC.js.map} +1 -1
  271. package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js → CapabilitiesPage-kwlrcb_t.js} +2 -2
  272. package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js.map → CapabilitiesPage-kwlrcb_t.js.map} +1 -1
  273. package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.js → CollapsibleSection-UMIV4KIj.js} +2 -2
  274. package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.js.map → CollapsibleSection-UMIV4KIj.js.map} +1 -1
  275. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js +2 -0
  276. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js.map +1 -0
  277. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js +2 -0
  278. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js.map +1 -0
  279. package/dashboard/dist/assets/{CountdownTimer-DxX72PwV.js → CountdownTimer-LG03dVgR.js} +2 -2
  280. package/dashboard/dist/assets/{CountdownTimer-DxX72PwV.js.map → CountdownTimer-LG03dVgR.js.map} +1 -1
  281. package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js → CredentialsPage-CaFQ6vLb.js} +2 -2
  282. package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js.map → CredentialsPage-CaFQ6vLb.js.map} +1 -1
  283. package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js → CronLabel-Co5j7tzW.js} +2 -2
  284. package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js.map → CronLabel-Co5j7tzW.js.map} +1 -1
  285. package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js → ElapsedCell-WJyE9G0T.js} +2 -2
  286. package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js.map → ElapsedCell-WJyE9G0T.js.map} +1 -1
  287. package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js → EntityTimelinePanel-CDFFfX9d.js} +2 -2
  288. package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js.map → EntityTimelinePanel-CDFFfX9d.js.map} +1 -1
  289. package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js → EscalationListSchemaPage-CMrUlaKI.js} +3 -3
  290. package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js.map → EscalationListSchemaPage-CMrUlaKI.js.map} +1 -1
  291. package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js → EscalationSchemaPage-Dx2Lyfrz.js} +2 -2
  292. package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js.map → EscalationSchemaPage-Dx2Lyfrz.js.map} +1 -1
  293. package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js → EscalationTimeline-d3nvshOk.js} +2 -2
  294. package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js.map → EscalationTimeline-d3nvshOk.js.map} +1 -1
  295. package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js → EscalationTitleSelect-DWQieOM9.js} +2 -2
  296. package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js.map → EscalationTitleSelect-DWQieOM9.js.map} +1 -1
  297. package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js → EscalationsOverview-BX8Cpi0X.js} +2 -2
  298. package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js.map → EscalationsOverview-BX8Cpi0X.js.map} +1 -1
  299. package/dashboard/dist/assets/{EventTable-gBzi5tIS.js → EventTable-D1-ITVXS.js} +2 -2
  300. package/dashboard/dist/assets/{EventTable-gBzi5tIS.js.map → EventTable-D1-ITVXS.js.map} +1 -1
  301. package/dashboard/dist/assets/{FilterBar-BulSsWb2.js → FilterBar-ABC9ctin.js} +2 -2
  302. package/dashboard/dist/assets/{FilterBar-BulSsWb2.js.map → FilterBar-ABC9ctin.js.map} +1 -1
  303. package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js → FormattedValue-k27T4bG7.js} +2 -2
  304. package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js.map → FormattedValue-k27T4bG7.js.map} +1 -1
  305. package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js → GraphInvokePage-DKUErxWc.js} +2 -2
  306. package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js.map → GraphInvokePage-DKUErxWc.js.map} +1 -1
  307. package/dashboard/dist/assets/{HomePage-CwXFz--v.js → HomePage-C6u9dIpR.js} +2 -2
  308. package/dashboard/dist/assets/{HomePage-CwXFz--v.js.map → HomePage-C6u9dIpR.js.map} +1 -1
  309. package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js → ListToolbar-gA5rFzkz.js} +2 -2
  310. package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js.map → ListToolbar-gA5rFzkz.js.map} +1 -1
  311. package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js → McpOverview-BOPo3J_i.js} +2 -2
  312. package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js.map → McpOverview-BOPo3J_i.js.map} +1 -1
  313. package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js → McpQueryDetailPage-BRVVi0Zh.js} +2 -2
  314. package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js.map → McpQueryDetailPage-BRVVi0Zh.js.map} +1 -1
  315. package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js → McpQueryPage-Dmbb6SAc.js} +2 -2
  316. package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js.map → McpQueryPage-Dmbb6SAc.js.map} +1 -1
  317. package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js → McpRunDetailPage-bMXNO-6V.js} +2 -2
  318. package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js.map → McpRunDetailPage-bMXNO-6V.js.map} +1 -1
  319. package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js → McpRunsPage-Bi9AMWja.js} +2 -2
  320. package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js.map → McpRunsPage-Bi9AMWja.js.map} +1 -1
  321. package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js → OperationsPage-CvR74ZUJ.js} +3 -3
  322. package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js.map → OperationsPage-CvR74ZUJ.js.map} +1 -1
  323. package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js → OperatorDashboard-DctmZw10.js} +2 -2
  324. package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js.map → OperatorDashboard-DctmZw10.js.map} +1 -1
  325. package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js → PersonaDetailPage-Ubqm2rQH.js} +2 -2
  326. package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js.map → PersonaDetailPage-Ubqm2rQH.js.map} +1 -1
  327. package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js → PersonasPage-BpFL2rpo.js} +2 -2
  328. package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js.map → PersonasPage-BpFL2rpo.js.map} +1 -1
  329. package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js → PortalPage-Dfc_Q02R.js} +2 -2
  330. package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js.map → PortalPage-Dfc_Q02R.js.map} +1 -1
  331. package/dashboard/dist/assets/ProcessDetailPage-liJspvQh.js +2 -0
  332. package/dashboard/dist/assets/{ProcessDetailPage-DNgCIwRl.js.map → ProcessDetailPage-liJspvQh.js.map} +1 -1
  333. package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.js → ProcessesListPage-C3OM5ZUy.js} +2 -2
  334. package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.js.map → ProcessesListPage-C3OM5ZUy.js.map} +1 -1
  335. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js +8 -0
  336. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js.map +1 -0
  337. package/dashboard/dist/assets/{RoleDetailPage-Bh_UcfYY.js → RoleDetailPage-CrlYCh-R.js} +2 -2
  338. package/dashboard/dist/assets/{RoleDetailPage-Bh_UcfYY.js.map → RoleDetailPage-CrlYCh-R.js.map} +1 -1
  339. package/dashboard/dist/assets/{RolesPage-CK17N7zz.js → RolesPage-BaazL_pt.js} +2 -2
  340. package/dashboard/dist/assets/{RolesPage-CK17N7zz.js.map → RolesPage-BaazL_pt.js.map} +1 -1
  341. package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js → RunAsSelector-DxuV0fa1.js} +2 -2
  342. package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js.map → RunAsSelector-DxuV0fa1.js.map} +1 -1
  343. package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js → ScanCodesPage-C0mvmYTq.js} +2 -2
  344. package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js.map → ScanCodesPage-C0mvmYTq.js.map} +1 -1
  345. package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js → ScanSchemeDetailPage-CiJgt5dZ.js} +2 -2
  346. package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js.map → ScanSchemeDetailPage-CiJgt5dZ.js.map} +1 -1
  347. package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js → ScanStationPage-DzGaXc40.js} +2 -2
  348. package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js.map → ScanStationPage-DzGaXc40.js.map} +1 -1
  349. package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js → StickyPagination-CqbjVY6T.js} +2 -2
  350. package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js.map → StickyPagination-CqbjVY6T.js.map} +1 -1
  351. package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js → StreamMessageDetail-wX3i0aqs.js} +2 -2
  352. package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js.map → StreamMessageDetail-wX3i0aqs.js.map} +1 -1
  353. package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js → SwimlaneTimeline-C50PsFoV.js} +2 -2
  354. package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js.map → SwimlaneTimeline-C50PsFoV.js.map} +1 -1
  355. package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js → TaskDetailPage-bbNSv4Ae.js} +2 -2
  356. package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js.map → TaskDetailPage-bbNSv4Ae.js.map} +1 -1
  357. package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js → TasksListPage-CDWnm_d9.js} +2 -2
  358. package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js.map → TasksListPage-CDWnm_d9.js.map} +1 -1
  359. package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js → TimeAgo-BLjqlfoX.js} +2 -2
  360. package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js.map → TimeAgo-BLjqlfoX.js.map} +1 -1
  361. package/dashboard/dist/assets/{TimestampCell-BUTgE244.js → TimestampCell-CnW0ENb5.js} +2 -2
  362. package/dashboard/dist/assets/{TimestampCell-BUTgE244.js.map → TimestampCell-CnW0ENb5.js.map} +1 -1
  363. package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js → ToolTestPanel-DkMgCB-k.js} +2 -2
  364. package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js.map → ToolTestPanel-DkMgCB-k.js.map} +1 -1
  365. package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js → TopicDetailPage-g3pljKKX.js} +2 -2
  366. package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js.map → TopicDetailPage-g3pljKKX.js.map} +1 -1
  367. package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js → TopicsPage-CVcCYdy-.js} +2 -2
  368. package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js.map → TopicsPage-CVcCYdy-.js.map} +1 -1
  369. package/dashboard/dist/assets/{UserName-ZFpWMaFF.js → UserName-D6zGIK2i.js} +2 -2
  370. package/dashboard/dist/assets/{UserName-ZFpWMaFF.js.map → UserName-D6zGIK2i.js.map} +1 -1
  371. package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js → WorkflowExecutionPage-B8g81FCJ.js} +2 -2
  372. package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js.map → WorkflowExecutionPage-B8g81FCJ.js.map} +1 -1
  373. package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js → WorkflowsDashboard-nxT3bv6W.js} +2 -2
  374. package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js.map → WorkflowsDashboard-nxT3bv6W.js.map} +1 -1
  375. package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js → WorkflowsOverview-grI-KAI2.js} +2 -2
  376. package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js.map → WorkflowsOverview-grI-KAI2.js.map} +1 -1
  377. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js → YamlWorkflowDetailPage-BoZ-hfBE.js} +2 -2
  378. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js.map → YamlWorkflowDetailPage-BoZ-hfBE.js.map} +1 -1
  379. package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js → YamlWorkflowsPage-Bf04rwRv.js} +2 -2
  380. package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js.map → YamlWorkflowsPage-Bf04rwRv.js.map} +1 -1
  381. package/dashboard/dist/assets/{agents-Dd7E-27d.js → agents-Dphpdi8l.js} +2 -2
  382. package/dashboard/dist/assets/{agents-Dd7E-27d.js.map → agents-Dphpdi8l.js.map} +1 -1
  383. package/dashboard/dist/assets/{bots-CpaYjZTk.js → bots-DIFE298x.js} +2 -2
  384. package/dashboard/dist/assets/{bots-CpaYjZTk.js.map → bots-DIFE298x.js.map} +1 -1
  385. package/dashboard/dist/assets/{capabilities-CNjg_qv1.js → capabilities-D7Y7LClY.js} +2 -2
  386. package/dashboard/dist/assets/{capabilities-CNjg_qv1.js.map → capabilities-D7Y7LClY.js.map} +1 -1
  387. package/dashboard/dist/assets/{controlplane-DgmvnAtU.js → controlplane-D1TGcYsS.js} +2 -2
  388. package/dashboard/dist/assets/{controlplane-DgmvnAtU.js.map → controlplane-D1TGcYsS.js.map} +1 -1
  389. package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js → escalation-columns-cwZE6xyo.js} +2 -2
  390. package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js.map → escalation-columns-cwZE6xyo.js.map} +1 -1
  391. package/dashboard/dist/assets/{index-x5z73M9N.js → index-BzYcUPdD.js} +2 -2
  392. package/dashboard/dist/assets/{index-x5z73M9N.js.map → index-BzYcUPdD.js.map} +1 -1
  393. package/dashboard/dist/assets/index-CeCtqujG.js +67 -0
  394. package/dashboard/dist/assets/index-CeCtqujG.js.map +1 -0
  395. package/dashboard/dist/assets/{index-RIFT3RlO.js → index-ChV7pBjM.js} +2 -2
  396. package/dashboard/dist/assets/{index-RIFT3RlO.js.map → index-ChV7pBjM.js.map} +1 -1
  397. package/dashboard/dist/assets/{index-OfO0173w.js → index-CniRa65p.js} +2 -2
  398. package/dashboard/dist/assets/{index-OfO0173w.js.map → index-CniRa65p.js.map} +1 -1
  399. package/dashboard/dist/assets/{index-ByBy9M3L.js → index-CxdjT1Yk.js} +2 -2
  400. package/dashboard/dist/assets/{index-ByBy9M3L.js.map → index-CxdjT1Yk.js.map} +1 -1
  401. package/dashboard/dist/assets/{index-C_K7OlzT.js → index-DAvi5_2T.js} +2 -2
  402. package/dashboard/dist/assets/{index-C_K7OlzT.js.map → index-DAvi5_2T.js.map} +1 -1
  403. package/dashboard/dist/assets/{index-BrwqtXRh.js → index-DN-kX7hL.js} +2 -2
  404. package/dashboard/dist/assets/{index-BrwqtXRh.js.map → index-DN-kX7hL.js.map} +1 -1
  405. package/dashboard/dist/assets/index-Dl_8hbYI.js +2 -0
  406. package/dashboard/dist/assets/index-Dl_8hbYI.js.map +1 -0
  407. package/dashboard/dist/assets/{index-D4Dlznn9.js → index-DpKOr311.js} +2 -2
  408. package/dashboard/dist/assets/{index-D4Dlznn9.js.map → index-DpKOr311.js.map} +1 -1
  409. package/dashboard/dist/assets/{index-CnOvJz6U.js → index-Dy1wWu2e.js} +2 -2
  410. package/dashboard/dist/assets/{index-CnOvJz6U.js.map → index-Dy1wWu2e.js.map} +1 -1
  411. package/dashboard/dist/assets/{index-BT1Ms5Q5.js → index-HLu98Sqh.js} +2 -2
  412. package/dashboard/dist/assets/{index-BT1Ms5Q5.js.map → index-HLu98Sqh.js.map} +1 -1
  413. package/dashboard/dist/assets/{index-BFASQ7_X.js → index-ag2pCAPu.js} +2 -2
  414. package/dashboard/dist/assets/{index-BFASQ7_X.js.map → index-ag2pCAPu.js.map} +1 -1
  415. package/dashboard/dist/assets/{index-BsHVgWH6.js → index-gkxPN7Vx.js} +2 -2
  416. package/dashboard/dist/assets/{index-BsHVgWH6.js.map → index-gkxPN7Vx.js.map} +1 -1
  417. package/dashboard/dist/assets/index-m9A3UYst.css +1 -0
  418. package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js → knowledge-DnMs-SOJ.js} +2 -2
  419. package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js.map → knowledge-DnMs-SOJ.js.map} +1 -1
  420. package/dashboard/dist/assets/{mcp-NY4iL0L-.js → mcp-CwW-K3r4.js} +2 -2
  421. package/dashboard/dist/assets/{mcp-NY4iL0L-.js.map → mcp-CwW-K3r4.js.map} +1 -1
  422. package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js → mcp-query-BZt5e8_Q.js} +2 -2
  423. package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js.map → mcp-query-BZt5e8_Q.js.map} +1 -1
  424. package/dashboard/dist/assets/{personas-Fy-f7QQd.js → personas-UA-Xn60f.js} +2 -2
  425. package/dashboard/dist/assets/{personas-Fy-f7QQd.js.map → personas-UA-Xn60f.js.map} +1 -1
  426. package/dashboard/dist/assets/{pipelines-DKiuozxV.js → pipelines-Cu3PARum.js} +2 -2
  427. package/dashboard/dist/assets/{pipelines-DKiuozxV.js.map → pipelines-Cu3PARum.js.map} +1 -1
  428. package/dashboard/dist/assets/{tasks-CdM1Rkk9.js → tasks-BO6h8GJE.js} +2 -2
  429. package/dashboard/dist/assets/{tasks-CdM1Rkk9.js.map → tasks-BO6h8GJE.js.map} +1 -1
  430. package/dashboard/dist/assets/{topics-XNy2mf3n.js → topics-CWjCR-17.js} +2 -2
  431. package/dashboard/dist/assets/{topics-XNy2mf3n.js.map → topics-CWjCR-17.js.map} +1 -1
  432. package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js → useDebouncedValue-6t0jx1RB.js} +2 -2
  433. package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js.map → useDebouncedValue-6t0jx1RB.js.map} +1 -1
  434. package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js → useNamespace-CqpoQx6D.js} +2 -2
  435. package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js.map → useNamespace-CqpoQx6D.js.map} +1 -1
  436. package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js → useYamlActivityEvents-hmCQQwzB.js} +2 -2
  437. package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js.map → useYamlActivityEvents-hmCQQwzB.js.map} +1 -1
  438. package/dashboard/dist/assets/{validate-DcGWN82Y.js → validate-BIRn4a6d.js} +2 -2
  439. package/dashboard/dist/assets/{validate-DcGWN82Y.js.map → validate-BIRn4a6d.js.map} +1 -1
  440. package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.js → yaml-workflows-ziUdZhKY.js} +2 -2
  441. package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.js.map → yaml-workflows-ziUdZhKY.js.map} +1 -1
  442. package/dashboard/dist/index.html +2 -2
  443. package/docs/agents.md +3 -1
  444. package/docs/api/http/agents.md +15 -1
  445. package/docs/api/http/escalations.md +3 -3
  446. package/docs/api/http/exports.md +3 -1
  447. package/docs/api/http/file-browser.md +3 -1
  448. package/docs/api/http/mcp-endpoint.md +8 -5
  449. package/docs/api/http/mcp-servers.md +34 -4
  450. package/docs/api/http/namespaces.md +2 -0
  451. package/docs/api/http/pipelines.md +2 -0
  452. package/docs/api/http/roles.md +11 -8
  453. package/docs/api/http/service-accounts.md +8 -2
  454. package/docs/api/http/settings.md +29 -2
  455. package/docs/api/http/tasks.md +3 -1
  456. package/docs/api/http/topics.md +7 -1
  457. package/docs/api/http/users.md +8 -2
  458. package/docs/api/http/workflows.md +25 -10
  459. package/docs/api/http/yaml-workflows.md +21 -0
  460. package/docs/api/mcp/admin.md +409 -49
  461. package/docs/api/mcp/file-storage.md +4 -0
  462. package/docs/api/mcp/http-fetch.md +6 -2
  463. package/docs/api/mcp/human-queue.md +53 -0
  464. package/docs/api/mcp/index.md +13 -10
  465. package/docs/api/mcp/knowledge.md +34 -0
  466. package/docs/api/mcp/oauth.md +1 -1
  467. package/docs/api/mcp/ortho.md +113 -0
  468. package/docs/api/mcp/vision.md +1 -1
  469. package/docs/api/sdk/bot-accounts.md +1 -0
  470. package/docs/api/sdk/escalations.md +2 -2
  471. package/docs/api/sdk/mcp.md +2 -2
  472. package/docs/api/sdk/settings.md +1 -1
  473. package/docs/api/sdk/tasks.md +2 -2
  474. package/docs/api/sdk/workflows.md +2 -2
  475. package/docs/api/sdk/yaml-workflows.md +1 -1
  476. package/docs/architecture.md +3 -1
  477. package/docs/auth.md +3 -2
  478. package/docs/cloud.md +7 -2
  479. package/docs/dashboard.md +16 -7
  480. package/docs/data.md +1 -1
  481. package/docs/escalation-strategies.md +9 -20
  482. package/docs/events.md +6 -0
  483. package/docs/iam.md +7 -5
  484. package/docs/maintenance.md +51 -28
  485. package/docs/mcp.md +159 -210
  486. package/docs/oauth-and-delegation.md +32 -21
  487. package/docs/topics.md +2 -0
  488. package/docs/workflows.md +14 -112
  489. package/package.json +5 -3
  490. package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js +0 -2
  491. package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js.map +0 -1
  492. package/dashboard/dist/assets/ProcessDetailPage-DNgCIwRl.js +0 -2
  493. package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js +0 -8
  494. package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js.map +0 -1
  495. package/dashboard/dist/assets/index-CtlBjl8o.js +0 -2
  496. package/dashboard/dist/assets/index-CtlBjl8o.js.map +0 -1
  497. package/dashboard/dist/assets/index-LRYC__mE.js +0 -67
  498. package/dashboard/dist/assets/index-LRYC__mE.js.map +0 -1
  499. package/dashboard/dist/assets/index-MYI2_Xb3.css +0 -1
@@ -377,12 +377,12 @@ export declare const upsertWorkflowConfigSchema: z.ZodObject<{
377
377
  icon: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
378
378
  read_safe: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
379
379
  }, "strip", z.ZodTypeAny, {
380
+ roles: string[];
380
381
  workflow_type: string;
381
382
  invocable: boolean;
382
383
  task_queue: string | null;
383
384
  default_role: string;
384
385
  description: string | null;
385
- roles: string[];
386
386
  invocation_roles: string[];
387
387
  consumes: string[];
388
388
  tool_tags: string[];
@@ -403,11 +403,11 @@ export declare const upsertWorkflowConfigSchema: z.ZodObject<{
403
403
  }, {
404
404
  workflow_type: string;
405
405
  certified?: boolean | undefined;
406
+ roles?: string[] | undefined;
406
407
  invocable?: boolean | undefined;
407
408
  task_queue?: string | null | undefined;
408
409
  default_role?: string | undefined;
409
410
  description?: string | null | undefined;
410
- roles?: string[] | undefined;
411
411
  invocation_roles?: string[] | undefined;
412
412
  consumes?: string[] | undefined;
413
413
  tool_tags?: string[] | undefined;
@@ -645,20 +645,20 @@ export declare const createUserSchema: z.ZodObject<{
645
645
  }, "strip", z.ZodTypeAny, {
646
646
  role: string;
647
647
  type: "admin" | "member" | "superadmin";
648
- read_scope?: "self" | "all" | undefined;
649
- write_scope?: "self" | "all" | "none" | undefined;
648
+ read_scope?: "all" | "self" | undefined;
649
+ write_scope?: "all" | "self" | "none" | undefined;
650
650
  }, {
651
651
  role: string;
652
652
  type: "admin" | "member" | "superadmin";
653
- read_scope?: "self" | "all" | undefined;
654
- write_scope?: "self" | "all" | "none" | undefined;
653
+ read_scope?: "all" | "self" | undefined;
654
+ write_scope?: "all" | "self" | "none" | undefined;
655
655
  }>, "many">>>;
656
656
  }, "strip", z.ZodTypeAny, {
657
657
  roles: {
658
658
  role: string;
659
659
  type: "admin" | "member" | "superadmin";
660
- read_scope?: "self" | "all" | undefined;
661
- write_scope?: "self" | "all" | "none" | undefined;
660
+ read_scope?: "all" | "self" | undefined;
661
+ write_scope?: "all" | "self" | "none" | undefined;
662
662
  }[];
663
663
  external_id: string;
664
664
  email?: string | undefined;
@@ -668,8 +668,8 @@ export declare const createUserSchema: z.ZodObject<{
668
668
  roles?: {
669
669
  role: string;
670
670
  type: "admin" | "member" | "superadmin";
671
- read_scope?: "self" | "all" | undefined;
672
- write_scope?: "self" | "all" | "none" | undefined;
671
+ read_scope?: "all" | "self" | undefined;
672
+ write_scope?: "all" | "self" | "none" | undefined;
673
673
  }[] | undefined;
674
674
  email?: string | undefined;
675
675
  display_name?: string | undefined;
@@ -684,14 +684,14 @@ export declare const addUserRoleSchema: z.ZodObject<{
684
684
  role: string;
685
685
  type: "admin" | "member" | "superadmin";
686
686
  user_id: string;
687
- read_scope?: "self" | "all" | undefined;
688
- write_scope?: "self" | "all" | "none" | undefined;
687
+ read_scope?: "all" | "self" | undefined;
688
+ write_scope?: "all" | "self" | "none" | undefined;
689
689
  }, {
690
690
  role: string;
691
691
  type: "admin" | "member" | "superadmin";
692
692
  user_id: string;
693
- read_scope?: "self" | "all" | undefined;
694
- write_scope?: "self" | "all" | "none" | undefined;
693
+ read_scope?: "all" | "self" | undefined;
694
+ write_scope?: "all" | "self" | "none" | undefined;
695
695
  }>;
696
696
  export declare const removeUserRoleSchema: z.ZodObject<{
697
697
  user_id: z.ZodString;
@@ -1196,19 +1196,19 @@ export declare const createBotSchema: z.ZodObject<{
1196
1196
  }>, "many">>;
1197
1197
  }, "strip", z.ZodTypeAny, {
1198
1198
  name: string;
1199
- description?: string | undefined;
1200
1199
  roles?: {
1201
1200
  role: string;
1202
1201
  type: string;
1203
1202
  }[] | undefined;
1203
+ description?: string | undefined;
1204
1204
  display_name?: string | undefined;
1205
1205
  }, {
1206
1206
  name: string;
1207
- description?: string | undefined;
1208
1207
  roles?: {
1209
1208
  role: string;
1210
1209
  type: string;
1211
1210
  }[] | undefined;
1211
+ description?: string | undefined;
1212
1212
  display_name?: string | undefined;
1213
1213
  }>;
1214
1214
  export declare const updateBotSchema: z.ZodObject<{
@@ -1277,15 +1277,15 @@ export declare const applyThrottleSchema: z.ZodObject<{
1277
1277
  }, "strip", z.ZodTypeAny, {
1278
1278
  appId: string;
1279
1279
  throttle: number;
1280
+ scope?: string | undefined;
1280
1281
  topic?: string | undefined;
1281
1282
  guid?: string | undefined;
1282
- scope?: string | undefined;
1283
1283
  }, {
1284
1284
  throttle: number;
1285
1285
  appId?: string | undefined;
1286
+ scope?: string | undefined;
1286
1287
  topic?: string | undefined;
1287
1288
  guid?: string | undefined;
1288
- scope?: string | undefined;
1289
1289
  }>;
1290
1290
  export declare const getStreamStatsSchema: z.ZodObject<{
1291
1291
  app_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -3420,21 +3420,21 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3420
3420
  markdown: z.ZodOptional<z.ZodString>;
3421
3421
  route: z.ZodOptional<z.ZodString>;
3422
3422
  }, "strip", z.ZodTypeAny, {
3423
- markdown?: string | undefined;
3424
3423
  route?: string | undefined;
3425
- }, {
3426
3424
  markdown?: string | undefined;
3425
+ }, {
3427
3426
  route?: string | undefined;
3427
+ markdown?: string | undefined;
3428
3428
  }>>;
3429
3429
  notPrimed: z.ZodOptional<z.ZodObject<{
3430
3430
  markdown: z.ZodOptional<z.ZodString>;
3431
3431
  route: z.ZodOptional<z.ZodString>;
3432
3432
  }, "strip", z.ZodTypeAny, {
3433
- markdown?: string | undefined;
3434
3433
  route?: string | undefined;
3435
- }, {
3436
3434
  markdown?: string | undefined;
3435
+ }, {
3437
3436
  route?: string | undefined;
3437
+ markdown?: string | undefined;
3438
3438
  }>>;
3439
3439
  enabled: z.ZodOptional<z.ZodBoolean>;
3440
3440
  }, "strip", z.ZodTypeAny, {
@@ -3578,12 +3578,12 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3578
3578
  }[];
3579
3579
  enabled?: boolean | undefined;
3580
3580
  fallback?: {
3581
- markdown?: string | undefined;
3582
3581
  route?: string | undefined;
3582
+ markdown?: string | undefined;
3583
3583
  } | undefined;
3584
3584
  notPrimed?: {
3585
- markdown?: string | undefined;
3586
3585
  route?: string | undefined;
3586
+ markdown?: string | undefined;
3587
3587
  } | undefined;
3588
3588
  }, {
3589
3589
  name: string;
@@ -3726,12 +3726,12 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3726
3726
  }[];
3727
3727
  enabled?: boolean | undefined;
3728
3728
  fallback?: {
3729
- markdown?: string | undefined;
3730
3729
  route?: string | undefined;
3730
+ markdown?: string | undefined;
3731
3731
  } | undefined;
3732
3732
  notPrimed?: {
3733
- markdown?: string | undefined;
3734
3733
  route?: string | undefined;
3734
+ markdown?: string | undefined;
3735
3735
  } | undefined;
3736
3736
  }>;
3737
3737
  export declare const deleteScanRuleSchema: z.ZodObject<{
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerTaskTools = registerTaskTools;
37
+ const caller_auth_1 = require("../caller-auth");
38
+ const helpers_1 = require("../../../api/escalations/helpers");
37
39
  const taskService = __importStar(require("../../../services/task"));
38
40
  const escalationService = __importStar(require("../../../services/escalation"));
39
41
  const schemas_1 = require("./schemas");
@@ -78,11 +80,14 @@ function registerTaskTools(server) {
78
80
  description: 'Get all tasks and escalations for a process (origin_id). ' +
79
81
  'Returns the full history of a multi-step workflow execution.',
80
82
  inputSchema: schemas_1.getProcessDetailSchema,
81
- }, async (args) => {
82
- const [tasks, escalations] = await Promise.all([
83
+ }, async (args, extra) => {
84
+ const caller = (0, caller_auth_1.externalCaller)(extra);
85
+ const [tasks, all] = await Promise.all([
83
86
  taskService.getProcessTasks(args.origin_id),
84
87
  escalationService.getEscalationsByOriginId(args.origin_id),
85
88
  ]);
89
+ const scope = caller ? await (0, helpers_1.getEscalationReadScope)(caller.userId) : null;
90
+ const escalations = scope ? all.filter((e) => (0, helpers_1.scopeAdmits)(scope, caller.userId, e)) : all;
86
91
  return {
87
92
  content: [{
88
93
  type: 'text',
@@ -38,7 +38,15 @@ const userService = __importStar(require("../../../services/user"));
38
38
  const roleService = __importStar(require("../../../services/role"));
39
39
  const list_schema_1 = require("../../../shared/list-schema");
40
40
  const users_1 = require("../../../api/users");
41
+ const capabilities_1 = require("../../../modules/capabilities");
42
+ const caller_auth_1 = require("../caller-auth");
41
43
  const schemas_1 = require("./schemas");
44
+ /** An MCP error for a refused decision; null when the call may go on. */
45
+ function refusal(decision) {
46
+ if (decision.allowed)
47
+ return null;
48
+ return { isError: true, content: [{ type: 'text', text: JSON.stringify({ error: decision.error }) }] };
49
+ }
42
50
  function registerUserTools(server) {
43
51
  // mirrors GET /api/users
44
52
  server.registerTool('list_users', {
@@ -75,7 +83,11 @@ function registerUserTools(server) {
75
83
  description: 'Create a new user account with optional roles. The user can then ' +
76
84
  'claim and resolve escalations for their assigned roles.',
77
85
  inputSchema: schemas_1.createUserSchema,
78
- }, async (args) => {
86
+ }, async (args, extra) => {
87
+ const caller = (0, caller_auth_1.externalCaller)(extra);
88
+ const refused = caller ? refusal(await (0, capabilities_1.mayGrantRoles)(caller.userId, args.roles)) : null;
89
+ if (refused)
90
+ return refused;
79
91
  // roles carry optional read_scope/write_scope (default all/all); createUser
80
92
  // normalizes admin/superadmin to all/all and stores member scope verbatim.
81
93
  for (const r of args.roles) {
@@ -106,7 +118,14 @@ function registerUserTools(server) {
106
118
  'read_scope=self + write_scope=self for a one-time user who only handles ' +
107
119
  'their own pre-assigned escalation).',
108
120
  inputSchema: schemas_1.addUserRoleSchema,
109
- }, async (args) => {
121
+ }, async (args, extra) => {
122
+ const caller = (0, caller_auth_1.externalCaller)(extra);
123
+ if (caller) {
124
+ const decision = await (0, capabilities_1.mayGrantRole)(caller.userId, { role: args.role, type: args.type });
125
+ if (!decision.allowed) {
126
+ return { isError: true, content: [{ type: 'text', text: JSON.stringify({ error: decision.error }) }] };
127
+ }
128
+ }
110
129
  const read = args.read_scope ?? userService.DEFAULT_READ_SCOPE;
111
130
  const write = args.write_scope ?? userService.DEFAULT_WRITE_SCOPE;
112
131
  if (!userService.isValidScopePair(read, write)) {
@@ -128,7 +147,11 @@ function registerUserTools(server) {
128
147
  title: 'Remove User Role',
129
148
  description: 'Remove a role from a user.',
130
149
  inputSchema: schemas_1.removeUserRoleSchema,
131
- }, async (args) => {
150
+ }, async (args, extra) => {
151
+ const caller = (0, caller_auth_1.externalCaller)(extra);
152
+ const refused = caller ? refusal(await (0, capabilities_1.mayRevokeRole)(caller.userId, args.user_id, args.role)) : null;
153
+ if (refused)
154
+ return refused;
132
155
  const removed = await userService.removeUserRole(args.user_id, args.role);
133
156
  if (!removed) {
134
157
  return {
@@ -148,7 +171,11 @@ function registerUserTools(server) {
148
171
  'rename preserves the value. Identity-binding keys (badge scheme target facets) assert ' +
149
172
  'uniqueness among active users.',
150
173
  inputSchema: schemas_1.patchUserPropertiesSchema,
151
- }, async (args) => {
174
+ }, async (args, extra) => {
175
+ const caller = (0, caller_auth_1.externalCaller)(extra);
176
+ const refused = caller ? refusal(await (0, capabilities_1.mayManageAccount)(caller.userId, args.user_id)) : null;
177
+ if (refused)
178
+ return refused;
152
179
  const result = await (0, users_1.patchUserProperties)({
153
180
  id: args.user_id,
154
181
  set: args.set,
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerWorkflowConfigTools = registerWorkflowConfigTools;
37
37
  const configService = __importStar(require("../../../services/config"));
38
+ const workflow_invocation_1 = require("../../../services/workflow-invocation");
39
+ const caller_auth_1 = require("../caller-auth");
38
40
  const lookup_cache_1 = require("../../../services/knowledge/lookup-cache");
39
41
  const lookup_refs_1 = require("../../../services/knowledge/lookup-refs");
40
42
  const ltconfig_1 = require("../../../modules/ltconfig");
@@ -101,7 +103,16 @@ function registerWorkflowConfigTools(server) {
101
103
  'to their defaults, so send the whole profile (start from get_workflow_config). ' +
102
104
  'Invalidates the config cache and restarts cron if schedule changes.',
103
105
  inputSchema: schemas_1.upsertWorkflowConfigSchema,
104
- }, async (args) => {
106
+ }, async (args, extra) => {
107
+ const caller = (0, caller_auth_1.externalCaller)(extra);
108
+ if (caller && args.execute_as) {
109
+ try {
110
+ await (0, workflow_invocation_1.assertMayActAs)(caller.userId, args.execute_as);
111
+ }
112
+ catch (err) {
113
+ return errorResult(err.message);
114
+ }
115
+ }
105
116
  if (args.icon && !(0, workflow_icons_1.isWorkflowIcon)(args.icon)) {
106
117
  return errorResult(`Unknown workflow icon "${args.icon}"; choose one of WORKFLOW_ICONS`);
107
118
  }
@@ -37,9 +37,26 @@ exports.registerWorkflowTools = registerWorkflowTools;
37
37
  const configService = __importStar(require("../../../services/config"));
38
38
  const registry_1 = require("../../../services/workers/registry");
39
39
  const workflow_invocation_1 = require("../../../services/workflow-invocation");
40
+ const caller_auth_1 = require("../caller-auth");
41
+ const capabilities_1 = require("../../../modules/capabilities");
42
+ const run_read_1 = require("./run-read");
40
43
  const workflowApi = __importStar(require("../../../api/workflows"));
41
44
  const workflow_state_1 = require("../../../shared/workflow-state");
42
45
  const schemas_1 = require("./schemas");
46
+ const SYSTEM_INVOKER = { userId: 'lt-system', role: 'superadmin' };
47
+ /**
48
+ * Who a workflow is invoked as. A `/mcp` caller must satisfy the workflow's
49
+ * invocation roles and becomes the envelope identity. Key scopes are left
50
+ * off: at `/mcp` they decide which invoke tool is listed, not whether the
51
+ * invocation is allowed. Internal calls invoke as lt-system.
52
+ */
53
+ async function resolveInvoker(workflowType, extra, executeAs) {
54
+ const caller = (0, caller_auth_1.externalCaller)(extra);
55
+ if (!caller)
56
+ return SYSTEM_INVOKER;
57
+ await (0, workflow_invocation_1.authorizeInvocation)({ workflowType, userId: caller.userId, executeAs });
58
+ return { userId: caller.userId, role: caller.role };
59
+ }
43
60
  function registerWorkflowTools(server) {
44
61
  // mirrors GET /api/workflows/discovered
45
62
  server.registerTool('list_discovered_workflows', {
@@ -99,8 +116,9 @@ function registerWorkflowTools(server) {
99
116
  'the payload must satisfy. Returns the workflow ID immediately; the ' +
100
117
  'workflow runs durably in the background.',
101
118
  inputSchema: schemas_1.invokeWorkflowSchema,
102
- }, async (args) => {
119
+ }, async (args, extra) => {
103
120
  const config = await configService.getWorkflowConfig(args.workflow_type);
121
+ const invoker = await resolveInvoker(args.workflow_type, extra, args.execute_as);
104
122
  const rejected = await inputSchemaRejection(config, args);
105
123
  if (rejected)
106
124
  return rejected;
@@ -112,7 +130,7 @@ function registerWorkflowTools(server) {
112
130
  // WorkflowOptions passthrough — parity with the HTTP invoke route, which
113
131
  // spreads extra body keys into options. signalIn stays service-forced.
114
132
  options: args.options,
115
- auth: { userId: 'lt-system', role: 'superadmin' },
133
+ auth: invoker,
116
134
  });
117
135
  return {
118
136
  content: [{
@@ -132,7 +150,7 @@ function registerWorkflowTools(server) {
132
150
  'flag fails with a clear error. Call get_workflow_config for the ' +
133
151
  'input_schema the payload must satisfy.',
134
152
  inputSchema: schemas_1.invokeWorkflowSchema,
135
- }, async (args) => {
153
+ }, async (args, extra) => {
136
154
  const config = await configService.getWorkflowConfig(args.workflow_type);
137
155
  if (!config?.invocable) {
138
156
  return {
@@ -152,6 +170,7 @@ function registerWorkflowTools(server) {
152
170
  isError: true,
153
171
  };
154
172
  }
173
+ const invoker = await resolveInvoker(args.workflow_type, extra, args.execute_as);
155
174
  const rejected = await inputSchemaRejection(config, args);
156
175
  if (rejected)
157
176
  return rejected;
@@ -161,7 +180,7 @@ function registerWorkflowTools(server) {
161
180
  metadata: args.metadata,
162
181
  executeAs: args.execute_as,
163
182
  options: args.options,
164
- auth: { userId: 'lt-system', role: 'superadmin' },
183
+ auth: invoker,
165
184
  });
166
185
  return {
167
186
  content: [{
@@ -179,11 +198,14 @@ function registerWorkflowTools(server) {
179
198
  'Resolution is namespace-aware: pass app_id to read a workflow (e.g. a ' +
180
199
  'child) running in a non-default HotMesh namespace.',
181
200
  inputSchema: schemas_1.getWorkflowStatusSchema,
182
- }, async (args) => {
201
+ }, async (args, extra) => {
183
202
  const reply = (body, isError = false) => ({
184
203
  content: [{ type: 'text', text: JSON.stringify(body) }],
185
204
  ...(isError ? { isError: true } : {}),
186
205
  });
206
+ if (!(await (0, capabilities_1.mayReadWorkflowRun)(await (0, caller_auth_1.callerAuth)(extra), args.workflow_id))) {
207
+ return reply({ error: run_read_1.RUN_READ_DENIED }, true);
208
+ }
187
209
  const found = await workflowApi.getWorkflowResult({
188
210
  workflowId: args.workflow_id,
189
211
  appId: args.app_id,
@@ -38,6 +38,8 @@ const yamlDb = __importStar(require("../../../services/yaml-workflow/db"));
38
38
  const yamlGenerator = __importStar(require("../../../services/yaml-workflow/generator"));
39
39
  const yamlDeployer = __importStar(require("../../../services/yaml-workflow/deployer"));
40
40
  const yamlWorkers = __importStar(require("../../../services/yaml-workflow/workers"));
41
+ const deploy_1 = require("../../../api/yaml-workflows/deploy");
42
+ const caller_auth_1 = require("../caller-auth");
41
43
  const task_1 = require("../../../services/task");
42
44
  const schemas_1 = require("./schemas");
43
45
  function registerYamlWorkflowTools(server) {
@@ -170,7 +172,7 @@ function registerYamlWorkflowTools(server) {
170
172
  'register workers. All sibling workflows sharing the same app_id ' +
171
173
  'are deployed together.',
172
174
  inputSchema: schemas_1.deployYamlWorkflowSchema,
173
- }, async (args) => {
175
+ }, async (args, extra) => {
174
176
  const wf = await yamlDb.getYamlWorkflow(args.id);
175
177
  if (!wf) {
176
178
  return {
@@ -178,6 +180,10 @@ function registerYamlWorkflowTools(server) {
178
180
  isError: true,
179
181
  };
180
182
  }
183
+ const refused = await (0, deploy_1.deployRefusal)(wf, (0, caller_auth_1.externalCaller)(extra));
184
+ if (refused) {
185
+ return { content: [{ type: 'text', text: JSON.stringify({ error: refused.error }) }], isError: true };
186
+ }
181
187
  const deployVersion = wf.app_version || '1';
182
188
  const siblings = await yamlDb.listYamlWorkflowsByAppId(wf.app_id);
183
189
  await yamlDeployer.deployAppId(wf.app_id, deployVersion);
@@ -209,29 +215,15 @@ function registerYamlWorkflowTools(server) {
209
215
  description: 'Run a compiled YAML workflow. Deterministic — no LLM reasoning, ' +
210
216
  'just direct tool-to-tool data piping. Set sync=true to wait for result.',
211
217
  inputSchema: schemas_1.invokeYamlWorkflowSchema,
212
- }, async (args) => {
213
- const wf = await yamlDb.getYamlWorkflow(args.id);
214
- if (!wf) {
218
+ }, async (args, extra) => {
219
+ // Runs as the /mcp caller, under each step tool's gate.
220
+ const result = await (0, deploy_1.invokeYamlWorkflow)({ id: args.id, data: args.data, sync: args.sync, timeout: args.timeout }, (0, caller_auth_1.externalCaller)(extra));
221
+ if (result.error) {
215
222
  return {
216
- content: [{ type: 'text', text: JSON.stringify({ error: 'YAML workflow not found' }) }],
223
+ content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }],
217
224
  isError: true,
218
225
  };
219
226
  }
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
- };
227
+ return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
236
228
  });
237
229
  }
@@ -0,0 +1,18 @@
1
+ import type { LTApiAuth } from '../../types/sdk';
2
+ /** The `extra` argument the MCP SDK passes to a tool handler. */
3
+ export interface ToolCallExtra {
4
+ authInfo?: unknown;
5
+ }
6
+ /**
7
+ * The lt-system bot as an api principal. The escalation RBAC helpers query a
8
+ * uuid column, so the bot's real UUID is resolved once and cached rather than
9
+ * passing its external_id. The bot is a superadmin.
10
+ */
11
+ export declare function systemAuth(): Promise<LTApiAuth>;
12
+ /**
13
+ * The authenticated caller when the call arrived at `/mcp`. The SDK forwards
14
+ * `req.auth` as `authInfo`; internal dispatch passes no `extra`.
15
+ */
16
+ export declare function externalCaller(extra?: ToolCallExtra): LTApiAuth | undefined;
17
+ /** The external caller, or the lt-system principal for internal calls. */
18
+ export declare function callerAuth(extra?: ToolCallExtra): Promise<LTApiAuth>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.systemAuth = systemAuth;
4
+ exports.externalCaller = externalCaller;
5
+ exports.callerAuth = callerAuth;
6
+ const iam_1 = require("../../services/iam");
7
+ let systemPrincipalId = null;
8
+ /**
9
+ * The lt-system bot as an api principal. The escalation RBAC helpers query a
10
+ * uuid column, so the bot's real UUID is resolved once and cached rather than
11
+ * passing its external_id. The bot is a superadmin.
12
+ */
13
+ async function systemAuth() {
14
+ if (!systemPrincipalId)
15
+ systemPrincipalId = await (0, iam_1.ensureSystemBot)();
16
+ return { userId: systemPrincipalId, role: 'superadmin' };
17
+ }
18
+ /**
19
+ * The authenticated caller when the call arrived at `/mcp`. The SDK forwards
20
+ * `req.auth` as `authInfo`; internal dispatch passes no `extra`.
21
+ */
22
+ function externalCaller(extra) {
23
+ const auth = extra?.authInfo;
24
+ return auth?.userId ? auth : undefined;
25
+ }
26
+ /** The external caller, or the lt-system principal for internal calls. */
27
+ async function callerAuth(extra) {
28
+ return externalCaller(extra) ?? systemAuth();
29
+ }
@@ -37,6 +37,7 @@ exports.createClaudeCodeServer = createClaudeCodeServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
39
  const logger_1 = require("../../lib/logger");
40
+ const registered_tools_1 = require("../../services/mcp/registered-tools");
40
41
  const claudeCode = __importStar(require("../activities/claude-code"));
41
42
  // ── Schemas ──────────────────────────────────────────────────────────────────
42
43
  const executeTaskSchema = zod_1.z.object({
@@ -105,6 +106,6 @@ async function createClaudeCodeServer(options) {
105
106
  content: [{ type: 'text', text: JSON.stringify(result) }],
106
107
  };
107
108
  });
108
- logger_1.loggerRegistry.info(`[lt-mcp:claude-code] ${name} ready (2 tools registered)`);
109
+ logger_1.loggerRegistry.info(`[lt-mcp:claude-code] ${name} ready (${(0, registered_tools_1.registeredToolCount)(instance)} tools registered)`);
109
110
  return instance;
110
111
  }
@@ -5,6 +5,7 @@ exports.getDbServer = getDbServer;
5
5
  exports.stopDbServer = stopDbServer;
6
6
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
7
7
  const logger_1 = require("../../../lib/logger");
8
+ const registered_tools_1 = require("../../../services/mcp/registered-tools");
8
9
  const tools_1 = require("./tools");
9
10
  let server = null;
10
11
  /**
@@ -28,7 +29,7 @@ async function createDbServer(options) {
28
29
  server = instance;
29
30
  }
30
31
  (0, tools_1.registerTools)(instance);
31
- logger_1.loggerRegistry.info(`[lt-mcp:db-server] ${name} ready (6 tools registered)`);
32
+ logger_1.loggerRegistry.info(`[lt-mcp:db-server] ${name} ready (${(0, registered_tools_1.registeredToolCount)(instance)} tools registered)`);
32
33
  return instance;
33
34
  }
34
35
  /**
@@ -38,6 +38,7 @@ const path = __importStar(require("path"));
38
38
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
39
39
  const zod_1 = require("zod");
40
40
  const logger_1 = require("../../lib/logger");
41
+ const registered_tools_1 = require("../../services/mcp/registered-tools");
41
42
  const publish_1 = require("../../lib/events/publish");
42
43
  const fileStorage = __importStar(require("../activities/file-storage"));
43
44
  const MIME_MAP = {
@@ -116,6 +117,6 @@ async function createFileStorageServer(options) {
116
117
  }
117
118
  return { content: [{ type: 'text', text: JSON.stringify(result) }] };
118
119
  });
119
- logger_1.loggerRegistry.info(`[lt-mcp:file-storage] ${name} ready (4 tools registered)`);
120
+ logger_1.loggerRegistry.info(`[lt-mcp:file-storage] ${name} ready (${(0, registered_tools_1.registeredToolCount)(instance)} tools registered)`);
120
121
  return instance;
121
122
  }
@@ -37,6 +37,7 @@ exports.createHttpFetchServer = createHttpFetchServer;
37
37
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
38
38
  const zod_1 = require("zod");
39
39
  const logger_1 = require("../../lib/logger");
40
+ const registered_tools_1 = require("../../services/mcp/registered-tools");
40
41
  const http = __importStar(require("../activities/http"));
41
42
  const httpRequestSchema = zod_1.z.object({
42
43
  url: zod_1.z.string().describe('URL to request'),
@@ -95,6 +96,6 @@ async function createHttpFetchServer(options) {
95
96
  return { content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }], isError: true };
96
97
  }
97
98
  });
98
- logger_1.loggerRegistry.info(`[lt-mcp:http-fetch] ${name} ready (3 tools registered)`);
99
+ logger_1.loggerRegistry.info(`[lt-mcp:http-fetch] ${name} ready (${(0, registered_tools_1.registeredToolCount)(instance)} tools registered)`);
99
100
  return instance;
100
101
  }
@@ -39,6 +39,8 @@ 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 logger_1 = require("../../lib/logger");
42
+ const caller_auth_1 = require("./caller-auth");
43
+ const registered_tools_1 = require("../../services/mcp/registered-tools");
42
44
  const escalationService = __importStar(require("../../services/escalation"));
43
45
  const resolver_validation_1 = require("../../services/escalation/resolver-validation");
44
46
  const enforcement_cache_1 = require("../../services/role/enforcement-cache");
@@ -275,11 +277,13 @@ async function createHumanQueueServer(options) {
275
277
  + 'escalation and wakes the waiting workflow with the full item collection. Duplicate or undeclared '
276
278
  + 'item keys are rejected. The payload validates against the same form_schema a single-item resolve uses.',
277
279
  inputSchema: human_queue_schemas_1.resolveBatchItemSchema,
278
- }, async (args) => {
280
+ }, async (args, extra) => {
279
281
  const rejected = await checkResolveToolPayload(args.escalation_id, args.payload);
280
282
  if (rejected)
281
283
  return rejected;
282
- const result = await escalationService.resolveBatchItem(args.escalation_id, args.item_key, args.payload, { source: 'mcp_server' });
284
+ // The fill's actor is the caller: the person at /mcp, else lt-system.
285
+ const actor = (await (0, caller_auth_1.callerAuth)(extra)).userId;
286
+ const result = await escalationService.resolveBatchItem(args.escalation_id, args.item_key, args.payload, { source: 'mcp_server' }, undefined, undefined, actor);
283
287
  if (result.outcome !== 'accepted' && result.outcome !== 'completed') {
284
288
  return {
285
289
  content: [{
@@ -427,7 +431,7 @@ async function createHumanQueueServer(options) {
427
431
  }],
428
432
  };
429
433
  });
430
- logger_1.loggerRegistry.info(`[lt-mcp:server] ${name} ready (7 tools registered)`);
434
+ logger_1.loggerRegistry.info(`[lt-mcp:server] ${name} ready (${(0, registered_tools_1.registeredToolCount)(server)} tools registered)`);
431
435
  return server;
432
436
  }
433
437
  /** Get the current MCP server instance. */