@hotmeshio/long-tail 0.23.2 → 0.24.0

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 (483) hide show
  1. package/build/adapters/express.d.ts +9 -1
  2. package/build/adapters/express.js +32 -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/deploy.d.ts +10 -2
  26. package/build/api/yaml-workflows/deploy.js +42 -2
  27. package/build/lib/db/schemas/038_oauth_server.sql +46 -0
  28. package/build/lib/events/browser-view.d.ts +15 -0
  29. package/build/lib/events/browser-view.js +101 -0
  30. package/build/lib/events/nats-ws-filter.d.ts +29 -0
  31. package/build/lib/events/nats-ws-filter.js +94 -0
  32. package/build/lib/events/nats-ws-proxy.d.ts +2 -0
  33. package/build/lib/events/nats-ws-proxy.js +39 -5
  34. package/build/lib/events/nats-ws-server-filter.d.ts +16 -0
  35. package/build/lib/events/nats-ws-server-filter.js +56 -0
  36. package/build/lib/events/nats-ws-ticket.d.ts +10 -0
  37. package/build/lib/events/nats-ws-ticket.js +42 -0
  38. package/build/lib/events/socketio.d.ts +10 -1
  39. package/build/lib/events/socketio.js +10 -3
  40. package/build/lib/http/index.d.ts +27 -0
  41. package/build/lib/http/index.js +55 -0
  42. package/build/modules/auth.d.ts +15 -24
  43. package/build/modules/auth.js +43 -126
  44. package/build/modules/capabilities.d.ts +62 -0
  45. package/build/modules/capabilities.js +188 -0
  46. package/build/modules/config.d.ts +14 -0
  47. package/build/modules/config.js +20 -0
  48. package/build/modules/defaults.d.ts +10 -0
  49. package/build/modules/defaults.js +12 -1
  50. package/build/modules/mcp-auth.d.ts +11 -0
  51. package/build/modules/mcp-auth.js +56 -0
  52. package/build/modules/oauth-server.d.ts +18 -0
  53. package/build/modules/oauth-server.js +40 -0
  54. package/build/routes/agents.js +46 -14
  55. package/build/routes/announcements.js +2 -2
  56. package/build/routes/auth-sso.js +2 -2
  57. package/build/routes/auth.js +2 -2
  58. package/build/routes/bot-accounts.js +26 -3
  59. package/build/routes/capabilities.js +4 -4
  60. package/build/routes/controlplane.js +2 -2
  61. package/build/routes/dba.js +2 -2
  62. package/build/routes/delegation.js +2 -2
  63. package/build/routes/diagnostics.js +2 -2
  64. package/build/routes/docs.js +2 -2
  65. package/build/routes/domain.js +2 -2
  66. package/build/routes/escalations/accumulate.d.ts +1 -1
  67. package/build/routes/escalations/acting.d.ts +1 -1
  68. package/build/routes/escalations/analytics.d.ts +1 -1
  69. package/build/routes/escalations/bulk.d.ts +1 -1
  70. package/build/routes/escalations/facets.d.ts +1 -1
  71. package/build/routes/escalations/index.js +2 -2
  72. package/build/routes/escalations/list.d.ts +1 -1
  73. package/build/routes/escalations/metadata.d.ts +1 -1
  74. package/build/routes/escalations/related.d.ts +1 -1
  75. package/build/routes/escalations/resolve.d.ts +1 -1
  76. package/build/routes/escalations/single.d.ts +1 -1
  77. package/build/routes/escalations/single.js +1 -1
  78. package/build/routes/exports.js +14 -13
  79. package/build/routes/file-browser.js +9 -8
  80. package/build/routes/files.js +2 -2
  81. package/build/routes/index.js +4 -2
  82. package/build/routes/insight.js +5 -4
  83. package/build/routes/knowledge.js +2 -2
  84. package/build/routes/maintenance.js +2 -2
  85. package/build/routes/mcp-endpoint.d.ts +3 -1
  86. package/build/routes/mcp-endpoint.js +18 -8
  87. package/build/routes/mcp.js +35 -15
  88. package/build/routes/me.js +2 -2
  89. package/build/routes/namespaces.js +4 -3
  90. package/build/routes/nats-credentials.js +27 -3
  91. package/build/routes/oauth-server/authorize.d.ts +2 -0
  92. package/build/routes/oauth-server/authorize.js +108 -0
  93. package/build/routes/oauth-server/grants.d.ts +2 -0
  94. package/build/routes/oauth-server/grants.js +35 -0
  95. package/build/routes/oauth-server/index.d.ts +8 -0
  96. package/build/routes/oauth-server/index.js +52 -0
  97. package/build/routes/oauth-server/registration.d.ts +2 -0
  98. package/build/routes/oauth-server/registration.js +38 -0
  99. package/build/routes/oauth-server/token.d.ts +2 -0
  100. package/build/routes/oauth-server/token.js +100 -0
  101. package/build/routes/oauth-well-known.d.ts +8 -0
  102. package/build/routes/oauth-well-known.js +31 -0
  103. package/build/routes/oauth.js +2 -2
  104. package/build/routes/overview.js +2 -2
  105. package/build/routes/personas.js +2 -2
  106. package/build/routes/pipelines.js +6 -5
  107. package/build/routes/roles.js +2 -2
  108. package/build/routes/scan-codes.js +2 -2
  109. package/build/routes/settings.js +2 -2
  110. package/build/routes/tasks.js +5 -5
  111. package/build/routes/topics.js +21 -9
  112. package/build/routes/users.js +25 -22
  113. package/build/routes/workflow-sets.js +13 -12
  114. package/build/routes/workflows/config.js +15 -2
  115. package/build/routes/workflows/discovery.js +2 -2
  116. package/build/routes/workflows/index.js +2 -2
  117. package/build/routes/workflows/invocation.js +11 -10
  118. package/build/routes/yaml-workflows/cron.js +19 -6
  119. package/build/routes/yaml-workflows/crud.js +13 -12
  120. package/build/routes/yaml-workflows/deployment.js +11 -10
  121. package/build/routes/yaml-workflows/index.js +2 -2
  122. package/build/routes/yaml-workflows/versions.js +2 -2
  123. package/build/services/agent/authority.d.ts +14 -0
  124. package/build/services/agent/authority.js +53 -0
  125. package/build/services/auth/bot-api-key.d.ts +2 -0
  126. package/build/services/auth/bot-api-key.js +10 -0
  127. package/build/services/auth/oauth-server/access-token.d.ts +36 -0
  128. package/build/services/auth/oauth-server/access-token.js +80 -0
  129. package/build/services/auth/oauth-server/authorization.d.ts +47 -0
  130. package/build/services/auth/oauth-server/authorization.js +54 -0
  131. package/build/services/auth/oauth-server/constants.d.ts +11 -0
  132. package/build/services/auth/oauth-server/constants.js +16 -0
  133. package/build/services/auth/oauth-server/index.d.ts +3 -0
  134. package/build/services/auth/oauth-server/index.js +26 -0
  135. package/build/services/auth/oauth-server/metadata.d.ts +21 -0
  136. package/build/services/auth/oauth-server/metadata.js +53 -0
  137. package/build/services/auth/oauth-server/registration.d.ts +42 -0
  138. package/build/services/auth/oauth-server/registration.js +134 -0
  139. package/build/services/auth/oauth-server/sql.d.ts +34 -0
  140. package/build/services/auth/oauth-server/sql.js +123 -0
  141. package/build/services/auth/oauth-server/store.d.ts +74 -0
  142. package/build/services/auth/oauth-server/store.js +151 -0
  143. package/build/services/auth/sql.d.ts +1 -0
  144. package/build/services/auth/sql.js +3 -1
  145. package/build/services/escalation/queries.js +7 -2
  146. package/build/services/export/index.d.ts +10 -0
  147. package/build/services/export/index.js +27 -0
  148. package/build/services/invocation-access.d.ts +25 -4
  149. package/build/services/invocation-access.js +39 -7
  150. package/build/services/mcp/client/connection-dispatch.d.ts +6 -1
  151. package/build/services/mcp/client/connection-dispatch.js +3 -2
  152. package/build/services/mcp/client/connection-lifecycle.d.ts +10 -2
  153. package/build/services/mcp/client/connection-lifecycle.js +45 -7
  154. package/build/services/mcp/client/connection-test.js +2 -6
  155. package/build/services/mcp/client/connection.d.ts +1 -1
  156. package/build/services/mcp/client/connection.js +3 -1
  157. package/build/services/mcp/client/index.d.ts +2 -2
  158. package/build/services/mcp/client/index.js +4 -1
  159. package/build/services/mcp/client/network-transport.d.ts +12 -0
  160. package/build/services/mcp/client/network-transport.js +20 -0
  161. package/build/services/mcp/client/tools.d.ts +13 -0
  162. package/build/services/mcp/client/tools.js +18 -0
  163. package/build/services/mcp/db-server/index.js +2 -1
  164. package/build/services/mcp/external-server.d.ts +9 -4
  165. package/build/services/mcp/external-server.js +34 -11
  166. package/build/services/mcp/playwright-server/index.js +2 -1
  167. package/build/services/mcp/registered-tools.d.ts +3 -0
  168. package/build/services/mcp/registered-tools.js +7 -0
  169. package/build/services/mcp/server-lifecycle.js +2 -1
  170. package/build/services/workflow-invocation.d.ts +16 -3
  171. package/build/services/workflow-invocation.js +42 -10
  172. package/build/services/yaml-workflow/deployer.d.ts +10 -2
  173. package/build/services/yaml-workflow/deployer.js +17 -5
  174. package/build/services/yaml-workflow/invoke.js +27 -26
  175. package/build/start/config.js +7 -0
  176. package/build/start/index.js +4 -22
  177. package/build/start/server.d.ts +6 -4
  178. package/build/start/server.js +11 -35
  179. package/build/start/socket-auth.js +2 -1
  180. package/build/start/workers.js +1 -1
  181. package/build/system/mcp-servers/admin/agent-subscriptions.js +24 -1
  182. package/build/system/mcp-servers/admin/agents.js +25 -2
  183. package/build/system/mcp-servers/admin/announcements.js +3 -2
  184. package/build/system/mcp-servers/admin/bot-accounts.js +37 -5
  185. package/build/system/mcp-servers/admin/escalations.d.ts +3 -5
  186. package/build/system/mcp-servers/admin/escalations.js +74 -70
  187. package/build/system/mcp-servers/admin/exports.js +7 -1
  188. package/build/system/mcp-servers/admin/index.js +24 -25
  189. package/build/system/mcp-servers/admin/overview.d.ts +2 -2
  190. package/build/system/mcp-servers/admin/run-read.d.ts +2 -0
  191. package/build/system/mcp-servers/admin/run-read.js +5 -0
  192. package/build/system/mcp-servers/admin/scan-codes.d.ts +2 -2
  193. package/build/system/mcp-servers/admin/scan-codes.js +5 -11
  194. package/build/system/mcp-servers/admin/schemas.d.ts +20 -20
  195. package/build/system/mcp-servers/admin/tasks.js +7 -2
  196. package/build/system/mcp-servers/admin/users.js +31 -4
  197. package/build/system/mcp-servers/admin/workflow-config.js +12 -1
  198. package/build/system/mcp-servers/admin/workflows.js +27 -5
  199. package/build/system/mcp-servers/admin/yaml-workflows.js +7 -1
  200. package/build/system/mcp-servers/caller-auth.d.ts +18 -0
  201. package/build/system/mcp-servers/caller-auth.js +29 -0
  202. package/build/system/mcp-servers/claude-code.js +2 -1
  203. package/build/system/mcp-servers/db-query/index.js +2 -1
  204. package/build/system/mcp-servers/file-storage.js +2 -1
  205. package/build/system/mcp-servers/http-fetch.js +2 -1
  206. package/build/system/mcp-servers/human-queue.js +7 -3
  207. package/build/system/mcp-servers/oauth.js +31 -4
  208. package/build/system/mcp-servers/schema-exchange.js +2 -1
  209. package/build/system/mcp-servers/vision.d.ts +1 -0
  210. package/build/system/mcp-servers/vision.js +17 -7
  211. package/build/system/seed/tool-manifests-admin.d.ts +2 -17985
  212. package/build/system/seed/tool-manifests-admin.js +121 -121
  213. package/build/system/seed/tool-manifests-data.d.ts +8 -374
  214. package/build/system/seed/tool-manifests-data.js +22 -4
  215. package/build/system/seed/tool-manifests-escalation.d.ts +2 -352
  216. package/build/system/seed/tool-manifests-escalation.js +11 -1
  217. package/build/system/seed/tool-manifests-events.d.ts +2 -116
  218. package/build/system/seed/tool-manifests-events.js +6 -2
  219. package/build/system/seed/tool-manifests-knowledge.d.ts +2 -221
  220. package/build/system/seed/tool-manifests-knowledge.js +41 -1
  221. package/build/system/seed/tool-manifests-workflows.d.ts +2 -71
  222. package/build/system/seed/tool-manifests-workflows.js +3 -1
  223. package/build/system/workflows/shared/principal-tools.d.ts +20 -0
  224. package/build/system/workflows/shared/principal-tools.js +64 -0
  225. package/build/system/workflows/shared/tool-executor.js +21 -11
  226. package/build/system/workflows/shared/tool-loader.js +8 -1
  227. package/build/tsconfig.tsbuildinfo +1 -1
  228. package/build/types/auth.d.ts +1 -1
  229. package/build/types/capability.d.ts +14 -0
  230. package/build/types/capability.js +2 -0
  231. package/build/types/events.d.ts +1 -1
  232. package/build/types/index.d.ts +3 -1
  233. package/build/types/mcp.d.ts +3 -1
  234. package/build/types/oauth-server.d.ts +52 -0
  235. package/build/types/oauth-server.js +2 -0
  236. package/build/types/startup.d.ts +15 -7
  237. package/build/vitest.config.js +2 -1
  238. package/build/vitest.fast.config.d.ts +2 -0
  239. package/build/vitest.fast.config.js +20 -0
  240. package/build/vitest.llm.config.d.ts +2 -0
  241. package/build/vitest.llm.config.js +16 -0
  242. package/dashboard/dist/assets/{AdminDashboard-BPWsgMfZ.js → AdminDashboard-B3mkMIOT.js} +2 -2
  243. package/dashboard/dist/assets/{AdminDashboard-BPWsgMfZ.js.map → AdminDashboard-B3mkMIOT.js.map} +1 -1
  244. package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js → AgentConfigPage-CQj2B678.js} +2 -2
  245. package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js.map → AgentConfigPage-CQj2B678.js.map} +1 -1
  246. package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js → AgentDetailPage-CzrD8JJI.js} +3 -3
  247. package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js.map → AgentDetailPage-CzrD8JJI.js.map} +1 -1
  248. package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js → AgentsPage-jg2OFwyW.js} +2 -2
  249. package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js.map → AgentsPage-jg2OFwyW.js.map} +1 -1
  250. package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js → AvailableEscalationsPage-IS28XBRe.js} +2 -2
  251. package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js.map → AvailableEscalationsPage-IS28XBRe.js.map} +1 -1
  252. package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js → BotPicker-DvEJFpwS.js} +2 -2
  253. package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js.map → BotPicker-DvEJFpwS.js.map} +1 -1
  254. package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js → BulkAssignModal-BoQCi-YC.js} +2 -2
  255. package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js.map → BulkAssignModal-BoQCi-YC.js.map} +1 -1
  256. package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js → CapabilitiesPage-kwlrcb_t.js} +2 -2
  257. package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js.map → CapabilitiesPage-kwlrcb_t.js.map} +1 -1
  258. package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.js → CollapsibleSection-UMIV4KIj.js} +2 -2
  259. package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.js.map → CollapsibleSection-UMIV4KIj.js.map} +1 -1
  260. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js +2 -0
  261. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js.map +1 -0
  262. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js +2 -0
  263. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js.map +1 -0
  264. package/dashboard/dist/assets/{CountdownTimer-DxX72PwV.js → CountdownTimer-LG03dVgR.js} +2 -2
  265. package/dashboard/dist/assets/{CountdownTimer-DxX72PwV.js.map → CountdownTimer-LG03dVgR.js.map} +1 -1
  266. package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js → CredentialsPage-CaFQ6vLb.js} +2 -2
  267. package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js.map → CredentialsPage-CaFQ6vLb.js.map} +1 -1
  268. package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js → CronLabel-Co5j7tzW.js} +2 -2
  269. package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js.map → CronLabel-Co5j7tzW.js.map} +1 -1
  270. package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js → ElapsedCell-WJyE9G0T.js} +2 -2
  271. package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js.map → ElapsedCell-WJyE9G0T.js.map} +1 -1
  272. package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js → EntityTimelinePanel-CDFFfX9d.js} +2 -2
  273. package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js.map → EntityTimelinePanel-CDFFfX9d.js.map} +1 -1
  274. package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js → EscalationListSchemaPage-CMrUlaKI.js} +3 -3
  275. package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js.map → EscalationListSchemaPage-CMrUlaKI.js.map} +1 -1
  276. package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js → EscalationSchemaPage-Dx2Lyfrz.js} +2 -2
  277. package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js.map → EscalationSchemaPage-Dx2Lyfrz.js.map} +1 -1
  278. package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js → EscalationTimeline-d3nvshOk.js} +2 -2
  279. package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js.map → EscalationTimeline-d3nvshOk.js.map} +1 -1
  280. package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js → EscalationTitleSelect-DWQieOM9.js} +2 -2
  281. package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js.map → EscalationTitleSelect-DWQieOM9.js.map} +1 -1
  282. package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js → EscalationsOverview-BX8Cpi0X.js} +2 -2
  283. package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js.map → EscalationsOverview-BX8Cpi0X.js.map} +1 -1
  284. package/dashboard/dist/assets/{EventTable-gBzi5tIS.js → EventTable-D1-ITVXS.js} +2 -2
  285. package/dashboard/dist/assets/{EventTable-gBzi5tIS.js.map → EventTable-D1-ITVXS.js.map} +1 -1
  286. package/dashboard/dist/assets/{FilterBar-BulSsWb2.js → FilterBar-ABC9ctin.js} +2 -2
  287. package/dashboard/dist/assets/{FilterBar-BulSsWb2.js.map → FilterBar-ABC9ctin.js.map} +1 -1
  288. package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js → FormattedValue-k27T4bG7.js} +2 -2
  289. package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js.map → FormattedValue-k27T4bG7.js.map} +1 -1
  290. package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js → GraphInvokePage-DKUErxWc.js} +2 -2
  291. package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js.map → GraphInvokePage-DKUErxWc.js.map} +1 -1
  292. package/dashboard/dist/assets/{HomePage-CwXFz--v.js → HomePage-C6u9dIpR.js} +2 -2
  293. package/dashboard/dist/assets/{HomePage-CwXFz--v.js.map → HomePage-C6u9dIpR.js.map} +1 -1
  294. package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js → ListToolbar-gA5rFzkz.js} +2 -2
  295. package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js.map → ListToolbar-gA5rFzkz.js.map} +1 -1
  296. package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js → McpOverview-BOPo3J_i.js} +2 -2
  297. package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js.map → McpOverview-BOPo3J_i.js.map} +1 -1
  298. package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js → McpQueryDetailPage-BRVVi0Zh.js} +2 -2
  299. package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js.map → McpQueryDetailPage-BRVVi0Zh.js.map} +1 -1
  300. package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js → McpQueryPage-Dmbb6SAc.js} +2 -2
  301. package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js.map → McpQueryPage-Dmbb6SAc.js.map} +1 -1
  302. package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js → McpRunDetailPage-bMXNO-6V.js} +2 -2
  303. package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js.map → McpRunDetailPage-bMXNO-6V.js.map} +1 -1
  304. package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js → McpRunsPage-Bi9AMWja.js} +2 -2
  305. package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js.map → McpRunsPage-Bi9AMWja.js.map} +1 -1
  306. package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js → OperationsPage-CvR74ZUJ.js} +3 -3
  307. package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js.map → OperationsPage-CvR74ZUJ.js.map} +1 -1
  308. package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js → OperatorDashboard-DctmZw10.js} +2 -2
  309. package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js.map → OperatorDashboard-DctmZw10.js.map} +1 -1
  310. package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js → PersonaDetailPage-Ubqm2rQH.js} +2 -2
  311. package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js.map → PersonaDetailPage-Ubqm2rQH.js.map} +1 -1
  312. package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js → PersonasPage-BpFL2rpo.js} +2 -2
  313. package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js.map → PersonasPage-BpFL2rpo.js.map} +1 -1
  314. package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js → PortalPage-Dfc_Q02R.js} +2 -2
  315. package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js.map → PortalPage-Dfc_Q02R.js.map} +1 -1
  316. package/dashboard/dist/assets/ProcessDetailPage-liJspvQh.js +2 -0
  317. package/dashboard/dist/assets/{ProcessDetailPage-DNgCIwRl.js.map → ProcessDetailPage-liJspvQh.js.map} +1 -1
  318. package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.js → ProcessesListPage-C3OM5ZUy.js} +2 -2
  319. package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.js.map → ProcessesListPage-C3OM5ZUy.js.map} +1 -1
  320. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js +8 -0
  321. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js.map +1 -0
  322. package/dashboard/dist/assets/{RoleDetailPage-Bh_UcfYY.js → RoleDetailPage-CrlYCh-R.js} +2 -2
  323. package/dashboard/dist/assets/{RoleDetailPage-Bh_UcfYY.js.map → RoleDetailPage-CrlYCh-R.js.map} +1 -1
  324. package/dashboard/dist/assets/{RolesPage-CK17N7zz.js → RolesPage-BaazL_pt.js} +2 -2
  325. package/dashboard/dist/assets/{RolesPage-CK17N7zz.js.map → RolesPage-BaazL_pt.js.map} +1 -1
  326. package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js → RunAsSelector-DxuV0fa1.js} +2 -2
  327. package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js.map → RunAsSelector-DxuV0fa1.js.map} +1 -1
  328. package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js → ScanCodesPage-C0mvmYTq.js} +2 -2
  329. package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js.map → ScanCodesPage-C0mvmYTq.js.map} +1 -1
  330. package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js → ScanSchemeDetailPage-CiJgt5dZ.js} +2 -2
  331. package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js.map → ScanSchemeDetailPage-CiJgt5dZ.js.map} +1 -1
  332. package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js → ScanStationPage-DzGaXc40.js} +2 -2
  333. package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js.map → ScanStationPage-DzGaXc40.js.map} +1 -1
  334. package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js → StickyPagination-CqbjVY6T.js} +2 -2
  335. package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js.map → StickyPagination-CqbjVY6T.js.map} +1 -1
  336. package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js → StreamMessageDetail-wX3i0aqs.js} +2 -2
  337. package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js.map → StreamMessageDetail-wX3i0aqs.js.map} +1 -1
  338. package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js → SwimlaneTimeline-C50PsFoV.js} +2 -2
  339. package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js.map → SwimlaneTimeline-C50PsFoV.js.map} +1 -1
  340. package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js → TaskDetailPage-bbNSv4Ae.js} +2 -2
  341. package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js.map → TaskDetailPage-bbNSv4Ae.js.map} +1 -1
  342. package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js → TasksListPage-CDWnm_d9.js} +2 -2
  343. package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js.map → TasksListPage-CDWnm_d9.js.map} +1 -1
  344. package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js → TimeAgo-BLjqlfoX.js} +2 -2
  345. package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js.map → TimeAgo-BLjqlfoX.js.map} +1 -1
  346. package/dashboard/dist/assets/{TimestampCell-BUTgE244.js → TimestampCell-CnW0ENb5.js} +2 -2
  347. package/dashboard/dist/assets/{TimestampCell-BUTgE244.js.map → TimestampCell-CnW0ENb5.js.map} +1 -1
  348. package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js → ToolTestPanel-DkMgCB-k.js} +2 -2
  349. package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js.map → ToolTestPanel-DkMgCB-k.js.map} +1 -1
  350. package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js → TopicDetailPage-g3pljKKX.js} +2 -2
  351. package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js.map → TopicDetailPage-g3pljKKX.js.map} +1 -1
  352. package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js → TopicsPage-CVcCYdy-.js} +2 -2
  353. package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js.map → TopicsPage-CVcCYdy-.js.map} +1 -1
  354. package/dashboard/dist/assets/{UserName-ZFpWMaFF.js → UserName-D6zGIK2i.js} +2 -2
  355. package/dashboard/dist/assets/{UserName-ZFpWMaFF.js.map → UserName-D6zGIK2i.js.map} +1 -1
  356. package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js → WorkflowExecutionPage-B8g81FCJ.js} +2 -2
  357. package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js.map → WorkflowExecutionPage-B8g81FCJ.js.map} +1 -1
  358. package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js → WorkflowsDashboard-nxT3bv6W.js} +2 -2
  359. package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js.map → WorkflowsDashboard-nxT3bv6W.js.map} +1 -1
  360. package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js → WorkflowsOverview-grI-KAI2.js} +2 -2
  361. package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js.map → WorkflowsOverview-grI-KAI2.js.map} +1 -1
  362. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js → YamlWorkflowDetailPage-BoZ-hfBE.js} +2 -2
  363. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js.map → YamlWorkflowDetailPage-BoZ-hfBE.js.map} +1 -1
  364. package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js → YamlWorkflowsPage-Bf04rwRv.js} +2 -2
  365. package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js.map → YamlWorkflowsPage-Bf04rwRv.js.map} +1 -1
  366. package/dashboard/dist/assets/{agents-Dd7E-27d.js → agents-Dphpdi8l.js} +2 -2
  367. package/dashboard/dist/assets/{agents-Dd7E-27d.js.map → agents-Dphpdi8l.js.map} +1 -1
  368. package/dashboard/dist/assets/{bots-CpaYjZTk.js → bots-DIFE298x.js} +2 -2
  369. package/dashboard/dist/assets/{bots-CpaYjZTk.js.map → bots-DIFE298x.js.map} +1 -1
  370. package/dashboard/dist/assets/{capabilities-CNjg_qv1.js → capabilities-D7Y7LClY.js} +2 -2
  371. package/dashboard/dist/assets/{capabilities-CNjg_qv1.js.map → capabilities-D7Y7LClY.js.map} +1 -1
  372. package/dashboard/dist/assets/{controlplane-DgmvnAtU.js → controlplane-D1TGcYsS.js} +2 -2
  373. package/dashboard/dist/assets/{controlplane-DgmvnAtU.js.map → controlplane-D1TGcYsS.js.map} +1 -1
  374. package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js → escalation-columns-cwZE6xyo.js} +2 -2
  375. package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js.map → escalation-columns-cwZE6xyo.js.map} +1 -1
  376. package/dashboard/dist/assets/{index-x5z73M9N.js → index-BzYcUPdD.js} +2 -2
  377. package/dashboard/dist/assets/{index-x5z73M9N.js.map → index-BzYcUPdD.js.map} +1 -1
  378. package/dashboard/dist/assets/index-CeCtqujG.js +67 -0
  379. package/dashboard/dist/assets/index-CeCtqujG.js.map +1 -0
  380. package/dashboard/dist/assets/{index-RIFT3RlO.js → index-ChV7pBjM.js} +2 -2
  381. package/dashboard/dist/assets/{index-RIFT3RlO.js.map → index-ChV7pBjM.js.map} +1 -1
  382. package/dashboard/dist/assets/{index-OfO0173w.js → index-CniRa65p.js} +2 -2
  383. package/dashboard/dist/assets/{index-OfO0173w.js.map → index-CniRa65p.js.map} +1 -1
  384. package/dashboard/dist/assets/{index-ByBy9M3L.js → index-CxdjT1Yk.js} +2 -2
  385. package/dashboard/dist/assets/{index-ByBy9M3L.js.map → index-CxdjT1Yk.js.map} +1 -1
  386. package/dashboard/dist/assets/{index-C_K7OlzT.js → index-DAvi5_2T.js} +2 -2
  387. package/dashboard/dist/assets/{index-C_K7OlzT.js.map → index-DAvi5_2T.js.map} +1 -1
  388. package/dashboard/dist/assets/{index-BrwqtXRh.js → index-DN-kX7hL.js} +2 -2
  389. package/dashboard/dist/assets/{index-BrwqtXRh.js.map → index-DN-kX7hL.js.map} +1 -1
  390. package/dashboard/dist/assets/index-Dl_8hbYI.js +2 -0
  391. package/dashboard/dist/assets/index-Dl_8hbYI.js.map +1 -0
  392. package/dashboard/dist/assets/{index-D4Dlznn9.js → index-DpKOr311.js} +2 -2
  393. package/dashboard/dist/assets/{index-D4Dlznn9.js.map → index-DpKOr311.js.map} +1 -1
  394. package/dashboard/dist/assets/{index-CnOvJz6U.js → index-Dy1wWu2e.js} +2 -2
  395. package/dashboard/dist/assets/{index-CnOvJz6U.js.map → index-Dy1wWu2e.js.map} +1 -1
  396. package/dashboard/dist/assets/{index-BT1Ms5Q5.js → index-HLu98Sqh.js} +2 -2
  397. package/dashboard/dist/assets/{index-BT1Ms5Q5.js.map → index-HLu98Sqh.js.map} +1 -1
  398. package/dashboard/dist/assets/{index-BFASQ7_X.js → index-ag2pCAPu.js} +2 -2
  399. package/dashboard/dist/assets/{index-BFASQ7_X.js.map → index-ag2pCAPu.js.map} +1 -1
  400. package/dashboard/dist/assets/{index-BsHVgWH6.js → index-gkxPN7Vx.js} +2 -2
  401. package/dashboard/dist/assets/{index-BsHVgWH6.js.map → index-gkxPN7Vx.js.map} +1 -1
  402. package/dashboard/dist/assets/index-m9A3UYst.css +1 -0
  403. package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js → knowledge-DnMs-SOJ.js} +2 -2
  404. package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js.map → knowledge-DnMs-SOJ.js.map} +1 -1
  405. package/dashboard/dist/assets/{mcp-NY4iL0L-.js → mcp-CwW-K3r4.js} +2 -2
  406. package/dashboard/dist/assets/{mcp-NY4iL0L-.js.map → mcp-CwW-K3r4.js.map} +1 -1
  407. package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js → mcp-query-BZt5e8_Q.js} +2 -2
  408. package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js.map → mcp-query-BZt5e8_Q.js.map} +1 -1
  409. package/dashboard/dist/assets/{personas-Fy-f7QQd.js → personas-UA-Xn60f.js} +2 -2
  410. package/dashboard/dist/assets/{personas-Fy-f7QQd.js.map → personas-UA-Xn60f.js.map} +1 -1
  411. package/dashboard/dist/assets/{pipelines-DKiuozxV.js → pipelines-Cu3PARum.js} +2 -2
  412. package/dashboard/dist/assets/{pipelines-DKiuozxV.js.map → pipelines-Cu3PARum.js.map} +1 -1
  413. package/dashboard/dist/assets/{tasks-CdM1Rkk9.js → tasks-BO6h8GJE.js} +2 -2
  414. package/dashboard/dist/assets/{tasks-CdM1Rkk9.js.map → tasks-BO6h8GJE.js.map} +1 -1
  415. package/dashboard/dist/assets/{topics-XNy2mf3n.js → topics-CWjCR-17.js} +2 -2
  416. package/dashboard/dist/assets/{topics-XNy2mf3n.js.map → topics-CWjCR-17.js.map} +1 -1
  417. package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js → useDebouncedValue-6t0jx1RB.js} +2 -2
  418. package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js.map → useDebouncedValue-6t0jx1RB.js.map} +1 -1
  419. package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js → useNamespace-CqpoQx6D.js} +2 -2
  420. package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js.map → useNamespace-CqpoQx6D.js.map} +1 -1
  421. package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js → useYamlActivityEvents-hmCQQwzB.js} +2 -2
  422. package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js.map → useYamlActivityEvents-hmCQQwzB.js.map} +1 -1
  423. package/dashboard/dist/assets/{validate-DcGWN82Y.js → validate-BIRn4a6d.js} +2 -2
  424. package/dashboard/dist/assets/{validate-DcGWN82Y.js.map → validate-BIRn4a6d.js.map} +1 -1
  425. package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.js → yaml-workflows-ziUdZhKY.js} +2 -2
  426. package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.js.map → yaml-workflows-ziUdZhKY.js.map} +1 -1
  427. package/dashboard/dist/index.html +2 -2
  428. package/docs/agents.md +3 -1
  429. package/docs/api/http/agents.md +15 -1
  430. package/docs/api/http/escalations.md +3 -3
  431. package/docs/api/http/exports.md +3 -1
  432. package/docs/api/http/file-browser.md +3 -1
  433. package/docs/api/http/mcp-endpoint.md +5 -2
  434. package/docs/api/http/mcp-servers.md +34 -4
  435. package/docs/api/http/namespaces.md +2 -0
  436. package/docs/api/http/pipelines.md +2 -0
  437. package/docs/api/http/roles.md +11 -8
  438. package/docs/api/http/service-accounts.md +8 -2
  439. package/docs/api/http/settings.md +29 -2
  440. package/docs/api/http/tasks.md +3 -1
  441. package/docs/api/http/topics.md +7 -1
  442. package/docs/api/http/users.md +8 -2
  443. package/docs/api/http/workflows.md +25 -10
  444. package/docs/api/http/yaml-workflows.md +21 -0
  445. package/docs/api/mcp/admin.md +409 -49
  446. package/docs/api/mcp/file-storage.md +4 -0
  447. package/docs/api/mcp/http-fetch.md +6 -2
  448. package/docs/api/mcp/human-queue.md +53 -0
  449. package/docs/api/mcp/index.md +13 -10
  450. package/docs/api/mcp/knowledge.md +34 -0
  451. package/docs/api/mcp/oauth.md +1 -1
  452. package/docs/api/mcp/ortho.md +113 -0
  453. package/docs/api/mcp/vision.md +1 -1
  454. package/docs/api/sdk/bot-accounts.md +1 -0
  455. package/docs/api/sdk/escalations.md +2 -2
  456. package/docs/api/sdk/mcp.md +2 -2
  457. package/docs/api/sdk/settings.md +1 -1
  458. package/docs/api/sdk/tasks.md +2 -2
  459. package/docs/api/sdk/workflows.md +2 -2
  460. package/docs/api/sdk/yaml-workflows.md +1 -1
  461. package/docs/architecture.md +3 -1
  462. package/docs/auth.md +3 -2
  463. package/docs/cloud.md +7 -2
  464. package/docs/dashboard.md +16 -7
  465. package/docs/data.md +1 -1
  466. package/docs/escalation-strategies.md +9 -20
  467. package/docs/events.md +6 -0
  468. package/docs/iam.md +7 -5
  469. package/docs/mcp.md +159 -210
  470. package/docs/oauth-and-delegation.md +32 -21
  471. package/docs/topics.md +2 -0
  472. package/docs/workflows.md +14 -112
  473. package/package.json +5 -3
  474. package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js +0 -2
  475. package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js.map +0 -1
  476. package/dashboard/dist/assets/ProcessDetailPage-DNgCIwRl.js +0 -2
  477. package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js +0 -8
  478. package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js.map +0 -1
  479. package/dashboard/dist/assets/index-CtlBjl8o.js +0 -2
  480. package/dashboard/dist/assets/index-CtlBjl8o.js.map +0 -1
  481. package/dashboard/dist/assets/index-LRYC__mE.js +0 -67
  482. package/dashboard/dist/assets/index-LRYC__mE.js.map +0 -1
  483. package/dashboard/dist/assets/index-MYI2_Xb3.css +0 -1
@@ -33,15 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const api = __importStar(require("../api/capabilities"));
38
- const router = (0, express_1.Router)();
38
+ const router = (0, http_1.Router)();
39
39
  /**
40
40
  * GET /api/capabilities
41
41
  * List all platform capabilities grouped by category.
42
42
  */
43
- router.get('/', async (_req, res) => {
44
- const result = await api.listCapabilities();
43
+ router.get('/', async (req, res) => {
44
+ const result = await api.listCapabilities(req.auth);
45
45
  res.status(result.status).json(result.data ?? { error: result.error });
46
46
  });
47
47
  exports.default = router;
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const auth_1 = require("../modules/auth");
38
38
  const api = __importStar(require("../api/controlplane"));
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  /**
41
41
  * GET /api/controlplane/apps
42
42
  * List available HotMesh application namespaces.
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const api = __importStar(require("../api/dba"));
38
38
  const auth_1 = require("../modules/auth");
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  /**
41
41
  * POST /api/dba/prune
42
42
  * Prune expired jobs, streams, and execution artifacts.
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const express_1 = require("express");
3
+ const http_1 = require("../lib/http");
4
4
  const delegation_1 = require("../services/auth/delegation");
5
5
  const service_token_1 = require("../services/auth/service-token");
6
6
  const oauth_1 = require("../services/oauth");
7
- const router = (0, express_1.Router)();
7
+ const router = (0, http_1.Router)();
8
8
  /**
9
9
  * GET /api/delegation/oauth/:provider/token
10
10
  *
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const api = __importStar(require("../api/diagnostics"));
38
38
  const auth_1 = require("../modules/auth");
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  const VALID_SECTIONS = new Set(['events', 'streams']);
41
41
  /** Parse a comma-separated `include` query param into the recognized heavy sections. */
42
42
  function parseInclude(raw) {
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  function projectRoot() {
41
41
  const candidates = [
42
42
  path.join(__dirname, '..'),
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const auth_1 = require("../modules/auth");
38
38
  const api = __importStar(require("../api/domain"));
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  /**
41
41
  * GET /api/domain
42
42
  * The deployment's domain dictionary: `{ doc, version, updated_at }`, or
@@ -1,4 +1,4 @@
1
- import type { Router } from 'express';
1
+ import type { Router } from '../../lib/http';
2
2
  /**
3
3
  * Open-accumulator routes. The literal single-segment paths are registered
4
4
  * before the parameterized routes so /:id never shadows them; the /:id/*
@@ -1,4 +1,4 @@
1
- import type { Request, Response } from 'express';
1
+ import type { Request, Response } from '../../lib/http';
2
2
  import type { LTApiAuth } from '../../types/sdk';
3
3
  /** The header a shared station device rides its badge grant on. */
4
4
  export declare const ACTING_TOKEN_HEADER = "x-lt-acting-token";
@@ -1,4 +1,4 @@
1
- import type { Router } from 'express';
1
+ import type { Router } from '../../lib/http';
2
2
  /**
3
3
  * Escalation analytics HTTP surface — grouped membership/dwell aggregates and
4
4
  * per-entity timelines over the interval time-series. Read-only; the api layer
@@ -1,2 +1,2 @@
1
- import { Router } from 'express';
1
+ import { Router } from '../../lib/http';
2
2
  export declare function registerBulkRoutes(router: Router): void;
@@ -1,4 +1,4 @@
1
- import { Router } from 'express';
1
+ import { Router } from '../../lib/http';
2
2
  /**
3
3
  * Faceted-routing HTTP surface — pond search + batch claim. Each operation targets a
4
4
  * single pond `role` and is RBAC-scoped to it (the api layer enforces the gate). These
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const express_1 = require("express");
3
+ const http_1 = require("../../lib/http");
4
4
  const list_1 = require("./list");
5
5
  const bulk_1 = require("./bulk");
6
6
  const metadata_1 = require("./metadata");
@@ -10,7 +10,7 @@ const resolve_1 = require("./resolve");
10
10
  const facets_1 = require("./facets");
11
11
  const analytics_1 = require("./analytics");
12
12
  const related_1 = require("./related");
13
- const router = (0, express_1.Router)();
13
+ const router = (0, http_1.Router)();
14
14
  // Registration order matters: literal paths before parameterized /:id routes.
15
15
  // GET /, /available, /types, /stats
16
16
  (0, list_1.registerListRoutes)(router);
@@ -1,2 +1,2 @@
1
- import { Router } from 'express';
1
+ import { Router } from '../../lib/http';
2
2
  export declare function registerListRoutes(router: Router): void;
@@ -1,4 +1,4 @@
1
- import type { Router } from 'express';
1
+ import type { Router } from '../../lib/http';
2
2
  /**
3
3
  * Register metadata-based escalation lookup routes.
4
4
  * Must be registered BEFORE parameterized /:id routes.
@@ -1,4 +1,4 @@
1
- import type { Router } from 'express';
1
+ import type { Router } from '../../lib/http';
2
2
  /**
3
3
  * Related sets for role list views. The role's stored list schema declares
4
4
  * the sets; the caller names the role, the page's host rows, and the schema
@@ -1,2 +1,2 @@
1
- import { Router } from 'express';
1
+ import { Router } from '../../lib/http';
2
2
  export declare function registerResolveRoutes(router: Router): void;
@@ -1,2 +1,2 @@
1
- import { Router } from 'express';
1
+ import { Router } from '../../lib/http';
2
2
  export declare function registerSingleRoutes(router: Router): void;
@@ -53,7 +53,7 @@ function registerSingleRoutes(router) {
53
53
  router.get('/by-workflow/:workflowId', async (req, res) => {
54
54
  const result = await api.getEscalationsByWorkflowId({
55
55
  workflowId: req.params.workflowId,
56
- });
56
+ }, req.auth);
57
57
  res.status(result.status).json(result.data ?? { error: result.error });
58
58
  });
59
59
  // -- Parameterized routes (must come after literal paths) --
@@ -33,14 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
+ const auth_1 = require("../modules/auth");
37
38
  const api = __importStar(require("../api/exports"));
38
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
39
40
  /**
40
41
  * GET /api/workflow-states/jobs
41
42
  * List workflow jobs with optional filtering and pagination.
42
43
  */
43
- router.get('/jobs', async (req, res) => {
44
+ router.get('/jobs', auth_1.requireBuilder, async (req, res) => {
44
45
  const app_id = (req.query.app_id || req.query.namespace);
45
46
  if (!app_id) {
46
47
  res.status(400).json({ error: 'app_id (or namespace) query parameter is required' });
@@ -63,7 +64,7 @@ router.get('/jobs', async (req, res) => {
63
64
  * GET /api/workflow-states/:workflowId
64
65
  * Export the full workflow state using HotMesh's durable export.
65
66
  */
66
- router.get('/:workflowId', async (req, res) => {
67
+ router.get('/:workflowId', auth_1.requireBuilder, async (req, res) => {
67
68
  const allow = req.query.allow
68
69
  ? req.query.allow.split(',')
69
70
  : undefined;
@@ -72,7 +73,7 @@ router.get('/:workflowId', async (req, res) => {
72
73
  : undefined;
73
74
  const values = req.query.values === 'false' ? false : undefined;
74
75
  const result = await api.exportWorkflowState({
75
- workflowId: req.params.workflowId,
76
+ workflowId: String(req.params.workflowId),
76
77
  allow,
77
78
  block,
78
79
  values,
@@ -83,9 +84,9 @@ router.get('/:workflowId', async (req, res) => {
83
84
  * GET /api/workflow-states/:workflowId/execution
84
85
  * Export workflow state as a structured execution event history.
85
86
  */
86
- router.get('/:workflowId/execution', async (req, res) => {
87
+ router.get('/:workflowId/execution', auth_1.requireWorkflowReader, async (req, res) => {
87
88
  const result = await api.exportWorkflowExecution({
88
- workflowId: req.params.workflowId,
89
+ workflowId: String(req.params.workflowId),
89
90
  excludeSystem: req.query.excludeSystem === 'true',
90
91
  omitResults: req.query.omitResults === 'true',
91
92
  mode: req.query.mode || undefined,
@@ -100,9 +101,9 @@ router.get('/:workflowId/execution', async (req, res) => {
100
101
  * The workflow's input and output envelopes — two narrow lookups, no event
101
102
  * stream. Output is null with status 'running' until the workflow completes.
102
103
  */
103
- router.get('/:workflowId/envelopes', async (req, res) => {
104
+ router.get('/:workflowId/envelopes', auth_1.requireBuilder, async (req, res) => {
104
105
  const result = await api.getWorkflowEnvelopes({
105
- workflowId: req.params.workflowId,
106
+ workflowId: String(req.params.workflowId),
106
107
  });
107
108
  res.status(result.status).json(result.data ?? { error: result.error });
108
109
  });
@@ -110,9 +111,9 @@ router.get('/:workflowId/envelopes', async (req, res) => {
110
111
  * GET /api/workflow-states/:workflowId/status
111
112
  * Return only the numeric status semaphore.
112
113
  */
113
- router.get('/:workflowId/status', async (req, res) => {
114
+ router.get('/:workflowId/status', auth_1.requireBuilder, async (req, res) => {
114
115
  const result = await api.getWorkflowStatus({
115
- workflowId: req.params.workflowId,
116
+ workflowId: String(req.params.workflowId),
116
117
  });
117
118
  res.status(result.status).json(result.data ?? { error: result.error });
118
119
  });
@@ -120,9 +121,9 @@ router.get('/:workflowId/status', async (req, res) => {
120
121
  * GET /api/workflow-states/:workflowId/state
121
122
  * Return the current job state of the workflow.
122
123
  */
123
- router.get('/:workflowId/state', async (req, res) => {
124
+ router.get('/:workflowId/state', auth_1.requireBuilder, async (req, res) => {
124
125
  const result = await api.getWorkflowState({
125
- workflowId: req.params.workflowId,
126
+ workflowId: String(req.params.workflowId),
126
127
  });
127
128
  res.status(result.status).json(result.data ?? { error: result.error });
128
129
  });
@@ -36,18 +36,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- const express_1 = require("express");
39
+ const http_1 = require("../lib/http");
40
+ const auth_1 = require("../modules/auth");
40
41
  const path_1 = __importDefault(require("path"));
41
42
  const api = __importStar(require("../api/files"));
42
43
  const storage_1 = require("../lib/storage");
43
44
  const mime_1 = require("../lib/storage/mime");
44
- const router = (0, express_1.Router)();
45
+ const router = (0, http_1.Router)();
45
46
  /**
46
47
  * GET /api/file-browser/browse
47
48
  * List files and directories at a given prefix.
48
49
  * Query: ?prefix=screenshots/&pageSize=100&continuationToken=...
49
50
  */
50
- router.get('/browse', async (req, res) => {
51
+ router.get('/browse', auth_1.requireBuilder, async (req, res) => {
51
52
  const result = await api.browseFiles({
52
53
  prefix: req.query.prefix,
53
54
  pageSize: req.query.pageSize ? parseInt(req.query.pageSize, 10) : undefined,
@@ -59,7 +60,7 @@ router.get('/browse', async (req, res) => {
59
60
  * GET /api/file-browser/metadata/*
60
61
  * Get metadata for a single file.
61
62
  */
62
- router.get('/metadata/{*filePath}', async (req, res) => {
63
+ router.get('/metadata/{*filePath}', auth_1.requireBuilder, async (req, res) => {
63
64
  const raw = req.params.filePath;
64
65
  const filePath = Array.isArray(raw) ? raw.join('/') : raw;
65
66
  if (!filePath) {
@@ -74,7 +75,7 @@ router.get('/metadata/{*filePath}', async (req, res) => {
74
75
  * Generate a time-limited signed URL for sharing.
75
76
  * Body: { path, expiresIn } — expiresIn in seconds (3600, 21600, 86400, 604800, 2592000)
76
77
  */
77
- router.post('/signed-url', async (req, res) => {
78
+ router.post('/signed-url', auth_1.requireBuilder, async (req, res) => {
78
79
  const { path: filePath, expiresIn } = req.body;
79
80
  if (!filePath || !expiresIn) {
80
81
  res.status(400).json({ error: 'path and expiresIn are required' });
@@ -90,7 +91,7 @@ router.post('/signed-url', async (req, res) => {
90
91
  * DELETE /api/file-browser/delete/*
91
92
  * Permanently delete a file.
92
93
  */
93
- router.delete('/delete/{*filePath}', async (req, res) => {
94
+ router.delete('/delete/{*filePath}', auth_1.requireBuilder, async (req, res) => {
94
95
  const raw = req.params.filePath;
95
96
  const filePath = Array.isArray(raw) ? raw.join('/') : raw;
96
97
  if (!filePath) {
@@ -104,7 +105,7 @@ router.delete('/delete/{*filePath}', async (req, res) => {
104
105
  * GET /api/file-browser/download/*
105
106
  * Download a file with Content-Disposition: attachment.
106
107
  */
107
- router.get('/download/{*filePath}', async (req, res) => {
108
+ router.get('/download/{*filePath}', auth_1.requireBuilder, async (req, res) => {
108
109
  const raw = req.params.filePath;
109
110
  const filePath = Array.isArray(raw) ? raw.join('/') : raw;
110
111
  if (!filePath) {
@@ -129,7 +130,7 @@ router.get('/download/{*filePath}', async (req, res) => {
129
130
  * Query: ?path=images/photo.png (target path including filename)
130
131
  * Body: raw file bytes (Content-Type should match the file type)
131
132
  */
132
- router.post('/upload', async (req, res) => {
133
+ router.post('/upload', auth_1.requireBuilder, async (req, res) => {
133
134
  const targetPath = req.query.path;
134
135
  if (!targetPath) {
135
136
  res.status(400).json({ error: 'path query parameter required (e.g., ?path=images/photo.png)' });
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const express_1 = require("express");
6
+ const http_1 = require("../lib/http");
7
7
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
8
  const storage_1 = require("../lib/storage");
9
9
  const mime_1 = require("../lib/storage/mime");
10
- const router = (0, express_1.Router)();
10
+ const router = (0, http_1.Router)();
11
11
  /**
12
12
  * GET /api/files/*
13
13
  * Serve files from managed file storage.
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const express_1 = require("express");
6
+ const http_1 = require("../lib/http");
7
7
  const auth_1 = require("../modules/auth");
8
8
  const auth_2 = __importDefault(require("./auth"));
9
9
  const auth_sso_1 = __importDefault(require("./auth-sso"));
10
10
  const oauth_1 = __importDefault(require("./oauth"));
11
+ const oauth_server_1 = __importDefault(require("./oauth-server"));
11
12
  const delegation_1 = __importDefault(require("./delegation"));
12
13
  const tasks_1 = __importDefault(require("./tasks"));
13
14
  const escalations_1 = __importDefault(require("./escalations"));
@@ -39,11 +40,12 @@ const nats_credentials_1 = __importDefault(require("./nats-credentials"));
39
40
  const scan_codes_1 = __importDefault(require("./scan-codes"));
40
41
  const domain_1 = __importDefault(require("./domain"));
41
42
  const announcements_1 = __importDefault(require("./announcements"));
42
- const router = (0, express_1.Router)();
43
+ const router = (0, http_1.Router)();
43
44
  // Public routes (no auth required — they handle their own auth)
44
45
  router.use('/auth', auth_2.default);
45
46
  router.use('/auth', auth_sso_1.default);
46
47
  router.use('/auth/oauth', oauth_1.default);
48
+ router.use('/oauth', oauth_server_1.default);
47
49
  router.use('/delegation', delegation_1.default);
48
50
  router.use('/files', files_1.default);
49
51
  router.use('/settings', settings_1.default);
@@ -33,9 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
+ const auth_1 = require("../modules/auth");
37
38
  const api = __importStar(require("../api/insight"));
38
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
39
40
  /**
40
41
  * POST /api/insight/mcp-query
41
42
  * Run a general-purpose MCP query using all available tools.
@@ -52,7 +53,7 @@ router.post('/mcp-query', async (req, res) => {
52
53
  * The LLM reasons about tool schemas and constructs the YAML declaratively.
53
54
  * Body: { prompt: string, tags?: string[], wait?: boolean, feedback?: string, prior_yaml?: string }
54
55
  */
55
- router.post('/build-workflow', async (req, res) => {
56
+ router.post('/build-workflow', auth_1.requireBuilder, async (req, res) => {
56
57
  const { prompt, tags, wait, feedback, prior_yaml, answers, prior_questions } = req.body;
57
58
  const result = await api.buildWorkflow({ prompt, tags, wait, feedback, prior_yaml, answers, prior_questions }, req.auth ? { userId: req.auth.userId } : undefined);
58
59
  res.status(result.status).json(result.data ?? { error: result.error });
@@ -62,7 +63,7 @@ router.post('/build-workflow', async (req, res) => {
62
63
  * Refine a previously built workflow using execution feedback.
63
64
  * Body: { prompt: string, prior_yaml: string, feedback: string, tags?: string[], wait?: boolean }
64
65
  */
65
- router.post('/build-workflow/refine', async (req, res) => {
66
+ router.post('/build-workflow/refine', auth_1.requireBuilder, async (req, res) => {
66
67
  const { prompt, prior_yaml, feedback, tags, wait } = req.body;
67
68
  const result = await api.refineWorkflow({ prompt, prior_yaml, feedback, tags, wait }, req.auth ? { userId: req.auth.userId } : undefined);
68
69
  res.status(result.status).json(result.data ?? { error: result.error });
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const api = __importStar(require("../api/knowledge"));
38
38
  const auth_1 = require("../modules/auth");
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  // The knowledge store is a builder surface (superadmin or engineer) — the
41
41
  // same gate as the dashboard's Knowledge page. Members reach knowledge
42
42
  // content only through escalation lookup refs: an escalation's
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const express_1 = require("express");
36
+ const http_1 = require("../lib/http");
37
37
  const api = __importStar(require("../api/maintenance"));
38
38
  const auth_1 = require("../modules/auth");
39
- const router = (0, express_1.Router)();
39
+ const router = (0, http_1.Router)();
40
40
  /**
41
41
  * GET /api/config/maintenance
42
42
  * Return the current maintenance configuration.
@@ -6,7 +6,9 @@
6
6
  * streamable-http transport protocol.
7
7
  *
8
8
  * Stateless mode — each POST creates a fresh server+transport pair.
9
- * Auth via Bearer token (JWT or bot API key) in the Authorization header.
9
+ * Auth via Bearer token (JWT, bot API key, or OAuth access token) in the
10
+ * Authorization header.
11
+ * The caller sees only the tools whose manifest gate they hold.
10
12
  *
11
13
  * Mount at /mcp:
12
14
  * POST /mcp → JSON-RPC messages (initialize, tools/list, tools/call)
@@ -7,7 +7,9 @@
7
7
  * streamable-http transport protocol.
8
8
  *
9
9
  * Stateless mode — each POST creates a fresh server+transport pair.
10
- * Auth via Bearer token (JWT or bot API key) in the Authorization header.
10
+ * Auth via Bearer token (JWT, bot API key, or OAuth access token) in the
11
+ * Authorization header.
12
+ * The caller sees only the tools whose manifest gate they hold.
11
13
  *
12
14
  * Mount at /mcp:
13
15
  * POST /mcp → JSON-RPC messages (initialize, tools/list, tools/call)
@@ -15,19 +17,27 @@
15
17
  * DELETE /mcp → 405 (no sessions in stateless mode)
16
18
  */
17
19
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const express_1 = require("express");
20
+ const http_1 = require("../lib/http");
19
21
  const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
20
- const auth_1 = require("../modules/auth");
22
+ const mcp_auth_1 = require("../modules/mcp-auth");
23
+ const capabilities_1 = require("../modules/capabilities");
21
24
  const logger_1 = require("../lib/logger");
22
25
  const external_server_1 = require("../services/mcp/external-server");
23
26
  const exposure_1 = require("../services/mcp/exposure");
24
- const router = (0, express_1.Router)();
27
+ const router = (0, http_1.Router)();
28
+ /** The tool a single `tools/call` message names; undefined for anything else. */
29
+ function requestedToolName(body) {
30
+ const message = body;
31
+ if (message?.method !== 'tools/call')
32
+ return undefined;
33
+ return typeof message.params?.name === 'string' ? message.params.name : undefined;
34
+ }
25
35
  // POST /mcp — JSON-RPC messages
26
- router.post('/', auth_1.requireAuth, async (req, res) => {
36
+ router.post('/', mcp_auth_1.requireMcpAuth, async (req, res) => {
27
37
  try {
28
38
  const exposure = (0, exposure_1.getExposureConfig)();
29
39
  const callerScopes = req.auth?.scopes;
30
- const server = await (0, external_server_1.createUnifiedMcpServer)(exposure, callerScopes);
40
+ const server = await (0, external_server_1.createUnifiedMcpServer)((0, capabilities_1.capabilityAccess)(req.auth), exposure, callerScopes, requestedToolName(req.body));
31
41
  const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
32
42
  sessionIdGenerator: undefined, // stateless
33
43
  });
@@ -53,7 +63,7 @@ router.post('/', auth_1.requireAuth, async (req, res) => {
53
63
  }
54
64
  });
55
65
  // GET /mcp — SSE stream (not supported in stateless mode)
56
- router.get('/', auth_1.requireAuth, (_req, res) => {
66
+ router.get('/', mcp_auth_1.requireMcpAuth, (_req, res) => {
57
67
  res.status(405).json({
58
68
  jsonrpc: '2.0',
59
69
  error: { code: -32000, message: 'Method not allowed. Use POST for stateless requests.' },
@@ -61,7 +71,7 @@ router.get('/', auth_1.requireAuth, (_req, res) => {
61
71
  });
62
72
  });
63
73
  // DELETE /mcp — session close (not supported in stateless mode)
64
- router.delete('/', auth_1.requireAuth, (_req, res) => {
74
+ router.delete('/', mcp_auth_1.requireMcpAuth, (_req, res) => {
65
75
  res.status(405).json({
66
76
  jsonrpc: '2.0',
67
77
  error: { code: -32000, message: 'Method not allowed. Stateless mode has no sessions.' },