@hotmeshio/long-tail 0.31.1 → 0.32.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 (320) hide show
  1. package/build/api/escalations/create.js +17 -6
  2. package/build/api/escalations/files.d.ts +18 -0
  3. package/build/api/escalations/files.js +73 -0
  4. package/build/api/escalations/index.d.ts +1 -0
  5. package/build/api/escalations/index.js +4 -2
  6. package/build/api/escalations/metadata.js +5 -4
  7. package/build/api/escalations/resolve.js +6 -4
  8. package/build/bin/ltc.js +4 -2
  9. package/build/index.d.ts +2 -0
  10. package/build/index.js +13 -2
  11. package/build/lib/cli/commands/escalations.d.ts +2 -0
  12. package/build/lib/cli/commands/escalations.js +12 -4
  13. package/build/lib/storage/s3.js +1 -0
  14. package/build/modules/config.d.ts +9 -0
  15. package/build/modules/config.js +9 -0
  16. package/build/routes/escalations/single.js +11 -0
  17. package/build/sdk/index.d.ts +4 -0
  18. package/build/sdk/index.js +2 -0
  19. package/build/services/escalation/aggregate-resolved-sql.d.ts +19 -0
  20. package/build/services/escalation/aggregate-resolved-sql.js +57 -0
  21. package/build/services/escalation/aggregate-sql.d.ts +6 -1
  22. package/build/services/escalation/aggregate-sql.js +33 -12
  23. package/build/services/escalation/aggregate-validate.d.ts +5 -2
  24. package/build/services/escalation/aggregate-validate.js +7 -4
  25. package/build/services/escalation/aggregates.js +5 -3
  26. package/build/services/escalation/crud.js +3 -0
  27. package/build/services/escalation/file-links.d.ts +39 -0
  28. package/build/services/escalation/file-links.js +118 -0
  29. package/build/services/escalation/resolver-validation.d.ts +33 -0
  30. package/build/services/escalation/resolver-validation.js +22 -6
  31. package/build/services/orchestrator/condition.d.ts +20 -4
  32. package/build/services/orchestrator/condition.js +27 -8
  33. package/build/shared/form-validation/display-only-widgets.d.ts +3 -2
  34. package/build/shared/form-validation/display-only-widgets.js +3 -2
  35. package/build/shared/form-validation/index.d.ts +2 -0
  36. package/build/shared/form-validation/index.js +2 -0
  37. package/build/shared/form-validation/x-lt-confidence-facets.d.ts +27 -0
  38. package/build/shared/form-validation/x-lt-confidence-facets.js +60 -0
  39. package/build/shared/form-validation/x-lt-confidence.d.ts +57 -0
  40. package/build/shared/form-validation/x-lt-confidence.js +177 -0
  41. package/build/shared/form-validation/x-lt-help.d.ts +1 -1
  42. package/build/shared/form-validation/x-lt-help.js +1 -1
  43. package/build/system/mcp-servers/admin/escalations.js +4 -2
  44. package/build/system/mcp-servers/admin/labels-schemas.d.ts +4 -4
  45. package/build/system/mcp-servers/admin/schemas.d.ts +111 -70
  46. package/build/system/mcp-servers/admin/schemas.js +8 -3
  47. package/build/system/mcp-servers/human-queue-files.d.ts +8 -0
  48. package/build/system/mcp-servers/human-queue-files.js +32 -0
  49. package/build/system/mcp-servers/human-queue-schemas.d.ts +7 -0
  50. package/build/system/mcp-servers/human-queue-schemas.js +4 -1
  51. package/build/system/mcp-servers/human-queue.d.ts +1 -0
  52. package/build/system/mcp-servers/human-queue.js +23 -16
  53. package/build/system/seed/tool-manifests-admin.js +1 -1
  54. package/build/system/seed/tool-manifests-escalation.js +13 -0
  55. package/build/tsconfig.tsbuildinfo +1 -1
  56. package/build/types/analytics.d.ts +14 -3
  57. package/build/types/analytics.js +3 -1
  58. package/build/types/escalation.d.ts +34 -0
  59. package/build/types/escalation.js +72 -1
  60. package/build/types/index.d.ts +4 -4
  61. package/build/types/index.js +5 -1
  62. package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js → AdminDashboard-C25co77C.js} +2 -2
  63. package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js.map → AdminDashboard-C25co77C.js.map} +1 -1
  64. package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js → AgentConfigPage-CsCpI15j.js} +5 -5
  65. package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js.map → AgentConfigPage-CsCpI15j.js.map} +1 -1
  66. package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js → AgentDetailPage-ByaepsB5.js} +3 -3
  67. package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js.map → AgentDetailPage-ByaepsB5.js.map} +1 -1
  68. package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js → AgentsPage-ByHU42SO.js} +2 -2
  69. package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js.map → AgentsPage-ByHU42SO.js.map} +1 -1
  70. package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js → AvailableEscalationsPage--o6qcz7-.js} +2 -2
  71. package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js.map → AvailableEscalationsPage--o6qcz7-.js.map} +1 -1
  72. package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js → BotPicker-B3y3H3fs.js} +2 -2
  73. package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js.map → BotPicker-B3y3H3fs.js.map} +1 -1
  74. package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js → BulkAssignModal-DMNIkIn6.js} +2 -2
  75. package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js.map → BulkAssignModal-DMNIkIn6.js.map} +1 -1
  76. package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js → CapabilitiesPage-BekfKHlk.js} +2 -2
  77. package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js.map → CapabilitiesPage-BekfKHlk.js.map} +1 -1
  78. package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js → CollapsibleSection-BAteHgBG.js} +2 -2
  79. package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js.map → CollapsibleSection-BAteHgBG.js.map} +1 -1
  80. package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js → ConfirmDeleteModal-BNY287W9.js} +2 -2
  81. package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js.map → ConfirmDeleteModal-BNY287W9.js.map} +1 -1
  82. package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js → ConnectedAppsPage-LLiiH3da.js} +2 -2
  83. package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js.map → ConnectedAppsPage-LLiiH3da.js.map} +1 -1
  84. package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js → CountdownTimer-DBLURjxh.js} +2 -2
  85. package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js.map → CountdownTimer-DBLURjxh.js.map} +1 -1
  86. package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js → CredentialConfirmModal-BqpY3yen.js} +2 -2
  87. package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js.map → CredentialConfirmModal-BqpY3yen.js.map} +1 -1
  88. package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js → CredentialsPage-CW3_dbm2.js} +2 -2
  89. package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js.map → CredentialsPage-CW3_dbm2.js.map} +1 -1
  90. package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js → CronLabel-CR6DiZZr.js} +2 -2
  91. package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js.map → CronLabel-CR6DiZZr.js.map} +1 -1
  92. package/dashboard/dist/assets/{DataTable-FjFhx0SE.js → DataTable-C-IlbLhY.js} +2 -2
  93. package/dashboard/dist/assets/{DataTable-FjFhx0SE.js.map → DataTable-C-IlbLhY.js.map} +1 -1
  94. package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js → DropZone-CHmz59w4.js} +2 -2
  95. package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js.map → DropZone-CHmz59w4.js.map} +1 -1
  96. package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js → ElapsedCell-CEapQvgU.js} +2 -2
  97. package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js.map → ElapsedCell-CEapQvgU.js.map} +1 -1
  98. package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js → EntityTimelinePanel-DqD_BpJM.js} +2 -2
  99. package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js.map → EntityTimelinePanel-DqD_BpJM.js.map} +1 -1
  100. package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js → EscalationListSchemaPage-DDKcrVbb.js} +3 -3
  101. package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js.map → EscalationListSchemaPage-DDKcrVbb.js.map} +1 -1
  102. package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js → EscalationSchemaPage-BZHZfJiQ.js} +3 -3
  103. package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js.map → EscalationSchemaPage-BZHZfJiQ.js.map} +1 -1
  104. package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js → EscalationTimeline-Dv0XUgQX.js} +2 -2
  105. package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js.map → EscalationTimeline-Dv0XUgQX.js.map} +1 -1
  106. package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js → EscalationTitleSelect-BN7D52wT.js} +2 -2
  107. package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js.map → EscalationTitleSelect-BN7D52wT.js.map} +1 -1
  108. package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js → EscalationsOverview-DE6EPkhT.js} +2 -2
  109. package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js.map → EscalationsOverview-DE6EPkhT.js.map} +1 -1
  110. package/dashboard/dist/assets/{EventTable-UfebhJf0.js → EventTable-CiV62txY.js} +2 -2
  111. package/dashboard/dist/assets/{EventTable-UfebhJf0.js.map → EventTable-CiV62txY.js.map} +1 -1
  112. package/dashboard/dist/assets/{FilterBar-newA5l-X.js → FilterBar-WyNQPyQ1.js} +2 -2
  113. package/dashboard/dist/assets/{FilterBar-newA5l-X.js.map → FilterBar-WyNQPyQ1.js.map} +1 -1
  114. package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js → GraphInvokePage--gn48yUD.js} +2 -2
  115. package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js.map → GraphInvokePage--gn48yUD.js.map} +1 -1
  116. package/dashboard/dist/assets/{HomePage-BEc-XdKj.js → HomePage-IR_jgBE8.js} +2 -2
  117. package/dashboard/dist/assets/{HomePage-BEc-XdKj.js.map → HomePage-IR_jgBE8.js.map} +1 -1
  118. package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js → LabelJobsPage-C8LSts4O.js} +2 -2
  119. package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js.map → LabelJobsPage-C8LSts4O.js.map} +1 -1
  120. package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js → LinePage-CS7uUv00.js} +2 -2
  121. package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js.map → LinePage-CS7uUv00.js.map} +1 -1
  122. package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js → LinesPage-CJprjG39.js} +3 -3
  123. package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js.map → LinesPage-CJprjG39.js.map} +1 -1
  124. package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js → ListToolbar-YP3uwvXC.js} +2 -2
  125. package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js.map → ListToolbar-YP3uwvXC.js.map} +1 -1
  126. package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js → McpOverview-Ce-m2JON.js} +2 -2
  127. package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js.map → McpOverview-Ce-m2JON.js.map} +1 -1
  128. package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js → McpQueryDetailPage-CtnUqO1v.js} +2 -2
  129. package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js.map → McpQueryDetailPage-CtnUqO1v.js.map} +1 -1
  130. package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js → McpQueryPage-C-lqUPlg.js} +2 -2
  131. package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js.map → McpQueryPage-C-lqUPlg.js.map} +1 -1
  132. package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js → McpRunDetailPage-MnIe0hwz.js} +2 -2
  133. package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js.map → McpRunDetailPage-MnIe0hwz.js.map} +1 -1
  134. package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js → McpRunsPage-CpYLXVPF.js} +2 -2
  135. package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js.map → McpRunsPage-CpYLXVPF.js.map} +1 -1
  136. package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js → NamespacePill-DilSgLyE.js} +2 -2
  137. package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js.map → NamespacePill-DilSgLyE.js.map} +1 -1
  138. package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js → OperationsPage-xe6bAwaq.js} +2 -2
  139. package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js.map → OperationsPage-xe6bAwaq.js.map} +1 -1
  140. package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js → OperatorDashboard-Cm9_C0EP.js} +2 -2
  141. package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js.map → OperatorDashboard-Cm9_C0EP.js.map} +1 -1
  142. package/dashboard/dist/assets/{PageHeader-DClJ33fV.js → PageHeader-B7SOvLT8.js} +2 -2
  143. package/dashboard/dist/assets/{PageHeader-DClJ33fV.js.map → PageHeader-B7SOvLT8.js.map} +1 -1
  144. package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js → PageHeaderWithStats-DWKap7gs.js} +2 -2
  145. package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js.map → PageHeaderWithStats-DWKap7gs.js.map} +1 -1
  146. package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js → PersonaDetailPage-CvstNkh3.js} +2 -2
  147. package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js.map → PersonaDetailPage-CvstNkh3.js.map} +1 -1
  148. package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js → PersonasPage-ba1KeInW.js} +2 -2
  149. package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js.map → PersonasPage-ba1KeInW.js.map} +1 -1
  150. package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js → PortalPage-GDgG88TM.js} +2 -2
  151. package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js.map → PortalPage-GDgG88TM.js.map} +1 -1
  152. package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js → PrintLabelsPanel-BkUN00Qd.js} +2 -2
  153. package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js.map → PrintLabelsPanel-BkUN00Qd.js.map} +1 -1
  154. package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js → ProcessDetailPage-BKu9_wWv.js} +2 -2
  155. package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js.map → ProcessDetailPage-BKu9_wWv.js.map} +1 -1
  156. package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js → ProcessesListPage-BfJYTU_v.js} +2 -2
  157. package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js.map → ProcessesListPage-BfJYTU_v.js.map} +1 -1
  158. package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js +8 -0
  159. package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js.map +1 -0
  160. package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js → RoleDetailPage-vGeth3ve.js} +3 -3
  161. package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js.map → RoleDetailPage-vGeth3ve.js.map} +1 -1
  162. package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js → RolePill-KhT-Yehm.js} +2 -2
  163. package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js.map → RolePill-KhT-Yehm.js.map} +1 -1
  164. package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js → RolesPage-CwxHOkqF.js} +2 -2
  165. package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js.map → RolesPage-CwxHOkqF.js.map} +1 -1
  166. package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js → RosterWidget-DRVj9xyk.js} +2 -2
  167. package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js.map → RosterWidget-DRVj9xyk.js.map} +1 -1
  168. package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js → RunAsSelector-DvPX3XmA.js} +2 -2
  169. package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js.map → RunAsSelector-DvPX3XmA.js.map} +1 -1
  170. package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js → ScanCodesPage-Cptbe7h8.js} +2 -2
  171. package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js.map → ScanCodesPage-Cptbe7h8.js.map} +1 -1
  172. package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js → ScanSchemeDetailPage-DquNJ7Or.js} +4 -4
  173. package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js.map → ScanSchemeDetailPage-DquNJ7Or.js.map} +1 -1
  174. package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js → ScanStationPage-DaRfGGa8.js} +2 -2
  175. package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js.map → ScanStationPage-DaRfGGa8.js.map} +1 -1
  176. package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js → SchemeMatchFields-w-pffi98.js} +2 -2
  177. package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js.map → SchemeMatchFields-w-pffi98.js.map} +1 -1
  178. package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js → ScopeBadge-HeuiMJhW.js} +2 -2
  179. package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js.map → ScopeBadge-HeuiMJhW.js.map} +1 -1
  180. package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js → StickyPagination-D6fDHCcJ.js} +2 -2
  181. package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js.map → StickyPagination-D6fDHCcJ.js.map} +1 -1
  182. package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js → StreamMessageDetail-BmYVQrzl.js} +2 -2
  183. package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js.map → StreamMessageDetail-BmYVQrzl.js.map} +1 -1
  184. package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js → SwimlaneTimeline-KCqA-PeL.js} +2 -2
  185. package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js.map → SwimlaneTimeline-KCqA-PeL.js.map} +1 -1
  186. package/dashboard/dist/assets/{TagInput-47qVYzke.js → TagInput-CZBAu1Hy.js} +2 -2
  187. package/dashboard/dist/assets/{TagInput-47qVYzke.js.map → TagInput-CZBAu1Hy.js.map} +1 -1
  188. package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js → TaskDetailPage-WtVv2z7T.js} +2 -2
  189. package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js.map → TaskDetailPage-WtVv2z7T.js.map} +1 -1
  190. package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js → TaskQueuePill-DWGn3CWx.js} +2 -2
  191. package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js.map → TaskQueuePill-DWGn3CWx.js.map} +1 -1
  192. package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js → TasksListPage-DMYQNDIw.js} +2 -2
  193. package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js.map → TasksListPage-DMYQNDIw.js.map} +1 -1
  194. package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js → TimeAgo-BkY4lahi.js} +2 -2
  195. package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js.map → TimeAgo-BkY4lahi.js.map} +1 -1
  196. package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js → TimestampCell-BBPb9TI2.js} +2 -2
  197. package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js.map → TimestampCell-BBPb9TI2.js.map} +1 -1
  198. package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js → ToolPill-B2aRk0o1.js} +2 -2
  199. package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js.map → ToolPill-B2aRk0o1.js.map} +1 -1
  200. package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js → ToolTestPanel-CNMbmymK.js} +2 -2
  201. package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js.map → ToolTestPanel-CNMbmymK.js.map} +1 -1
  202. package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js → TopicDetailPage-CodBRylU.js} +2 -2
  203. package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js.map → TopicDetailPage-CodBRylU.js.map} +1 -1
  204. package/dashboard/dist/assets/TopicsPage-BtD8jTU7.js +2 -0
  205. package/dashboard/dist/assets/{TopicsPage-D8dW6J65.js.map → TopicsPage-BtD8jTU7.js.map} +1 -1
  206. package/dashboard/dist/assets/{UserName-Dw3R_zrl.js → UserName-D6y9AnuY.js} +2 -2
  207. package/dashboard/dist/assets/{UserName-Dw3R_zrl.js.map → UserName-D6y9AnuY.js.map} +1 -1
  208. package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js → WorkflowExecutionPage-BeffqV13.js} +2 -2
  209. package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js.map → WorkflowExecutionPage-BeffqV13.js.map} +1 -1
  210. package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js → WorkflowPill-BNm3R4pP.js} +2 -2
  211. package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js.map → WorkflowPill-BNm3R4pP.js.map} +1 -1
  212. package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js → WorkflowsDashboard-m4Co5diK.js} +2 -2
  213. package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js.map → WorkflowsDashboard-m4Co5diK.js.map} +1 -1
  214. package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js → WorkflowsOverview-DNoI9qY8.js} +2 -2
  215. package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js.map → WorkflowsOverview-DNoI9qY8.js.map} +1 -1
  216. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js → YamlWorkflowDetailPage-8Vpc4Oxy.js} +2 -2
  217. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js.map → YamlWorkflowDetailPage-8Vpc4Oxy.js.map} +1 -1
  218. package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js → YamlWorkflowsPage-D1JNwDSg.js} +2 -2
  219. package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js.map → YamlWorkflowsPage-D1JNwDSg.js.map} +1 -1
  220. package/dashboard/dist/assets/{agents-mSgxEPpI.js → agents-LTHUsfv3.js} +2 -2
  221. package/dashboard/dist/assets/{agents-mSgxEPpI.js.map → agents-LTHUsfv3.js.map} +1 -1
  222. package/dashboard/dist/assets/{bots-p4Hp0CV6.js → bots-CQxehfBo.js} +2 -2
  223. package/dashboard/dist/assets/{bots-p4Hp0CV6.js.map → bots-CQxehfBo.js.map} +1 -1
  224. package/dashboard/dist/assets/{capabilities-D_-I_SXR.js → capabilities-DECTnJrK.js} +2 -2
  225. package/dashboard/dist/assets/{capabilities-D_-I_SXR.js.map → capabilities-DECTnJrK.js.map} +1 -1
  226. package/dashboard/dist/assets/{controlplane-DjdoQnRU.js → controlplane-Dx20db5g.js} +2 -2
  227. package/dashboard/dist/assets/{controlplane-DjdoQnRU.js.map → controlplane-Dx20db5g.js.map} +1 -1
  228. package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js → escalation-columns-CVFGUB79.js} +2 -2
  229. package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js.map → escalation-columns-CVFGUB79.js.map} +1 -1
  230. package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js +2 -0
  231. package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js.map +1 -0
  232. package/dashboard/dist/assets/index-BD4O-ISx.js +13 -0
  233. package/dashboard/dist/assets/{index-Dk2KKo0z.js.map → index-BD4O-ISx.js.map} +1 -1
  234. package/dashboard/dist/assets/{index-D9RAN9sA.js → index-BL8XOMHT.js} +2 -2
  235. package/dashboard/dist/assets/{index-D9RAN9sA.js.map → index-BL8XOMHT.js.map} +1 -1
  236. package/dashboard/dist/assets/index-C2vRDf96.js +2 -0
  237. package/dashboard/dist/assets/{index-C5osluV3.js.map → index-C2vRDf96.js.map} +1 -1
  238. package/dashboard/dist/assets/{index-DUYAGxwc.js → index-CNgyKRQ8.js} +2 -2
  239. package/dashboard/dist/assets/{index-DUYAGxwc.js.map → index-CNgyKRQ8.js.map} +1 -1
  240. package/dashboard/dist/assets/{index-DlJkZ12b.js → index-CdXPbBgs.js} +2 -2
  241. package/dashboard/dist/assets/{index-DlJkZ12b.js.map → index-CdXPbBgs.js.map} +1 -1
  242. package/dashboard/dist/assets/{index-BuCEhhnl.js → index-CnBUFCV7.js} +2 -2
  243. package/dashboard/dist/assets/{index-BuCEhhnl.js.map → index-CnBUFCV7.js.map} +1 -1
  244. package/dashboard/dist/assets/index-CoLciFzq.css +1 -0
  245. package/dashboard/dist/assets/{index-D-FYj9jT.js → index-D_TSx-k_.js} +2 -2
  246. package/dashboard/dist/assets/{index-D-FYj9jT.js.map → index-D_TSx-k_.js.map} +1 -1
  247. package/dashboard/dist/assets/{index-C_dAJUzh.js → index-Do9Y6Fgt.js} +16 -16
  248. package/dashboard/dist/assets/index-Do9Y6Fgt.js.map +1 -0
  249. package/dashboard/dist/assets/{index-D6K_IgCz.js → index-Dq1zjilj.js} +2 -2
  250. package/dashboard/dist/assets/{index-D6K_IgCz.js.map → index-Dq1zjilj.js.map} +1 -1
  251. package/dashboard/dist/assets/{index-BEMdD58x.js → index-Dz4LSzA2.js} +2 -2
  252. package/dashboard/dist/assets/{index-BEMdD58x.js.map → index-Dz4LSzA2.js.map} +1 -1
  253. package/dashboard/dist/assets/{index-D7L_VoBD.js → index-g1MmARVR.js} +2 -2
  254. package/dashboard/dist/assets/{index-D7L_VoBD.js.map → index-g1MmARVR.js.map} +1 -1
  255. package/dashboard/dist/assets/{index-BxbQmeqh.js → index-qEd4FVmN.js} +2 -2
  256. package/dashboard/dist/assets/{index-BxbQmeqh.js.map → index-qEd4FVmN.js.map} +1 -1
  257. package/dashboard/dist/assets/index-v4rQ8ctJ.js +3 -0
  258. package/dashboard/dist/assets/index-v4rQ8ctJ.js.map +1 -0
  259. package/dashboard/dist/assets/{knowledge-DSsPTqkK.js → knowledge-CT1I1t1S.js} +2 -2
  260. package/dashboard/dist/assets/{knowledge-DSsPTqkK.js.map → knowledge-CT1I1t1S.js.map} +1 -1
  261. package/dashboard/dist/assets/{machines-DSgGtqqr.js → machines-Dsuw-l1y.js} +2 -2
  262. package/dashboard/dist/assets/{machines-DSgGtqqr.js.map → machines-Dsuw-l1y.js.map} +1 -1
  263. package/dashboard/dist/assets/{mcp-Cg-_uLw8.js → mcp-C3o5wzO8.js} +2 -2
  264. package/dashboard/dist/assets/{mcp-Cg-_uLw8.js.map → mcp-C3o5wzO8.js.map} +1 -1
  265. package/dashboard/dist/assets/{mcp-query-DQombEK_.js → mcp-query-IvkIG7gH.js} +2 -2
  266. package/dashboard/dist/assets/{mcp-query-DQombEK_.js.map → mcp-query-IvkIG7gH.js.map} +1 -1
  267. package/dashboard/dist/assets/pdf-CcZYcL52.js +13 -0
  268. package/dashboard/dist/assets/pdf-CcZYcL52.js.map +1 -0
  269. package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js +2 -0
  270. package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js.map +1 -0
  271. package/dashboard/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
  272. package/dashboard/dist/assets/{personas-DYrcoVBu.js → personas-zWlWjj6j.js} +2 -2
  273. package/dashboard/dist/assets/{personas-DYrcoVBu.js.map → personas-zWlWjj6j.js.map} +1 -1
  274. package/dashboard/dist/assets/{pipelines-wdb4xsey.js → pipelines-BKNvBMdf.js} +2 -2
  275. package/dashboard/dist/assets/{pipelines-wdb4xsey.js.map → pipelines-BKNvBMdf.js.map} +1 -1
  276. package/dashboard/dist/assets/{tasks-Bil7gvm9.js → tasks-BQSO3Sjv.js} +2 -2
  277. package/dashboard/dist/assets/{tasks-Bil7gvm9.js.map → tasks-BQSO3Sjv.js.map} +1 -1
  278. package/dashboard/dist/assets/{topics-wBqaVhRR.js → topics-Dr_1TtUM.js} +2 -2
  279. package/dashboard/dist/assets/{topics-wBqaVhRR.js.map → topics-Dr_1TtUM.js.map} +1 -1
  280. package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js → useContainerWidth-D38m8eub.js} +2 -2
  281. package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js.map → useContainerWidth-D38m8eub.js.map} +1 -1
  282. package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js → useDebouncedValue-C5ESASfo.js} +2 -2
  283. package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js.map → useDebouncedValue-C5ESASfo.js.map} +1 -1
  284. package/dashboard/dist/assets/{useNamespace-Sod_xApz.js → useNamespace-DLLOJRYY.js} +2 -2
  285. package/dashboard/dist/assets/{useNamespace-Sod_xApz.js.map → useNamespace-DLLOJRYY.js.map} +1 -1
  286. package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js → useYamlActivityEvents-D0XNXli1.js} +2 -2
  287. package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js.map → useYamlActivityEvents-D0XNXli1.js.map} +1 -1
  288. package/dashboard/dist/assets/{validate-CYhW1xMJ.js → validate-Be4GWnJ1.js} +2 -2
  289. package/dashboard/dist/assets/{validate-CYhW1xMJ.js.map → validate-Be4GWnJ1.js.map} +1 -1
  290. package/dashboard/dist/assets/{vendor-icons-ed7mYQw4.js → vendor-icons-D48ijXZU.js} +209 -189
  291. package/dashboard/dist/assets/vendor-icons-D48ijXZU.js.map +1 -0
  292. package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js → yaml-workflows-BQpO-G-I.js} +2 -2
  293. package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js.map → yaml-workflows-BQpO-G-I.js.map} +1 -1
  294. package/dashboard/dist/index.html +3 -3
  295. package/docs/api/http/escalations.md +54 -7
  296. package/docs/api/mcp/admin.md +7 -5
  297. package/docs/api/mcp/human-queue.md +17 -1
  298. package/docs/api/sdk/escalations.md +30 -4
  299. package/docs/api/sdk/files.md +19 -0
  300. package/docs/cli.md +4 -1
  301. package/docs/escalation-analytics.md +17 -0
  302. package/docs/hitl/files.md +104 -0
  303. package/docs/hitl/x-lt-confidence.md +139 -0
  304. package/docs/hitl/x-lt-layout.md +19 -0
  305. package/docs/hitl/x-lt-widget.md +20 -0
  306. package/docs/hitl-guide.md +6 -0
  307. package/docs/mcp.md +2 -1
  308. package/package.json +1 -1
  309. package/dashboard/dist/assets/ResolverForm-DfogHDzl.js +0 -8
  310. package/dashboard/dist/assets/ResolverForm-DfogHDzl.js.map +0 -1
  311. package/dashboard/dist/assets/TopicsPage-D8dW6J65.js +0 -2
  312. package/dashboard/dist/assets/escalation-items-BGZlJMpk.js +0 -2
  313. package/dashboard/dist/assets/escalation-items-BGZlJMpk.js.map +0 -1
  314. package/dashboard/dist/assets/index-BUmz0NMg.css +0 -1
  315. package/dashboard/dist/assets/index-C5osluV3.js +0 -2
  316. package/dashboard/dist/assets/index-C_dAJUzh.js.map +0 -1
  317. package/dashboard/dist/assets/index-Dk2KKo0z.js +0 -13
  318. package/dashboard/dist/assets/index-FiNThtNU.js +0 -3
  319. package/dashboard/dist/assets/index-FiNThtNU.js.map +0 -1
  320. package/dashboard/dist/assets/vendor-icons-ed7mYQw4.js.map +0 -1
@@ -2101,6 +2101,33 @@ export declare const aggregateByFacetsSchema: z.ZodObject<{
2101
2101
  from: string;
2102
2102
  to: string;
2103
2103
  };
2104
+ }>, z.ZodObject<{
2105
+ kind: z.ZodLiteral<"resolved">;
2106
+ window: z.ZodObject<{
2107
+ from: z.ZodString;
2108
+ to: z.ZodString;
2109
+ }, "strip", z.ZodTypeAny, {
2110
+ from: string;
2111
+ to: string;
2112
+ }, {
2113
+ from: string;
2114
+ to: string;
2115
+ }>;
2116
+ bucket: z.ZodOptional<z.ZodEnum<["day", "week", "month"]>>;
2117
+ }, "strip", z.ZodTypeAny, {
2118
+ kind: "resolved";
2119
+ window: {
2120
+ from: string;
2121
+ to: string;
2122
+ };
2123
+ bucket?: "day" | "week" | "month" | undefined;
2124
+ }, {
2125
+ kind: "resolved";
2126
+ window: {
2127
+ from: string;
2128
+ to: string;
2129
+ };
2130
+ bucket?: "day" | "week" | "month" | undefined;
2104
2131
  }>]>;
2105
2132
  distinctBy: z.ZodOptional<z.ZodString>;
2106
2133
  states: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -2186,6 +2213,13 @@ export declare const aggregateByFacetsSchema: z.ZodObject<{
2186
2213
  from: string;
2187
2214
  to: string;
2188
2215
  };
2216
+ } | {
2217
+ kind: "resolved";
2218
+ window: {
2219
+ from: string;
2220
+ to: string;
2221
+ };
2222
+ bucket?: "day" | "week" | "month" | undefined;
2189
2223
  };
2190
2224
  orderBy?: {
2191
2225
  field: string;
@@ -2235,6 +2269,13 @@ export declare const aggregateByFacetsSchema: z.ZodObject<{
2235
2269
  from: string;
2236
2270
  to: string;
2237
2271
  };
2272
+ } | {
2273
+ kind: "resolved";
2274
+ window: {
2275
+ from: string;
2276
+ to: string;
2277
+ };
2278
+ bucket?: "day" | "week" | "month" | undefined;
2238
2279
  };
2239
2280
  orderBy?: {
2240
2281
  field: string;
@@ -3191,9 +3232,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3191
3232
  afterSeconds?: number | undefined;
3192
3233
  nextPrompt?: string | undefined;
3193
3234
  } | undefined;
3194
- confirm?: {
3195
- prompt: string;
3196
- } | undefined;
3197
3235
  params?: {
3198
3236
  fill?: {
3199
3237
  into: "subject" | "scanned";
@@ -3252,6 +3290,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3252
3290
  escalationType?: string | undefined;
3253
3291
  closeCurrent?: "resolve" | "cancel" | undefined;
3254
3292
  } | undefined;
3293
+ confirm?: {
3294
+ prompt: string;
3295
+ } | undefined;
3255
3296
  requireActingIdentity?: boolean | undefined;
3256
3297
  }, {
3257
3298
  verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
@@ -3262,9 +3303,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3262
3303
  afterSeconds?: number | undefined;
3263
3304
  nextPrompt?: string | undefined;
3264
3305
  } | undefined;
3265
- confirm?: {
3266
- prompt: string;
3267
- } | undefined;
3268
3306
  params?: {
3269
3307
  fill?: {
3270
3308
  into: "subject" | "scanned";
@@ -3323,6 +3361,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3323
3361
  escalationType?: string | undefined;
3324
3362
  closeCurrent?: "resolve" | "cancel" | undefined;
3325
3363
  } | undefined;
3364
+ confirm?: {
3365
+ prompt: string;
3366
+ } | undefined;
3326
3367
  requireActingIdentity?: boolean | undefined;
3327
3368
  }>, "many">>;
3328
3369
  facts: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -3451,9 +3492,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3451
3492
  afterSeconds?: number | undefined;
3452
3493
  nextPrompt?: string | undefined;
3453
3494
  } | undefined;
3454
- confirm?: {
3455
- prompt: string;
3456
- } | undefined;
3457
3495
  params?: {
3458
3496
  fill?: {
3459
3497
  into: "subject" | "scanned";
@@ -3512,6 +3550,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3512
3550
  escalationType?: string | undefined;
3513
3551
  closeCurrent?: "resolve" | "cancel" | undefined;
3514
3552
  } | undefined;
3553
+ confirm?: {
3554
+ prompt: string;
3555
+ } | undefined;
3515
3556
  requireActingIdentity?: boolean | undefined;
3516
3557
  }[] | undefined;
3517
3558
  refuse?: {
@@ -3528,19 +3569,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3528
3569
  afterSeconds?: number | undefined;
3529
3570
  nextPrompt?: string | undefined;
3530
3571
  } | undefined;
3531
- confirm?: {
3532
- prompt: string;
3533
- } | undefined;
3534
- show?: string | undefined;
3535
- open?: {
3536
- target: "subject" | "located" | "row";
3537
- claim?: boolean | undefined;
3538
- list?: {
3539
- facets: string[];
3540
- role?: string | undefined;
3541
- } | undefined;
3542
- label?: string | undefined;
3543
- } | undefined;
3544
3572
  params?: {
3545
3573
  fill?: {
3546
3574
  into: "subject" | "scanned";
@@ -3599,6 +3627,19 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3599
3627
  escalationType?: string | undefined;
3600
3628
  closeCurrent?: "resolve" | "cancel" | undefined;
3601
3629
  } | undefined;
3630
+ confirm?: {
3631
+ prompt: string;
3632
+ } | undefined;
3633
+ open?: {
3634
+ target: "subject" | "located" | "row";
3635
+ claim?: boolean | undefined;
3636
+ list?: {
3637
+ facets: string[];
3638
+ role?: string | undefined;
3639
+ } | undefined;
3640
+ label?: string | undefined;
3641
+ } | undefined;
3642
+ show?: string | undefined;
3602
3643
  requireActingIdentity?: boolean | undefined;
3603
3644
  cardinality?: "first" | "many" | undefined;
3604
3645
  facts?: {
@@ -3634,9 +3675,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3634
3675
  afterSeconds?: number | undefined;
3635
3676
  nextPrompt?: string | undefined;
3636
3677
  } | undefined;
3637
- confirm?: {
3638
- prompt: string;
3639
- } | undefined;
3640
3678
  params?: {
3641
3679
  fill?: {
3642
3680
  into: "subject" | "scanned";
@@ -3695,6 +3733,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3695
3733
  escalationType?: string | undefined;
3696
3734
  closeCurrent?: "resolve" | "cancel" | undefined;
3697
3735
  } | undefined;
3736
+ confirm?: {
3737
+ prompt: string;
3738
+ } | undefined;
3698
3739
  requireActingIdentity?: boolean | undefined;
3699
3740
  }[] | undefined;
3700
3741
  refuse?: {
@@ -3711,19 +3752,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3711
3752
  afterSeconds?: number | undefined;
3712
3753
  nextPrompt?: string | undefined;
3713
3754
  } | undefined;
3714
- confirm?: {
3715
- prompt: string;
3716
- } | undefined;
3717
- show?: string | undefined;
3718
- open?: {
3719
- target: "subject" | "located" | "row";
3720
- claim?: boolean | undefined;
3721
- list?: {
3722
- facets: string[];
3723
- role?: string | undefined;
3724
- } | undefined;
3725
- label?: string | undefined;
3726
- } | undefined;
3727
3755
  params?: {
3728
3756
  fill?: {
3729
3757
  into: "subject" | "scanned";
@@ -3782,6 +3810,19 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3782
3810
  escalationType?: string | undefined;
3783
3811
  closeCurrent?: "resolve" | "cancel" | undefined;
3784
3812
  } | undefined;
3813
+ confirm?: {
3814
+ prompt: string;
3815
+ } | undefined;
3816
+ open?: {
3817
+ target: "subject" | "located" | "row";
3818
+ claim?: boolean | undefined;
3819
+ list?: {
3820
+ facets: string[];
3821
+ role?: string | undefined;
3822
+ } | undefined;
3823
+ label?: string | undefined;
3824
+ } | undefined;
3825
+ show?: string | undefined;
3785
3826
  requireActingIdentity?: boolean | undefined;
3786
3827
  cardinality?: "first" | "many" | undefined;
3787
3828
  facts?: {
@@ -3842,9 +3883,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3842
3883
  afterSeconds?: number | undefined;
3843
3884
  nextPrompt?: string | undefined;
3844
3885
  } | undefined;
3845
- confirm?: {
3846
- prompt: string;
3847
- } | undefined;
3848
3886
  params?: {
3849
3887
  fill?: {
3850
3888
  into: "subject" | "scanned";
@@ -3903,6 +3941,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3903
3941
  escalationType?: string | undefined;
3904
3942
  closeCurrent?: "resolve" | "cancel" | undefined;
3905
3943
  } | undefined;
3944
+ confirm?: {
3945
+ prompt: string;
3946
+ } | undefined;
3906
3947
  requireActingIdentity?: boolean | undefined;
3907
3948
  }[] | undefined;
3908
3949
  refuse?: {
@@ -3919,19 +3960,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3919
3960
  afterSeconds?: number | undefined;
3920
3961
  nextPrompt?: string | undefined;
3921
3962
  } | undefined;
3922
- confirm?: {
3923
- prompt: string;
3924
- } | undefined;
3925
- show?: string | undefined;
3926
- open?: {
3927
- target: "subject" | "located" | "row";
3928
- claim?: boolean | undefined;
3929
- list?: {
3930
- facets: string[];
3931
- role?: string | undefined;
3932
- } | undefined;
3933
- label?: string | undefined;
3934
- } | undefined;
3935
3963
  params?: {
3936
3964
  fill?: {
3937
3965
  into: "subject" | "scanned";
@@ -3990,6 +4018,19 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
3990
4018
  escalationType?: string | undefined;
3991
4019
  closeCurrent?: "resolve" | "cancel" | undefined;
3992
4020
  } | undefined;
4021
+ confirm?: {
4022
+ prompt: string;
4023
+ } | undefined;
4024
+ open?: {
4025
+ target: "subject" | "located" | "row";
4026
+ claim?: boolean | undefined;
4027
+ list?: {
4028
+ facets: string[];
4029
+ role?: string | undefined;
4030
+ } | undefined;
4031
+ label?: string | undefined;
4032
+ } | undefined;
4033
+ show?: string | undefined;
3993
4034
  requireActingIdentity?: boolean | undefined;
3994
4035
  cardinality?: "first" | "many" | undefined;
3995
4036
  facts?: {
@@ -4039,9 +4080,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
4039
4080
  afterSeconds?: number | undefined;
4040
4081
  nextPrompt?: string | undefined;
4041
4082
  } | undefined;
4042
- confirm?: {
4043
- prompt: string;
4044
- } | undefined;
4045
4083
  params?: {
4046
4084
  fill?: {
4047
4085
  into: "subject" | "scanned";
@@ -4100,6 +4138,9 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
4100
4138
  escalationType?: string | undefined;
4101
4139
  closeCurrent?: "resolve" | "cancel" | undefined;
4102
4140
  } | undefined;
4141
+ confirm?: {
4142
+ prompt: string;
4143
+ } | undefined;
4103
4144
  requireActingIdentity?: boolean | undefined;
4104
4145
  }[] | undefined;
4105
4146
  refuse?: {
@@ -4116,19 +4157,6 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
4116
4157
  afterSeconds?: number | undefined;
4117
4158
  nextPrompt?: string | undefined;
4118
4159
  } | undefined;
4119
- confirm?: {
4120
- prompt: string;
4121
- } | undefined;
4122
- show?: string | undefined;
4123
- open?: {
4124
- target: "subject" | "located" | "row";
4125
- claim?: boolean | undefined;
4126
- list?: {
4127
- facets: string[];
4128
- role?: string | undefined;
4129
- } | undefined;
4130
- label?: string | undefined;
4131
- } | undefined;
4132
4160
  params?: {
4133
4161
  fill?: {
4134
4162
  into: "subject" | "scanned";
@@ -4187,6 +4215,19 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
4187
4215
  escalationType?: string | undefined;
4188
4216
  closeCurrent?: "resolve" | "cancel" | undefined;
4189
4217
  } | undefined;
4218
+ confirm?: {
4219
+ prompt: string;
4220
+ } | undefined;
4221
+ open?: {
4222
+ target: "subject" | "located" | "row";
4223
+ claim?: boolean | undefined;
4224
+ list?: {
4225
+ facets: string[];
4226
+ role?: string | undefined;
4227
+ } | undefined;
4228
+ label?: string | undefined;
4229
+ } | undefined;
4230
+ show?: string | undefined;
4190
4231
  requireActingIdentity?: boolean | undefined;
4191
4232
  cardinality?: "first" | "many" | undefined;
4192
4233
  facts?: {
@@ -738,8 +738,13 @@ exports.aggregateByFacetsSchema = zod_1.z.object({
738
738
  kind: zod_1.z.literal('dwell'),
739
739
  window: analyticsWindowSchema,
740
740
  }),
741
- ]).describe('membership = rows/entities open at an instant; dwell = open-seconds per group within the window, clipped to it'),
742
- distinctBy: zod_1.z.string().optional().describe('membership only: count DISTINCT of this metadata facet (entities, not rows)'),
741
+ zod_1.z.object({
742
+ kind: zod_1.z.literal('resolved'),
743
+ window: analyticsWindowSchema.describe('Rows whose resolved_at falls in [from, to); up to a year'),
744
+ bucket: zod_1.z.enum(['day', 'week', 'month']).optional().describe('Count per UTC calendar bucket; each group carries its bucket start'),
745
+ }),
746
+ ]).describe('membership = rows/entities open at an instant; dwell = open-seconds per group within the window, clipped to it; resolved = rows resolved in the window, optionally per day/week/month (requires role, roles or entity), the trend measure'),
747
+ distinctBy: zod_1.z.string().optional().describe('membership and resolved: count DISTINCT of this metadata facet (entities, not rows)'),
743
748
  states: zod_1.z.array(zod_1.z.object({
744
749
  name: zod_1.z.string(),
745
750
  match: zod_1.z.object({
@@ -752,7 +757,7 @@ exports.aggregateByFacetsSchema = zod_1.z.object({
752
757
  })).optional().describe('Pure labeling: tag each group with the FIRST matching state name'),
753
758
  liveStatuses: zod_1.z.array(zod_1.z.string()).optional().describe("Statuses considered live (default ['pending'])"),
754
759
  orderBy: zod_1.z.array(zod_1.z.object({
755
- field: zod_1.z.string().describe('count | dwellSeconds | sampleCount | a grouped column or facet key'),
760
+ field: zod_1.z.string().describe('count | dwellSeconds | sampleCount | bucket | a grouped column or facet key'),
756
761
  direction: zod_1.z.enum(['asc', 'desc']).optional(),
757
762
  })).optional().describe('Order the RESULT groups'),
758
763
  limit: zod_1.z.number().int().min(1).optional().describe('Max result groups (server-capped; overflow flag when more exist)'),
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * get_escalation_files: time-limited links to the stored files a row names,
4
+ * for anyone who may read the row. Runs the same read check as
5
+ * GET /api/escalations/:id/files, as the /mcp caller, else lt-system for an
6
+ * internal call.
7
+ */
8
+ export declare function registerEscalationFilesTool(server: McpServer): void;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerEscalationFilesTool = registerEscalationFilesTool;
4
+ const files_1 = require("../../api/escalations/files");
5
+ const caller_auth_1 = require("./caller-auth");
6
+ const human_queue_schemas_1 = require("./human-queue-schemas");
7
+ /**
8
+ * get_escalation_files: time-limited links to the stored files a row names,
9
+ * for anyone who may read the row. Runs the same read check as
10
+ * GET /api/escalations/:id/files, as the /mcp caller, else lt-system for an
11
+ * internal call.
12
+ */
13
+ function registerEscalationFilesTool(server) {
14
+ server.registerTool('get_escalation_files', {
15
+ title: 'Get Escalation Files',
16
+ description: 'Sign the stored files an escalation names (envelope.files), for a caller who may read ' +
17
+ 'the escalation. Each ref answers with a time-limited url, its expiresAt, name and ' +
18
+ 'contentType; a ref that cannot be signed answers with error.',
19
+ inputSchema: human_queue_schemas_1.getEscalationFilesSchema,
20
+ }, async (args, extra) => {
21
+ const result = await (0, files_1.getEscalationFiles)({ id: args.escalation_id }, await (0, caller_auth_1.callerAuth)(extra));
22
+ if (result.error) {
23
+ return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
24
+ }
25
+ return {
26
+ content: [{
27
+ type: 'text',
28
+ text: JSON.stringify({ escalation_id: args.escalation_id, ...result.data }),
29
+ }],
30
+ };
31
+ });
32
+ }
@@ -38,6 +38,13 @@ export declare const getEscalationLookupsSchema: z.ZodObject<{
38
38
  }, {
39
39
  escalation_id: string;
40
40
  }>;
41
+ export declare const getEscalationFilesSchema: z.ZodObject<{
42
+ escalation_id: z.ZodString;
43
+ }, "strip", z.ZodTypeAny, {
44
+ escalation_id: string;
45
+ }, {
46
+ escalation_id: string;
47
+ }>;
41
48
  export declare const getAvailableWorkSchema: z.ZodObject<{
42
49
  role: z.ZodString;
43
50
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.escalateAndWaitSchema = exports.removeItemSchema = exports.accumulateItemSchema = exports.resolveBatchItemSchema = exports.resolveEscalationSchema = exports.claimAndResolveSchema = exports.getAvailableWorkSchema = exports.getEscalationLookupsSchema = exports.checkResolutionSchema = exports.escalateSchema = void 0;
3
+ exports.escalateAndWaitSchema = exports.removeItemSchema = exports.accumulateItemSchema = exports.resolveBatchItemSchema = exports.resolveEscalationSchema = exports.claimAndResolveSchema = exports.getAvailableWorkSchema = exports.getEscalationFilesSchema = exports.getEscalationLookupsSchema = exports.checkResolutionSchema = exports.escalateSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  // ── Schemas (extracted to break TS2589 deep-instantiation in registerTool generics) ──
6
6
  exports.escalateSchema = zod_1.z.object({
@@ -20,6 +20,9 @@ exports.checkResolutionSchema = zod_1.z.object({
20
20
  exports.getEscalationLookupsSchema = zod_1.z.object({
21
21
  escalation_id: zod_1.z.string().describe('The escalation whose pinned knowledge lookups to resolve'),
22
22
  });
23
+ exports.getEscalationFilesSchema = zod_1.z.object({
24
+ escalation_id: zod_1.z.string().describe('The escalation whose stored files to sign'),
25
+ });
23
26
  exports.getAvailableWorkSchema = zod_1.z.object({
24
27
  role: zod_1.z.string().describe('Role to filter by'),
25
28
  limit: zod_1.z.number().optional().default(10).describe('Max results to return'),
@@ -6,6 +6,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
6
  * - escalate_to_human — create a new escalation (fire-and-forget)
7
7
  * - check_resolution — check escalation status
8
8
  * - get_escalation_lookups — read the knowledge editions pinned on an escalation the caller may read
9
+ * - get_escalation_files: sign the stored files an escalation the caller may read names
9
10
  * - get_available_work — list available escalations by role
10
11
  * - claim_and_resolve — claim + resolve in one step
11
12
  * - resolve_escalation — resolve an already-claimed escalation
@@ -42,6 +42,7 @@ const logger_1 = require("../../lib/logger");
42
42
  const caller_auth_1 = require("./caller-auth");
43
43
  const registered_tools_1 = require("../../services/mcp/registered-tools");
44
44
  const human_queue_lookups_1 = require("./human-queue-lookups");
45
+ const human_queue_files_1 = require("./human-queue-files");
45
46
  const escalationService = __importStar(require("../../services/escalation"));
46
47
  const resolver_validation_1 = require("../../services/escalation/resolver-validation");
47
48
  const enforcement_cache_1 = require("../../services/role/enforcement-cache");
@@ -53,26 +54,30 @@ let server = null;
53
54
  * surfaces run (agents and the sim workforce submit through these tools, so
54
55
  * they get the same contract and the same canonical violation body). Costs
55
56
  * zero reads when no role enforces (cached set); otherwise one row read.
56
- * Returns the MCP error content when the payload is rejected, null to proceed.
57
+ * Returns the MCP error content when the payload is rejected, and the review
58
+ * facets a passing single-row resolve stamps onto the row.
57
59
  */
58
- async function checkResolveToolPayload(escalationId, payload) {
60
+ async function assessResolveToolPayload(escalationId, payload) {
59
61
  const enforcing = await (0, enforcement_cache_1.getEnforcingRoles)();
60
62
  if (enforcing.size === 0)
61
- return null;
63
+ return { rejected: null, facets: null };
62
64
  const escalation = await escalationService.getEscalation(escalationId);
63
65
  if (!escalation || !enforcing.has(escalation.role))
64
- return null;
65
- const report = await (0, resolver_validation_1.checkResolverPayload)(escalation, payload);
66
- if (!report)
67
- return null;
66
+ return { rejected: null, facets: null };
67
+ const { violation, facets } = await (0, resolver_validation_1.assessResolverPayload)(escalation, payload);
68
+ if (!violation)
69
+ return { rejected: null, facets };
68
70
  return {
69
- content: [{
70
- type: 'text',
71
- text: JSON.stringify((0, resolver_validation_1.toValidationErrorBody)(report)),
72
- }],
73
- isError: true,
71
+ rejected: {
72
+ content: [{ type: 'text', text: JSON.stringify((0, resolver_validation_1.toValidationErrorBody)(violation)) }],
73
+ isError: true,
74
+ },
75
+ facets: null,
74
76
  };
75
77
  }
78
+ async function checkResolveToolPayload(escalationId, payload) {
79
+ return (await assessResolveToolPayload(escalationId, payload)).rejected;
80
+ }
76
81
  /**
77
82
  * Create the Long Tail Human Queue MCP server.
78
83
  *
@@ -80,6 +85,7 @@ async function checkResolveToolPayload(escalationId, payload) {
80
85
  * - escalate_to_human — create a new escalation (fire-and-forget)
81
86
  * - check_resolution — check escalation status
82
87
  * - get_escalation_lookups — read the knowledge editions pinned on an escalation the caller may read
88
+ * - get_escalation_files: sign the stored files an escalation the caller may read names
83
89
  * - get_available_work — list available escalations by role
84
90
  * - claim_and_resolve — claim + resolve in one step
85
91
  * - resolve_escalation — resolve an already-claimed escalation
@@ -175,6 +181,7 @@ async function createHumanQueueServer(options) {
175
181
  };
176
182
  });
177
183
  (0, human_queue_lookups_1.registerEscalationLookupsTool)(server);
184
+ (0, human_queue_files_1.registerEscalationFilesTool)(server);
178
185
  // ── get_available_work ──────────────────────────────────────────────
179
186
  server.registerTool('get_available_work', {
180
187
  title: 'Get Available Work',
@@ -208,7 +215,7 @@ async function createHumanQueueServer(options) {
208
215
  inputSchema: human_queue_schemas_1.claimAndResolveSchema,
209
216
  }, async (args) => {
210
217
  // Validate BEFORE claiming — a rejected payload must never strand a claim.
211
- const rejected = await checkResolveToolPayload(args.escalation_id, args.payload);
218
+ const { rejected, facets } = await assessResolveToolPayload(args.escalation_id, args.payload);
212
219
  if (rejected)
213
220
  return rejected;
214
221
  const claimed = await escalationService.claimEscalation(args.escalation_id, args.resolver_id, 5);
@@ -221,7 +228,7 @@ async function createHumanQueueServer(options) {
221
228
  isError: true,
222
229
  };
223
230
  }
224
- const resolved = await escalationService.resolveEscalation(args.escalation_id, args.payload);
231
+ const resolved = await escalationService.resolveEscalation(args.escalation_id, args.payload, facets ?? undefined);
225
232
  if (!resolved) {
226
233
  return {
227
234
  content: [{
@@ -248,10 +255,10 @@ async function createHumanQueueServer(options) {
248
255
  description: 'Resolve an already-claimed escalation with a payload. Use when the claim happened externally (e.g. via API). Roles with enforce_schema validate the payload against the form_schema (see check_resolution) and reject violations with a schema_validation error listing each field.',
249
256
  inputSchema: human_queue_schemas_1.resolveEscalationSchema,
250
257
  }, async (args) => {
251
- const rejected = await checkResolveToolPayload(args.escalation_id, args.payload);
258
+ const { rejected, facets } = await assessResolveToolPayload(args.escalation_id, args.payload);
252
259
  if (rejected)
253
260
  return rejected;
254
- const resolved = await escalationService.resolveEscalation(args.escalation_id, args.payload);
261
+ const resolved = await escalationService.resolveEscalation(args.escalation_id, args.payload, facets ?? undefined);
255
262
  if (!resolved) {
256
263
  return {
257
264
  content: [{
@@ -28,7 +28,7 @@ exports.ADMIN_TOOLS = [
28
28
  { name: 'search_by_facets', gate: 'caller', description: 'Faceted search over a pond, scoped to the caller\'s role: status, availability, metadata facets, sorting, and paging.', read_safe: true, inputSchema: { type: 'object', properties: { role: { type: 'string' }, status: { type: 'string' }, available: { type: 'boolean' }, facets: { type: 'object' }, orderBy: { type: 'array' }, limit: { type: 'integer' }, offset: { type: 'integer' } }, required: ['role'] } },
29
29
  { name: 'claim_groups', gate: 'caller', description: 'Batch-claim complete origin groups (orders) in priority order over a pond, assigned to the calling principal.', read_safe: false, inputSchema: { type: 'object', properties: { query: { type: 'object' }, limit: { type: 'integer' }, durationMinutes: { type: 'integer' }, sizeFacet: { type: 'string' } }, required: ['query'] } },
30
30
  { name: 'claim_by_facets', gate: 'caller', description: 'Batch-claim individual rows matching a facet query, assigned to the calling principal. With allOrNone, commits only the full set.', read_safe: false, inputSchema: { type: 'object', properties: { query: { type: 'object' }, limit: { type: 'integer' }, durationMinutes: { type: 'integer' }, allOrNone: { type: 'boolean' } }, required: ['query'] } },
31
- { name: 'aggregate_by_facets', gate: 'caller', description: 'Grouped analytics over the escalation intervals: membership (rows or distinct entities open at an instant, incl. past instants) or dwell (open-seconds per group within a window), grouped by role/subtype/status columns, metadata facet keys, or the derived entity STATE (query.entity + groupBy.state answers "how do the entities spend their time").', read_safe: true, inputSchema: { type: 'object', properties: { query: { type: 'object' }, groupBy: { type: 'object' }, measure: { type: 'object' }, distinctBy: { type: 'string' }, states: { type: 'array' }, liveStatuses: { type: 'array', items: { type: 'string' } }, orderBy: { type: 'array' }, limit: { type: 'integer' }, offset: { type: 'integer' } }, required: ['query', 'groupBy', 'measure'] } },
31
+ { name: 'aggregate_by_facets', gate: 'caller', description: 'Grouped analytics over the escalation intervals: membership (rows or distinct entities open at an instant, incl. past instants), dwell (open-seconds per group within a window), or resolved (rows resolved in a window, optionally per day/week/month bucket, for trends), grouped by role/subtype/status columns, metadata facet keys, or the derived entity STATE (query.entity + groupBy.state answers "how do the entities spend their time").', read_safe: true, inputSchema: { type: 'object', properties: { query: { type: 'object' }, groupBy: { type: 'object' }, measure: { type: 'object' }, distinctBy: { type: 'string' }, states: { type: 'array' }, liveStatuses: { type: 'array', items: { type: 'string' } }, orderBy: { type: 'array' }, limit: { type: 'integer' }, offset: { type: 'integer' } }, required: ['query', 'groupBy', 'measure'] } },
32
32
  { name: 'timeline_by_facet', gate: 'caller', description: 'One entity\'s ordered escalation-interval timeline: [startedAt, endedAt) spans with durations in created_at order; open intervals report endedAt null; gaps are untracked time and are preserved.', read_safe: true, inputSchema: { type: 'object', properties: { facet: { type: 'object', properties: { key: { type: 'string' }, value: { type: 'string' } }, required: ['key', 'value'] }, query: { type: 'object' }, window: { type: 'object' }, select: { type: 'object' }, liveStatuses: { type: 'array', items: { type: 'string' } }, limit: { type: 'integer' } }, required: ['facet'] } },
33
33
  { name: 'find_by_metadata', gate: 'caller', description: 'Find escalations by a metadata key-value pair.', read_safe: true, inputSchema: { type: 'object', properties: { key: { type: 'string' }, value: { type: 'string' }, status: { type: 'string' }, limit: { type: 'integer' }, offset: { type: 'integer' } }, required: ['key', 'value'] } },
34
34
  { name: 'claim_by_metadata', gate: 'caller', description: 'Find and claim an escalation by metadata key-value pair. Supports provisionIfAbsent for JIT user+role provisioning (superadmin only).', read_safe: false, inputSchema: { type: 'object', properties: { key: { type: 'string' }, value: { type: 'string' }, durationMinutes: { type: 'integer' }, assignee: { type: 'string' }, metadata: { type: 'object' }, provisionIfAbsent: { type: 'object', description: 'JIT-provision assignee if absent: { displayName?, email?, roles?: [{ role, type? }] }' } }, required: ['key', 'value'] } },
@@ -47,6 +47,19 @@ exports.HUMAN_QUEUE_TOOLS = [
47
47
  required: ['escalation_id'],
48
48
  },
49
49
  },
50
+ {
51
+ name: 'get_escalation_files',
52
+ gate: 'caller',
53
+ description: 'Sign the stored files an escalation names (envelope.files), for a caller who may read the escalation. Each ref answers with a time-limited url, its expiresAt, name and contentType; a ref that cannot be signed answers with error.',
54
+ read_safe: true,
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: {
58
+ escalation_id: { type: 'string', description: 'The escalation whose stored files to sign' },
59
+ },
60
+ required: ['escalation_id'],
61
+ },
62
+ },
50
63
  {
51
64
  name: 'get_available_work',
52
65
  gate: 'superadmin',