@hotmeshio/long-tail 0.22.0 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/build/api/escalations/accumulate.d.ts +10 -1
  2. package/build/api/escalations/accumulate.js +83 -15
  3. package/build/api/escalations/metadata.d.ts +5 -0
  4. package/build/api/escalations/metadata.js +6 -2
  5. package/build/api/scan-codes/choice.js +3 -2
  6. package/build/api/scan-codes/verbs.d.ts +6 -1
  7. package/build/api/scan-codes/verbs.js +13 -3
  8. package/build/api/workflows/invocation.d.ts +8 -4
  9. package/build/api/workflows/invocation.js +26 -9
  10. package/build/lib/cli/commands/workflows.js +9 -4
  11. package/build/routes/escalations/accumulate.js +13 -6
  12. package/build/sdk/index.d.ts +3 -0
  13. package/build/services/escalation/crud.d.ts +2 -2
  14. package/build/services/escalation/crud.js +4 -2
  15. package/build/services/escalation/facet-sql.js +8 -0
  16. package/build/services/escalation/sql.d.ts +4 -2
  17. package/build/services/escalation/sql.js +10 -2
  18. package/build/services/export/index.d.ts +8 -3
  19. package/build/services/export/index.js +15 -21
  20. package/build/services/pipelines/events.js +2 -1
  21. package/build/services/pipelines/execution-builder.js +2 -1
  22. package/build/services/pipelines/queries.js +2 -1
  23. package/build/services/scan-code/validate.js +19 -0
  24. package/build/services/workflow-state.d.ts +21 -0
  25. package/build/services/workflow-state.js +39 -0
  26. package/build/shared/workflow-state.d.ts +17 -0
  27. package/build/shared/workflow-state.js +29 -0
  28. package/build/system/mcp-servers/admin/escalations.js +8 -4
  29. package/build/system/mcp-servers/admin/schemas.d.ts +38 -0
  30. package/build/system/mcp-servers/admin/schemas.js +4 -0
  31. package/build/system/mcp-servers/admin/workflows.js +20 -31
  32. package/build/system/seed/tool-manifests-admin.d.ts +94 -0
  33. package/build/system/seed/tool-manifests-admin.js +3 -3
  34. package/build/tsconfig.tsbuildinfo +1 -1
  35. package/build/types/facets.d.ts +14 -0
  36. package/build/types/index.d.ts +1 -1
  37. package/build/types/scan-code.d.ts +10 -1
  38. package/build/types/scan-code.js +0 -11
  39. package/dashboard/dist/assets/{AdminDashboard-Covdam48.js → AdminDashboard-BbWve-Ax.js} +2 -2
  40. package/dashboard/dist/assets/{AdminDashboard-Covdam48.js.map → AdminDashboard-BbWve-Ax.js.map} +1 -1
  41. package/dashboard/dist/assets/{AgentConfigPage-CE1k6J5r.js → AgentConfigPage-M-9eTKhP.js} +2 -2
  42. package/dashboard/dist/assets/{AgentConfigPage-CE1k6J5r.js.map → AgentConfigPage-M-9eTKhP.js.map} +1 -1
  43. package/dashboard/dist/assets/{AgentDetailPage-CWJZIZP1.js → AgentDetailPage-CsakSlx5.js} +3 -3
  44. package/dashboard/dist/assets/{AgentDetailPage-CWJZIZP1.js.map → AgentDetailPage-CsakSlx5.js.map} +1 -1
  45. package/dashboard/dist/assets/{AgentsPage---Dg5ufF.js → AgentsPage-Cj_cRTT1.js} +2 -2
  46. package/dashboard/dist/assets/{AgentsPage---Dg5ufF.js.map → AgentsPage-Cj_cRTT1.js.map} +1 -1
  47. package/dashboard/dist/assets/AvailableEscalationsPage-BXJmMBM1.js +2 -0
  48. package/dashboard/dist/assets/AvailableEscalationsPage-BXJmMBM1.js.map +1 -0
  49. package/dashboard/dist/assets/{BotPicker-D3drO3-T.js → BotPicker-CGB16rYU.js} +2 -2
  50. package/dashboard/dist/assets/{BotPicker-D3drO3-T.js.map → BotPicker-CGB16rYU.js.map} +1 -1
  51. package/dashboard/dist/assets/{BulkAssignModal-BOAWsViq.js → BulkAssignModal-MjxcU7N1.js} +2 -2
  52. package/dashboard/dist/assets/{BulkAssignModal-BOAWsViq.js.map → BulkAssignModal-MjxcU7N1.js.map} +1 -1
  53. package/dashboard/dist/assets/{CapabilitiesPage-RGgD3YZO.js → CapabilitiesPage-BxadotXn.js} +2 -2
  54. package/dashboard/dist/assets/{CapabilitiesPage-RGgD3YZO.js.map → CapabilitiesPage-BxadotXn.js.map} +1 -1
  55. package/dashboard/dist/assets/{CollapsibleSection-DNkZn87n.js → CollapsibleSection-BBNpP-6h.js} +2 -2
  56. package/dashboard/dist/assets/{CollapsibleSection-DNkZn87n.js.map → CollapsibleSection-BBNpP-6h.js.map} +1 -1
  57. package/dashboard/dist/assets/{ConfirmDeleteModal-BqzOwhPr.js → ConfirmDeleteModal-D_kAbT_D.js} +2 -2
  58. package/dashboard/dist/assets/{ConfirmDeleteModal-BqzOwhPr.js.map → ConfirmDeleteModal-D_kAbT_D.js.map} +1 -1
  59. package/dashboard/dist/assets/{CountdownTimer-BaexQMK6.js → CountdownTimer-CI_JOAvk.js} +2 -2
  60. package/dashboard/dist/assets/{CountdownTimer-BaexQMK6.js.map → CountdownTimer-CI_JOAvk.js.map} +1 -1
  61. package/dashboard/dist/assets/{CredentialsPage-D7abp0aS.js → CredentialsPage-C9OA1Q2J.js} +2 -2
  62. package/dashboard/dist/assets/{CredentialsPage-D7abp0aS.js.map → CredentialsPage-C9OA1Q2J.js.map} +1 -1
  63. package/dashboard/dist/assets/{CronLabel-DZiWmTwJ.js → CronLabel-sxLLBf2I.js} +2 -2
  64. package/dashboard/dist/assets/{CronLabel-DZiWmTwJ.js.map → CronLabel-sxLLBf2I.js.map} +1 -1
  65. package/dashboard/dist/assets/{DropZone-f1o-GLM8.js → DropZone-B1Tdfddc.js} +2 -2
  66. package/dashboard/dist/assets/{DropZone-f1o-GLM8.js.map → DropZone-B1Tdfddc.js.map} +1 -1
  67. package/dashboard/dist/assets/{ElapsedCell-BdGO_w4v.js → ElapsedCell-jH9m8Dgl.js} +2 -2
  68. package/dashboard/dist/assets/{ElapsedCell-BdGO_w4v.js.map → ElapsedCell-jH9m8Dgl.js.map} +1 -1
  69. package/dashboard/dist/assets/{EntityTimelinePanel-DIDcF5Yu.js → EntityTimelinePanel-Dl3Nr2kk.js} +2 -2
  70. package/dashboard/dist/assets/{EntityTimelinePanel-DIDcF5Yu.js.map → EntityTimelinePanel-Dl3Nr2kk.js.map} +1 -1
  71. package/dashboard/dist/assets/{EscalationListSchemaPage-C28rn9XC.js → EscalationListSchemaPage-DAK6It5J.js} +3 -3
  72. package/dashboard/dist/assets/{EscalationListSchemaPage-C28rn9XC.js.map → EscalationListSchemaPage-DAK6It5J.js.map} +1 -1
  73. package/dashboard/dist/assets/{EscalationListView-CkBnkpDJ.js → EscalationListView-CAHbdxKR.js} +2 -2
  74. package/dashboard/dist/assets/{EscalationListView-CkBnkpDJ.js.map → EscalationListView-CAHbdxKR.js.map} +1 -1
  75. package/dashboard/dist/assets/EscalationSchemaPage-DotfAMCL.js +9 -0
  76. package/dashboard/dist/assets/EscalationSchemaPage-DotfAMCL.js.map +1 -0
  77. package/dashboard/dist/assets/EscalationTimeline-DqmFydnU.js +2 -0
  78. package/dashboard/dist/assets/EscalationTimeline-DqmFydnU.js.map +1 -0
  79. package/dashboard/dist/assets/{EscalationTitleSelect-CzKfavri.js → EscalationTitleSelect-BpRquguO.js} +2 -2
  80. package/dashboard/dist/assets/{EscalationTitleSelect-CzKfavri.js.map → EscalationTitleSelect-BpRquguO.js.map} +1 -1
  81. package/dashboard/dist/assets/{EscalationsOverview-Tdu3Yx2c.js → EscalationsOverview-DtGOqnP4.js} +2 -2
  82. package/dashboard/dist/assets/{EscalationsOverview-Tdu3Yx2c.js.map → EscalationsOverview-DtGOqnP4.js.map} +1 -1
  83. package/dashboard/dist/assets/{EventTable-DiIxOJwO.js → EventTable-DSHqKyX2.js} +2 -2
  84. package/dashboard/dist/assets/{EventTable-DiIxOJwO.js.map → EventTable-DSHqKyX2.js.map} +1 -1
  85. package/dashboard/dist/assets/{FilterBar-CvMBCVIo.js → FilterBar-Dxd0wNSW.js} +2 -2
  86. package/dashboard/dist/assets/{FilterBar-CvMBCVIo.js.map → FilterBar-Dxd0wNSW.js.map} +1 -1
  87. package/dashboard/dist/assets/{GraphInvokePage-DO-yyhi6.js → GraphInvokePage-ChqqGkro.js} +2 -2
  88. package/dashboard/dist/assets/{GraphInvokePage-DO-yyhi6.js.map → GraphInvokePage-ChqqGkro.js.map} +1 -1
  89. package/dashboard/dist/assets/{HomePage-DSS3eHR2.js → HomePage-ByKesG8w.js} +2 -2
  90. package/dashboard/dist/assets/{HomePage-DSS3eHR2.js.map → HomePage-ByKesG8w.js.map} +1 -1
  91. package/dashboard/dist/assets/{ListToolbar-C3-Tqqub.js → ListToolbar-Ddz_S2av.js} +2 -2
  92. package/dashboard/dist/assets/{ListToolbar-C3-Tqqub.js.map → ListToolbar-Ddz_S2av.js.map} +1 -1
  93. package/dashboard/dist/assets/{McpOverview-DEJmsdVi.js → McpOverview-CVe13tEv.js} +2 -2
  94. package/dashboard/dist/assets/{McpOverview-DEJmsdVi.js.map → McpOverview-CVe13tEv.js.map} +1 -1
  95. package/dashboard/dist/assets/McpQueryDetailPage-BQYF2Mjq.js +5 -0
  96. package/dashboard/dist/assets/McpQueryDetailPage-BQYF2Mjq.js.map +1 -0
  97. package/dashboard/dist/assets/{McpQueryPage-BBcG_UuU.js → McpQueryPage-DZi5lm7s.js} +2 -2
  98. package/dashboard/dist/assets/{McpQueryPage-BBcG_UuU.js.map → McpQueryPage-DZi5lm7s.js.map} +1 -1
  99. package/dashboard/dist/assets/{McpRunDetailPage-C6xw0kBg.js → McpRunDetailPage-DreARTE1.js} +2 -2
  100. package/dashboard/dist/assets/{McpRunDetailPage-C6xw0kBg.js.map → McpRunDetailPage-DreARTE1.js.map} +1 -1
  101. package/dashboard/dist/assets/{McpRunsPage-CRQqrF4Q.js → McpRunsPage-DmO0YVhT.js} +2 -2
  102. package/dashboard/dist/assets/{McpRunsPage-CRQqrF4Q.js.map → McpRunsPage-DmO0YVhT.js.map} +1 -1
  103. package/dashboard/dist/assets/{NamespacePill-DADRJOUl.js → NamespacePill-DwM5pNA4.js} +2 -2
  104. package/dashboard/dist/assets/{NamespacePill-DADRJOUl.js.map → NamespacePill-DwM5pNA4.js.map} +1 -1
  105. package/dashboard/dist/assets/{OperationsPage-Dlfwzf-0.js → OperationsPage-DpjCO85T.js} +2 -2
  106. package/dashboard/dist/assets/{OperationsPage-Dlfwzf-0.js.map → OperationsPage-DpjCO85T.js.map} +1 -1
  107. package/dashboard/dist/assets/{OperatorDashboard-DoiDGZ9R.js → OperatorDashboard-Vv_MEBkv.js} +2 -2
  108. package/dashboard/dist/assets/{OperatorDashboard-DoiDGZ9R.js.map → OperatorDashboard-Vv_MEBkv.js.map} +1 -1
  109. package/dashboard/dist/assets/{PageHeader-Csq434-v.js → PageHeader-CMd3f4bz.js} +2 -2
  110. package/dashboard/dist/assets/{PageHeader-Csq434-v.js.map → PageHeader-CMd3f4bz.js.map} +1 -1
  111. package/dashboard/dist/assets/{PageHeaderWithStats-CSnk1p5A.js → PageHeaderWithStats-DHj8Mqox.js} +2 -2
  112. package/dashboard/dist/assets/{PageHeaderWithStats-CSnk1p5A.js.map → PageHeaderWithStats-DHj8Mqox.js.map} +1 -1
  113. package/dashboard/dist/assets/{PersonaDetailPage-BzbA4Prr.js → PersonaDetailPage-CW-2uBHY.js} +2 -2
  114. package/dashboard/dist/assets/{PersonaDetailPage-BzbA4Prr.js.map → PersonaDetailPage-CW-2uBHY.js.map} +1 -1
  115. package/dashboard/dist/assets/{PersonasPage-B36yn4hU.js → PersonasPage-CO6yYQdm.js} +2 -2
  116. package/dashboard/dist/assets/{PersonasPage-B36yn4hU.js.map → PersonasPage-CO6yYQdm.js.map} +1 -1
  117. package/dashboard/dist/assets/{PortalPage-BkD4YfDf.js → PortalPage-DcNqhBlg.js} +2 -2
  118. package/dashboard/dist/assets/{PortalPage-BkD4YfDf.js.map → PortalPage-DcNqhBlg.js.map} +1 -1
  119. package/dashboard/dist/assets/{ProcessDetailPage-BT0eiBWY.js → ProcessDetailPage-BuipGZcC.js} +2 -2
  120. package/dashboard/dist/assets/{ProcessDetailPage-BT0eiBWY.js.map → ProcessDetailPage-BuipGZcC.js.map} +1 -1
  121. package/dashboard/dist/assets/{ProcessesListPage-BEqeeNae.js → ProcessesListPage-D9DYntvl.js} +2 -2
  122. package/dashboard/dist/assets/{ProcessesListPage-BEqeeNae.js.map → ProcessesListPage-D9DYntvl.js.map} +1 -1
  123. package/dashboard/dist/assets/ResolverForm-BVG8X0sS.js +8 -0
  124. package/dashboard/dist/assets/ResolverForm-BVG8X0sS.js.map +1 -0
  125. package/dashboard/dist/assets/{RoleDetailPage-BFuLNJXa.js → RoleDetailPage-KCXDqoJz.js} +3 -3
  126. package/dashboard/dist/assets/{RoleDetailPage-BFuLNJXa.js.map → RoleDetailPage-KCXDqoJz.js.map} +1 -1
  127. package/dashboard/dist/assets/{RolePill-BafrASDX.js → RolePill-Di2CAHuD.js} +2 -2
  128. package/dashboard/dist/assets/{RolePill-BafrASDX.js.map → RolePill-Di2CAHuD.js.map} +1 -1
  129. package/dashboard/dist/assets/{RolesPage-80quJU5-.js → RolesPage-0QJOBSzF.js} +2 -2
  130. package/dashboard/dist/assets/{RolesPage-80quJU5-.js.map → RolesPage-0QJOBSzF.js.map} +1 -1
  131. package/dashboard/dist/assets/{RunAsSelector-BoePhWVD.js → RunAsSelector-Dh4lyyRo.js} +2 -2
  132. package/dashboard/dist/assets/{RunAsSelector-BoePhWVD.js.map → RunAsSelector-Dh4lyyRo.js.map} +1 -1
  133. package/dashboard/dist/assets/{ScanCodesPage-Cu1bKEix.js → ScanCodesPage-CUhCz-Yr.js} +2 -2
  134. package/dashboard/dist/assets/{ScanCodesPage-Cu1bKEix.js.map → ScanCodesPage-CUhCz-Yr.js.map} +1 -1
  135. package/dashboard/dist/assets/{ScanSchemeDetailPage-D9AbS6UY.js → ScanSchemeDetailPage-qzXKNqJK.js} +2 -2
  136. package/dashboard/dist/assets/{ScanSchemeDetailPage-D9AbS6UY.js.map → ScanSchemeDetailPage-qzXKNqJK.js.map} +1 -1
  137. package/dashboard/dist/assets/{ScanStationPage-gcZGefvT.js → ScanStationPage-D8e8cG3t.js} +2 -2
  138. package/dashboard/dist/assets/{ScanStationPage-gcZGefvT.js.map → ScanStationPage-D8e8cG3t.js.map} +1 -1
  139. package/dashboard/dist/assets/{ScopeBadge-b6MIBiYD.js → ScopeBadge-CSItPVOH.js} +2 -2
  140. package/dashboard/dist/assets/{ScopeBadge-b6MIBiYD.js.map → ScopeBadge-CSItPVOH.js.map} +1 -1
  141. package/dashboard/dist/assets/{StickyPagination-9ITrei_d.js → StickyPagination-BSUyf5ja.js} +2 -2
  142. package/dashboard/dist/assets/{StickyPagination-9ITrei_d.js.map → StickyPagination-BSUyf5ja.js.map} +1 -1
  143. package/dashboard/dist/assets/{StreamMessageDetail-BkYvEHFY.js → StreamMessageDetail--tp7l2Sd.js} +2 -2
  144. package/dashboard/dist/assets/{StreamMessageDetail-BkYvEHFY.js.map → StreamMessageDetail--tp7l2Sd.js.map} +1 -1
  145. package/dashboard/dist/assets/{SwimlaneTimeline-B1rotFix.js → SwimlaneTimeline-CxBZ2THh.js} +2 -2
  146. package/dashboard/dist/assets/{SwimlaneTimeline-B1rotFix.js.map → SwimlaneTimeline-CxBZ2THh.js.map} +1 -1
  147. package/dashboard/dist/assets/{TagInput-ZrIIrEUP.js → TagInput-CAgdLN_b.js} +2 -2
  148. package/dashboard/dist/assets/{TagInput-ZrIIrEUP.js.map → TagInput-CAgdLN_b.js.map} +1 -1
  149. package/dashboard/dist/assets/{TaskDetailPage-zhn_U_eC.js → TaskDetailPage-BJ1QrmPH.js} +2 -2
  150. package/dashboard/dist/assets/{TaskDetailPage-zhn_U_eC.js.map → TaskDetailPage-BJ1QrmPH.js.map} +1 -1
  151. package/dashboard/dist/assets/{TaskQueuePill-DkQ1uc6y.js → TaskQueuePill-h0oorVMe.js} +2 -2
  152. package/dashboard/dist/assets/{TaskQueuePill-DkQ1uc6y.js.map → TaskQueuePill-h0oorVMe.js.map} +1 -1
  153. package/dashboard/dist/assets/{TasksListPage-CNbNeagx.js → TasksListPage-5BydGWmt.js} +2 -2
  154. package/dashboard/dist/assets/{TasksListPage-CNbNeagx.js.map → TasksListPage-5BydGWmt.js.map} +1 -1
  155. package/dashboard/dist/assets/{TimeAgo-0YVMBwls.js → TimeAgo-CCnz84Y4.js} +2 -2
  156. package/dashboard/dist/assets/{TimeAgo-0YVMBwls.js.map → TimeAgo-CCnz84Y4.js.map} +1 -1
  157. package/dashboard/dist/assets/{TimestampCell-DB7r3np8.js → TimestampCell-D0ru7Lya.js} +2 -2
  158. package/dashboard/dist/assets/{TimestampCell-DB7r3np8.js.map → TimestampCell-D0ru7Lya.js.map} +1 -1
  159. package/dashboard/dist/assets/{ToolPill-Baxm02L6.js → ToolPill-CQCsVdzD.js} +2 -2
  160. package/dashboard/dist/assets/{ToolPill-Baxm02L6.js.map → ToolPill-CQCsVdzD.js.map} +1 -1
  161. package/dashboard/dist/assets/{ToolTestPanel-BLfA02wv.js → ToolTestPanel-3Kpofmen.js} +2 -2
  162. package/dashboard/dist/assets/{ToolTestPanel-BLfA02wv.js.map → ToolTestPanel-3Kpofmen.js.map} +1 -1
  163. package/dashboard/dist/assets/{TopicDetailPage-eAqPKShq.js → TopicDetailPage-BaBXD_AK.js} +4 -4
  164. package/dashboard/dist/assets/{TopicDetailPage-eAqPKShq.js.map → TopicDetailPage-BaBXD_AK.js.map} +1 -1
  165. package/dashboard/dist/assets/{TopicsPage-BNNWD-zl.js → TopicsPage-Cnm1AAjh.js} +2 -2
  166. package/dashboard/dist/assets/{TopicsPage-BNNWD-zl.js.map → TopicsPage-Cnm1AAjh.js.map} +1 -1
  167. package/dashboard/dist/assets/{UserName-Pw46tO_k.js → UserName-CXsdPiMZ.js} +2 -2
  168. package/dashboard/dist/assets/{UserName-Pw46tO_k.js.map → UserName-CXsdPiMZ.js.map} +1 -1
  169. package/dashboard/dist/assets/{WorkflowExecutionPage-DvA51lT3.js → WorkflowExecutionPage-zx3AUJFd.js} +2 -2
  170. package/dashboard/dist/assets/{WorkflowExecutionPage-DvA51lT3.js.map → WorkflowExecutionPage-zx3AUJFd.js.map} +1 -1
  171. package/dashboard/dist/assets/{WorkflowPill-ZepbO_ny.js → WorkflowPill-Dg7BDTyM.js} +2 -2
  172. package/dashboard/dist/assets/{WorkflowPill-ZepbO_ny.js.map → WorkflowPill-Dg7BDTyM.js.map} +1 -1
  173. package/dashboard/dist/assets/{WorkflowsDashboard-DFDTwnhn.js → WorkflowsDashboard-DfAGK1l7.js} +2 -2
  174. package/dashboard/dist/assets/{WorkflowsDashboard-DFDTwnhn.js.map → WorkflowsDashboard-DfAGK1l7.js.map} +1 -1
  175. package/dashboard/dist/assets/{WorkflowsOverview-5i2Tcy-p.js → WorkflowsOverview-QIYvoa13.js} +2 -2
  176. package/dashboard/dist/assets/{WorkflowsOverview-5i2Tcy-p.js.map → WorkflowsOverview-QIYvoa13.js.map} +1 -1
  177. package/dashboard/dist/assets/{YamlWorkflowDetailPage-p4VEYZS0.js → YamlWorkflowDetailPage-DGgO3hyB.js} +2 -2
  178. package/dashboard/dist/assets/{YamlWorkflowDetailPage-p4VEYZS0.js.map → YamlWorkflowDetailPage-DGgO3hyB.js.map} +1 -1
  179. package/dashboard/dist/assets/{YamlWorkflowsPage-Cq-hMVxl.js → YamlWorkflowsPage-CEsHm0B9.js} +2 -2
  180. package/dashboard/dist/assets/{YamlWorkflowsPage-Cq-hMVxl.js.map → YamlWorkflowsPage-CEsHm0B9.js.map} +1 -1
  181. package/dashboard/dist/assets/{agents-EyBPJMYa.js → agents-v_HH3Rji.js} +2 -2
  182. package/dashboard/dist/assets/{agents-EyBPJMYa.js.map → agents-v_HH3Rji.js.map} +1 -1
  183. package/dashboard/dist/assets/{bots-DX6jjqtF.js → bots-bwvWYrXz.js} +2 -2
  184. package/dashboard/dist/assets/{bots-DX6jjqtF.js.map → bots-bwvWYrXz.js.map} +1 -1
  185. package/dashboard/dist/assets/{capabilities-ZdLv9xBQ.js → capabilities-D4vaw_nQ.js} +2 -2
  186. package/dashboard/dist/assets/{capabilities-ZdLv9xBQ.js.map → capabilities-D4vaw_nQ.js.map} +1 -1
  187. package/dashboard/dist/assets/{controlplane-CpvZaJuw.js → controlplane-CiiZ6LJF.js} +2 -2
  188. package/dashboard/dist/assets/{controlplane-CpvZaJuw.js.map → controlplane-CiiZ6LJF.js.map} +1 -1
  189. package/dashboard/dist/assets/{escalation-columns-Mvsze5eV.js → escalation-columns-Dv-MB3eC.js} +2 -2
  190. package/dashboard/dist/assets/{escalation-columns-Mvsze5eV.js.map → escalation-columns-Dv-MB3eC.js.map} +1 -1
  191. package/dashboard/dist/assets/{index-oFKUFGQL.js → index-2tzsxFat.js} +2 -2
  192. package/dashboard/dist/assets/{index-oFKUFGQL.js.map → index-2tzsxFat.js.map} +1 -1
  193. package/dashboard/dist/assets/{index-DZhtP2Ok.js → index-BLB77tc8.js} +2 -2
  194. package/dashboard/dist/assets/{index-DZhtP2Ok.js.map → index-BLB77tc8.js.map} +1 -1
  195. package/dashboard/dist/assets/{index-PfSRKerc.js → index-C3WutFpT.js} +2 -2
  196. package/dashboard/dist/assets/{index-PfSRKerc.js.map → index-C3WutFpT.js.map} +1 -1
  197. package/dashboard/dist/assets/{index-DkrBFFSO.js → index-C4Lce2ET.js} +2 -2
  198. package/dashboard/dist/assets/{index-DkrBFFSO.js.map → index-C4Lce2ET.js.map} +1 -1
  199. package/dashboard/dist/assets/index-CT-FN6CW.js +3 -0
  200. package/dashboard/dist/assets/index-CT-FN6CW.js.map +1 -0
  201. package/dashboard/dist/assets/{index-Eo-l3Lqo.js → index-C_ISDOWJ.js} +2 -2
  202. package/dashboard/dist/assets/{index-Eo-l3Lqo.js.map → index-C_ISDOWJ.js.map} +1 -1
  203. package/dashboard/dist/assets/{index-Bhb89oHH.js → index-CcuvGdvf.js} +2 -2
  204. package/dashboard/dist/assets/{index-Bhb89oHH.js.map → index-CcuvGdvf.js.map} +1 -1
  205. package/dashboard/dist/assets/{index-BbCjGO3M.js → index-CjenRVX_.js} +2 -2
  206. package/dashboard/dist/assets/{index-BbCjGO3M.js.map → index-CjenRVX_.js.map} +1 -1
  207. package/dashboard/dist/assets/{index-DGmzBY9D.js → index-CzjUgFt_.js} +2 -2
  208. package/dashboard/dist/assets/{index-DGmzBY9D.js.map → index-CzjUgFt_.js.map} +1 -1
  209. package/dashboard/dist/assets/{index-D-Xs4rAW.js → index-D2VKBMng.js} +2 -2
  210. package/dashboard/dist/assets/{index-D-Xs4rAW.js.map → index-D2VKBMng.js.map} +1 -1
  211. package/dashboard/dist/assets/{index-z5Hpeidu.js → index-D6pBLZFu.js} +2 -2
  212. package/dashboard/dist/assets/{index-z5Hpeidu.js.map → index-D6pBLZFu.js.map} +1 -1
  213. package/dashboard/dist/assets/{index-Cn8uJsd7.js → index-IJmtbuLh.js} +2 -2
  214. package/dashboard/dist/assets/{index-Cn8uJsd7.js.map → index-IJmtbuLh.js.map} +1 -1
  215. package/dashboard/dist/assets/{index-CgUcYveM.js → index-N71QQ3J5.js} +5 -5
  216. package/dashboard/dist/assets/index-N71QQ3J5.js.map +1 -0
  217. package/dashboard/dist/assets/{knowledge-CgloEkaf.js → knowledge-D1YP2NzS.js} +2 -2
  218. package/dashboard/dist/assets/{knowledge-CgloEkaf.js.map → knowledge-D1YP2NzS.js.map} +1 -1
  219. package/dashboard/dist/assets/{mcp-Bix7QYO7.js → mcp-Bb5psC61.js} +2 -2
  220. package/dashboard/dist/assets/{mcp-Bix7QYO7.js.map → mcp-Bb5psC61.js.map} +1 -1
  221. package/dashboard/dist/assets/{mcp-query-o-sGX2ST.js → mcp-query-D5jUdZwN.js} +2 -2
  222. package/dashboard/dist/assets/{mcp-query-o-sGX2ST.js.map → mcp-query-D5jUdZwN.js.map} +1 -1
  223. package/dashboard/dist/assets/{personas-30azkJ_s.js → personas-CDndbkp4.js} +2 -2
  224. package/dashboard/dist/assets/{personas-30azkJ_s.js.map → personas-CDndbkp4.js.map} +1 -1
  225. package/dashboard/dist/assets/{pipelines-Bfk2GFK7.js → pipelines-Dq3kNhKu.js} +2 -2
  226. package/dashboard/dist/assets/{pipelines-Bfk2GFK7.js.map → pipelines-Dq3kNhKu.js.map} +1 -1
  227. package/dashboard/dist/assets/{tasks-CpdopewW.js → tasks-BlpDsWCy.js} +2 -2
  228. package/dashboard/dist/assets/{tasks-CpdopewW.js.map → tasks-BlpDsWCy.js.map} +1 -1
  229. package/dashboard/dist/assets/{topics--bvCV9Yp.js → topics-C0YaR9fu.js} +2 -2
  230. package/dashboard/dist/assets/{topics--bvCV9Yp.js.map → topics-C0YaR9fu.js.map} +1 -1
  231. package/dashboard/dist/assets/{useDebouncedValue-Da0lPmj3.js → useDebouncedValue-B-KC5ba3.js} +2 -2
  232. package/dashboard/dist/assets/{useDebouncedValue-Da0lPmj3.js.map → useDebouncedValue-B-KC5ba3.js.map} +1 -1
  233. package/dashboard/dist/assets/{useNamespace-DD_Esl6n.js → useNamespace-Dkr5g2Ac.js} +2 -2
  234. package/dashboard/dist/assets/{useNamespace-DD_Esl6n.js.map → useNamespace-Dkr5g2Ac.js.map} +1 -1
  235. package/dashboard/dist/assets/{useYamlActivityEvents-AeAhZJJk.js → useYamlActivityEvents-BANBOshA.js} +2 -2
  236. package/dashboard/dist/assets/{useYamlActivityEvents-AeAhZJJk.js.map → useYamlActivityEvents-BANBOshA.js.map} +1 -1
  237. package/dashboard/dist/assets/{vendor-icons-B7OcUM6b.js → vendor-icons-CeVtUKyP.js} +2 -2
  238. package/dashboard/dist/assets/{vendor-icons-B7OcUM6b.js.map → vendor-icons-CeVtUKyP.js.map} +1 -1
  239. package/dashboard/dist/assets/{yaml-workflows-BHAOOGvn.js → yaml-workflows-BLYoJfmB.js} +2 -2
  240. package/dashboard/dist/assets/{yaml-workflows-BHAOOGvn.js.map → yaml-workflows-BLYoJfmB.js.map} +1 -1
  241. package/dashboard/dist/index.html +2 -2
  242. package/docs/accumulator.md +37 -1
  243. package/docs/api/mcp/admin.md +3 -2
  244. package/docs/api/sdk/escalations.md +6 -0
  245. package/docs/api/sdk/exports.md +1 -1
  246. package/docs/api/sdk/workflows.md +23 -4
  247. package/docs/cli.md +1 -1
  248. package/docs/dashboard.md +1 -1
  249. package/docs/faceted-routing.md +2 -0
  250. package/docs/hitl/x-lt-widget.md +5 -0
  251. package/docs/scan-codes.md +40 -7
  252. package/package.json +1 -1
  253. package/dashboard/dist/assets/AvailableEscalationsPage-CpbC8oTN.js +0 -2
  254. package/dashboard/dist/assets/AvailableEscalationsPage-CpbC8oTN.js.map +0 -1
  255. package/dashboard/dist/assets/EscalationSchemaPage-W5r0A1kj.js +0 -9
  256. package/dashboard/dist/assets/EscalationSchemaPage-W5r0A1kj.js.map +0 -1
  257. package/dashboard/dist/assets/EscalationTimeline-DKyTz6sM.js +0 -2
  258. package/dashboard/dist/assets/EscalationTimeline-DKyTz6sM.js.map +0 -1
  259. package/dashboard/dist/assets/McpQueryDetailPage-DYJr16l7.js +0 -5
  260. package/dashboard/dist/assets/McpQueryDetailPage-DYJr16l7.js.map +0 -1
  261. package/dashboard/dist/assets/ResolverForm-BwgjIX97.js +0 -7
  262. package/dashboard/dist/assets/ResolverForm-BwgjIX97.js.map +0 -1
  263. package/dashboard/dist/assets/index-B_GT23TE.js +0 -3
  264. package/dashboard/dist/assets/index-B_GT23TE.js.map +0 -1
  265. package/dashboard/dist/assets/index-CgUcYveM.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { publishEscalationEvent } from '../../lib/events/publish';
2
- import type { LTEscalationRecord } from '../../types';
2
+ import type { LTEscalationRecord, ScanAvailability } from '../../types';
3
3
  import type { CreateEscalationInput, ClaimResult } from './types';
4
4
  /**
5
5
  * Every escalation write publishes an event AND drops this container's cached
@@ -256,4 +256,4 @@ export interface ResolveByMetadataResult {
256
256
  * business logic over the shared table, so it runs as one atomic statement on
257
257
  * `hmsh_escalations` rather than through the generic SDK resolve.
258
258
  */
259
- export declare function resolveByMetadataAtomic(key: string, value: string, userId: string, resolverPayload: Record<string, any>, metadata?: Record<string, any>, writeAllRoles?: string[] | null, writeSelfRoles?: string[] | null, enforcingRoles?: string[] | null, assertId?: string | null, extraFacets?: Record<string, any> | null): Promise<ResolveByMetadataResult>;
259
+ export declare function resolveByMetadataAtomic(key: string, value: string, userId: string, resolverPayload: Record<string, any>, metadata?: Record<string, any>, writeAllRoles?: string[] | null, writeSelfRoles?: string[] | null, enforcingRoles?: string[] | null, assertId?: string | null, extraFacets?: Record<string, any> | null, availability?: ScanAvailability | null): Promise<ResolveByMetadataResult>;
@@ -28,6 +28,7 @@ exports.resolveByMetadataAtomic = resolveByMetadataAtomic;
28
28
  const db_1 = require("../../lib/db");
29
29
  const publish_1 = require("../../lib/events/publish");
30
30
  const escalation_wire_1 = require("../../lib/events/escalation-wire");
31
+ const scan_code_1 = require("../../types/scan-code");
31
32
  const escalation_1 = require("../../types/escalation");
32
33
  const uuid_1 = require("../../lib/uuid");
33
34
  const client_1 = require("./client");
@@ -600,7 +601,7 @@ async function claimByMetadata(key, value, userId, durationMinutes = 30, metadat
600
601
  * business logic over the shared table, so it runs as one atomic statement on
601
602
  * `hmsh_escalations` rather than through the generic SDK resolve.
602
603
  */
603
- async function resolveByMetadataAtomic(key, value, userId, resolverPayload, metadata, writeAllRoles, writeSelfRoles, enforcingRoles, assertId, extraFacets) {
604
+ async function resolveByMetadataAtomic(key, value, userId, resolverPayload, metadata, writeAllRoles, writeSelfRoles, enforcingRoles, assertId, extraFacets, availability) {
604
605
  await (0, client_1.ensureEscalationCompatView)();
605
606
  const pool = (0, db_1.getPool)();
606
607
  // The statement's filter is jsonb containment — extra facet guards simply
@@ -613,7 +614,8 @@ async function resolveByMetadataAtomic(key, value, userId, resolverPayload, meta
613
614
  const allRoles = writeAllRoles ?? null;
614
615
  const selfRoles = writeSelfRoles ?? null;
615
616
  const { rows } = await pool.query(sql_1.RESOLVE_BY_METADATA_ATOMIC, [filter, userId, payloadJson, metaPatch, allRoles, selfRoles,
616
- enforcingRoles?.length ? enforcingRoles : null, assertId ?? null]);
617
+ enforcingRoles?.length ? enforcingRoles : null, assertId ?? null,
618
+ availability && availability !== scan_code_1.SCAN_AVAILABILITY.ANY ? availability : null]);
617
619
  if (rows.length === 0)
618
620
  return { outcome: 'not_found' };
619
621
  const row = rows[0];
@@ -47,6 +47,14 @@ function buildFacetWhere(q, params, opts = {}) {
47
47
  params.push(q.roles);
48
48
  clauses.push(`role = ANY($${params.length}::text[])`);
49
49
  }
50
+ if (q.types && q.types.length) {
51
+ params.push(q.types);
52
+ clauses.push(`type = ANY($${params.length}::text[])`);
53
+ }
54
+ if (q.subtypes && q.subtypes.length) {
55
+ params.push(q.subtypes);
56
+ clauses.push(`subtype = ANY($${params.length}::text[])`);
57
+ }
50
58
  if (q.status) {
51
59
  params.push(q.status);
52
60
  clauses.push(`status = $${params.length}`);
@@ -59,7 +59,9 @@ export declare function searchEscalationsQuery(orderBy: string): string;
59
59
  * $1 = metadata filter (jsonb), $2 = userId, $3 = resolver_payload (jsonb),
60
60
  * $4 = metadata patch (jsonb, nullable), $5 = write_all roles (text[], null = global /
61
61
  * no filter), $6 = write_self roles (text[], nullable), $7 = enforcing roles
62
- * (text[], null = none), $8 = assert id (uuid, nullable).
62
+ * (text[], null = none), $8 = assert id (uuid, nullable), $9 = claim state
63
+ * ('mine' | 'available' | 'claimed', null = any). 'mine' is a live claim held by
64
+ * $2 and picks the most recently claimed row first.
63
65
  *
64
66
  * Write-scope is folded into the same FOR UPDATE statement (no TOCTOU): the row
65
67
  * is resolvable if the caller has global access ($5 NULL), or the row's role is in
@@ -75,7 +77,7 @@ export declare function searchEscalationsQuery(orderBy: string): string;
75
77
  * resolution surfaces as zero rows → the caller's conflict handling). This is
76
78
  * the same pick-then-guarded-finish shape the signal outcomes already use.
77
79
  */
78
- export declare const RESOLVE_BY_METADATA_ATOMIC = "WITH target AS MATERIALIZED (\n SELECT *\n FROM public.hmsh_escalations\n WHERE metadata @> $1::jsonb\n AND status = 'pending'\n AND (\n $5::text[] IS NULL\n OR role = ANY($5)\n OR (role = ANY($6::text[]) AND assigned_to = $2)\n )\n AND ($8::uuid IS NULL OR id = $8::uuid)\n ORDER BY priority ASC, created_at ASC\n LIMIT 1\n FOR UPDATE\n),\nwritten AS (\n UPDATE public.hmsh_escalations e\n SET assigned_to = COALESCE(e.assigned_to, $2),\n claimed_at = COALESCE(e.claimed_at, NOW()),\n assigned_until = CASE\n WHEN e.assigned_to IS NOT NULL AND e.assigned_until > NOW() THEN e.assigned_until\n ELSE NOW() + INTERVAL '5 minutes' END,\n claim_expires_at = CASE\n WHEN e.assigned_to IS NOT NULL AND e.assigned_until > NOW() THEN e.claim_expires_at\n ELSE NOW() + INTERVAL '5 minutes' END,\n metadata = CASE WHEN $4::jsonb IS NOT NULL\n THEN COALESCE(e.metadata, '{}'::jsonb) || $4::jsonb\n ELSE e.metadata END,\n status = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN 'resolved' ELSE e.status END,\n resolved_at = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN NOW() ELSE e.resolved_at END,\n resolver_payload = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN $3 ELSE e.resolver_payload END,\n updated_at = NOW()\n FROM target\n WHERE e.id = target.id\n AND target.signal_key IS NULL\n AND ($7::text[] IS NULL OR NOT (target.role = ANY($7)))\n RETURNING e.*\n)\nSELECT\n written.*,\n target.id AS target_id,\n target.role AS target_role,\n target.metadata AS target_metadata,\n target.envelope AS target_envelope,\n target.escalation_payload AS target_escalation_payload,\n target.metadata->>'signal_id' AS signal_id,\n target.signal_key AS signal_key,\n target.workflow_id AS target_workflow_id,\n target.workflow_type AS target_workflow_type,\n target.task_queue AS target_task_queue,\n (target.assigned_to IS NOT NULL\n AND target.assigned_until IS NOT NULL\n AND target.assigned_until > NOW()) AS signal_already_claimed,\n CASE\n WHEN written.status = 'resolved' THEN 'resolved'\n WHEN $7::text[] IS NOT NULL AND target.role = ANY($7) THEN 'validation_required'\n ELSE 'signal_required'\n END AS outcome\nFROM target\nLEFT JOIN written ON written.id = target.id";
80
+ export declare const RESOLVE_BY_METADATA_ATOMIC = "WITH target AS MATERIALIZED (\n SELECT *\n FROM public.hmsh_escalations\n WHERE metadata @> $1::jsonb\n AND status = 'pending'\n AND (\n $5::text[] IS NULL\n OR role = ANY($5)\n OR (role = ANY($6::text[]) AND assigned_to = $2)\n )\n AND ($8::uuid IS NULL OR id = $8::uuid)\n AND (\n $9::text IS NULL\n OR ($9 = 'mine' AND assigned_to = $2 AND assigned_until > NOW())\n OR ($9 = 'available' AND (assigned_to IS NULL OR assigned_until IS NULL OR assigned_until <= NOW()))\n OR ($9 = 'claimed' AND assigned_to IS NOT NULL AND assigned_until > NOW())\n )\n ORDER BY CASE WHEN $9 = 'mine' THEN claimed_at END DESC NULLS LAST, priority ASC, created_at ASC\n LIMIT 1\n FOR UPDATE\n),\nwritten AS (\n UPDATE public.hmsh_escalations e\n SET assigned_to = COALESCE(e.assigned_to, $2),\n claimed_at = COALESCE(e.claimed_at, NOW()),\n assigned_until = CASE\n WHEN e.assigned_to IS NOT NULL AND e.assigned_until > NOW() THEN e.assigned_until\n ELSE NOW() + INTERVAL '5 minutes' END,\n claim_expires_at = CASE\n WHEN e.assigned_to IS NOT NULL AND e.assigned_until > NOW() THEN e.claim_expires_at\n ELSE NOW() + INTERVAL '5 minutes' END,\n metadata = CASE WHEN $4::jsonb IS NOT NULL\n THEN COALESCE(e.metadata, '{}'::jsonb) || $4::jsonb\n ELSE e.metadata END,\n status = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN 'resolved' ELSE e.status END,\n resolved_at = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN NOW() ELSE e.resolved_at END,\n resolver_payload = CASE WHEN (target.metadata->>'signal_id') IS NULL\n THEN $3 ELSE e.resolver_payload END,\n updated_at = NOW()\n FROM target\n WHERE e.id = target.id\n AND target.signal_key IS NULL\n AND ($7::text[] IS NULL OR NOT (target.role = ANY($7)))\n RETURNING e.*\n)\nSELECT\n written.*,\n target.id AS target_id,\n target.role AS target_role,\n target.metadata AS target_metadata,\n target.envelope AS target_envelope,\n target.escalation_payload AS target_escalation_payload,\n target.metadata->>'signal_id' AS signal_id,\n target.signal_key AS signal_key,\n target.workflow_id AS target_workflow_id,\n target.workflow_type AS target_workflow_type,\n target.task_queue AS target_task_queue,\n (target.assigned_to IS NOT NULL\n AND target.assigned_until IS NOT NULL\n AND target.assigned_until > NOW()) AS signal_already_claimed,\n CASE\n WHEN written.status = 'resolved' THEN 'resolved'\n WHEN $7::text[] IS NOT NULL AND target.role = ANY($7) THEN 'validation_required'\n ELSE 'signal_required'\n END AS outcome\nFROM target\nLEFT JOIN written ON written.id = target.id";
79
81
  /**
80
82
  * Live counts — pending, active claims, and priority (past-threshold) per role.
81
83
  *
@@ -167,7 +167,9 @@ function searchEscalationsQuery(orderBy) {
167
167
  * $1 = metadata filter (jsonb), $2 = userId, $3 = resolver_payload (jsonb),
168
168
  * $4 = metadata patch (jsonb, nullable), $5 = write_all roles (text[], null = global /
169
169
  * no filter), $6 = write_self roles (text[], nullable), $7 = enforcing roles
170
- * (text[], null = none), $8 = assert id (uuid, nullable).
170
+ * (text[], null = none), $8 = assert id (uuid, nullable), $9 = claim state
171
+ * ('mine' | 'available' | 'claimed', null = any). 'mine' is a live claim held by
172
+ * $2 and picks the most recently claimed row first.
171
173
  *
172
174
  * Write-scope is folded into the same FOR UPDATE statement (no TOCTOU): the row
173
175
  * is resolvable if the caller has global access ($5 NULL), or the row's role is in
@@ -195,7 +197,13 @@ WITH target AS MATERIALIZED (
195
197
  OR (role = ANY($6::text[]) AND assigned_to = $2)
196
198
  )
197
199
  AND ($8::uuid IS NULL OR id = $8::uuid)
198
- ORDER BY priority ASC, created_at ASC
200
+ AND (
201
+ $9::text IS NULL
202
+ OR ($9 = 'mine' AND assigned_to = $2 AND assigned_until > NOW())
203
+ OR ($9 = 'available' AND (assigned_to IS NULL OR assigned_until IS NULL OR assigned_until <= NOW()))
204
+ OR ($9 = 'claimed' AND assigned_to IS NOT NULL AND assigned_until > NOW())
205
+ )
206
+ ORDER BY CASE WHEN $9 = 'mine' THEN claimed_at END DESC NULLS LAST, priority ASC, created_at ASC
199
207
  LIMIT 1
200
208
  FOR UPDATE
201
209
  ),
@@ -1,5 +1,6 @@
1
1
  import type { ExecutionExportOptions, WorkflowExecution } from '@hotmeshio/hotmesh/build/types/exporter';
2
2
  import type { LTExportOptions, LTWorkflowExport } from '../../types';
3
+ import { type WorkflowState } from '../workflow-state';
3
4
  import type { JobListParams, JobListResult } from './types';
4
5
  /**
5
6
  * Export the full workflow state for a given workflow (raw HotMesh format).
@@ -9,12 +10,14 @@ import type { JobListParams, JobListResult } from './types';
9
10
  */
10
11
  export declare function exportWorkflow(workflowId: string, taskQueue: string, workflowName: string, options?: LTExportOptions): Promise<LTWorkflowExport>;
11
12
  /**
12
- * Return only the status semaphore for a workflow.
13
- * 0 = complete, negative = interrupted.
13
+ * Return the status semaphore for a workflow (above 0 running, 0 closed,
14
+ * below 0 terminated) and the state it implies.
14
15
  */
15
16
  export declare function getWorkflowStatus(workflowId: string, taskQueue: string, workflowName: string): Promise<{
16
17
  workflow_id: string;
17
18
  status: number;
19
+ state: WorkflowState;
20
+ terminated: boolean;
18
21
  }>;
19
22
  /**
20
23
  * Export workflow state as a structured execution event history.
@@ -27,7 +30,9 @@ export declare function exportWorkflowExecution(workflowId: string, taskQueue: s
27
30
  /** The input/output envelope pair plus the derived run status. */
28
31
  export interface WorkflowEnvelopes {
29
32
  workflow_id: string;
30
- status: 'running' | 'completed' | 'failed';
33
+ status: WorkflowState;
34
+ /** Present and true when an interrupt ended the run. */
35
+ terminated?: boolean;
31
36
  /** The workflow's input — the single LTEnvelope for one-arg workflows, else the args array. */
32
37
  input: unknown;
33
38
  /** The workflow's return envelope, or null while it is still running or when it failed. */
@@ -10,6 +10,7 @@ const db_1 = require("../../lib/db");
10
10
  const hotmesh_utils_1 = require("../hotmesh-utils");
11
11
  const client_1 = require("./client");
12
12
  const post_process_1 = require("./post-process");
13
+ const workflow_state_1 = require("../workflow-state");
13
14
  /** Error thrown when a workflow job is not found (expired or never existed). */
14
15
  class WorkflowNotFoundError extends Error {
15
16
  constructor(workflowId) {
@@ -44,14 +45,14 @@ async function exportWorkflow(workflowId, taskQueue, workflowName, options) {
44
45
  }
45
46
  }
46
47
  /**
47
- * Return only the status semaphore for a workflow.
48
- * 0 = complete, negative = interrupted.
48
+ * Return the status semaphore for a workflow (above 0 running, 0 closed,
49
+ * below 0 terminated) and the state it implies.
49
50
  */
50
51
  async function getWorkflowStatus(workflowId, taskQueue, workflowName) {
51
52
  try {
52
53
  const handle = await (0, client_1.getHandle)(taskQueue, workflowName, workflowId);
53
54
  const status = await handle.status();
54
- return { workflow_id: workflowId, status };
55
+ return { workflow_id: workflowId, status, state: (0, workflow_state_1.workflowStateFromStatus)(status), terminated: (0, workflow_state_1.isTerminated)(status) };
55
56
  }
56
57
  catch {
57
58
  throw new WorkflowNotFoundError(workflowId);
@@ -97,8 +98,8 @@ async function getWorkflowEnvelopes(workflowId, taskQueue, workflowName) {
97
98
  catch {
98
99
  throw new WorkflowNotFoundError(workflowId);
99
100
  }
100
- const [statusCode, args] = await Promise.all([
101
- handle.status(),
101
+ const [reading, args] = await Promise.all([
102
+ (0, workflow_state_1.readWorkflowState)(handle),
102
103
  handle.input().catch(() => undefined),
103
104
  ]).catch(() => {
104
105
  throw new WorkflowNotFoundError(workflowId);
@@ -106,28 +107,21 @@ async function getWorkflowEnvelopes(workflowId, taskQueue, workflowName) {
106
107
  // Long-tail workflows take a single LTEnvelope argument — unwrap it;
107
108
  // multi-arg workflows keep the args array verbatim.
108
109
  const input = Array.isArray(args) && args.length === 1 ? args[0] : args ?? null;
109
- if (statusCode > 0) {
110
- return { workflow_id: workflowId, status: 'running', input, output: null };
110
+ if (reading.state === workflow_state_1.WORKFLOW_STATES.RUNNING) {
111
+ return { workflow_id: workflowId, status: reading.state, input, output: null };
111
112
  }
112
- try {
113
- const output = await handle.output();
114
- return {
115
- workflow_id: workflowId,
116
- status: statusCode === 0 ? 'completed' : 'failed',
117
- input,
118
- output: output ?? null,
119
- };
120
- }
121
- catch (err) {
122
- // output() throws the workflow's own error for failed runs — that IS the outcome.
113
+ if (reading.state === workflow_state_1.WORKFLOW_STATES.FAILED) {
123
114
  return {
124
115
  workflow_id: workflowId,
125
- status: 'failed',
116
+ status: reading.state,
117
+ ...(reading.terminated ? { terminated: true } : {}),
126
118
  input,
127
119
  output: null,
128
- error: err?.message ?? String(err),
120
+ ...(reading.error ? { error: reading.error } : {}),
129
121
  };
130
122
  }
123
+ const output = await handle.output().catch(() => null);
124
+ return { workflow_id: workflowId, status: reading.state, input, output: output ?? null };
131
125
  }
132
126
  /**
133
127
  * Return the current job state of a workflow.
@@ -225,7 +219,7 @@ async function listJobs(app_id, params) {
225
219
  const jobs = dataResult.rows.map((row) => ({
226
220
  workflow_id: row.key.replace(keyPrefix, ''),
227
221
  entity: row.entity,
228
- status: (row.status > 0 ? 'running' : row.status === 0 ? 'completed' : 'failed'),
222
+ status: (0, workflow_state_1.workflowStateFromStatus)(row.status),
229
223
  is_live: row.is_live,
230
224
  created_at: row.created_at,
231
225
  updated_at: row.updated_at,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildEvents = buildEvents;
4
4
  const hotmesh_utils_1 = require("../hotmesh-utils");
5
+ const workflow_state_1 = require("../workflow-state");
5
6
  /**
6
7
  * Transform raw activities + job context into a chronological event list
7
8
  * with back-references linking completions to their scheduled events.
@@ -84,7 +85,7 @@ function completionEvent(id, act, input, timelineKey, index) {
84
85
  };
85
86
  }
86
87
  function appendWorkflowTerminalEvent(events, nextId, ctx) {
87
- const status = ctx.job.status > 0 ? 'running' : ctx.job.status === 0 ? 'completed' : 'failed';
88
+ const status = (0, workflow_state_1.workflowStateFromStatus)(ctx.job.status);
88
89
  if (status === 'completed') {
89
90
  events.push({
90
91
  event_id: nextId,
@@ -6,6 +6,7 @@ const hotmesh_utils_1 = require("../hotmesh-utils");
6
6
  const enrichment_1 = require("./enrichment");
7
7
  const events_1 = require("./events");
8
8
  const sql_1 = require("./sql");
9
+ const workflow_state_1 = require("../workflow-state");
9
10
  /**
10
11
  * Build a complete execution export for a YAML engine workflow job.
11
12
  *
@@ -88,7 +89,7 @@ function assembleExport(ctx, events, activities) {
88
89
  workflow_type: ctx.workflowTopic,
89
90
  workflow_name: ctx.workflowName,
90
91
  task_queue: ctx.appId,
91
- status: ctx.job.status > 0 ? 'running' : ctx.job.status === 0 ? 'completed' : 'failed',
92
+ status: (0, workflow_state_1.workflowStateFromStatus)(ctx.job.status),
92
93
  start_time: startTime,
93
94
  close_time: closeTime,
94
95
  duration_ms: durationMs,
@@ -5,6 +5,7 @@ exports.listJobs = listJobs;
5
5
  const db_1 = require("../../lib/db");
6
6
  const hotmesh_utils_1 = require("../hotmesh-utils");
7
7
  const sql_1 = require("./sql");
8
+ const workflow_state_1 = require("../workflow-state");
8
9
  const SORTABLE_COLUMNS = new Set(['created_at', 'updated_at', 'entity', 'status']);
9
10
  function buildOrderBy(sortBy, order) {
10
11
  if (!sortBy || !SORTABLE_COLUMNS.has(sortBy)) {
@@ -75,7 +76,7 @@ async function listJobs(params) {
75
76
  const jobs = dataResult.rows.map((row) => ({
76
77
  workflow_id: row.key.startsWith(keyPrefix) ? row.key.slice(keyPrefix.length) : row.key,
77
78
  entity: row.entity,
78
- status: row.status > 0 ? 'running' : row.status === 0 ? 'completed' : 'failed',
79
+ status: (0, workflow_state_1.workflowStateFromStatus)(row.status),
79
80
  is_live: row.is_live,
80
81
  created_at: row.created_at,
81
82
  updated_at: row.updated_at,
@@ -157,6 +157,25 @@ function assertValidSteps(steps) {
157
157
  if (options?.containerRoles !== undefined && !Array.isArray(options.containerRoles)) {
158
158
  throw new Error(`${at}: params.accumulate.containerRoles must be an array`);
159
159
  }
160
+ const container = options?.container;
161
+ if (container !== undefined) {
162
+ if (!container || typeof container !== 'object' || Array.isArray(container)) {
163
+ throw new Error(`${at}: params.accumulate.container must be an object`);
164
+ }
165
+ for (const list of ['roles', 'types', 'subtypes']) {
166
+ const value = container[list];
167
+ if (value !== undefined && (!Array.isArray(value) || !value.every((v) => typeof v === 'string' && v))) {
168
+ throw new Error(`${at}: params.accumulate.container.${list} must be an array of strings`);
169
+ }
170
+ }
171
+ if (container.facets !== undefined
172
+ && (!container.facets || typeof container.facets !== 'object' || Array.isArray(container.facets))) {
173
+ throw new Error(`${at}: params.accumulate.container.facets must be an object`);
174
+ }
175
+ if (!options?.containerFacet) {
176
+ throw new Error(`${at}: params.accumulate.container requires params.accumulate.containerFacet`);
177
+ }
178
+ }
160
179
  if (!options?.containerFacet && !step.params?.itemKey) {
161
180
  throw new Error(`${at}: accumulate requires params.itemKey or params.accumulate.containerFacet`);
162
181
  }
@@ -0,0 +1,21 @@
1
+ import { WORKFLOW_STATES, isTerminated, workflowStateFromStatus, type WorkflowState } from '../shared/workflow-state';
2
+ export { WORKFLOW_STATES, isTerminated, workflowStateFromStatus, type WorkflowState };
3
+ export interface WorkflowStateReading {
4
+ /** HotMesh job status: above 0 running, 0 closed, below 0 terminated. */
5
+ status: number;
6
+ state: WorkflowState;
7
+ terminated: boolean;
8
+ /** The failure message, when the run closed with an error. */
9
+ error?: string;
10
+ }
11
+ interface StatusHandle {
12
+ status(): Promise<number>;
13
+ state(metadata?: boolean): Promise<Record<string, any> | undefined>;
14
+ }
15
+ /**
16
+ * A workflow's state from its handle. A running run needs only the status.
17
+ * A closed run can still have failed, so its outcome is read for `$error`.
18
+ * A terminated run keeps `$error` when HotMesh still holds it; a failed read
19
+ * of a terminated run carries no reason and is dropped.
20
+ */
21
+ export declare function readWorkflowState(handle: StatusHandle): Promise<WorkflowStateReading>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workflowStateFromStatus = exports.isTerminated = exports.WORKFLOW_STATES = void 0;
4
+ exports.readWorkflowState = readWorkflowState;
5
+ const workflow_state_1 = require("../shared/workflow-state");
6
+ Object.defineProperty(exports, "WORKFLOW_STATES", { enumerable: true, get: function () { return workflow_state_1.WORKFLOW_STATES; } });
7
+ Object.defineProperty(exports, "isTerminated", { enumerable: true, get: function () { return workflow_state_1.isTerminated; } });
8
+ Object.defineProperty(exports, "workflowStateFromStatus", { enumerable: true, get: function () { return workflow_state_1.workflowStateFromStatus; } });
9
+ function errorMessage(error) {
10
+ if (error && typeof error === 'object' && 'message' in error)
11
+ return String(error.message);
12
+ return typeof error === 'string' ? error : JSON.stringify(error);
13
+ }
14
+ /**
15
+ * A workflow's state from its handle. A running run needs only the status.
16
+ * A closed run can still have failed, so its outcome is read for `$error`.
17
+ * A terminated run keeps `$error` when HotMesh still holds it; a failed read
18
+ * of a terminated run carries no reason and is dropped.
19
+ */
20
+ async function readWorkflowState(handle) {
21
+ const status = await handle.status();
22
+ if (status > 0)
23
+ return { status, state: workflow_state_1.WORKFLOW_STATES.RUNNING, terminated: false };
24
+ const terminated = (0, workflow_state_1.isTerminated)(status);
25
+ let failure;
26
+ try {
27
+ failure = (await handle.state())?.$error;
28
+ }
29
+ catch (err) {
30
+ if (!terminated)
31
+ failure = err;
32
+ }
33
+ const error = failure === undefined || failure === null ? undefined : errorMessage(failure);
34
+ if (terminated)
35
+ return { status, state: workflow_state_1.WORKFLOW_STATES.FAILED, terminated, ...(error ? { error } : {}) };
36
+ if (error)
37
+ return { status, state: workflow_state_1.WORKFLOW_STATES.FAILED, terminated, error };
38
+ return { status, state: workflow_state_1.WORKFLOW_STATES.COMPLETED, terminated };
39
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A workflow's lifecycle state, read from HotMesh's job status: above 0 the
3
+ * job is running, 0 it has closed, below 0 it was terminated (an interrupt
4
+ * lowers the status far below 0). A terminated run is failed. A run that
5
+ * closed at 0 can still have failed; `readWorkflowState` on the server tells
6
+ * the two apart from the job's outcome.
7
+ */
8
+ export declare const WORKFLOW_STATES: {
9
+ readonly RUNNING: "running";
10
+ readonly COMPLETED: "completed";
11
+ readonly FAILED: "failed";
12
+ };
13
+ export type WorkflowState = (typeof WORKFLOW_STATES)[keyof typeof WORKFLOW_STATES];
14
+ /** The state a job status implies, before any outcome is read. */
15
+ export declare function workflowStateFromStatus(status: number): WorkflowState;
16
+ /** Whether a job status means the run was terminated. */
17
+ export declare function isTerminated(status: number): boolean;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WORKFLOW_STATES = void 0;
4
+ exports.workflowStateFromStatus = workflowStateFromStatus;
5
+ exports.isTerminated = isTerminated;
6
+ /**
7
+ * A workflow's lifecycle state, read from HotMesh's job status: above 0 the
8
+ * job is running, 0 it has closed, below 0 it was terminated (an interrupt
9
+ * lowers the status far below 0). A terminated run is failed. A run that
10
+ * closed at 0 can still have failed; `readWorkflowState` on the server tells
11
+ * the two apart from the job's outcome.
12
+ */
13
+ exports.WORKFLOW_STATES = {
14
+ RUNNING: 'running',
15
+ COMPLETED: 'completed',
16
+ FAILED: 'failed',
17
+ };
18
+ /** The state a job status implies, before any outcome is read. */
19
+ function workflowStateFromStatus(status) {
20
+ if (status > 0)
21
+ return exports.WORKFLOW_STATES.RUNNING;
22
+ if (status === 0)
23
+ return exports.WORKFLOW_STATES.COMPLETED;
24
+ return exports.WORKFLOW_STATES.FAILED;
25
+ }
26
+ /** Whether a job status means the run was terminated. */
27
+ function isTerminated(status) {
28
+ return status < 0;
29
+ }
@@ -223,10 +223,14 @@ function registerEscalationTools(server) {
223
223
  title: 'Accumulate Item',
224
224
  description: 'Add ONE item to an open accumulator escalation. Interim adds answer outcome "accepted" with the ' +
225
225
  'count held and remaining slots; the add that reaches max completes the row and wakes the waiting ' +
226
- 'workflow with the ordered collection. A reciprocal row is written in the same statement, both or neither.',
226
+ 'workflow with the ordered collection. A reciprocal row is written in the same statement, both or neither. ' +
227
+ 'initiatedBy credits the person the add is for.',
227
228
  inputSchema: schemas_1.accumulateItemSchema,
228
229
  }, async (args) => {
229
- const result = await escalationApi.accumulateItem({ id: args.id, itemKey: args.itemKey, payload: args.payload, metadata: args.metadata, reciprocal: args.reciprocal }, await systemAuth());
230
+ const result = await escalationApi.accumulateItem({
231
+ id: args.id, itemKey: args.itemKey, payload: args.payload, metadata: args.metadata,
232
+ reciprocal: args.reciprocal, initiatedBy: args.initiatedBy,
233
+ }, await systemAuth());
230
234
  if (result.error) {
231
235
  return { content: [{ type: 'text', text: JSON.stringify({ error: result.error, ...(result.data ?? {}) }) }], isError: true };
232
236
  }
@@ -236,10 +240,10 @@ function registerEscalationTools(server) {
236
240
  server.registerTool('remove_item', {
237
241
  title: 'Remove Item',
238
242
  description: 'Remove ONE held item from a pending open accumulator escalation. The row stays pending and the ' +
239
- 'waiting workflow is never woken.',
243
+ 'waiting workflow is never woken. initiatedBy credits the person the removal is for.',
240
244
  inputSchema: schemas_1.removeItemSchema,
241
245
  }, async (args) => {
242
- const result = await escalationApi.removeItem({ id: args.id, itemKey: args.itemKey, reciprocal: args.reciprocal }, await systemAuth());
246
+ const result = await escalationApi.removeItem({ id: args.id, itemKey: args.itemKey, reciprocal: args.reciprocal, initiatedBy: args.initiatedBy }, await systemAuth());
243
247
  if (result.error) {
244
248
  return { content: [{ type: 'text', text: JSON.stringify({ error: result.error, ...(result.data ?? {}) }) }], isError: true };
245
249
  }
@@ -219,10 +219,12 @@ export declare const accumulateItemSchema: z.ZodObject<{
219
219
  signalKey?: string | undefined;
220
220
  payload?: Record<string, any> | undefined;
221
221
  }>>;
222
+ initiatedBy: z.ZodOptional<z.ZodString>;
222
223
  }, "strip", z.ZodTypeAny, {
223
224
  id: string;
224
225
  itemKey: string;
225
226
  metadata?: Record<string, any> | undefined;
227
+ initiatedBy?: string | undefined;
226
228
  payload?: Record<string, any> | undefined;
227
229
  reciprocal?: {
228
230
  key?: string | undefined;
@@ -235,6 +237,7 @@ export declare const accumulateItemSchema: z.ZodObject<{
235
237
  id: string;
236
238
  itemKey: string;
237
239
  metadata?: Record<string, any> | undefined;
240
+ initiatedBy?: string | undefined;
238
241
  payload?: Record<string, any> | undefined;
239
242
  reciprocal?: {
240
243
  key?: string | undefined;
@@ -264,9 +267,11 @@ export declare const removeItemSchema: z.ZodObject<{
264
267
  id?: string | undefined;
265
268
  signalKey?: string | undefined;
266
269
  }>>;
270
+ initiatedBy: z.ZodOptional<z.ZodString>;
267
271
  }, "strip", z.ZodTypeAny, {
268
272
  id: string;
269
273
  itemKey: string;
274
+ initiatedBy?: string | undefined;
270
275
  reciprocal?: {
271
276
  key?: string | undefined;
272
277
  value?: string | undefined;
@@ -276,6 +281,7 @@ export declare const removeItemSchema: z.ZodObject<{
276
281
  }, {
277
282
  id: string;
278
283
  itemKey: string;
284
+ initiatedBy?: string | undefined;
279
285
  reciprocal?: {
280
286
  key?: string | undefined;
281
287
  value?: string | undefined;
@@ -1720,6 +1726,8 @@ export declare const findOrphanedSignalsSchema: z.ZodObject<{
1720
1726
  /** A faceted query over a pond — filter/sort by columns and metadata facets. */
1721
1727
  export declare const facetQuerySchema: z.ZodObject<{
1722
1728
  role: z.ZodString;
1729
+ types: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1730
+ subtypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1723
1731
  status: z.ZodOptional<z.ZodString>;
1724
1732
  available: z.ZodOptional<z.ZodBoolean>;
1725
1733
  facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -1742,6 +1750,8 @@ export declare const facetQuerySchema: z.ZodObject<{
1742
1750
  facets?: Record<string, any> | undefined;
1743
1751
  limit?: number | undefined;
1744
1752
  offset?: number | undefined;
1753
+ types?: string[] | undefined;
1754
+ subtypes?: string[] | undefined;
1745
1755
  orderBy?: {
1746
1756
  column: string;
1747
1757
  direction: "asc" | "desc";
@@ -1753,6 +1763,8 @@ export declare const facetQuerySchema: z.ZodObject<{
1753
1763
  facets?: Record<string, any> | undefined;
1754
1764
  limit?: number | undefined;
1755
1765
  offset?: number | undefined;
1766
+ types?: string[] | undefined;
1767
+ subtypes?: string[] | undefined;
1756
1768
  orderBy?: {
1757
1769
  column: string;
1758
1770
  direction: "asc" | "desc";
@@ -1773,6 +1785,8 @@ export declare const resolveByIdsSchema: z.ZodObject<{
1773
1785
  }>;
1774
1786
  export declare const searchByFacetsSchema: z.ZodObject<{
1775
1787
  role: z.ZodString;
1788
+ types: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1789
+ subtypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1776
1790
  status: z.ZodOptional<z.ZodString>;
1777
1791
  available: z.ZodOptional<z.ZodBoolean>;
1778
1792
  facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -1795,6 +1809,8 @@ export declare const searchByFacetsSchema: z.ZodObject<{
1795
1809
  facets?: Record<string, any> | undefined;
1796
1810
  limit?: number | undefined;
1797
1811
  offset?: number | undefined;
1812
+ types?: string[] | undefined;
1813
+ subtypes?: string[] | undefined;
1798
1814
  orderBy?: {
1799
1815
  column: string;
1800
1816
  direction: "asc" | "desc";
@@ -1806,6 +1822,8 @@ export declare const searchByFacetsSchema: z.ZodObject<{
1806
1822
  facets?: Record<string, any> | undefined;
1807
1823
  limit?: number | undefined;
1808
1824
  offset?: number | undefined;
1825
+ types?: string[] | undefined;
1826
+ subtypes?: string[] | undefined;
1809
1827
  orderBy?: {
1810
1828
  column: string;
1811
1829
  direction: "asc" | "desc";
@@ -1814,6 +1832,8 @@ export declare const searchByFacetsSchema: z.ZodObject<{
1814
1832
  export declare const claimGroupsSchema: z.ZodObject<{
1815
1833
  query: z.ZodObject<{
1816
1834
  role: z.ZodString;
1835
+ types: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1836
+ subtypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1817
1837
  status: z.ZodOptional<z.ZodString>;
1818
1838
  available: z.ZodOptional<z.ZodBoolean>;
1819
1839
  facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -1836,6 +1856,8 @@ export declare const claimGroupsSchema: z.ZodObject<{
1836
1856
  facets?: Record<string, any> | undefined;
1837
1857
  limit?: number | undefined;
1838
1858
  offset?: number | undefined;
1859
+ types?: string[] | undefined;
1860
+ subtypes?: string[] | undefined;
1839
1861
  orderBy?: {
1840
1862
  column: string;
1841
1863
  direction: "asc" | "desc";
@@ -1847,6 +1869,8 @@ export declare const claimGroupsSchema: z.ZodObject<{
1847
1869
  facets?: Record<string, any> | undefined;
1848
1870
  limit?: number | undefined;
1849
1871
  offset?: number | undefined;
1872
+ types?: string[] | undefined;
1873
+ subtypes?: string[] | undefined;
1850
1874
  orderBy?: {
1851
1875
  column: string;
1852
1876
  direction: "asc" | "desc";
@@ -1863,6 +1887,8 @@ export declare const claimGroupsSchema: z.ZodObject<{
1863
1887
  facets?: Record<string, any> | undefined;
1864
1888
  limit?: number | undefined;
1865
1889
  offset?: number | undefined;
1890
+ types?: string[] | undefined;
1891
+ subtypes?: string[] | undefined;
1866
1892
  orderBy?: {
1867
1893
  column: string;
1868
1894
  direction: "asc" | "desc";
@@ -1879,6 +1905,8 @@ export declare const claimGroupsSchema: z.ZodObject<{
1879
1905
  facets?: Record<string, any> | undefined;
1880
1906
  limit?: number | undefined;
1881
1907
  offset?: number | undefined;
1908
+ types?: string[] | undefined;
1909
+ subtypes?: string[] | undefined;
1882
1910
  orderBy?: {
1883
1911
  column: string;
1884
1912
  direction: "asc" | "desc";
@@ -1891,6 +1919,8 @@ export declare const claimGroupsSchema: z.ZodObject<{
1891
1919
  export declare const claimByFacetsSchema: z.ZodObject<{
1892
1920
  query: z.ZodObject<{
1893
1921
  role: z.ZodString;
1922
+ types: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1923
+ subtypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1894
1924
  status: z.ZodOptional<z.ZodString>;
1895
1925
  available: z.ZodOptional<z.ZodBoolean>;
1896
1926
  facets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -1913,6 +1943,8 @@ export declare const claimByFacetsSchema: z.ZodObject<{
1913
1943
  facets?: Record<string, any> | undefined;
1914
1944
  limit?: number | undefined;
1915
1945
  offset?: number | undefined;
1946
+ types?: string[] | undefined;
1947
+ subtypes?: string[] | undefined;
1916
1948
  orderBy?: {
1917
1949
  column: string;
1918
1950
  direction: "asc" | "desc";
@@ -1924,6 +1956,8 @@ export declare const claimByFacetsSchema: z.ZodObject<{
1924
1956
  facets?: Record<string, any> | undefined;
1925
1957
  limit?: number | undefined;
1926
1958
  offset?: number | undefined;
1959
+ types?: string[] | undefined;
1960
+ subtypes?: string[] | undefined;
1927
1961
  orderBy?: {
1928
1962
  column: string;
1929
1963
  direction: "asc" | "desc";
@@ -1940,6 +1974,8 @@ export declare const claimByFacetsSchema: z.ZodObject<{
1940
1974
  facets?: Record<string, any> | undefined;
1941
1975
  limit?: number | undefined;
1942
1976
  offset?: number | undefined;
1977
+ types?: string[] | undefined;
1978
+ subtypes?: string[] | undefined;
1943
1979
  orderBy?: {
1944
1980
  column: string;
1945
1981
  direction: "asc" | "desc";
@@ -1956,6 +1992,8 @@ export declare const claimByFacetsSchema: z.ZodObject<{
1956
1992
  facets?: Record<string, any> | undefined;
1957
1993
  limit?: number | undefined;
1958
1994
  offset?: number | undefined;
1995
+ types?: string[] | undefined;
1996
+ subtypes?: string[] | undefined;
1959
1997
  orderBy?: {
1960
1998
  column: string;
1961
1999
  direction: "asc" | "desc";