@hotmeshio/long-tail 0.22.0 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/api/escalations/accumulate.d.ts +10 -1
- package/build/api/escalations/accumulate.js +121 -34
- package/build/api/escalations/metadata.d.ts +5 -0
- package/build/api/escalations/metadata.js +6 -2
- package/build/api/escalations/resolve-batch.js +18 -11
- package/build/api/roles.js +4 -0
- package/build/api/scan-codes/badge-policy.d.ts +10 -0
- package/build/api/scan-codes/badge-policy.js +72 -0
- package/build/api/scan-codes/choice.js +18 -11
- package/build/api/scan-codes/context.d.ts +45 -1
- package/build/api/scan-codes/context.js +51 -3
- package/build/api/scan-codes/execute.js +73 -35
- package/build/api/scan-codes/grant.d.ts +27 -0
- package/build/api/scan-codes/grant.js +67 -0
- package/build/api/scan-codes/hold.d.ts +10 -0
- package/build/api/scan-codes/hold.js +98 -0
- package/build/api/scan-codes/identity.d.ts +5 -2
- package/build/api/scan-codes/identity.js +26 -8
- package/build/api/scan-codes/subject.d.ts +15 -0
- package/build/api/scan-codes/subject.js +68 -0
- package/build/api/scan-codes/verb-accumulate.d.ts +24 -0
- package/build/api/scan-codes/verb-accumulate.js +147 -0
- package/build/api/scan-codes/verb-fill.d.ts +6 -0
- package/build/api/scan-codes/verb-fill.js +152 -0
- package/build/api/scan-codes/verbs-subject.d.ts +14 -0
- package/build/api/scan-codes/verbs-subject.js +270 -0
- package/build/api/scan-codes/verbs.d.ts +7 -22
- package/build/api/scan-codes/verbs.js +35 -114
- package/build/api/workflows/invocation.d.ts +8 -4
- package/build/api/workflows/invocation.js +26 -9
- package/build/index.d.ts +1 -0
- package/build/index.js +8 -2
- package/build/lib/cli/commands/workflows.js +9 -4
- package/build/lib/db/schemas/037_scan_gtin_and_subject_grants.sql +27 -0
- package/build/routes/escalations/accumulate.js +13 -6
- package/build/routes/escalations/acting.d.ts +5 -0
- package/build/routes/escalations/acting.js +8 -1
- package/build/routes/scan-codes.js +3 -0
- package/build/sdk/index.d.ts +3 -0
- package/build/services/escalation/crud.d.ts +2 -2
- package/build/services/escalation/crud.js +4 -2
- package/build/services/escalation/facet-sql.js +8 -0
- package/build/services/escalation/sql.d.ts +4 -2
- package/build/services/escalation/sql.js +10 -2
- package/build/services/export/index.d.ts +8 -3
- package/build/services/export/index.js +15 -21
- package/build/services/iam/acting-identity.d.ts +29 -4
- package/build/services/iam/acting-identity.js +60 -17
- package/build/services/iam/ephemeral.d.ts +21 -0
- package/build/services/iam/ephemeral.js +32 -1
- package/build/services/iam/sql.d.ts +10 -0
- package/build/services/iam/sql.js +32 -3
- package/build/services/pipelines/events.js +2 -1
- package/build/services/pipelines/execution-builder.js +2 -1
- package/build/services/pipelines/queries.js +2 -1
- package/build/services/role/badge-grant.d.ts +5 -0
- package/build/services/role/badge-grant.js +36 -0
- package/build/services/role/seed.js +5 -0
- package/build/services/role/types.d.ts +14 -0
- package/build/services/role/types.js +5 -0
- package/build/services/scan-code/index.d.ts +3 -2
- package/build/services/scan-code/index.js +7 -1
- package/build/services/scan-code/parse.d.ts +23 -20
- package/build/services/scan-code/parse.js +45 -90
- package/build/services/scan-code/read.js +1 -0
- package/build/services/scan-code/sql.d.ts +3 -3
- package/build/services/scan-code/sql.js +11 -8
- package/build/services/scan-code/validate-subject.d.ts +7 -0
- package/build/services/scan-code/validate-subject.js +158 -0
- package/build/services/scan-code/validate.d.ts +7 -0
- package/build/services/scan-code/validate.js +111 -16
- package/build/services/scan-code/write.d.ts +1 -0
- package/build/services/scan-code/write.js +9 -3
- package/build/services/workflow-state.d.ts +21 -0
- package/build/services/workflow-state.js +39 -0
- package/build/shared/form-validation/field-validator.js +4 -0
- package/build/shared/form-validation/index.d.ts +1 -0
- package/build/shared/form-validation/index.js +1 -0
- package/build/shared/form-validation/x-lt-scan.d.ts +52 -0
- package/build/shared/form-validation/x-lt-scan.js +166 -0
- package/build/shared/scan-code/gtin.d.ts +5 -0
- package/build/shared/scan-code/gtin.js +25 -0
- package/build/shared/scan-code/index.d.ts +2 -0
- package/build/shared/scan-code/index.js +10 -0
- package/build/shared/scan-code/parse.d.ts +46 -0
- package/build/shared/scan-code/parse.js +133 -0
- package/build/shared/workflow-state.d.ts +17 -0
- package/build/shared/workflow-state.js +29 -0
- package/build/system/mcp-servers/admin/escalations.js +8 -4
- package/build/system/mcp-servers/admin/scan-codes.js +10 -4
- package/build/system/mcp-servers/admin/schemas.d.ts +792 -23
- package/build/system/mcp-servers/admin/schemas.js +61 -4
- package/build/system/mcp-servers/admin/workflows.js +20 -31
- package/build/system/mcp-servers/human-queue-schemas.d.ts +6 -6
- package/build/system/seed/tool-manifests-admin.d.ts +94 -0
- package/build/system/seed/tool-manifests-admin.js +3 -3
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/escalation.d.ts +2 -0
- package/build/types/escalation.js +3 -1
- package/build/types/facets.d.ts +14 -0
- package/build/types/index.d.ts +3 -3
- package/build/types/index.js +8 -1
- package/build/types/scan-code/constants.d.ts +182 -0
- package/build/types/{scan-code.js → scan-code/constants.js} +62 -12
- package/build/types/scan-code/index.d.ts +3 -0
- package/build/types/scan-code/index.js +17 -0
- package/build/types/scan-code/response.d.ts +140 -0
- package/build/types/scan-code/response.js +2 -0
- package/build/types/scan-code/rule.d.ts +199 -0
- package/build/types/scan-code/rule.js +2 -0
- package/build/types/startup.d.ts +3 -1
- package/dashboard/dist/assets/{AdminDashboard-Covdam48.js → AdminDashboard-DBW12qQt.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-Covdam48.js.map → AdminDashboard-DBW12qQt.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-CE1k6J5r.js → AgentConfigPage-CmHv8U9M.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-CE1k6J5r.js.map → AgentConfigPage-CmHv8U9M.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-CWJZIZP1.js → AgentDetailPage-D1scIbz-.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-CWJZIZP1.js.map → AgentDetailPage-D1scIbz-.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage---Dg5ufF.js → AgentsPage-BA_ai9HJ.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage---Dg5ufF.js.map → AgentsPage-BA_ai9HJ.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-C2_5aEFW.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-C2_5aEFW.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-D3drO3-T.js → BotPicker-BZo4Kp4a.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-D3drO3-T.js.map → BotPicker-BZo4Kp4a.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-BOAWsViq.js → BulkAssignModal-BFhyxY2T.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-BOAWsViq.js.map → BulkAssignModal-BFhyxY2T.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-CvOX6vAc.js +2 -0
- package/dashboard/dist/assets/{CapabilitiesPage-RGgD3YZO.js.map → CapabilitiesPage-CvOX6vAc.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-DNkZn87n.js → CollapsibleSection-GCJsV9Oq.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-DNkZn87n.js.map → CollapsibleSection-GCJsV9Oq.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-BqzOwhPr.js → ConfirmDeleteModal-CAgYLcef.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-BqzOwhPr.js.map → ConfirmDeleteModal-CAgYLcef.js.map} +1 -1
- package/dashboard/dist/assets/CountdownTimer-Dik2z0M_.js +2 -0
- package/dashboard/dist/assets/{CountdownTimer-BaexQMK6.js.map → CountdownTimer-Dik2z0M_.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-D7abp0aS.js → CredentialsPage-twd2xCOW.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-D7abp0aS.js.map → CredentialsPage-twd2xCOW.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-DZiWmTwJ.js → CronLabel-DdnIuudX.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-DZiWmTwJ.js.map → CronLabel-DdnIuudX.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-f1o-GLM8.js → DropZone-B1Tdfddc.js} +2 -2
- package/dashboard/dist/assets/{DropZone-f1o-GLM8.js.map → DropZone-B1Tdfddc.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-BdGO_w4v.js → ElapsedCell-DCctVv5R.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-BdGO_w4v.js.map → ElapsedCell-DCctVv5R.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-DIDcF5Yu.js → EntityTimelinePanel-CMnskyWv.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-DIDcF5Yu.js.map → EntityTimelinePanel-CMnskyWv.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-C28rn9XC.js → EscalationListSchemaPage-VfCn6WDb.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-C28rn9XC.js.map → EscalationListSchemaPage-VfCn6WDb.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListView-CkBnkpDJ.js → EscalationListView-CGQZxcC-.js} +2 -2
- package/dashboard/dist/assets/{EscalationListView-CkBnkpDJ.js.map → EscalationListView-CGQZxcC-.js.map} +1 -1
- package/dashboard/dist/assets/EscalationSchemaPage-BX0tx-PM.js +9 -0
- package/dashboard/dist/assets/EscalationSchemaPage-BX0tx-PM.js.map +1 -0
- package/dashboard/dist/assets/EscalationTimeline-DKoSM56J.js +2 -0
- package/dashboard/dist/assets/EscalationTimeline-DKoSM56J.js.map +1 -0
- package/dashboard/dist/assets/{EscalationTitleSelect-CzKfavri.js → EscalationTitleSelect-DWGLBOmS.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-CzKfavri.js.map → EscalationTitleSelect-DWGLBOmS.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-Tdu3Yx2c.js → EscalationsOverview-C2XoguaA.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-Tdu3Yx2c.js.map → EscalationsOverview-C2XoguaA.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-DiIxOJwO.js → EventTable-CBUWq7--.js} +2 -2
- package/dashboard/dist/assets/{EventTable-DiIxOJwO.js.map → EventTable-CBUWq7--.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-CvMBCVIo.js → FilterBar-8IdbleZ9.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-CvMBCVIo.js.map → FilterBar-8IdbleZ9.js.map} +1 -1
- package/dashboard/dist/assets/GrantScopeField-BzWGzBfA.js +2 -0
- package/dashboard/dist/assets/GrantScopeField-BzWGzBfA.js.map +1 -0
- package/dashboard/dist/assets/{GraphInvokePage-DO-yyhi6.js → GraphInvokePage-CUvoPzsW.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-DO-yyhi6.js.map → GraphInvokePage-CUvoPzsW.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-DSS3eHR2.js → HomePage-BP7v9GLJ.js} +2 -2
- package/dashboard/dist/assets/{HomePage-DSS3eHR2.js.map → HomePage-BP7v9GLJ.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-C3-Tqqub.js → ListToolbar-Cnacuwoy.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-C3-Tqqub.js.map → ListToolbar-Cnacuwoy.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-DEJmsdVi.js → McpOverview-C2JoNoDA.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-DEJmsdVi.js.map → McpOverview-C2JoNoDA.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-C_nih0w-.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-C_nih0w-.js.map +1 -0
- package/dashboard/dist/assets/{McpQueryPage-BBcG_UuU.js → McpQueryPage-U_wNXow2.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-BBcG_UuU.js.map → McpQueryPage-U_wNXow2.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-C6xw0kBg.js → McpRunDetailPage-DtKoJq6J.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-C6xw0kBg.js.map → McpRunDetailPage-DtKoJq6J.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-CRQqrF4Q.js → McpRunsPage-CnYtfGhf.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-CRQqrF4Q.js.map → McpRunsPage-CnYtfGhf.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-DADRJOUl.js → NamespacePill-DwM5pNA4.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-DADRJOUl.js.map → NamespacePill-DwM5pNA4.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-Dlfwzf-0.js → OperationsPage-C7hupIer.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-Dlfwzf-0.js.map → OperationsPage-C7hupIer.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-DoiDGZ9R.js → OperatorDashboard-fVuLn2D5.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-DoiDGZ9R.js.map → OperatorDashboard-fVuLn2D5.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-Csq434-v.js → PageHeader-CMd3f4bz.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-Csq434-v.js.map → PageHeader-CMd3f4bz.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-CSnk1p5A.js → PageHeaderWithStats-DHj8Mqox.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-CSnk1p5A.js.map → PageHeaderWithStats-DHj8Mqox.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-BzbA4Prr.js → PersonaDetailPage-C-4o8lPw.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-BzbA4Prr.js.map → PersonaDetailPage-C-4o8lPw.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-B36yn4hU.js → PersonasPage-BL1FwLmv.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-B36yn4hU.js.map → PersonasPage-BL1FwLmv.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-BkD4YfDf.js → PortalPage-tJG5sgb1.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-BkD4YfDf.js.map → PortalPage-tJG5sgb1.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-BT0eiBWY.js → ProcessDetailPage-Dz_jY4Yt.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-BT0eiBWY.js.map → ProcessDetailPage-Dz_jY4Yt.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-BEqeeNae.js → ProcessesListPage-Cbn9cter.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-BEqeeNae.js.map → ProcessesListPage-Cbn9cter.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-Bk8iXQ6-.js +8 -0
- package/dashboard/dist/assets/ResolverForm-Bk8iXQ6-.js.map +1 -0
- package/dashboard/dist/assets/RoleDetailPage-owPi6gI9.js +8 -0
- package/dashboard/dist/assets/RoleDetailPage-owPi6gI9.js.map +1 -0
- package/dashboard/dist/assets/{RolePill-BafrASDX.js → RolePill-Di2CAHuD.js} +2 -2
- package/dashboard/dist/assets/{RolePill-BafrASDX.js.map → RolePill-Di2CAHuD.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-80quJU5-.js → RolesPage-NwmMvZFa.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-80quJU5-.js.map → RolesPage-NwmMvZFa.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-BoePhWVD.js → RunAsSelector-tgEooTyU.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-BoePhWVD.js.map → RunAsSelector-tgEooTyU.js.map} +1 -1
- package/dashboard/dist/assets/ScanCodesPage-CUv_8ic6.js +2 -0
- package/dashboard/dist/assets/ScanCodesPage-CUv_8ic6.js.map +1 -0
- package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js +2 -0
- package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js.map +1 -0
- package/dashboard/dist/assets/ScanStationPage-B275l6r_.js +2 -0
- package/dashboard/dist/assets/ScanStationPage-B275l6r_.js.map +1 -0
- package/dashboard/dist/assets/{ScopeBadge-b6MIBiYD.js → ScopeBadge-CSItPVOH.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-b6MIBiYD.js.map → ScopeBadge-CSItPVOH.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-9ITrei_d.js → StickyPagination-CsTI_gvJ.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-9ITrei_d.js.map → StickyPagination-CsTI_gvJ.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-BkYvEHFY.js → StreamMessageDetail-auRlvjTh.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-BkYvEHFY.js.map → StreamMessageDetail-auRlvjTh.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-B1rotFix.js → SwimlaneTimeline-BLoVHYAd.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-B1rotFix.js.map → SwimlaneTimeline-BLoVHYAd.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-ZrIIrEUP.js → TagInput-CAgdLN_b.js} +2 -2
- package/dashboard/dist/assets/{TagInput-ZrIIrEUP.js.map → TagInput-CAgdLN_b.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-zhn_U_eC.js → TaskDetailPage-BPsZ1bK_.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-zhn_U_eC.js.map → TaskDetailPage-BPsZ1bK_.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-DkQ1uc6y.js → TaskQueuePill-h0oorVMe.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-DkQ1uc6y.js.map → TaskQueuePill-h0oorVMe.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-CNbNeagx.js → TasksListPage-BNGM74yT.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-CNbNeagx.js.map → TasksListPage-BNGM74yT.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-0YVMBwls.js → TimeAgo-BnAHXGK7.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-0YVMBwls.js.map → TimeAgo-BnAHXGK7.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DB7r3np8.js → TimestampCell-J4yae6mc.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DB7r3np8.js.map → TimestampCell-J4yae6mc.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-Baxm02L6.js → ToolPill-CQCsVdzD.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-Baxm02L6.js.map → ToolPill-CQCsVdzD.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-BLfA02wv.js → ToolTestPanel-BdzzgXDu.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-BLfA02wv.js.map → ToolTestPanel-BdzzgXDu.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-eAqPKShq.js → TopicDetailPage-DJKg8lb7.js} +4 -4
- package/dashboard/dist/assets/{TopicDetailPage-eAqPKShq.js.map → TopicDetailPage-DJKg8lb7.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-BNNWD-zl.js → TopicsPage-DQV0WxG6.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-BNNWD-zl.js.map → TopicsPage-DQV0WxG6.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Pw46tO_k.js → UserName-Ct09nGh5.js} +2 -2
- package/dashboard/dist/assets/{UserName-Pw46tO_k.js.map → UserName-Ct09nGh5.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-DvA51lT3.js → WorkflowExecutionPage-B5WJOsee.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-DvA51lT3.js.map → WorkflowExecutionPage-B5WJOsee.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-ZepbO_ny.js → WorkflowPill-Dg7BDTyM.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-ZepbO_ny.js.map → WorkflowPill-Dg7BDTyM.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-DFDTwnhn.js → WorkflowsDashboard-Hc87TRgD.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-DFDTwnhn.js.map → WorkflowsDashboard-Hc87TRgD.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-5i2Tcy-p.js → WorkflowsOverview-CJQbyOj-.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-5i2Tcy-p.js.map → WorkflowsOverview-CJQbyOj-.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-p4VEYZS0.js → YamlWorkflowDetailPage-BMeED677.js} +8 -8
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-p4VEYZS0.js.map → YamlWorkflowDetailPage-BMeED677.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-Cq-hMVxl.js → YamlWorkflowsPage-BMMg0Id6.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-Cq-hMVxl.js.map → YamlWorkflowsPage-BMMg0Id6.js.map} +1 -1
- package/dashboard/dist/assets/{agents-EyBPJMYa.js → agents-CdFkgFvg.js} +2 -2
- package/dashboard/dist/assets/{agents-EyBPJMYa.js.map → agents-CdFkgFvg.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DX6jjqtF.js → bots-Mj3LHWWg.js} +2 -2
- package/dashboard/dist/assets/{bots-DX6jjqtF.js.map → bots-Mj3LHWWg.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-ZdLv9xBQ.js → capabilities-Dw1ObK2-.js} +2 -2
- package/dashboard/dist/assets/{capabilities-ZdLv9xBQ.js.map → capabilities-Dw1ObK2-.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-CpvZaJuw.js → controlplane-DcNE1APv.js} +2 -2
- package/dashboard/dist/assets/{controlplane-CpvZaJuw.js.map → controlplane-DcNE1APv.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-Mvsze5eV.js → escalation-columns-D364Trpy.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-Mvsze5eV.js.map → escalation-columns-D364Trpy.js.map} +1 -1
- package/dashboard/dist/assets/{index-Cn8uJsd7.js → index-B3veJ698.js} +2 -2
- package/dashboard/dist/assets/{index-Cn8uJsd7.js.map → index-B3veJ698.js.map} +1 -1
- package/dashboard/dist/assets/index-BQeHJHYN.js +67 -0
- package/dashboard/dist/assets/index-BQeHJHYN.js.map +1 -0
- package/dashboard/dist/assets/{index-D-Xs4rAW.js → index-BRGTmoYY.js} +2 -2
- package/dashboard/dist/assets/{index-D-Xs4rAW.js.map → index-BRGTmoYY.js.map} +1 -1
- package/dashboard/dist/assets/{index-DkrBFFSO.js → index-Bd6-KmBE.js} +3 -3
- package/dashboard/dist/assets/{index-DkrBFFSO.js.map → index-Bd6-KmBE.js.map} +1 -1
- package/dashboard/dist/assets/{index-Bhb89oHH.js → index-BiVce3n0.js} +2 -2
- package/dashboard/dist/assets/{index-Bhb89oHH.js.map → index-BiVce3n0.js.map} +1 -1
- package/dashboard/dist/assets/{index-z5Hpeidu.js → index-BmNAVd4s.js} +2 -2
- package/dashboard/dist/assets/{index-z5Hpeidu.js.map → index-BmNAVd4s.js.map} +1 -1
- package/dashboard/dist/assets/{index-BbCjGO3M.js → index-Bq5XNEzD.js} +2 -2
- package/dashboard/dist/assets/{index-BbCjGO3M.js.map → index-Bq5XNEzD.js.map} +1 -1
- package/dashboard/dist/assets/{index-DGmzBY9D.js → index-DPStdq4T.js} +2 -2
- package/dashboard/dist/assets/{index-DGmzBY9D.js.map → index-DPStdq4T.js.map} +1 -1
- package/dashboard/dist/assets/index-DcppjzP5.css +1 -0
- package/dashboard/dist/assets/{index-PfSRKerc.js → index-DkcI4V_H.js} +2 -2
- package/dashboard/dist/assets/{index-PfSRKerc.js.map → index-DkcI4V_H.js.map} +1 -1
- package/dashboard/dist/assets/{index-oFKUFGQL.js → index-Dyotfa_k.js} +2 -2
- package/dashboard/dist/assets/{index-oFKUFGQL.js.map → index-Dyotfa_k.js.map} +1 -1
- package/dashboard/dist/assets/{index-Eo-l3Lqo.js → index-MDD4JYtu.js} +2 -2
- package/dashboard/dist/assets/{index-Eo-l3Lqo.js.map → index-MDD4JYtu.js.map} +1 -1
- package/dashboard/dist/assets/index-WSm8bgE7.js +3 -0
- package/dashboard/dist/assets/index-WSm8bgE7.js.map +1 -0
- package/dashboard/dist/assets/{index-DZhtP2Ok.js → index-eDm6cz0F.js} +2 -2
- package/dashboard/dist/assets/{index-DZhtP2Ok.js.map → index-eDm6cz0F.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-CgloEkaf.js → knowledge-Bafewjxk.js} +2 -2
- package/dashboard/dist/assets/{knowledge-CgloEkaf.js.map → knowledge-Bafewjxk.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-o-sGX2ST.js → mcp-query-BzTtIG90.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-o-sGX2ST.js.map → mcp-query-BzTtIG90.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-Bix7QYO7.js → mcp-vLIutbnc.js} +2 -2
- package/dashboard/dist/assets/{mcp-Bix7QYO7.js.map → mcp-vLIutbnc.js.map} +1 -1
- package/dashboard/dist/assets/{personas-30azkJ_s.js → personas-WD40EDS_.js} +2 -2
- package/dashboard/dist/assets/{personas-30azkJ_s.js.map → personas-WD40EDS_.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-Bfk2GFK7.js → pipelines-DFwULWs3.js} +2 -2
- package/dashboard/dist/assets/{pipelines-Bfk2GFK7.js.map → pipelines-DFwULWs3.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CpdopewW.js → tasks-La_-WAUn.js} +2 -2
- package/dashboard/dist/assets/{tasks-CpdopewW.js.map → tasks-La_-WAUn.js.map} +1 -1
- package/dashboard/dist/assets/{topics--bvCV9Yp.js → topics-CzYMlvqm.js} +2 -2
- package/dashboard/dist/assets/{topics--bvCV9Yp.js.map → topics-CzYMlvqm.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-Da0lPmj3.js → useDebouncedValue-C0FQyANW.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-Da0lPmj3.js.map → useDebouncedValue-C0FQyANW.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-DD_Esl6n.js → useNamespace-WW_XjAb3.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-DD_Esl6n.js.map → useNamespace-WW_XjAb3.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-AeAhZJJk.js → useYamlActivityEvents-B3YxPeFt.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-AeAhZJJk.js.map → useYamlActivityEvents-B3YxPeFt.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-B7OcUM6b.js → vendor-icons-CeVtUKyP.js} +2 -2
- package/dashboard/dist/assets/{vendor-icons-B7OcUM6b.js.map → vendor-icons-CeVtUKyP.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-BHAOOGvn.js → yaml-workflows-COHOjdhF.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-BHAOOGvn.js.map → yaml-workflows-COHOjdhF.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/accumulator.md +37 -1
- package/docs/api/mcp/admin.md +3 -2
- package/docs/api/sdk/escalations.md +6 -0
- package/docs/api/sdk/exports.md +1 -1
- package/docs/api/sdk/workflows.md +23 -4
- package/docs/cli.md +1 -1
- package/docs/dashboard.md +2 -2
- package/docs/faceted-routing.md +2 -0
- package/docs/hitl/x-lt-scan.md +51 -0
- package/docs/hitl/x-lt-widget.md +5 -0
- package/docs/hitl-guide.md +2 -0
- package/docs/scan-codes.md +252 -19
- package/package.json +1 -1
- package/build/types/scan-code.d.ts +0 -308
- package/dashboard/dist/assets/AvailableEscalationsPage-CpbC8oTN.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-CpbC8oTN.js.map +0 -1
- package/dashboard/dist/assets/CapabilitiesPage-RGgD3YZO.js +0 -2
- package/dashboard/dist/assets/CountdownTimer-BaexQMK6.js +0 -2
- package/dashboard/dist/assets/EscalationSchemaPage-W5r0A1kj.js +0 -9
- package/dashboard/dist/assets/EscalationSchemaPage-W5r0A1kj.js.map +0 -1
- package/dashboard/dist/assets/EscalationTimeline-DKyTz6sM.js +0 -2
- package/dashboard/dist/assets/EscalationTimeline-DKyTz6sM.js.map +0 -1
- package/dashboard/dist/assets/McpQueryDetailPage-DYJr16l7.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-DYJr16l7.js.map +0 -1
- package/dashboard/dist/assets/ResolverForm-BwgjIX97.js +0 -7
- package/dashboard/dist/assets/ResolverForm-BwgjIX97.js.map +0 -1
- package/dashboard/dist/assets/RoleDetailPage-BFuLNJXa.js +0 -8
- package/dashboard/dist/assets/RoleDetailPage-BFuLNJXa.js.map +0 -1
- package/dashboard/dist/assets/ScanCodesPage-Cu1bKEix.js +0 -2
- package/dashboard/dist/assets/ScanCodesPage-Cu1bKEix.js.map +0 -1
- package/dashboard/dist/assets/ScanSchemeDetailPage-D9AbS6UY.js +0 -2
- package/dashboard/dist/assets/ScanSchemeDetailPage-D9AbS6UY.js.map +0 -1
- package/dashboard/dist/assets/ScanStationPage-gcZGefvT.js +0 -2
- package/dashboard/dist/assets/ScanStationPage-gcZGefvT.js.map +0 -1
- package/dashboard/dist/assets/index-B_GT23TE.js +0 -3
- package/dashboard/dist/assets/index-B_GT23TE.js.map +0 -1
- package/dashboard/dist/assets/index-CgUcYveM.js +0 -67
- package/dashboard/dist/assets/index-CgUcYveM.js.map +0 -1
- package/dashboard/dist/assets/index-Dh8MJl3L.css +0 -1
|
@@ -97,11 +97,13 @@ exports.accumulateItemSchema = zod_1.z.object({
|
|
|
97
97
|
payload: zod_1.z.record(zod_1.z.any()).optional().describe('Optional item payload, delivered inside $accumulated'),
|
|
98
98
|
metadata: zod_1.z.record(zod_1.z.any()).optional().describe('Merge patch for the container metadata, same statement'),
|
|
99
99
|
reciprocal: adminReciprocalSchema.optional(),
|
|
100
|
+
initiatedBy: zod_1.z.string().optional().describe('lt_users.id of the person the add is for; recorded as the entry actor (attribution only)'),
|
|
100
101
|
});
|
|
101
102
|
exports.removeItemSchema = zod_1.z.object({
|
|
102
103
|
id: zod_1.z.string().describe('Accumulator escalation UUID'),
|
|
103
104
|
itemKey: zod_1.z.string().describe('The held item key to remove'),
|
|
104
105
|
reciprocal: adminReciprocalSchema.omit({ payload: true }).optional(),
|
|
106
|
+
initiatedBy: zod_1.z.string().optional().describe('lt_users.id of the person the removal is for; recorded as the entry actor (attribution only)'),
|
|
105
107
|
});
|
|
106
108
|
exports.getEscalationItemsSchema = zod_1.z.object({
|
|
107
109
|
id: zod_1.z.string().optional().describe('Accumulator or batch escalation UUID'),
|
|
@@ -664,6 +666,8 @@ exports.findOrphanedSignalsSchema = zod_1.z.object({
|
|
|
664
666
|
/** A faceted query over a pond — filter/sort by columns and metadata facets. */
|
|
665
667
|
exports.facetQuerySchema = zod_1.z.object({
|
|
666
668
|
role: zod_1.z.string().describe('Pond role to target (the escalation role)'),
|
|
669
|
+
types: zod_1.z.array(zod_1.z.string()).optional().describe('Only rows whose escalation type is one of these'),
|
|
670
|
+
subtypes: zod_1.z.array(zod_1.z.string()).optional().describe('Only rows whose escalation subtype is one of these'),
|
|
667
671
|
status: zod_1.z.string().optional().describe("Status filter (e.g. 'pending')"),
|
|
668
672
|
available: zod_1.z.boolean().optional().describe('Only rows not currently claimed'),
|
|
669
673
|
facets: zod_1.z.record(zod_1.z.any()).optional().describe('Metadata facet equality filters'),
|
|
@@ -774,6 +778,11 @@ exports.executeScanCodeSchema = zod_1.z.object({
|
|
|
774
778
|
code: zod_1.z.string().min(1).describe('Raw scan string, e.g. "10:1:SN123" or "10175433211"'),
|
|
775
779
|
actingToken: zod_1.z.string().optional().describe('An acting-identity grant (eph:v1:acting_identity:*) — verbs run as the badged person'),
|
|
776
780
|
previousActingToken: zod_1.z.string().optional().describe('The grant an identity scan replaces — best-effort revoked on mint'),
|
|
781
|
+
subject: zod_1.z.object({
|
|
782
|
+
code: zod_1.z.string().describe('The raw code that held the subject'),
|
|
783
|
+
escalationId: zod_1.z.string().describe('The row the hold returned'),
|
|
784
|
+
}).optional().describe('The subject the station is holding (from a prior "held" outcome); subject steps act on it'),
|
|
785
|
+
stationRole: zod_1.z.string().optional().describe("The role the device is locked to; a badge scan mints under that role's properties.badge_grant"),
|
|
777
786
|
});
|
|
778
787
|
exports.executeScanChoiceSchema = zod_1.z.object({
|
|
779
788
|
schemeVersion: zod_1.z.number().int().min(10).max(99),
|
|
@@ -792,10 +801,39 @@ const scanStepParamsSchema = zod_1.z.object({
|
|
|
792
801
|
description: zod_1.z.string().optional(),
|
|
793
802
|
closeCurrent: zod_1.z.enum(['resolve', 'cancel']).optional(),
|
|
794
803
|
durationMinutes: zod_1.z.number().int().min(1).optional(),
|
|
804
|
+
itemKey: zod_1.z.string().optional().describe("accumulate: item key template, e.g. '{subject.itemId}'"),
|
|
805
|
+
accumulate: zod_1.z.object({
|
|
806
|
+
containerFacet: zod_1.z.string().optional().describe('Item mode: the scan names the item; the container shares this facet'),
|
|
807
|
+
containerRoles: zod_1.z.array(zod_1.z.string()).optional(),
|
|
808
|
+
container: zod_1.z.object({
|
|
809
|
+
roles: zod_1.z.array(zod_1.z.string()).optional(),
|
|
810
|
+
types: zod_1.z.array(zod_1.z.string()).optional(),
|
|
811
|
+
subtypes: zod_1.z.array(zod_1.z.string()).optional(),
|
|
812
|
+
facets: zod_1.z.record(zod_1.z.any()).optional(),
|
|
813
|
+
}).optional().describe('Which pending accumulator may be the container'),
|
|
814
|
+
reciprocal: zod_1.z.boolean().optional(),
|
|
815
|
+
from: zod_1.z.literal('subject').optional().describe('The held subject joins the scanned container (its row is the reciprocal)'),
|
|
816
|
+
into: zod_1.z.literal('subject').optional().describe("The held subject's row collects the scanned code"),
|
|
817
|
+
}).optional(),
|
|
818
|
+
hold: zod_1.z.object({
|
|
819
|
+
ttlSeconds: zod_1.z.number().int().min(5).max(600).optional().describe('Seconds the station holds the subject (default 45)'),
|
|
820
|
+
label: zod_1.z.string().optional().describe('What the station calls the subject (template)'),
|
|
821
|
+
headline: zod_1.z.string().optional().describe("Where the item goes, shown largest, e.g. '{item.containerCode}' (template)"),
|
|
822
|
+
subline: zod_1.z.string().optional().describe("The line under the headline, e.g. '{item.locationName}' (template)"),
|
|
823
|
+
expect: zod_1.z.object({
|
|
824
|
+
schemes: zod_1.z.array(zod_1.z.number().int().min(10).max(99)),
|
|
825
|
+
prompt: zod_1.z.string().optional().describe('Markdown asking for the next scan (template)'),
|
|
826
|
+
}).optional(),
|
|
827
|
+
}).optional().describe('hold verb options'),
|
|
828
|
+
fill: zod_1.z.object({
|
|
829
|
+
into: zod_1.z.enum(['subject', 'scanned']),
|
|
830
|
+
separator: zod_1.z.string().length(1).optional().describe("Between a code and its ordinal in batch keys (default '#')"),
|
|
831
|
+
payload: zod_1.z.record(zod_1.z.any()).optional(),
|
|
832
|
+
}).optional().describe('fill verb options'),
|
|
795
833
|
});
|
|
796
834
|
const scanChoiceSchema = zod_1.z.object({
|
|
797
835
|
label: zod_1.z.string().describe('Button text the associate reads'),
|
|
798
|
-
verb: zod_1.z.enum(['show-detail', 'claim', 'claim-show-detail', 'release', 'resolve', 'escalate', 'cancel']),
|
|
836
|
+
verb: zod_1.z.enum(['show-detail', 'claim', 'claim-show-detail', 'release', 'resolve', 'escalate', 'cancel', 'hold']),
|
|
799
837
|
params: scanStepParamsSchema.optional(),
|
|
800
838
|
confirm: zod_1.z.object({ prompt: zod_1.z.string() }).optional(),
|
|
801
839
|
requireActingIdentity: zod_1.z.boolean().optional().describe('The choice executes only under a real acting identity (badge or a write-capable login)'),
|
|
@@ -806,12 +844,13 @@ exports.upsertScanSchemeSchema = zod_1.z.object({
|
|
|
806
844
|
name: zod_1.z.string().describe('Scheme display name'),
|
|
807
845
|
description: zod_1.z.string().optional(),
|
|
808
846
|
target_facet: zod_1.z.string().describe("The metadata key the target resolves against: an escalation metadata key for action schemes, an lt_users.metadata key (e.g. badge_id) for identity schemes"),
|
|
809
|
-
encoding: zod_1.z.enum(['fixed', 'delimited']).optional().describe('fixed = digits only
|
|
847
|
+
encoding: zod_1.z.enum(['fixed', 'delimited', 'gtin']).optional().describe('fixed = digits only with a scheme prefix, delimited = text with separators, gtin = manufacturer barcodes (UPC-A/EAN-13/EAN-8/GTIN-14) with no prefix; one rule, category 0'),
|
|
810
848
|
delimiter: zod_1.z.string().optional().describe('Separator character for delimited encoding (default ":")'),
|
|
811
849
|
target_length: zod_1.z.number().int().min(1).optional().describe('Target digit count for fixed encoding'),
|
|
812
850
|
kind: zod_1.z.enum(['action', 'identity']).optional().describe("action = ECA steps over escalations (default); identity = a badge that mints a short-lived acting-identity grant"),
|
|
813
851
|
grant_ttl_seconds: zod_1.z.number().int().min(1).max(86400).optional().describe('Identity kind: how long a minted acting grant lives'),
|
|
814
|
-
grant_max_uses: zod_1.z.number().int().min(0).optional().describe('Identity kind: 0 = TTL-bound; n = the grant covers n
|
|
852
|
+
grant_max_uses: zod_1.z.number().int().min(0).optional().describe('Identity kind: 0 = TTL-bound; n = the grant covers n acts'),
|
|
853
|
+
grant_scope: zod_1.z.enum(['action', 'subject']).optional().describe("Identity kind: 'action' spends a use per act (default); 'subject' binds to the first held subject it acts on and acts on it freely"),
|
|
815
854
|
enabled: zod_1.z.boolean().optional(),
|
|
816
855
|
});
|
|
817
856
|
exports.upsertScanRuleSchema = zod_1.z.object({
|
|
@@ -826,12 +865,30 @@ exports.upsertScanRuleSchema = zod_1.z.object({
|
|
|
826
865
|
facets: zod_1.z.record(zod_1.z.any()).optional().describe('Extra metadata guards'),
|
|
827
866
|
}),
|
|
828
867
|
cardinality: zod_1.z.enum(['first', 'many']).optional(),
|
|
829
|
-
verb: zod_1.z.enum(['show-detail', 'show-list', 'claim', 'claim-show-detail', 'release', 'resolve', 'escalate', 'cancel', 'present']),
|
|
868
|
+
verb: zod_1.z.enum(['show-detail', 'show-list', 'claim', 'claim-show-detail', 'release', 'resolve', 'escalate', 'cancel', 'accumulate', 'present', 'hold', 'fill']),
|
|
830
869
|
confirm: zod_1.z.object({ prompt: zod_1.z.string() }).optional(),
|
|
831
870
|
params: scanStepParamsSchema.optional(),
|
|
832
871
|
requireActingIdentity: zod_1.z.boolean().optional().describe('The step executes only under a real acting identity — a badge grant, or a login whose own write scope covers the step'),
|
|
833
872
|
choices: zod_1.z.array(scanChoiceSchema).optional().describe("present verb only: the labeled choice set rendered under the located reality"),
|
|
834
873
|
autoSelectSingle: zod_1.z.boolean().optional().describe('present verb with exactly one confirm-less choice: the scan executes it directly — one scan, one action; an unsatisfied identity requirement still presents the badge stop-over'),
|
|
874
|
+
subject: zod_1.z.object({
|
|
875
|
+
schemes: zod_1.z.array(zod_1.z.number().int().min(10).max(99)),
|
|
876
|
+
claimedByOther: zod_1.z.enum(['refuse', 'allow']).optional(),
|
|
877
|
+
facets: zod_1.z.record(zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()])).optional()
|
|
878
|
+
.describe("The held row must carry these facet values, else the step is skipped, e.g. { placement: 'unassigned' }"),
|
|
879
|
+
}).optional().describe('The step acts on the held subject and runs only while one from these schemes is held'),
|
|
880
|
+
match: zod_1.z.object({
|
|
881
|
+
target: zod_1.z.array(zod_1.z.string()).optional().describe("The scanned target must equal one of these, e.g. ['{subject.containerCode}']; a lone token naming a list facet ('{subject.offeredContainers}') allows every entry"),
|
|
882
|
+
facets: zod_1.z.array(zod_1.z.string()).optional().describe('The located container must share these facets with the subject'),
|
|
883
|
+
}).optional().describe('Checked before the write; a miss refuses with nothing written'),
|
|
884
|
+
refuse: zod_1.z.object({
|
|
885
|
+
markdown: zod_1.z.string().describe('What the station says on a failed match (template; may read {container.*})'),
|
|
886
|
+
conflict: zod_1.z.string().optional().describe('What the station says when the write loses a race'),
|
|
887
|
+
missing: zod_1.z.string().optional().describe('From-subject accumulate: what the station says when the pairing holds but no open container carries the scanned code (else the next step runs)'),
|
|
888
|
+
}).optional(),
|
|
889
|
+
done: zod_1.z.object({
|
|
890
|
+
markdown: zod_1.z.string().describe("What the station says once the write lands, e.g. 'Place it in **{container.containerCode}**.' (template)"),
|
|
891
|
+
}).optional(),
|
|
835
892
|
})).describe('Ordered condition/action steps — first match wins'),
|
|
836
893
|
fallback: zod_1.z.object({
|
|
837
894
|
markdown: zod_1.z.string().optional(),
|
|
@@ -38,6 +38,7 @@ const configService = __importStar(require("../../../services/config"));
|
|
|
38
38
|
const registry_1 = require("../../../services/workers/registry");
|
|
39
39
|
const workflow_invocation_1 = require("../../../services/workflow-invocation");
|
|
40
40
|
const workflowApi = __importStar(require("../../../api/workflows"));
|
|
41
|
+
const workflow_state_1 = require("../../../shared/workflow-state");
|
|
41
42
|
const schemas_1 = require("./schemas");
|
|
42
43
|
function registerWorkflowTools(server) {
|
|
43
44
|
// mirrors GET /api/workflows/discovered
|
|
@@ -173,46 +174,34 @@ function registerWorkflowTools(server) {
|
|
|
173
174
|
server.registerTool('get_workflow_status', {
|
|
174
175
|
title: 'Get Workflow Status',
|
|
175
176
|
description: 'Check the status and result of a workflow execution. Returns ' +
|
|
176
|
-
'status (running | complete) and the result if complete
|
|
177
|
+
'status (running | complete | failed) and the result if complete; a ' +
|
|
178
|
+
'failed run carries terminated (true when an interrupt ended it) and error. ' +
|
|
177
179
|
'Resolution is namespace-aware: pass app_id to read a workflow (e.g. a ' +
|
|
178
180
|
'child) running in a non-default HotMesh namespace.',
|
|
179
181
|
inputSchema: schemas_1.getWorkflowStatusSchema,
|
|
180
182
|
}, async (args) => {
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
183
|
+
const reply = (body, isError = false) => ({
|
|
184
|
+
content: [{ type: 'text', text: JSON.stringify(body) }],
|
|
185
|
+
...(isError ? { isError: true } : {}),
|
|
184
186
|
});
|
|
185
|
-
|
|
186
|
-
return {
|
|
187
|
-
content: [{ type: 'text', text: JSON.stringify({ error: statusResult.error }) }],
|
|
188
|
-
isError: true,
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
// HotMesh status: 0 = complete, positive = running.
|
|
192
|
-
if (statusResult.data?.status !== 0) {
|
|
193
|
-
return {
|
|
194
|
-
content: [{
|
|
195
|
-
type: 'text',
|
|
196
|
-
text: JSON.stringify({ workflow_id: args.workflow_id, status: 'running' }),
|
|
197
|
-
}],
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
const resultResult = await workflowApi.getWorkflowResult({
|
|
187
|
+
const found = await workflowApi.getWorkflowResult({
|
|
201
188
|
workflowId: args.workflow_id,
|
|
202
189
|
appId: args.app_id,
|
|
203
190
|
});
|
|
204
|
-
if (
|
|
205
|
-
return {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
};
|
|
191
|
+
if (found.error)
|
|
192
|
+
return reply({ error: found.error }, true);
|
|
193
|
+
const data = found.data;
|
|
194
|
+
if (found.status === 202)
|
|
195
|
+
return reply({ workflow_id: args.workflow_id, status: 'running' });
|
|
196
|
+
if (data.state === workflow_state_1.WORKFLOW_STATES.FAILED) {
|
|
197
|
+
return reply({
|
|
198
|
+
workflow_id: args.workflow_id,
|
|
199
|
+
status: workflow_state_1.WORKFLOW_STATES.FAILED,
|
|
200
|
+
terminated: data.terminated === true,
|
|
201
|
+
...(data.error ? { error: data.error } : {}),
|
|
202
|
+
});
|
|
209
203
|
}
|
|
210
|
-
return {
|
|
211
|
-
content: [{
|
|
212
|
-
type: 'text',
|
|
213
|
-
text: JSON.stringify({ workflow_id: args.workflow_id, status: 'complete', result: resultResult.data?.result }),
|
|
214
|
-
}],
|
|
215
|
-
};
|
|
204
|
+
return reply({ workflow_id: args.workflow_id, status: 'complete', result: data.result });
|
|
216
205
|
});
|
|
217
206
|
// mirrors POST /api/workflows/:workflowId/terminate — the COMPLETE kill.
|
|
218
207
|
// Terminates the handle AND cancels the workflow's escalations (the engine's
|
|
@@ -69,12 +69,12 @@ export declare const resolveBatchItemSchema: z.ZodObject<{
|
|
|
69
69
|
item_key: z.ZodString;
|
|
70
70
|
payload: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
71
71
|
}, "strip", z.ZodTypeAny, {
|
|
72
|
-
item_key: string;
|
|
73
72
|
payload: Record<string, any>;
|
|
73
|
+
item_key: string;
|
|
74
74
|
escalation_id: string;
|
|
75
75
|
}, {
|
|
76
|
-
item_key: string;
|
|
77
76
|
payload: Record<string, any>;
|
|
77
|
+
item_key: string;
|
|
78
78
|
escalation_id: string;
|
|
79
79
|
}>;
|
|
80
80
|
export declare const accumulateItemSchema: z.ZodObject<{
|
|
@@ -91,14 +91,14 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
91
91
|
key?: string | undefined;
|
|
92
92
|
value?: string | undefined;
|
|
93
93
|
id?: string | undefined;
|
|
94
|
-
signalKey?: string | undefined;
|
|
95
94
|
payload?: Record<string, any> | undefined;
|
|
95
|
+
signalKey?: string | undefined;
|
|
96
96
|
}, {
|
|
97
97
|
key?: string | undefined;
|
|
98
98
|
value?: string | undefined;
|
|
99
99
|
id?: string | undefined;
|
|
100
|
-
signalKey?: string | undefined;
|
|
101
100
|
payload?: Record<string, any> | undefined;
|
|
101
|
+
signalKey?: string | undefined;
|
|
102
102
|
}>>;
|
|
103
103
|
}, "strip", z.ZodTypeAny, {
|
|
104
104
|
item_key: string;
|
|
@@ -108,8 +108,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
108
108
|
key?: string | undefined;
|
|
109
109
|
value?: string | undefined;
|
|
110
110
|
id?: string | undefined;
|
|
111
|
-
signalKey?: string | undefined;
|
|
112
111
|
payload?: Record<string, any> | undefined;
|
|
112
|
+
signalKey?: string | undefined;
|
|
113
113
|
} | undefined;
|
|
114
114
|
}, {
|
|
115
115
|
item_key: string;
|
|
@@ -119,8 +119,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
119
119
|
key?: string | undefined;
|
|
120
120
|
value?: string | undefined;
|
|
121
121
|
id?: string | undefined;
|
|
122
|
-
signalKey?: string | undefined;
|
|
123
122
|
payload?: Record<string, any> | undefined;
|
|
123
|
+
signalKey?: string | undefined;
|
|
124
124
|
} | undefined;
|
|
125
125
|
}>;
|
|
126
126
|
export declare const removeItemSchema: z.ZodObject<{
|