@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.
- package/build/api/escalations/create.js +17 -6
- package/build/api/escalations/files.d.ts +18 -0
- package/build/api/escalations/files.js +73 -0
- package/build/api/escalations/index.d.ts +1 -0
- package/build/api/escalations/index.js +4 -2
- package/build/api/escalations/metadata.js +5 -4
- package/build/api/escalations/resolve.js +6 -4
- package/build/bin/ltc.js +4 -2
- package/build/index.d.ts +2 -0
- package/build/index.js +13 -2
- package/build/lib/cli/commands/escalations.d.ts +2 -0
- package/build/lib/cli/commands/escalations.js +12 -4
- package/build/lib/storage/s3.js +1 -0
- package/build/modules/config.d.ts +9 -0
- package/build/modules/config.js +9 -0
- package/build/routes/escalations/single.js +11 -0
- package/build/sdk/index.d.ts +4 -0
- package/build/sdk/index.js +2 -0
- package/build/services/escalation/aggregate-resolved-sql.d.ts +19 -0
- package/build/services/escalation/aggregate-resolved-sql.js +57 -0
- package/build/services/escalation/aggregate-sql.d.ts +6 -1
- package/build/services/escalation/aggregate-sql.js +33 -12
- package/build/services/escalation/aggregate-validate.d.ts +5 -2
- package/build/services/escalation/aggregate-validate.js +7 -4
- package/build/services/escalation/aggregates.js +5 -3
- package/build/services/escalation/crud.js +3 -0
- package/build/services/escalation/file-links.d.ts +39 -0
- package/build/services/escalation/file-links.js +118 -0
- package/build/services/escalation/resolver-validation.d.ts +33 -0
- package/build/services/escalation/resolver-validation.js +22 -6
- package/build/services/orchestrator/condition.d.ts +20 -4
- package/build/services/orchestrator/condition.js +27 -8
- package/build/shared/form-validation/display-only-widgets.d.ts +3 -2
- package/build/shared/form-validation/display-only-widgets.js +3 -2
- package/build/shared/form-validation/index.d.ts +2 -0
- package/build/shared/form-validation/index.js +2 -0
- package/build/shared/form-validation/x-lt-confidence-facets.d.ts +27 -0
- package/build/shared/form-validation/x-lt-confidence-facets.js +60 -0
- package/build/shared/form-validation/x-lt-confidence.d.ts +57 -0
- package/build/shared/form-validation/x-lt-confidence.js +177 -0
- package/build/shared/form-validation/x-lt-help.d.ts +1 -1
- package/build/shared/form-validation/x-lt-help.js +1 -1
- package/build/system/mcp-servers/admin/escalations.js +4 -2
- package/build/system/mcp-servers/admin/labels-schemas.d.ts +4 -4
- package/build/system/mcp-servers/admin/schemas.d.ts +111 -70
- package/build/system/mcp-servers/admin/schemas.js +8 -3
- package/build/system/mcp-servers/human-queue-files.d.ts +8 -0
- package/build/system/mcp-servers/human-queue-files.js +32 -0
- package/build/system/mcp-servers/human-queue-schemas.d.ts +7 -0
- package/build/system/mcp-servers/human-queue-schemas.js +4 -1
- package/build/system/mcp-servers/human-queue.d.ts +1 -0
- package/build/system/mcp-servers/human-queue.js +23 -16
- package/build/system/seed/tool-manifests-admin.js +1 -1
- package/build/system/seed/tool-manifests-escalation.js +13 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/analytics.d.ts +14 -3
- package/build/types/analytics.js +3 -1
- package/build/types/escalation.d.ts +34 -0
- package/build/types/escalation.js +72 -1
- package/build/types/index.d.ts +4 -4
- package/build/types/index.js +5 -1
- package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js → AdminDashboard-C25co77C.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js.map → AdminDashboard-C25co77C.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js → AgentConfigPage-CsCpI15j.js} +5 -5
- package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js.map → AgentConfigPage-CsCpI15j.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js → AgentDetailPage-ByaepsB5.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js.map → AgentDetailPage-ByaepsB5.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js → AgentsPage-ByHU42SO.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js.map → AgentsPage-ByHU42SO.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js → AvailableEscalationsPage--o6qcz7-.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js.map → AvailableEscalationsPage--o6qcz7-.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js → BotPicker-B3y3H3fs.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js.map → BotPicker-B3y3H3fs.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js → BulkAssignModal-DMNIkIn6.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js.map → BulkAssignModal-DMNIkIn6.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js → CapabilitiesPage-BekfKHlk.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js.map → CapabilitiesPage-BekfKHlk.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js → CollapsibleSection-BAteHgBG.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js.map → CollapsibleSection-BAteHgBG.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js → ConfirmDeleteModal-BNY287W9.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js.map → ConfirmDeleteModal-BNY287W9.js.map} +1 -1
- package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js → ConnectedAppsPage-LLiiH3da.js} +2 -2
- package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js.map → ConnectedAppsPage-LLiiH3da.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js → CountdownTimer-DBLURjxh.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js.map → CountdownTimer-DBLURjxh.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js → CredentialConfirmModal-BqpY3yen.js} +2 -2
- package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js.map → CredentialConfirmModal-BqpY3yen.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js → CredentialsPage-CW3_dbm2.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js.map → CredentialsPage-CW3_dbm2.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js → CronLabel-CR6DiZZr.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js.map → CronLabel-CR6DiZZr.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-FjFhx0SE.js → DataTable-C-IlbLhY.js} +2 -2
- package/dashboard/dist/assets/{DataTable-FjFhx0SE.js.map → DataTable-C-IlbLhY.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js → DropZone-CHmz59w4.js} +2 -2
- package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js.map → DropZone-CHmz59w4.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js → ElapsedCell-CEapQvgU.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js.map → ElapsedCell-CEapQvgU.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js → EntityTimelinePanel-DqD_BpJM.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js.map → EntityTimelinePanel-DqD_BpJM.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js → EscalationListSchemaPage-DDKcrVbb.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js.map → EscalationListSchemaPage-DDKcrVbb.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js → EscalationSchemaPage-BZHZfJiQ.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js.map → EscalationSchemaPage-BZHZfJiQ.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js → EscalationTimeline-Dv0XUgQX.js} +2 -2
- package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js.map → EscalationTimeline-Dv0XUgQX.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js → EscalationTitleSelect-BN7D52wT.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js.map → EscalationTitleSelect-BN7D52wT.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js → EscalationsOverview-DE6EPkhT.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js.map → EscalationsOverview-DE6EPkhT.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-UfebhJf0.js → EventTable-CiV62txY.js} +2 -2
- package/dashboard/dist/assets/{EventTable-UfebhJf0.js.map → EventTable-CiV62txY.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-newA5l-X.js → FilterBar-WyNQPyQ1.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-newA5l-X.js.map → FilterBar-WyNQPyQ1.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js → GraphInvokePage--gn48yUD.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js.map → GraphInvokePage--gn48yUD.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-BEc-XdKj.js → HomePage-IR_jgBE8.js} +2 -2
- package/dashboard/dist/assets/{HomePage-BEc-XdKj.js.map → HomePage-IR_jgBE8.js.map} +1 -1
- package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js → LabelJobsPage-C8LSts4O.js} +2 -2
- package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js.map → LabelJobsPage-C8LSts4O.js.map} +1 -1
- package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js → LinePage-CS7uUv00.js} +2 -2
- package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js.map → LinePage-CS7uUv00.js.map} +1 -1
- package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js → LinesPage-CJprjG39.js} +3 -3
- package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js.map → LinesPage-CJprjG39.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js → ListToolbar-YP3uwvXC.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js.map → ListToolbar-YP3uwvXC.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js → McpOverview-Ce-m2JON.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js.map → McpOverview-Ce-m2JON.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js → McpQueryDetailPage-CtnUqO1v.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js.map → McpQueryDetailPage-CtnUqO1v.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js → McpQueryPage-C-lqUPlg.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js.map → McpQueryPage-C-lqUPlg.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js → McpRunDetailPage-MnIe0hwz.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js.map → McpRunDetailPage-MnIe0hwz.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js → McpRunsPage-CpYLXVPF.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js.map → McpRunsPage-CpYLXVPF.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js → NamespacePill-DilSgLyE.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js.map → NamespacePill-DilSgLyE.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js → OperationsPage-xe6bAwaq.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js.map → OperationsPage-xe6bAwaq.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js → OperatorDashboard-Cm9_C0EP.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js.map → OperatorDashboard-Cm9_C0EP.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-DClJ33fV.js → PageHeader-B7SOvLT8.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DClJ33fV.js.map → PageHeader-B7SOvLT8.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js → PageHeaderWithStats-DWKap7gs.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js.map → PageHeaderWithStats-DWKap7gs.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js → PersonaDetailPage-CvstNkh3.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js.map → PersonaDetailPage-CvstNkh3.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js → PersonasPage-ba1KeInW.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js.map → PersonasPage-ba1KeInW.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js → PortalPage-GDgG88TM.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js.map → PortalPage-GDgG88TM.js.map} +1 -1
- package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js → PrintLabelsPanel-BkUN00Qd.js} +2 -2
- package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js.map → PrintLabelsPanel-BkUN00Qd.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js → ProcessDetailPage-BKu9_wWv.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js.map → ProcessDetailPage-BKu9_wWv.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js → ProcessesListPage-BfJYTU_v.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js.map → ProcessesListPage-BfJYTU_v.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js +8 -0
- package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js.map +1 -0
- package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js → RoleDetailPage-vGeth3ve.js} +3 -3
- package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js.map → RoleDetailPage-vGeth3ve.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js → RolePill-KhT-Yehm.js} +2 -2
- package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js.map → RolePill-KhT-Yehm.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js → RolesPage-CwxHOkqF.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js.map → RolesPage-CwxHOkqF.js.map} +1 -1
- package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js → RosterWidget-DRVj9xyk.js} +2 -2
- package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js.map → RosterWidget-DRVj9xyk.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js → RunAsSelector-DvPX3XmA.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js.map → RunAsSelector-DvPX3XmA.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js → ScanCodesPage-Cptbe7h8.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js.map → ScanCodesPage-Cptbe7h8.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js → ScanSchemeDetailPage-DquNJ7Or.js} +4 -4
- package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js.map → ScanSchemeDetailPage-DquNJ7Or.js.map} +1 -1
- package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js → ScanStationPage-DaRfGGa8.js} +2 -2
- package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js.map → ScanStationPage-DaRfGGa8.js.map} +1 -1
- package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js → SchemeMatchFields-w-pffi98.js} +2 -2
- package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js.map → SchemeMatchFields-w-pffi98.js.map} +1 -1
- package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js → ScopeBadge-HeuiMJhW.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js.map → ScopeBadge-HeuiMJhW.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js → StickyPagination-D6fDHCcJ.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js.map → StickyPagination-D6fDHCcJ.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js → StreamMessageDetail-BmYVQrzl.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js.map → StreamMessageDetail-BmYVQrzl.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js → SwimlaneTimeline-KCqA-PeL.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js.map → SwimlaneTimeline-KCqA-PeL.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-47qVYzke.js → TagInput-CZBAu1Hy.js} +2 -2
- package/dashboard/dist/assets/{TagInput-47qVYzke.js.map → TagInput-CZBAu1Hy.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js → TaskDetailPage-WtVv2z7T.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js.map → TaskDetailPage-WtVv2z7T.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js → TaskQueuePill-DWGn3CWx.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js.map → TaskQueuePill-DWGn3CWx.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js → TasksListPage-DMYQNDIw.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js.map → TasksListPage-DMYQNDIw.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js → TimeAgo-BkY4lahi.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js.map → TimeAgo-BkY4lahi.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js → TimestampCell-BBPb9TI2.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js.map → TimestampCell-BBPb9TI2.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js → ToolPill-B2aRk0o1.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js.map → ToolPill-B2aRk0o1.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js → ToolTestPanel-CNMbmymK.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js.map → ToolTestPanel-CNMbmymK.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js → TopicDetailPage-CodBRylU.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js.map → TopicDetailPage-CodBRylU.js.map} +1 -1
- package/dashboard/dist/assets/TopicsPage-BtD8jTU7.js +2 -0
- package/dashboard/dist/assets/{TopicsPage-D8dW6J65.js.map → TopicsPage-BtD8jTU7.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Dw3R_zrl.js → UserName-D6y9AnuY.js} +2 -2
- package/dashboard/dist/assets/{UserName-Dw3R_zrl.js.map → UserName-D6y9AnuY.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js → WorkflowExecutionPage-BeffqV13.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js.map → WorkflowExecutionPage-BeffqV13.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js → WorkflowPill-BNm3R4pP.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js.map → WorkflowPill-BNm3R4pP.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js → WorkflowsDashboard-m4Co5diK.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js.map → WorkflowsDashboard-m4Co5diK.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js → WorkflowsOverview-DNoI9qY8.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js.map → WorkflowsOverview-DNoI9qY8.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js → YamlWorkflowDetailPage-8Vpc4Oxy.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js.map → YamlWorkflowDetailPage-8Vpc4Oxy.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js → YamlWorkflowsPage-D1JNwDSg.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js.map → YamlWorkflowsPage-D1JNwDSg.js.map} +1 -1
- package/dashboard/dist/assets/{agents-mSgxEPpI.js → agents-LTHUsfv3.js} +2 -2
- package/dashboard/dist/assets/{agents-mSgxEPpI.js.map → agents-LTHUsfv3.js.map} +1 -1
- package/dashboard/dist/assets/{bots-p4Hp0CV6.js → bots-CQxehfBo.js} +2 -2
- package/dashboard/dist/assets/{bots-p4Hp0CV6.js.map → bots-CQxehfBo.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-D_-I_SXR.js → capabilities-DECTnJrK.js} +2 -2
- package/dashboard/dist/assets/{capabilities-D_-I_SXR.js.map → capabilities-DECTnJrK.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-DjdoQnRU.js → controlplane-Dx20db5g.js} +2 -2
- package/dashboard/dist/assets/{controlplane-DjdoQnRU.js.map → controlplane-Dx20db5g.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js → escalation-columns-CVFGUB79.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js.map → escalation-columns-CVFGUB79.js.map} +1 -1
- package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js +2 -0
- package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js.map +1 -0
- package/dashboard/dist/assets/index-BD4O-ISx.js +13 -0
- package/dashboard/dist/assets/{index-Dk2KKo0z.js.map → index-BD4O-ISx.js.map} +1 -1
- package/dashboard/dist/assets/{index-D9RAN9sA.js → index-BL8XOMHT.js} +2 -2
- package/dashboard/dist/assets/{index-D9RAN9sA.js.map → index-BL8XOMHT.js.map} +1 -1
- package/dashboard/dist/assets/index-C2vRDf96.js +2 -0
- package/dashboard/dist/assets/{index-C5osluV3.js.map → index-C2vRDf96.js.map} +1 -1
- package/dashboard/dist/assets/{index-DUYAGxwc.js → index-CNgyKRQ8.js} +2 -2
- package/dashboard/dist/assets/{index-DUYAGxwc.js.map → index-CNgyKRQ8.js.map} +1 -1
- package/dashboard/dist/assets/{index-DlJkZ12b.js → index-CdXPbBgs.js} +2 -2
- package/dashboard/dist/assets/{index-DlJkZ12b.js.map → index-CdXPbBgs.js.map} +1 -1
- package/dashboard/dist/assets/{index-BuCEhhnl.js → index-CnBUFCV7.js} +2 -2
- package/dashboard/dist/assets/{index-BuCEhhnl.js.map → index-CnBUFCV7.js.map} +1 -1
- package/dashboard/dist/assets/index-CoLciFzq.css +1 -0
- package/dashboard/dist/assets/{index-D-FYj9jT.js → index-D_TSx-k_.js} +2 -2
- package/dashboard/dist/assets/{index-D-FYj9jT.js.map → index-D_TSx-k_.js.map} +1 -1
- package/dashboard/dist/assets/{index-C_dAJUzh.js → index-Do9Y6Fgt.js} +16 -16
- package/dashboard/dist/assets/index-Do9Y6Fgt.js.map +1 -0
- package/dashboard/dist/assets/{index-D6K_IgCz.js → index-Dq1zjilj.js} +2 -2
- package/dashboard/dist/assets/{index-D6K_IgCz.js.map → index-Dq1zjilj.js.map} +1 -1
- package/dashboard/dist/assets/{index-BEMdD58x.js → index-Dz4LSzA2.js} +2 -2
- package/dashboard/dist/assets/{index-BEMdD58x.js.map → index-Dz4LSzA2.js.map} +1 -1
- package/dashboard/dist/assets/{index-D7L_VoBD.js → index-g1MmARVR.js} +2 -2
- package/dashboard/dist/assets/{index-D7L_VoBD.js.map → index-g1MmARVR.js.map} +1 -1
- package/dashboard/dist/assets/{index-BxbQmeqh.js → index-qEd4FVmN.js} +2 -2
- package/dashboard/dist/assets/{index-BxbQmeqh.js.map → index-qEd4FVmN.js.map} +1 -1
- package/dashboard/dist/assets/index-v4rQ8ctJ.js +3 -0
- package/dashboard/dist/assets/index-v4rQ8ctJ.js.map +1 -0
- package/dashboard/dist/assets/{knowledge-DSsPTqkK.js → knowledge-CT1I1t1S.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DSsPTqkK.js.map → knowledge-CT1I1t1S.js.map} +1 -1
- package/dashboard/dist/assets/{machines-DSgGtqqr.js → machines-Dsuw-l1y.js} +2 -2
- package/dashboard/dist/assets/{machines-DSgGtqqr.js.map → machines-Dsuw-l1y.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-Cg-_uLw8.js → mcp-C3o5wzO8.js} +2 -2
- package/dashboard/dist/assets/{mcp-Cg-_uLw8.js.map → mcp-C3o5wzO8.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-DQombEK_.js → mcp-query-IvkIG7gH.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-DQombEK_.js.map → mcp-query-IvkIG7gH.js.map} +1 -1
- package/dashboard/dist/assets/pdf-CcZYcL52.js +13 -0
- package/dashboard/dist/assets/pdf-CcZYcL52.js.map +1 -0
- package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js +2 -0
- package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js.map +1 -0
- package/dashboard/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
- package/dashboard/dist/assets/{personas-DYrcoVBu.js → personas-zWlWjj6j.js} +2 -2
- package/dashboard/dist/assets/{personas-DYrcoVBu.js.map → personas-zWlWjj6j.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-wdb4xsey.js → pipelines-BKNvBMdf.js} +2 -2
- package/dashboard/dist/assets/{pipelines-wdb4xsey.js.map → pipelines-BKNvBMdf.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bil7gvm9.js → tasks-BQSO3Sjv.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bil7gvm9.js.map → tasks-BQSO3Sjv.js.map} +1 -1
- package/dashboard/dist/assets/{topics-wBqaVhRR.js → topics-Dr_1TtUM.js} +2 -2
- package/dashboard/dist/assets/{topics-wBqaVhRR.js.map → topics-Dr_1TtUM.js.map} +1 -1
- package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js → useContainerWidth-D38m8eub.js} +2 -2
- package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js.map → useContainerWidth-D38m8eub.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js → useDebouncedValue-C5ESASfo.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js.map → useDebouncedValue-C5ESASfo.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-Sod_xApz.js → useNamespace-DLLOJRYY.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-Sod_xApz.js.map → useNamespace-DLLOJRYY.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js → useYamlActivityEvents-D0XNXli1.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js.map → useYamlActivityEvents-D0XNXli1.js.map} +1 -1
- package/dashboard/dist/assets/{validate-CYhW1xMJ.js → validate-Be4GWnJ1.js} +2 -2
- package/dashboard/dist/assets/{validate-CYhW1xMJ.js.map → validate-Be4GWnJ1.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-ed7mYQw4.js → vendor-icons-D48ijXZU.js} +209 -189
- package/dashboard/dist/assets/vendor-icons-D48ijXZU.js.map +1 -0
- package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js → yaml-workflows-BQpO-G-I.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js.map → yaml-workflows-BQpO-G-I.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/api/http/escalations.md +54 -7
- package/docs/api/mcp/admin.md +7 -5
- package/docs/api/mcp/human-queue.md +17 -1
- package/docs/api/sdk/escalations.md +30 -4
- package/docs/api/sdk/files.md +19 -0
- package/docs/cli.md +4 -1
- package/docs/escalation-analytics.md +17 -0
- package/docs/hitl/files.md +104 -0
- package/docs/hitl/x-lt-confidence.md +139 -0
- package/docs/hitl/x-lt-layout.md +19 -0
- package/docs/hitl/x-lt-widget.md +20 -0
- package/docs/hitl-guide.md +6 -0
- package/docs/mcp.md +2 -1
- package/package.json +1 -1
- package/dashboard/dist/assets/ResolverForm-DfogHDzl.js +0 -8
- package/dashboard/dist/assets/ResolverForm-DfogHDzl.js.map +0 -1
- package/dashboard/dist/assets/TopicsPage-D8dW6J65.js +0 -2
- package/dashboard/dist/assets/escalation-items-BGZlJMpk.js +0 -2
- package/dashboard/dist/assets/escalation-items-BGZlJMpk.js.map +0 -1
- package/dashboard/dist/assets/index-BUmz0NMg.css +0 -1
- package/dashboard/dist/assets/index-C5osluV3.js +0 -2
- package/dashboard/dist/assets/index-C_dAJUzh.js.map +0 -1
- package/dashboard/dist/assets/index-Dk2KKo0z.js +0 -13
- package/dashboard/dist/assets/index-FiNThtNU.js +0 -3
- package/dashboard/dist/assets/index-FiNThtNU.js.map +0 -1
- 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
|
-
|
|
742
|
-
|
|
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,
|
|
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
|
|
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
|
|
66
|
-
if (!
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
|
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
|
|
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)
|
|
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',
|