@hotmeshio/long-tail 0.30.4 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/build/api/escalations/index.d.ts +1 -0
  2. package/build/api/escalations/index.js +5 -2
  3. package/build/api/escalations/roster-action.d.ts +11 -0
  4. package/build/api/escalations/roster-action.js +47 -30
  5. package/build/api/escalations/roster-scan.d.ts +26 -0
  6. package/build/api/escalations/roster-scan.js +114 -0
  7. package/build/api/labels/errors.d.ts +3 -0
  8. package/build/api/labels/errors.js +15 -0
  9. package/build/api/labels/index.d.ts +2 -0
  10. package/build/api/labels/index.js +17 -0
  11. package/build/api/labels/issue.d.ts +54 -0
  12. package/build/api/labels/issue.js +144 -0
  13. package/build/api/labels/templates.d.ts +29 -0
  14. package/build/api/labels/templates.js +98 -0
  15. package/build/api/scan-codes/context.d.ts +9 -1
  16. package/build/api/scan-codes/context.js +16 -1
  17. package/build/api/scan-codes/execute.js +6 -1
  18. package/build/api/scan-codes/fill-labels.d.ts +8 -0
  19. package/build/api/scan-codes/fill-labels.js +23 -2
  20. package/build/api/scan-codes/hold.js +2 -0
  21. package/build/api/scan-codes/located.d.ts +10 -0
  22. package/build/api/scan-codes/located.js +74 -0
  23. package/build/api/scan-codes/open.d.ts +9 -0
  24. package/build/api/scan-codes/open.js +99 -0
  25. package/build/api/scan-codes/present.js +1 -0
  26. package/build/api/scan-codes/verb-fill.js +1 -1
  27. package/build/api/users.d.ts +8 -4
  28. package/build/api/users.js +51 -13
  29. package/build/index.d.ts +1 -0
  30. package/build/index.js +4 -2
  31. package/build/lib/db/schemas/044_label_sheets.sql +65 -0
  32. package/build/lib/db/schemas/045_label_job_delivery.sql +14 -0
  33. package/build/lib/labels/transports.d.ts +23 -0
  34. package/build/lib/labels/transports.js +39 -0
  35. package/build/modules/auth.d.ts +2 -0
  36. package/build/modules/auth.js +3 -1
  37. package/build/modules/capabilities.d.ts +5 -1
  38. package/build/modules/capabilities.js +38 -8
  39. package/build/modules/config.d.ts +10 -0
  40. package/build/modules/config.js +10 -0
  41. package/build/routes/escalations/resolve.js +18 -0
  42. package/build/routes/index.js +2 -0
  43. package/build/routes/labels.d.ts +2 -0
  44. package/build/routes/labels.js +135 -0
  45. package/build/routes/users.js +1 -1
  46. package/build/services/labels/content.d.ts +13 -0
  47. package/build/services/labels/content.js +81 -0
  48. package/build/services/labels/errors.d.ts +5 -0
  49. package/build/services/labels/errors.js +12 -0
  50. package/build/services/labels/index.d.ts +11 -0
  51. package/build/services/labels/index.js +52 -0
  52. package/build/services/labels/issue.d.ts +38 -0
  53. package/build/services/labels/issue.js +181 -0
  54. package/build/services/labels/jobs.d.ts +37 -0
  55. package/build/services/labels/jobs.js +75 -0
  56. package/build/services/labels/media.d.ts +11 -0
  57. package/build/services/labels/media.js +44 -0
  58. package/build/services/labels/reissue.d.ts +13 -0
  59. package/build/services/labels/reissue.js +65 -0
  60. package/build/services/labels/render-pdf.d.ts +11 -0
  61. package/build/services/labels/render-pdf.js +138 -0
  62. package/build/services/labels/targets.d.ts +18 -0
  63. package/build/services/labels/targets.js +216 -0
  64. package/build/services/labels/templates/index.d.ts +3 -0
  65. package/build/services/labels/templates/index.js +18 -0
  66. package/build/services/labels/templates/read.d.ts +4 -0
  67. package/build/services/labels/templates/read.js +36 -0
  68. package/build/services/labels/templates/sql.d.ts +8 -0
  69. package/build/services/labels/templates/sql.js +50 -0
  70. package/build/services/labels/templates/validate.d.ts +19 -0
  71. package/build/services/labels/templates/validate.js +93 -0
  72. package/build/services/labels/templates/write.d.ts +16 -0
  73. package/build/services/labels/templates/write.js +75 -0
  74. package/build/services/labels/token.d.ts +9 -0
  75. package/build/services/labels/token.js +28 -0
  76. package/build/services/labels/verify.d.ts +4 -0
  77. package/build/services/labels/verify.js +38 -0
  78. package/build/services/role/index.d.ts +2 -0
  79. package/build/services/role/index.js +7 -0
  80. package/build/services/role/scan-done.js +4 -1
  81. package/build/services/role/sql.d.ts +1 -0
  82. package/build/services/role/sql.js +3 -1
  83. package/build/services/role/types.d.ts +2 -0
  84. package/build/services/scan-code/index.d.ts +1 -1
  85. package/build/services/scan-code/index.js +2 -1
  86. package/build/services/scan-code/parse.d.ts +5 -1
  87. package/build/services/scan-code/parse.js +8 -2
  88. package/build/services/scan-code/validate-station.d.ts +13 -0
  89. package/build/services/scan-code/validate-station.js +81 -0
  90. package/build/services/scan-code/validate-subject.js +33 -6
  91. package/build/services/scan-code/validate.d.ts +3 -0
  92. package/build/services/scan-code/validate.js +22 -18
  93. package/build/services/user/crud.d.ts +13 -1
  94. package/build/services/user/crud.js +42 -11
  95. package/build/services/user/index.d.ts +3 -2
  96. package/build/services/user/index.js +7 -1
  97. package/build/services/user/redact.d.ts +17 -0
  98. package/build/services/user/redact.js +32 -0
  99. package/build/services/user/sql.d.ts +8 -15
  100. package/build/services/user/sql.js +27 -3
  101. package/build/services/user/types.d.ts +21 -1
  102. package/build/shared/labels/compose.d.ts +12 -0
  103. package/build/shared/labels/compose.js +43 -0
  104. package/build/shared/labels/index.d.ts +9 -0
  105. package/build/shared/labels/index.js +54 -0
  106. package/build/shared/labels/label-content.d.ts +17 -0
  107. package/build/shared/labels/label-content.js +137 -0
  108. package/build/shared/labels/layout.d.ts +23 -0
  109. package/build/shared/labels/layout.js +81 -0
  110. package/build/shared/labels/media.d.ts +22 -0
  111. package/build/shared/labels/media.js +116 -0
  112. package/build/shared/labels/render-svg.d.ts +10 -0
  113. package/build/shared/labels/render-svg.js +58 -0
  114. package/build/shared/labels/render-zpl.d.ts +9 -0
  115. package/build/shared/labels/render-zpl.js +63 -0
  116. package/build/shared/labels/symbol.d.ts +18 -0
  117. package/build/shared/labels/symbol.js +74 -0
  118. package/build/shared/labels/tokens.d.ts +18 -0
  119. package/build/shared/labels/tokens.js +43 -0
  120. package/build/shared/labels/types.d.ts +105 -0
  121. package/build/shared/labels/types.js +11 -0
  122. package/build/start/adapters.js +16 -0
  123. package/build/start/workers.js +18 -2
  124. package/build/system/mcp-servers/admin/index.js +2 -0
  125. package/build/system/mcp-servers/admin/labels-schemas.d.ts +192 -0
  126. package/build/system/mcp-servers/admin/labels-schemas.js +46 -0
  127. package/build/system/mcp-servers/admin/labels.d.ts +9 -0
  128. package/build/system/mcp-servers/admin/labels.js +101 -0
  129. package/build/system/mcp-servers/admin/schemas.d.ts +491 -24
  130. package/build/system/mcp-servers/admin/schemas.js +32 -4
  131. package/build/system/mcp-servers/admin/users.js +1 -1
  132. package/build/system/seed/tool-manifests-admin.js +5 -0
  133. package/build/tsconfig.tsbuildinfo +1 -1
  134. package/build/types/capability.d.ts +2 -1
  135. package/build/types/index.d.ts +3 -2
  136. package/build/types/labels/index.d.ts +4 -0
  137. package/build/types/labels/index.js +2 -0
  138. package/build/types/labels/job.d.ts +51 -0
  139. package/build/types/labels/job.js +2 -0
  140. package/build/types/labels/source.d.ts +44 -0
  141. package/build/types/labels/source.js +2 -0
  142. package/build/types/labels/template.d.ts +46 -0
  143. package/build/types/labels/template.js +2 -0
  144. package/build/types/labels/transport.d.ts +24 -0
  145. package/build/types/labels/transport.js +2 -0
  146. package/build/types/scan-choice.d.ts +2 -4
  147. package/build/types/scan-code/constants.d.ts +1 -0
  148. package/build/types/scan-code/constants.js +1 -0
  149. package/build/types/scan-code/response.d.ts +22 -4
  150. package/build/types/scan-code/rule.d.ts +66 -3
  151. package/build/types/startup.d.ts +37 -0
  152. package/build/types/user.d.ts +2 -0
  153. package/dashboard/dist/assets/{AdminDashboard-VQ1fhhJP.js → AdminDashboard-BafKaq50.js} +2 -2
  154. package/dashboard/dist/assets/{AdminDashboard-VQ1fhhJP.js.map → AdminDashboard-BafKaq50.js.map} +1 -1
  155. package/dashboard/dist/assets/{AgentConfigPage-BOe_W2Ij.js → AgentConfigPage-CFHf31DT.js} +6 -6
  156. package/dashboard/dist/assets/{AgentConfigPage-BOe_W2Ij.js.map → AgentConfigPage-CFHf31DT.js.map} +1 -1
  157. package/dashboard/dist/assets/{AgentDetailPage-5ov5D9V2.js → AgentDetailPage-CEvz5rJr.js} +3 -3
  158. package/dashboard/dist/assets/{AgentDetailPage-5ov5D9V2.js.map → AgentDetailPage-CEvz5rJr.js.map} +1 -1
  159. package/dashboard/dist/assets/{AgentsPage-DDFMKHhI.js → AgentsPage-DjQaio0O.js} +2 -2
  160. package/dashboard/dist/assets/{AgentsPage-DDFMKHhI.js.map → AgentsPage-DjQaio0O.js.map} +1 -1
  161. package/dashboard/dist/assets/AvailableEscalationsPage-UB03VTJx.js +2 -0
  162. package/dashboard/dist/assets/AvailableEscalationsPage-UB03VTJx.js.map +1 -0
  163. package/dashboard/dist/assets/{BotPicker-Dqpo36dM.js → BotPicker-C7MNWOF7.js} +2 -2
  164. package/dashboard/dist/assets/{BotPicker-Dqpo36dM.js.map → BotPicker-C7MNWOF7.js.map} +1 -1
  165. package/dashboard/dist/assets/BulkAssignModal-h5fX-_cV.js +2 -0
  166. package/dashboard/dist/assets/{BulkAssignModal-CmLVxkz-.js.map → BulkAssignModal-h5fX-_cV.js.map} +1 -1
  167. package/dashboard/dist/assets/{CapabilitiesPage-Dfkip6_b.js → CapabilitiesPage-BIzDl-ZT.js} +2 -2
  168. package/dashboard/dist/assets/{CapabilitiesPage-Dfkip6_b.js.map → CapabilitiesPage-BIzDl-ZT.js.map} +1 -1
  169. package/dashboard/dist/assets/{CollapsibleSection-CYNYMYSa.js → CollapsibleSection-B5TivtEg.js} +2 -2
  170. package/dashboard/dist/assets/{CollapsibleSection-CYNYMYSa.js.map → CollapsibleSection-B5TivtEg.js.map} +1 -1
  171. package/dashboard/dist/assets/{ConfirmDeleteModal-CpJNP-8w.js → ConfirmDeleteModal-CB4nKePb.js} +2 -2
  172. package/dashboard/dist/assets/{ConfirmDeleteModal-CpJNP-8w.js.map → ConfirmDeleteModal-CB4nKePb.js.map} +1 -1
  173. package/dashboard/dist/assets/{ConnectedAppsPage-DXIp2Dpl.js → ConnectedAppsPage-B3S5gVWw.js} +2 -2
  174. package/dashboard/dist/assets/{ConnectedAppsPage-DXIp2Dpl.js.map → ConnectedAppsPage-B3S5gVWw.js.map} +1 -1
  175. package/dashboard/dist/assets/{CountdownTimer-CuPY7zkb.js → CountdownTimer-BHVIq3kA.js} +2 -2
  176. package/dashboard/dist/assets/{CountdownTimer-CuPY7zkb.js.map → CountdownTimer-BHVIq3kA.js.map} +1 -1
  177. package/dashboard/dist/assets/CredentialConfirmModal-w0AGmCIe.js +2 -0
  178. package/dashboard/dist/assets/CredentialConfirmModal-w0AGmCIe.js.map +1 -0
  179. package/dashboard/dist/assets/{CredentialsPage-CtrnkHcj.js → CredentialsPage-BtCGBJrT.js} +2 -2
  180. package/dashboard/dist/assets/{CredentialsPage-CtrnkHcj.js.map → CredentialsPage-BtCGBJrT.js.map} +1 -1
  181. package/dashboard/dist/assets/{CronLabel-DVjTw5Ri.js → CronLabel-BG1rZK-5.js} +2 -2
  182. package/dashboard/dist/assets/{CronLabel-DVjTw5Ri.js.map → CronLabel-BG1rZK-5.js.map} +1 -1
  183. package/dashboard/dist/assets/{DropZone-DefYTYQy.js → DropZone-D8ZVdEb5.js} +2 -2
  184. package/dashboard/dist/assets/{DropZone-DefYTYQy.js.map → DropZone-D8ZVdEb5.js.map} +1 -1
  185. package/dashboard/dist/assets/{ElapsedCell-gY_mGMTF.js → ElapsedCell-l4m8Yvfv.js} +2 -2
  186. package/dashboard/dist/assets/{ElapsedCell-gY_mGMTF.js.map → ElapsedCell-l4m8Yvfv.js.map} +1 -1
  187. package/dashboard/dist/assets/{EntityTimelinePanel-DJN_ZEQa.js → EntityTimelinePanel-BOHlIaxF.js} +2 -2
  188. package/dashboard/dist/assets/{EntityTimelinePanel-DJN_ZEQa.js.map → EntityTimelinePanel-BOHlIaxF.js.map} +1 -1
  189. package/dashboard/dist/assets/{EscalationListSchemaPage-A4KpTdJA.js → EscalationListSchemaPage-BotlwlX3.js} +3 -3
  190. package/dashboard/dist/assets/{EscalationListSchemaPage-A4KpTdJA.js.map → EscalationListSchemaPage-BotlwlX3.js.map} +1 -1
  191. package/dashboard/dist/assets/{EscalationSchemaPage-nfCn42hT.js → EscalationSchemaPage-CfZSVOSD.js} +3 -3
  192. package/dashboard/dist/assets/{EscalationSchemaPage-nfCn42hT.js.map → EscalationSchemaPage-CfZSVOSD.js.map} +1 -1
  193. package/dashboard/dist/assets/{EscalationTimeline-CLvSr1SD.js → EscalationTimeline-CCKpuRBU.js} +2 -2
  194. package/dashboard/dist/assets/{EscalationTimeline-CLvSr1SD.js.map → EscalationTimeline-CCKpuRBU.js.map} +1 -1
  195. package/dashboard/dist/assets/{EscalationTitleSelect-CT7mYHkb.js → EscalationTitleSelect-cpTzPHiW.js} +2 -2
  196. package/dashboard/dist/assets/{EscalationTitleSelect-CT7mYHkb.js.map → EscalationTitleSelect-cpTzPHiW.js.map} +1 -1
  197. package/dashboard/dist/assets/{EscalationsOverview-CKaGRh-E.js → EscalationsOverview-DS-nK0qV.js} +2 -2
  198. package/dashboard/dist/assets/{EscalationsOverview-CKaGRh-E.js.map → EscalationsOverview-DS-nK0qV.js.map} +1 -1
  199. package/dashboard/dist/assets/{EventTable-2ywJsOLy.js → EventTable-UfebhJf0.js} +2 -2
  200. package/dashboard/dist/assets/{EventTable-2ywJsOLy.js.map → EventTable-UfebhJf0.js.map} +1 -1
  201. package/dashboard/dist/assets/{FilterBar-Dy0b7wwf.js → FilterBar-newA5l-X.js} +2 -2
  202. package/dashboard/dist/assets/{FilterBar-Dy0b7wwf.js.map → FilterBar-newA5l-X.js.map} +1 -1
  203. package/dashboard/dist/assets/{GraphInvokePage-yOVpraAy.js → GraphInvokePage-6SCDyQcK.js} +2 -2
  204. package/dashboard/dist/assets/{GraphInvokePage-yOVpraAy.js.map → GraphInvokePage-6SCDyQcK.js.map} +1 -1
  205. package/dashboard/dist/assets/HomePage-BEc-XdKj.js +2 -0
  206. package/dashboard/dist/assets/{HomePage-67xXjKjN.js.map → HomePage-BEc-XdKj.js.map} +1 -1
  207. package/dashboard/dist/assets/LabelJobsPage-BO50zXT5.js +2 -0
  208. package/dashboard/dist/assets/LabelJobsPage-BO50zXT5.js.map +1 -0
  209. package/dashboard/dist/assets/{LinePage-CMsYtukW.js → LinePage-NYxJQ-ex.js} +3 -3
  210. package/dashboard/dist/assets/{LinePage-CMsYtukW.js.map → LinePage-NYxJQ-ex.js.map} +1 -1
  211. package/dashboard/dist/assets/{LinesPage-pwL46mOS.js → LinesPage-RbWTaQRh.js} +3 -3
  212. package/dashboard/dist/assets/{LinesPage-pwL46mOS.js.map → LinesPage-RbWTaQRh.js.map} +1 -1
  213. package/dashboard/dist/assets/{ListToolbar-CJmvGy2B.js → ListToolbar-B-E9-toh.js} +2 -2
  214. package/dashboard/dist/assets/{ListToolbar-CJmvGy2B.js.map → ListToolbar-B-E9-toh.js.map} +1 -1
  215. package/dashboard/dist/assets/{McpOverview-DA9LLvNG.js → McpOverview-Shcf9QhZ.js} +2 -2
  216. package/dashboard/dist/assets/{McpOverview-DA9LLvNG.js.map → McpOverview-Shcf9QhZ.js.map} +1 -1
  217. package/dashboard/dist/assets/{McpQueryDetailPage-N7qLmfE8.js → McpQueryDetailPage-D8kmjy2v.js} +3 -3
  218. package/dashboard/dist/assets/{McpQueryDetailPage-N7qLmfE8.js.map → McpQueryDetailPage-D8kmjy2v.js.map} +1 -1
  219. package/dashboard/dist/assets/{McpQueryPage-CpsP3w7x.js → McpQueryPage-ck-o5m8A.js} +2 -2
  220. package/dashboard/dist/assets/{McpQueryPage-CpsP3w7x.js.map → McpQueryPage-ck-o5m8A.js.map} +1 -1
  221. package/dashboard/dist/assets/McpRunDetailPage-BJKkM9-3.js +2 -0
  222. package/dashboard/dist/assets/{McpRunDetailPage-qHRQ1pEY.js.map → McpRunDetailPage-BJKkM9-3.js.map} +1 -1
  223. package/dashboard/dist/assets/{McpRunsPage-BRDDYpTM.js → McpRunsPage-DqhHfD5G.js} +2 -2
  224. package/dashboard/dist/assets/{McpRunsPage-BRDDYpTM.js.map → McpRunsPage-DqhHfD5G.js.map} +1 -1
  225. package/dashboard/dist/assets/{NamespacePill-CeSfHH-j.js → NamespacePill--uIaGtrN.js} +2 -2
  226. package/dashboard/dist/assets/{NamespacePill-CeSfHH-j.js.map → NamespacePill--uIaGtrN.js.map} +1 -1
  227. package/dashboard/dist/assets/{OperationsPage-zUaab-CL.js → OperationsPage-D6B9Vv__.js} +3 -3
  228. package/dashboard/dist/assets/{OperationsPage-zUaab-CL.js.map → OperationsPage-D6B9Vv__.js.map} +1 -1
  229. package/dashboard/dist/assets/OperatorDashboard-CIH1cxjQ.js +2 -0
  230. package/dashboard/dist/assets/{OperatorDashboard-el5BquXN.js.map → OperatorDashboard-CIH1cxjQ.js.map} +1 -1
  231. package/dashboard/dist/assets/{PageHeader-DiGWAQlR.js → PageHeader-DClJ33fV.js} +2 -2
  232. package/dashboard/dist/assets/{PageHeader-DiGWAQlR.js.map → PageHeader-DClJ33fV.js.map} +1 -1
  233. package/dashboard/dist/assets/{PageHeaderWithStats-DwnKQ06j.js → PageHeaderWithStats-C-TrbKQL.js} +2 -2
  234. package/dashboard/dist/assets/{PageHeaderWithStats-DwnKQ06j.js.map → PageHeaderWithStats-C-TrbKQL.js.map} +1 -1
  235. package/dashboard/dist/assets/PersonaDetailPage-DjvfyIph.js +2 -0
  236. package/dashboard/dist/assets/{PersonaDetailPage-B_tb8gfl.js.map → PersonaDetailPage-DjvfyIph.js.map} +1 -1
  237. package/dashboard/dist/assets/{PersonasPage-BPI7mqM8.js → PersonasPage-D7ryA8Vc.js} +2 -2
  238. package/dashboard/dist/assets/{PersonasPage-BPI7mqM8.js.map → PersonasPage-D7ryA8Vc.js.map} +1 -1
  239. package/dashboard/dist/assets/{PortalPage-e_rBb1do.js → PortalPage-D3ybr0mo.js} +2 -2
  240. package/dashboard/dist/assets/{PortalPage-e_rBb1do.js.map → PortalPage-D3ybr0mo.js.map} +1 -1
  241. package/dashboard/dist/assets/PrintLabelsPanel-D0HF5x8b.js +2 -0
  242. package/dashboard/dist/assets/PrintLabelsPanel-D0HF5x8b.js.map +1 -0
  243. package/dashboard/dist/assets/{ProcessDetailPage-D35RX1bB.js → ProcessDetailPage-0xS9EdHe.js} +2 -2
  244. package/dashboard/dist/assets/{ProcessDetailPage-D35RX1bB.js.map → ProcessDetailPage-0xS9EdHe.js.map} +1 -1
  245. package/dashboard/dist/assets/{ProcessesListPage-CT81miI5.js → ProcessesListPage-93SMj1Fd.js} +2 -2
  246. package/dashboard/dist/assets/{ProcessesListPage-CT81miI5.js.map → ProcessesListPage-93SMj1Fd.js.map} +1 -1
  247. package/dashboard/dist/assets/{ResolverForm-BxJkoKAO.js → ResolverForm-DfogHDzl.js} +5 -5
  248. package/dashboard/dist/assets/{ResolverForm-BxJkoKAO.js.map → ResolverForm-DfogHDzl.js.map} +1 -1
  249. package/dashboard/dist/assets/RoleDetailPage-DlUOJWSB.js +8 -0
  250. package/dashboard/dist/assets/{RoleDetailPage-DtU7vsJm.js.map → RoleDetailPage-DlUOJWSB.js.map} +1 -1
  251. package/dashboard/dist/assets/{RolePill-D3hkAdKf.js → RolePill-BjD1Qw5y.js} +2 -2
  252. package/dashboard/dist/assets/{RolePill-D3hkAdKf.js.map → RolePill-BjD1Qw5y.js.map} +1 -1
  253. package/dashboard/dist/assets/RolesPage-DqhHSvaw.js +2 -0
  254. package/dashboard/dist/assets/{RolesPage-BE7RWt9q.js.map → RolesPage-DqhHSvaw.js.map} +1 -1
  255. package/dashboard/dist/assets/{RosterWidget-BJMx0a8Z.js → RosterWidget-BrIq61HR.js} +2 -2
  256. package/dashboard/dist/assets/RosterWidget-BrIq61HR.js.map +1 -0
  257. package/dashboard/dist/assets/RunAsSelector-D6zQrCNr.js +2 -0
  258. package/dashboard/dist/assets/{RunAsSelector-Co6s9bqA.js.map → RunAsSelector-D6zQrCNr.js.map} +1 -1
  259. package/dashboard/dist/assets/ScanCodesPage-B2S9DR2f.js +2 -0
  260. package/dashboard/dist/assets/{ScanCodesPage-C2TETaj5.js.map → ScanCodesPage-B2S9DR2f.js.map} +1 -1
  261. package/dashboard/dist/assets/ScanSchemeDetailPage-gpxKN-pL.js +5 -0
  262. package/dashboard/dist/assets/ScanSchemeDetailPage-gpxKN-pL.js.map +1 -0
  263. package/dashboard/dist/assets/ScanStationPage-B-UTgXsG.js +2 -0
  264. package/dashboard/dist/assets/ScanStationPage-B-UTgXsG.js.map +1 -0
  265. package/dashboard/dist/assets/{SchemeMatchFields-9H7SmbED.js → SchemeMatchFields-BK24aa7K.js} +2 -2
  266. package/dashboard/dist/assets/{SchemeMatchFields-9H7SmbED.js.map → SchemeMatchFields-BK24aa7K.js.map} +1 -1
  267. package/dashboard/dist/assets/{ScopeBadge-DGz79rmG.js → ScopeBadge-ofLQ6HW-.js} +2 -2
  268. package/dashboard/dist/assets/{ScopeBadge-DGz79rmG.js.map → ScopeBadge-ofLQ6HW-.js.map} +1 -1
  269. package/dashboard/dist/assets/{StickyPagination-miUdVAKw.js → StickyPagination-CgVv7vc_.js} +2 -2
  270. package/dashboard/dist/assets/{StickyPagination-miUdVAKw.js.map → StickyPagination-CgVv7vc_.js.map} +1 -1
  271. package/dashboard/dist/assets/{StreamMessageDetail-D5Rk7pn7.js → StreamMessageDetail-B9sxDVw4.js} +2 -2
  272. package/dashboard/dist/assets/{StreamMessageDetail-D5Rk7pn7.js.map → StreamMessageDetail-B9sxDVw4.js.map} +1 -1
  273. package/dashboard/dist/assets/{SwimlaneTimeline-B1QY1ZzH.js → SwimlaneTimeline-DQc0CYSL.js} +2 -2
  274. package/dashboard/dist/assets/{SwimlaneTimeline-B1QY1ZzH.js.map → SwimlaneTimeline-DQc0CYSL.js.map} +1 -1
  275. package/dashboard/dist/assets/{TagInput-DaIdhv3h.js → TagInput-47qVYzke.js} +2 -2
  276. package/dashboard/dist/assets/{TagInput-DaIdhv3h.js.map → TagInput-47qVYzke.js.map} +1 -1
  277. package/dashboard/dist/assets/{TaskDetailPage-DKUM37o8.js → TaskDetailPage-D6VOsA1f.js} +2 -2
  278. package/dashboard/dist/assets/{TaskDetailPage-DKUM37o8.js.map → TaskDetailPage-D6VOsA1f.js.map} +1 -1
  279. package/dashboard/dist/assets/{TaskQueuePill-sUA1nZe-.js → TaskQueuePill-C5KmdXAl.js} +2 -2
  280. package/dashboard/dist/assets/{TaskQueuePill-sUA1nZe-.js.map → TaskQueuePill-C5KmdXAl.js.map} +1 -1
  281. package/dashboard/dist/assets/{TasksListPage-CUulwvm-.js → TasksListPage-DG8hvO8G.js} +2 -2
  282. package/dashboard/dist/assets/{TasksListPage-CUulwvm-.js.map → TasksListPage-DG8hvO8G.js.map} +1 -1
  283. package/dashboard/dist/assets/{TimeAgo-CHTelacB.js → TimeAgo-CL02EhFi.js} +2 -2
  284. package/dashboard/dist/assets/{TimeAgo-CHTelacB.js.map → TimeAgo-CL02EhFi.js.map} +1 -1
  285. package/dashboard/dist/assets/{TimestampCell-NanLWLKo.js → TimestampCell-BE7oKVJg.js} +2 -2
  286. package/dashboard/dist/assets/{TimestampCell-NanLWLKo.js.map → TimestampCell-BE7oKVJg.js.map} +1 -1
  287. package/dashboard/dist/assets/{ToolPill-CpBAFdEX.js → ToolPill-Cp9Drk1s.js} +2 -2
  288. package/dashboard/dist/assets/{ToolPill-CpBAFdEX.js.map → ToolPill-Cp9Drk1s.js.map} +1 -1
  289. package/dashboard/dist/assets/{ToolTestPanel-CF1CHzgz.js → ToolTestPanel-CRecLh6S.js} +2 -2
  290. package/dashboard/dist/assets/{ToolTestPanel-CF1CHzgz.js.map → ToolTestPanel-CRecLh6S.js.map} +1 -1
  291. package/dashboard/dist/assets/{TopicDetailPage-CGO8XV_a.js → TopicDetailPage-QzkinTfN.js} +3 -3
  292. package/dashboard/dist/assets/{TopicDetailPage-CGO8XV_a.js.map → TopicDetailPage-QzkinTfN.js.map} +1 -1
  293. package/dashboard/dist/assets/{TopicsPage-Bt8gOKYr.js → TopicsPage-D8dW6J65.js} +2 -2
  294. package/dashboard/dist/assets/{TopicsPage-Bt8gOKYr.js.map → TopicsPage-D8dW6J65.js.map} +1 -1
  295. package/dashboard/dist/assets/{UserName-DKXnK7DD.js → UserName-Dw3R_zrl.js} +2 -2
  296. package/dashboard/dist/assets/{UserName-DKXnK7DD.js.map → UserName-Dw3R_zrl.js.map} +1 -1
  297. package/dashboard/dist/assets/WorkflowExecutionPage-BTocv8or.js +2 -0
  298. package/dashboard/dist/assets/{WorkflowExecutionPage-Crf7AIFc.js.map → WorkflowExecutionPage-BTocv8or.js.map} +1 -1
  299. package/dashboard/dist/assets/{WorkflowPill-CKHip3hH.js → WorkflowPill-BiLYq__w.js} +2 -2
  300. package/dashboard/dist/assets/{WorkflowPill-CKHip3hH.js.map → WorkflowPill-BiLYq__w.js.map} +1 -1
  301. package/dashboard/dist/assets/WorkflowsDashboard-CIPEt3et.js +2 -0
  302. package/dashboard/dist/assets/{WorkflowsDashboard--isjt06C.js.map → WorkflowsDashboard-CIPEt3et.js.map} +1 -1
  303. package/dashboard/dist/assets/{WorkflowsOverview-D7Oqf4-V.js → WorkflowsOverview-Bj4MJIE-.js} +2 -2
  304. package/dashboard/dist/assets/{WorkflowsOverview-D7Oqf4-V.js.map → WorkflowsOverview-Bj4MJIE-.js.map} +1 -1
  305. package/dashboard/dist/assets/{YamlWorkflowDetailPage-B0wxgrGP.js → YamlWorkflowDetailPage-DMEk5k9-.js} +2 -2
  306. package/dashboard/dist/assets/{YamlWorkflowDetailPage-B0wxgrGP.js.map → YamlWorkflowDetailPage-DMEk5k9-.js.map} +1 -1
  307. package/dashboard/dist/assets/{YamlWorkflowsPage-BVdLnm6K.js → YamlWorkflowsPage-F2yyyoiB.js} +2 -2
  308. package/dashboard/dist/assets/{YamlWorkflowsPage-BVdLnm6K.js.map → YamlWorkflowsPage-F2yyyoiB.js.map} +1 -1
  309. package/dashboard/dist/assets/{agents-CHjbjHXA.js → agents-mSgxEPpI.js} +2 -2
  310. package/dashboard/dist/assets/{agents-CHjbjHXA.js.map → agents-mSgxEPpI.js.map} +1 -1
  311. package/dashboard/dist/assets/{bots-WrUhEPWs.js → bots-p4Hp0CV6.js} +2 -2
  312. package/dashboard/dist/assets/{bots-WrUhEPWs.js.map → bots-p4Hp0CV6.js.map} +1 -1
  313. package/dashboard/dist/assets/{capabilities-CunMmkj8.js → capabilities-D_-I_SXR.js} +2 -2
  314. package/dashboard/dist/assets/{capabilities-CunMmkj8.js.map → capabilities-D_-I_SXR.js.map} +1 -1
  315. package/dashboard/dist/assets/{controlplane-D6IZIZoh.js → controlplane-DjdoQnRU.js} +2 -2
  316. package/dashboard/dist/assets/{controlplane-D6IZIZoh.js.map → controlplane-DjdoQnRU.js.map} +1 -1
  317. package/dashboard/dist/assets/{escalation-columns-Bvo6JI4Z.js → escalation-columns-R_IEVQjQ.js} +2 -2
  318. package/dashboard/dist/assets/{escalation-columns-Bvo6JI4Z.js.map → escalation-columns-R_IEVQjQ.js.map} +1 -1
  319. package/dashboard/dist/assets/{escalation-items-DFGRwo49.js → escalation-items-BGZlJMpk.js} +2 -2
  320. package/dashboard/dist/assets/{escalation-items-DFGRwo49.js.map → escalation-items-BGZlJMpk.js.map} +1 -1
  321. package/dashboard/dist/assets/{index-OuKQ_0eB.js → index-BEMdD58x.js} +2 -2
  322. package/dashboard/dist/assets/{index-OuKQ_0eB.js.map → index-BEMdD58x.js.map} +1 -1
  323. package/dashboard/dist/assets/index-BUmz0NMg.css +1 -0
  324. package/dashboard/dist/assets/{index-C7EIu1mG.js → index-BuCEhhnl.js} +2 -2
  325. package/dashboard/dist/assets/{index-C7EIu1mG.js.map → index-BuCEhhnl.js.map} +1 -1
  326. package/dashboard/dist/assets/{index-Bo8QU31k.js → index-BxbQmeqh.js} +2 -2
  327. package/dashboard/dist/assets/{index-Bo8QU31k.js.map → index-BxbQmeqh.js.map} +1 -1
  328. package/dashboard/dist/assets/index-C5osluV3.js +2 -0
  329. package/dashboard/dist/assets/{index-DRK7M1_9.js.map → index-C5osluV3.js.map} +1 -1
  330. package/dashboard/dist/assets/{index-ygxyAKcc.js → index-C_dAJUzh.js} +27 -27
  331. package/dashboard/dist/assets/index-C_dAJUzh.js.map +1 -0
  332. package/dashboard/dist/assets/{index-DRw0FXdX.js → index-D-FYj9jT.js} +2 -2
  333. package/dashboard/dist/assets/{index-DRw0FXdX.js.map → index-D-FYj9jT.js.map} +1 -1
  334. package/dashboard/dist/assets/{index-B8qrHwp9.js → index-D6K_IgCz.js} +2 -2
  335. package/dashboard/dist/assets/{index-B8qrHwp9.js.map → index-D6K_IgCz.js.map} +1 -1
  336. package/dashboard/dist/assets/index-D7L_VoBD.js +2 -0
  337. package/dashboard/dist/assets/index-D7L_VoBD.js.map +1 -0
  338. package/dashboard/dist/assets/{index-BZFSXEkr.js → index-D9RAN9sA.js} +2 -2
  339. package/dashboard/dist/assets/{index-BZFSXEkr.js.map → index-D9RAN9sA.js.map} +1 -1
  340. package/dashboard/dist/assets/{index-DCJ483vt.js → index-DUYAGxwc.js} +2 -2
  341. package/dashboard/dist/assets/{index-DCJ483vt.js.map → index-DUYAGxwc.js.map} +1 -1
  342. package/dashboard/dist/assets/{index-boT612Jo.js → index-Dk2KKo0z.js} +2 -2
  343. package/dashboard/dist/assets/{index-boT612Jo.js.map → index-Dk2KKo0z.js.map} +1 -1
  344. package/dashboard/dist/assets/{index-CpCchhQv.js → index-DlJkZ12b.js} +2 -2
  345. package/dashboard/dist/assets/{index-CpCchhQv.js.map → index-DlJkZ12b.js.map} +1 -1
  346. package/dashboard/dist/assets/index-FiNThtNU.js +3 -0
  347. package/dashboard/dist/assets/index-FiNThtNU.js.map +1 -0
  348. package/dashboard/dist/assets/{knowledge-BubJBTwg.js → knowledge-DSsPTqkK.js} +2 -2
  349. package/dashboard/dist/assets/{knowledge-BubJBTwg.js.map → knowledge-DSsPTqkK.js.map} +1 -1
  350. package/dashboard/dist/assets/{machines-DSm5NFgs.js → machines-DSgGtqqr.js} +2 -2
  351. package/dashboard/dist/assets/{machines-DSm5NFgs.js.map → machines-DSgGtqqr.js.map} +1 -1
  352. package/dashboard/dist/assets/{mcp-D6MckqOV.js → mcp-Cg-_uLw8.js} +2 -2
  353. package/dashboard/dist/assets/{mcp-D6MckqOV.js.map → mcp-Cg-_uLw8.js.map} +1 -1
  354. package/dashboard/dist/assets/{mcp-query-VyCdOag6.js → mcp-query-DQombEK_.js} +2 -2
  355. package/dashboard/dist/assets/{mcp-query-VyCdOag6.js.map → mcp-query-DQombEK_.js.map} +1 -1
  356. package/dashboard/dist/assets/{personas-CyJc10xe.js → personas-DYrcoVBu.js} +2 -2
  357. package/dashboard/dist/assets/{personas-CyJc10xe.js.map → personas-DYrcoVBu.js.map} +1 -1
  358. package/dashboard/dist/assets/{pipelines-B2inDtx3.js → pipelines-wdb4xsey.js} +2 -2
  359. package/dashboard/dist/assets/{pipelines-B2inDtx3.js.map → pipelines-wdb4xsey.js.map} +1 -1
  360. package/dashboard/dist/assets/{tasks-DOP4d3M6.js → tasks-Bil7gvm9.js} +2 -2
  361. package/dashboard/dist/assets/{tasks-DOP4d3M6.js.map → tasks-Bil7gvm9.js.map} +1 -1
  362. package/dashboard/dist/assets/{topics-CNOjSWpX.js → topics-wBqaVhRR.js} +2 -2
  363. package/dashboard/dist/assets/{topics-CNOjSWpX.js.map → topics-wBqaVhRR.js.map} +1 -1
  364. package/dashboard/dist/assets/{useDebouncedValue-CgO0TGMd.js → useDebouncedValue-CwrY8TpV.js} +2 -2
  365. package/dashboard/dist/assets/{useDebouncedValue-CgO0TGMd.js.map → useDebouncedValue-CwrY8TpV.js.map} +1 -1
  366. package/dashboard/dist/assets/{useNamespace-BWHvUKtK.js → useNamespace-Sod_xApz.js} +2 -2
  367. package/dashboard/dist/assets/{useNamespace-BWHvUKtK.js.map → useNamespace-Sod_xApz.js.map} +1 -1
  368. package/dashboard/dist/assets/{useYamlActivityEvents-BZQ__ZGD.js → useYamlActivityEvents-CKLInV3C.js} +2 -2
  369. package/dashboard/dist/assets/{useYamlActivityEvents-BZQ__ZGD.js.map → useYamlActivityEvents-CKLInV3C.js.map} +1 -1
  370. package/dashboard/dist/assets/{validate-CAin6WM_.js → validate-CYhW1xMJ.js} +2 -2
  371. package/dashboard/dist/assets/{validate-CAin6WM_.js.map → validate-CYhW1xMJ.js.map} +1 -1
  372. package/dashboard/dist/assets/{vendor-icons-en0_uSRD.js → vendor-icons-ed7mYQw4.js} +2 -2
  373. package/dashboard/dist/assets/{vendor-icons-en0_uSRD.js.map → vendor-icons-ed7mYQw4.js.map} +1 -1
  374. package/dashboard/dist/assets/{yaml-workflows-Dyln3od-.js → yaml-workflows-C20qHo3L.js} +2 -2
  375. package/dashboard/dist/assets/{yaml-workflows-Dyln3od-.js.map → yaml-workflows-C20qHo3L.js.map} +1 -1
  376. package/dashboard/dist/index.html +3 -3
  377. package/docs/api/http/escalations.md +15 -0
  378. package/docs/api/http/labels.md +115 -0
  379. package/docs/api/http/users.md +2 -0
  380. package/docs/api/mcp/admin.md +76 -1
  381. package/docs/code-owned-configuration.md +1 -1
  382. package/docs/dashboard.md +2 -2
  383. package/docs/hitl/x-lt-roster.md +2 -0
  384. package/docs/hitl/x-lt-scan.md +12 -0
  385. package/docs/iam.md +12 -0
  386. package/docs/label-sheets.md +267 -0
  387. package/docs/scan-codes.md +93 -9
  388. package/package.json +4 -1
  389. package/dashboard/dist/assets/AvailableEscalationsPage-GFn8Sgg1.js +0 -2
  390. package/dashboard/dist/assets/AvailableEscalationsPage-GFn8Sgg1.js.map +0 -1
  391. package/dashboard/dist/assets/BulkAssignModal-CmLVxkz-.js +0 -2
  392. package/dashboard/dist/assets/HomePage-67xXjKjN.js +0 -2
  393. package/dashboard/dist/assets/McpRunDetailPage-qHRQ1pEY.js +0 -2
  394. package/dashboard/dist/assets/OperatorDashboard-el5BquXN.js +0 -2
  395. package/dashboard/dist/assets/PersonaDetailPage-B_tb8gfl.js +0 -2
  396. package/dashboard/dist/assets/RoleDetailPage-DtU7vsJm.js +0 -8
  397. package/dashboard/dist/assets/RolesPage-BE7RWt9q.js +0 -2
  398. package/dashboard/dist/assets/RosterWidget-BJMx0a8Z.js.map +0 -1
  399. package/dashboard/dist/assets/RunAsSelector-Co6s9bqA.js +0 -2
  400. package/dashboard/dist/assets/ScanCodesPage-C2TETaj5.js +0 -2
  401. package/dashboard/dist/assets/ScanSchemeDetailPage-C2UgU8l-.js +0 -5
  402. package/dashboard/dist/assets/ScanSchemeDetailPage-C2UgU8l-.js.map +0 -1
  403. package/dashboard/dist/assets/ScanStationPage-nWYz-OD3.js +0 -2
  404. package/dashboard/dist/assets/ScanStationPage-nWYz-OD3.js.map +0 -1
  405. package/dashboard/dist/assets/WorkflowExecutionPage-Crf7AIFc.js +0 -2
  406. package/dashboard/dist/assets/WorkflowsDashboard--isjt06C.js +0 -2
  407. package/dashboard/dist/assets/index-B95LbYhW.js +0 -2
  408. package/dashboard/dist/assets/index-B95LbYhW.js.map +0 -1
  409. package/dashboard/dist/assets/index-BmzscsXK.css +0 -1
  410. package/dashboard/dist/assets/index-DRK7M1_9.js +0 -2
  411. package/dashboard/dist/assets/index-P-DlgAWj.js +0 -3
  412. package/dashboard/dist/assets/index-P-DlgAWj.js.map +0 -1
  413. package/dashboard/dist/assets/index-ygxyAKcc.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{a as p,j as e}from"./vendor-query-DvWWuNIB.js";import{$ as C,az as I,aA as M,af as A,aB as R,aC as T}from"./index-ygxyAKcc.js";import{P as B}from"./PageHeader-DiGWAQlR.js";import"./FilterBar-Dy0b7wwf.js";import{W as F}from"./WorkflowPill-CKHip3hH.js";import{W as S,u as Q,l as q,e as $,L as z}from"./ResolverForm-BxJkoKAO.js";import{a as k}from"./validate-CAin6WM_.js";import{N as O}from"./NamespacePill-CeSfHH-j.js";import{Q as U,ay as H,az as _,g as L,k as D,aA as V,aB as Y,ap as G}from"./vendor-icons-en0_uSRD.js";import{B as J}from"./BotPicker-Dqpo36dM.js";import{f as K}from"./vendor-react-_9U4mKFr.js";import"./RosterWidget-BJMx0a8Z.js";import"./escalation-items-DFGRwo49.js";import"./UserName-DKXnK7DD.js";import"./StatusBadge-DHVwxre2.js";import"./constants-CeBBTzf5.js";import"./bots-WrUhEPWs.js";function X(t){const[a,n]=p.useState(()=>{try{return window.matchMedia(t).matches}catch{return!1}});return p.useEffect(()=>{let i;try{i=window.matchMedia(t)}catch{return}n(i.matches);const r=l=>n(l.matches);return i.addEventListener("change",r),()=>i.removeEventListener("change",r)},[t]),a}const Z="No Queue";function W(t){return[...new Set(t.map(a=>a.task_queue).filter(Boolean))].sort()}function E(t,a,n){const i=a.toLowerCase().trim(),r=o=>{var x;return!i||o.workflow_type.toLowerCase().includes(i)||((x=o.description)==null?void 0:x.toLowerCase().includes(i))},m=(n?[n]:W(t)).map(o=>({queue:o,workflows:t.filter(x=>x.task_queue===o&&r(x))})).filter(o=>o.workflows.length>0);if(!n){const o=t.filter(x=>!x.task_queue&&r(x));o.length>0&&m.push({queue:"",workflows:o})}return m}function ee(t){var a,n;return((n=(a=E(t,"",null)[0])==null?void 0:a.workflows[0])==null?void 0:n.workflow_type)??null}function te({configs:t,selectedType:a,onSelect:n,tierMap:i,activeTypes:r,search:l,activeQueue:m,compact:o=!1}){const x=p.useMemo(()=>E(t,l,m),[t,l,m]);return x.length===0?e.jsx("p",{className:"text-sm text-text-tertiary py-8 text-center",children:"No workflows match your filter."}):e.jsx("div",{className:o?"space-y-6":"space-y-10",children:x.map(({queue:f,workflows:d})=>e.jsxs("div",{children:[e.jsxs("div",{className:`flex items-center gap-2 py-2 mb-1 border-b border-surface-border ${o?"":"sticky top-[60px] z-10 bg-surface mb-2"}`,children:[f?e.jsx(U,{className:"w-3 h-3 text-accent shrink-0",strokeWidth:1.5}):e.jsx(H,{className:"w-3 h-3 text-text-quaternary shrink-0",strokeWidth:1.5}),e.jsx("h2",{className:"section-h2 truncate",title:f||void 0,children:f?k(f):Z}),e.jsx("span",{className:"text-xs text-text-quaternary",children:d.length})]}),e.jsx("div",{className:o?"":"divide-y divide-surface-border/30",children:d.map(c=>e.jsx(se,{config:c,isSelected:a===c.workflow_type,tier:i.get(c.workflow_type)??"durable",cronActive:(r==null?void 0:r.has(c.workflow_type))??!1,onSelect:n,compact:o},c.workflow_type))})]},f||"__none__"))})}function se({config:t,isSelected:a,tier:n,cronActive:i,onSelect:r,compact:l}){const m=n==="certified"?"certified":n==="registered"?"registered":"durable";return l?e.jsxs("button",{onClick:()=>r(t),"aria-current":a?"true":void 0,title:t.workflow_type,className:`group w-full text-left flex items-center gap-2.5 pl-3 pr-2 py-2 border-l-2 transition-colors ${a?"border-accent bg-accent/10 text-accent":"border-transparent text-text-primary hover:bg-surface-hover"}`,children:[e.jsx(S,{icon:t.icon,tier:n,className:`w-5 h-5 shrink-0 ${a?"text-accent":"text-accent/65"}`}),e.jsx("span",{className:"text-sm truncate",children:k(t.workflow_type)}),i&&e.jsx("span",{title:"Cron schedule active",className:"ml-auto shrink-0",children:e.jsx(_,{className:"w-3 h-3 text-status-success/70"})})]}):e.jsxs("button",{onClick:()=>r(t),className:"group relative w-full text-left py-2 px-3 -mx-3 rounded-md hover:bg-surface-hover/30 transition-colors duration-150",children:[a&&e.jsx("span",{className:"absolute left-0 top-1 bottom-1 w-0.5 bg-accent rounded-full"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(F,{type:t.workflow_type,size:"md",variant:m}),t.description&&e.jsx("p",{className:"flex-1 min-w-0 truncate text-2xs text-text-tertiary group-hover:text-text-secondary transition-colors",children:t.description}),e.jsxs("span",{className:"ml-auto flex items-center gap-2 shrink-0",children:[t.execute_as&&e.jsxs("span",{className:"inline-flex items-center gap-0.5 px-1.5 py-0.5 text-2xs bg-accent/10 text-accent rounded",children:[e.jsx(L,{className:"w-2.5 h-2.5"}),t.execute_as]}),i&&e.jsx("span",{title:"Cron schedule active",children:e.jsx(_,{className:"w-3 h-3 text-status-success/70 shrink-0"})}),e.jsx(O,{namespace:"durable"}),e.jsx("span",{title:"Configure & invoke",children:e.jsx(D,{className:`w-3 h-3 transition-opacity ${a?"text-accent opacity-100":"text-accent opacity-0 group-hover:opacity-100"}`,strokeWidth:1.5})})]})]})]})}function ae({config:t,overrideBot:a,onOverrideChange:n,showOverride:i}){const{user:r}=C(),l=a||t.execute_as;return e.jsxs("div",{className:"bg-surface-sunken rounded-lg px-4 py-3 space-y-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"text-2xs text-text-tertiary uppercase tracking-wider font-medium",children:"Running as"}),l&&!a&&e.jsx("span",{className:"text-2xs text-text-tertiary",children:"configured default"}),a&&e.jsx("span",{className:"text-2xs text-accent",children:"admin override"})]}),e.jsx("div",{className:"field flex items-center gap-1.5",children:l?e.jsxs(e.Fragment,{children:[e.jsx(L,{className:"w-3.5 h-3.5 text-accent/70 shrink-0"}),e.jsx("span",{className:"text-xs text-text-primary font-mono",children:l})]}):e.jsxs(e.Fragment,{children:[e.jsx(V,{className:"w-3.5 h-3.5 text-text-tertiary shrink-0"}),e.jsx("span",{className:"text-xs text-text-primary",children:(r==null?void 0:r.displayName)||(r==null?void 0:r.username)||"you"})]})})]}),i&&n&&e.jsxs("div",{children:[e.jsx("label",{className:"text-2xs text-text-tertiary uppercase tracking-wider font-medium mb-1 block",children:"Override identity"}),e.jsx(J,{selected:a??"",onChange:n,placeholder:t.execute_as?`Default: ${t.execute_as}`:"Invoking user (default)"})]})]})}function re({selected:t}){const{isSuperAdmin:a,hasRoleType:n}=C(),i=a||n("admin"),[r,l]=p.useState(""),[m,o]=p.useState(t.certified);p.useEffect(()=>{l(""),o(t.certified)},[t.workflow_type,t.certified]);const x=p.useMemo(()=>{var N;const u=(N=t.envelope_schema)==null?void 0:N.metadata;return u&&typeof u=="object"?u:{}},[t.envelope_schema]),f=Array.isArray(t.input_lookups)&&t.input_lookups.length>0,{data:d}=I(t.workflow_type,f),c=p.useMemo(()=>d?M(d.lookups):void 0,[d]),w=(d==null?void 0:d.lookups.filter(u=>u.missing))??[],j=Q(t,{certified:m,overrideBot:r}),y=e.jsxs(e.Fragment,{children:[t.description&&e.jsx(A,{content:t.description,className:"text-xs text-text-secondary leading-relaxed"}),e.jsx(ae,{config:t,overrideBot:r,onOverrideChange:l,showOverride:i}),t.certified&&e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:m,onChange:u=>o(u.target.checked),className:"rounded border-surface-border text-accent focus:ring-accent/30"}),e.jsx(Y,{className:"w-3.5 h-3.5 text-text-tertiary"}),e.jsx("span",{className:"text-xs text-text-secondary",children:"Enable task tracking and escalation routing"})]})]});return e.jsxs("div",{className:"max-w-form","data-testid":"invoke-form",children:[e.jsxs("header",{className:"sticky top-0 z-10 bg-surface -mt-8 pt-8 flex items-baseline gap-3 min-w-0 pb-3 mb-5 border-b border-surface-border/60",children:[e.jsx(S,{icon:t.icon,tier:t.tier,className:"w-7 h-7 self-center shrink-0 text-accent"}),e.jsx("h2",{className:"heading-2 truncate",title:t.workflow_type,children:k(t.workflow_type)}),e.jsx("span",{className:"text-2xs font-mono text-text-quaternary shrink-0",children:t.workflow_type}),e.jsx("span",{className:"text-2xs uppercase tracking-widest text-text-tertiary shrink-0",children:t.tier}),t.task_queue&&e.jsx("span",{className:"text-2xs font-mono text-text-quaternary truncate",children:t.task_queue})]}),w.length>0&&e.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning mb-4","data-testid":"lookup-missing",children:[e.jsx(G,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),w.map(q).join(", ")," ",w.length===1?"is":"are"," not available; the fields that read ",w.length===1?"it":"them"," fall back to plain inputs."]}),t.input_schema?e.jsx($,{selected:t,schema:t.input_schema,metadata:x,lookup:c,submission:j,lead:y}):e.jsx(z,{selected:t,metadata:x,submission:j,lead:y})]})}const b="type",ne=!1;function oe(){const[t,a]=K(),{data:n,isLoading:i}=R(),{data:r}=T(),l=X("(max-width: 1279px)"),m=t.get(b)??"",[o,x]=p.useState(""),[f,d]=p.useState(null),c=n??[],w=p.useMemo(()=>{const s=new Map;for(const h of c)s.set(h.workflow_type,h.tier);return s},[c]),j=c.find(s=>s.workflow_type===m),y=new Set((r??[]).filter(s=>s.active).map(s=>s.workflow_type)),u=p.useCallback((s,h={})=>{a(P=>{const g=new URLSearchParams(P);return s?g.set(b,s):g.delete(b),g},{replace:h.replace??!1})},[a]);if(p.useEffect(()=>{if(t.get(b)||c.length===0)return;const s=ee(c);s&&u(s,{replace:!0})},[c,t,u]),i)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-40 bg-surface-sunken rounded"})]});const N=W(c),v=j?e.jsx(re,{selected:j}):e.jsx("p",{className:"text-xs text-text-tertiary",children:"Choose a tool to begin."});return e.jsxs("div",{children:[e.jsx(B,{title:"Invoke Tool",docsHash:"#docs:dashboard.md:invoke-tool"}),c.length===0?e.jsxs("div",{className:"py-16 text-center",children:[e.jsx("p",{className:"text-sm text-text-primary mb-1",children:"No tools to invoke"}),e.jsx("p",{className:"text-xs text-text-tertiary",children:"Mark workflows as invocable in the registry, or start the server with examples enabled."})]}):l?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"block mb-6 max-w-2xl",children:[e.jsx("span",{className:"block text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Tool"}),e.jsxs("select",{value:m,onChange:s=>u(s.target.value||null),className:"select text-xs font-mono w-full",children:[e.jsx("option",{value:"",children:"Choose a tool…"}),N.map(s=>e.jsx("optgroup",{label:k(s),children:c.filter(h=>(h.task_queue||"")===s).map(h=>e.jsx("option",{value:h.workflow_type,children:k(h.workflow_type)},h.workflow_type))},s)),c.filter(s=>!s.task_queue).map(s=>e.jsx("option",{value:s.workflow_type,children:k(s.workflow_type)},s.workflow_type))]})]}),e.jsx("div",{className:"pt-8",children:v})]}):e.jsxs("div",{className:"flex gap-10 items-start",children:[e.jsxs("aside",{className:"w-1/4 min-w-[15rem] shrink-0 sticky top-0 self-start -mt-8 pt-8 max-h-[calc(100vh-5rem)] overflow-y-auto pr-1 space-y-4","data-testid":"invoke-list",children:[ne,e.jsx(te,{configs:c,selectedType:m,onSelect:s=>u(s.workflow_type),tierMap:w,activeTypes:y,search:o,activeQueue:f,compact:!0})]}),e.jsx("section",{className:"flex-1 min-w-0",children:v})]})]})}function ve(){return e.jsx(oe,{})}export{ve as DurableInvokePage,oe as StartWorkflowPage};
2
- //# sourceMappingURL=index-DRK7M1_9.js.map
@@ -1,3 +0,0 @@
1
- import{b as Gt,a as d,j as e}from"./vendor-query-DvWWuNIB.js";import{ab as Ts,M as dt,ac as he,m as be,a4 as rt,ad as Is,ae as Ms,g as ze,af as Ht,J as Ce,h as Ps,i as Ds,P as ee,ag as Mt,ah as it,$ as zt,a9 as Os,ai as Ls,aj as $s,ak as Ws,al as Fs,am as Vs,an as Bs,ao as qs,ap as Js,aq as Us,ar as Ks,r as Gs,s as Hs,as as zs,at as Xs,U as Qs,V as Ys,a as Zs,c as ea,O as ta,au as Pt,y as sa,av as aa,aw as Dt}from"./index-ygxyAKcc.js";import{E as na,d as ra,b as Xe,R as Xt,r as ia,p as la,a as oa,w as ca,s as da,v as ua,c as ma,F as xa,i as fa}from"./ResolverForm-BxJkoKAO.js";import{u as Qt,C as Yt,r as pa,B as ha,a as ga}from"./BulkAssignModal-CmLVxkz-.js";import{a as Zt,u as ut,L as Ee,b as ba,e as ya}from"./vendor-react-_9U4mKFr.js";import{P as ja}from"./PageHeader-DiGWAQlR.js";import{L as va}from"./ListToolbar-CJmvGy2B.js";import{i as _e}from"./validate-CAin6WM_.js";import{S as Na}from"./StatusBadge-DHVwxre2.js";import{R as wa}from"./RolePill-D3hkAdKf.js";import{C as Ze}from"./CountdownTimer-CuPY7zkb.js";import{C as ie}from"./CopyableId-Bn02zYxt.js";import{U as je}from"./UserName-DKXnK7DD.js";import{i as ka,s as Sa,b as Ca,d as _a,e as Ea,I as Aa,m as Ra,a as mt}from"./escalation-items-DFGRwo49.js";import{d as Ta}from"./metadata-display-B7X5hGxG.js";import{U as es,X as ts,h as Ia,a7 as Ma,Y as Pa,S as Da,ar as Oa,as as La,a3 as $a,q as Wa,ak as Fa,at as Va,b as Ba,au as ss,av as Ot,aw as qa,a as Ja,_ as Lt,$ as $t,ax as Ua}from"./vendor-icons-en0_uSRD.js";import{u as Ka,r as Ga,E as Ha}from"./RosterWidget-BJMx0a8Z.js";import"./constants-CeBBTzf5.js";import"./WorkflowPill-CKHip3hH.js";import"./useDebouncedValue-CgO0TGMd.js";function za({escalationId:t}){var g;const a=Zt(),n=ut(),o=Gt(),r=(g=a.state)==null?void 0:g[Ts],[i,c]=d.useState(!1),[h,y]=d.useState(null),[x,f]=d.useState(!1);if(!r||r.escalationId!==t||x)return null;const b=()=>{f(!0),n(a.pathname,{replace:!0,state:null})},p=async()=>{var s,j,v;c(!0),y(null);try{switch(r.verb){case he.CANCEL:await be(`/escalations/${t}/cancel`,{method:"POST"});break;case he.CLAIM:case he.CLAIM_SHOW_DETAIL:await be(`/escalations/${t}/claim`,{method:"POST",body:JSON.stringify({durationMinutes:((s=r.params)==null?void 0:s.durationMinutes)??30})});break;case he.RELEASE:await be(`/escalations/${t}/release`,{method:"POST"});break;case he.RESOLVE:await be(`/escalations/${t}/resolve`,{method:"POST",body:JSON.stringify({resolverPayload:((j=r.params)==null?void 0:j.resolverPayload)??{}})});break;case he.ESCALATE:await be(`/escalations/${t}/escalate`,{method:"PATCH",body:JSON.stringify({targetRole:(v=r.params)==null?void 0:v.targetRole})});break;default:throw new Error(`Unsupported confirm verb "${r.verb}"`)}o.resetQueries({queryKey:["escalations"]}),o.resetQueries({queryKey:["escalationStats"]}),b()}catch(N){y(N.message)}finally{c(!1)}};return e.jsx(dt,{open:!0,onClose:b,title:"Confirm scan action",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-text-secondary",children:r.prompt}),h&&e.jsx("p",{className:"text-xs text-status-error",children:h}),e.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsx("button",{onClick:b,disabled:i,className:"btn-secondary text-xs",children:"No, go back"}),e.jsx("button",{onClick:p,disabled:i,className:"btn-primary text-xs",children:i?"Working…":"Yes, continue"})]})]})})}const He={pending:"rgb(var(--lt-status-queued-graphic))",claimed:"rgb(var(--lt-status-claimed-graphic))",resolved:"rgb(var(--lt-status-success-graphic))",cancelled:"rgb(var(--lt-status-error))"},lt=4;function Wt({pct:t,place:a,label:n,title:o,emphasis:r}){const i=e.jsx("span",{className:"w-px h-1 bg-text-quaternary/70","aria-hidden":!0}),c=e.jsx("span",{className:`whitespace-nowrap leading-none tabular-nums text-[10px] ${r?"text-text-tertiary":"text-text-quaternary"}`,children:n});return e.jsx("div",{title:o,className:`absolute ${a==="above"?"bottom-0":"top-0"} flex flex-col items-center gap-0 -translate-x-1/2 cursor-help`,style:{left:`${t}%`},children:a==="above"?e.jsxs(e.Fragment,{children:[c,i]}):e.jsxs(e.Fragment,{children:[i,c]})})}function Xa({esc:t,className:a=""}){const n=new Date(t.created_at).getTime(),o=t.claimed_at?new Date(t.claimed_at).getTime():null,r=t.status==="resolved",i=t.status==="cancelled"||t.status==="expired",c=r||i,h=_e(t),y=!!o&&(h||c),x=r&&t.resolved_at?new Date(t.resolved_at).getTime():i?new Date(t.updated_at).getTime():Date.now(),f=Math.max(x-n,1),b=y&&o?Math.max(o-n,0):f,p=y&&o?Math.max(x-o,0):0,g=Math.min(100,Math.max(0,b/f*100)),s=y?Math.max(0,100-g):0,j=r?He.resolved:i?He.cancelled:He.claimed,v=r?"Resolved after":i?"Cancelled after":"In progress",N=rt(b),E=rt(f),R=r?`Resolved in ${E} total`:i?`Cancelled after ${E}`:`Open ${E} so far`,w=`Lifecycle bar: blue = time waiting to be claimed, ${r?"green":i?"red":"orange"} = ${v.toLowerCase()} the claim.`;return e.jsxs("div",{className:a,title:w,children:[e.jsx("div",{className:"relative h-2.5 font-mono",children:y&&e.jsx(Wt,{pct:g,place:"above",label:N,title:`Time to claim: ${N}`})}),e.jsxs("div",{className:"flex w-full rounded-full overflow-hidden",style:{height:lt,backgroundColor:"rgb(var(--lt-surface-sunken))"},title:w,children:[e.jsx("div",{style:{width:`${g}%`,minWidth:lt,backgroundColor:He.pending,opacity:.75},title:`Waiting ${N} — created → claimed`}),y&&s>0&&e.jsx("div",{style:{width:`${s}%`,minWidth:lt,backgroundColor:j,opacity:.75},title:`${v} ${rt(p)}`})]}),e.jsx("div",{className:"relative h-2.5 font-mono",children:e.jsx(Wt,{pct:100,place:"below",emphasis:!0,label:E,title:R})})]})}function Qa({triage:t,payload:a}){const n=t.confidence??0,o=n>=.8?"text-status-success":n>=.5?"text-status-pending":"text-status-error",r=Ya(t.originalData,a);return e.jsxs("div",{className:"space-y-5",children:[t.diagnosis&&e.jsx("p",{className:"text-sm text-text-primary leading-relaxed",children:t.diagnosis}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs text-text-tertiary",children:[t.tool_calls_made!=null&&e.jsxs("span",{children:[t.tool_calls_made," tool call",t.tool_calls_made!==1?"s":""]}),t.tool_calls_made!=null&&e.jsx("span",{className:"text-text-quaternary",children:"·"}),e.jsxs("span",{className:`font-medium ${o}`,children:[Math.round(n*100),"% confidence"]})]}),t.actions_taken&&t.actions_taken.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.actions_taken.map((i,c)=>e.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-2xs
2
- text-text-secondary`,children:[e.jsx("svg",{className:"w-3 h-3 text-status-success shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),i]},c))}),t.recommendation&&e.jsx("p",{className:"text-2xs text-text-tertiary italic",children:t.recommendation}),r.length>0&&e.jsx("div",{className:"space-y-4 pt-2",children:r.map(i=>e.jsx(Za,{diff:i},i.key))})]})}function Ya(t,a){if(!t)return[];const n=[];for(const o of Object.keys(t)){if(o.startsWith("_"))continue;const r=t[o],i=a[o];i!==void 0&&JSON.stringify(r)!==JSON.stringify(i)&&n.push({key:o,label:o.replace(/[_-]/g," "),original:r,corrected:i})}return n}function Za({diff:t}){const a=Ft(t.original),n=Ft(t.corrected);return a!==null&&n!==null?e.jsx("div",{className:"@container",children:e.jsxs("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-8 gap-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal",children:"(original)"})]}),e.jsx("p",{className:"text-sm text-text-tertiary leading-relaxed line-through decoration-text-tertiary/30",children:a})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"})]}),e.jsx("p",{className:"text-sm text-text-primary leading-relaxed",children:n})]})]})}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal",children:"(original)"})]}),e.jsx("pre",{className:"text-xs text-text-tertiary font-mono whitespace-pre-wrap leading-relaxed",children:typeof t.original=="object"?JSON.stringify(t.original,null,2):String(t.original)})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"})]}),e.jsx("pre",{className:"text-xs text-text-primary font-mono whitespace-pre-wrap leading-relaxed",children:typeof t.corrected=="object"?JSON.stringify(t.corrected,null,2):String(t.corrected)})]})]})}function Ft(t){return t==null?"null":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):null}function en({escalationId:t,items:a,canWrite:n,labelTemplate:o,labelContext:r,guardWrite:i}){var w,C;const c=Is(),h=Ms(),[y,x]=d.useState(""),[f,b]=d.useState(""),[p,g]=d.useState(null),s=n&&a.kind==="accumulate",j=(m,M)=>i?i(m,M):M(),v=a.max!==null&&a.count>=a.max,N=()=>{const m=y.trim();if(!m){g("An item key is required.");return}let M;if(f.trim())try{const S=JSON.parse(f);if(!S||typeof S!="object"||Array.isArray(S))throw new Error("object");M=S}catch{g("Payload must be a JSON object.");return}g(null),j("add an item",()=>c.mutate({id:t,itemKey:m,payload:M},{onSuccess:()=>{x(""),b("")}}))},E=a.kind==="batch"?"filled":"held",R=a.max===null?`${a.count} ${E}`:`${a.count} of ${a.max} ${E}`;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[e.jsx("span",{className:"text-xs font-medium text-text-primary","data-testid":"items-headline",children:R}),e.jsx("span",{className:"text-2xs uppercase tracking-wide text-text-tertiary",children:a.kind==="batch"?"Batch":a.max===null?"Open":"Accumulator"})]}),a.items.length===0?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"Nothing held yet."}):e.jsx("ol",{className:"divide-y divide-surface-border/60","data-testid":"items-list",children:a.items.map((m,M)=>{const S=ka(o,m,r);return e.jsxs("li",{className:"py-2 flex items-start gap-2 group",children:[e.jsx("span",{className:"text-2xs text-text-quaternary font-mono w-5 shrink-0 text-right pt-0.5",children:M+1}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("span",{className:`text-xs text-text-primary truncate ${S?"":"font-mono"}`,title:m.itemKey,"data-testid":"item-label",children:S??m.itemKey}),m.reciprocalId&&e.jsx(Ee,{to:`/escalations/detail/${m.reciprocalId}`,className:"icon-link text-2xs shrink-0",title:"Open the reciprocal escalation",children:"linked"})]}),m.payload&&e.jsx("div",{className:"text-2xs text-text-secondary truncate",title:JSON.stringify(m.payload),children:Sa(m.payload)}),e.jsxs("div",{className:"flex items-center gap-2 text-2xs text-text-tertiary",children:[m.at&&e.jsx(ze,{date:m.at}),m.actor&&e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(es,{className:"w-2.5 h-2.5"}),e.jsx(je,{userId:m.actor})]})]})]}),s&&e.jsx("button",{type:"button",onClick:()=>j("remove an item",()=>h.mutate({id:t,itemKey:m.itemKey})),disabled:h.isPending,className:"icon-link opacity-50 group-hover:opacity-100 shrink-0 p-0.5",title:`Remove ${S??m.itemKey}`,"aria-label":`Remove ${S??m.itemKey}`,children:e.jsx(ts,{className:"w-3 h-3"})})]},m.itemKey)})}),a.kind==="batch"&&a.pending.length>0&&e.jsxs("p",{className:"text-2xs text-text-tertiary",children:["Awaiting: ",e.jsx("span",{className:"font-mono",children:a.pending.join(", ")})]}),s&&e.jsxs("form",{className:"space-y-2 pt-2 border-t border-surface-border/60",onSubmit:m=>{m.preventDefault(),N()},"data-testid":"add-item-form",children:[e.jsx("label",{className:"block text-2xs uppercase tracking-wide text-text-secondary",children:"Add item"}),e.jsx("input",{value:y,onChange:m=>x(m.target.value),placeholder:"Item key","aria-label":"Item key",disabled:v||c.isPending,className:"w-full text-xs font-mono px-2 py-1.5 rounded-md bg-surface-base border border-surface-border text-text-primary placeholder:text-text-quaternary focus:outline-none focus:border-accent disabled:opacity-50"}),e.jsx("textarea",{value:f,onChange:m=>b(m.target.value),placeholder:'Payload JSON (optional), e.g. {"weight": 2}',"aria-label":"Item payload",rows:2,disabled:v||c.isPending,className:"w-full text-xs font-mono px-2 py-1.5 rounded-md bg-surface-base border border-surface-border text-text-primary placeholder:text-text-quaternary focus:outline-none focus:border-accent disabled:opacity-50"}),e.jsxs("div",{className:"flex items-center justify-end gap-3",children:[v&&e.jsx("span",{className:"text-2xs text-text-tertiary",children:"Every slot is held."}),e.jsxs("button",{type:"submit",disabled:v||c.isPending,className:"btn-secondary text-xs inline-flex items-center gap-1",children:[e.jsx(Ia,{className:"w-3 h-3"}),c.isPending?"Adding…":"Add"]})]}),(p||c.error||h.error)&&e.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:p??((w=c.error)==null?void 0:w.message)??((C=h.error)==null?void 0:C.message)})]})]})}const D={HELP:"help",DETAILS:"details",TRIAGE:"triage",METADATA:"metadata",ITEMS:"items",CONTEXT:"context",RECORD:"record",ERRORS:"errors"},as="lt:escalation:panel:view";function tn(t){try{const a=localStorage.getItem(as);if(a&&t.includes(a))return a}catch{}return D.HELP}function sn({metadata:t,role:a}){const n=Ta(t);return n.length===0?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No metadata on this escalation."}):e.jsx("dl",{className:"space-y-3.5",children:n.map(([o,r])=>{const i=typeof r=="object"&&r!==null?JSON.stringify(r):String(r),c=Mt(o,r,a),h=Mt(o,r);return e.jsxs("div",{className:"group relative",children:[e.jsx("dt",{className:"text-2xs font-medium text-text-secondary uppercase tracking-wide",children:ra(o)}),e.jsxs("dd",{className:"mt-0.5 flex items-center gap-1",children:[e.jsx("span",{className:"text-xs text-text-primary font-mono break-all flex-1",children:i}),e.jsx(Ee,{to:c,title:`Filter this queue: ${o} = ${i}`,className:"opacity-50 group-hover:opacity-100 transition-opacity shrink-0 p-0.5 text-text-quaternary hover:text-accent",children:e.jsx(Va,{className:"w-3 h-3"})}),e.jsx(Ee,{to:h,title:`Search all queues: ${o} = ${i}`,className:"opacity-50 group-hover:opacity-100 transition-opacity shrink-0 p-0.5 text-text-quaternary hover:text-accent",children:e.jsx(Ba,{className:"w-3 h-3"})})]})]},o)})})}function an({esc:t,claimed:a,isTerminal:n,isBuilder:o,traceUrl:r}){return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("dl",{className:"space-y-3.5",children:[e.jsx(ee,{label:"Status",children:e.jsx(Na,{status:t.status})}),e.jsx(ee,{label:"Assigned to Role",children:e.jsx(wa,{role:t.role,size:"md"})}),e.jsxs(ee,{label:"Priority",children:["P",t.priority]}),(a||n)&&t.assigned_to&&e.jsx(ee,{label:"Claimed By",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 font-medium text-text-primary",children:[e.jsx(es,{className:"w-3 h-3 shrink-0 text-accent/75"}),e.jsx(je,{userId:t.assigned_to})]})}),e.jsx(ee,{label:"Created",children:e.jsx(ze,{date:t.created_at})}),(a||n)&&t.claimed_at&&e.jsx(ee,{label:"Claimed",children:e.jsx(ze,{date:t.claimed_at})}),a&&!n&&t.assigned_until&&e.jsx(ee,{label:"Time Remaining",children:e.jsx(Ze,{until:t.assigned_until})}),t.resolved_at&&e.jsx(ee,{label:"Completed",children:e.jsx("span",{className:"text-status-success",children:e.jsx(ze,{date:t.resolved_at})})})]}),o&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{className:"border-surface-border/60"}),e.jsxs("div",{className:"space-y-3.5",children:[e.jsx(ie,{label:"Escalation ID",value:t.id}),t.task_id&&e.jsx(ie,{label:"Task ID",value:t.task_id,href:`/workflows/tasks/detail/${t.task_id}`}),t.workflow_type&&e.jsx(ie,{label:"Workflow Name",value:t.workflow_type,href:`/workflows/executions?entity=${encodeURIComponent(t.workflow_type)}`}),t.workflow_id&&e.jsx(ie,{label:"Workflow ID",value:t.workflow_id,href:`/workflows/executions/${t.workflow_id}`}),t.task_queue&&e.jsx(ie,{label:"Task Queue",value:t.task_queue,href:`/admin/controlplane?queue=${encodeURIComponent(t.task_queue)}`}),t.origin_id&&t.origin_id!==t.workflow_id&&e.jsx(ie,{label:"Origin",value:t.origin_id,href:`/processes/detail/${t.origin_id}`}),t.trace_id&&e.jsx(ie,{label:"Trace",value:t.trace_id,href:r?r.replace("{traceId}",t.trace_id):void 0,external:!0})]})]})]})}function nn({esc:t,schema:a,envelope:n,payload:o,resolver:r,triage:i,hasAI:c,claimed:h,claimedByMe:y,isTerminal:x,isBuilder:f,traceUrl:b,open:p,noGutter:g,formErrors:s,activePanel:j,onPanelChange:v,canWriteItems:N,guardItemWrite:E}){const R=ut(),w=Object.values(D),[C,m]=d.useState(()=>tn(w)),M=j??C,S=d.useCallback(T=>{try{localStorage.setItem(as,T)}catch{}m(T),v==null||v(T)},[v]);d.useEffect(()=>{j&&j!==C&&m(j)},[j]);const V=d.useMemo(()=>Ca(a,{escalation:t,metadata:t.metadata??null,envelope:n,payload:o,resolver:r})??_a({isTerminal:x,status:t.status,claimed:h,claimedByMe:y}),[a,t,n,o,r,x,h,y]),L=d.useCallback(T=>{const O=T.target.closest("a"),P=O==null?void 0:O.getAttribute("href");P!=null&&P.startsWith("/")&&(T.preventDefault(),R(P))},[R]),B=d.useMemo(()=>Ea(t,n),[t,n]),q=[{id:D.HELP,icon:Ma,label:"Instructions",content:e.jsx(Ht,{content:V,onClick:L})},{id:D.DETAILS,icon:Pa,label:"Details",content:e.jsx(an,{esc:t,claimed:h,isTerminal:x,isBuilder:f,traceUrl:b})},...c&&i?[{id:D.TRIAGE,icon:Da,label:"AI Analysis",content:e.jsx(Qa,{triage:i,payload:o??{}})}]:[],{id:D.METADATA,icon:Oa,label:"Metadata",content:e.jsx(sn,{metadata:t.metadata,role:t.role})},...B?[{id:D.ITEMS,icon:La,label:"Items",content:e.jsx(en,{escalationId:t.id,items:B,canWrite:!!N&&t.status==="pending",guardWrite:E,labelTemplate:a==null?void 0:a[Aa],labelContext:{escalation:t,metadata:t.metadata??null,envelope:n,payload:o}})}]:[],{id:D.CONTEXT,icon:$a,label:"Context",content:e.jsxs("div",{className:"space-y-5",children:[n!=null&&e.jsx(Ce,{data:n,label:"Input Envelope"}),o!=null&&e.jsx(Ce,{data:o,label:"Escalation Context"}),r!=null&&e.jsx(Ce,{data:r,label:"Resolver Payload"}),n==null&&o==null&&r==null&&e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No context on this escalation."})]})},...f?[{id:D.RECORD,icon:Wa,label:"Record",content:e.jsx(Ce,{data:t,label:"Escalation Record"})}]:[],...s&&s.length>0?[{id:D.ERRORS,icon:(({className:T})=>e.jsx(Fa,{className:`${T??""} text-status-error`})),label:"Errors",content:e.jsx(na,{errors:s,schema:a})}]:[]];return e.jsx(Ps,{open:p,width:384,className:"h-full",children:e.jsx("div",{className:`h-full${g?"":" pl-6"}`,children:e.jsxs("div",{className:"h-full flex flex-col bg-surface-hover",children:[e.jsx("div",{className:"shrink-0 pt-2 pb-0 flex justify-center",children:e.jsx(Xa,{esc:t,className:"w-[80%]"})}),e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(Ds,{views:q,activeId:M,onViewChange:S,stickyClassName:"h-full min-h-0"})})]})})})}function rn(t){const{mode:a,activeView:n,onActiveViewChange:o,onClaim:r,claimPending:i,claimNudge:c,workflowType:h,json:y,onResolve:x,resolvePending:f,resolveError:b,requestTriage:p,triageNotes:g,onRelease:s,releasePending:j,onCancel:v,assignedTo:N,assignedUntil:E,onSubmitAttempt:R,onValidationErrors:w,escalationContext:C,labels:m={},submitBlocked:M,submitBlockedMessage:S,actingName:V,submitNeedsBadge:L,canManage:B,onReassign:q,onUnassign:T,unassignPending:O}=t,P=Qt(),[$,se]=d.useState("30"),[le,Ae]=d.useState(0),[ve,Re]=d.useState(""),_=$==="custom",ae=d.useCallback(A=>Ae(A),[]),G=!!M&&!p;if(a==="terminal")return null;const H=()=>{const A=_?le:parseInt($);!A||A<=0||r(A)},Te=()=>{if(Re(""),p){const Ie={_lt:{needsTriage:!0}};g.trim()&&(Ie.notes=g.trim()),x(Ie);return}const A=Xe(y,C);if(A.parseError){Re(A.parseError);return}if(A.errors.length>0){R==null||R(),w==null||w(A.errors);return}x(A.payload)},Ne=A=>`text-xs transition-colors ${A?"text-accent font-medium":"text-text-tertiary hover:text-accent"}`;return e.jsxs("div",{className:"shrink-0 h-[80px] bg-surface/95 backdrop-blur-sm border-t border-surface-border -ml-10 pl-10 pr-10 pt-3 pb-5","data-testid":"escalation-action-bar",children:[a==="available"&&e.jsxs("div",{"data-testid":"claim-bar",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-2",children:[P.map(A=>e.jsx("button",{onClick:()=>{se(A.value),Ae(0)},className:Ne(!_&&$===A.value),children:A.label},A.value)),e.jsx("button",{onClick:()=>se("custom"),className:Ne(_),children:"Other"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[m.cancel!==!1&&e.jsx("button",{onClick:v,className:"text-xs text-text-tertiary hover:text-status-error transition-colors",children:m.cancel??"Cancel escalation"}),e.jsx("div",{className:"flex-1"}),_&&e.jsx(Yt,{onChange:ae,compact:!0,autoFocus:!0}),e.jsx("button",{onClick:H,disabled:i||_&&le<=0,className:`btn-primary text-xs ${c?"animate-[field-shake_0.4s_ease-in-out]":""}`,"data-testid":"claim-button",children:i?"Claiming...":m.claim??"Claim"},c)]})]}),a==="claimed_by_other"&&e.jsxs("div",{className:"flex items-center gap-4","data-testid":"claimed-other-bar",children:[e.jsxs("p",{className:"text-sm text-text-secondary",children:["Claimed by ",e.jsx("span",{className:"font-medium text-text-primary",children:N?e.jsx(je,{userId:N}):"unknown"})]}),E&&e.jsx(Ze,{until:E}),b&&e.jsx("span",{className:"text-xs text-status-error",children:b.message}),B&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex-1"}),e.jsx("button",{onClick:q,className:"text-xs text-text-tertiary hover:text-accent transition-colors","data-testid":"admin-reassign",children:"Reassign…"}),e.jsx("button",{onClick:T,disabled:O,className:"text-xs text-text-tertiary hover:text-status-error transition-colors disabled:opacity-50","data-testid":"admin-unassign",children:O?"Returning…":"Return to queue"})]})]}),a==="claimed_by_me"&&e.jsxs("div",{"data-testid":"action-bar",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-2",children:[e.jsx("button",{onClick:()=>o("resolve"),className:Ne(n==="resolve"),children:h?"Resolve":"Acknowledge"}),e.jsx("button",{onClick:()=>o("release"),className:`text-xs transition-colors ${n==="release"?"text-status-error font-medium":"text-text-tertiary hover:text-status-error"}`,children:m.release??"Release"}),m.cancel!==!1&&e.jsx("button",{onClick:v,className:"text-xs transition-colors text-text-tertiary hover:text-status-error",children:m.cancel??"Cancel"})]}),n==="resolve"&&e.jsxs("div",{className:"flex items-center gap-4",children:[L?e.jsxs("p",{className:"flex items-center gap-1.5 text-sm text-text-secondary","data-testid":"submit-badge-warning",children:[e.jsx(ss,{className:"w-4 h-4 text-accent-muted shrink-0",strokeWidth:1.5}),"When you submit, you'll scan your badge to confirm you're"," ",e.jsx("span",{className:"font-medium text-text-primary",children:N?e.jsx(je,{userId:N}):"the claimant"}),"."]}):V&&e.jsxs("p",{className:"text-sm text-text-secondary","data-testid":"acting-claim-note",children:["Claimed by you ",e.jsxs("span",{className:"font-medium text-text-primary",children:["(",V,")"]})]}),!L&&V&&E&&e.jsx(Ze,{until:E}),e.jsx("div",{className:"flex-1"}),ve&&e.jsx("span",{className:"text-xs text-status-error",children:ve}),b&&e.jsx("span",{className:"text-xs text-status-error",children:b.message}),G&&S&&e.jsx("span",{className:"text-xs text-status-pending","data-testid":"submit-guard-message",children:S}),e.jsx("button",{onClick:Te,disabled:f||G,className:"btn-primary text-xs",children:f?h?"Submitting...":"Acknowledging...":p?"Send to Triage":m.submit??(h?"Submit":"Acknowledge")})]}),n==="release"&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-xs text-text-secondary",children:"Release back to pool?"}),e.jsx("div",{className:"flex-1"}),e.jsx("button",{onClick:()=>o("resolve"),className:"btn-secondary text-xs",children:"Back"}),e.jsx("button",{onClick:s,disabled:j,className:"btn-primary text-xs bg-status-error hover:bg-status-error/80",children:j?"Releasing...":"Yes, Release"})]})]})]})}function ot({children:t}){return e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:t})}function ln({payload:t,isTerminal:a,resolverPayload:n,onRetryTriage:o,isRetrying:r}){const i=t.title,c=t.summary,h=t.diagnosis,y=t.tool_calls_made,x=t.result,f=n==null?void 0:n._lt,b=(f==null?void 0:f.triaged)===!0,p=f==null?void 0:f.triageWorkflowId,g=a&&b,[s,j]=d.useState(!1);return g?e.jsxs("div",{className:"rounded-md border border-status-success/30 bg-surface-raised",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("svg",{className:"w-4 h-4 text-status-success shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm3.36 4.65a.5.5 0 00-.72 0L7 9.29 5.36 7.65a.5.5 0 10-.72.7l2 2a.5.5 0 00.72 0l4-4a.5.5 0 000-.7z"})}),e.jsx("span",{className:"text-xs font-medium text-status-success",children:"Resolved by AI Triage"})]}),typeof y=="number"&&e.jsxs("span",{className:"text-2xs font-mono px-2 py-0.5 rounded-full bg-status-success/10 text-status-success",children:[y," tool calls used"]})]}),e.jsxs("div",{className:"px-4 py-4 space-y-4",children:[i&&e.jsx("p",{className:"text-sm font-medium text-text-primary",children:i}),h&&e.jsxs("div",{children:[e.jsx(ot,{children:"Triage diagnosis"}),e.jsx("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsx(it,{content:h})})]}),e.jsx("div",{className:"flex items-center gap-3",children:p&&e.jsx(Ee,{to:`/workflows/executions/${p}`,className:"text-2xs text-accent hover:underline",children:"View triage execution"})})]})]}):e.jsxs("div",{className:"rounded-md border border-status-warning/30 bg-surface-raised",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("svg",{className:"w-4 h-4 text-status-warning shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm0 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 4zm0 7a.75.75 0 100-1.5.75.75 0 000 1.5z"})}),e.jsx("span",{className:"text-xs font-medium text-status-warning",children:"Tool Rounds Exhausted"})]}),typeof y=="number"&&e.jsxs("span",{className:"text-2xs font-mono px-2 py-0.5 rounded-full bg-status-warning/10 text-status-warning",children:[y," tool calls used"]})]}),e.jsxs("div",{className:"px-4 py-4 space-y-4",children:[i&&e.jsx("p",{className:"text-sm font-medium text-text-primary",children:i}),c&&e.jsxs("div",{children:[e.jsx(ot,{children:"What happened"}),e.jsx("div",{className:"text-xs text-text-secondary leading-relaxed",children:e.jsx(it,{content:c})})]}),h&&e.jsxs("div",{children:[e.jsx(ot,{children:"What went wrong"}),e.jsx("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsx(it,{content:h})})]}),x!=null&&e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>j(!s),className:"flex items-center gap-1 text-2xs font-semibold uppercase tracking-widest text-text-tertiary hover:text-text-secondary transition-colors",children:[e.jsx("svg",{className:`w-3 h-3 transition-transform ${s?"rotate-90":""}`,viewBox:"0 0 12 12",fill:"currentColor",children:e.jsx("path",{d:"M4.5 2l4 4-4 4"})}),"Partial results"]}),s&&e.jsx("div",{className:"mt-2",children:e.jsx(Ce,{data:x,defaultMode:"tree"})})]}),o&&!a&&e.jsx("div",{className:"pt-2",children:e.jsxs("button",{onClick:o,disabled:r,className:"inline-flex items-center gap-2 px-4 py-2 text-xs font-medium bg-accent text-text-inverse rounded-md hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[e.jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 14 14",fill:"currentColor",children:e.jsx("path",{d:"M7 1a6 6 0 100 12A6 6 0 007 1zm2.5 6.5l-3.5 2V5.5l3.5 2z"})}),r?"Sending to triage...":"Retry with AI Triage"]})})]})]})}const te={PENDING:"pending",CLAIMED:"claimed",RESOLVED:"resolved"};function ns(t){const a=t==null?void 0:t["x-lt-viewport"];return(a==null?void 0:a.type)!=="iframe"||typeof a.src!="string"||!a.src?null:a}function Vt(t,a){return a===te.CLAIMED?t.src:a===te.PENDING?t.onPending??null:t.onResolved??null}function Qe(t,a){if(!t.includes("{"))return t;try{const n=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},o={...a.metadata??{},...n(a.envelope),...n(a.escalation_payload),...n(a.resolver_payload)};return t.replace(/\{([^}]+)\}/g,(r,i)=>Object.prototype.hasOwnProperty.call(o,i)?String(o[i]):`{${i}}`)}catch{return t}}function Bt(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Ye({src:t,escalation:a,schema:n,stage:o=te.CLAIMED,onResolve:r,onEscalate:i,readOnly:c=!1,submitAttempted:h,fill:y}){const x=d.useRef(null),f=d.useRef("");d.useEffect(()=>{try{const p=new URL(t);f.current=p.origin}catch{f.current=""}},[t]);const b=d.useCallback(()=>{const p=x.current;if(!(p!=null&&p.contentWindow)||!f.current)return;const s={type:"lt:init",escalation:{id:a.id,type:a.type,subtype:a.subtype,description:a.description,status:a.status,priority:a.priority,role:a.role,workflow_type:a.workflow_type,envelope:Bt(a.envelope),metadata:a.metadata??null,escalation_payload:Bt(a.escalation_payload)},schema:n,stage:o};p.contentWindow.postMessage(s,f.current)},[a,n,o]);return d.useEffect(()=>{const p=g=>{if(g.origin!==f.current)return;const s=g.data;if(!(!s||typeof s!="object"||typeof s.type!="string"))switch(s.type){case"lt:ready":b();break;case"lt:submit":!c&&s.payload&&typeof s.payload=="object"&&(r==null||r(s.payload));break;case"lt:escalate":!c&&typeof s.target=="string"&&s.target&&(i==null||i(s.target));break;case"lt:resize":{const j=x.current;j&&typeof s.height=="number"&&s.height>0&&(j.style.height=`${Math.min(s.height,2e3)}px`);break}}};return window.addEventListener("message",p),()=>window.removeEventListener("message",p)},[b,r,i,c]),d.useEffect(()=>{if(!h||c)return;const p=x.current;p!=null&&p.contentWindow&&f.current&&p.contentWindow.postMessage({type:"lt:validate"},f.current)},[h,c]),y?e.jsx("div",{className:"absolute inset-0 overflow-hidden",children:e.jsx("iframe",{ref:x,src:t,sandbox:"allow-scripts allow-same-origin allow-forms allow-pointer-lock allow-downloads",className:"w-full h-full border-0 block",title:"HITL Viewport",onLoad:b})}):e.jsx("div",{className:"rounded-md border border-surface-border overflow-hidden bg-white",children:e.jsx("iframe",{ref:x,src:t,sandbox:"allow-scripts allow-same-origin allow-forms allow-pointer-lock allow-downloads",className:"w-full border-0",style:{minHeight:"600px"},title:"HITL Viewport",onLoad:b})})}function on({json:t,onJsonChange:a,requestTriage:n,onRequestTriageChange:o,triageNotes:r,onTriageNotesChange:i,disabled:c=!1,submitAttempted:h=!1,showTriage:y=!1,escalationContext:x,onOpenHelp:f,onDisabledClick:b,disabledHint:p}){return e.jsxs(e.Fragment,{children:[y&&e.jsx("div",{className:"flex items-center justify-between mb-3",children:n?e.jsxs("button",{onClick:()=>o(!1),className:"group flex items-center gap-2 text-left","data-testid":"triage-cancel",children:[e.jsx("span",{className:"flex items-center justify-center w-5 h-5 rounded-full bg-accent/10 text-accent shrink-0",children:e.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}),e.jsxs("span",{className:"text-xs text-text-secondary group-hover:text-text-primary transition-colors",children:["AI Triage active."," ",e.jsx("span",{className:"text-accent group-hover:underline",children:"Cancel"})]})]}):e.jsxs("button",{onClick:()=>o(!0),className:"group flex items-center gap-2.5 text-left my-4","data-testid":"triage-callout",children:[e.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-accent/10 text-accent shrink-0 animate-[triage-glow_6s_ease-in-out_infinite]",children:e.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.674M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})})}),e.jsxs("span",{className:"text-sm text-text-secondary group-hover:text-text-primary transition-colors",children:["This form doesn't capture the issue?"," ",e.jsx("span",{className:"text-accent group-hover:underline",children:"Request AI Triage"})]})]})}),e.jsxs("div",{className:"relative min-h-[200px]",children:[e.jsx("div",{className:n?"pointer-events-none select-none":"",children:e.jsx(Xt,{value:t,onChange:a,disabled:c,submitAttempted:h,escalationContext:x,onOpenHelp:f,onDisabledClick:b,disabledHint:p})}),n&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col bg-surface/90 backdrop-blur-[2px] rounded-md border border-accent/20 p-5","data-testid":"triage-overlay",children:[e.jsx("p",{className:"text-xs text-text-secondary mb-3 leading-relaxed",children:"The resolution form will not be submitted. Describe the issue so AI triage can diagnose and fix it using available tools. The corrected result will come back as a new escalation for your review."}),e.jsx("textarea",{value:r,onChange:g=>i(g.target.value),placeholder:"e.g. Content is in Spanish — needs translation to English before review...",className:"input text-xs w-full flex-1 min-h-[80px] resize-none",autoFocus:!0,"data-testid":"triage-notes"})]})]})]})}function qt(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}function U(t,a,n){return{escalation:t,metadata:t.metadata??null,envelope:qt(t.envelope),payload:qt(t.escalation_payload),resolver:null,...a?{lookup:a}:{},...n?{roster:n}:{}}}function cn({isRoundsExhausted:t,payloadObj:a,isTerminal:n,resolverPayload:o,onRetryTriage:r,isRetrying:i}){return e.jsxs(e.Fragment,{children:[t&&a&&e.jsx("div",{className:"mt-8",children:e.jsx(ln,{payload:a,isTerminal:n,resolverPayload:o,onRetryTriage:r,isRetrying:i})}),(a==null?void 0:a.category)==="missing_credential"&&e.jsxs("div",{className:"mt-8 bg-status-warning/10 border border-status-warning/30 rounded-md px-5 py-4 flex items-start gap-3",children:[e.jsx(Ot,{size:20,className:"text-status-warning mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-text-primary mb-1",children:"Missing Credential"}),e.jsxs("p",{className:"text-xs text-text-secondary mb-3",children:["This workflow requires a ",e.jsx("span",{className:"font-medium capitalize",children:String(a.provider)})," credential to continue. Register one and then resolve this escalation to retry."]}),e.jsxs(Ee,{to:"/credentials",className:"btn-primary text-xs inline-flex items-center gap-1.5",children:[e.jsx(Ot,{size:12}),"Go to Credentials"]})]})]})]})}function dn({esc:t,resolverPayload:a,isTerminal:n,editable:o,activeView:r,metadataFormSchema:i,effectiveSchema:c,lookup:h,roster:y,json:x,onJsonChange:f,requestTriage:b,onRequestTriageChange:p,triageNotes:g,onTriageNotesChange:s,onResolve:j,onEscalate:v,onClaim:N,submitAttempted:E,isCertified:R,hasAI:w,onOpenHelp:C,onDisabledClick:m,disabledHint:M}){const S=c,V=U(t,h,y),L=ns(S);if(n){const T=L&&t.status==="resolved"?Vt(L,te.RESOLVED):null;if(T)return e.jsx("div",{className:"mt-3",children:e.jsx(Ye,{src:Qe(T,t),escalation:t,schema:S,stage:te.RESOLVED,readOnly:!0})});if(a==null)return null;const O=typeof a=="object"&&a!==null?a:{};if(!Object.keys(O).some(se=>!se.startsWith("$")&&!se.startsWith("_")))return null;const P=c??i,$=P!=null&&P.properties?{...Ra(O,P),_form_schema:P}:O;return e.jsx("div",{className:"mt-3",children:e.jsx(Xt,{value:JSON.stringify($,null,2),onChange:()=>{},disabled:!0,escalationContext:V,disabledHint:M})})}if(r!=="resolve"||!(t.workflow_type||c))return null;const B=!!L&&!!j&&!!v;if(B&&!o){const T=Vt(L,te.PENDING);return T?e.jsx("div",{className:"mt-3",children:e.jsx(Ye,{src:Qe(T,t),escalation:t,schema:S,stage:te.PENDING,readOnly:!0})}):e.jsxs("button",{onClick:()=>N==null?void 0:N(),disabled:!N,className:"flex flex-col items-center justify-center min-h-[55vh] w-full gap-3 text-center group disabled:opacity-50 disabled:cursor-default",children:[e.jsx(qa,{className:"w-10 h-10 text-text-tertiary group-hover:text-accent transition-colors",strokeWidth:1}),e.jsx("p",{className:"text-base font-medium text-text-primary group-hover:text-accent transition-colors",children:"Claim to launch the editor"})]})}const q=B?Qe(L.src,t):"";return e.jsx("div",{className:"mt-3",children:B?e.jsx(Ye,{src:q,escalation:t,schema:S,onResolve:j,onEscalate:v,submitAttempted:E}):e.jsx(on,{json:x,onJsonChange:f,requestTriage:b,onRequestTriageChange:p,triageNotes:g,onTriageNotesChange:s,disabled:!o,submitAttempted:E,showTriage:!!R&&!!w,escalationContext:V,onOpenHelp:C,onDisabledClick:m,disabledHint:M})})}function un({open:t,assignedUntil:a,onClose:n,onExtend:o,isPending:r}){const i=Qt(),[c,h]=d.useState("30"),[y,x]=d.useState(0),f=c==="custom",b=f?y:parseInt(c),p=d.useCallback(g=>x(g),[]);return e.jsx(dt,{open:t,onClose:n,title:"Claim Expiring",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"text-sm text-text-secondary",children:["Your claim on this escalation expires in"," ",e.jsx(Ze,{until:a}),". When it lapses, the form locks and the item returns to the queue — your edits are kept as a draft. Extend to keep working."]}),e.jsxs("select",{value:c,onChange:g=>{h(g.target.value),x(0)},className:"select w-full text-sm","aria-label":"Extension duration",children:[i.map(g=>e.jsx("option",{value:g.value,children:g.label},g.value)),e.jsx("option",{value:"custom",children:"Other..."})]}),f&&e.jsx(Yt,{onChange:p,autoFocus:!0}),e.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsx("button",{onClick:n,className:"btn-secondary text-xs",children:"Dismiss"}),e.jsx("button",{onClick:()=>o(b),className:"btn-primary text-xs",disabled:r||!b||b<=0,children:r?"Extending...":"Extend Claim"})]})]})})}const mn=9e4;function xn(t,a=mn){const[,n]=d.useState(0);if(d.useEffect(()=>{if(!t)return;const r=new Date(t).getTime()-Date.now();if(r<=0)return;const i=()=>n(y=>y+1),c=[],h=r-a;return h>0&&c.push(window.setTimeout(i,h)),c.push(window.setTimeout(i,r)),()=>c.forEach(y=>window.clearTimeout(y))},[t,a]),!t)return{expired:!1,expiringSoon:!1,msRemaining:0};const o=Math.max(0,new Date(t).getTime()-Date.now());return{expired:o<=0,expiringSoon:o>0&&o<=a,msRemaining:o}}const fn="lt:escalation:draft:";function xt(t){return`${fn}${t}`}function pn(t){try{return localStorage.getItem(xt(t))}catch{return null}}function hn(t,a){try{localStorage.setItem(xt(t),a)}catch{}}function ct(t){try{localStorage.removeItem(xt(t))}catch{}}const gn="x-lt-transition",bn="x-lt-transition-message",yn="x-lt-transition-max-wait-seconds",jn="x-lt-transition-done",vn="Submitted. Preparing your next step…",Nn=30,wn=5,kn=300;function Sn(t){const a=typeof t=="number"?t:Number(t);return!Number.isFinite(a)||a<=0?Nn:Math.min(kn,Math.max(wn,Math.round(a)))}function Jt(t){if(!t||!t[gn])return null;const a=t[bn];return{message:typeof a=="string"&&a.trim().length>0?a:vn,maxWaitSeconds:Sn(t[yn])}}function Cn(t){const a=t==null?void 0:t[jn];return typeof a=="string"&&a.trim().length>0?a:null}const _n="x-lt-submit-on-claim";function En(t){return!!(t!=null&&t[_n])}const An="x-lt-submit-guard",Rn="{{count}} related items are still pending",Tn="{{count}} expected items are still outstanding";function In(t){const a=t==null?void 0:t[An];if(!a||typeof a!="object"||Array.isArray(a))return;const n=a;if(typeof n.roster=="string"&&n.roster)return n;if(!(!n.query||typeof n.query!="object"))return n}function Mn(t,a,n={}){const{user:o}=zt(),r=ia((t==null?void 0:t.query)??{},a??{},o==null?void 0:o.userId),i=!!(t!=null&&t.roster),{data:c,isSuccess:h}=Os({role:r.role,status:r.status,facets:r.facets,assigned_to:r.assigned_to,available:r.available,limit:1,enabled:!!t&&!i&&r.enabled});if(t&&i)return Pn(t,n,a);const y=!!t&&t.mustBeEmpty!==!1&&r.enabled,x=(c==null?void 0:c.total)??0,f=y&&h&&x===0,b=y&&!f;let p="";if(b)if(x>0){const g=(t==null?void 0:t.message)??Rn;p=mt(g.replace(/\{\{count\}\}/g,String(x)),a??{})}else p="Checking related items…";return{blocked:b,count:x,message:p,confirmedEmpty:f}}function Pn(t,a,n){const o=t.roster;if(!(o in a))return{blocked:!0,count:0,message:`Submit guard names roster "${o}", which the form does not declare`,confirmedEmpty:!1};const r=a[o];if(!r)return{blocked:!0,count:0,message:"Checking expected items…",confirmedEmpty:!1};const i=r.counts.outstanding;if(i<=0)return{blocked:!1,count:0,message:"",confirmedEmpty:!1};const c=t.message??Tn;return{blocked:!0,count:i,message:mt(c.replace(/\{\{count\}\}/g,String(i)),n??{}),confirmedEmpty:!1}}function Dn({open:t,message:a}){return t?ba.createPortal(e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center px-4",children:[e.jsx("div",{className:"absolute inset-0 bg-text-primary/40 backdrop-blur-sm"}),e.jsxs("div",{role:"status","aria-live":"polite",className:"relative w-full max-w-sm bg-surface-raised border border-surface-border rounded-lg shadow-xl px-6 py-7 text-center",children:[e.jsx("div",{className:"flex justify-center mb-4","aria-hidden":"true",children:e.jsx("span",{className:"inline-block w-7 h-7 rounded-full border-2 border-surface-border border-t-accent animate-spin"})}),e.jsx("div",{className:"text-sm text-text-secondary [&_p]:m-0 [&_p+p]:mt-2",children:e.jsx(Ht,{content:a})})]})]}),document.body):null}function Ut({open:t,verb:a="submit",claimantId:n,wrongBadgeName:o,anyBadge:r,message:i,onCancel:c}){return t?e.jsx(dt,{open:!0,onClose:c,title:`Scan your badge to ${a}`,children:e.jsxs("div",{className:"flex flex-col items-center text-center py-6","data-testid":"station-write-challenge",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx(Ja,{className:"w-7 h-7 text-text-quaternary",strokeWidth:1}),e.jsx(ss,{className:"w-9 h-9 text-accent-muted",strokeWidth:1})]}),e.jsx("p",{className:"text-lg text-text-secondary",children:r?e.jsxs(e.Fragment,{children:["Scan your badge to ",a,"."]}):e.jsxs(e.Fragment,{children:["Scan your badge to ",a," as"," ",e.jsx("span",{className:"font-medium text-text-primary",children:n?e.jsx(je,{userId:n}):"the claimant"}),"."]})}),i&&e.jsx("p",{className:"text-sm text-status-warning mt-3","data-testid":"badge-message",children:i}),o&&e.jsxs("p",{className:"text-sm text-status-error mt-3","data-testid":"wrong-badge",children:["That badge is ",o,"'s — scan the claimant's badge to ",a,"."]}),e.jsx("div",{className:"w-16 border-t border-surface-border my-6"}),e.jsx("button",{type:"button",onClick:c,className:"text-sm text-text-tertiary hover:text-text-secondary hover:underline",children:"Cancel"})]})}):null}function On(){var a;const t=typeof document<"u"?document.activeElement:null;return t instanceof HTMLElement?((a=t.closest("[data-field-key]"))==null?void 0:a.getAttribute("data-field-key"))??null:null}function Ln({enabled:t,json:a,onJsonChange:n,context:o,onScanSubmit:r}){var f;const i=(f=Ls())==null?void 0:f.pushCodeInterceptor,{data:c}=$s({enabled:t,staleTime:6e4}),[h,y]=d.useState(null),x=d.useRef({json:a,onJsonChange:n,context:o,onScanSubmit:r,schemes:(c==null?void 0:c.schemes)??[]});return x.current={json:a,onJsonChange:n,context:o,onScanSubmit:r,schemes:(c==null?void 0:c.schemes)??[]},d.useEffect(()=>{if(!(!t||!i))return i(b=>{const{json:p,schemes:g}=x.current,s=Ws(b,g);if(!s.ok||s.scheme.kind!=="action")return!1;let j;try{j=JSON.parse(p)}catch{return!1}const v=j._form_schema,N=la(v,j,s.parsed.version,On());if(!v||!N)return!1;const E=v.properties[N],R={version:s.parsed.version,target:s.parsed.target,code:s.parsed.raw??b.trim()},w=oa(j[N],R,E,x.current.context);if(!w.ok)return y({field:N,error:w.error,at:Date.now()}),!0;const C={...j,[N]:w.value},m=JSON.stringify(C,null,2);return x.current.onJsonChange(m),y({field:N,error:null,at:Date.now()}),ca(v)&&da(v,C)&&x.current.onScanSubmit(m),!0})},[t,i]),h}const rs="lt:escalation:panel:open";function $n(){try{const t=localStorage.getItem(rs);return t===null?!0:t==="true"}catch{return!0}}function ge(t){try{localStorage.setItem(rs,String(t))}catch{}}function ye(t){if(!t)return null;try{return JSON.parse(t)}catch{return t}}function Wn(t){const a=ye(t);return!a||typeof a!="object"||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(([n])=>!n.startsWith("_")&&!n.startsWith("$")))}function lr(){const{id:t}=ya();return e.jsx(Fn,{id:t},t)}function Fn({id:t}){var Et,At,Rt,Tt,It;const{user:a,isSuperAdmin:n,hasRoleType:o}=zt(),r=n||o("admin"),{identity:i,clear:c}=Fs(),h=Vs(),{data:y}=Bs((a==null?void 0:a.userId)??null),{viewerId:x,isViewer:f}=qs(),b=ut(),p=Zt(),g=Gt(),{data:s,isLoading:j,refetch:v,isFetching:N}=Js(t);Us(t);const E=d.useMemo(()=>{if(!(s!=null&&s.envelope))return!1;try{const l=JSON.parse(s.envelope);return Array.isArray(l==null?void 0:l.lookups)&&l.lookups.length>0}catch{return!1}},[s==null?void 0:s.envelope]),{data:R}=Ks(t,E),w=d.useMemo(()=>{var l;return(l=R==null?void 0:R.lookups)!=null&&l.length?Object.fromEntries(R.lookups.filter(u=>!u.missing).map(u=>[u.as??u.key,u.data])):null},[R]),C=Gs(),m=Hs(),M=zs(),S=Xs(),V=Qs(),L=Ys(),[B,q]=d.useState(!1),[T,O]=d.useState(!1),{data:P}=Zs(),{data:$}=ea(),{isBuilder:se}=ta(),le=P==null?void 0:P.find(l=>l.workflow_type===(s==null?void 0:s.workflow_type)),Ae=((Et=$==null?void 0:$.telemetry)==null?void 0:Et.traceUrl)??null,[ve,Re]=d.useState("resolve"),[_,ae]=d.useState("{}"),[G,H]=d.useState($n),[Te,Ne]=d.useState(!1),[A,Ie]=d.useState(""),[Me,Pe]=d.useState(!1),[is,oe]=d.useState([]),[ls,os]=d.useState(0),[cs,ce]=d.useState(void 0),[z,et]=d.useState(null),[ds,ft]=d.useState(!1),pt=d.useRef(!1),De=d.useRef(null),ht=d.useRef(!1),Oe=d.useRef(null),gt=d.useRef(()=>{}),[ne,Le]=d.useState(null),[J,$e]=d.useState(null),us=xn(s==null?void 0:s.assigned_until),[ms,xs]=d.useState(null);d.useEffect(()=>{if(!(!Me||!s))try{const l=JSON.parse(_),u=l._form_schema;if(!u){oe([]);return}oe(ua(u,l,U(s,w,K)))}catch{}},[_,Me,s]);const We=((At=s==null?void 0:s.metadata)==null?void 0:At.form_schema)??null,de=(s==null?void 0:s.form_schema)??(le==null?void 0:le.resolver_schema)??null,I=We??de,bt=En(I),X=pa(I),yt=d.useMemo(()=>Wn(_),[_]),jt=Ka(I,s?{...U(s,w),resolver:yt,input:yt}:void 0),K=Ga(jt),we=In(I),ue=Mn(we,s?U(s,w,K):void 0,jt),Fe=d.useRef(!1),Ve=d.useRef(null);d.useEffect(()=>{if(Fe.current)return;const l=We??(de!=null&&de.properties?de:null);if(l!=null&&l.properties){Fe.current=!0;const u=ye(s==null?void 0:s.envelope),k=u==null?void 0:u.formDefaults,F={...(s==null?void 0:s.metadata)??{},...typeof k=="object"&&k!==null?k:{}};Ve.current=ma(l,F);const Z=!((s==null?void 0:s.status)==="resolved"||(s==null?void 0:s.status)==="cancelled")&&(s!=null&&s.id)?pn(s.id):null,pe=Z?ye(Z):null;pe&&typeof pe=="object"&&!Array.isArray(pe)?ae(JSON.stringify({...pe,_form_schema:l},null,2)):ae(Ve.current)}else I&&(Fe.current=!0,ae(JSON.stringify(I,null,2)))},[I,We,de,s==null?void 0:s.envelope,s==null?void 0:s.metadata,s==null?void 0:s.id,s==null?void 0:s.status]),d.useEffect(()=>{if(!Fe.current||Ve.current===null||!(s!=null&&s.id)||s.status!=="pending")return;const l=s.id,u=window.setTimeout(()=>{_===Ve.current?ct(l):hn(l,_)},400);return()=>window.clearTimeout(u)},[_,s==null?void 0:s.id,s==null?void 0:s.status]),d.useEffect(()=>{if(!z)return;const l=window.setTimeout(async()=>{var k;try{const F=new URLSearchParams({parent_id:t,assigned_to:x??"",status:"pending",limit:"1"}),fe=await be(`/escalations?${F}`),Z=(k=fe==null?void 0:fe.escalations)==null?void 0:k.find(pe=>f(pe.assigned_to));if(Z!=null&&Z.id&&Z.parent_id===t){et(null),b(`/escalations/detail/${Z.id}`);return}}catch{}et(null),g.resetQueries({queryKey:["escalations"]}),g.resetQueries({queryKey:["escalationStats"]});const u=z.doneDest;u?u.startsWith("/")?b(u):window.location.assign(u):b(-1)},z.maxWaitSeconds*1e3);return()=>window.clearTimeout(l)},[z,t,x,f,b,g]),d.useEffect(()=>{var l,u;pt.current||(l=p.state)!=null&&l.autoStart&&(!s||s.status!=="pending"||_e(s)||_!=="{}"&&(pt.current=!0,(u=De.current)==null||u.call(De)))},[s,_,p.state]),d.useEffect(()=>{var l;ht.current||!(we!=null&&we.autoResolveWhenEmpty)||!ue.confirmedEmpty||!s||s.status!=="pending"||!_e(s)||s.assigned_to===x&&_!=="{}"&&(ht.current=!0,(l=Oe.current)==null||l.call(Oe))},[ue.confirmedEmpty,we,s,_,x]),d.useEffect(()=>{if(!(!ne||!s)&&i&&i.actorId===s.assigned_to){const{run:l}=ne;Le(null),Promise.resolve().then(l).finally(()=>c())}},[i,ne,s==null?void 0:s.assigned_to,c]),d.useEffect(()=>{if(!J||!i)return;const{run:l}=J;$e(null),l().finally(()=>c())},[i,J,c]);const fs=(s==null?void 0:s.subtype)==="rounds_exhausted",ps=!!s&&_e(s),hs=(s==null?void 0:s.status)==="resolved"||(s==null?void 0:s.status)==="cancelled",W=Ln({enabled:h&&!!s&&ps&&!hs&&(s.assigned_to===x||Pt(y)),json:_,onJsonChange:ae,context:s?U(s,w,K):void 0,onScanSubmit:l=>gt.current(l)}),[gs,bs]=d.useState(!1),vt=d.useMemo(()=>W&&{...W,message:`Scanned into ${Kt(I,W.field)}`},[W,I]);if(d.useLayoutEffect(()=>{var k;if(!W)return;const l=W.field.replace(/["\\]/g,F=>`\\${F}`),u=document.querySelector(`[data-field-key="${l}"]`);bs(!!u),(k=u==null?void 0:u.scrollIntoView)==null||k.call(u,{block:"nearest",behavior:"smooth"})},[W]),j)return e.jsxs("div",{className:"animate-pulse space-y-8",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-64"}),e.jsx("div",{className:"h-32 bg-surface-sunken rounded w-full"})]});if(!s)return e.jsx("p",{className:"text-sm text-text-secondary",children:"Escalation not found."});const Be=_e(s),Q=Be&&s.assigned_to===x,ys=Be&&!Q,re=s.status==="resolved"||s.status==="cancelled",qe=h&&Pt(y)&&Be&&!re,Je=Q||qe,tt=qe&&s.assigned_to!==(a==null?void 0:a.userId),Nt=ns(I),st=!!Nt&&Je&&!re,Ue=ye(s.escalation_payload),me=ye(s.resolver_payload),Ke=ye(s.envelope),js=!!((Rt=Ke==null?void 0:Ke.metadata)!=null&&Rt.certified),wt=sa(),kt=wt!==null?wt:!!((Tt=$==null?void 0:$.ai)!=null&&Tt.enabled),Y=typeof Ue=="object"&&Ue!==null&&!Array.isArray(Ue)?Ue:null,vs=Y==null?void 0:Y._triage,Ns=typeof me=="object"&&me!==null&&!Array.isArray(me)?me:null,Ge=re?"terminal":Q||qe?"claimed_by_me":ys?"claimed_by_other":"available",ws=Ge==="available"?`${typeof X.claim=="string"?X.claim:"Claim"} this escalation to edit the form`:Ge==="claimed_by_other"?e.jsxs(e.Fragment,{children:["Claimed by ",s.assigned_to?e.jsx(je,{userId:s.assigned_to}):"another user"]}):s.status==="cancelled"?"This escalation is cancelled":s.status==="resolved"?"This escalation is resolved — the submitted values are shown":null,at=l=>{C.mutate({id:t,durationMinutes:l})},ke=()=>{g.resetQueries({queryKey:["escalations"]}),g.resetQueries({queryKey:["escalationStats"]}),b(-1)},ks=()=>{const l=Cn(I);return l&&mt(l,U(s,w,K))||null},Ss=l=>{g.resetQueries({queryKey:["escalations"]}),g.resetQueries({queryKey:["escalationStats"]}),l.startsWith("/")?b(l):window.location.assign(l)},Cs=async l=>{try{await m.mutateAsync({id:t,resolverPayload:l})}catch(F){if(F instanceof Dt&&fa(F.body)){Pe(!0),oe(F.body.violations),ce(D.ERRORS);return}throw F}ct(t);const u=Jt(I),k=ks();if(u){et({...u,doneDest:k});return}if(k){Ss(k);return}ke()},nt=!!i&&i.actorId===s.assigned_to&&!i.subjectScoped,Se=(l,u)=>{if(tt&&!(nt&&l==="submit")){c(),Le({verb:l,run:u});return}if(!tt){u();return}Promise.resolve().then(u).catch(k=>{k instanceof Dt&&k.status===401&&Le({verb:l,run:u})})},_s=(l,u,k)=>{if(k!=null&&k.badge){c(),h&&$e({verb:l,run:u,message:k.badge});return}if(aa(y,h,i)){u();return}c(),$e({verb:l,run:u})},xe=async l=>{Se("submit",()=>Cs(l))},St=async l=>{try{await C.mutateAsync({id:t,durationMinutes:l})}catch{return}if(ue.blocked)return;const u=Xe(_,U(s,w,K));if(!u.parseError){if(u.errors.length>0){Pe(!0),oe(u.errors),H(!0),ge(!0),ce(D.ERRORS);return}await xe(u.payload)}};De.current=async()=>{var u;const l=(u=p.state)==null?void 0:u.durationMinutes;ft(!0),await St(typeof l=="number"&&l>0?l:30),ft(!1)},Oe.current=()=>{const l=Xe(_,U(s,w,K));l.parseError||l.errors.length>0||xe(l.payload)},gt.current=l=>{if(ue.blocked)return;const u=Xe(l,U(s,w,K));if(!u.parseError){if(u.errors.length>0){Pe(!0),oe(u.errors),H(!0),ge(!0),ce(D.ERRORS);return}xe(u.payload)}};const Ct=l=>{l&&Se("escalate",async()=>{await M.mutateAsync({id:t,targetRole:l}),ke()})},Es=async()=>{Q||await C.mutateAsync({id:t,durationMinutes:30});const l=(Y==null?void 0:Y.diagnosis)||s.description||"";await m.mutateAsync({id:t,resolverPayload:{_lt:{needsTriage:!0},notes:l}}),ke()},_t=()=>{Se("release",async()=>{await C.mutateAsync({id:t,durationMinutes:0}),ke()})},As=()=>{q(!1),Se("cancel",async()=>{await S.mutateAsync(t),ct(t),ke()})},Rs=e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(va,{onRefresh:()=>v(),isFetching:N,apiPath:`/escalations/${s.id}`,standalone:!0}),e.jsx("button",{onClick:()=>H(l=>(ge(!l),!l)),className:"ml-2 text-accent/60 hover:text-accent transition-colors",title:G?"Hide side panel":"Show side panel",children:G?e.jsx(Lt,{className:"w-5 h-5",strokeWidth:1.5}):e.jsx($t,{className:"w-5 h-5",strokeWidth:1.5})})]});return e.jsxs("div",{className:"flex-1 min-h-0 min-w-0 flex items-stretch -mt-8 -mr-page-x -mb-16",children:[e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col min-h-0",children:[st?e.jsxs("div",{className:"relative flex-1 min-h-0 -ml-page-x",children:[e.jsx("div",{className:"absolute top-3 right-3 z-50 flex items-center gap-0.5 bg-surface/90 backdrop-blur-sm rounded-lg px-1.5 py-1 shadow-sm border border-surface-border/40",children:[{onClick:_t,disabled:C.isPending,label:X.release??"Release",hoverClass:"hover:text-accent",icon:e.jsx(Ua,{className:"w-4 h-4",strokeWidth:1.5})},...X.cancel===!1?[]:[{onClick:()=>q(!0),disabled:!1,label:X.cancel??"Cancel",hoverClass:"hover:text-status-error",icon:e.jsx(ts,{className:"w-4 h-4",strokeWidth:1.5})}],{onClick:()=>H(l=>(ge(!l),!l)),disabled:!1,label:G?"Hide panel":"Show panel",hoverClass:"hover:text-accent",icon:G?e.jsx(Lt,{className:"w-4 h-4",strokeWidth:1.5}):e.jsx($t,{className:"w-4 h-4",strokeWidth:1.5})}].map(({onClick:l,disabled:u,label:k,hoverClass:F,icon:fe})=>e.jsxs("div",{className:"relative group/tip",children:[e.jsx("button",{onClick:l,disabled:u,className:`text-text-tertiary ${F} transition-colors disabled:opacity-40 disabled:cursor-default p-1.5 rounded-md`,children:fe}),e.jsx("span",{className:"pointer-events-none absolute top-full left-1/2 -translate-x-1/2 mt-1.5 px-2 py-0.5 rounded text-2xs bg-surface-sunken text-text-primary whitespace-nowrap opacity-0 group-hover/tip:opacity-100 transition-opacity",children:k})]},k))}),e.jsx(Ye,{src:Qe(Nt.src,s),escalation:s,schema:I,stage:te.CLAIMED,onResolve:xe,onEscalate:Ct,submitAttempted:Me,fill:!0})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"shrink-0 pt-8 pr-page-x",children:e.jsx(ja,{title:s.description||"Escalation",actions:Rs})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto pr-page-x",children:[e.jsx(cn,{isRoundsExhausted:fs,payloadObj:Y,isTerminal:re,resolverPayload:me,onRetryTriage:Es,isRetrying:C.isPending||m.isPending}),W&&Je&&!gs&&e.jsx("p",{role:"status",className:`text-sm mb-3 ${W.error?"text-status-error":"text-status-success"}`,children:W.error??`Scanned into ${Kt(I,W.field)}`},W.at),e.jsx(xa,{value:Je&&vt?vt:null,children:e.jsx(Ha.Provider,{value:_s,children:e.jsx(dn,{esc:s,resolverPayload:me,isTerminal:re,editable:Je,activeView:ve,lookup:w,roster:K,metadataFormSchema:We,effectiveSchema:I,json:_,onJsonChange:ae,requestTriage:Te,onRequestTriageChange:Ne,triageNotes:A,onTriageNotesChange:Ie,onResolve:xe,onEscalate:Ct,onClaim:()=>at(30),submitAttempted:Me,isCertified:js,hasAI:kt,onOpenHelp:()=>{H(!0),ge(!0),ce(D.HELP)},onDisabledClick:()=>os(l=>l+1),disabledHint:ws})})}),e.jsx("div",{className:"h-10"})]})]}),!st&&e.jsx(rn,{escalationContext:U(s,w,K),mode:Ge,activeView:ve,onActiveViewChange:Re,onClaim:bt?St:at,claimPending:C.isPending||bt&&m.isPending,claimNudge:ls,workflowType:s.workflow_type,json:_,onResolve:xe,resolvePending:m.isPending||m.isSuccess,resolveError:m.error,requestTriage:Te,triageNotes:A,onRelease:_t,releasePending:C.isPending,onCancel:()=>q(!0),assignedTo:s.assigned_to,assignedUntil:s.assigned_until,actingName:i&&(Q||nt)?i.displayName:null,submitNeedsBadge:tt&&!nt,onSubmitAttempt:()=>Pe(!0),onValidationErrors:l=>{oe(l),H(!0),ge(!0),ce(D.ERRORS)},labels:X,submitBlocked:ue.blocked,submitBlockedMessage:ue.message,canManage:r,onReassign:()=>O(!0),onUnassign:()=>L.mutate({ids:[t]}),unassignPending:L.isPending})]}),e.jsx(nn,{esc:s,schema:I,envelope:Ke,payload:Y,resolver:Ns,triage:vs??null,hasAI:kt,claimed:Be,claimedByMe:Q,isTerminal:re,isBuilder:se,traceUrl:Ae,open:G,noGutter:st,formErrors:is,activePanel:cs,onPanelChange:ce,canWriteItems:Ge==="available"||Q||r||qe,guardItemWrite:Se}),e.jsx(ha,{open:T,onClose:()=>O(!1),selectedCount:1,selectedRoles:s?[s.role]:[],onSubmit:(l,u)=>V.mutate({ids:[t],targetUserId:l,durationMinutes:u,reassign:!0},{onSuccess:()=>O(!1)}),isPending:V.isPending}),e.jsx(ga,{open:B,onClose:()=>q(!1),onConfirm:As,isPending:S.isPending,error:S.error,actionLabel:typeof X.cancel=="string"?X.cancel:void 0}),e.jsx(za,{escalationId:t}),e.jsx(Ut,{open:!!J,verb:(J==null?void 0:J.verb)??"continue",message:J==null?void 0:J.message,anyBadge:!0,onCancel:()=>$e(null)}),e.jsx(Ut,{open:!!ne,verb:(ne==null?void 0:ne.verb)??"submit",claimantId:s.assigned_to,wrongBadgeName:i&&i.actorId!==s.assigned_to?i.displayName:null,onCancel:()=>Le(null)}),e.jsx(Dn,{open:!!z||ds,message:(z==null?void 0:z.message)??((It=Jt(I))==null?void 0:It.message)??"Starting…"}),Q&&!re&&s.assigned_until&&e.jsx(un,{open:us.expiringSoon&&s.assigned_until!==ms,assignedUntil:s.assigned_until,onClose:()=>xs(s.assigned_until??null),onExtend:at,isPending:C.isPending})]})}function Kt(t,a){var r;const n=t==null?void 0:t.properties,o=(r=n==null?void 0:n[a])==null?void 0:r.title;return typeof o=="string"&&o?o:a}export{lr as EscalationDetailPage};
3
- //# sourceMappingURL=index-P-DlgAWj.js.map