@hotmeshio/long-tail 0.22.2 → 0.22.3

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 (255) hide show
  1. package/build/api/escalations/lookups.d.ts +9 -2
  2. package/build/api/escalations/lookups.js +15 -3
  3. package/build/api/escalations/metadata.d.ts +2 -0
  4. package/build/api/escalations/metadata.js +9 -0
  5. package/build/api/scan-codes/locate.js +4 -0
  6. package/build/api/scan-codes/present.d.ts +1 -1
  7. package/build/api/scan-codes/present.js +43 -0
  8. package/build/api/scan-codes/verb-accumulate.js +5 -1
  9. package/build/api/scan-codes/verb-fill.js +4 -1
  10. package/build/api/scan-codes/verb-into-subject.d.ts +12 -0
  11. package/build/api/scan-codes/verb-into-subject.js +157 -0
  12. package/build/api/scan-codes/verbs-subject.d.ts +23 -4
  13. package/build/api/scan-codes/verbs-subject.js +32 -55
  14. package/build/api/scan-codes/verbs.d.ts +10 -8
  15. package/build/api/scan-codes/verbs.js +25 -16
  16. package/build/index.d.ts +1 -1
  17. package/build/index.js +3 -2
  18. package/build/sdk/index.d.ts +1 -0
  19. package/build/services/escalation/claim-asserted.d.ts +10 -0
  20. package/build/services/escalation/claim-asserted.js +64 -0
  21. package/build/services/escalation/facets.d.ts +3 -1
  22. package/build/services/escalation/facets.js +7 -3
  23. package/build/services/escalation/index.d.ts +1 -0
  24. package/build/services/escalation/index.js +3 -1
  25. package/build/services/knowledge/lookup-cache.d.ts +16 -4
  26. package/build/services/knowledge/lookup-cache.js +53 -20
  27. package/build/services/knowledge/lookup-refs.d.ts +3 -2
  28. package/build/services/knowledge/lookup-refs.js +6 -4
  29. package/build/services/knowledge/sql.d.ts +2 -0
  30. package/build/services/knowledge/sql.js +9 -1
  31. package/build/services/mcp/server-tools.js +1 -1
  32. package/build/services/orchestrator/condition.d.ts +13 -10
  33. package/build/services/orchestrator/condition.js +8 -6
  34. package/build/services/scan-code/index.d.ts +1 -1
  35. package/build/services/scan-code/index.js +2 -1
  36. package/build/services/scan-code/validate-facts.d.ts +5 -0
  37. package/build/services/scan-code/validate-facts.js +24 -0
  38. package/build/services/scan-code/validate-query.d.ts +8 -0
  39. package/build/services/scan-code/validate-query.js +36 -0
  40. package/build/services/scan-code/validate-subject.js +29 -2
  41. package/build/services/scan-code/validate.js +17 -8
  42. package/build/shared/scan-code/gtin.d.ts +6 -0
  43. package/build/shared/scan-code/gtin.js +13 -0
  44. package/build/shared/scan-code/index.d.ts +1 -1
  45. package/build/shared/scan-code/index.js +2 -1
  46. package/build/system/mcp-servers/admin/schemas.d.ts +185 -5
  47. package/build/system/mcp-servers/admin/schemas.js +16 -3
  48. package/build/system/seed/tool-manifests-admin.d.ts +202 -1
  49. package/build/system/seed/tool-manifests-admin.js +2 -2
  50. package/build/tsconfig.tsbuildinfo +1 -1
  51. package/build/types/escalation.d.ts +14 -8
  52. package/build/types/escalation.js +16 -7
  53. package/build/types/index.d.ts +3 -3
  54. package/build/types/index.js +3 -1
  55. package/build/types/scan-code/response.d.ts +5 -0
  56. package/build/types/scan-code/rule.d.ts +32 -2
  57. package/dashboard/dist/assets/{AdminDashboard-DBW12qQt.js → AdminDashboard-hI5-kKpL.js} +2 -2
  58. package/dashboard/dist/assets/{AdminDashboard-DBW12qQt.js.map → AdminDashboard-hI5-kKpL.js.map} +1 -1
  59. package/dashboard/dist/assets/{AgentConfigPage-CmHv8U9M.js → AgentConfigPage-DetU4HZe.js} +2 -2
  60. package/dashboard/dist/assets/{AgentConfigPage-CmHv8U9M.js.map → AgentConfigPage-DetU4HZe.js.map} +1 -1
  61. package/dashboard/dist/assets/{AgentDetailPage-D1scIbz-.js → AgentDetailPage-DrGXo8KQ.js} +2 -2
  62. package/dashboard/dist/assets/{AgentDetailPage-D1scIbz-.js.map → AgentDetailPage-DrGXo8KQ.js.map} +1 -1
  63. package/dashboard/dist/assets/{AgentsPage-BA_ai9HJ.js → AgentsPage-D4md5BzM.js} +2 -2
  64. package/dashboard/dist/assets/{AgentsPage-BA_ai9HJ.js.map → AgentsPage-D4md5BzM.js.map} +1 -1
  65. package/dashboard/dist/assets/{AvailableEscalationsPage-C2_5aEFW.js → AvailableEscalationsPage-B2bS2ZJy.js} +2 -2
  66. package/dashboard/dist/assets/{AvailableEscalationsPage-C2_5aEFW.js.map → AvailableEscalationsPage-B2bS2ZJy.js.map} +1 -1
  67. package/dashboard/dist/assets/{BotPicker-BZo4Kp4a.js → BotPicker-BXtey255.js} +2 -2
  68. package/dashboard/dist/assets/{BotPicker-BZo4Kp4a.js.map → BotPicker-BXtey255.js.map} +1 -1
  69. package/dashboard/dist/assets/{BulkAssignModal-BFhyxY2T.js → BulkAssignModal-CSL_PeZv.js} +2 -2
  70. package/dashboard/dist/assets/{BulkAssignModal-BFhyxY2T.js.map → BulkAssignModal-CSL_PeZv.js.map} +1 -1
  71. package/dashboard/dist/assets/{CapabilitiesPage-CvOX6vAc.js → CapabilitiesPage-5scufTHW.js} +2 -2
  72. package/dashboard/dist/assets/{CapabilitiesPage-CvOX6vAc.js.map → CapabilitiesPage-5scufTHW.js.map} +1 -1
  73. package/dashboard/dist/assets/{CollapsibleSection-GCJsV9Oq.js → CollapsibleSection-DjjDGxP_.js} +2 -2
  74. package/dashboard/dist/assets/{CollapsibleSection-GCJsV9Oq.js.map → CollapsibleSection-DjjDGxP_.js.map} +1 -1
  75. package/dashboard/dist/assets/{ConfirmDeleteModal-CAgYLcef.js → ConfirmDeleteModal-DJSmsHQM.js} +2 -2
  76. package/dashboard/dist/assets/{ConfirmDeleteModal-CAgYLcef.js.map → ConfirmDeleteModal-DJSmsHQM.js.map} +1 -1
  77. package/dashboard/dist/assets/{CountdownTimer-Dik2z0M_.js → CountdownTimer-C5ZRYPfF.js} +2 -2
  78. package/dashboard/dist/assets/{CountdownTimer-Dik2z0M_.js.map → CountdownTimer-C5ZRYPfF.js.map} +1 -1
  79. package/dashboard/dist/assets/{CredentialsPage-twd2xCOW.js → CredentialsPage-CV6e60yC.js} +2 -2
  80. package/dashboard/dist/assets/{CredentialsPage-twd2xCOW.js.map → CredentialsPage-CV6e60yC.js.map} +1 -1
  81. package/dashboard/dist/assets/{CronLabel-DdnIuudX.js → CronLabel-CnqhqW0B.js} +2 -2
  82. package/dashboard/dist/assets/{CronLabel-DdnIuudX.js.map → CronLabel-CnqhqW0B.js.map} +1 -1
  83. package/dashboard/dist/assets/{ElapsedCell-DCctVv5R.js → ElapsedCell-C1IOn-tj.js} +2 -2
  84. package/dashboard/dist/assets/{ElapsedCell-DCctVv5R.js.map → ElapsedCell-C1IOn-tj.js.map} +1 -1
  85. package/dashboard/dist/assets/{EntityTimelinePanel-CMnskyWv.js → EntityTimelinePanel-Dz6Liig4.js} +2 -2
  86. package/dashboard/dist/assets/{EntityTimelinePanel-CMnskyWv.js.map → EntityTimelinePanel-Dz6Liig4.js.map} +1 -1
  87. package/dashboard/dist/assets/{EscalationListSchemaPage-VfCn6WDb.js → EscalationListSchemaPage-bgdmLmrh.js} +2 -2
  88. package/dashboard/dist/assets/{EscalationListSchemaPage-VfCn6WDb.js.map → EscalationListSchemaPage-bgdmLmrh.js.map} +1 -1
  89. package/dashboard/dist/assets/{EscalationListView-CGQZxcC-.js → EscalationListView-CrlD3ZGt.js} +2 -2
  90. package/dashboard/dist/assets/{EscalationListView-CGQZxcC-.js.map → EscalationListView-CrlD3ZGt.js.map} +1 -1
  91. package/dashboard/dist/assets/{EscalationSchemaPage-BX0tx-PM.js → EscalationSchemaPage-dxXO_T3t.js} +2 -2
  92. package/dashboard/dist/assets/{EscalationSchemaPage-BX0tx-PM.js.map → EscalationSchemaPage-dxXO_T3t.js.map} +1 -1
  93. package/dashboard/dist/assets/{EscalationTimeline-DKoSM56J.js → EscalationTimeline-C3WQZQuM.js} +2 -2
  94. package/dashboard/dist/assets/{EscalationTimeline-DKoSM56J.js.map → EscalationTimeline-C3WQZQuM.js.map} +1 -1
  95. package/dashboard/dist/assets/{EscalationTitleSelect-DWGLBOmS.js → EscalationTitleSelect-CTtcETUO.js} +2 -2
  96. package/dashboard/dist/assets/{EscalationTitleSelect-DWGLBOmS.js.map → EscalationTitleSelect-CTtcETUO.js.map} +1 -1
  97. package/dashboard/dist/assets/{EscalationsOverview-C2XoguaA.js → EscalationsOverview-DAjZ7JY2.js} +2 -2
  98. package/dashboard/dist/assets/{EscalationsOverview-C2XoguaA.js.map → EscalationsOverview-DAjZ7JY2.js.map} +1 -1
  99. package/dashboard/dist/assets/{EventTable-CBUWq7--.js → EventTable-B72DQP_v.js} +2 -2
  100. package/dashboard/dist/assets/{EventTable-CBUWq7--.js.map → EventTable-B72DQP_v.js.map} +1 -1
  101. package/dashboard/dist/assets/{FilterBar-8IdbleZ9.js → FilterBar-CCTaA_LH.js} +2 -2
  102. package/dashboard/dist/assets/{FilterBar-8IdbleZ9.js.map → FilterBar-CCTaA_LH.js.map} +1 -1
  103. package/dashboard/dist/assets/{GraphInvokePage-CUvoPzsW.js → GraphInvokePage-CAsCgFo3.js} +2 -2
  104. package/dashboard/dist/assets/{GraphInvokePage-CUvoPzsW.js.map → GraphInvokePage-CAsCgFo3.js.map} +1 -1
  105. package/dashboard/dist/assets/{HomePage-BP7v9GLJ.js → HomePage-DseE_iSr.js} +2 -2
  106. package/dashboard/dist/assets/{HomePage-BP7v9GLJ.js.map → HomePage-DseE_iSr.js.map} +1 -1
  107. package/dashboard/dist/assets/{ListToolbar-Cnacuwoy.js → ListToolbar-1zdqnjW6.js} +2 -2
  108. package/dashboard/dist/assets/{ListToolbar-Cnacuwoy.js.map → ListToolbar-1zdqnjW6.js.map} +1 -1
  109. package/dashboard/dist/assets/{McpOverview-C2JoNoDA.js → McpOverview-DS_JXDW5.js} +2 -2
  110. package/dashboard/dist/assets/{McpOverview-C2JoNoDA.js.map → McpOverview-DS_JXDW5.js.map} +1 -1
  111. package/dashboard/dist/assets/{McpQueryDetailPage-C_nih0w-.js → McpQueryDetailPage-BeMUGcv3.js} +2 -2
  112. package/dashboard/dist/assets/{McpQueryDetailPage-C_nih0w-.js.map → McpQueryDetailPage-BeMUGcv3.js.map} +1 -1
  113. package/dashboard/dist/assets/{McpQueryPage-U_wNXow2.js → McpQueryPage-CeiLO_LR.js} +2 -2
  114. package/dashboard/dist/assets/{McpQueryPage-U_wNXow2.js.map → McpQueryPage-CeiLO_LR.js.map} +1 -1
  115. package/dashboard/dist/assets/{McpRunDetailPage-DtKoJq6J.js → McpRunDetailPage-DYp1uZK2.js} +2 -2
  116. package/dashboard/dist/assets/{McpRunDetailPage-DtKoJq6J.js.map → McpRunDetailPage-DYp1uZK2.js.map} +1 -1
  117. package/dashboard/dist/assets/{McpRunsPage-CnYtfGhf.js → McpRunsPage-VeaDzcL4.js} +2 -2
  118. package/dashboard/dist/assets/{McpRunsPage-CnYtfGhf.js.map → McpRunsPage-VeaDzcL4.js.map} +1 -1
  119. package/dashboard/dist/assets/{OperationsPage-C7hupIer.js → OperationsPage-DK2mgaXf.js} +2 -2
  120. package/dashboard/dist/assets/{OperationsPage-C7hupIer.js.map → OperationsPage-DK2mgaXf.js.map} +1 -1
  121. package/dashboard/dist/assets/{OperatorDashboard-fVuLn2D5.js → OperatorDashboard-BNjLF0f7.js} +2 -2
  122. package/dashboard/dist/assets/{OperatorDashboard-fVuLn2D5.js.map → OperatorDashboard-BNjLF0f7.js.map} +1 -1
  123. package/dashboard/dist/assets/{PersonaDetailPage-C-4o8lPw.js → PersonaDetailPage-IQ2fZLa6.js} +2 -2
  124. package/dashboard/dist/assets/{PersonaDetailPage-C-4o8lPw.js.map → PersonaDetailPage-IQ2fZLa6.js.map} +1 -1
  125. package/dashboard/dist/assets/{PersonasPage-BL1FwLmv.js → PersonasPage-DpGFEcU-.js} +2 -2
  126. package/dashboard/dist/assets/{PersonasPage-BL1FwLmv.js.map → PersonasPage-DpGFEcU-.js.map} +1 -1
  127. package/dashboard/dist/assets/{PortalPage-tJG5sgb1.js → PortalPage-D07xyvG_.js} +2 -2
  128. package/dashboard/dist/assets/{PortalPage-tJG5sgb1.js.map → PortalPage-D07xyvG_.js.map} +1 -1
  129. package/dashboard/dist/assets/{ProcessDetailPage-Dz_jY4Yt.js → ProcessDetailPage-t8EEYSMk.js} +2 -2
  130. package/dashboard/dist/assets/{ProcessDetailPage-Dz_jY4Yt.js.map → ProcessDetailPage-t8EEYSMk.js.map} +1 -1
  131. package/dashboard/dist/assets/{ProcessesListPage-Cbn9cter.js → ProcessesListPage-BDUXLFdb.js} +2 -2
  132. package/dashboard/dist/assets/{ProcessesListPage-Cbn9cter.js.map → ProcessesListPage-BDUXLFdb.js.map} +1 -1
  133. package/dashboard/dist/assets/{ResolverForm-Bk8iXQ6-.js → ResolverForm-BwWOYv_Z.js} +6 -6
  134. package/dashboard/dist/assets/ResolverForm-BwWOYv_Z.js.map +1 -0
  135. package/dashboard/dist/assets/{RoleDetailPage-owPi6gI9.js → RoleDetailPage-zMF3x2xi.js} +2 -2
  136. package/dashboard/dist/assets/{RoleDetailPage-owPi6gI9.js.map → RoleDetailPage-zMF3x2xi.js.map} +1 -1
  137. package/dashboard/dist/assets/{RolesPage-NwmMvZFa.js → RolesPage-CEBp_PpL.js} +2 -2
  138. package/dashboard/dist/assets/{RolesPage-NwmMvZFa.js.map → RolesPage-CEBp_PpL.js.map} +1 -1
  139. package/dashboard/dist/assets/{RunAsSelector-tgEooTyU.js → RunAsSelector-CC_EHN3z.js} +2 -2
  140. package/dashboard/dist/assets/{RunAsSelector-tgEooTyU.js.map → RunAsSelector-CC_EHN3z.js.map} +1 -1
  141. package/dashboard/dist/assets/{ScanCodesPage-CUv_8ic6.js → ScanCodesPage-DD4uU-jY.js} +2 -2
  142. package/dashboard/dist/assets/{ScanCodesPage-CUv_8ic6.js.map → ScanCodesPage-DD4uU-jY.js.map} +1 -1
  143. package/dashboard/dist/assets/ScanSchemeDetailPage-CUW8gYFh.js +2 -0
  144. package/dashboard/dist/assets/ScanSchemeDetailPage-CUW8gYFh.js.map +1 -0
  145. package/dashboard/dist/assets/ScanStationPage-DpO_ESuf.js +2 -0
  146. package/dashboard/dist/assets/ScanStationPage-DpO_ESuf.js.map +1 -0
  147. package/dashboard/dist/assets/{StickyPagination-CsTI_gvJ.js → StickyPagination-cNqSDm5f.js} +2 -2
  148. package/dashboard/dist/assets/{StickyPagination-CsTI_gvJ.js.map → StickyPagination-cNqSDm5f.js.map} +1 -1
  149. package/dashboard/dist/assets/{StreamMessageDetail-auRlvjTh.js → StreamMessageDetail-C4oZqQdB.js} +2 -2
  150. package/dashboard/dist/assets/{StreamMessageDetail-auRlvjTh.js.map → StreamMessageDetail-C4oZqQdB.js.map} +1 -1
  151. package/dashboard/dist/assets/{SwimlaneTimeline-BLoVHYAd.js → SwimlaneTimeline-BjBiV7GT.js} +2 -2
  152. package/dashboard/dist/assets/{SwimlaneTimeline-BLoVHYAd.js.map → SwimlaneTimeline-BjBiV7GT.js.map} +1 -1
  153. package/dashboard/dist/assets/{TaskDetailPage-BPsZ1bK_.js → TaskDetailPage-pO_AnVS1.js} +2 -2
  154. package/dashboard/dist/assets/{TaskDetailPage-BPsZ1bK_.js.map → TaskDetailPage-pO_AnVS1.js.map} +1 -1
  155. package/dashboard/dist/assets/{TasksListPage-BNGM74yT.js → TasksListPage-DKDHlWP7.js} +2 -2
  156. package/dashboard/dist/assets/{TasksListPage-BNGM74yT.js.map → TasksListPage-DKDHlWP7.js.map} +1 -1
  157. package/dashboard/dist/assets/{TimeAgo-BnAHXGK7.js → TimeAgo-D2qchUuJ.js} +2 -2
  158. package/dashboard/dist/assets/{TimeAgo-BnAHXGK7.js.map → TimeAgo-D2qchUuJ.js.map} +1 -1
  159. package/dashboard/dist/assets/{TimestampCell-J4yae6mc.js → TimestampCell-DeswZGGo.js} +2 -2
  160. package/dashboard/dist/assets/{TimestampCell-J4yae6mc.js.map → TimestampCell-DeswZGGo.js.map} +1 -1
  161. package/dashboard/dist/assets/{ToolTestPanel-BdzzgXDu.js → ToolTestPanel-DJh7PIUa.js} +2 -2
  162. package/dashboard/dist/assets/{ToolTestPanel-BdzzgXDu.js.map → ToolTestPanel-DJh7PIUa.js.map} +1 -1
  163. package/dashboard/dist/assets/{TopicDetailPage-DJKg8lb7.js → TopicDetailPage-CsgDJ4Z4.js} +2 -2
  164. package/dashboard/dist/assets/{TopicDetailPage-DJKg8lb7.js.map → TopicDetailPage-CsgDJ4Z4.js.map} +1 -1
  165. package/dashboard/dist/assets/{TopicsPage-DQV0WxG6.js → TopicsPage-tBRZDVDN.js} +2 -2
  166. package/dashboard/dist/assets/{TopicsPage-DQV0WxG6.js.map → TopicsPage-tBRZDVDN.js.map} +1 -1
  167. package/dashboard/dist/assets/{UserName-Ct09nGh5.js → UserName-B-5JcDck.js} +2 -2
  168. package/dashboard/dist/assets/{UserName-Ct09nGh5.js.map → UserName-B-5JcDck.js.map} +1 -1
  169. package/dashboard/dist/assets/{WorkflowExecutionPage-B5WJOsee.js → WorkflowExecutionPage-BPHVnhp6.js} +2 -2
  170. package/dashboard/dist/assets/{WorkflowExecutionPage-B5WJOsee.js.map → WorkflowExecutionPage-BPHVnhp6.js.map} +1 -1
  171. package/dashboard/dist/assets/{WorkflowsDashboard-Hc87TRgD.js → WorkflowsDashboard-CxLlfZmY.js} +2 -2
  172. package/dashboard/dist/assets/{WorkflowsDashboard-Hc87TRgD.js.map → WorkflowsDashboard-CxLlfZmY.js.map} +1 -1
  173. package/dashboard/dist/assets/{WorkflowsOverview-CJQbyOj-.js → WorkflowsOverview-C4az5rwp.js} +2 -2
  174. package/dashboard/dist/assets/{WorkflowsOverview-CJQbyOj-.js.map → WorkflowsOverview-C4az5rwp.js.map} +1 -1
  175. package/dashboard/dist/assets/{YamlWorkflowDetailPage-BMeED677.js → YamlWorkflowDetailPage-BmhlAUFQ.js} +2 -2
  176. package/dashboard/dist/assets/{YamlWorkflowDetailPage-BMeED677.js.map → YamlWorkflowDetailPage-BmhlAUFQ.js.map} +1 -1
  177. package/dashboard/dist/assets/{YamlWorkflowsPage-BMMg0Id6.js → YamlWorkflowsPage-CSbG5o2V.js} +2 -2
  178. package/dashboard/dist/assets/{YamlWorkflowsPage-BMMg0Id6.js.map → YamlWorkflowsPage-CSbG5o2V.js.map} +1 -1
  179. package/dashboard/dist/assets/{agents-CdFkgFvg.js → agents-BohEn7vw.js} +2 -2
  180. package/dashboard/dist/assets/{agents-CdFkgFvg.js.map → agents-BohEn7vw.js.map} +1 -1
  181. package/dashboard/dist/assets/{bots-Mj3LHWWg.js → bots-BG2EO-Wi.js} +2 -2
  182. package/dashboard/dist/assets/{bots-Mj3LHWWg.js.map → bots-BG2EO-Wi.js.map} +1 -1
  183. package/dashboard/dist/assets/{capabilities-Dw1ObK2-.js → capabilities-CeFrBmYX.js} +2 -2
  184. package/dashboard/dist/assets/{capabilities-Dw1ObK2-.js.map → capabilities-CeFrBmYX.js.map} +1 -1
  185. package/dashboard/dist/assets/{controlplane-DcNE1APv.js → controlplane-Dhvt8l8F.js} +2 -2
  186. package/dashboard/dist/assets/{controlplane-DcNE1APv.js.map → controlplane-Dhvt8l8F.js.map} +1 -1
  187. package/dashboard/dist/assets/{escalation-columns-D364Trpy.js → escalation-columns-BWMNxImp.js} +2 -2
  188. package/dashboard/dist/assets/{escalation-columns-D364Trpy.js.map → escalation-columns-BWMNxImp.js.map} +1 -1
  189. package/dashboard/dist/assets/{index-DPStdq4T.js → index-Bd_dgyfJ.js} +2 -2
  190. package/dashboard/dist/assets/{index-DPStdq4T.js.map → index-Bd_dgyfJ.js.map} +1 -1
  191. package/dashboard/dist/assets/{index-B3veJ698.js → index-C8VlM2Oe.js} +2 -2
  192. package/dashboard/dist/assets/{index-B3veJ698.js.map → index-C8VlM2Oe.js.map} +1 -1
  193. package/dashboard/dist/assets/{index-BiVce3n0.js → index-CiqSVDga.js} +2 -2
  194. package/dashboard/dist/assets/{index-BiVce3n0.js.map → index-CiqSVDga.js.map} +1 -1
  195. package/dashboard/dist/assets/{index-DkcI4V_H.js → index-Cl_YXEdp.js} +2 -2
  196. package/dashboard/dist/assets/{index-DkcI4V_H.js.map → index-Cl_YXEdp.js.map} +1 -1
  197. package/dashboard/dist/assets/index-CtZWpy22.js +2 -0
  198. package/dashboard/dist/assets/index-CtZWpy22.js.map +1 -0
  199. package/dashboard/dist/assets/{index-Bq5XNEzD.js → index-D90D9y0J.js} +2 -2
  200. package/dashboard/dist/assets/{index-Bq5XNEzD.js.map → index-D90D9y0J.js.map} +1 -1
  201. package/dashboard/dist/assets/{index-eDm6cz0F.js → index-DABkM7s-.js} +2 -2
  202. package/dashboard/dist/assets/{index-eDm6cz0F.js.map → index-DABkM7s-.js.map} +1 -1
  203. package/dashboard/dist/assets/{index-WSm8bgE7.js → index-Dbwu51xm.js} +3 -3
  204. package/dashboard/dist/assets/{index-WSm8bgE7.js.map → index-Dbwu51xm.js.map} +1 -1
  205. package/dashboard/dist/assets/{index-Dyotfa_k.js → index-Dc3Om6G3.js} +2 -2
  206. package/dashboard/dist/assets/{index-Dyotfa_k.js.map → index-Dc3Om6G3.js.map} +1 -1
  207. package/dashboard/dist/assets/{index-BRGTmoYY.js → index-Dc_zWK23.js} +2 -2
  208. package/dashboard/dist/assets/{index-BRGTmoYY.js.map → index-Dc_zWK23.js.map} +1 -1
  209. package/dashboard/dist/assets/{index-MDD4JYtu.js → index-Y-bdW8vo.js} +2 -2
  210. package/dashboard/dist/assets/{index-MDD4JYtu.js.map → index-Y-bdW8vo.js.map} +1 -1
  211. package/dashboard/dist/assets/{index-Bd6-KmBE.js → index-dYKgd06u.js} +2 -2
  212. package/dashboard/dist/assets/{index-Bd6-KmBE.js.map → index-dYKgd06u.js.map} +1 -1
  213. package/dashboard/dist/assets/{index-BQeHJHYN.js → index-fUsx_gYx.js} +25 -25
  214. package/dashboard/dist/assets/index-fUsx_gYx.js.map +1 -0
  215. package/dashboard/dist/assets/{knowledge-Bafewjxk.js → knowledge-CCcTidNV.js} +2 -2
  216. package/dashboard/dist/assets/{knowledge-Bafewjxk.js.map → knowledge-CCcTidNV.js.map} +1 -1
  217. package/dashboard/dist/assets/{mcp-vLIutbnc.js → mcp-CLA1z7Pg.js} +2 -2
  218. package/dashboard/dist/assets/{mcp-vLIutbnc.js.map → mcp-CLA1z7Pg.js.map} +1 -1
  219. package/dashboard/dist/assets/{mcp-query-BzTtIG90.js → mcp-query-CWG0WMAs.js} +2 -2
  220. package/dashboard/dist/assets/{mcp-query-BzTtIG90.js.map → mcp-query-CWG0WMAs.js.map} +1 -1
  221. package/dashboard/dist/assets/metadata-display-B7X5hGxG.js +2 -0
  222. package/dashboard/dist/assets/metadata-display-B7X5hGxG.js.map +1 -0
  223. package/dashboard/dist/assets/{personas-WD40EDS_.js → personas-8jURIzx6.js} +2 -2
  224. package/dashboard/dist/assets/{personas-WD40EDS_.js.map → personas-8jURIzx6.js.map} +1 -1
  225. package/dashboard/dist/assets/{pipelines-DFwULWs3.js → pipelines-hVVRAXqG.js} +2 -2
  226. package/dashboard/dist/assets/{pipelines-DFwULWs3.js.map → pipelines-hVVRAXqG.js.map} +1 -1
  227. package/dashboard/dist/assets/{tasks-La_-WAUn.js → tasks-BE1O57Bf.js} +2 -2
  228. package/dashboard/dist/assets/{tasks-La_-WAUn.js.map → tasks-BE1O57Bf.js.map} +1 -1
  229. package/dashboard/dist/assets/{topics-CzYMlvqm.js → topics-Bg96Wp1r.js} +2 -2
  230. package/dashboard/dist/assets/{topics-CzYMlvqm.js.map → topics-Bg96Wp1r.js.map} +1 -1
  231. package/dashboard/dist/assets/{useDebouncedValue-C0FQyANW.js → useDebouncedValue-DmEveyEy.js} +2 -2
  232. package/dashboard/dist/assets/{useDebouncedValue-C0FQyANW.js.map → useDebouncedValue-DmEveyEy.js.map} +1 -1
  233. package/dashboard/dist/assets/{useNamespace-WW_XjAb3.js → useNamespace-DHgkzIuL.js} +2 -2
  234. package/dashboard/dist/assets/{useNamespace-WW_XjAb3.js.map → useNamespace-DHgkzIuL.js.map} +1 -1
  235. package/dashboard/dist/assets/{useYamlActivityEvents-B3YxPeFt.js → useYamlActivityEvents-RU0PvU8S.js} +2 -2
  236. package/dashboard/dist/assets/{useYamlActivityEvents-B3YxPeFt.js.map → useYamlActivityEvents-RU0PvU8S.js.map} +1 -1
  237. package/dashboard/dist/assets/{yaml-workflows-COHOjdhF.js → yaml-workflows-DQWE9ijc.js} +2 -2
  238. package/dashboard/dist/assets/{yaml-workflows-COHOjdhF.js.map → yaml-workflows-DQWE9ijc.js.map} +1 -1
  239. package/dashboard/dist/index.html +1 -1
  240. package/docs/hitl/lookups.md +27 -18
  241. package/docs/hitl/x-lt-validation.md +1 -1
  242. package/docs/hitl/x-lt-widget.md +1 -1
  243. package/docs/hitl-guide.md +1 -1
  244. package/docs/scan-codes.md +86 -16
  245. package/package.json +1 -1
  246. package/dashboard/dist/assets/ResolverForm-Bk8iXQ6-.js.map +0 -1
  247. package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js +0 -2
  248. package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js.map +0 -1
  249. package/dashboard/dist/assets/ScanStationPage-B275l6r_.js +0 -2
  250. package/dashboard/dist/assets/ScanStationPage-B275l6r_.js.map +0 -1
  251. package/dashboard/dist/assets/index-BQeHJHYN.js.map +0 -1
  252. package/dashboard/dist/assets/index-BmNAVd4s.js +0 -2
  253. package/dashboard/dist/assets/index-BmNAVd4s.js.map +0 -1
  254. package/dashboard/dist/assets/metadata-display-COo3mMCr.js +0 -2
  255. package/dashboard/dist/assets/metadata-display-COo3mMCr.js.map +0 -1
@@ -41,7 +41,7 @@ exports.ADMIN_TOOLS = [
41
41
  // ── workflow-config.ts ──────────────────────────────────────────────────
42
42
  { name: 'list_workflow_configs', description: 'List all certified workflow configurations with roles and settings.', read_safe: true, inputSchema: { type: 'object', properties: {} } },
43
43
  { name: 'get_workflow_config', description: 'The full configuration row for one workflow: input_schema (the form an invoke payload must satisfy), envelope_schema, input_lookups with resolved input_lookup_data, roles, and tier.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' } }, required: ['workflow_type'] } },
44
- { name: 'upsert_workflow_config', description: 'Create or replace a workflow configuration (certify). Activates the interceptor for task tracking and escalation chains. Full replace: omitted fields clear, matching PUT.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' }, invocable: { type: 'boolean' }, task_queue: { type: 'string' }, default_role: { type: 'string' }, description: { type: 'string' }, execute_as: { type: 'string' }, roles: { type: 'array', items: { type: 'string' } }, invocation_roles: { type: 'array', items: { type: 'string' } }, consumes: { type: 'array', items: { type: 'string' } }, tool_tags: { type: 'array', items: { type: 'string' } }, cron_schedule: { type: 'string' }, envelope_schema: { type: 'object' }, input_schema: { type: 'object' }, input_lookups: { type: 'array', items: { type: 'object', properties: { domain: { type: 'string' }, key: { type: 'string' }, version: { type: 'integer' }, as: { type: 'string' } }, required: ['domain', 'key', 'version'] } }, icon: { type: 'string' }, read_safe: { type: 'boolean' } }, required: ['workflow_type'] } },
44
+ { name: 'upsert_workflow_config', description: 'Create or replace a workflow configuration (certify). Activates the interceptor for task tracking and escalation chains. Full replace: omitted fields clear, matching PUT.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' }, invocable: { type: 'boolean' }, task_queue: { type: 'string' }, default_role: { type: 'string' }, description: { type: 'string' }, execute_as: { type: 'string' }, roles: { type: 'array', items: { type: 'string' } }, invocation_roles: { type: 'array', items: { type: 'string' } }, consumes: { type: 'array', items: { type: 'string' } }, tool_tags: { type: 'array', items: { type: 'string' } }, cron_schedule: { type: 'string' }, envelope_schema: { type: 'object' }, input_schema: { type: 'object' }, input_lookups: { type: 'array', items: { type: 'object', properties: { domain: { type: 'string' }, key: { type: 'string' }, version: { oneOf: [{ type: 'integer', minimum: 1 }, { const: 'current' }] }, as: { type: 'string' } }, required: ['domain', 'key'] } }, icon: { type: 'string' }, read_safe: { type: 'boolean' } }, required: ['workflow_type'] } },
45
45
  { name: 'delete_workflow_config', description: 'De-certify a workflow by removing its config entry.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' } }, required: ['workflow_type'] } },
46
46
  // ── workflows.ts ────────────────────────────────────────────────────────
47
47
  { name: 'list_discovered_workflows', description: 'Unified list of all known workflows: active workers, historical entities, and registered configs.', read_safe: true, inputSchema: { type: 'object', properties: { include_system: { type: 'boolean' } } } },
@@ -136,7 +136,7 @@ exports.ADMIN_TOOLS = [
136
136
  // ── domain-context.ts ─────────────────────────────────────────────────────
137
137
  { name: 'get_domain_context', description: 'The deployment\'s domain dictionary merged with live platform state — how this operation\'s jargon maps to roles, workflows, escalations, and metadata facets. No args returns the overview + index; { topic, name } returns specific entries (entity id facet + roles for building escalation queries, role cancel/timeout semantics, workflow kill road); topic `term` looks a word or alias up across every kind. Works on every deployment — with no dictionary registered it serves a view derived from the live registries. Call before acting on deployment-specific semantics.', read_safe: true, inputSchema: { type: 'object', properties: { topic: { type: 'string', enum: ['term', 'entity', 'role', 'workflow', 'facet', 'action', 'rule', 'runbook'] }, name: { type: 'string' } } } },
138
138
  // ── scan-codes.ts ────────────────────────────────────────────────────────
139
- { name: 'execute_scan_code', description: 'Execute a raw scan code (version:category:target): parse against the configured schemes, walk the rule\'s condition/action steps, and return a structured outcome. Identity-kind schemes mint an acting-identity grant; with actingToken, mutating verbs attribute to the badged person.', read_safe: false, inputSchema: { type: 'object', properties: { code: { type: 'string' }, actingToken: { type: 'string' }, previousActingToken: { type: 'string' } }, required: ['code'] } },
139
+ { name: 'execute_scan_code', description: 'Execute a raw scan code (version:category:target): parse against the configured schemes, walk the rule\'s condition/action steps, and return a structured outcome. Identity-kind schemes mint an acting-identity grant; with actingToken, mutating verbs attribute to the badged person.', read_safe: false, inputSchema: { type: 'object', properties: { code: { type: 'string' }, actingToken: { type: 'string' }, previousActingToken: { type: 'string' }, subject: { type: 'object', properties: { code: { type: 'string' }, escalationId: { type: 'string' } }, required: ['code', 'escalationId'] }, stationRole: { type: 'string' } }, required: ['code'] } },
140
140
  { name: 'execute_scan_choice', description: 'Execute one choice presented by a PRESENT step (the info-choice screen). The pointer is re-validated against live config, row state, the acting-identity gate, and RBAC before the verb runs.', read_safe: false, inputSchema: { type: 'object', properties: { schemeVersion: { type: 'integer' }, category: { type: 'string' }, stepIndex: { type: 'integer' }, choiceIndex: { type: 'integer' }, escalationId: { type: 'string' }, actingToken: { type: 'string' } }, required: ['schemeVersion', 'category', 'stepIndex', 'choiceIndex', 'escalationId'] } },
141
141
  { name: 'list_scan_schemes', description: 'List all scan-code schemes: version digit, name, target metadata facet, and encoding (fixed digits or delimited text).', read_safe: true, inputSchema: { type: 'object', properties: {} } },
142
142
  { name: 'upsert_scan_scheme', description: 'Create or replace a scan scheme: which metadata facet the scanned target resolves against and how the code string parses. kind=identity turns the scheme into a badge layer minting acting-identity grants.', read_safe: false, inputSchema: { type: 'object', properties: { version: { type: 'integer' }, name: { type: 'string' }, target_facet: { type: 'string' }, encoding: { type: 'string', enum: ['fixed', 'delimited'] }, delimiter: { type: 'string' }, target_length: { type: 'integer' }, kind: { type: 'string', enum: ['action', 'identity'] }, grant_ttl_seconds: { type: 'integer' }, grant_max_uses: { type: 'integer' }, enabled: { type: 'boolean' } }, required: ['version', 'name', 'target_facet'] } },
@@ -1 +1 @@
1
- {"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../adapters/express.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/announcements.ts","../api/auth-sso.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/diagnostics.ts","../api/domain.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/me.ts","../api/namespaces.ts","../api/overview.ts","../api/personas.ts","../api/pipelines.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/accumulate.ts","../api/escalations/analytics.ts","../api/escalations/bulk.ts","../api/escalations/cancel.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/facets.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/lookups.ts","../api/escalations/metadata.ts","../api/escalations/resolve-batch.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/scan-codes/badge-policy.ts","../api/scan-codes/choice.ts","../api/scan-codes/config.ts","../api/scan-codes/context.ts","../api/scan-codes/execute.ts","../api/scan-codes/grant.ts","../api/scan-codes/hold.ts","../api/scan-codes/identity.ts","../api/scan-codes/index.ts","../api/scan-codes/locate.ts","../api/scan-codes/present.ts","../api/scan-codes/subject.ts","../api/scan-codes/verb-accumulate.ts","../api/scan-codes/verb-fill.ts","../api/scan-codes/verbs-subject.ts","../api/scan-codes/verbs.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/input-lookups.ts","../api/workflows/input-validation.ts","../api/workflows/invocable.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/typed-resolution.ts","../lib/uuid.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/personas.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/roles.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/escalation-wire.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats-ws-proxy.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/events/system-events.ts","../lib/json-path/pick.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/branding.ts","../modules/config.ts","../modules/defaults.ts","../modules/features.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/search.ts","../modules/sso.ts","../modules/utils.ts","../modules/version.ts","../routes/agents.ts","../routes/announcements.ts","../routes/auth-sso.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/diagnostics.ts","../routes/docs.ts","../routes/domain.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-endpoint.ts","../routes/mcp.ts","../routes/me.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/overview.ts","../routes/personas.ts","../routes/pipelines.ts","../routes/roles.ts","../routes/scan-codes.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/accumulate.ts","../routes/escalations/acting.ts","../routes/escalations/analytics.ts","../routes/escalations/bulk.ts","../routes/escalations/facets.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/metadata.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/ortho-populate.ts","../scripts/printer-cycle.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../scripts/twin-farm.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/invocation-access.ts","../services/workflow-invocation.ts","../services/workflow-state.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/announcement/index.ts","../services/announcement/sql.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/auth/sql.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/diagnostics/index.ts","../services/diagnostics/patterns.ts","../services/domain/index.ts","../services/domain/read.ts","../services/domain/seed.ts","../services/domain/sql.ts","../services/domain/validate.ts","../services/domain/write.ts","../services/escalation/accumulate.ts","../services/escalation/aggregate-sql.ts","../services/escalation/aggregate-validate.ts","../services/escalation/aggregates.ts","../services/escalation/batch.ts","../services/escalation/bulk.ts","../services/escalation/client.ts","../services/escalation/crud.ts","../services/escalation/facet-sql.ts","../services/escalation/facets.ts","../services/escalation/index.ts","../services/escalation/map.ts","../services/escalation/metrics-cache.ts","../services/escalation/queries.ts","../services/escalation/resolver-validation.ts","../services/escalation/sql.ts","../services/escalation/submit-guard.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/acting-identity.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/knowledge/index.ts","../services/knowledge/lookup-cache.ts","../services/knowledge/lookup-refs.ts","../services/knowledge/sql.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/exposure.ts","../services/mcp/external-server.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/seed-service-account.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/overview/index.ts","../services/overview/sql.ts","../services/persona/index.ts","../services/persona/sql.ts","../services/persona/types.ts","../services/pipelines/enrichment.ts","../services/pipelines/events.ts","../services/pipelines/execution-builder.ts","../services/pipelines/index.ts","../services/pipelines/queries.ts","../services/pipelines/sql.ts","../services/pipelines/types.ts","../services/role/badge-grant.ts","../services/role/enforcement-cache.ts","../services/role/index.ts","../services/role/schema-validator.ts","../services/role/seed.ts","../services/role/sql.ts","../services/role/types.ts","../services/scan-code/index.ts","../services/scan-code/parse.ts","../services/scan-code/read.ts","../services/scan-code/sql.ts","../services/scan-code/validate-subject.ts","../services/scan-code/validate.ts","../services/scan-code/write.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/preferences.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/scope.ts","../services/user/seed-admin.ts","../services/user/sql.ts","../services/user/sso-provision.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/pipe-validator.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../shared/workflow-state.ts","../shared/form-validation/ctx-path.ts","../shared/form-validation/derive-field-label.ts","../shared/form-validation/display-only-widgets.ts","../shared/form-validation/field-validator.ts","../shared/form-validation/index.ts","../shared/form-validation/invoke-context.ts","../shared/form-validation/validate-resolver-payload.ts","../shared/form-validation/x-lt-bind.ts","../shared/form-validation/x-lt-help.ts","../shared/form-validation/x-lt-invoke.ts","../shared/form-validation/x-lt-labels.ts","../shared/form-validation/x-lt-options.ts","../shared/form-validation/x-lt-query.ts","../shared/form-validation/x-lt-require-any.ts","../shared/form-validation/x-lt-require-sum.ts","../shared/form-validation/x-lt-scan.ts","../shared/form-validation/x-lt-show-if.ts","../shared/form-validation/x-lt-submit-guard.ts","../shared/form-validation/x-lt-submit-on-claim.ts","../shared/form-validation/x-lt-transition.ts","../shared/scan-code/gtin.ts","../shared/scan-code/index.ts","../shared/scan-code/parse.ts","../start/adapters.ts","../start/apply-report.ts","../start/config.ts","../start/graph-workflows.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/agent-subscriptions.ts","../system/mcp-servers/admin/agents.ts","../system/mcp-servers/admin/announcements.ts","../system/mcp-servers/admin/bot-accounts.ts","../system/mcp-servers/admin/controlplane.ts","../system/mcp-servers/admin/diagnostics.ts","../system/mcp-servers/admin/domain-context.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/exports.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/overview.ts","../system/mcp-servers/admin/personas.ts","../system/mcp-servers/admin/pipelines.ts","../system/mcp-servers/admin/scan-codes.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/settings.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/topics.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../themes/midnight.ts","../types/agent.ts","../types/analytics.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/domain-manifest.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/facets.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/persona.ts","../types/scan-choice.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/validation.ts","../types/workflow-icons.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../types/scan-code/constants.ts","../types/scan-code/index.ts","../types/scan-code/response.ts","../types/scan-code/rule.ts","../workers/index.ts"],"version":"5.9.3"}
1
+ {"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../adapters/express.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/announcements.ts","../api/auth-sso.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/diagnostics.ts","../api/domain.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/me.ts","../api/namespaces.ts","../api/overview.ts","../api/personas.ts","../api/pipelines.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/accumulate.ts","../api/escalations/analytics.ts","../api/escalations/bulk.ts","../api/escalations/cancel.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/facets.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/lookups.ts","../api/escalations/metadata.ts","../api/escalations/resolve-batch.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/scan-codes/badge-policy.ts","../api/scan-codes/choice.ts","../api/scan-codes/config.ts","../api/scan-codes/context.ts","../api/scan-codes/execute.ts","../api/scan-codes/grant.ts","../api/scan-codes/hold.ts","../api/scan-codes/identity.ts","../api/scan-codes/index.ts","../api/scan-codes/locate.ts","../api/scan-codes/present.ts","../api/scan-codes/subject.ts","../api/scan-codes/verb-accumulate.ts","../api/scan-codes/verb-fill.ts","../api/scan-codes/verb-into-subject.ts","../api/scan-codes/verbs-subject.ts","../api/scan-codes/verbs.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/input-lookups.ts","../api/workflows/input-validation.ts","../api/workflows/invocable.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/typed-resolution.ts","../lib/uuid.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/personas.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/roles.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/escalation-wire.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats-ws-proxy.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/events/system-events.ts","../lib/json-path/pick.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/branding.ts","../modules/config.ts","../modules/defaults.ts","../modules/features.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/search.ts","../modules/sso.ts","../modules/utils.ts","../modules/version.ts","../routes/agents.ts","../routes/announcements.ts","../routes/auth-sso.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/diagnostics.ts","../routes/docs.ts","../routes/domain.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-endpoint.ts","../routes/mcp.ts","../routes/me.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/overview.ts","../routes/personas.ts","../routes/pipelines.ts","../routes/roles.ts","../routes/scan-codes.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/accumulate.ts","../routes/escalations/acting.ts","../routes/escalations/analytics.ts","../routes/escalations/bulk.ts","../routes/escalations/facets.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/metadata.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/ortho-populate.ts","../scripts/printer-cycle.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../scripts/twin-farm.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/invocation-access.ts","../services/workflow-invocation.ts","../services/workflow-state.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/announcement/index.ts","../services/announcement/sql.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/auth/sql.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/diagnostics/index.ts","../services/diagnostics/patterns.ts","../services/domain/index.ts","../services/domain/read.ts","../services/domain/seed.ts","../services/domain/sql.ts","../services/domain/validate.ts","../services/domain/write.ts","../services/escalation/accumulate.ts","../services/escalation/aggregate-sql.ts","../services/escalation/aggregate-validate.ts","../services/escalation/aggregates.ts","../services/escalation/batch.ts","../services/escalation/bulk.ts","../services/escalation/claim-asserted.ts","../services/escalation/client.ts","../services/escalation/crud.ts","../services/escalation/facet-sql.ts","../services/escalation/facets.ts","../services/escalation/index.ts","../services/escalation/map.ts","../services/escalation/metrics-cache.ts","../services/escalation/queries.ts","../services/escalation/resolver-validation.ts","../services/escalation/sql.ts","../services/escalation/submit-guard.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/acting-identity.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/knowledge/index.ts","../services/knowledge/lookup-cache.ts","../services/knowledge/lookup-refs.ts","../services/knowledge/sql.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/exposure.ts","../services/mcp/external-server.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/seed-service-account.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/overview/index.ts","../services/overview/sql.ts","../services/persona/index.ts","../services/persona/sql.ts","../services/persona/types.ts","../services/pipelines/enrichment.ts","../services/pipelines/events.ts","../services/pipelines/execution-builder.ts","../services/pipelines/index.ts","../services/pipelines/queries.ts","../services/pipelines/sql.ts","../services/pipelines/types.ts","../services/role/badge-grant.ts","../services/role/enforcement-cache.ts","../services/role/index.ts","../services/role/schema-validator.ts","../services/role/seed.ts","../services/role/sql.ts","../services/role/types.ts","../services/scan-code/index.ts","../services/scan-code/parse.ts","../services/scan-code/read.ts","../services/scan-code/sql.ts","../services/scan-code/validate-facts.ts","../services/scan-code/validate-query.ts","../services/scan-code/validate-subject.ts","../services/scan-code/validate.ts","../services/scan-code/write.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/preferences.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/scope.ts","../services/user/seed-admin.ts","../services/user/sql.ts","../services/user/sso-provision.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/pipe-validator.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../shared/workflow-state.ts","../shared/form-validation/ctx-path.ts","../shared/form-validation/derive-field-label.ts","../shared/form-validation/display-only-widgets.ts","../shared/form-validation/field-validator.ts","../shared/form-validation/index.ts","../shared/form-validation/invoke-context.ts","../shared/form-validation/validate-resolver-payload.ts","../shared/form-validation/x-lt-bind.ts","../shared/form-validation/x-lt-help.ts","../shared/form-validation/x-lt-invoke.ts","../shared/form-validation/x-lt-labels.ts","../shared/form-validation/x-lt-options.ts","../shared/form-validation/x-lt-query.ts","../shared/form-validation/x-lt-require-any.ts","../shared/form-validation/x-lt-require-sum.ts","../shared/form-validation/x-lt-scan.ts","../shared/form-validation/x-lt-show-if.ts","../shared/form-validation/x-lt-submit-guard.ts","../shared/form-validation/x-lt-submit-on-claim.ts","../shared/form-validation/x-lt-transition.ts","../shared/scan-code/gtin.ts","../shared/scan-code/index.ts","../shared/scan-code/parse.ts","../start/adapters.ts","../start/apply-report.ts","../start/config.ts","../start/graph-workflows.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/agent-subscriptions.ts","../system/mcp-servers/admin/agents.ts","../system/mcp-servers/admin/announcements.ts","../system/mcp-servers/admin/bot-accounts.ts","../system/mcp-servers/admin/controlplane.ts","../system/mcp-servers/admin/diagnostics.ts","../system/mcp-servers/admin/domain-context.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/exports.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/overview.ts","../system/mcp-servers/admin/personas.ts","../system/mcp-servers/admin/pipelines.ts","../system/mcp-servers/admin/scan-codes.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/settings.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/topics.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../themes/midnight.ts","../types/agent.ts","../types/analytics.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/domain-manifest.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/facets.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/persona.ts","../types/scan-choice.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/validation.ts","../types/workflow-icons.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../types/scan-code/constants.ts","../types/scan-code/index.ts","../types/scan-code/response.ts","../types/scan-code/rule.ts","../workers/index.ts"],"version":"5.9.3"}
@@ -107,27 +107,33 @@ export declare const ESCALATION_METADATA_KEYS: {
107
107
  */
108
108
  export declare const ESCALATION_ENVELOPE_KEYS: {
109
109
  /**
110
- * Versioned knowledge lookup refs: `EscalationLookupRef[]`. Each ref pins
111
- * an immutable knowledge edition; its presence on the row grants the
112
- * escalation's role the right to fetch that edition via
110
+ * Versioned knowledge lookup refs: `EscalationLookupRef[]`. Each ref names
111
+ * a knowledge entry, pinned to one edition or following the current one;
112
+ * its presence on the row grants the escalation's role the right to fetch
113
+ * that entry's edition via
113
114
  * GET /escalations/:id/lookups, and the resolved content addresses in
114
115
  * forms as the `lookup.<as ?? key>` context domain. Set ergonomically via
115
116
  * `conditional`'s `lookups` config field.
116
117
  */
117
118
  readonly LOOKUPS: "lookups";
118
119
  };
120
+ /** A lookup ref `version` that follows the entry's newest edition. */
121
+ export declare const LOOKUP_VERSION_CURRENT: "current";
119
122
  /**
120
- * One versioned knowledge lookup reference. `version` is required by design:
121
- * a ref names an immutable edition, never a moving target. Evolve the list by
122
- * writing the entry (a new version mints automatically) and repinning here.
123
- * `as` renames the ref's form-context address when the key alone is ambiguous.
123
+ * One knowledge lookup reference. `version` pins an immutable edition; absent
124
+ * or `'current'`, the ref follows the entry's newest edition: a pending row
125
+ * reads the edition in force when it renders, and a closed row reads the
126
+ * edition that was current when it closed. `as` renames the ref's
127
+ * form-context address when the key alone is ambiguous.
124
128
  */
125
129
  export interface EscalationLookupRef {
126
130
  domain: string;
127
131
  key: string;
128
- version: number;
132
+ version?: number | typeof LOOKUP_VERSION_CURRENT;
129
133
  as?: string;
130
134
  }
135
+ /** True when the ref follows the newest edition rather than pinning one. */
136
+ export declare function isCurrentLookupRef(ref: Pick<EscalationLookupRef, 'version'>): boolean;
131
137
  /**
132
138
  * Fail-loud structural validation for lookup refs, run before the escalation
133
139
  * row is written on every creation path. Dependency-free: the `conditional`
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ESCALATION_ENVELOPE_KEYS = exports.ESCALATION_METADATA_KEYS = exports.ACCUMULATOR_RESULT_KEYS = exports.ESCALATION_ACCUMULATE_KEYS = exports.ESCALATION_BATCH_KEYS = exports.ESCALATION_ITEM_KEY_MAX_LENGTH = void 0;
3
+ exports.LOOKUP_VERSION_CURRENT = exports.ESCALATION_ENVELOPE_KEYS = exports.ESCALATION_METADATA_KEYS = exports.ACCUMULATOR_RESULT_KEYS = exports.ESCALATION_ACCUMULATE_KEYS = exports.ESCALATION_BATCH_KEYS = exports.ESCALATION_ITEM_KEY_MAX_LENGTH = void 0;
4
+ exports.isCurrentLookupRef = isCurrentLookupRef;
4
5
  exports.assertLookupRefs = assertLookupRefs;
5
6
  exports.isEffectivelyClaimed = isEffectivelyClaimed;
6
7
  exports.isAvailable = isAvailable;
@@ -74,15 +75,22 @@ exports.ESCALATION_METADATA_KEYS = {
74
75
  */
75
76
  exports.ESCALATION_ENVELOPE_KEYS = {
76
77
  /**
77
- * Versioned knowledge lookup refs: `EscalationLookupRef[]`. Each ref pins
78
- * an immutable knowledge edition; its presence on the row grants the
79
- * escalation's role the right to fetch that edition via
78
+ * Versioned knowledge lookup refs: `EscalationLookupRef[]`. Each ref names
79
+ * a knowledge entry, pinned to one edition or following the current one;
80
+ * its presence on the row grants the escalation's role the right to fetch
81
+ * that entry's edition via
80
82
  * GET /escalations/:id/lookups, and the resolved content addresses in
81
83
  * forms as the `lookup.<as ?? key>` context domain. Set ergonomically via
82
84
  * `conditional`'s `lookups` config field.
83
85
  */
84
86
  LOOKUPS: 'lookups',
85
87
  };
88
+ /** A lookup ref `version` that follows the entry's newest edition. */
89
+ exports.LOOKUP_VERSION_CURRENT = 'current';
90
+ /** True when the ref follows the newest edition rather than pinning one. */
91
+ function isCurrentLookupRef(ref) {
92
+ return ref.version === undefined || ref.version === exports.LOOKUP_VERSION_CURRENT;
93
+ }
86
94
  /**
87
95
  * Fail-loud structural validation for lookup refs, run before the escalation
88
96
  * row is written on every creation path. Dependency-free: the `conditional`
@@ -90,7 +98,7 @@ exports.ESCALATION_ENVELOPE_KEYS = {
90
98
  */
91
99
  function assertLookupRefs(refs) {
92
100
  if (!Array.isArray(refs)) {
93
- throw new Error('lookups must be an array of { domain, key, version } refs');
101
+ throw new Error('lookups must be an array of { domain, key, version? } refs');
94
102
  }
95
103
  for (const ref of refs) {
96
104
  const r = (ref ?? {});
@@ -98,8 +106,9 @@ function assertLookupRefs(refs) {
98
106
  || typeof r.key !== 'string' || r.key.length === 0) {
99
107
  throw new Error('Each lookup ref requires a non-empty domain and key');
100
108
  }
101
- if (typeof r.version !== 'number' || !Number.isInteger(r.version) || r.version < 1) {
102
- throw new Error(`Lookup ref ${r.domain}/${r.key} requires a positive integer version — refs pin immutable editions`);
109
+ const pinned = typeof r.version === 'number' && Number.isInteger(r.version) && r.version >= 1;
110
+ if (r.version !== undefined && r.version !== exports.LOOKUP_VERSION_CURRENT && !pinned) {
111
+ throw new Error(`Lookup ref ${r.domain}/${r.key}: version must be a positive integer, 'current', or absent`);
103
112
  }
104
113
  if (r.as !== undefined && (typeof r.as !== 'string' || r.as.length === 0)) {
105
114
  throw new Error(`Lookup ref ${r.domain}/${r.key}: "as" must be a non-empty string when present`);
@@ -1,7 +1,7 @@
1
1
  export type { LTEnvelope, } from './envelope';
2
2
  export type { LTTaskStatus, LTTaskPriority, LTTaskRecord, LTMilestone, } from './task';
3
- export type { LTEscalationStatus, LTEscalationPriority, LTEscalationRecord, EscalationResolution, BatchItemOutcome, AccumulateConfig, AccumulatorResult, AccumulatedItem, AccumulatorTrigger, AccumulateItemOutcome, RemoveAccumulatedItemOutcome, } from './escalation';
4
- export { isEffectivelyClaimed, isAvailable, ESCALATION_METADATA_KEYS, ESCALATION_BATCH_KEYS, ESCALATION_ACCUMULATE_KEYS, ACCUMULATOR_RESULT_KEYS, } from './escalation';
3
+ export type { LTEscalationStatus, LTEscalationPriority, LTEscalationRecord, EscalationResolution, BatchItemOutcome, AccumulateConfig, AccumulatorResult, AccumulatedItem, AccumulatorTrigger, AccumulateItemOutcome, RemoveAccumulatedItemOutcome, EscalationLookupRef, } from './escalation';
4
+ export { isEffectivelyClaimed, isAvailable, ESCALATION_METADATA_KEYS, ESCALATION_BATCH_KEYS, ESCALATION_ACCUMULATE_KEYS, ACCUMULATOR_RESULT_KEYS, LOOKUP_VERSION_CURRENT, isCurrentLookupRef, } from './escalation';
5
5
  export type { DomainDictionary, DomainTerm, DomainTermKind, DomainTermMapping, DomainRunbook, DomainIndex, } from './domain-manifest';
6
6
  export type { FacetRangeOp, FacetRange, FacetOrder, FacetQuery, ContainerSelector, ClaimedGroup, GroupSummary, } from './facets';
7
7
  export type { GroupableColumn, AnalyticsQuery, FacetGroupBy, AnalyticsWindow, AggregateMeasure, StateMatch, AggregateOrder, AggregateByFacetsInput, AggregateRow, AggregateByFacetsResult, TimelineByFacetInput, TimelineInterval, TimelineByFacetResult, } from './analytics';
@@ -25,7 +25,7 @@ export type { DelegationTokenPayload, ToolAuthContext, ServiceTokenRecord, } fro
25
25
  export type { ToolContext, ToolPrincipal, ToolCredentials, ToolTrace, } from './tool-context';
26
26
  export type { LTOAuthProviderConfig, LTOAuthStartConfig, LTOAuthUserInfo, LTDecryptedToken, LTOAuthTokenRecord, } from './oauth';
27
27
  export type { LTApiResult, LTApiAuth, } from './sdk';
28
- export type { ScanEncoding, ScanSchemeKind, ScanVerb, ScanTemplateBag, ScanOutcome, ScanAvailability, ScanCardinality, ScanScheme, ScanStepQuery, ScanStepParams, ScanStep, ScanRuleFallback, ScanRule, ParsedScanCode, ScanExecuteRequest, ScanPendingAction, ScanExecuteResponse, ScanAccumulateParams, ScanHoldParams, ScanFillParams, ScanSubjectGate, ScanMatch, ScanRefusal, ScanSubjectRef, ScanHeldSubject, ScanGrantScope, } from './scan-code';
28
+ export type { ScanEncoding, ScanSchemeKind, ScanVerb, ScanTemplateBag, ScanOutcome, ScanAvailability, ScanCardinality, ScanScheme, ScanStepQuery, ScanStepParams, ScanStep, ScanRuleFallback, ScanRule, ParsedScanCode, ScanExecuteRequest, ScanPendingAction, ScanExecuteResponse, ScanAccumulateParams, ScanFact, ScanHoldParams, ScanFillParams, ScanSubjectGate, ScanMatch, ScanRefusal, ScanSubjectRef, ScanHeldSubject, ScanGrantScope, } from './scan-code';
29
29
  export type { ScanChoice, ScanChoiceExecuteRequest, ScanPresentedChoice, } from './scan-choice';
30
30
  export { SCAN_ENCODINGS, SCAN_SCHEME_KINDS, SCAN_VERBS, SCAN_MUTATING_VERBS, SCAN_OUTCOMES, SCAN_AVAILABILITY, SCAN_CARDINALITY, SCAN_PROVENANCE_KEYS, SCAN_TEMPLATE_TOKENS, SCAN_TEMPLATE_BAGS, SCAN_GRANT_SCOPES, SCAN_HOLD_TTL_DEFAULT_SECONDS, SCAN_HOLD_TTL_MIN_SECONDS, SCAN_HOLD_TTL_MAX_SECONDS, SCAN_FILL_SEPARATOR_DEFAULT, GTIN_CATEGORY, GTIN_LENGTHS, ACTING_IDENTITY_LABEL, } from './scan-code';
31
31
  export type { LTAgent, LTAgentStatus, LTAgentStats, AgentCapability, AgentBehaviors, AgentSchedule, AgentTrigger, } from './agent';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWorkflowIcon = exports.WORKFLOW_ICONS = exports.ACTING_IDENTITY_LABEL = exports.GTIN_LENGTHS = exports.GTIN_CATEGORY = exports.SCAN_FILL_SEPARATOR_DEFAULT = exports.SCAN_HOLD_TTL_MAX_SECONDS = exports.SCAN_HOLD_TTL_MIN_SECONDS = exports.SCAN_HOLD_TTL_DEFAULT_SECONDS = exports.SCAN_GRANT_SCOPES = exports.SCAN_TEMPLATE_BAGS = exports.SCAN_TEMPLATE_TOKENS = exports.SCAN_PROVENANCE_KEYS = exports.SCAN_CARDINALITY = exports.SCAN_AVAILABILITY = exports.SCAN_OUTCOMES = exports.SCAN_MUTATING_VERBS = exports.SCAN_VERBS = exports.SCAN_SCHEME_KINDS = exports.SCAN_ENCODINGS = exports.GROUPABLE_COLUMNS = exports.ACCUMULATOR_RESULT_KEYS = exports.ESCALATION_ACCUMULATE_KEYS = exports.ESCALATION_BATCH_KEYS = exports.ESCALATION_METADATA_KEYS = exports.isAvailable = exports.isEffectivelyClaimed = void 0;
3
+ exports.isWorkflowIcon = exports.WORKFLOW_ICONS = exports.ACTING_IDENTITY_LABEL = exports.GTIN_LENGTHS = exports.GTIN_CATEGORY = exports.SCAN_FILL_SEPARATOR_DEFAULT = exports.SCAN_HOLD_TTL_MAX_SECONDS = exports.SCAN_HOLD_TTL_MIN_SECONDS = exports.SCAN_HOLD_TTL_DEFAULT_SECONDS = exports.SCAN_GRANT_SCOPES = exports.SCAN_TEMPLATE_BAGS = exports.SCAN_TEMPLATE_TOKENS = exports.SCAN_PROVENANCE_KEYS = exports.SCAN_CARDINALITY = exports.SCAN_AVAILABILITY = exports.SCAN_OUTCOMES = exports.SCAN_MUTATING_VERBS = exports.SCAN_VERBS = exports.SCAN_SCHEME_KINDS = exports.SCAN_ENCODINGS = exports.GROUPABLE_COLUMNS = exports.isCurrentLookupRef = exports.LOOKUP_VERSION_CURRENT = exports.ACCUMULATOR_RESULT_KEYS = exports.ESCALATION_ACCUMULATE_KEYS = exports.ESCALATION_BATCH_KEYS = exports.ESCALATION_METADATA_KEYS = exports.isAvailable = exports.isEffectivelyClaimed = void 0;
4
4
  var escalation_1 = require("./escalation");
5
5
  Object.defineProperty(exports, "isEffectivelyClaimed", { enumerable: true, get: function () { return escalation_1.isEffectivelyClaimed; } });
6
6
  Object.defineProperty(exports, "isAvailable", { enumerable: true, get: function () { return escalation_1.isAvailable; } });
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "ESCALATION_METADATA_KEYS", { enumerable: true, g
8
8
  Object.defineProperty(exports, "ESCALATION_BATCH_KEYS", { enumerable: true, get: function () { return escalation_1.ESCALATION_BATCH_KEYS; } });
9
9
  Object.defineProperty(exports, "ESCALATION_ACCUMULATE_KEYS", { enumerable: true, get: function () { return escalation_1.ESCALATION_ACCUMULATE_KEYS; } });
10
10
  Object.defineProperty(exports, "ACCUMULATOR_RESULT_KEYS", { enumerable: true, get: function () { return escalation_1.ACCUMULATOR_RESULT_KEYS; } });
11
+ Object.defineProperty(exports, "LOOKUP_VERSION_CURRENT", { enumerable: true, get: function () { return escalation_1.LOOKUP_VERSION_CURRENT; } });
12
+ Object.defineProperty(exports, "isCurrentLookupRef", { enumerable: true, get: function () { return escalation_1.isCurrentLookupRef; } });
11
13
  var analytics_1 = require("./analytics");
12
14
  Object.defineProperty(exports, "GROUPABLE_COLUMNS", { enumerable: true, get: function () { return analytics_1.GROUPABLE_COLUMNS; } });
13
15
  var scan_code_1 = require("./scan-code");
@@ -87,6 +87,11 @@ export interface ScanExecuteResponse {
87
87
  notPrimed?: ScanRuleFallback;
88
88
  /** The labeled choice set (CHOICES). */
89
89
  choices?: ScanPresentedChoice[];
90
+ /** CHOICES: the step's curated facts, rendered; absent when the step declares none. */
91
+ facts?: {
92
+ label: string;
93
+ value: string;
94
+ }[];
90
95
  /** NO_OPEN_CONTAINER: the facet the located item names and no pending container carries. */
91
96
  container?: {
92
97
  facet: string;
@@ -33,6 +33,13 @@ export interface ScanStepQuery {
33
33
  availability?: ScanAvailability;
34
34
  /** Extra metadata guards beyond the scheme's target facet. */
35
35
  facets?: Record<string, any>;
36
+ /**
37
+ * Escalation types / subtypes the located row must have. Steps that locate
38
+ * and then act by id only (show, list, present with any choice, hold, fill,
39
+ * accumulate); with `availability: 'mine'`, at most one of each.
40
+ */
41
+ types?: string[];
42
+ subtypes?: string[];
36
43
  }
37
44
  export interface ScanStepParams {
38
45
  /** Canned resolver payload template (resolve, accumulate). Values may use template tokens. */
@@ -84,6 +91,15 @@ export interface ScanAccumulateParams {
84
91
  from?: 'subject';
85
92
  /** Into-subject mode: the held subject's row is the accumulator; the item is the scanned code. */
86
93
  into?: 'subject';
94
+ /**
95
+ * Into-subject mode: the scanned code's own pending row (the scheme's
96
+ * target facet = the scanned target, narrowed by this selector and the
97
+ * actor's read scope) is written as the reciprocal in the same statement
98
+ * as the subject's entry. Absent, nothing else is written.
99
+ */
100
+ item?: ContainerSelector & {
101
+ roles?: string[];
102
+ };
87
103
  }
88
104
  export interface ScanHoldParams {
89
105
  /** Seconds the station holds the subject (5..600, default 45). */
@@ -138,11 +154,18 @@ export interface ScanRefusal {
138
154
  /** The atomic write lost a race (the container closed, the slot was taken). */
139
155
  conflict?: string;
140
156
  /**
141
- * From-subject accumulate: the pairing held but no open container carries
142
- * the scanned code. Without it the step falls through to the next one.
157
+ * Subject accumulate: the pairing held but the row the scan names was not
158
+ * found (the open container for from-subject, the item's own row for
159
+ * into-subject with `item`). Without it the step falls through.
143
160
  */
144
161
  missing?: string;
145
162
  }
163
+ /** One labeled fact on the info-choice screen. */
164
+ export interface ScanFact {
165
+ label: string;
166
+ /** Template rendered against the located row (`{item.<facet>}`) and the scan tokens. */
167
+ value: string;
168
+ }
146
169
  export interface ScanStep {
147
170
  query: ScanStepQuery;
148
171
  cardinality?: ScanCardinality;
@@ -154,6 +177,13 @@ export interface ScanStep {
154
177
  params?: ScanStepParams;
155
178
  /** PRESENT only: the labeled choice set rendered under the located reality. */
156
179
  choices?: ScanChoice[];
180
+ /**
181
+ * PRESENT only: the facts the station states about the located row, in
182
+ * order. Each value is a template (`{item.binCode}`, `{scan.target}`); a
183
+ * token with nothing to read renders empty. Absent, the station lists the
184
+ * row's metadata.
185
+ */
186
+ facts?: ScanFact[];
157
187
  /**
158
188
  * PRESENT only: when the step holds exactly ONE confirm-less choice, the
159
189
  * scan executes it directly instead of presenting — one scan, one action.
@@ -1,2 +1,2 @@
1
- import{j as o}from"./vendor-query-DvWWuNIB.js";import{c as n}from"./tasks-La_-WAUn.js";import{z as m,a9 as c}from"./index-BQeHJHYN.js";import{u}from"./mcp-vLIutbnc.js";import{P as d}from"./PageHeaderWithStats-DHj8Mqox.js";import"./vendor-react-_9U4mKFr.js";import"./vendor-icons-CeVtUKyP.js";function S(){var e;m();const{data:t}=n({limit:1}),{data:a}=c({status:"pending",limit:1}),{data:s}=u(),l=((e=s==null?void 0:s.servers)==null?void 0:e.filter(i=>i.status==="connected").length)??0,r=s?`${l}/${s.total}`:"—";return o.jsx("div",{children:o.jsx(d,{title:"Admin",stats:[{label:"Tasks",value:(t==null?void 0:t.total)??"—"},{label:"Pending Escalations",value:(a==null?void 0:a.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:r},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]})})}export{S as AdminDashboard};
2
- //# sourceMappingURL=AdminDashboard-DBW12qQt.js.map
1
+ import{j as o}from"./vendor-query-DvWWuNIB.js";import{c as n}from"./tasks-BE1O57Bf.js";import{z as m,a9 as c}from"./index-fUsx_gYx.js";import{u}from"./mcp-CLA1z7Pg.js";import{P as d}from"./PageHeaderWithStats-DHj8Mqox.js";import"./vendor-react-_9U4mKFr.js";import"./vendor-icons-CeVtUKyP.js";function S(){var e;m();const{data:t}=n({limit:1}),{data:a}=c({status:"pending",limit:1}),{data:s}=u(),l=((e=s==null?void 0:s.servers)==null?void 0:e.filter(i=>i.status==="connected").length)??0,r=s?`${l}/${s.total}`:"—";return o.jsx("div",{children:o.jsx(d,{title:"Admin",stats:[{label:"Tasks",value:(t==null?void 0:t.total)??"—"},{label:"Pending Escalations",value:(a==null?void 0:a.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:r},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]})})}export{S as AdminDashboard};
2
+ //# sourceMappingURL=AdminDashboard-hI5-kKpL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminDashboard-DBW12qQt.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"oSAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"AdminDashboard-hI5-kKpL.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"oSAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}
@@ -1,4 +1,4 @@
1
- import{j as e,a as f}from"./vendor-query-DvWWuNIB.js";import{a as ce,d as le,b as oe}from"./agents-CdFkgFvg.js";import{E as de,C as xe,u as pe,a as ue,b as me,c as he}from"./CronLabel-DdnIuudX.js";import{g as fe,a as ve,c as be,y as ye}from"./index-BQeHJHYN.js";import{P as ge}from"./PageHeader-CMd3f4bz.js";import{x as E,o as K,K as je,R as U,g as M,z as Z,ax as Y,f as V,bX as ee,ab as we}from"./vendor-icons-CeVtUKyP.js";import{g as Ne}from"./knowledge-Bafewjxk.js";import{R as te}from"./RunAsSelector-tgEooTyU.js";import{u as _e}from"./yaml-workflows-COHOjdhF.js";import{u as se}from"./capabilities-Dw1ObK2-.js";import{u as ke}from"./topics-CzYMlvqm.js";import{W as Q}from"./WorkflowPill-Dg7BDTyM.js";import{e as Ce,u as Se,f as qe}from"./vendor-react-_9U4mKFr.js";import"./BotPicker-BZo4Kp4a.js";import"./bots-Mj3LHWWg.js";const X={name:"",description:"",goals:"",rules:"",user_id:"",knowledge_domain:"",subscriptions:[],schedules:[]},Oe={topic:"",filter:"",reaction_type:"durable",workflow_type:"",pipeline_id:"",mcp_prompt:"",server_id:"",tool_name:"",input_mapping:"{}",execute_as:"",enabled:!0},Ae={cron:"0 * * * *",reaction_type:"durable",workflow_type:"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""};function Re(s,a){var o,x,m;const r=(x=(o=s.behaviors)==null?void 0:o.schedules)!=null&&x.length?s.behaviors.schedules.map(i=>({cron:i.cron||"",reaction_type:i.reaction_type||"durable",workflow_type:i.workflow_type||"",pipeline_id:i.pipeline_id||"",server_id:i.server_id||"",tool_name:i.tool_name||"",envelope:i.envelope?JSON.stringify(i.envelope,null,2):"{}",execute_as:i.execute_as||""})):(m=s.behaviors)!=null&&m.cron?[{cron:s.behaviors.cron,reaction_type:"durable",workflow_type:s.workflow_type??"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""}]:[];return{name:s.id,description:s.description??"",goals:s.goals??"",rules:s.rules??"",user_id:s.user_id??"",knowledge_domain:s.knowledge_domain??"",subscriptions:a.map(i=>({id:i.id,topic:i.topic,filter:i.filter?JSON.stringify(i.filter,null,2):"",reaction_type:i.reaction_type,workflow_type:i.workflow_type??"",pipeline_id:i.pipeline_id??"",mcp_prompt:i.mcp_prompt??"",server_id:i.server_id??"",tool_name:i.tool_name??"",input_mapping:JSON.stringify(i.input_mapping??{},null,2),execute_as:i.execute_as??"",enabled:i.enabled})),schedules:r}}function Ee(s){var r;const a={};return s.schedules.length>0&&(a.schedules=s.schedules.map(o=>({cron:o.cron,reaction_type:o.reaction_type||"durable",workflow_type:o.reaction_type==="pipeline"?void 0:o.workflow_type,pipeline_id:o.reaction_type==="pipeline"?o.pipeline_id:void 0,envelope:B(o.envelope)??{},execute_as:o.execute_as||void 0})),a.cron=s.schedules[0].cron),{id:s.name,description:s.description||void 0,goals:s.goals||void 0,rules:s.rules||void 0,user_id:s.user_id||void 0,knowledge_domain:s.knowledge_domain||void 0,behaviors:a,workflow_type:((r=s.schedules[0])==null?void 0:r.workflow_type)||void 0,pipeline_id:void 0}}function $e(s){return s.subscriptions.map(a=>({id:a.id,topic:a.topic,filter:a.filter?B(a.filter):void 0,reaction_type:a.reaction_type,workflow_type:a.workflow_type||void 0,pipeline_id:a.pipeline_id||void 0,mcp_prompt:a.mcp_prompt||void 0,server_id:a.server_id||void 0,tool_name:a.tool_name||void 0,input_mapping:B(a.input_mapping)??{},execute_as:a.execute_as||void 0,enabled:a.enabled}))}function B(s){if(s.trim())try{return JSON.parse(s)}catch{return}}function Pe(s,a,r,o){let x;try{x=JSON.parse(s)}catch{x={}}const m=o.includes(a),i=r===""||r===void 0||r===null||Array.isArray(r)&&r.length===0||r==="[]";if(!m&&i){const{[a]:p,...l}=x;return JSON.stringify(l,null,2)}let u=r;if(typeof r=="string")try{const p=JSON.parse(r);Array.isArray(p)&&(u=p)}catch{}return JSON.stringify({...x,[a]:u},null,2)}const S="section-header mt-[3em] first:mt-0",P="label",_="hint",A="input",L="input-json w-full";function Ie({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Give your automation a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:identity"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Identity",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Name *"}),e.jsx("input",{type:"text",value:s.name,onChange:r=>a("name",r.target.value),placeholder:"health-monitor",className:A}),e.jsx("p",{className:_,children:"Lowercase, kebab-case. This appears everywhere."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Description"}),e.jsx("input",{type:"text",value:s.description,onChange:r=>a("description",r.target.value),placeholder:"Watches for workflow failures and captures diagnostics",className:A}),e.jsx("p",{className:_,children:"One sentence that explains what this automation does."})]})]})}function We({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Goals define what drives the automation. Rules define what constrains it."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:motivation"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Motivation",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-8",children:[e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Goals"}),e.jsx("textarea",{value:s.goals,onChange:r=>a("goals",r.target.value),placeholder:"Detect failures early, capture diagnostics, alert before cascading",rows:4,className:`${A} resize-none`}),e.jsx("p",{className:_,children:"Primary motivation. What the automation is trying to achieve."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Rules"}),e.jsx("textarea",{value:s.rules,onChange:r=>a("rules",r.target.value),placeholder:"Never auto-restart failed workflows. Always escalate to humans.",rows:4,className:`${A} resize-none`}),e.jsx("p",{className:_,children:"Guardrails. What it must never do, even when goals suggest it should."})]})]})]})}function Te({form:s,set:a}){const{data:r}=Ne(),o=(r==null?void 0:r.domains)??[];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Assign a knowledge domain — the automation's memory. It stores context here over time."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:knowledge"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Knowledge",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Knowledge Domain"}),e.jsx("input",{type:"text",value:s.knowledge_domain,onChange:x=>a("knowledge_domain",x.target.value),placeholder:"e.g., system-health, content-review, vendor-data",className:A,list:"domain-suggestions"}),e.jsx("datalist",{id:"domain-suggestions",children:o.map(x=>e.jsx("option",{value:x.domain},x.domain))}),e.jsx("p",{className:_,children:"Choose an existing domain to share memory, or type a new name to create one."})]}),o.length>0&&e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Existing Domains"}),e.jsx("div",{className:"space-y-0.5 mt-2",children:o.map(x=>e.jsxs("button",{type:"button",onClick:()=>a("knowledge_domain",x.domain),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${s.knowledge_domain===x.domain?"border-l-2 border-l-accent bg-accent/5":"hover:bg-surface-hover border-l-2 border-l-transparent"}`,children:[e.jsx(K,{className:"w-3.5 h-3.5 text-text-quaternary shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-sm text-text-primary flex-1",children:x.domain}),e.jsxs("span",{className:"text-2xs text-text-quaternary",children:[x.count," entries"]}),e.jsx("span",{className:"text-2xs text-text-quaternary",children:e.jsx(fe,{date:x.latest})})]},x.domain))})]})]})}function Me({serverId:s,toolName:a,onChange:r}){const{data:o}=se(),x=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[m,i]=f.useState(!1),[u,p]=f.useState(""),l=f.useRef(null),h=f.useRef(null);f.useEffect(()=>{if(!m)return;function t(n){h.current&&!h.current.contains(n.target)&&i(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[m]);const c=a?`${a}`:"",d=m?u:c,y=f.useMemo(()=>{const t=(m?u:"").toLowerCase();return t?x.filter(n=>n.name.toLowerCase().includes(t)||n.serverName.toLowerCase().includes(t)||(n.description??"").toLowerCase().includes(t)):x},[x,u,m]),v=a?x.find(t=>t.serverId===s&&t.name===a):void 0;return e.jsxs("div",{ref:h,className:"relative",children:[e.jsx("input",{ref:l,type:"text",value:d,onFocus:()=>{i(!0),p(c)},onChange:t=>{const n=t.target.value;p(n),n||r("",""),m||i(!0)},placeholder:"Search capabilities...",className:"input font-mono text-sm w-full"}),!m&&(v==null?void 0:v.description)&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-1 italic",children:v.description}),m&&y.length>0&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 max-h-64 overflow-y-auto rounded-md border border-surface-border bg-surface shadow-lg",children:y.map(t=>e.jsxs("button",{type:"button",onClick:()=>{r(t.serverId,t.name),p(t.name),i(!1)},className:`w-full text-left px-3 py-2 hover:bg-surface-hover transition-colors flex items-center gap-3 ${s===t.serverId&&a===t.name?"bg-accent/5":""}`,children:[e.jsx("span",{className:"text-2xs font-mono text-text-primary shrink-0",children:t.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-2xs font-medium shrink-0 bg-accent/10 text-accent",children:[e.jsx(je,{className:"w-2 h-2",strokeWidth:1.5}),t.serverName]}),t.description&&e.jsx("span",{className:"text-2xs text-text-quaternary truncate",children:t.description})]},`${t.serverId}:${t.name}`))}),m&&y.length===0&&u&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 rounded-md border border-surface-border bg-surface shadow-lg px-3 py-4 text-center",children:e.jsxs("p",{className:"text-2xs text-text-quaternary",children:['No capabilities match "',u,'"']})})]})}const Le={durable:"Workflow",pipeline:"Pipeline",capability:"Capability",mcp_query:"MCP Query"},Je=["durable","pipeline","capability","mcp_query"];function ae({reactionType:s,onReactionTypeChange:a,workflowType:r,onWorkflowTypeChange:o,pipelineId:x,onPipelineIdChange:m,serverId:i,toolName:u,onCapabilityChange:p,mcpPrompt:l,onMcpPromptChange:h,availableTypes:c=[...Je]}){const{data:d}=ve(),y=(d??[]).filter(n=>n.invocable).map(n=>n.workflow_type),{data:v}=_e({status:"active"}),t=((v==null?void 0:v.workflows)??[]).map(n=>({id:n.id,name:n.graph_topic||n.id}));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex gap-1",children:c.map(n=>{const b=s===n;return e.jsx("button",{type:"button",onClick:()=>a(n),className:`px-3 py-1.5 text-2xs font-medium rounded-md transition-colors ${b?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:Le[n]},n)})}),s==="durable"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Workflow *"}),e.jsxs("select",{value:r,onChange:n=>o(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select workflow..."}),y.map(n=>e.jsx("option",{value:n,children:n},n))]})]}),s==="pipeline"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Pipeline *"}),e.jsxs("select",{value:x,onChange:n=>m(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select pipeline..."}),t.map(n=>e.jsx("option",{value:n.id,children:n.name},n.id))]})]}),s==="capability"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Capability *"}),e.jsx(Me,{serverId:i,toolName:u,onChange:p})]}),s==="mcp_query"&&h&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Prompt *"}),e.jsx("textarea",{value:l??"",onChange:n=>h(n.target.value),placeholder:"Analyze the error and suggest remediation...",rows:3,className:"input resize-none"})]})]})}const Fe={task:"bg-status-active/10 text-status-active",workflow:"bg-accent/15 text-accent",escalation:"bg-status-warning/10 text-status-warning",activity:"bg-status-active/10 text-status-active",knowledge:"bg-accent/10 text-accent",file:"bg-status-draft/10 text-status-draft",agent:"bg-status-success/10 text-status-success",app:"bg-status-error/10 text-status-error",milestone:"bg-accent/10 text-accent"};function De({form:s,set:a}){const{data:r}=ke({limit:200}),{data:o}=se(),x=(r==null?void 0:r.topics)??[],m=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[i,u]=f.useState(0),p=(t,n,b)=>{const g=[...s.subscriptions];g[t]={...g[t],[n]:b},a("subscriptions",g)},l=()=>{a("subscriptions",[...s.subscriptions,{...Oe}]),u(s.subscriptions.length)},h=t=>{a("subscriptions",s.subscriptions.filter((n,b)=>b!==t)),i>=s.subscriptions.length-1&&u(Math.max(0,s.subscriptions.length-2))},c=s.subscriptions,d=c[i],y=t=>t.topic?t.reaction_type==="durable"?!!t.workflow_type:t.reaction_type==="pipeline"?!!t.pipeline_id:t.reaction_type==="mcp_query"?!!t.mcp_prompt:t.reaction_type==="capability"?!!t.server_id&&!!t.tool_name:!1:!1,v=d?x.find(t=>t.topic===d.topic):void 0;return c.length===0?e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(U,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1}),e.jsx("p",{className:"text-sm text-text-tertiary mb-2",children:"No event subscriptions yet"}),e.jsx("p",{className:"text-2xs text-text-quaternary max-w-sm mb-6",children:"Each subscription listens for a topic pattern and runs a workflow when it matches."}),e.jsxs("button",{onClick:l,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3.5 h-3.5"})," Add first subscription"]})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex gap-8",children:[e.jsxs("div",{className:"w-52 shrink-0 space-y-0.5",children:[c.map((t,n)=>e.jsxs("div",{className:`group/sub flex items-center rounded-md transition-colors ${i===n?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxs("button",{onClick:()=>u(n),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`w-2.5 h-2.5 rounded-full dot-ring shrink-0 ${y(t)?"bg-status-success":"bg-surface-border"}`}),e.jsx("span",{className:"text-2xs font-mono truncate",children:t.topic||"new subscription"})]}),e.jsxs("span",{className:"text-2xs text-text-quaternary ml-3",children:["→ ",t.workflow_type||t.tool_name||t.reaction_type]})]}),e.jsx("button",{onClick:b=>{b.stopPropagation(),confirm(`Remove subscription "${t.topic||"new"}"?
1
+ import{j as e,a as f}from"./vendor-query-DvWWuNIB.js";import{a as ce,d as le,b as oe}from"./agents-BohEn7vw.js";import{E as de,C as xe,u as pe,a as ue,b as me,c as he}from"./CronLabel-CnqhqW0B.js";import{g as fe,a as ve,c as be,y as ye}from"./index-fUsx_gYx.js";import{P as ge}from"./PageHeader-CMd3f4bz.js";import{x as E,o as K,K as je,R as U,g as M,z as Z,ax as Y,f as V,bX as ee,ab as we}from"./vendor-icons-CeVtUKyP.js";import{g as Ne}from"./knowledge-CCcTidNV.js";import{R as te}from"./RunAsSelector-CC_EHN3z.js";import{u as _e}from"./yaml-workflows-DQWE9ijc.js";import{u as se}from"./capabilities-CeFrBmYX.js";import{u as ke}from"./topics-Bg96Wp1r.js";import{W as Q}from"./WorkflowPill-Dg7BDTyM.js";import{e as Ce,u as Se,f as qe}from"./vendor-react-_9U4mKFr.js";import"./BotPicker-BXtey255.js";import"./bots-BG2EO-Wi.js";const X={name:"",description:"",goals:"",rules:"",user_id:"",knowledge_domain:"",subscriptions:[],schedules:[]},Oe={topic:"",filter:"",reaction_type:"durable",workflow_type:"",pipeline_id:"",mcp_prompt:"",server_id:"",tool_name:"",input_mapping:"{}",execute_as:"",enabled:!0},Ae={cron:"0 * * * *",reaction_type:"durable",workflow_type:"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""};function Re(s,a){var o,x,m;const r=(x=(o=s.behaviors)==null?void 0:o.schedules)!=null&&x.length?s.behaviors.schedules.map(i=>({cron:i.cron||"",reaction_type:i.reaction_type||"durable",workflow_type:i.workflow_type||"",pipeline_id:i.pipeline_id||"",server_id:i.server_id||"",tool_name:i.tool_name||"",envelope:i.envelope?JSON.stringify(i.envelope,null,2):"{}",execute_as:i.execute_as||""})):(m=s.behaviors)!=null&&m.cron?[{cron:s.behaviors.cron,reaction_type:"durable",workflow_type:s.workflow_type??"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""}]:[];return{name:s.id,description:s.description??"",goals:s.goals??"",rules:s.rules??"",user_id:s.user_id??"",knowledge_domain:s.knowledge_domain??"",subscriptions:a.map(i=>({id:i.id,topic:i.topic,filter:i.filter?JSON.stringify(i.filter,null,2):"",reaction_type:i.reaction_type,workflow_type:i.workflow_type??"",pipeline_id:i.pipeline_id??"",mcp_prompt:i.mcp_prompt??"",server_id:i.server_id??"",tool_name:i.tool_name??"",input_mapping:JSON.stringify(i.input_mapping??{},null,2),execute_as:i.execute_as??"",enabled:i.enabled})),schedules:r}}function Ee(s){var r;const a={};return s.schedules.length>0&&(a.schedules=s.schedules.map(o=>({cron:o.cron,reaction_type:o.reaction_type||"durable",workflow_type:o.reaction_type==="pipeline"?void 0:o.workflow_type,pipeline_id:o.reaction_type==="pipeline"?o.pipeline_id:void 0,envelope:B(o.envelope)??{},execute_as:o.execute_as||void 0})),a.cron=s.schedules[0].cron),{id:s.name,description:s.description||void 0,goals:s.goals||void 0,rules:s.rules||void 0,user_id:s.user_id||void 0,knowledge_domain:s.knowledge_domain||void 0,behaviors:a,workflow_type:((r=s.schedules[0])==null?void 0:r.workflow_type)||void 0,pipeline_id:void 0}}function $e(s){return s.subscriptions.map(a=>({id:a.id,topic:a.topic,filter:a.filter?B(a.filter):void 0,reaction_type:a.reaction_type,workflow_type:a.workflow_type||void 0,pipeline_id:a.pipeline_id||void 0,mcp_prompt:a.mcp_prompt||void 0,server_id:a.server_id||void 0,tool_name:a.tool_name||void 0,input_mapping:B(a.input_mapping)??{},execute_as:a.execute_as||void 0,enabled:a.enabled}))}function B(s){if(s.trim())try{return JSON.parse(s)}catch{return}}function Pe(s,a,r,o){let x;try{x=JSON.parse(s)}catch{x={}}const m=o.includes(a),i=r===""||r===void 0||r===null||Array.isArray(r)&&r.length===0||r==="[]";if(!m&&i){const{[a]:p,...l}=x;return JSON.stringify(l,null,2)}let u=r;if(typeof r=="string")try{const p=JSON.parse(r);Array.isArray(p)&&(u=p)}catch{}return JSON.stringify({...x,[a]:u},null,2)}const S="section-header mt-[3em] first:mt-0",P="label",_="hint",A="input",L="input-json w-full";function Ie({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Give your automation a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:identity"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Identity",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Name *"}),e.jsx("input",{type:"text",value:s.name,onChange:r=>a("name",r.target.value),placeholder:"health-monitor",className:A}),e.jsx("p",{className:_,children:"Lowercase, kebab-case. This appears everywhere."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Description"}),e.jsx("input",{type:"text",value:s.description,onChange:r=>a("description",r.target.value),placeholder:"Watches for workflow failures and captures diagnostics",className:A}),e.jsx("p",{className:_,children:"One sentence that explains what this automation does."})]})]})}function We({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Goals define what drives the automation. Rules define what constrains it."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:motivation"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Motivation",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-8",children:[e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Goals"}),e.jsx("textarea",{value:s.goals,onChange:r=>a("goals",r.target.value),placeholder:"Detect failures early, capture diagnostics, alert before cascading",rows:4,className:`${A} resize-none`}),e.jsx("p",{className:_,children:"Primary motivation. What the automation is trying to achieve."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Rules"}),e.jsx("textarea",{value:s.rules,onChange:r=>a("rules",r.target.value),placeholder:"Never auto-restart failed workflows. Always escalate to humans.",rows:4,className:`${A} resize-none`}),e.jsx("p",{className:_,children:"Guardrails. What it must never do, even when goals suggest it should."})]})]})]})}function Te({form:s,set:a}){const{data:r}=Ne(),o=(r==null?void 0:r.domains)??[];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Assign a knowledge domain — the automation's memory. It stores context here over time."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:knowledge"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Knowledge",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Knowledge Domain"}),e.jsx("input",{type:"text",value:s.knowledge_domain,onChange:x=>a("knowledge_domain",x.target.value),placeholder:"e.g., system-health, content-review, vendor-data",className:A,list:"domain-suggestions"}),e.jsx("datalist",{id:"domain-suggestions",children:o.map(x=>e.jsx("option",{value:x.domain},x.domain))}),e.jsx("p",{className:_,children:"Choose an existing domain to share memory, or type a new name to create one."})]}),o.length>0&&e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Existing Domains"}),e.jsx("div",{className:"space-y-0.5 mt-2",children:o.map(x=>e.jsxs("button",{type:"button",onClick:()=>a("knowledge_domain",x.domain),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${s.knowledge_domain===x.domain?"border-l-2 border-l-accent bg-accent/5":"hover:bg-surface-hover border-l-2 border-l-transparent"}`,children:[e.jsx(K,{className:"w-3.5 h-3.5 text-text-quaternary shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-sm text-text-primary flex-1",children:x.domain}),e.jsxs("span",{className:"text-2xs text-text-quaternary",children:[x.count," entries"]}),e.jsx("span",{className:"text-2xs text-text-quaternary",children:e.jsx(fe,{date:x.latest})})]},x.domain))})]})]})}function Me({serverId:s,toolName:a,onChange:r}){const{data:o}=se(),x=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[m,i]=f.useState(!1),[u,p]=f.useState(""),l=f.useRef(null),h=f.useRef(null);f.useEffect(()=>{if(!m)return;function t(n){h.current&&!h.current.contains(n.target)&&i(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[m]);const c=a?`${a}`:"",d=m?u:c,y=f.useMemo(()=>{const t=(m?u:"").toLowerCase();return t?x.filter(n=>n.name.toLowerCase().includes(t)||n.serverName.toLowerCase().includes(t)||(n.description??"").toLowerCase().includes(t)):x},[x,u,m]),v=a?x.find(t=>t.serverId===s&&t.name===a):void 0;return e.jsxs("div",{ref:h,className:"relative",children:[e.jsx("input",{ref:l,type:"text",value:d,onFocus:()=>{i(!0),p(c)},onChange:t=>{const n=t.target.value;p(n),n||r("",""),m||i(!0)},placeholder:"Search capabilities...",className:"input font-mono text-sm w-full"}),!m&&(v==null?void 0:v.description)&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-1 italic",children:v.description}),m&&y.length>0&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 max-h-64 overflow-y-auto rounded-md border border-surface-border bg-surface shadow-lg",children:y.map(t=>e.jsxs("button",{type:"button",onClick:()=>{r(t.serverId,t.name),p(t.name),i(!1)},className:`w-full text-left px-3 py-2 hover:bg-surface-hover transition-colors flex items-center gap-3 ${s===t.serverId&&a===t.name?"bg-accent/5":""}`,children:[e.jsx("span",{className:"text-2xs font-mono text-text-primary shrink-0",children:t.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-2xs font-medium shrink-0 bg-accent/10 text-accent",children:[e.jsx(je,{className:"w-2 h-2",strokeWidth:1.5}),t.serverName]}),t.description&&e.jsx("span",{className:"text-2xs text-text-quaternary truncate",children:t.description})]},`${t.serverId}:${t.name}`))}),m&&y.length===0&&u&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 rounded-md border border-surface-border bg-surface shadow-lg px-3 py-4 text-center",children:e.jsxs("p",{className:"text-2xs text-text-quaternary",children:['No capabilities match "',u,'"']})})]})}const Le={durable:"Workflow",pipeline:"Pipeline",capability:"Capability",mcp_query:"MCP Query"},Je=["durable","pipeline","capability","mcp_query"];function ae({reactionType:s,onReactionTypeChange:a,workflowType:r,onWorkflowTypeChange:o,pipelineId:x,onPipelineIdChange:m,serverId:i,toolName:u,onCapabilityChange:p,mcpPrompt:l,onMcpPromptChange:h,availableTypes:c=[...Je]}){const{data:d}=ve(),y=(d??[]).filter(n=>n.invocable).map(n=>n.workflow_type),{data:v}=_e({status:"active"}),t=((v==null?void 0:v.workflows)??[]).map(n=>({id:n.id,name:n.graph_topic||n.id}));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex gap-1",children:c.map(n=>{const b=s===n;return e.jsx("button",{type:"button",onClick:()=>a(n),className:`px-3 py-1.5 text-2xs font-medium rounded-md transition-colors ${b?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:Le[n]},n)})}),s==="durable"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Workflow *"}),e.jsxs("select",{value:r,onChange:n=>o(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select workflow..."}),y.map(n=>e.jsx("option",{value:n,children:n},n))]})]}),s==="pipeline"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Pipeline *"}),e.jsxs("select",{value:x,onChange:n=>m(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select pipeline..."}),t.map(n=>e.jsx("option",{value:n.id,children:n.name},n.id))]})]}),s==="capability"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Capability *"}),e.jsx(Me,{serverId:i,toolName:u,onChange:p})]}),s==="mcp_query"&&h&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Prompt *"}),e.jsx("textarea",{value:l??"",onChange:n=>h(n.target.value),placeholder:"Analyze the error and suggest remediation...",rows:3,className:"input resize-none"})]})]})}const Fe={task:"bg-status-active/10 text-status-active",workflow:"bg-accent/15 text-accent",escalation:"bg-status-warning/10 text-status-warning",activity:"bg-status-active/10 text-status-active",knowledge:"bg-accent/10 text-accent",file:"bg-status-draft/10 text-status-draft",agent:"bg-status-success/10 text-status-success",app:"bg-status-error/10 text-status-error",milestone:"bg-accent/10 text-accent"};function De({form:s,set:a}){const{data:r}=ke({limit:200}),{data:o}=se(),x=(r==null?void 0:r.topics)??[],m=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[i,u]=f.useState(0),p=(t,n,b)=>{const g=[...s.subscriptions];g[t]={...g[t],[n]:b},a("subscriptions",g)},l=()=>{a("subscriptions",[...s.subscriptions,{...Oe}]),u(s.subscriptions.length)},h=t=>{a("subscriptions",s.subscriptions.filter((n,b)=>b!==t)),i>=s.subscriptions.length-1&&u(Math.max(0,s.subscriptions.length-2))},c=s.subscriptions,d=c[i],y=t=>t.topic?t.reaction_type==="durable"?!!t.workflow_type:t.reaction_type==="pipeline"?!!t.pipeline_id:t.reaction_type==="mcp_query"?!!t.mcp_prompt:t.reaction_type==="capability"?!!t.server_id&&!!t.tool_name:!1:!1,v=d?x.find(t=>t.topic===d.topic):void 0;return c.length===0?e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(U,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1}),e.jsx("p",{className:"text-sm text-text-tertiary mb-2",children:"No event subscriptions yet"}),e.jsx("p",{className:"text-2xs text-text-quaternary max-w-sm mb-6",children:"Each subscription listens for a topic pattern and runs a workflow when it matches."}),e.jsxs("button",{onClick:l,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3.5 h-3.5"})," Add first subscription"]})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex gap-8",children:[e.jsxs("div",{className:"w-52 shrink-0 space-y-0.5",children:[c.map((t,n)=>e.jsxs("div",{className:`group/sub flex items-center rounded-md transition-colors ${i===n?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxs("button",{onClick:()=>u(n),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`w-2.5 h-2.5 rounded-full dot-ring shrink-0 ${y(t)?"bg-status-success":"bg-surface-border"}`}),e.jsx("span",{className:"text-2xs font-mono truncate",children:t.topic||"new subscription"})]}),e.jsxs("span",{className:"text-2xs text-text-quaternary ml-3",children:["→ ",t.workflow_type||t.tool_name||t.reaction_type]})]}),e.jsx("button",{onClick:b=>{b.stopPropagation(),confirm(`Remove subscription "${t.topic||"new"}"?
2
2
 
3
3
  This takes effect when you save.`)&&h(n)},className:"opacity-0 group-hover/sub:opacity-100 px-2 text-text-quaternary hover:text-status-error transition-all",title:"Remove",children:e.jsx(Z,{className:"w-3 h-3"})})]},n)),e.jsxs("button",{onClick:l,className:"w-full flex items-center gap-1.5 px-3 py-2 text-2xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3 h-3"})," Add"]})]}),d&&e.jsxs("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"When this event fires"}),e.jsx(Ke,{value:d.topic,onChange:t=>p(i,"topic",t),topics:x}),(v==null?void 0:v.payload_schema)&&e.jsxs("div",{className:"mt-3 p-3 rounded-md bg-surface-sunken border border-surface-border",children:[e.jsx("p",{className:"text-2xs text-text-quaternary mb-1 uppercase tracking-wider font-medium",children:"Payload Schema"}),e.jsx("pre",{className:"text-2xs font-mono text-text-secondary whitespace-pre-wrap overflow-x-auto max-h-40",children:JSON.stringify(v.payload_schema.properties??v.payload_schema,null,2)}),v.description&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-2 italic",children:v.description})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run this reaction"}),e.jsx(ae,{reactionType:d.reaction_type,onReactionTypeChange:t=>p(i,"reaction_type",t),workflowType:d.workflow_type,onWorkflowTypeChange:t=>p(i,"workflow_type",t),pipelineId:d.pipeline_id,onPipelineIdChange:t=>p(i,"pipeline_id",t),serverId:d.server_id,toolName:d.tool_name,onCapabilityChange:(t,n)=>{var $;const b=[...s.subscriptions],g={...b[i],server_id:t,tool_name:n},k=m.find(q=>q.serverId===t&&q.name===n),R=($=k==null?void 0:k.inputSchema)==null?void 0:$.properties;if(R&&n){const q={};for(const w of Object.keys(R))w.startsWith("_")||(q[w]=`{event.data.${w}}`);g.input_mapping=JSON.stringify(q,null,2)}b[i]=g,a("subscriptions",b)},mcpPrompt:d.mcp_prompt,onMcpPromptChange:t=>p(i,"mcp_prompt",t)})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"As identity"}),e.jsx(te,{selected:d.execute_as,onChange:t=>p(i,"execute_as",t)}),e.jsx("p",{className:_,children:"Identity used when invoking the workflow."})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"But only if"}),e.jsx("input",{type:"text",value:d.filter,onChange:t=>p(i,"filter",t.target.value),placeholder:'{"extension": "png"}',className:`${A} font-mono text-xs`}),e.jsx("p",{className:_,children:"JSON filter against event.data. Click an operator to insert:"}),e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:[{label:"equals",value:'{"key": "val"}'},{label:"not equal",value:'{"key": {"$ne": "val"}}'},{label:"in list",value:'{"key": {"$in": ["a", "b"]}}'},{label:"exists",value:'{"key": {"$exists": true}}'}].map(t=>e.jsx("button",{type:"button",onClick:()=>p(i,"filter",t.value),className:"px-2 py-0.5 text-2xs font-mono rounded bg-accent/8 text-accent hover:bg-accent/15 transition-colors",children:t.label},t.label))})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"With this data"}),d.reaction_type==="capability"&&d.tool_name?e.jsx(ze,{tool:m.find(t=>t.serverId===d.server_id&&t.name===d.tool_name),value:d.input_mapping,onChange:t=>p(i,"input_mapping",t),eventSchema:v==null?void 0:v.payload_schema}):e.jsxs(e.Fragment,{children:[e.jsx("textarea",{value:d.input_mapping,onChange:t=>p(i,"input_mapping",t.target.value),rows:10,className:L,placeholder:`{
4
4
  "data": {
@@ -13,4 +13,4 @@ This takes effect when you save.`)&&h(n)},className:"opacity-0 group-hover/sub:o
13
13
  This takes effect when you save.`)&&i(h)},className:"opacity-0 group-hover/sched:opacity-100 px-2 text-text-quaternary hover:text-status-error transition-all",title:"Remove",children:e.jsx(Z,{className:"w-3 h-3"})})]},h)),e.jsxs("button",{onClick:m,className:"w-full flex items-center gap-1.5 px-3 py-2 text-2xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3 h-3"})," Add"]})]}),p&&e.jsxs("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run every"}),e.jsx("input",{type:"text",value:p.cron,onChange:l=>x(r,"cron",l.target.value),placeholder:"0 * * * *",className:`${A} font-mono`}),p.cron&&e.jsx("p",{className:"text-2xs text-accent/80 mt-1",children:z(p.cron)}),e.jsx("div",{className:"flex gap-3 mt-2 overflow-x-auto",children:Ue.map(l=>e.jsx("button",{type:"button",onClick:()=>x(r,"cron",l),className:`text-2xs font-mono whitespace-nowrap transition-colors ${p.cron===l?"text-accent font-medium":"text-accent/50 hover:text-accent"}`,children:z(l)},l))})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run this reaction"}),e.jsx(ae,{reactionType:p.reaction_type,onReactionTypeChange:l=>x(r,"reaction_type",l),workflowType:p.workflow_type,onWorkflowTypeChange:l=>x(r,"workflow_type",l),pipelineId:p.pipeline_id,onPipelineIdChange:l=>x(r,"pipeline_id",l),serverId:p.server_id,toolName:p.tool_name,onCapabilityChange:(l,h)=>{x(r,"server_id",l),x(r,"tool_name",h)},availableTypes:["durable","pipeline","capability"]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"As identity"}),e.jsx(te,{selected:p.execute_as,onChange:l=>x(r,"execute_as",l)}),e.jsx("p",{className:_,children:"Identity used when invoking."})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"With this data"}),e.jsx("textarea",{value:p.envelope,onChange:l=>x(r,"envelope",l.target.value),rows:10,className:L,placeholder:`{
14
14
  "data": { "source": "cron" }
15
15
  }`}),e.jsx("p",{className:_,children:"Static payload passed to the workflow on each invocation."})]})]})]})]})}function W({icon:s,color:a,title:r,children:o}){return e.jsxs("div",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 pb-1.5 border-b border-surface-border/40",children:[e.jsx(s,{className:`w-3.5 h-3.5 ${a}`,strokeWidth:1.5}),e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-widest text-accent/80",children:r})]}),e.jsx("div",{className:"pl-5.5",children:o})]})}function T({label:s,children:a}){return e.jsxs("div",{className:"flex gap-3 py-0.5",children:[e.jsx("span",{className:"text-2xs text-text-quaternary w-20 shrink-0",children:s}),e.jsx("span",{className:"text-xs text-text-primary",children:a})]})}function Ge({form:s}){return e.jsxs("div",{children:[e.jsxs(W,{icon:V,color:"text-accent",title:"Identity",children:[e.jsx(T,{label:"Name",children:s.name||"—"}),s.description&&e.jsx(T,{label:"Description",children:s.description})]}),(s.goals||s.rules)&&e.jsxs(W,{icon:ee,color:"text-accent",title:"Motivation",children:[s.goals&&e.jsx(T,{label:"Goals",children:s.goals}),s.rules&&e.jsx(T,{label:"Rules",children:s.rules})]}),e.jsx(W,{icon:K,color:"text-accent",title:"Knowledge",children:e.jsx(T,{label:"Domain",children:s.knowledge_domain||"None"})}),e.jsxs("div",{className:"grid grid-cols-2 gap-x-10",children:[e.jsx(W,{icon:U,color:"text-accent",title:`Subscriptions (${s.subscriptions.length})`,children:s.subscriptions.length===0?e.jsx("span",{className:"text-2xs text-text-quaternary",children:"None configured"}):e.jsx("div",{className:"divide-y divide-surface-border/30",children:s.subscriptions.map((a,r)=>e.jsxs("div",{className:"flex items-center py-1.5",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(de,{topic:a.topic||"unset"})}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{className:"text-text-quaternary text-2xs",children:"→"}),a.workflow_type?e.jsx(Q,{type:a.workflow_type}):e.jsx("span",{className:"text-2xs text-text-quaternary",children:a.reaction_type})]})]},r))})}),e.jsx(W,{icon:Y,color:"text-accent",title:`Schedules (${s.schedules.length})`,children:s.schedules.length===0?e.jsx("span",{className:"text-2xs text-text-quaternary",children:"None configured"}):e.jsx("div",{className:"divide-y divide-surface-border/30",children:s.schedules.map((a,r)=>e.jsxs("div",{className:"flex items-center py-1.5",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(xe,{cron:a.cron})}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{className:"text-text-quaternary text-2xs",children:"→"}),a.workflow_type?e.jsx(Q,{type:a.workflow_type}):e.jsx("span",{className:"text-2xs text-text-quaternary",children:"no workflow"})]})]},r))})})]}),e.jsx("div",{className:"border-l-2 border-status-success/30 pl-3 py-2 mt-6",children:e.jsx("p",{className:"text-2xs text-text-tertiary leading-relaxed",children:"After saving, subscriptions and schedules activate immediately. You can pause the automation anytime."})})]})}const He=[{id:1,label:"Identity",icon:V},{id:2,label:"Motivation",icon:ee},{id:3,label:"Knowledge",icon:K},{id:4,label:"Subscriptions",icon:U},{id:5,label:"Schedules",icon:Y},{id:6,label:"Review",icon:we}];function xt(){var H;const{id:s}=Ce(),a=!s,r=Se(),{data:o}=be(),x=ye(),i=(x!==null?x:!!((H=o==null?void 0:o.ai)!=null&&H.enabled))?"Agent":"Automation",{data:u,isLoading:p}=ce(a?null:s),{data:l}=pe(a?null:s),h=le(),c=oe(),d=ue(),y=me(),v=he(),[t,n]=f.useState(X),[b,g]=f.useState(!1),[k,R]=f.useState(""),[$,q]=qe(),w=parseInt($.get("step")||"1",10),ne=f.useCallback(j=>{q(N=>{const O=new URLSearchParams(N);return O.set("step",String(j)),O},{replace:!0})},[q]);f.useEffect(()=>{if(!b){if(a){n(X),g(!0);return}u&&l&&(n(Re(u,l.subscriptions??[])),g(!0))}},[u,l,a,b]);const I=(j,N)=>n(O=>({...O,[j]:N})),ie=async()=>{R("");try{const j=Ee(t);let N=s;a?N=(await h.mutateAsync(j)).id:await c.mutateAsync({id:s,...j});const O=$e(t),re=(l==null?void 0:l.subscriptions)??[],J=new Set(re.map(C=>C.id));for(const C of O)if(C.id&&J.has(C.id)){const{id:F,...D}=C;await y.mutateAsync({agentId:N,subId:F,...D}),J.delete(F)}else{const{id:F,...D}=C;await d.mutateAsync({agentId:N,...D})}for(const C of J)await v.mutateAsync({agentId:N,subId:C});r(`/agents/${N}`)}catch(j){R(j.message)}};if(!a&&p)return e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-48"}),e.jsx("div",{className:"h-60 bg-surface-sunken rounded"})]});const G=h.isPending||c.isPending;return e.jsxs("div",{children:[e.jsx(ge,{title:a?`New ${i}`:`${i}: ${(u==null?void 0:u.id)??""}`,docsHash:"#docs:agents.md"}),e.jsxs("div",{className:"flex gap-10",children:[e.jsxs("nav",{className:"w-44 shrink-0 sticky top-0 self-start pt-2",children:[e.jsx("div",{className:"space-y-0.5",children:He.map(j=>{const N=j.icon,O=w===j.id;return e.jsxs("button",{onClick:()=>ne(j.id),className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-md text-left transition-colors ${O?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsx(N,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-xs font-medium",children:j.label})]},j.id)})}),e.jsxs("div",{className:"mt-8 pt-4 border-t border-surface-border space-y-2",children:[e.jsx("button",{onClick:ie,disabled:!t.name.trim()||G,className:"w-full btn-primary text-xs disabled:opacity-50",children:G?"Saving...":a?`Create ${i}`:"Save"}),e.jsx("button",{onClick:()=>r(a?"/agents":`/agents/${s}`),className:"w-full btn-ghost text-xs",children:"Cancel"})]}),k&&e.jsx("p",{className:"text-xs text-status-error mt-3",children:k})]}),e.jsxs("div",{className:"flex-1 min-w-0 pt-2",children:[w===1&&e.jsx(Ie,{form:t,set:I}),w===2&&e.jsx(We,{form:t,set:I}),w===3&&e.jsx(Te,{form:t,set:I}),w===4&&e.jsx(De,{form:t,set:I}),w===5&&e.jsx(Ye,{form:t,set:I}),w===6&&e.jsx(Ge,{form:t})]})]})]})}export{xt as AgentConfigPage};
16
- //# sourceMappingURL=AgentConfigPage-CmHv8U9M.js.map
16
+ //# sourceMappingURL=AgentConfigPage-DetU4HZe.js.map