@hotmeshio/long-tail 0.5.12 → 0.6.2

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 (337) hide show
  1. package/README.md +1 -0
  2. package/build/api/escalations/bulk.js +9 -1
  3. package/build/api/escalations/cancel.js +5 -7
  4. package/build/api/escalations/claim.js +18 -15
  5. package/build/api/escalations/create.d.ts +6 -0
  6. package/build/api/escalations/create.js +11 -8
  7. package/build/api/escalations/facets.d.ts +18 -0
  8. package/build/api/escalations/facets.js +115 -0
  9. package/build/api/escalations/helpers.d.ts +70 -1
  10. package/build/api/escalations/helpers.js +101 -7
  11. package/build/api/escalations/index.d.ts +3 -2
  12. package/build/api/escalations/index.js +7 -1
  13. package/build/api/escalations/list.d.ts +21 -2
  14. package/build/api/escalations/list.js +109 -10
  15. package/build/api/escalations/metadata.js +22 -27
  16. package/build/api/escalations/resolve.d.ts +19 -1
  17. package/build/api/escalations/resolve.js +111 -26
  18. package/build/api/escalations/single.js +8 -8
  19. package/build/api/users.d.ts +6 -0
  20. package/build/api/users.js +29 -1
  21. package/build/bin/ltc.js +40 -0
  22. package/build/lib/cli/commands/escalations.d.ts +36 -0
  23. package/build/lib/cli/commands/escalations.js +98 -0
  24. package/build/lib/db/schemas/001_schema.sql +10 -5
  25. package/build/lib/db/schemas/012_lt_tasks_workflow_id_unique.sql +20 -0
  26. package/build/lib/db/schemas/013_role_scope.sql +37 -0
  27. package/build/modules/version.d.ts +10 -5
  28. package/build/modules/version.js +27 -11
  29. package/build/routes/escalations/facets.d.ts +7 -0
  30. package/build/routes/escalations/facets.js +81 -0
  31. package/build/routes/escalations/index.js +3 -0
  32. package/build/routes/escalations/list.js +46 -0
  33. package/build/routes/escalations/resolve.js +22 -4
  34. package/build/routes/users.js +9 -5
  35. package/build/sdk/index.d.ts +33 -2
  36. package/build/sdk/index.js +7 -0
  37. package/build/services/escalation/crud.d.ts +56 -6
  38. package/build/services/escalation/crud.js +102 -31
  39. package/build/services/escalation/facet-sql.d.ts +18 -0
  40. package/build/services/escalation/facet-sql.js +118 -0
  41. package/build/services/escalation/facets.d.ts +45 -0
  42. package/build/services/escalation/facets.js +218 -0
  43. package/build/services/escalation/index.d.ts +1 -0
  44. package/build/services/escalation/index.js +8 -1
  45. package/build/services/escalation/queries.d.ts +45 -0
  46. package/build/services/escalation/queries.js +107 -6
  47. package/build/services/escalation/sql.d.ts +10 -4
  48. package/build/services/escalation/sql.js +36 -8
  49. package/build/services/interceptor/activities/escalation.d.ts +2 -0
  50. package/build/services/interceptor/activities/escalation.js +1 -1
  51. package/build/services/interceptor/lifecycle.js +4 -0
  52. package/build/services/mcp/server-tools.js +10 -4
  53. package/build/services/orchestrator/condition.js +6 -2
  54. package/build/services/role/index.js +2 -3
  55. package/build/services/role/sql.d.ts +8 -0
  56. package/build/services/role/sql.js +17 -1
  57. package/build/services/task/crud.js +22 -14
  58. package/build/services/task/process.js +3 -21
  59. package/build/services/task/sql.d.ts +24 -1
  60. package/build/services/task/sql.js +65 -1
  61. package/build/services/user/crud.d.ts +1 -0
  62. package/build/services/user/crud.js +29 -11
  63. package/build/services/user/index.d.ts +2 -1
  64. package/build/services/user/index.js +12 -1
  65. package/build/services/user/rbac.d.ts +18 -0
  66. package/build/services/user/rbac.js +27 -0
  67. package/build/services/user/roles.d.ts +7 -2
  68. package/build/services/user/roles.js +21 -5
  69. package/build/services/user/scope.d.ts +22 -0
  70. package/build/services/user/scope.js +50 -0
  71. package/build/services/user/seed-admin.js +34 -17
  72. package/build/services/user/sql.d.ts +18 -7
  73. package/build/services/user/sql.js +38 -13
  74. package/build/services/user/sso-provision.js +41 -24
  75. package/build/services/user/types.d.ts +9 -5
  76. package/build/system/mcp-servers/admin/escalations.js +65 -0
  77. package/build/system/mcp-servers/admin/schemas.d.ts +325 -0
  78. package/build/system/mcp-servers/admin/schemas.js +63 -2
  79. package/build/system/mcp-servers/admin/users.js +28 -2
  80. package/build/tsconfig.tsbuildinfo +1 -1
  81. package/build/types/envelope.d.ts +7 -0
  82. package/build/types/facets.d.ts +60 -0
  83. package/build/types/facets.js +10 -0
  84. package/build/types/index.d.ts +2 -1
  85. package/build/types/user.d.ts +11 -0
  86. package/dashboard/dist/assets/AdminDashboard-C5gfVEeL.js +2 -0
  87. package/dashboard/dist/assets/{AdminDashboard-LTiYLuzq.js.map → AdminDashboard-C5gfVEeL.js.map} +1 -1
  88. package/dashboard/dist/assets/{AgentConfigPage-nlOudfpZ.js → AgentConfigPage-CWEnuiGN.js} +6 -6
  89. package/dashboard/dist/assets/{AgentConfigPage-nlOudfpZ.js.map → AgentConfigPage-CWEnuiGN.js.map} +1 -1
  90. package/dashboard/dist/assets/{AgentDetailPage-BSUnDvGp.js → AgentDetailPage-B6IE27iK.js} +3 -3
  91. package/dashboard/dist/assets/AgentDetailPage-B6IE27iK.js.map +1 -0
  92. package/dashboard/dist/assets/AgentsPage-Blhh2RsK.js +2 -0
  93. package/dashboard/dist/assets/{AgentsPage-DpS0cCYe.js.map → AgentsPage-Blhh2RsK.js.map} +1 -1
  94. package/dashboard/dist/assets/AvailableEscalationsPage-ClwAle76.js +2 -0
  95. package/dashboard/dist/assets/AvailableEscalationsPage-ClwAle76.js.map +1 -0
  96. package/dashboard/dist/assets/{BotPicker-BhKmq7M7.js → BotPicker-DSozotGk.js} +2 -2
  97. package/dashboard/dist/assets/{BotPicker-BhKmq7M7.js.map → BotPicker-DSozotGk.js.map} +1 -1
  98. package/dashboard/dist/assets/CapabilitiesPage-CrS_DTA1.js +2 -0
  99. package/dashboard/dist/assets/CapabilitiesPage-CrS_DTA1.js.map +1 -0
  100. package/dashboard/dist/assets/{CollapsibleSection-D7SVwNVk.js → CollapsibleSection-1i6bOQ1L.js} +2 -2
  101. package/dashboard/dist/assets/{CollapsibleSection-D7SVwNVk.js.map → CollapsibleSection-1i6bOQ1L.js.map} +1 -1
  102. package/dashboard/dist/assets/CopyableId-blg-gZvT.js +2 -0
  103. package/dashboard/dist/assets/CopyableId-blg-gZvT.js.map +1 -0
  104. package/dashboard/dist/assets/{CredentialsPage-fat5Z2U9.js → CredentialsPage-BxJio06E.js} +2 -2
  105. package/dashboard/dist/assets/{CredentialsPage-fat5Z2U9.js.map → CredentialsPage-BxJio06E.js.map} +1 -1
  106. package/dashboard/dist/assets/{CronLabel-OOP4P2mJ.js → CronLabel-BAfIHHz4.js} +2 -2
  107. package/dashboard/dist/assets/{CronLabel-OOP4P2mJ.js.map → CronLabel-BAfIHHz4.js.map} +1 -1
  108. package/dashboard/dist/assets/{CustomDurationPicker-COacSAXO.js → CustomDurationPicker-BLF0NFJK.js} +2 -2
  109. package/dashboard/dist/assets/{CustomDurationPicker-COacSAXO.js.map → CustomDurationPicker-BLF0NFJK.js.map} +1 -1
  110. package/dashboard/dist/assets/{DataTable-D9yuBv0w.js → DataTable-ZWgVQg7F.js} +2 -2
  111. package/dashboard/dist/assets/DataTable-ZWgVQg7F.js.map +1 -0
  112. package/dashboard/dist/assets/{DropZone-Bfw2YLVS.js → DropZone-CEx_wk-g.js} +2 -2
  113. package/dashboard/dist/assets/{DropZone-Bfw2YLVS.js.map → DropZone-CEx_wk-g.js.map} +1 -1
  114. package/dashboard/dist/assets/{ElapsedCell-CkfCD-m7.js → ElapsedCell-nKGJvznH.js} +2 -2
  115. package/dashboard/dist/assets/{ElapsedCell-CkfCD-m7.js.map → ElapsedCell-nKGJvznH.js.map} +1 -1
  116. package/dashboard/dist/assets/{EscalationsOverview-BmI8jxlh.js → EscalationsOverview-bNNVA6R2.js} +2 -2
  117. package/dashboard/dist/assets/{EscalationsOverview-BmI8jxlh.js.map → EscalationsOverview-bNNVA6R2.js.map} +1 -1
  118. package/dashboard/dist/assets/{EventTable-CeKfFk3m.js → EventTable-BCuDdqlU.js} +2 -2
  119. package/dashboard/dist/assets/{EventTable-CeKfFk3m.js.map → EventTable-BCuDdqlU.js.map} +1 -1
  120. package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js +2 -0
  121. package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js.map +1 -0
  122. package/dashboard/dist/assets/GraphInvokePage-BPAvqHls.js +2 -0
  123. package/dashboard/dist/assets/GraphInvokePage-BPAvqHls.js.map +1 -0
  124. package/dashboard/dist/assets/HomePage-BZ1YTrjR.js +2 -0
  125. package/dashboard/dist/assets/HomePage-BZ1YTrjR.js.map +1 -0
  126. package/dashboard/dist/assets/{ListToolbar-BJaCzAXS.js → ListToolbar-DIJZfEgu.js} +2 -2
  127. package/dashboard/dist/assets/{ListToolbar-BJaCzAXS.js.map → ListToolbar-DIJZfEgu.js.map} +1 -1
  128. package/dashboard/dist/assets/{McpOverview-CvnDG5OB.js → McpOverview-DCfSCfPg.js} +2 -2
  129. package/dashboard/dist/assets/{McpOverview-CvnDG5OB.js.map → McpOverview-DCfSCfPg.js.map} +1 -1
  130. package/dashboard/dist/assets/{McpQueryDetailPage-DwmSIcIL.js → McpQueryDetailPage-mb7rmtNe.js} +2 -2
  131. package/dashboard/dist/assets/{McpQueryDetailPage-DwmSIcIL.js.map → McpQueryDetailPage-mb7rmtNe.js.map} +1 -1
  132. package/dashboard/dist/assets/{McpQueryPage-CU6FMEEk.js → McpQueryPage-D9b1T0I3.js} +2 -2
  133. package/dashboard/dist/assets/{McpQueryPage-CU6FMEEk.js.map → McpQueryPage-D9b1T0I3.js.map} +1 -1
  134. package/dashboard/dist/assets/{McpRunDetailPage-8a6lsehv.js → McpRunDetailPage-Bz2UyuNm.js} +2 -2
  135. package/dashboard/dist/assets/{McpRunDetailPage-8a6lsehv.js.map → McpRunDetailPage-Bz2UyuNm.js.map} +1 -1
  136. package/dashboard/dist/assets/McpRunsPage-Dw7w_ZO-.js +2 -0
  137. package/dashboard/dist/assets/McpRunsPage-Dw7w_ZO-.js.map +1 -0
  138. package/dashboard/dist/assets/{NamespacePill-D6btr6e8.js → NamespacePill-D27vqDXy.js} +2 -2
  139. package/dashboard/dist/assets/{NamespacePill-D6btr6e8.js.map → NamespacePill-D27vqDXy.js.map} +1 -1
  140. package/dashboard/dist/assets/OperatorDashboard-CTzSDW3N.js +2 -0
  141. package/dashboard/dist/assets/{OperatorDashboard-g9o7I925.js.map → OperatorDashboard-CTzSDW3N.js.map} +1 -1
  142. package/dashboard/dist/assets/PageHeader-B_1zTx2q.js +2 -0
  143. package/dashboard/dist/assets/PageHeader-B_1zTx2q.js.map +1 -0
  144. package/dashboard/dist/assets/{PageHeaderWithStats-DJQCZ0FR.js → PageHeaderWithStats-D-cPg7UD.js} +2 -2
  145. package/dashboard/dist/assets/{PageHeaderWithStats-DJQCZ0FR.js.map → PageHeaderWithStats-D-cPg7UD.js.map} +1 -1
  146. package/dashboard/dist/assets/PriorityBadge-B4ykBH7f.js +2 -0
  147. package/dashboard/dist/assets/PriorityBadge-B4ykBH7f.js.map +1 -0
  148. package/dashboard/dist/assets/{ProcessDetailPage-ByyWCs2A.js → ProcessDetailPage-olG2CS-h.js} +2 -2
  149. package/dashboard/dist/assets/{ProcessDetailPage-ByyWCs2A.js.map → ProcessDetailPage-olG2CS-h.js.map} +1 -1
  150. package/dashboard/dist/assets/{ProcessesListPage-BTsXds4l.js → ProcessesListPage-CUZSL06Y.js} +2 -2
  151. package/dashboard/dist/assets/{ProcessesListPage-BTsXds4l.js.map → ProcessesListPage-CUZSL06Y.js.map} +1 -1
  152. package/dashboard/dist/assets/RolePill-B-V-31lC.js +2 -0
  153. package/dashboard/dist/assets/RolePill-B-V-31lC.js.map +1 -0
  154. package/dashboard/dist/assets/RolesPage-DLnaW6iD.js +2 -0
  155. package/dashboard/dist/assets/RolesPage-DLnaW6iD.js.map +1 -0
  156. package/dashboard/dist/assets/RowActions-BA9L9djf.js +2 -0
  157. package/dashboard/dist/assets/RowActions-BA9L9djf.js.map +1 -0
  158. package/dashboard/dist/assets/{RunAsSelector-BzkZXpSX.js → RunAsSelector-BoLHF4fy.js} +2 -2
  159. package/dashboard/dist/assets/{RunAsSelector-BzkZXpSX.js.map → RunAsSelector-BoLHF4fy.js.map} +1 -1
  160. package/dashboard/dist/assets/StickyPagination-BEMY1L-H.js +2 -0
  161. package/dashboard/dist/assets/StickyPagination-BEMY1L-H.js.map +1 -0
  162. package/dashboard/dist/assets/{StreamMessageDetail-B6ch-6SY.js → StreamMessageDetail-CVRVWXcU.js} +2 -2
  163. package/dashboard/dist/assets/{StreamMessageDetail-B6ch-6SY.js.map → StreamMessageDetail-CVRVWXcU.js.map} +1 -1
  164. package/dashboard/dist/assets/{SwimlaneTimeline-CjvfUkls.js → SwimlaneTimeline-DDpU0-Jn.js} +2 -2
  165. package/dashboard/dist/assets/{SwimlaneTimeline-CjvfUkls.js.map → SwimlaneTimeline-DDpU0-Jn.js.map} +1 -1
  166. package/dashboard/dist/assets/{TagInput-CZSeyesi.js → TagInput-BHVfG307.js} +2 -2
  167. package/dashboard/dist/assets/{TagInput-CZSeyesi.js.map → TagInput-BHVfG307.js.map} +1 -1
  168. package/dashboard/dist/assets/{TaskDetailPage-BjHU6opi.js → TaskDetailPage-B_xQtJMg.js} +2 -2
  169. package/dashboard/dist/assets/{TaskDetailPage-BjHU6opi.js.map → TaskDetailPage-B_xQtJMg.js.map} +1 -1
  170. package/dashboard/dist/assets/{TaskQueuePill-CQrXrSxk.js → TaskQueuePill-CGlxXqWt.js} +2 -2
  171. package/dashboard/dist/assets/{TaskQueuePill-CQrXrSxk.js.map → TaskQueuePill-CGlxXqWt.js.map} +1 -1
  172. package/dashboard/dist/assets/{TasksListPage-Bem44zd0.js → TasksListPage-CsrdIOKk.js} +2 -2
  173. package/dashboard/dist/assets/{TasksListPage-Bem44zd0.js.map → TasksListPage-CsrdIOKk.js.map} +1 -1
  174. package/dashboard/dist/assets/TimeAgo-DmicaxjT.js +2 -0
  175. package/dashboard/dist/assets/{TimeAgo-CUIYqSt_.js.map → TimeAgo-DmicaxjT.js.map} +1 -1
  176. package/dashboard/dist/assets/{TimestampCell--tnreI1i.js → TimestampCell-DeK89eRV.js} +2 -2
  177. package/dashboard/dist/assets/{TimestampCell--tnreI1i.js.map → TimestampCell-DeK89eRV.js.map} +1 -1
  178. package/dashboard/dist/assets/{ToolPill-O09jsTQM.js → ToolPill-NV7PxSpA.js} +2 -2
  179. package/dashboard/dist/assets/{ToolPill-O09jsTQM.js.map → ToolPill-NV7PxSpA.js.map} +1 -1
  180. package/dashboard/dist/assets/{ToolTestPanel-OD99H7Pk.js → ToolTestPanel-D3s2n9-9.js} +2 -2
  181. package/dashboard/dist/assets/{ToolTestPanel-OD99H7Pk.js.map → ToolTestPanel-D3s2n9-9.js.map} +1 -1
  182. package/dashboard/dist/assets/{TopicDetailPage-rh_dsTJI.js → TopicDetailPage-qyv7UWT_.js} +3 -3
  183. package/dashboard/dist/assets/TopicDetailPage-qyv7UWT_.js.map +1 -0
  184. package/dashboard/dist/assets/TopicsPage-CEUfMoed.js +2 -0
  185. package/dashboard/dist/assets/TopicsPage-CEUfMoed.js.map +1 -0
  186. package/dashboard/dist/assets/{UserName-C__c8BN0.js → UserName-Bn_BxI8K.js} +2 -2
  187. package/dashboard/dist/assets/{UserName-C__c8BN0.js.map → UserName-Bn_BxI8K.js.map} +1 -1
  188. package/dashboard/dist/assets/{WorkflowExecutionPage-Bw6QdtUO.js → WorkflowExecutionPage-DAk2RqpB.js} +2 -2
  189. package/dashboard/dist/assets/{WorkflowExecutionPage-Bw6QdtUO.js.map → WorkflowExecutionPage-DAk2RqpB.js.map} +1 -1
  190. package/dashboard/dist/assets/{WorkflowPill-CS-IsR0U.js → WorkflowPill-DDR0B6DN.js} +2 -2
  191. package/dashboard/dist/assets/{WorkflowPill-CS-IsR0U.js.map → WorkflowPill-DDR0B6DN.js.map} +1 -1
  192. package/dashboard/dist/assets/WorkflowsDashboard-DfBgM80t.js +2 -0
  193. package/dashboard/dist/assets/WorkflowsDashboard-DfBgM80t.js.map +1 -0
  194. package/dashboard/dist/assets/{WorkflowsOverview-BRc0QbA7.js → WorkflowsOverview--Dkoo9Jq.js} +2 -2
  195. package/dashboard/dist/assets/{WorkflowsOverview-BRc0QbA7.js.map → WorkflowsOverview--Dkoo9Jq.js.map} +1 -1
  196. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DdzspNQR.js → YamlWorkflowDetailPage-B6HYbfFj.js} +25 -25
  197. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DdzspNQR.js.map → YamlWorkflowDetailPage-B6HYbfFj.js.map} +1 -1
  198. package/dashboard/dist/assets/{YamlWorkflowsPage-Djw5ZbgQ.js → YamlWorkflowsPage-CJE-PxC0.js} +2 -2
  199. package/dashboard/dist/assets/{YamlWorkflowsPage-Djw5ZbgQ.js.map → YamlWorkflowsPage-CJE-PxC0.js.map} +1 -1
  200. package/dashboard/dist/assets/{agents-xstNkF6c.js → agents-DUciUZpt.js} +2 -2
  201. package/dashboard/dist/assets/{agents-xstNkF6c.js.map → agents-DUciUZpt.js.map} +1 -1
  202. package/dashboard/dist/assets/{bots-BztAI0s_.js → bots-BnyqCfuC.js} +2 -2
  203. package/dashboard/dist/assets/{bots-BztAI0s_.js.map → bots-BnyqCfuC.js.map} +1 -1
  204. package/dashboard/dist/assets/{capabilities-CEDwtxNL.js → capabilities-CkTWWT0q.js} +2 -2
  205. package/dashboard/dist/assets/{capabilities-CEDwtxNL.js.map → capabilities-CkTWWT0q.js.map} +1 -1
  206. package/dashboard/dist/assets/{controlplane-BlGEsRKe.js → controlplane-D9HaFZsC.js} +2 -2
  207. package/dashboard/dist/assets/{controlplane-BlGEsRKe.js.map → controlplane-D9HaFZsC.js.map} +1 -1
  208. package/dashboard/dist/assets/{escalation-iI4QKlP-.js → escalation-De9JnTKI.js} +2 -2
  209. package/dashboard/dist/assets/{escalation-iI4QKlP-.js.map → escalation-De9JnTKI.js.map} +1 -1
  210. package/dashboard/dist/assets/escalation-columns-Df7Pluzg.js +2 -0
  211. package/dashboard/dist/assets/escalation-columns-Df7Pluzg.js.map +1 -0
  212. package/dashboard/dist/assets/index-7hqtQI43.js +2 -0
  213. package/dashboard/dist/assets/index-7hqtQI43.js.map +1 -0
  214. package/dashboard/dist/assets/{index-CAqEy2Db.js → index-B07xLlyz.js} +2 -2
  215. package/dashboard/dist/assets/{index-CAqEy2Db.js.map → index-B07xLlyz.js.map} +1 -1
  216. package/dashboard/dist/assets/{index-D1xVY4JR.js → index-B1kc6itM.js} +24 -24
  217. package/dashboard/dist/assets/index-B1kc6itM.js.map +1 -0
  218. package/dashboard/dist/assets/index-BAhkWcOq.js +9 -0
  219. package/dashboard/dist/assets/index-BAhkWcOq.js.map +1 -0
  220. package/dashboard/dist/assets/{index-Dsi5o7dx.js → index-BsIaUbKD.js} +2 -2
  221. package/dashboard/dist/assets/{index-Dsi5o7dx.js.map → index-BsIaUbKD.js.map} +1 -1
  222. package/dashboard/dist/assets/index-BxdiKgnH.js +6 -0
  223. package/dashboard/dist/assets/index-BxdiKgnH.js.map +1 -0
  224. package/dashboard/dist/assets/{index-B7VC0vjf.js → index-BzMsh6Ui.js} +2 -2
  225. package/dashboard/dist/assets/{index-B7VC0vjf.js.map → index-BzMsh6Ui.js.map} +1 -1
  226. package/dashboard/dist/assets/index-CN0efCE9.js +6 -0
  227. package/dashboard/dist/assets/index-CN0efCE9.js.map +1 -0
  228. package/dashboard/dist/assets/{index-B5qsp8lb.js → index-CgD9fA9P.js} +2 -2
  229. package/dashboard/dist/assets/{index-B5qsp8lb.js.map → index-CgD9fA9P.js.map} +1 -1
  230. package/dashboard/dist/assets/{index-CUfgt3mV.js → index-Cqjf-yVP.js} +2 -2
  231. package/dashboard/dist/assets/{index-CUfgt3mV.js.map → index-Cqjf-yVP.js.map} +1 -1
  232. package/dashboard/dist/assets/{index-DjJ6VCuc.js → index-DNugmBs7.js} +2 -2
  233. package/dashboard/dist/assets/{index-DjJ6VCuc.js.map → index-DNugmBs7.js.map} +1 -1
  234. package/dashboard/dist/assets/{index-BUmnJ4eT.js → index-DjxTV3cn.js} +2 -2
  235. package/dashboard/dist/assets/{index-BUmnJ4eT.js.map → index-DjxTV3cn.js.map} +1 -1
  236. package/dashboard/dist/assets/index-DpAS4-DA.js +2 -0
  237. package/dashboard/dist/assets/index-DpAS4-DA.js.map +1 -0
  238. package/dashboard/dist/assets/index-nO0cim3_.css +1 -0
  239. package/dashboard/dist/assets/{knowledge-BKg0cr39.js → knowledge-D4SvdNv5.js} +2 -2
  240. package/dashboard/dist/assets/{knowledge-BKg0cr39.js.map → knowledge-D4SvdNv5.js.map} +1 -1
  241. package/dashboard/dist/assets/{mcp-CVdHpKlz.js → mcp-DVxt4T9J.js} +2 -2
  242. package/dashboard/dist/assets/{mcp-CVdHpKlz.js.map → mcp-DVxt4T9J.js.map} +1 -1
  243. package/dashboard/dist/assets/{mcp-query-CYxZcbwQ.js → mcp-query-CLP9EnnU.js} +2 -2
  244. package/dashboard/dist/assets/{mcp-query-CYxZcbwQ.js.map → mcp-query-CLP9EnnU.js.map} +1 -1
  245. package/dashboard/dist/assets/{pipelines-BOEv7P6O.js → pipelines-C_x0LTBN.js} +2 -2
  246. package/dashboard/dist/assets/{pipelines-BOEv7P6O.js.map → pipelines-C_x0LTBN.js.map} +1 -1
  247. package/dashboard/dist/assets/{roles-c5cV2QYQ.js → roles-QaGFZQ58.js} +2 -2
  248. package/dashboard/dist/assets/{roles-c5cV2QYQ.js.map → roles-QaGFZQ58.js.map} +1 -1
  249. package/dashboard/dist/assets/{tasks-JV3BjeEF.js → tasks-1eTuP02d.js} +2 -2
  250. package/dashboard/dist/assets/{tasks-JV3BjeEF.js.map → tasks-1eTuP02d.js.map} +1 -1
  251. package/dashboard/dist/assets/{topics-BDaPnhnQ.js → topics-B3p8K0PW.js} +2 -2
  252. package/dashboard/dist/assets/{topics-BDaPnhnQ.js.map → topics-B3p8K0PW.js.map} +1 -1
  253. package/dashboard/dist/assets/{useEventHooks-a7Dnh8G4.js → useEventHooks-BNZky4xM.js} +2 -2
  254. package/dashboard/dist/assets/{useEventHooks-a7Dnh8G4.js.map → useEventHooks-BNZky4xM.js.map} +1 -1
  255. package/dashboard/dist/assets/{useNamespace-BSwEV0e9.js → useNamespace-Dx81_JM0.js} +2 -2
  256. package/dashboard/dist/assets/{useNamespace-BSwEV0e9.js.map → useNamespace-Dx81_JM0.js.map} +1 -1
  257. package/dashboard/dist/assets/{useYamlActivityEvents-BuqvL-cn.js → useYamlActivityEvents-D5T3TbE7.js} +2 -2
  258. package/dashboard/dist/assets/{useYamlActivityEvents-BuqvL-cn.js.map → useYamlActivityEvents-D5T3TbE7.js.map} +1 -1
  259. package/dashboard/dist/assets/users-BEMysNdR.js +2 -0
  260. package/dashboard/dist/assets/users-BEMysNdR.js.map +1 -0
  261. package/dashboard/dist/assets/{vendor-icons-D5ycKPA2.js → vendor-icons--Ivmp-RX.js} +132 -112
  262. package/dashboard/dist/assets/vendor-icons--Ivmp-RX.js.map +1 -0
  263. package/dashboard/dist/assets/{workflows-DF-9Voyi.js → workflows-C4rjvQbI.js} +2 -2
  264. package/dashboard/dist/assets/{workflows-DF-9Voyi.js.map → workflows-C4rjvQbI.js.map} +1 -1
  265. package/dashboard/dist/assets/{yaml-workflows-2roKaSSK.js → yaml-workflows-4rJ5v5rJ.js} +2 -2
  266. package/dashboard/dist/assets/{yaml-workflows-2roKaSSK.js.map → yaml-workflows-4rJ5v5rJ.js.map} +1 -1
  267. package/dashboard/dist/index.html +3 -3
  268. package/docs/api/http/escalations.md +131 -10
  269. package/docs/api/http/roles.md +44 -9
  270. package/docs/api/http/users.md +15 -6
  271. package/docs/api/mcp/admin.md +8 -2
  272. package/docs/api/mcp/human-queue.md +34 -2
  273. package/docs/api/sdk/escalations.md +155 -2
  274. package/docs/api/sdk/roles.md +11 -0
  275. package/docs/api/sdk/users.md +26 -1
  276. package/docs/auth.md +1 -1
  277. package/docs/dashboard.md +5 -4
  278. package/docs/data.md +9 -2
  279. package/docs/faceted-routing.md +221 -0
  280. package/docs/hitl-guide.md +50 -0
  281. package/docs/iam.md +31 -0
  282. package/docs/mcp.md +8 -0
  283. package/package.json +2 -2
  284. package/dashboard/dist/assets/AdminDashboard-LTiYLuzq.js +0 -2
  285. package/dashboard/dist/assets/AgentDetailPage-BSUnDvGp.js.map +0 -1
  286. package/dashboard/dist/assets/AgentsPage-DpS0cCYe.js +0 -2
  287. package/dashboard/dist/assets/AvailableEscalationsPage-BEylRqjP.js +0 -2
  288. package/dashboard/dist/assets/AvailableEscalationsPage-BEylRqjP.js.map +0 -1
  289. package/dashboard/dist/assets/CapabilitiesPage-DLIleX2L.js +0 -2
  290. package/dashboard/dist/assets/CapabilitiesPage-DLIleX2L.js.map +0 -1
  291. package/dashboard/dist/assets/CopyableId-DaT0ZRHg.js +0 -2
  292. package/dashboard/dist/assets/CopyableId-DaT0ZRHg.js.map +0 -1
  293. package/dashboard/dist/assets/DataTable-D9yuBv0w.js.map +0 -1
  294. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  295. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js.map +0 -1
  296. package/dashboard/dist/assets/GraphInvokePage-BZBPBCSq.js +0 -2
  297. package/dashboard/dist/assets/GraphInvokePage-BZBPBCSq.js.map +0 -1
  298. package/dashboard/dist/assets/HomePage-dM7U2tl6.js +0 -2
  299. package/dashboard/dist/assets/HomePage-dM7U2tl6.js.map +0 -1
  300. package/dashboard/dist/assets/McpRunsPage-CPMYWgm_.js +0 -2
  301. package/dashboard/dist/assets/McpRunsPage-CPMYWgm_.js.map +0 -1
  302. package/dashboard/dist/assets/OperatorDashboard-g9o7I925.js +0 -2
  303. package/dashboard/dist/assets/PageHeader-Dk2Pe44Q.js +0 -2
  304. package/dashboard/dist/assets/PageHeader-Dk2Pe44Q.js.map +0 -1
  305. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  306. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js.map +0 -1
  307. package/dashboard/dist/assets/RolePill-Du-aNnjR.js +0 -2
  308. package/dashboard/dist/assets/RolePill-Du-aNnjR.js.map +0 -1
  309. package/dashboard/dist/assets/RolesPage-B2Kdf-L9.js +0 -2
  310. package/dashboard/dist/assets/RolesPage-B2Kdf-L9.js.map +0 -1
  311. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  312. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js.map +0 -1
  313. package/dashboard/dist/assets/StickyPagination-BWhFSr2d.js +0 -2
  314. package/dashboard/dist/assets/StickyPagination-BWhFSr2d.js.map +0 -1
  315. package/dashboard/dist/assets/TimeAgo-CUIYqSt_.js +0 -2
  316. package/dashboard/dist/assets/TopicDetailPage-rh_dsTJI.js.map +0 -1
  317. package/dashboard/dist/assets/TopicsPage-CD_40_v-.js +0 -2
  318. package/dashboard/dist/assets/TopicsPage-CD_40_v-.js.map +0 -1
  319. package/dashboard/dist/assets/WorkflowsDashboard-BgI-iOP6.js +0 -2
  320. package/dashboard/dist/assets/WorkflowsDashboard-BgI-iOP6.js.map +0 -1
  321. package/dashboard/dist/assets/escalation-columns-nVYVt7Gl.js +0 -2
  322. package/dashboard/dist/assets/escalation-columns-nVYVt7Gl.js.map +0 -1
  323. package/dashboard/dist/assets/index-CMviPjXQ.js +0 -9
  324. package/dashboard/dist/assets/index-CMviPjXQ.js.map +0 -1
  325. package/dashboard/dist/assets/index-CP0JEQhZ.js +0 -6
  326. package/dashboard/dist/assets/index-CP0JEQhZ.js.map +0 -1
  327. package/dashboard/dist/assets/index-ClvYSNZd.css +0 -1
  328. package/dashboard/dist/assets/index-D1xVY4JR.js.map +0 -1
  329. package/dashboard/dist/assets/index-DPLy-jwO.js +0 -2
  330. package/dashboard/dist/assets/index-DPLy-jwO.js.map +0 -1
  331. package/dashboard/dist/assets/index-DzVYjoex.js +0 -6
  332. package/dashboard/dist/assets/index-DzVYjoex.js.map +0 -1
  333. package/dashboard/dist/assets/index-FuhiJuHL.js +0 -2
  334. package/dashboard/dist/assets/index-FuhiJuHL.js.map +0 -1
  335. package/dashboard/dist/assets/users-Pn85K_3C.js +0 -2
  336. package/dashboard/dist/assets/users-Pn85K_3C.js.map +0 -1
  337. package/dashboard/dist/assets/vendor-icons-D5ycKPA2.js.map +0 -1
@@ -51,30 +51,91 @@ export declare const findEscalationsSchema: z.ZodObject<{
51
51
  order: z.ZodOptional<z.ZodEnum<["asc", "desc"]>>;
52
52
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
53
53
  offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
54
+ roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
55
+ facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
56
+ block: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>, "many">>;
57
+ range: z.ZodOptional<z.ZodArray<z.ZodObject<{
58
+ facet: z.ZodString;
59
+ op: z.ZodEnum<["<", "<=", ">", ">=", "="]>;
60
+ value: z.ZodNumber;
61
+ }, "strip", z.ZodTypeAny, {
62
+ value: number;
63
+ facet: string;
64
+ op: "<" | "<=" | ">" | ">=" | "=";
65
+ }, {
66
+ value: number;
67
+ facet: string;
68
+ op: "<" | "<=" | ">" | ">=" | "=";
69
+ }>, "many">>;
70
+ exists: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
71
+ available: z.ZodOptional<z.ZodBoolean>;
72
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
73
+ field: z.ZodString;
74
+ direction: z.ZodOptional<z.ZodEnum<["asc", "desc"]>>;
75
+ numeric: z.ZodOptional<z.ZodBoolean>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ field: string;
78
+ direction?: "asc" | "desc" | undefined;
79
+ numeric?: boolean | undefined;
80
+ }, {
81
+ field: string;
82
+ direction?: "asc" | "desc" | undefined;
83
+ numeric?: boolean | undefined;
84
+ }>, "many">>;
54
85
  }, "strip", z.ZodTypeAny, {
55
86
  limit: number;
56
87
  offset: number;
57
88
  role?: string | undefined;
58
89
  status?: "pending" | "cancelled" | "resolved" | undefined;
90
+ roles?: string[] | undefined;
59
91
  type?: string | undefined;
60
92
  search?: string | undefined;
61
93
  priority?: number | undefined;
94
+ orderBy?: {
95
+ field: string;
96
+ direction?: "asc" | "desc" | undefined;
97
+ numeric?: boolean | undefined;
98
+ }[] | undefined;
62
99
  assigned_to?: string | undefined;
63
100
  subtype?: string | undefined;
101
+ available?: boolean | undefined;
64
102
  sort_by?: "created_at" | "updated_at" | "priority" | undefined;
65
103
  order?: "asc" | "desc" | undefined;
104
+ facets?: Record<string, any> | undefined;
105
+ block?: Record<string, any>[] | undefined;
106
+ range?: {
107
+ value: number;
108
+ facet: string;
109
+ op: "<" | "<=" | ">" | ">=" | "=";
110
+ }[] | undefined;
111
+ exists?: string[] | undefined;
66
112
  }, {
67
113
  role?: string | undefined;
68
114
  status?: "pending" | "cancelled" | "resolved" | undefined;
115
+ roles?: string[] | undefined;
69
116
  type?: string | undefined;
70
117
  search?: string | undefined;
71
118
  limit?: number | undefined;
72
119
  offset?: number | undefined;
73
120
  priority?: number | undefined;
121
+ orderBy?: {
122
+ field: string;
123
+ direction?: "asc" | "desc" | undefined;
124
+ numeric?: boolean | undefined;
125
+ }[] | undefined;
74
126
  assigned_to?: string | undefined;
75
127
  subtype?: string | undefined;
128
+ available?: boolean | undefined;
76
129
  sort_by?: "created_at" | "updated_at" | "priority" | undefined;
77
130
  order?: "asc" | "desc" | undefined;
131
+ facets?: Record<string, any> | undefined;
132
+ block?: Record<string, any>[] | undefined;
133
+ range?: {
134
+ value: number;
135
+ facet: string;
136
+ op: "<" | "<=" | ">" | ">=" | "=";
137
+ }[] | undefined;
138
+ exists?: string[] | undefined;
78
139
  }>;
79
140
  export declare const getEscalationSchema: z.ZodObject<{
80
141
  id: z.ZodString;
@@ -406,19 +467,27 @@ export declare const createUserSchema: z.ZodObject<{
406
467
  display_name: z.ZodOptional<z.ZodString>;
407
468
  email: z.ZodOptional<z.ZodString>;
408
469
  roles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
470
+ read_scope: z.ZodOptional<z.ZodEnum<["self", "all"]>>;
471
+ write_scope: z.ZodOptional<z.ZodEnum<["none", "self", "all"]>>;
409
472
  role: z.ZodString;
410
473
  type: z.ZodEnum<["superadmin", "admin", "member"]>;
411
474
  }, "strip", z.ZodTypeAny, {
412
475
  role: string;
413
476
  type: "admin" | "member" | "superadmin";
477
+ read_scope?: "self" | "all" | undefined;
478
+ write_scope?: "self" | "all" | "none" | undefined;
414
479
  }, {
415
480
  role: string;
416
481
  type: "admin" | "member" | "superadmin";
482
+ read_scope?: "self" | "all" | undefined;
483
+ write_scope?: "self" | "all" | "none" | undefined;
417
484
  }>, "many">>>;
418
485
  }, "strip", z.ZodTypeAny, {
419
486
  roles: {
420
487
  role: string;
421
488
  type: "admin" | "member" | "superadmin";
489
+ read_scope?: "self" | "all" | undefined;
490
+ write_scope?: "self" | "all" | "none" | undefined;
422
491
  }[];
423
492
  external_id: string;
424
493
  email?: string | undefined;
@@ -428,11 +497,15 @@ export declare const createUserSchema: z.ZodObject<{
428
497
  roles?: {
429
498
  role: string;
430
499
  type: "admin" | "member" | "superadmin";
500
+ read_scope?: "self" | "all" | undefined;
501
+ write_scope?: "self" | "all" | "none" | undefined;
431
502
  }[] | undefined;
432
503
  email?: string | undefined;
433
504
  display_name?: string | undefined;
434
505
  }>;
435
506
  export declare const addUserRoleSchema: z.ZodObject<{
507
+ read_scope: z.ZodOptional<z.ZodEnum<["self", "all"]>>;
508
+ write_scope: z.ZodOptional<z.ZodEnum<["none", "self", "all"]>>;
436
509
  user_id: z.ZodString;
437
510
  role: z.ZodString;
438
511
  type: z.ZodEnum<["superadmin", "admin", "member"]>;
@@ -440,10 +513,14 @@ export declare const addUserRoleSchema: z.ZodObject<{
440
513
  role: string;
441
514
  type: "admin" | "member" | "superadmin";
442
515
  user_id: string;
516
+ read_scope?: "self" | "all" | undefined;
517
+ write_scope?: "self" | "all" | "none" | undefined;
443
518
  }, {
444
519
  role: string;
445
520
  type: "admin" | "member" | "superadmin";
446
521
  user_id: string;
522
+ read_scope?: "self" | "all" | undefined;
523
+ write_scope?: "self" | "all" | "none" | undefined;
447
524
  }>;
448
525
  export declare const removeUserRoleSchema: z.ZodObject<{
449
526
  user_id: z.ZodString;
@@ -1154,3 +1231,251 @@ export declare const findOrphanedSignalsSchema: z.ZodObject<{
1154
1231
  limit?: number | undefined;
1155
1232
  within_hours?: number | undefined;
1156
1233
  }>;
1234
+ /** A faceted query over a pond — filter/sort by columns and metadata facets. */
1235
+ export declare const facetQuerySchema: z.ZodObject<{
1236
+ role: z.ZodString;
1237
+ status: z.ZodOptional<z.ZodString>;
1238
+ available: z.ZodOptional<z.ZodBoolean>;
1239
+ facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1240
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
1241
+ column: z.ZodString;
1242
+ direction: z.ZodEnum<["asc", "desc"]>;
1243
+ }, "strip", z.ZodTypeAny, {
1244
+ column: string;
1245
+ direction: "asc" | "desc";
1246
+ }, {
1247
+ column: string;
1248
+ direction: "asc" | "desc";
1249
+ }>, "many">>;
1250
+ limit: z.ZodOptional<z.ZodNumber>;
1251
+ offset: z.ZodOptional<z.ZodNumber>;
1252
+ }, "strip", z.ZodTypeAny, {
1253
+ role: string;
1254
+ status?: string | undefined;
1255
+ limit?: number | undefined;
1256
+ offset?: number | undefined;
1257
+ orderBy?: {
1258
+ column: string;
1259
+ direction: "asc" | "desc";
1260
+ }[] | undefined;
1261
+ available?: boolean | undefined;
1262
+ facets?: Record<string, any> | undefined;
1263
+ }, {
1264
+ role: string;
1265
+ status?: string | undefined;
1266
+ limit?: number | undefined;
1267
+ offset?: number | undefined;
1268
+ orderBy?: {
1269
+ column: string;
1270
+ direction: "asc" | "desc";
1271
+ }[] | undefined;
1272
+ available?: boolean | undefined;
1273
+ facets?: Record<string, any> | undefined;
1274
+ }>;
1275
+ export declare const resolveByIdsSchema: z.ZodObject<{
1276
+ ids: z.ZodArray<z.ZodString, "many">;
1277
+ resolverPayload: z.ZodRecord<z.ZodString, z.ZodAny>;
1278
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1279
+ }, "strip", z.ZodTypeAny, {
1280
+ ids: string[];
1281
+ resolverPayload: Record<string, any>;
1282
+ metadata?: Record<string, any> | undefined;
1283
+ }, {
1284
+ ids: string[];
1285
+ resolverPayload: Record<string, any>;
1286
+ metadata?: Record<string, any> | undefined;
1287
+ }>;
1288
+ export declare const searchByFacetsSchema: z.ZodObject<{
1289
+ role: z.ZodString;
1290
+ status: z.ZodOptional<z.ZodString>;
1291
+ available: z.ZodOptional<z.ZodBoolean>;
1292
+ facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1293
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
1294
+ column: z.ZodString;
1295
+ direction: z.ZodEnum<["asc", "desc"]>;
1296
+ }, "strip", z.ZodTypeAny, {
1297
+ column: string;
1298
+ direction: "asc" | "desc";
1299
+ }, {
1300
+ column: string;
1301
+ direction: "asc" | "desc";
1302
+ }>, "many">>;
1303
+ limit: z.ZodOptional<z.ZodNumber>;
1304
+ offset: z.ZodOptional<z.ZodNumber>;
1305
+ }, "strip", z.ZodTypeAny, {
1306
+ role: string;
1307
+ status?: string | undefined;
1308
+ limit?: number | undefined;
1309
+ offset?: number | undefined;
1310
+ orderBy?: {
1311
+ column: string;
1312
+ direction: "asc" | "desc";
1313
+ }[] | undefined;
1314
+ available?: boolean | undefined;
1315
+ facets?: Record<string, any> | undefined;
1316
+ }, {
1317
+ role: string;
1318
+ status?: string | undefined;
1319
+ limit?: number | undefined;
1320
+ offset?: number | undefined;
1321
+ orderBy?: {
1322
+ column: string;
1323
+ direction: "asc" | "desc";
1324
+ }[] | undefined;
1325
+ available?: boolean | undefined;
1326
+ facets?: Record<string, any> | undefined;
1327
+ }>;
1328
+ export declare const claimGroupsSchema: z.ZodObject<{
1329
+ query: z.ZodObject<{
1330
+ role: z.ZodString;
1331
+ status: z.ZodOptional<z.ZodString>;
1332
+ available: z.ZodOptional<z.ZodBoolean>;
1333
+ facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1334
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
1335
+ column: z.ZodString;
1336
+ direction: z.ZodEnum<["asc", "desc"]>;
1337
+ }, "strip", z.ZodTypeAny, {
1338
+ column: string;
1339
+ direction: "asc" | "desc";
1340
+ }, {
1341
+ column: string;
1342
+ direction: "asc" | "desc";
1343
+ }>, "many">>;
1344
+ limit: z.ZodOptional<z.ZodNumber>;
1345
+ offset: z.ZodOptional<z.ZodNumber>;
1346
+ }, "strip", z.ZodTypeAny, {
1347
+ role: string;
1348
+ status?: string | undefined;
1349
+ limit?: number | undefined;
1350
+ offset?: number | undefined;
1351
+ orderBy?: {
1352
+ column: string;
1353
+ direction: "asc" | "desc";
1354
+ }[] | undefined;
1355
+ available?: boolean | undefined;
1356
+ facets?: Record<string, any> | undefined;
1357
+ }, {
1358
+ role: string;
1359
+ status?: string | undefined;
1360
+ limit?: number | undefined;
1361
+ offset?: number | undefined;
1362
+ orderBy?: {
1363
+ column: string;
1364
+ direction: "asc" | "desc";
1365
+ }[] | undefined;
1366
+ available?: boolean | undefined;
1367
+ facets?: Record<string, any> | undefined;
1368
+ }>;
1369
+ limit: z.ZodOptional<z.ZodNumber>;
1370
+ durationMinutes: z.ZodOptional<z.ZodNumber>;
1371
+ sizeFacet: z.ZodOptional<z.ZodString>;
1372
+ }, "strip", z.ZodTypeAny, {
1373
+ query: {
1374
+ role: string;
1375
+ status?: string | undefined;
1376
+ limit?: number | undefined;
1377
+ offset?: number | undefined;
1378
+ orderBy?: {
1379
+ column: string;
1380
+ direction: "asc" | "desc";
1381
+ }[] | undefined;
1382
+ available?: boolean | undefined;
1383
+ facets?: Record<string, any> | undefined;
1384
+ };
1385
+ limit?: number | undefined;
1386
+ durationMinutes?: number | undefined;
1387
+ sizeFacet?: string | undefined;
1388
+ }, {
1389
+ query: {
1390
+ role: string;
1391
+ status?: string | undefined;
1392
+ limit?: number | undefined;
1393
+ offset?: number | undefined;
1394
+ orderBy?: {
1395
+ column: string;
1396
+ direction: "asc" | "desc";
1397
+ }[] | undefined;
1398
+ available?: boolean | undefined;
1399
+ facets?: Record<string, any> | undefined;
1400
+ };
1401
+ limit?: number | undefined;
1402
+ durationMinutes?: number | undefined;
1403
+ sizeFacet?: string | undefined;
1404
+ }>;
1405
+ export declare const claimByFacetsSchema: z.ZodObject<{
1406
+ query: z.ZodObject<{
1407
+ role: z.ZodString;
1408
+ status: z.ZodOptional<z.ZodString>;
1409
+ available: z.ZodOptional<z.ZodBoolean>;
1410
+ facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1411
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
1412
+ column: z.ZodString;
1413
+ direction: z.ZodEnum<["asc", "desc"]>;
1414
+ }, "strip", z.ZodTypeAny, {
1415
+ column: string;
1416
+ direction: "asc" | "desc";
1417
+ }, {
1418
+ column: string;
1419
+ direction: "asc" | "desc";
1420
+ }>, "many">>;
1421
+ limit: z.ZodOptional<z.ZodNumber>;
1422
+ offset: z.ZodOptional<z.ZodNumber>;
1423
+ }, "strip", z.ZodTypeAny, {
1424
+ role: string;
1425
+ status?: string | undefined;
1426
+ limit?: number | undefined;
1427
+ offset?: number | undefined;
1428
+ orderBy?: {
1429
+ column: string;
1430
+ direction: "asc" | "desc";
1431
+ }[] | undefined;
1432
+ available?: boolean | undefined;
1433
+ facets?: Record<string, any> | undefined;
1434
+ }, {
1435
+ role: string;
1436
+ status?: string | undefined;
1437
+ limit?: number | undefined;
1438
+ offset?: number | undefined;
1439
+ orderBy?: {
1440
+ column: string;
1441
+ direction: "asc" | "desc";
1442
+ }[] | undefined;
1443
+ available?: boolean | undefined;
1444
+ facets?: Record<string, any> | undefined;
1445
+ }>;
1446
+ limit: z.ZodOptional<z.ZodNumber>;
1447
+ durationMinutes: z.ZodOptional<z.ZodNumber>;
1448
+ allOrNone: z.ZodOptional<z.ZodBoolean>;
1449
+ }, "strip", z.ZodTypeAny, {
1450
+ query: {
1451
+ role: string;
1452
+ status?: string | undefined;
1453
+ limit?: number | undefined;
1454
+ offset?: number | undefined;
1455
+ orderBy?: {
1456
+ column: string;
1457
+ direction: "asc" | "desc";
1458
+ }[] | undefined;
1459
+ available?: boolean | undefined;
1460
+ facets?: Record<string, any> | undefined;
1461
+ };
1462
+ limit?: number | undefined;
1463
+ durationMinutes?: number | undefined;
1464
+ allOrNone?: boolean | undefined;
1465
+ }, {
1466
+ query: {
1467
+ role: string;
1468
+ status?: string | undefined;
1469
+ limit?: number | undefined;
1470
+ offset?: number | undefined;
1471
+ orderBy?: {
1472
+ column: string;
1473
+ direction: "asc" | "desc";
1474
+ }[] | undefined;
1475
+ available?: boolean | undefined;
1476
+ facets?: Record<string, any> | undefined;
1477
+ };
1478
+ limit?: number | undefined;
1479
+ durationMinutes?: number | undefined;
1480
+ allOrNone?: boolean | undefined;
1481
+ }>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateBotSchema = exports.createBotSchema = exports.getBotSchema = exports.listBotsSchema = exports.deleteAgentSubscriptionSchema = exports.createAgentSubscriptionSchema = exports.listAgentSubscriptionsSchema = exports.deleteAgentSchema = exports.updateAgentSchema = exports.createAgentSchema = exports.getAgentSchema = exports.listAgentsSchema = exports.pruneSchema = exports.addEscalationChainSchema = exports.createRoleSchema = exports.listRolesSchema = exports.removeUserRoleSchema = exports.addUserRoleSchema = exports.createUserSchema = exports.listUsersSchema = exports.invokeYamlWorkflowSchema = exports.deployYamlWorkflowSchema = exports.createYamlWorkflowSchema = exports.getYamlWorkflowSchema = exports.listYamlWorkflowsSchema = exports.disconnectMcpServerSchema = exports.connectMcpServerSchema = exports.updateMcpServerSchema = exports.listMcpServersSchema = exports.getWorkflowStatusSchema = exports.invokeWorkflowSchema = exports.listDiscoveredWorkflowsSchema = exports.deleteWorkflowConfigSchema = exports.upsertWorkflowConfigSchema = exports.listWorkflowConfigsSchema = exports.bulkTriageSchema = exports.releaseExpiredClaimsSchema = exports.bulkCancelSchema = exports.cancelEscalationSchema = exports.escalateEscalationSchema = exports.resolveBySignalKeySchema = exports.resolveEscalationSchema = exports.releaseEscalationSchema = exports.claimEscalationSchema = exports.getEscalationStatsSchema = exports.getEscalationsByWorkflowSchema = exports.getEscalationSchema = exports.findEscalationsSchema = exports.getProcessDetailSchema = exports.findTasksSchema = void 0;
4
- exports.findOrphanedSignalsSchema = exports.findStalledJobsSchema = exports.diagnoseJobSchema = exports.getExportStatusSchema = exports.exportWorkflowExecutionSchema = exports.exportWorkflowStateSchema = exports.listExportJobsSchema = exports.getSettingsSchema = exports.updatePrioritySchema = exports.bulkEscalateSchema = exports.bulkAssignSchema = exports.bulkClaimSchema = exports.resolveByMetadataSchema = exports.claimByMetadataSchema = exports.findByMetadataSchema = exports.deleteTopicSchema = exports.updateTopicSchema = exports.createTopicSchema = exports.getTopicSchema = exports.listTopicsSchema = exports.interruptJobSchema = exports.getJobExecutionSchema = exports.listPipelineJobsSchema = exports.listPipelineEntitiesSchema = exports.listStreamMessagesSchema = exports.getStreamStatsSchema = exports.applyThrottleSchema = exports.rollCallSchema = exports.listAppsSchema = exports.revokeBotKeySchema = exports.createBotApiKeySchema = exports.deleteBotSchema = void 0;
4
+ exports.claimByFacetsSchema = exports.claimGroupsSchema = exports.searchByFacetsSchema = exports.resolveByIdsSchema = exports.facetQuerySchema = exports.findOrphanedSignalsSchema = exports.findStalledJobsSchema = exports.diagnoseJobSchema = exports.getExportStatusSchema = exports.exportWorkflowExecutionSchema = exports.exportWorkflowStateSchema = exports.listExportJobsSchema = exports.getSettingsSchema = exports.updatePrioritySchema = exports.bulkEscalateSchema = exports.bulkAssignSchema = exports.bulkClaimSchema = exports.resolveByMetadataSchema = exports.claimByMetadataSchema = exports.findByMetadataSchema = exports.deleteTopicSchema = exports.updateTopicSchema = exports.createTopicSchema = exports.getTopicSchema = exports.listTopicsSchema = exports.interruptJobSchema = exports.getJobExecutionSchema = exports.listPipelineJobsSchema = exports.listPipelineEntitiesSchema = exports.listStreamMessagesSchema = exports.getStreamStatsSchema = exports.applyThrottleSchema = exports.rollCallSchema = exports.listAppsSchema = exports.revokeBotKeySchema = exports.createBotApiKeySchema = exports.deleteBotSchema = void 0;
5
5
  /**
6
6
  * Zod schemas for the admin MCP server tools.
7
7
  *
@@ -39,6 +39,23 @@ exports.findEscalationsSchema = zod_1.z.object({
39
39
  order: zod_1.z.enum(['asc', 'desc']).optional().describe('Sort direction for sort_by'),
40
40
  limit: zod_1.z.number().int().min(1).max(100).optional().default(5),
41
41
  offset: zod_1.z.number().int().min(0).optional().default(0),
42
+ // Faceted metadata query (role-scoped in SQL). A "facet" is a key/value INSIDE the
43
+ // row's metadata JSONB, matched by containment (metadata @>), GIN-served.
44
+ roles: zod_1.z.array(zod_1.z.string()).optional().describe('Restrict to these roles (role = ANY); narrows within scope, never widens past it'),
45
+ facets: zod_1.z.record(zod_1.z.any()).optional().describe('Required metadata facets — metadata @> facets (AND). e.g. { filament: "pla" } means metadata.filament == "pla"'),
46
+ block: zod_1.z.array(zod_1.z.record(zod_1.z.any())).optional().describe('Exclude rows whose metadata contains ANY of these facet sets: NOT (metadata @> ANY(block))'),
47
+ range: zod_1.z.array(zod_1.z.object({
48
+ facet: zod_1.z.string(),
49
+ op: zod_1.z.enum(['<', '<=', '>', '>=', '=']),
50
+ value: zod_1.z.number(),
51
+ })).optional().describe('Numeric ranges over a metadata facet, e.g. { facet: "confidence", op: "<=", value: 0.7 }'),
52
+ exists: zod_1.z.array(zod_1.z.string()).optional().describe('Metadata keys that must be present: metadata ? key'),
53
+ available: zod_1.z.boolean().optional().describe('true = only unclaimed/expired; false = only held now'),
54
+ orderBy: zod_1.z.array(zod_1.z.object({
55
+ field: zod_1.z.string(),
56
+ direction: zod_1.z.enum(['asc', 'desc']).optional(),
57
+ numeric: zod_1.z.boolean().optional(),
58
+ })).optional().describe('Sort by a column or a metadata path written "metadata.<key>" (set numeric for numeric sort)'),
42
59
  });
43
60
  exports.getEscalationSchema = zod_1.z.object({
44
61
  id: zod_1.z.string().describe('Escalation UUID'),
@@ -174,6 +191,16 @@ exports.listUsersSchema = zod_1.z.object({
174
191
  limit: zod_1.z.number().int().min(1).max(100).optional().default(50),
175
192
  offset: zod_1.z.number().int().min(0).optional().default(0),
176
193
  });
194
+ // Work-surface scope for a `member` grant. read governs search breadth, write
195
+ // governs claim/ack/delete breadth; admin/superadmin ignore scope (act on all).
196
+ // The write ⊆ read constraint (write_scope='all' requires read_scope='all') is
197
+ // validated in the handler so these stay plain object shapes for the tool registry.
198
+ const scopeFields = {
199
+ read_scope: zod_1.z.enum(['self', 'all']).optional()
200
+ .describe("Member search breadth: 'self' (own items) or 'all' (whole queue). Default all"),
201
+ write_scope: zod_1.z.enum(['none', 'self', 'all']).optional()
202
+ .describe("Member claim/ack/delete breadth: 'none', 'self' (own items), or 'all'. Default all"),
203
+ };
177
204
  exports.createUserSchema = zod_1.z.object({
178
205
  external_id: zod_1.z.string().describe('Stable user identifier'),
179
206
  display_name: zod_1.z.string().optional(),
@@ -181,12 +208,14 @@ exports.createUserSchema = zod_1.z.object({
181
208
  roles: zod_1.z.array(zod_1.z.object({
182
209
  role: zod_1.z.string(),
183
210
  type: zod_1.z.enum(['superadmin', 'admin', 'member']),
184
- })).optional().default([]).describe('Roles to assign on creation'),
211
+ ...scopeFields,
212
+ })).optional().default([]).describe('Roles to assign on creation (each with optional work-surface scope)'),
185
213
  });
186
214
  exports.addUserRoleSchema = zod_1.z.object({
187
215
  user_id: zod_1.z.string().describe('User UUID'),
188
216
  role: zod_1.z.string().describe('Role name'),
189
217
  type: zod_1.z.enum(['superadmin', 'admin', 'member']).describe('Permission level'),
218
+ ...scopeFields,
190
219
  });
191
220
  exports.removeUserRoleSchema = zod_1.z.object({
192
221
  user_id: zod_1.z.string().describe('User UUID'),
@@ -467,3 +496,35 @@ exports.findOrphanedSignalsSchema = zod_1.z.object({
467
496
  within_hours: zod_1.z.number().int().min(1).max(720).optional().default(24).describe('Recent time window to scan, in hours (default: 24, max: 720). Bounds the scan of the partitioned worker_streams table — widen deliberately to reach older orphans.'),
468
497
  limit: zod_1.z.number().int().min(1).max(500).optional().default(100).describe('Max results (default: 100, max: 500)'),
469
498
  });
499
+ // ── Faceted routing + set resolve ───────────────────────────────────────────
500
+ /** A faceted query over a pond — filter/sort by columns and metadata facets. */
501
+ exports.facetQuerySchema = zod_1.z.object({
502
+ role: zod_1.z.string().describe('Pond role to target (the escalation role)'),
503
+ status: zod_1.z.string().optional().describe("Status filter (e.g. 'pending')"),
504
+ available: zod_1.z.boolean().optional().describe('Only rows not currently claimed'),
505
+ facets: zod_1.z.record(zod_1.z.any()).optional().describe('Metadata facet equality filters'),
506
+ orderBy: zod_1.z.array(zod_1.z.object({
507
+ column: zod_1.z.string(),
508
+ direction: zod_1.z.enum(['asc', 'desc']),
509
+ })).optional().describe('Sort order over columns'),
510
+ limit: zod_1.z.number().int().min(1).optional(),
511
+ offset: zod_1.z.number().int().min(0).optional(),
512
+ });
513
+ exports.resolveByIdsSchema = zod_1.z.object({
514
+ ids: zod_1.z.array(zod_1.z.string()).min(1).describe('Escalation ids to resolve as one set'),
515
+ resolverPayload: zod_1.z.record(zod_1.z.any()).describe('Resolution payload applied to every row'),
516
+ metadata: zod_1.z.record(zod_1.z.any()).optional().describe('Outcome patch merged into each row'),
517
+ });
518
+ exports.searchByFacetsSchema = exports.facetQuerySchema;
519
+ exports.claimGroupsSchema = zod_1.z.object({
520
+ query: exports.facetQuerySchema,
521
+ limit: zod_1.z.number().int().min(1).optional().describe('Max groups to claim'),
522
+ durationMinutes: zod_1.z.number().int().min(1).optional().describe('Claim TTL in minutes'),
523
+ sizeFacet: zod_1.z.string().optional().describe('Metadata key holding the group size'),
524
+ });
525
+ exports.claimByFacetsSchema = zod_1.z.object({
526
+ query: exports.facetQuerySchema,
527
+ limit: zod_1.z.number().int().min(1).optional().describe('Max rows to claim'),
528
+ durationMinutes: zod_1.z.number().int().min(1).optional().describe('Claim TTL in minutes'),
529
+ allOrNone: zod_1.z.boolean().optional().describe('Commit only if the full limit was acquired'),
530
+ });
@@ -74,6 +74,18 @@ function registerUserTools(server) {
74
74
  'claim and resolve escalations for their assigned roles.',
75
75
  inputSchema: schemas_1.createUserSchema,
76
76
  }, async (args) => {
77
+ // roles carry optional read_scope/write_scope (default all/all); createUser
78
+ // normalizes admin/superadmin to all/all and stores member scope verbatim.
79
+ for (const r of args.roles) {
80
+ const read = r.read_scope ?? userService.DEFAULT_READ_SCOPE;
81
+ const write = r.write_scope ?? userService.DEFAULT_WRITE_SCOPE;
82
+ if (!userService.isValidScopePair(read, write)) {
83
+ return {
84
+ isError: true,
85
+ content: [{ type: 'text', text: `write_scope=all requires read_scope=all (role "${r.role}")` }],
86
+ };
87
+ }
88
+ }
77
89
  const user = await userService.createUser({
78
90
  external_id: args.external_id,
79
91
  display_name: args.display_name,
@@ -87,10 +99,24 @@ function registerUserTools(server) {
87
99
  // mirrors POST /api/users/:id/roles
88
100
  server.registerTool('add_user_role', {
89
101
  title: 'Add User Role',
90
- description: 'Assign a role to a user. Role type: member, admin, or superadmin.',
102
+ description: 'Assign a role to a user. Role type: member, admin, or superadmin. For a ' +
103
+ 'member, optional read_scope/write_scope set the work-surface (e.g. ' +
104
+ 'read_scope=self + write_scope=self for a one-time user who only handles ' +
105
+ 'their own pre-assigned escalation).',
91
106
  inputSchema: schemas_1.addUserRoleSchema,
92
107
  }, async (args) => {
93
- const result = await userService.addUserRole(args.user_id, args.role, args.type);
108
+ const read = args.read_scope ?? userService.DEFAULT_READ_SCOPE;
109
+ const write = args.write_scope ?? userService.DEFAULT_WRITE_SCOPE;
110
+ if (!userService.isValidScopePair(read, write)) {
111
+ return {
112
+ isError: true,
113
+ content: [{ type: 'text', text: 'write_scope=all requires read_scope=all' }],
114
+ };
115
+ }
116
+ const result = await userService.addUserRole(args.user_id, args.role, args.type, {
117
+ read_scope: args.read_scope,
118
+ write_scope: args.write_scope,
119
+ });
94
120
  return {
95
121
  content: [{ type: 'text', text: JSON.stringify(result) }],
96
122
  };