@hotmeshio/long-tail 0.23.1 → 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 (562) 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/index.d.ts +1 -0
  14. package/build/api/escalations/index.js +4 -1
  15. package/build/api/escalations/list.d.ts +5 -0
  16. package/build/api/escalations/list.js +19 -5
  17. package/build/api/escalations/metadata.js +3 -0
  18. package/build/api/escalations/related.d.ts +18 -0
  19. package/build/api/escalations/related.js +205 -0
  20. package/build/api/escalations/single.d.ts +3 -2
  21. package/build/api/escalations/single.js +8 -3
  22. package/build/api/mcp/tools.d.ts +12 -0
  23. package/build/api/mcp/tools.js +113 -9
  24. package/build/api/roles.js +4 -0
  25. package/build/api/scan-codes/choice.js +31 -7
  26. package/build/api/scan-codes/present.js +5 -1
  27. package/build/api/settings.d.ts +1 -1
  28. package/build/api/settings.js +12 -1
  29. package/build/api/tasks.d.ts +3 -3
  30. package/build/api/tasks.js +30 -7
  31. package/build/api/workflows/input-lookups.js +1 -1
  32. package/build/api/workflows/invocable.js +2 -2
  33. package/build/api/workflows/invocation.js +1 -1
  34. package/build/api/yaml-workflows/deploy.d.ts +10 -2
  35. package/build/api/yaml-workflows/deploy.js +42 -2
  36. package/build/lib/db/schemas/038_oauth_server.sql +46 -0
  37. package/build/lib/events/browser-view.d.ts +15 -0
  38. package/build/lib/events/browser-view.js +101 -0
  39. package/build/lib/events/nats-ws-filter.d.ts +29 -0
  40. package/build/lib/events/nats-ws-filter.js +94 -0
  41. package/build/lib/events/nats-ws-proxy.d.ts +2 -0
  42. package/build/lib/events/nats-ws-proxy.js +39 -5
  43. package/build/lib/events/nats-ws-server-filter.d.ts +16 -0
  44. package/build/lib/events/nats-ws-server-filter.js +56 -0
  45. package/build/lib/events/nats-ws-ticket.d.ts +10 -0
  46. package/build/lib/events/nats-ws-ticket.js +42 -0
  47. package/build/lib/events/socketio.d.ts +10 -1
  48. package/build/lib/events/socketio.js +10 -3
  49. package/build/lib/http/index.d.ts +27 -0
  50. package/build/lib/http/index.js +55 -0
  51. package/build/modules/auth.d.ts +15 -24
  52. package/build/modules/auth.js +43 -126
  53. package/build/modules/capabilities.d.ts +62 -0
  54. package/build/modules/capabilities.js +188 -0
  55. package/build/modules/config.d.ts +14 -0
  56. package/build/modules/config.js +20 -0
  57. package/build/modules/defaults.d.ts +10 -0
  58. package/build/modules/defaults.js +12 -1
  59. package/build/modules/display.d.ts +15 -0
  60. package/build/modules/display.js +27 -0
  61. package/build/modules/mcp-auth.d.ts +11 -0
  62. package/build/modules/mcp-auth.js +56 -0
  63. package/build/modules/oauth-server.d.ts +18 -0
  64. package/build/modules/oauth-server.js +40 -0
  65. package/build/routes/agents.js +46 -14
  66. package/build/routes/announcements.js +2 -2
  67. package/build/routes/auth-sso.js +2 -2
  68. package/build/routes/auth.js +2 -2
  69. package/build/routes/bot-accounts.js +26 -3
  70. package/build/routes/capabilities.js +4 -4
  71. package/build/routes/controlplane.js +2 -2
  72. package/build/routes/dba.js +2 -2
  73. package/build/routes/delegation.js +2 -2
  74. package/build/routes/diagnostics.js +2 -2
  75. package/build/routes/docs.js +2 -2
  76. package/build/routes/domain.js +2 -2
  77. package/build/routes/escalations/accumulate.d.ts +1 -1
  78. package/build/routes/escalations/acting.d.ts +1 -1
  79. package/build/routes/escalations/analytics.d.ts +1 -1
  80. package/build/routes/escalations/bulk.d.ts +1 -1
  81. package/build/routes/escalations/facets.d.ts +1 -1
  82. package/build/routes/escalations/index.js +5 -2
  83. package/build/routes/escalations/list.d.ts +1 -1
  84. package/build/routes/escalations/list.js +2 -0
  85. package/build/routes/escalations/metadata.d.ts +1 -1
  86. package/build/routes/escalations/related.d.ts +7 -0
  87. package/build/routes/escalations/related.js +60 -0
  88. package/build/routes/escalations/resolve.d.ts +1 -1
  89. package/build/routes/escalations/single.d.ts +1 -1
  90. package/build/routes/escalations/single.js +1 -1
  91. package/build/routes/exports.js +14 -13
  92. package/build/routes/file-browser.js +9 -8
  93. package/build/routes/files.js +2 -2
  94. package/build/routes/index.js +4 -2
  95. package/build/routes/insight.js +5 -4
  96. package/build/routes/knowledge.js +2 -2
  97. package/build/routes/maintenance.js +2 -2
  98. package/build/routes/mcp-endpoint.d.ts +3 -1
  99. package/build/routes/mcp-endpoint.js +18 -8
  100. package/build/routes/mcp.js +35 -15
  101. package/build/routes/me.js +2 -2
  102. package/build/routes/namespaces.js +4 -3
  103. package/build/routes/nats-credentials.js +27 -3
  104. package/build/routes/oauth-server/authorize.d.ts +2 -0
  105. package/build/routes/oauth-server/authorize.js +108 -0
  106. package/build/routes/oauth-server/grants.d.ts +2 -0
  107. package/build/routes/oauth-server/grants.js +35 -0
  108. package/build/routes/oauth-server/index.d.ts +8 -0
  109. package/build/routes/oauth-server/index.js +52 -0
  110. package/build/routes/oauth-server/registration.d.ts +2 -0
  111. package/build/routes/oauth-server/registration.js +38 -0
  112. package/build/routes/oauth-server/token.d.ts +2 -0
  113. package/build/routes/oauth-server/token.js +100 -0
  114. package/build/routes/oauth-well-known.d.ts +8 -0
  115. package/build/routes/oauth-well-known.js +31 -0
  116. package/build/routes/oauth.js +2 -2
  117. package/build/routes/overview.js +2 -2
  118. package/build/routes/personas.js +2 -2
  119. package/build/routes/pipelines.js +6 -5
  120. package/build/routes/roles.js +2 -2
  121. package/build/routes/scan-codes.js +2 -2
  122. package/build/routes/settings.js +2 -2
  123. package/build/routes/tasks.js +5 -5
  124. package/build/routes/topics.js +21 -9
  125. package/build/routes/users.js +25 -22
  126. package/build/routes/workflow-sets.js +13 -12
  127. package/build/routes/workflows/config.js +15 -2
  128. package/build/routes/workflows/discovery.js +2 -2
  129. package/build/routes/workflows/index.js +2 -2
  130. package/build/routes/workflows/invocation.js +11 -10
  131. package/build/routes/yaml-workflows/cron.js +19 -6
  132. package/build/routes/yaml-workflows/crud.js +13 -12
  133. package/build/routes/yaml-workflows/deployment.js +11 -10
  134. package/build/routes/yaml-workflows/index.js +2 -2
  135. package/build/routes/yaml-workflows/versions.js +2 -2
  136. package/build/scripts/consolidation-sim.d.ts +25 -0
  137. package/build/scripts/consolidation-sim.js +141 -0
  138. package/build/sdk/index.d.ts +12 -0
  139. package/build/sdk/index.js +2 -0
  140. package/build/services/agent/authority.d.ts +14 -0
  141. package/build/services/agent/authority.js +53 -0
  142. package/build/services/auth/bot-api-key.d.ts +2 -0
  143. package/build/services/auth/bot-api-key.js +10 -0
  144. package/build/services/auth/oauth-server/access-token.d.ts +36 -0
  145. package/build/services/auth/oauth-server/access-token.js +80 -0
  146. package/build/services/auth/oauth-server/authorization.d.ts +47 -0
  147. package/build/services/auth/oauth-server/authorization.js +54 -0
  148. package/build/services/auth/oauth-server/constants.d.ts +11 -0
  149. package/build/services/auth/oauth-server/constants.js +16 -0
  150. package/build/services/auth/oauth-server/index.d.ts +3 -0
  151. package/build/services/auth/oauth-server/index.js +26 -0
  152. package/build/services/auth/oauth-server/metadata.d.ts +21 -0
  153. package/build/services/auth/oauth-server/metadata.js +53 -0
  154. package/build/services/auth/oauth-server/registration.d.ts +42 -0
  155. package/build/services/auth/oauth-server/registration.js +134 -0
  156. package/build/services/auth/oauth-server/sql.d.ts +34 -0
  157. package/build/services/auth/oauth-server/sql.js +123 -0
  158. package/build/services/auth/oauth-server/store.d.ts +74 -0
  159. package/build/services/auth/oauth-server/store.js +151 -0
  160. package/build/services/auth/sql.d.ts +1 -0
  161. package/build/services/auth/sql.js +3 -1
  162. package/build/services/escalation/grouped-list.d.ts +19 -0
  163. package/build/services/escalation/grouped-list.js +54 -0
  164. package/build/services/escalation/index.d.ts +4 -0
  165. package/build/services/escalation/index.js +9 -1
  166. package/build/services/escalation/queries.d.ts +17 -13
  167. package/build/services/escalation/queries.js +38 -42
  168. package/build/services/escalation/read-scope-sql.d.ts +13 -0
  169. package/build/services/escalation/read-scope-sql.js +19 -0
  170. package/build/services/escalation/related.d.ts +58 -0
  171. package/build/services/escalation/related.js +196 -0
  172. package/build/services/export/index.d.ts +10 -0
  173. package/build/services/export/index.js +27 -0
  174. package/build/services/invocation-access.d.ts +25 -4
  175. package/build/services/invocation-access.js +39 -7
  176. package/build/services/mcp/client/connection-dispatch.d.ts +6 -1
  177. package/build/services/mcp/client/connection-dispatch.js +3 -2
  178. package/build/services/mcp/client/connection-lifecycle.d.ts +10 -2
  179. package/build/services/mcp/client/connection-lifecycle.js +45 -7
  180. package/build/services/mcp/client/connection-test.js +2 -6
  181. package/build/services/mcp/client/connection.d.ts +1 -1
  182. package/build/services/mcp/client/connection.js +3 -1
  183. package/build/services/mcp/client/index.d.ts +2 -2
  184. package/build/services/mcp/client/index.js +4 -1
  185. package/build/services/mcp/client/network-transport.d.ts +12 -0
  186. package/build/services/mcp/client/network-transport.js +20 -0
  187. package/build/services/mcp/client/tools.d.ts +13 -0
  188. package/build/services/mcp/client/tools.js +18 -0
  189. package/build/services/mcp/db-server/index.js +2 -1
  190. package/build/services/mcp/external-server.d.ts +9 -4
  191. package/build/services/mcp/external-server.js +34 -11
  192. package/build/services/mcp/playwright-server/index.js +2 -1
  193. package/build/services/mcp/registered-tools.d.ts +3 -0
  194. package/build/services/mcp/registered-tools.js +7 -0
  195. package/build/services/mcp/server-lifecycle.js +2 -1
  196. package/build/services/role/index.js +6 -0
  197. package/build/services/role/seed.js +4 -0
  198. package/build/services/scan-code/validate-facts.d.ts +1 -1
  199. package/build/services/scan-code/validate-facts.js +12 -1
  200. package/build/services/workflow-invocation.d.ts +16 -3
  201. package/build/services/workflow-invocation.js +42 -10
  202. package/build/services/yaml-workflow/deployer.d.ts +10 -2
  203. package/build/services/yaml-workflow/deployer.js +17 -5
  204. package/build/services/yaml-workflow/invoke.js +27 -26
  205. package/build/shared/form-validation/x-lt-scan.d.ts +8 -0
  206. package/build/shared/form-validation/x-lt-scan.js +20 -1
  207. package/build/shared/list-schema/index.d.ts +3 -0
  208. package/build/shared/list-schema/index.js +27 -0
  209. package/build/shared/list-schema/template.d.ts +14 -0
  210. package/build/shared/list-schema/template.js +85 -0
  211. package/build/shared/list-schema/types.d.ts +154 -0
  212. package/build/shared/list-schema/types.js +55 -0
  213. package/build/shared/list-schema/validate.d.ts +12 -0
  214. package/build/shared/list-schema/validate.js +204 -0
  215. package/build/shared/roles/segment.d.ts +22 -0
  216. package/build/shared/roles/segment.js +42 -0
  217. package/build/start/adapters.js +2 -0
  218. package/build/start/config.js +7 -0
  219. package/build/start/index.js +4 -22
  220. package/build/start/server.d.ts +6 -4
  221. package/build/start/server.js +11 -35
  222. package/build/start/socket-auth.js +2 -1
  223. package/build/start/workers.js +1 -1
  224. package/build/system/mcp-servers/admin/agent-subscriptions.js +24 -1
  225. package/build/system/mcp-servers/admin/agents.js +25 -2
  226. package/build/system/mcp-servers/admin/announcements.js +3 -2
  227. package/build/system/mcp-servers/admin/bot-accounts.js +37 -5
  228. package/build/system/mcp-servers/admin/escalations.d.ts +3 -5
  229. package/build/system/mcp-servers/admin/escalations.js +74 -70
  230. package/build/system/mcp-servers/admin/exports.js +7 -1
  231. package/build/system/mcp-servers/admin/index.js +24 -25
  232. package/build/system/mcp-servers/admin/overview.d.ts +2 -2
  233. package/build/system/mcp-servers/admin/run-read.d.ts +2 -0
  234. package/build/system/mcp-servers/admin/run-read.js +5 -0
  235. package/build/system/mcp-servers/admin/scan-codes.d.ts +2 -2
  236. package/build/system/mcp-servers/admin/scan-codes.js +5 -11
  237. package/build/system/mcp-servers/admin/schemas.d.ts +20 -20
  238. package/build/system/mcp-servers/admin/tasks.js +7 -2
  239. package/build/system/mcp-servers/admin/users.js +39 -4
  240. package/build/system/mcp-servers/admin/workflow-config.js +12 -1
  241. package/build/system/mcp-servers/admin/workflows.js +27 -5
  242. package/build/system/mcp-servers/admin/yaml-workflows.js +7 -1
  243. package/build/system/mcp-servers/caller-auth.d.ts +18 -0
  244. package/build/system/mcp-servers/caller-auth.js +29 -0
  245. package/build/system/mcp-servers/claude-code.js +2 -1
  246. package/build/system/mcp-servers/db-query/index.js +2 -1
  247. package/build/system/mcp-servers/file-storage.js +2 -1
  248. package/build/system/mcp-servers/http-fetch.js +2 -1
  249. package/build/system/mcp-servers/human-queue.js +7 -3
  250. package/build/system/mcp-servers/oauth.js +31 -4
  251. package/build/system/mcp-servers/schema-exchange.js +2 -1
  252. package/build/system/mcp-servers/vision.d.ts +1 -0
  253. package/build/system/mcp-servers/vision.js +17 -7
  254. package/build/system/seed/tool-manifests-admin.d.ts +2 -17985
  255. package/build/system/seed/tool-manifests-admin.js +121 -121
  256. package/build/system/seed/tool-manifests-data.d.ts +8 -374
  257. package/build/system/seed/tool-manifests-data.js +22 -4
  258. package/build/system/seed/tool-manifests-escalation.d.ts +2 -352
  259. package/build/system/seed/tool-manifests-escalation.js +11 -1
  260. package/build/system/seed/tool-manifests-events.d.ts +2 -116
  261. package/build/system/seed/tool-manifests-events.js +6 -2
  262. package/build/system/seed/tool-manifests-knowledge.d.ts +2 -221
  263. package/build/system/seed/tool-manifests-knowledge.js +41 -1
  264. package/build/system/seed/tool-manifests-workflows.d.ts +2 -71
  265. package/build/system/seed/tool-manifests-workflows.js +3 -1
  266. package/build/system/workflows/shared/principal-tools.d.ts +20 -0
  267. package/build/system/workflows/shared/principal-tools.js +64 -0
  268. package/build/system/workflows/shared/tool-executor.js +21 -11
  269. package/build/system/workflows/shared/tool-loader.js +8 -1
  270. package/build/tsconfig.tsbuildinfo +1 -1
  271. package/build/types/auth.d.ts +1 -1
  272. package/build/types/capability.d.ts +14 -0
  273. package/build/types/capability.js +2 -0
  274. package/build/types/events.d.ts +1 -1
  275. package/build/types/index.d.ts +5 -3
  276. package/build/types/index.js +2 -1
  277. package/build/types/mcp.d.ts +3 -1
  278. package/build/types/oauth-server.d.ts +52 -0
  279. package/build/types/oauth-server.js +2 -0
  280. package/build/types/scan-code/constants.d.ts +7 -0
  281. package/build/types/scan-code/constants.js +7 -1
  282. package/build/types/scan-code/response.d.ts +3 -2
  283. package/build/types/scan-code/rule.d.ts +6 -1
  284. package/build/types/startup.d.ts +23 -7
  285. package/build/vitest.config.js +2 -1
  286. package/build/vitest.fast.config.d.ts +2 -0
  287. package/build/vitest.fast.config.js +20 -0
  288. package/build/vitest.llm.config.d.ts +2 -0
  289. package/build/vitest.llm.config.js +16 -0
  290. package/dashboard/dist/assets/{AdminDashboard-DKrqLGjn.js → AdminDashboard-B3mkMIOT.js} +2 -2
  291. package/dashboard/dist/assets/{AdminDashboard-DKrqLGjn.js.map → AdminDashboard-B3mkMIOT.js.map} +1 -1
  292. package/dashboard/dist/assets/{AgentConfigPage-BoQhRW6U.js → AgentConfigPage-CQj2B678.js} +2 -2
  293. package/dashboard/dist/assets/{AgentConfigPage-BoQhRW6U.js.map → AgentConfigPage-CQj2B678.js.map} +1 -1
  294. package/dashboard/dist/assets/{AgentDetailPage-DZhzuZmO.js → AgentDetailPage-CzrD8JJI.js} +3 -3
  295. package/dashboard/dist/assets/{AgentDetailPage-DZhzuZmO.js.map → AgentDetailPage-CzrD8JJI.js.map} +1 -1
  296. package/dashboard/dist/assets/{AgentsPage-5MynmbWX.js → AgentsPage-jg2OFwyW.js} +2 -2
  297. package/dashboard/dist/assets/{AgentsPage-5MynmbWX.js.map → AgentsPage-jg2OFwyW.js.map} +1 -1
  298. package/dashboard/dist/assets/AvailableEscalationsPage-IS28XBRe.js +2 -0
  299. package/dashboard/dist/assets/AvailableEscalationsPage-IS28XBRe.js.map +1 -0
  300. package/dashboard/dist/assets/{BotPicker-C3LR6Sqy.js → BotPicker-DvEJFpwS.js} +2 -2
  301. package/dashboard/dist/assets/{BotPicker-C3LR6Sqy.js.map → BotPicker-DvEJFpwS.js.map} +1 -1
  302. package/dashboard/dist/assets/{BulkAssignModal-COjoOIIH.js → BulkAssignModal-BoQCi-YC.js} +2 -2
  303. package/dashboard/dist/assets/{BulkAssignModal-COjoOIIH.js.map → BulkAssignModal-BoQCi-YC.js.map} +1 -1
  304. package/dashboard/dist/assets/CapabilitiesPage-kwlrcb_t.js +2 -0
  305. package/dashboard/dist/assets/{CapabilitiesPage-DKxLvOfB.js.map → CapabilitiesPage-kwlrcb_t.js.map} +1 -1
  306. package/dashboard/dist/assets/{CollapsibleSection-Cz5sRx-r.js → CollapsibleSection-UMIV4KIj.js} +2 -2
  307. package/dashboard/dist/assets/{CollapsibleSection-Cz5sRx-r.js.map → CollapsibleSection-UMIV4KIj.js.map} +1 -1
  308. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js +2 -0
  309. package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js.map +1 -0
  310. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js +2 -0
  311. package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js.map +1 -0
  312. package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js +2 -0
  313. package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js.map +1 -0
  314. package/dashboard/dist/assets/{CredentialsPage-DhiHiPsG.js → CredentialsPage-CaFQ6vLb.js} +2 -2
  315. package/dashboard/dist/assets/{CredentialsPage-DhiHiPsG.js.map → CredentialsPage-CaFQ6vLb.js.map} +1 -1
  316. package/dashboard/dist/assets/{CronLabel-C9SkawB-.js → CronLabel-Co5j7tzW.js} +2 -2
  317. package/dashboard/dist/assets/{CronLabel-C9SkawB-.js.map → CronLabel-Co5j7tzW.js.map} +1 -1
  318. package/dashboard/dist/assets/DataTable-FjFhx0SE.js +2 -0
  319. package/dashboard/dist/assets/DataTable-FjFhx0SE.js.map +1 -0
  320. package/dashboard/dist/assets/{ElapsedCell-BeK1SUDK.js → ElapsedCell-WJyE9G0T.js} +2 -2
  321. package/dashboard/dist/assets/{ElapsedCell-BeK1SUDK.js.map → ElapsedCell-WJyE9G0T.js.map} +1 -1
  322. package/dashboard/dist/assets/{EntityTimelinePanel-BThdefKj.js → EntityTimelinePanel-CDFFfX9d.js} +2 -2
  323. package/dashboard/dist/assets/{EntityTimelinePanel-BThdefKj.js.map → EntityTimelinePanel-CDFFfX9d.js.map} +1 -1
  324. package/dashboard/dist/assets/{EscalationListSchemaPage-DlDIYb-p.js → EscalationListSchemaPage-CMrUlaKI.js} +3 -3
  325. package/dashboard/dist/assets/{EscalationListSchemaPage-DlDIYb-p.js.map → EscalationListSchemaPage-CMrUlaKI.js.map} +1 -1
  326. package/dashboard/dist/assets/{EscalationSchemaPage-CQt-Embr.js → EscalationSchemaPage-Dx2Lyfrz.js} +3 -3
  327. package/dashboard/dist/assets/{EscalationSchemaPage-CQt-Embr.js.map → EscalationSchemaPage-Dx2Lyfrz.js.map} +1 -1
  328. package/dashboard/dist/assets/EscalationTimeline-d3nvshOk.js +2 -0
  329. package/dashboard/dist/assets/EscalationTimeline-d3nvshOk.js.map +1 -0
  330. package/dashboard/dist/assets/{EscalationTitleSelect-Dewrv8wX.js → EscalationTitleSelect-DWQieOM9.js} +2 -2
  331. package/dashboard/dist/assets/{EscalationTitleSelect-Dewrv8wX.js.map → EscalationTitleSelect-DWQieOM9.js.map} +1 -1
  332. package/dashboard/dist/assets/{EscalationsOverview-BzH-Y-5x.js → EscalationsOverview-BX8Cpi0X.js} +2 -2
  333. package/dashboard/dist/assets/{EscalationsOverview-BzH-Y-5x.js.map → EscalationsOverview-BX8Cpi0X.js.map} +1 -1
  334. package/dashboard/dist/assets/{EventTable-C97m6IZv.js → EventTable-D1-ITVXS.js} +2 -2
  335. package/dashboard/dist/assets/{EventTable-C97m6IZv.js.map → EventTable-D1-ITVXS.js.map} +1 -1
  336. package/dashboard/dist/assets/{FilterBar-D-6xVHIw.js → FilterBar-ABC9ctin.js} +2 -2
  337. package/dashboard/dist/assets/{FilterBar-D-6xVHIw.js.map → FilterBar-ABC9ctin.js.map} +1 -1
  338. package/dashboard/dist/assets/FormattedValue-k27T4bG7.js +2 -0
  339. package/dashboard/dist/assets/FormattedValue-k27T4bG7.js.map +1 -0
  340. package/dashboard/dist/assets/{GraphInvokePage-Bwi8EF9Y.js → GraphInvokePage-DKUErxWc.js} +2 -2
  341. package/dashboard/dist/assets/{GraphInvokePage-Bwi8EF9Y.js.map → GraphInvokePage-DKUErxWc.js.map} +1 -1
  342. package/dashboard/dist/assets/{HomePage-Z_Q03C0z.js → HomePage-C6u9dIpR.js} +2 -2
  343. package/dashboard/dist/assets/{HomePage-Z_Q03C0z.js.map → HomePage-C6u9dIpR.js.map} +1 -1
  344. package/dashboard/dist/assets/{ListToolbar-_jWTw5no.js → ListToolbar-gA5rFzkz.js} +2 -2
  345. package/dashboard/dist/assets/{ListToolbar-_jWTw5no.js.map → ListToolbar-gA5rFzkz.js.map} +1 -1
  346. package/dashboard/dist/assets/{McpOverview-CjqTuP0N.js → McpOverview-BOPo3J_i.js} +2 -2
  347. package/dashboard/dist/assets/{McpOverview-CjqTuP0N.js.map → McpOverview-BOPo3J_i.js.map} +1 -1
  348. package/dashboard/dist/assets/{McpQueryDetailPage-leCsje1U.js → McpQueryDetailPage-BRVVi0Zh.js} +2 -2
  349. package/dashboard/dist/assets/{McpQueryDetailPage-leCsje1U.js.map → McpQueryDetailPage-BRVVi0Zh.js.map} +1 -1
  350. package/dashboard/dist/assets/{McpQueryPage-C-PyXYX4.js → McpQueryPage-Dmbb6SAc.js} +2 -2
  351. package/dashboard/dist/assets/{McpQueryPage-C-PyXYX4.js.map → McpQueryPage-Dmbb6SAc.js.map} +1 -1
  352. package/dashboard/dist/assets/{McpRunDetailPage-JDrr3uUQ.js → McpRunDetailPage-bMXNO-6V.js} +2 -2
  353. package/dashboard/dist/assets/{McpRunDetailPage-JDrr3uUQ.js.map → McpRunDetailPage-bMXNO-6V.js.map} +1 -1
  354. package/dashboard/dist/assets/{McpRunsPage-DERXQLgZ.js → McpRunsPage-Bi9AMWja.js} +2 -2
  355. package/dashboard/dist/assets/{McpRunsPage-DERXQLgZ.js.map → McpRunsPage-Bi9AMWja.js.map} +1 -1
  356. package/dashboard/dist/assets/{OperationsPage-B2DA7n9m.js → OperationsPage-CvR74ZUJ.js} +3 -3
  357. package/dashboard/dist/assets/OperationsPage-CvR74ZUJ.js.map +1 -0
  358. package/dashboard/dist/assets/OperatorDashboard-DctmZw10.js +2 -0
  359. package/dashboard/dist/assets/OperatorDashboard-DctmZw10.js.map +1 -0
  360. package/dashboard/dist/assets/{PersonaDetailPage-ChXwJ6u5.js → PersonaDetailPage-Ubqm2rQH.js} +2 -2
  361. package/dashboard/dist/assets/{PersonaDetailPage-ChXwJ6u5.js.map → PersonaDetailPage-Ubqm2rQH.js.map} +1 -1
  362. package/dashboard/dist/assets/{PersonasPage-BFFxncSE.js → PersonasPage-BpFL2rpo.js} +2 -2
  363. package/dashboard/dist/assets/{PersonasPage-BFFxncSE.js.map → PersonasPage-BpFL2rpo.js.map} +1 -1
  364. package/dashboard/dist/assets/PortalPage-Dfc_Q02R.js +2 -0
  365. package/dashboard/dist/assets/PortalPage-Dfc_Q02R.js.map +1 -0
  366. package/dashboard/dist/assets/ProcessDetailPage-liJspvQh.js +2 -0
  367. package/dashboard/dist/assets/{ProcessDetailPage-D7EYwW-j.js.map → ProcessDetailPage-liJspvQh.js.map} +1 -1
  368. package/dashboard/dist/assets/{ProcessesListPage-CakYRtnE.js → ProcessesListPage-C3OM5ZUy.js} +2 -2
  369. package/dashboard/dist/assets/{ProcessesListPage-CakYRtnE.js.map → ProcessesListPage-C3OM5ZUy.js.map} +1 -1
  370. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js +8 -0
  371. package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js.map +1 -0
  372. package/dashboard/dist/assets/{RoleDetailPage-CKbGwezP.js → RoleDetailPage-CrlYCh-R.js} +2 -2
  373. package/dashboard/dist/assets/{RoleDetailPage-CKbGwezP.js.map → RoleDetailPage-CrlYCh-R.js.map} +1 -1
  374. package/dashboard/dist/assets/{RolesPage-Czu7Zku4.js → RolesPage-BaazL_pt.js} +2 -2
  375. package/dashboard/dist/assets/{RolesPage-Czu7Zku4.js.map → RolesPage-BaazL_pt.js.map} +1 -1
  376. package/dashboard/dist/assets/{RunAsSelector-6BLScYTX.js → RunAsSelector-DxuV0fa1.js} +2 -2
  377. package/dashboard/dist/assets/{RunAsSelector-6BLScYTX.js.map → RunAsSelector-DxuV0fa1.js.map} +1 -1
  378. package/dashboard/dist/assets/{ScanCodesPage-Cv9q8Bvt.js → ScanCodesPage-C0mvmYTq.js} +2 -2
  379. package/dashboard/dist/assets/{ScanCodesPage-Cv9q8Bvt.js.map → ScanCodesPage-C0mvmYTq.js.map} +1 -1
  380. package/dashboard/dist/assets/{ScanSchemeDetailPage-BxazXYIc.js → ScanSchemeDetailPage-CiJgt5dZ.js} +2 -2
  381. package/dashboard/dist/assets/{ScanSchemeDetailPage-BxazXYIc.js.map → ScanSchemeDetailPage-CiJgt5dZ.js.map} +1 -1
  382. package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js +2 -0
  383. package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js.map +1 -0
  384. package/dashboard/dist/assets/{StickyPagination-DsdtYoXR.js → StickyPagination-CqbjVY6T.js} +2 -2
  385. package/dashboard/dist/assets/{StickyPagination-DsdtYoXR.js.map → StickyPagination-CqbjVY6T.js.map} +1 -1
  386. package/dashboard/dist/assets/{StreamMessageDetail-CT3FQoT3.js → StreamMessageDetail-wX3i0aqs.js} +2 -2
  387. package/dashboard/dist/assets/{StreamMessageDetail-CT3FQoT3.js.map → StreamMessageDetail-wX3i0aqs.js.map} +1 -1
  388. package/dashboard/dist/assets/{SwimlaneTimeline-C8TjkJ10.js → SwimlaneTimeline-C50PsFoV.js} +2 -2
  389. package/dashboard/dist/assets/{SwimlaneTimeline-C8TjkJ10.js.map → SwimlaneTimeline-C50PsFoV.js.map} +1 -1
  390. package/dashboard/dist/assets/{TaskDetailPage-DGUzdBFN.js → TaskDetailPage-bbNSv4Ae.js} +2 -2
  391. package/dashboard/dist/assets/{TaskDetailPage-DGUzdBFN.js.map → TaskDetailPage-bbNSv4Ae.js.map} +1 -1
  392. package/dashboard/dist/assets/{TasksListPage-BVIP6-EZ.js → TasksListPage-CDWnm_d9.js} +2 -2
  393. package/dashboard/dist/assets/{TasksListPage-BVIP6-EZ.js.map → TasksListPage-CDWnm_d9.js.map} +1 -1
  394. package/dashboard/dist/assets/{TimeAgo-C-rd9F9g.js → TimeAgo-BLjqlfoX.js} +2 -2
  395. package/dashboard/dist/assets/{TimeAgo-C-rd9F9g.js.map → TimeAgo-BLjqlfoX.js.map} +1 -1
  396. package/dashboard/dist/assets/{TimestampCell-DPbchDOI.js → TimestampCell-CnW0ENb5.js} +2 -2
  397. package/dashboard/dist/assets/{TimestampCell-DPbchDOI.js.map → TimestampCell-CnW0ENb5.js.map} +1 -1
  398. package/dashboard/dist/assets/{ToolTestPanel-DAUC8DHK.js → ToolTestPanel-DkMgCB-k.js} +2 -2
  399. package/dashboard/dist/assets/{ToolTestPanel-DAUC8DHK.js.map → ToolTestPanel-DkMgCB-k.js.map} +1 -1
  400. package/dashboard/dist/assets/{TopicDetailPage-70mMKBzG.js → TopicDetailPage-g3pljKKX.js} +2 -2
  401. package/dashboard/dist/assets/{TopicDetailPage-70mMKBzG.js.map → TopicDetailPage-g3pljKKX.js.map} +1 -1
  402. package/dashboard/dist/assets/{TopicsPage-CE3hBthn.js → TopicsPage-CVcCYdy-.js} +2 -2
  403. package/dashboard/dist/assets/{TopicsPage-CE3hBthn.js.map → TopicsPage-CVcCYdy-.js.map} +1 -1
  404. package/dashboard/dist/assets/{UserName-BDBDA-LR.js → UserName-D6zGIK2i.js} +2 -2
  405. package/dashboard/dist/assets/{UserName-BDBDA-LR.js.map → UserName-D6zGIK2i.js.map} +1 -1
  406. package/dashboard/dist/assets/{WorkflowExecutionPage-BbkLZ1co.js → WorkflowExecutionPage-B8g81FCJ.js} +2 -2
  407. package/dashboard/dist/assets/{WorkflowExecutionPage-BbkLZ1co.js.map → WorkflowExecutionPage-B8g81FCJ.js.map} +1 -1
  408. package/dashboard/dist/assets/{WorkflowsDashboard-Bp1L7Ggz.js → WorkflowsDashboard-nxT3bv6W.js} +2 -2
  409. package/dashboard/dist/assets/{WorkflowsDashboard-Bp1L7Ggz.js.map → WorkflowsDashboard-nxT3bv6W.js.map} +1 -1
  410. package/dashboard/dist/assets/{WorkflowsOverview-IeTKHAi4.js → WorkflowsOverview-grI-KAI2.js} +2 -2
  411. package/dashboard/dist/assets/{WorkflowsOverview-IeTKHAi4.js.map → WorkflowsOverview-grI-KAI2.js.map} +1 -1
  412. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DtKCXnKt.js → YamlWorkflowDetailPage-BoZ-hfBE.js} +2 -2
  413. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DtKCXnKt.js.map → YamlWorkflowDetailPage-BoZ-hfBE.js.map} +1 -1
  414. package/dashboard/dist/assets/{YamlWorkflowsPage-CEcZBV_3.js → YamlWorkflowsPage-Bf04rwRv.js} +2 -2
  415. package/dashboard/dist/assets/{YamlWorkflowsPage-CEcZBV_3.js.map → YamlWorkflowsPage-Bf04rwRv.js.map} +1 -1
  416. package/dashboard/dist/assets/{agents-BT-sEk81.js → agents-Dphpdi8l.js} +2 -2
  417. package/dashboard/dist/assets/{agents-BT-sEk81.js.map → agents-Dphpdi8l.js.map} +1 -1
  418. package/dashboard/dist/assets/{bots-DRoAdLek.js → bots-DIFE298x.js} +2 -2
  419. package/dashboard/dist/assets/{bots-DRoAdLek.js.map → bots-DIFE298x.js.map} +1 -1
  420. package/dashboard/dist/assets/{capabilities-Bc-nJk6y.js → capabilities-D7Y7LClY.js} +2 -2
  421. package/dashboard/dist/assets/{capabilities-Bc-nJk6y.js.map → capabilities-D7Y7LClY.js.map} +1 -1
  422. package/dashboard/dist/assets/{controlplane-aXceSIRf.js → controlplane-D1TGcYsS.js} +2 -2
  423. package/dashboard/dist/assets/{controlplane-aXceSIRf.js.map → controlplane-D1TGcYsS.js.map} +1 -1
  424. package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js +2 -0
  425. package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js.map +1 -0
  426. package/dashboard/dist/assets/{index-CuBGGwXf.js → index-BzYcUPdD.js} +2 -2
  427. package/dashboard/dist/assets/{index-CuBGGwXf.js.map → index-BzYcUPdD.js.map} +1 -1
  428. package/dashboard/dist/assets/index-CeCtqujG.js +67 -0
  429. package/dashboard/dist/assets/index-CeCtqujG.js.map +1 -0
  430. package/dashboard/dist/assets/{index-h2gX31B2.js → index-ChV7pBjM.js} +2 -2
  431. package/dashboard/dist/assets/{index-h2gX31B2.js.map → index-ChV7pBjM.js.map} +1 -1
  432. package/dashboard/dist/assets/index-CniRa65p.js +3 -0
  433. package/dashboard/dist/assets/index-CniRa65p.js.map +1 -0
  434. package/dashboard/dist/assets/index-CxdjT1Yk.js +2 -0
  435. package/dashboard/dist/assets/{index-BCFEQEMC.js.map → index-CxdjT1Yk.js.map} +1 -1
  436. package/dashboard/dist/assets/{index-CZyO9hRb.js → index-DAvi5_2T.js} +2 -2
  437. package/dashboard/dist/assets/{index-CZyO9hRb.js.map → index-DAvi5_2T.js.map} +1 -1
  438. package/dashboard/dist/assets/{index-Djsoi8DI.js → index-DN-kX7hL.js} +2 -2
  439. package/dashboard/dist/assets/{index-Djsoi8DI.js.map → index-DN-kX7hL.js.map} +1 -1
  440. package/dashboard/dist/assets/index-Dl_8hbYI.js +2 -0
  441. package/dashboard/dist/assets/index-Dl_8hbYI.js.map +1 -0
  442. package/dashboard/dist/assets/{index-DBxpyIw5.js → index-DpKOr311.js} +2 -2
  443. package/dashboard/dist/assets/{index-DBxpyIw5.js.map → index-DpKOr311.js.map} +1 -1
  444. package/dashboard/dist/assets/{index-Ba-s5Yb5.js → index-Dy1wWu2e.js} +2 -2
  445. package/dashboard/dist/assets/{index-Ba-s5Yb5.js.map → index-Dy1wWu2e.js.map} +1 -1
  446. package/dashboard/dist/assets/{index-DH03y-UT.js → index-HLu98Sqh.js} +2 -2
  447. package/dashboard/dist/assets/{index-DH03y-UT.js.map → index-HLu98Sqh.js.map} +1 -1
  448. package/dashboard/dist/assets/{index-C3VTJcrp.js → index-ag2pCAPu.js} +2 -2
  449. package/dashboard/dist/assets/{index-C3VTJcrp.js.map → index-ag2pCAPu.js.map} +1 -1
  450. package/dashboard/dist/assets/index-gkxPN7Vx.js +13 -0
  451. package/dashboard/dist/assets/{index-BEPKAjna.js.map → index-gkxPN7Vx.js.map} +1 -1
  452. package/dashboard/dist/assets/index-m9A3UYst.css +1 -0
  453. package/dashboard/dist/assets/{knowledge-BhW8V-Hq.js → knowledge-DnMs-SOJ.js} +2 -2
  454. package/dashboard/dist/assets/{knowledge-BhW8V-Hq.js.map → knowledge-DnMs-SOJ.js.map} +1 -1
  455. package/dashboard/dist/assets/{mcp-BYfSMQzh.js → mcp-CwW-K3r4.js} +2 -2
  456. package/dashboard/dist/assets/{mcp-BYfSMQzh.js.map → mcp-CwW-K3r4.js.map} +1 -1
  457. package/dashboard/dist/assets/{mcp-query-DUJoOk_q.js → mcp-query-BZt5e8_Q.js} +2 -2
  458. package/dashboard/dist/assets/{mcp-query-DUJoOk_q.js.map → mcp-query-BZt5e8_Q.js.map} +1 -1
  459. package/dashboard/dist/assets/{personas-jT1O_SB4.js → personas-UA-Xn60f.js} +2 -2
  460. package/dashboard/dist/assets/{personas-jT1O_SB4.js.map → personas-UA-Xn60f.js.map} +1 -1
  461. package/dashboard/dist/assets/{pipelines-Bp-wIaz2.js → pipelines-Cu3PARum.js} +2 -2
  462. package/dashboard/dist/assets/{pipelines-Bp-wIaz2.js.map → pipelines-Cu3PARum.js.map} +1 -1
  463. package/dashboard/dist/assets/{tasks-CCrvnXbz.js → tasks-BO6h8GJE.js} +2 -2
  464. package/dashboard/dist/assets/{tasks-CCrvnXbz.js.map → tasks-BO6h8GJE.js.map} +1 -1
  465. package/dashboard/dist/assets/{topics-Blft0I1L.js → topics-CWjCR-17.js} +2 -2
  466. package/dashboard/dist/assets/{topics-Blft0I1L.js.map → topics-CWjCR-17.js.map} +1 -1
  467. package/dashboard/dist/assets/{useDebouncedValue-BYqbcism.js → useDebouncedValue-6t0jx1RB.js} +2 -2
  468. package/dashboard/dist/assets/{useDebouncedValue-BYqbcism.js.map → useDebouncedValue-6t0jx1RB.js.map} +1 -1
  469. package/dashboard/dist/assets/{useNamespace-BfxJAUgG.js → useNamespace-CqpoQx6D.js} +2 -2
  470. package/dashboard/dist/assets/{useNamespace-BfxJAUgG.js.map → useNamespace-CqpoQx6D.js.map} +1 -1
  471. package/dashboard/dist/assets/{useYamlActivityEvents-BukJuWpb.js → useYamlActivityEvents-hmCQQwzB.js} +2 -2
  472. package/dashboard/dist/assets/{useYamlActivityEvents-BukJuWpb.js.map → useYamlActivityEvents-hmCQQwzB.js.map} +1 -1
  473. package/dashboard/dist/assets/validate-BIRn4a6d.js +2 -0
  474. package/dashboard/dist/assets/validate-BIRn4a6d.js.map +1 -0
  475. package/dashboard/dist/assets/{yaml-workflows-DeRWqMGk.js → yaml-workflows-ziUdZhKY.js} +2 -2
  476. package/dashboard/dist/assets/{yaml-workflows-DeRWqMGk.js.map → yaml-workflows-ziUdZhKY.js.map} +1 -1
  477. package/dashboard/dist/index.html +2 -2
  478. package/docs/agents.md +3 -1
  479. package/docs/api/http/agents.md +15 -1
  480. package/docs/api/http/escalations.md +49 -3
  481. package/docs/api/http/exports.md +3 -1
  482. package/docs/api/http/file-browser.md +3 -1
  483. package/docs/api/http/mcp-endpoint.md +5 -2
  484. package/docs/api/http/mcp-servers.md +34 -4
  485. package/docs/api/http/namespaces.md +2 -0
  486. package/docs/api/http/pipelines.md +2 -0
  487. package/docs/api/http/roles.md +11 -8
  488. package/docs/api/http/service-accounts.md +8 -2
  489. package/docs/api/http/settings.md +29 -2
  490. package/docs/api/http/tasks.md +3 -1
  491. package/docs/api/http/topics.md +7 -1
  492. package/docs/api/http/users.md +8 -2
  493. package/docs/api/http/workflows.md +25 -10
  494. package/docs/api/http/yaml-workflows.md +21 -0
  495. package/docs/api/mcp/admin.md +409 -49
  496. package/docs/api/mcp/file-storage.md +4 -0
  497. package/docs/api/mcp/http-fetch.md +6 -2
  498. package/docs/api/mcp/human-queue.md +53 -0
  499. package/docs/api/mcp/index.md +13 -10
  500. package/docs/api/mcp/knowledge.md +34 -0
  501. package/docs/api/mcp/oauth.md +1 -1
  502. package/docs/api/mcp/ortho.md +113 -0
  503. package/docs/api/mcp/vision.md +1 -1
  504. package/docs/api/sdk/bot-accounts.md +1 -0
  505. package/docs/api/sdk/escalations.md +18 -2
  506. package/docs/api/sdk/mcp.md +2 -2
  507. package/docs/api/sdk/settings.md +1 -1
  508. package/docs/api/sdk/tasks.md +2 -2
  509. package/docs/api/sdk/workflows.md +2 -2
  510. package/docs/api/sdk/yaml-workflows.md +1 -1
  511. package/docs/architecture.md +3 -1
  512. package/docs/auth.md +3 -2
  513. package/docs/cloud.md +7 -2
  514. package/docs/code-owned-configuration.md +12 -0
  515. package/docs/dashboard.md +16 -7
  516. package/docs/data.md +1 -1
  517. package/docs/escalation-strategies.md +9 -20
  518. package/docs/events.md +6 -0
  519. package/docs/hitl/portal.md +2 -0
  520. package/docs/hitl/x-lt-list-schema.md +88 -1
  521. package/docs/hitl/x-lt-scan.md +4 -1
  522. package/docs/iam.md +7 -5
  523. package/docs/mcp.md +159 -210
  524. package/docs/oauth-and-delegation.md +32 -21
  525. package/docs/scan-codes.md +7 -1
  526. package/docs/topics.md +2 -0
  527. package/docs/workflows.md +14 -112
  528. package/package.json +6 -3
  529. package/dashboard/dist/assets/AvailableEscalationsPage-CWMyy3IL.js +0 -2
  530. package/dashboard/dist/assets/AvailableEscalationsPage-CWMyy3IL.js.map +0 -1
  531. package/dashboard/dist/assets/CapabilitiesPage-DKxLvOfB.js +0 -2
  532. package/dashboard/dist/assets/ConfirmDeleteModal-Beq1vQtY.js +0 -2
  533. package/dashboard/dist/assets/ConfirmDeleteModal-Beq1vQtY.js.map +0 -1
  534. package/dashboard/dist/assets/CountdownTimer-BUBl_4mP.js +0 -2
  535. package/dashboard/dist/assets/CountdownTimer-BUBl_4mP.js.map +0 -1
  536. package/dashboard/dist/assets/DataTable-spX1dFyb.js +0 -2
  537. package/dashboard/dist/assets/DataTable-spX1dFyb.js.map +0 -1
  538. package/dashboard/dist/assets/EscalationListView-DTIVuym4.js +0 -2
  539. package/dashboard/dist/assets/EscalationListView-DTIVuym4.js.map +0 -1
  540. package/dashboard/dist/assets/EscalationTimeline-DNKNp6pL.js +0 -2
  541. package/dashboard/dist/assets/EscalationTimeline-DNKNp6pL.js.map +0 -1
  542. package/dashboard/dist/assets/OperationsPage-B2DA7n9m.js.map +0 -1
  543. package/dashboard/dist/assets/OperatorDashboard-C8RtPv8P.js +0 -2
  544. package/dashboard/dist/assets/OperatorDashboard-C8RtPv8P.js.map +0 -1
  545. package/dashboard/dist/assets/PortalPage-Xk1zVneM.js +0 -2
  546. package/dashboard/dist/assets/PortalPage-Xk1zVneM.js.map +0 -1
  547. package/dashboard/dist/assets/ProcessDetailPage-D7EYwW-j.js +0 -2
  548. package/dashboard/dist/assets/ResolverForm-BwVOJUpJ.js +0 -8
  549. package/dashboard/dist/assets/ResolverForm-BwVOJUpJ.js.map +0 -1
  550. package/dashboard/dist/assets/ScanStationPage-Cg8LCFR7.js +0 -2
  551. package/dashboard/dist/assets/ScanStationPage-Cg8LCFR7.js.map +0 -1
  552. package/dashboard/dist/assets/escalation-columns-Bf09Q89t.js +0 -2
  553. package/dashboard/dist/assets/escalation-columns-Bf09Q89t.js.map +0 -1
  554. package/dashboard/dist/assets/index-BCFEQEMC.js +0 -2
  555. package/dashboard/dist/assets/index-BEPKAjna.js +0 -13
  556. package/dashboard/dist/assets/index-BUYokcrl.js +0 -67
  557. package/dashboard/dist/assets/index-BUYokcrl.js.map +0 -1
  558. package/dashboard/dist/assets/index-CcgmR-7-.js +0 -2
  559. package/dashboard/dist/assets/index-CcgmR-7-.js.map +0 -1
  560. package/dashboard/dist/assets/index-D1mKf_qz.js +0 -3
  561. package/dashboard/dist/assets/index-D1mKf_qz.js.map +0 -1
  562. package/dashboard/dist/assets/index-DcppjzP5.css +0 -1
@@ -1,6 +1,6 @@
1
1
  # Admin
2
2
 
3
- Unified system management — tasks, escalations, workflows, diagnostics, agents, bot accounts, control plane, pipelines, topics, users, roles, and settings.
3
+ Unified system management: tasks, escalations, workflows, diagnostics, agents, bot accounts, control plane, pipelines, topics, users, roles, personas, scan codes, announcements, and settings.
4
4
 
5
5
  | Property | Value |
6
6
  |----------|-------|
@@ -11,7 +11,7 @@ Unified system management — tasks, escalations, workflows, diagnostics, agents
11
11
 
12
12
  ## Access
13
13
 
14
- Each tool below is marked **Read-safe**. A service-account key scoped `mcp:read` can call the Read-safe tools; the rest (Read-safe: No) change state and require an `mcp:full` key, and the account's role must permit the action on the target. See the MCP guide's [Access](../../mcp.md#access-which-tools-and-which-records) section for the full model.
14
+ Each tool below is marked **Read-safe**. A service-account key scoped `mcp:read` can call the Read-safe tools; the rest (Read-safe: No) change state and require an `mcp:full` key, and the account's role must permit the action on the target. Each tool also declares a role gate (`caller`, `admin`, `builder`, or `roleManager`); a tool appears only to accounts that hold it. See the MCP guide's [Access](../../mcp.md#access-which-tools-and-which-records) section for the full model.
15
15
 
16
16
  ## Compile Hints
17
17
 
@@ -189,6 +189,57 @@ and want to skip the id lookup.
189
189
  | signalKey | string | Yes | Deterministic signal key of the escalation |
190
190
  | resolverPayload | object | Yes | Resolution payload |
191
191
 
192
+ ### accumulate_item
193
+
194
+ Add one item to an open accumulator escalation. Interim adds return outcome `accepted` with the count held and the remaining slots. The add that reaches max completes the row and wakes the waiting workflow with the ordered collection. A reciprocal row is written in the same statement, both or neither.
195
+
196
+ | | |
197
+ |---|---|
198
+ | Read-safe | No |
199
+
200
+ **Parameters:**
201
+
202
+ | Field | Type | Required | Description |
203
+ |-------|------|----------|-------------|
204
+ | id | string | Yes | Accumulator escalation UUID (the container) |
205
+ | itemKey | string | Yes | Key the item is held under |
206
+ | payload | object | No | Item payload, delivered inside `$accumulated` |
207
+ | metadata | object | No | Merge patch for the container metadata, same statement |
208
+ | reciprocal | object | No | A second accumulator row written in the same statement. Exactly one of `id`, `signalKey`, or `key`/`value` |
209
+ | initiatedBy | string | No | `lt_users.id` of the person the add is for, recorded as the entry actor (attribution only) |
210
+
211
+ ### remove_item
212
+
213
+ Remove one held item from a pending open accumulator escalation. The row stays pending and the waiting workflow stays asleep.
214
+
215
+ | | |
216
+ |---|---|
217
+ | Read-safe | No |
218
+
219
+ **Parameters:**
220
+
221
+ | Field | Type | Required | Description |
222
+ |-------|------|----------|-------------|
223
+ | id | string | Yes | Accumulator escalation UUID |
224
+ | itemKey | string | Yes | Held item key to remove |
225
+ | reciprocal | object | No | A second accumulator row written in the same statement. Exactly one of `id`, `signalKey`, or `key`/`value` |
226
+ | initiatedBy | string | No | `lt_users.id` of the person the removal is for, recorded as the entry actor (attribution only) |
227
+
228
+ ### get_escalation_items
229
+
230
+ The held items of an accumulator or batch escalation in arrival order, with the count and max. Select by `id` or by `signalKey`.
231
+
232
+ | | |
233
+ |---|---|
234
+ | Read-safe | Yes |
235
+
236
+ **Parameters:**
237
+
238
+ | Field | Type | Required | Description |
239
+ |-------|------|----------|-------------|
240
+ | id | string | No | Accumulator or batch escalation UUID |
241
+ | signalKey | string | No | The row's `signal_key`, when the caller knows the signal id rather than the row id |
242
+
192
243
  ### escalate_escalation
193
244
 
194
245
  Route a pending escalation to a different role per the escalation chain.
@@ -333,6 +384,20 @@ Assign multiple escalations to a specific user.
333
384
  | targetUserId | string | Yes | User to assign to |
334
385
  | durationMinutes | integer | No | Lock duration |
335
386
 
387
+ ### bulk_unassign
388
+
389
+ Return claimed escalations to the available pool. This is the admin override of a live claim; a claimant returning their own row uses `release_escalation`. Unclaimed and terminal rows are skipped.
390
+
391
+ | | |
392
+ |---|---|
393
+ | Read-safe | No |
394
+
395
+ **Parameters:**
396
+
397
+ | Field | Type | Required | Description |
398
+ |-------|------|----------|-------------|
399
+ | ids | string[] | Yes | Escalation UUIDs to return to the pool |
400
+
336
401
  ### bulk_escalate
337
402
 
338
403
  Escalate multiple escalations to a different role.
@@ -377,6 +442,78 @@ Update the priority of multiple escalations.
377
442
  | ids | string[] | Yes | Escalation IDs |
378
443
  | priority | integer | Yes | New priority value |
379
444
 
445
+ ### resolve_by_ids
446
+
447
+ Resolve a set of escalations by id in one guarded statement, for rows woken collectively (no per-row signal delivery). Callers may resolve only rows whose role they hold.
448
+
449
+ | | |
450
+ |---|---|
451
+ | Read-safe | No |
452
+
453
+ **Parameters:**
454
+
455
+ | Field | Type | Required | Description |
456
+ |-------|------|----------|-------------|
457
+ | ids | string[] | Yes | Escalation ids to resolve as one set |
458
+ | resolverPayload | object | Yes | Resolution payload applied to every row |
459
+ | metadata | object | No | Outcome patch merged into each row |
460
+
461
+ ### search_by_facets
462
+
463
+ Faceted search over a pond, scoped to the caller's role. Filter by type, status, availability, and metadata facets; sort by columns; page with `limit`/`offset`.
464
+
465
+ | | |
466
+ |---|---|
467
+ | Read-safe | Yes |
468
+
469
+ **Parameters:**
470
+
471
+ | Field | Type | Required | Description |
472
+ |-------|------|----------|-------------|
473
+ | role | string | Yes | Pond role to target (the escalation role) |
474
+ | types | string[] | No | Only rows whose escalation type is one of these |
475
+ | subtypes | string[] | No | Only rows whose escalation subtype is one of these |
476
+ | status | string | No | Status filter (e.g. `pending`) |
477
+ | available | boolean | No | Only rows not currently claimed |
478
+ | facets | object | No | Metadata facet equality filters |
479
+ | orderBy | object[] | No | Sort order over columns |
480
+ | limit | integer | No | Max results |
481
+ | offset | integer | No | Pagination offset |
482
+
483
+ ### claim_groups
484
+
485
+ Batch-claim complete origin groups (orders) in priority order over a pond, assigned to the calling principal. Scoped to the pond role.
486
+
487
+ | | |
488
+ |---|---|
489
+ | Read-safe | No |
490
+
491
+ **Parameters:**
492
+
493
+ | Field | Type | Required | Description |
494
+ |-------|------|----------|-------------|
495
+ | query | object | Yes | Facet query selecting the pond |
496
+ | limit | integer | No | Max groups to claim |
497
+ | durationMinutes | integer | No | Claim TTL in minutes |
498
+ | sizeFacet | string | No | Metadata key holding the group size |
499
+
500
+ ### claim_by_facets
501
+
502
+ Batch-claim individual rows matching a facet query (`FOR UPDATE SKIP LOCKED`), assigned to the calling principal. Scoped to the pond role.
503
+
504
+ | | |
505
+ |---|---|
506
+ | Read-safe | No |
507
+
508
+ **Parameters:**
509
+
510
+ | Field | Type | Required | Description |
511
+ |-------|------|----------|-------------|
512
+ | query | object | Yes | Facet query selecting the rows |
513
+ | limit | integer | No | Max rows to claim |
514
+ | durationMinutes | integer | No | Claim TTL in minutes |
515
+ | allOrNone | boolean | No | Commit only if the full limit was acquired |
516
+
380
517
  ### aggregate_by_facets
381
518
 
382
519
  Grouped analytics over the escalation intervals. Every escalation is one open
@@ -555,7 +692,8 @@ Start a workflow registered read-safe (side-effect-free). Same contract as `invo
555
692
  Check workflow status and result. Returns status (`running` | `complete` | `failed`)
556
693
  and the result when complete; a failed run carries `terminated` (true when an
557
694
  interrupt ended it) and `error`. Resolution is namespace-aware — pass `app_id` to read a
558
- workflow (e.g. a child) running in a non-default HotMesh namespace.
695
+ workflow (e.g. a child) running in a non-default HotMesh namespace. Readable by a builder,
696
+ or by the person who started the run or the account it runs as.
559
697
 
560
698
  | | |
561
699
  |---|---|
@@ -568,6 +706,20 @@ workflow (e.g. a child) running in a non-default HotMesh namespace.
568
706
  | workflow_id | string | Yes | Workflow ID to check |
569
707
  | app_id | string | No | HotMesh namespace for resolution (default: durable) |
570
708
 
709
+ ### terminate_workflow
710
+
711
+ Terminate a workflow: kills the durable handle and cancels the workflow's pending escalations. Use this to stop a workflow. `interrupt_pipeline_job` is an engine-level interrupt that leaves escalation rows stranded as orphans.
712
+
713
+ | | |
714
+ |---|---|
715
+ | Read-safe | No |
716
+
717
+ **Parameters:**
718
+
719
+ | Field | Type | Required | Description |
720
+ |-------|------|----------|-------------|
721
+ | workflow_id | string | Yes | HotMesh workflow ID to terminate |
722
+
571
723
  ## MCP Servers
572
724
 
573
725
  ### list_mcp_servers
@@ -905,6 +1057,155 @@ Define an escalation path from one role to another.
905
1057
  | source_role | string | Yes | Source role |
906
1058
  | target_role | string | Yes | Target role |
907
1059
 
1060
+ ## Personas
1061
+
1062
+ A persona is a named role bundle: each linked role carries a relationship scope, and assigning the persona to a user adds the user to every linked role at that scope. Holder memberships are reconciled whenever a link changes.
1063
+
1064
+ ### list_personas
1065
+
1066
+ List all personas with their role links and holder counts.
1067
+
1068
+ | | |
1069
+ |---|---|
1070
+ | Read-safe | Yes |
1071
+
1072
+ **Parameters:** None.
1073
+
1074
+ ### get_persona
1075
+
1076
+ Fetch one persona with its role links and current assignees.
1077
+
1078
+ | | |
1079
+ |---|---|
1080
+ | Read-safe | Yes |
1081
+
1082
+ **Parameters:**
1083
+
1084
+ | Field | Type | Required | Description |
1085
+ |-------|------|----------|-------------|
1086
+ | key | string | Yes | Persona key |
1087
+
1088
+ ### create_persona
1089
+
1090
+ Create a persona. Link roles with `link_persona_role`, then assign users with `assign_persona`.
1091
+
1092
+ | | |
1093
+ |---|---|
1094
+ | Read-safe | No |
1095
+
1096
+ **Parameters:**
1097
+
1098
+ | Field | Type | Required | Description |
1099
+ |-------|------|----------|-------------|
1100
+ | key | string | Yes | Stable key (a-z, 0-9, hyphens, underscores; starts with a letter) |
1101
+ | title | string | No | Display title, e.g. "Print Manager" |
1102
+ | description | string | No | One-paragraph description of the persona's day |
1103
+
1104
+ ### update_persona
1105
+
1106
+ Update a persona's title or description with PATCH semantics: omitted fields keep their values, `null` clears.
1107
+
1108
+ | | |
1109
+ |---|---|
1110
+ | Read-safe | No |
1111
+
1112
+ **Parameters:**
1113
+
1114
+ | Field | Type | Required | Description |
1115
+ |-------|------|----------|-------------|
1116
+ | key | string | Yes | Persona key to update |
1117
+ | title | string \| null | No | New display title (`null` clears) |
1118
+ | description | string \| null | No | New description (`null` clears) |
1119
+
1120
+ ### delete_persona
1121
+
1122
+ Delete a persona. Memberships it sustains are removed, or re-homed to a sibling persona the user still holds. Direct grants stay as they are.
1123
+
1124
+ | | |
1125
+ |---|---|
1126
+ | Read-safe | No |
1127
+
1128
+ **Parameters:**
1129
+
1130
+ | Field | Type | Required | Description |
1131
+ |-------|------|----------|-------------|
1132
+ | key | string | Yes | Persona key to delete |
1133
+
1134
+ ### link_persona_role
1135
+
1136
+ Link a role to a persona, or change an existing link's relationship. Every current holder's memberships are reconciled in the same transaction.
1137
+
1138
+ | | |
1139
+ |---|---|
1140
+ | Read-safe | No |
1141
+
1142
+ **Parameters:**
1143
+
1144
+ | Field | Type | Required | Description |
1145
+ |-------|------|----------|-------------|
1146
+ | key | string | Yes | Persona key |
1147
+ | role | string | Yes | Role to link (created if absent) |
1148
+ | relationship | string | Yes | `write-all` (full worker), `write-self` (acts on own assignments), `read-all` (observer), or `write-none` (same as `read-all`) |
1149
+
1150
+ ### unlink_persona_role
1151
+
1152
+ Remove a role link from a persona and reconcile every holder's memberships.
1153
+
1154
+ | | |
1155
+ |---|---|
1156
+ | Read-safe | No |
1157
+
1158
+ **Parameters:**
1159
+
1160
+ | Field | Type | Required | Description |
1161
+ |-------|------|----------|-------------|
1162
+ | key | string | Yes | Persona key |
1163
+ | role | string | Yes | Role link to remove |
1164
+
1165
+ ### assign_persona
1166
+
1167
+ Assign a persona to a user, adding the user to each linked role at the linked scope. Idempotent: re-assigning overlays fresh from the persona's current links. When bundles overlap the highest allowance wins, and direct grants are only raised.
1168
+
1169
+ | | |
1170
+ |---|---|
1171
+ | Read-safe | No |
1172
+
1173
+ **Parameters:**
1174
+
1175
+ | Field | Type | Required | Description |
1176
+ |-------|------|----------|-------------|
1177
+ | user_id | string | Yes | User UUID |
1178
+ | key | string | Yes | Persona key |
1179
+
1180
+ ### unassign_persona
1181
+
1182
+ Unassign a persona from a user. Removes only the memberships the persona sustains; rows another held persona still grants are re-homed to it, and direct grants stay as they are.
1183
+
1184
+ | | |
1185
+ |---|---|
1186
+ | Read-safe | No |
1187
+
1188
+ **Parameters:**
1189
+
1190
+ | Field | Type | Required | Description |
1191
+ |-------|------|----------|-------------|
1192
+ | user_id | string | Yes | User UUID |
1193
+ | key | string | Yes | Persona key |
1194
+
1195
+ ### get_user_personas
1196
+
1197
+ The personas a user holds plus the composed role and scope map their memberships form. Each row names its sustaining persona, or `null` for a direct grant.
1198
+
1199
+ | | |
1200
+ |---|---|
1201
+ | Read-safe | Yes |
1202
+
1203
+ **Parameters:**
1204
+
1205
+ | Field | Type | Required | Description |
1206
+ |-------|------|----------|-------------|
1207
+ | user_id | string | Yes | User UUID |
1208
+
908
1209
  ## Maintenance
909
1210
 
910
1211
  ### prune
@@ -1569,7 +1870,7 @@ Export the full workflow state using HotMesh durable export.
1569
1870
 
1570
1871
  ### export_workflow_execution
1571
1872
 
1572
- Export workflow state as a structured execution event history.
1873
+ Export workflow state as a structured execution event history. Readable by a builder, or by the person who started the run or the account it runs as.
1573
1874
 
1574
1875
  | | |
1575
1876
  |---|---|
@@ -1613,36 +1914,27 @@ Return the numeric status semaphore for a workflow.
1613
1914
  |-------|------|----------|-------------|
1614
1915
  | workflow_id | string | Yes | Workflow ID |
1615
1916
 
1616
- ## Ortho Pipeline
1917
+ ## Overview
1617
1918
 
1618
- AI-operable tools for driving the orthotic manufacturing pipeline. Each order passes through eight sequential stages (design → review → print → grind → glue → finish → qa → ship). The pipeline is a HotMesh durable workflow; each stage suspends at a `conditional` checkpoint until an escalation is resolved.
1919
+ ### get_system_overview
1619
1920
 
1620
- A Claude agent loop calls `ortho_submit` to start an order, polls `ortho_pending` to see what's waiting, drives each stage forward with `ortho_complete_stage`, and monitors progress with `ortho_status`.
1621
-
1622
- ### ortho_submit
1623
-
1624
- Start a new orthotic manufacturing order through the 8-stage pipeline.
1921
+ Triage-ready system state in one call: escalation queue pressure (aging, unclaimed, by role), task throughput (created, completed, failed), hourly trends, infrastructure status (MCP servers, agents, compiled workflows), and a business process summary.
1625
1922
 
1626
1923
  | | |
1627
1924
  |---|---|
1628
- | Read-safe | No |
1925
+ | Read-safe | Yes |
1629
1926
 
1630
1927
  **Parameters:**
1631
1928
 
1632
1929
  | Field | Type | Required | Description |
1633
1930
  |-------|------|----------|-------------|
1634
- | `order_id` | `string` | Yes | Unique order identifier (e.g. `"ORD-001"`) |
1635
- | `item_type` | `string` | Yes | Item type (e.g. `"insole-standard"`, `"insole-diabetic"`) |
1636
- | `stages` | `string[]` | No | Override the stage sequence. Default: `["design","review","print","grind","glue","finish","qa","ship"]` |
1637
- | `metadata` | `object` | No | Additional order metadata passed through to each stage escalation |
1931
+ | period | string | No | Time window for trends and throughput: `1h`, `24h` (default), or `7d` |
1638
1932
 
1639
- **Returns:** `{ workflow_id, order_id, item_type, stages, message }`
1933
+ ## Domain Context
1640
1934
 
1641
- ---
1935
+ ### get_domain_context
1642
1936
 
1643
- ### ortho_pending
1644
-
1645
- List open ortho-pipeline stage escalations waiting to be completed.
1937
+ The deployment's domain dictionary merged with live platform state: how the operation's jargon maps to roles, workflows, escalations, and metadata facets. With no arguments it returns the overview and index; `{ topic, name }` returns specific entries. Topic `term` looks a word or alias up across every kind. With no dictionary registered it serves a view derived from the live registries. See [Domain Dictionary](../../domain-dictionary.md).
1646
1938
 
1647
1939
  | | |
1648
1940
  |---|---|
@@ -1652,16 +1944,16 @@ List open ortho-pipeline stage escalations waiting to be completed.
1652
1944
 
1653
1945
  | Field | Type | Required | Description |
1654
1946
  |-------|------|----------|-------------|
1655
- | `stage` | `string` | No | Filter to a specific stage (e.g. `"design"`). Omit to see all stages |
1656
- | `limit` | `integer` | No | Max results (default: 50) |
1947
+ | topic | string | No | `term`, `entity`, `role`, `workflow`, `facet`, `action`, `rule`, or `runbook`. Omit for the overview and index |
1948
+ | name | string | No | One entry: a term or alias (case-insensitive), a live role name, a workflow type, or a runbook name |
1657
1949
 
1658
- **Returns:** `{ count, escalations }` where each escalation includes `id`, `stage`, `order_id`, `item_type`, `description`, `created_at`, `workflow_id`.
1950
+ ## Scan Codes
1659
1951
 
1660
- ---
1952
+ Scan codes have the form `version:category:target`. A scheme defines how a code parses and which metadata facet the target resolves against; a rule defines the steps a category runs. See [Scan Codes](../../scan-codes.md).
1661
1953
 
1662
- ### ortho_complete_stage
1954
+ ### execute_scan_code
1663
1955
 
1664
- Complete a pending ortho pipeline stage. Claims the escalation and resolves it with notes and outcome data. Resolving automatically advances the workflow — a new escalation for the next stage appears within seconds.
1956
+ Execute a raw scan code. Parses it against the configured schemes, walks the rule's condition and action steps, and returns a structured outcome (`executed`, `confirm_required`, `matched_list`, `no_match_fallback`, `unconfigured`, `invalid_code`, `forbidden`, `conflict`). Identity schemes mint an acting-identity grant.
1665
1957
 
1666
1958
  | | |
1667
1959
  |---|---|
@@ -1671,46 +1963,114 @@ Complete a pending ortho pipeline stage. Claims the escalation and resolves it w
1671
1963
 
1672
1964
  | Field | Type | Required | Description |
1673
1965
  |-------|------|----------|-------------|
1674
- | `escalation_id` | `string` | Yes | Escalation ID from `ortho_pending` |
1675
- | `notes` | `string` | Yes | Completion notes — what was done, any decisions made |
1676
- | `outcome` | `object` | No | Structured outcome data specific to this stage |
1966
+ | code | string | Yes | Raw scan string, e.g. `10:1:SN123` or `10175433211` |
1967
+ | actingToken | string | No | Acting-identity grant (`eph:v1:acting_identity:*`); verbs run as the badged person |
1968
+ | previousActingToken | string | No | The grant an identity scan replaces, revoked on mint (best effort) |
1969
+
1970
+ ### execute_scan_choice
1971
+
1972
+ Execute one choice presented by a PRESENT step. The pointer (scheme, category, step, choice, escalation) is re-validated against live config, the row's current state, the acting-identity gate, and RBAC before the verb runs.
1973
+
1974
+ | | |
1975
+ |---|---|
1976
+ | Read-safe | No |
1677
1977
 
1678
- **Returns:** `{ resolved, escalation_id, status, message }`
1978
+ **Parameters:**
1679
1979
 
1680
- ---
1980
+ | Field | Type | Required | Description |
1981
+ |-------|------|----------|-------------|
1982
+ | schemeVersion | integer | Yes | Scheme version of the presented choice |
1983
+ | category | string | Yes | Rule category |
1984
+ | stepIndex | integer | Yes | Index of the PRESENT step |
1985
+ | choiceIndex | integer | Yes | Index of the chosen option |
1986
+ | escalationId | string | Yes | Escalation the choice screen presented |
1987
+ | actingToken | string | No | Acting-identity grant; the choice attributes to the badged person |
1681
1988
 
1682
- ### ortho_status
1989
+ ### list_scan_schemes
1683
1990
 
1684
- Get the current status and completed stage results for an ortho pipeline workflow.
1991
+ List all scan-code schemes: version, name, target facet, and encoding.
1685
1992
 
1686
1993
  | | |
1687
1994
  |---|---|
1688
1995
  | Read-safe | Yes |
1689
1996
 
1997
+ **Parameters:** None.
1998
+
1999
+ ### upsert_scan_scheme
2000
+
2001
+ Create or replace a scan scheme: which metadata facet the scanned target resolves against and how the code string parses (fixed digits or delimited text). `kind: identity` makes the scheme a badge layer that mints acting-identity grants.
2002
+
2003
+ | | |
2004
+ |---|---|
2005
+ | Read-safe | No |
2006
+
2007
+ **Parameters:**
2008
+
2009
+ | Field | Type | Required | Description |
2010
+ |-------|------|----------|-------------|
2011
+ | version | integer | Yes | Two-digit scheme version (10-99) |
2012
+ | name | string | Yes | Scheme display name |
2013
+ | description | string | No | Scheme description |
2014
+ | target_facet | string | Yes | Metadata key the target resolves against: an escalation metadata key for action schemes, an `lt_users.metadata` key (e.g. `badge_id`) for identity schemes |
2015
+ | encoding | string | No | `fixed` (digits only, UPC) or `delimited` (text with separators) |
2016
+ | delimiter | string | No | Separator for delimited encoding (default `:`) |
2017
+ | target_length | integer | No | Target digit count for fixed encoding |
2018
+ | kind | string | No | `action` (steps over escalations, default) or `identity` (a badge that mints a short-lived acting-identity grant) |
2019
+ | grant_ttl_seconds | integer | No | Identity kind: lifetime of a minted grant |
2020
+ | grant_max_uses | integer | No | Identity kind: `0` = TTL-bound; `n` = the grant covers n scan requests |
2021
+ | enabled | boolean | No | Whether the scheme is active |
2022
+
2023
+ ### upsert_scan_rule
2024
+
2025
+ Create or replace a scan rule for a scheme category: a friendly name, ordered condition and action steps (the first matching query wins), a fallback screen when nothing matches, and a not-primed screen for identity-required steps.
2026
+
2027
+ | | |
2028
+ |---|---|
2029
+ | Read-safe | No |
2030
+
1690
2031
  **Parameters:**
1691
2032
 
1692
2033
  | Field | Type | Required | Description |
1693
2034
  |-------|------|----------|-------------|
1694
- | `workflow_id` | `string` | Yes | Workflow ID from `ortho_submit` |
2035
+ | scheme_version | integer | Yes | Scheme version |
2036
+ | category | string | Yes | Single-digit category (0-9) |
2037
+ | name | string | Yes | Friendly label printed next to the physical code |
2038
+ | steps | object[] | Yes | Ordered condition/action steps; first match wins |
2039
+ | fallback | object | No | Screen rendered when no step matches (identity schemes: the unknown-badge screen) |
2040
+ | notPrimed | object | No | "Scan your badge" screen, rendered when an acting identity is required and absent |
2041
+ | enabled | boolean | No | Whether the rule is active |
2042
+
2043
+ ### delete_scan_rule
2044
+
2045
+ Delete one scan rule by scheme version and category.
2046
+
2047
+ | | |
2048
+ |---|---|
2049
+ | Read-safe | No |
1695
2050
 
1696
- **Returns:** `{ workflow_id, status }` where `status` is `"running"` while in progress or `"complete"` with `result` containing all stage outputs once finished.
2051
+ **Parameters:**
1697
2052
 
1698
- ---
2053
+ | Field | Type | Required | Description |
2054
+ |-------|------|----------|-------------|
2055
+ | scheme_version | integer | Yes | Scheme version |
2056
+ | category | string | Yes | Rule category |
1699
2057
 
1700
- **Agent loop example:**
2058
+ ## Announcements
1701
2059
 
1702
- ```
1703
- ortho_submit({ order_id: "ORD-042", item_type: "insole-diabetic" })
1704
- → { workflow_id: "wf-abc123", stages: ["design", "review", ...] }
2060
+ ### publish_announcement
1705
2061
 
1706
- ortho_pending({ stage: "design" })
1707
- → [{ id: "esc-001", stage: "design", order_id: "ORD-042" }]
2062
+ Publish a dashboard announcement: a banner every targeted user sees live and on their next load until it expires or they dismiss it. Bodies broadcast to all authenticated subscribers, so keep secrets out of them.
1708
2063
 
1709
- ortho_complete_stage({ escalation_id: "esc-001", notes: "3mm heel, D-width approved", outcome: { spec_version: "v2" } })
1710
- → { resolved: true }
2064
+ | | |
2065
+ |---|---|
2066
+ | Read-safe | No |
1711
2067
 
1712
- ... repeat through all 8 stages ...
2068
+ **Parameters:**
1713
2069
 
1714
- ortho_status({ workflow_id: "wf-abc123" })
1715
- → { status: "complete", result: { order_id: "ORD-042", results: [...] } }
1716
- ```
2070
+ | Field | Type | Required | Description |
2071
+ |-------|------|----------|-------------|
2072
+ | body | string | Yes | Markdown body |
2073
+ | title | string | No | Headline shown on the collapsed banner |
2074
+ | layout | string | No | Presentation form (default `banner`) |
2075
+ | roles | string[] | No | Target roles; omitted = everyone |
2076
+ | expires_at | string | No | ISO timestamp; omitted = 24 hours from now |
@@ -9,6 +9,10 @@ Managed file storage for reading, writing, listing, and deleting files.
9
9
  | AI required | No |
10
10
  | Credential providers | — |
11
11
 
12
+ ## Access
13
+
14
+ Every tool on this server requires builder access (superadmin or the `engineer` role).
15
+
12
16
  ## Compile Hints
13
17
 
14
18
  None.
@@ -9,6 +9,10 @@ HTTP client tools for making GET, POST, and arbitrary HTTP requests.
9
9
  | AI required | No |
10
10
  | Credential providers | — |
11
11
 
12
+ ## Access
13
+
14
+ Every tool on this server requires builder access (superadmin or the `engineer` role).
15
+
12
16
  ## Compile Hints
13
17
 
14
18
  HTTP response bodies may be large. Prefer specific fields from parsed JSON rather than raw body.
@@ -39,7 +43,7 @@ GET a URL and parse the response as JSON. Convenience wrapper around http_reques
39
43
 
40
44
  | | |
41
45
  |---|---|
42
- | Read-safe | Yes |
46
+ | Read-safe | No |
43
47
 
44
48
  **Parameters:**
45
49
 
@@ -54,7 +58,7 @@ GET a URL and return the response as text. Returns content, status, and content
54
58
 
55
59
  | | |
56
60
  |---|---|
57
- | Read-safe | Yes |
61
+ | Read-safe | No |
58
62
 
59
63
  **Parameters:**
60
64
 
@@ -9,6 +9,10 @@ Built-in escalation and human queue management. Exposes the escalation API as MC
9
9
  | AI required | No |
10
10
  | Credential providers | — |
11
11
 
12
+ ## Access
13
+
14
+ These tools act with full authority. At `/mcp` they are listed for superadmin accounts only. Other accounts work the queue through the role-checked escalation tools on [long-tail-admin](admin.md).
15
+
12
16
  ## Compile Hints
13
17
 
14
18
  escalate_and_wait creates a durable pause point. The step AFTER escalate_and_wait is always a signal step (kind: "signal") that receives the human response. Fields from the signal step output (e.g., password) must be wired via data_flow edges to ALL downstream steps that need them.
@@ -111,6 +115,55 @@ Resolve an already-claimed escalation with a payload. Use when the claim happene
111
115
  | payload | object | Yes | Resolution payload data — resumes the waiting workflow |
112
116
  | metadata | object | No | Outcome facets merged into the escalation's metadata (see `claim_and_resolve`) |
113
117
 
118
+ ### resolve_batch_item
119
+
120
+ Submit one declared item of a batch escalation. Interim items return outcome `accepted` with the count remaining; the last item completes the escalation and wakes the waiting workflow with the full collection.
121
+
122
+ | | |
123
+ |---|---|
124
+ | Read-safe | No |
125
+
126
+ **Parameters:**
127
+
128
+ | Field | Type | Required | Description |
129
+ |-------|------|----------|-------------|
130
+ | escalation_id | string | Yes | The batch escalation ID |
131
+ | item_key | string | Yes | The declared batch item key this submission fills |
132
+ | payload | object | Yes | The item payload |
133
+
134
+ ### accumulate_item
135
+
136
+ Add one item to an open accumulator escalation. Interim adds return outcome `accepted` with the count held; the add that reaches `max` completes the escalation and wakes the waiting workflow with the ordered collection.
137
+
138
+ | | |
139
+ |---|---|
140
+ | Read-safe | No |
141
+
142
+ **Parameters:**
143
+
144
+ | Field | Type | Required | Description |
145
+ |-------|------|----------|-------------|
146
+ | escalation_id | string | Yes | The accumulator escalation ID (the container) |
147
+ | item_key | string | Yes | The key this item is held under |
148
+ | payload | object | No | Item payload, delivered inside `$accumulated` |
149
+ | reciprocal | object | No | A second accumulator row written in the same statement, both or neither. Exactly one of `id`, `signalKey`, or `key`/`value`, plus an optional `payload` |
150
+
151
+ ### remove_item
152
+
153
+ Remove one held item from a pending open accumulator escalation. The row stays pending and the waiting workflow is not woken.
154
+
155
+ | | |
156
+ |---|---|
157
+ | Read-safe | No |
158
+
159
+ **Parameters:**
160
+
161
+ | Field | Type | Required | Description |
162
+ |-------|------|----------|-------------|
163
+ | escalation_id | string | Yes | The accumulator escalation ID |
164
+ | item_key | string | Yes | The held item key to remove |
165
+ | reciprocal | object | No | A second accumulator row written in the same statement, both or neither. Exactly one of `id`, `signalKey`, or `key`/`value` |
166
+
114
167
  ### escalate_and_wait
115
168
 
116
169
  Create an escalation and pause the workflow until a human responds. Returns a signal ID that the workflow uses to wait durably. Preferred over escalate_to_human + check_resolution polling.