@hotmeshio/long-tail 0.13.0 → 0.14.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 (250) hide show
  1. package/build/api/announcements.d.ts +22 -0
  2. package/build/api/announcements.js +96 -0
  3. package/build/api/auth-sso.d.ts +6 -3
  4. package/build/api/auth-sso.js +6 -3
  5. package/build/api/escalations/list.d.ts +8 -0
  6. package/build/api/escalations/list.js +14 -4
  7. package/build/api/index.d.ts +1 -0
  8. package/build/api/index.js +2 -1
  9. package/build/api/workflows/config.d.ts +1 -0
  10. package/build/api/workflows/config.js +1 -0
  11. package/build/api/workflows/discovery.js +1 -0
  12. package/build/lib/db/schemas/031_announcements.sql +30 -0
  13. package/build/lib/db/schemas/032_workflow_read_safe.sql +9 -0
  14. package/build/lib/events/publish.d.ts +15 -0
  15. package/build/lib/events/publish.js +22 -0
  16. package/build/modules/auth.js +9 -3
  17. package/build/routes/announcements.d.ts +2 -0
  18. package/build/routes/announcements.js +64 -0
  19. package/build/routes/auth-sso.js +6 -1
  20. package/build/routes/escalations/list.js +2 -0
  21. package/build/routes/index.js +2 -0
  22. package/build/services/announcement/index.d.ts +30 -0
  23. package/build/services/announcement/index.js +29 -0
  24. package/build/services/announcement/sql.d.ts +8 -0
  25. package/build/services/announcement/sql.js +24 -0
  26. package/build/services/config/cache.js +1 -0
  27. package/build/services/config/read.js +2 -0
  28. package/build/services/config/sql.d.ts +2 -2
  29. package/build/services/config/sql.js +6 -5
  30. package/build/services/config/write.js +5 -0
  31. package/build/services/scan-code/index.d.ts +1 -1
  32. package/build/services/scan-code/index.js +3 -1
  33. package/build/services/scan-code/sql.d.ts +7 -0
  34. package/build/services/scan-code/sql.js +55 -1
  35. package/build/services/scan-code/write.d.ts +8 -0
  36. package/build/services/scan-code/write.js +23 -1
  37. package/build/services/topics/system-topics.js +20 -0
  38. package/build/shared/form-validation/index.d.ts +1 -0
  39. package/build/shared/form-validation/index.js +1 -0
  40. package/build/shared/form-validation/validate-resolver-payload.d.ts +3 -0
  41. package/build/shared/form-validation/validate-resolver-payload.js +19 -0
  42. package/build/shared/form-validation/x-lt-labels.d.ts +17 -6
  43. package/build/shared/form-validation/x-lt-labels.js +12 -4
  44. package/build/shared/form-validation/x-lt-require-any.d.ts +22 -0
  45. package/build/shared/form-validation/x-lt-require-any.js +41 -0
  46. package/build/start/workers.js +50 -0
  47. package/build/system/mcp-servers/admin/announcements.d.ts +7 -0
  48. package/build/system/mcp-servers/admin/announcements.js +69 -0
  49. package/build/system/mcp-servers/admin/index.js +5 -3
  50. package/build/system/mcp-servers/admin/workflows.js +45 -0
  51. package/build/system/seed/tool-manifests-admin.d.ts +357 -0
  52. package/build/system/seed/tool-manifests-admin.js +3 -0
  53. package/build/tsconfig.tsbuildinfo +1 -1
  54. package/build/types/auth.d.ts +21 -7
  55. package/build/types/config.d.ts +8 -0
  56. package/build/types/index.d.ts +1 -1
  57. package/build/types/startup.d.ts +57 -0
  58. package/dashboard/dist/assets/{AdminDashboard-D2unnS2b.js → AdminDashboard-DeZsR4pA.js} +2 -2
  59. package/dashboard/dist/assets/{AdminDashboard-D2unnS2b.js.map → AdminDashboard-DeZsR4pA.js.map} +1 -1
  60. package/dashboard/dist/assets/{AgentConfigPage-CBkf403g.js → AgentConfigPage-Bi5ZAsjf.js} +2 -2
  61. package/dashboard/dist/assets/{AgentConfigPage-CBkf403g.js.map → AgentConfigPage-Bi5ZAsjf.js.map} +1 -1
  62. package/dashboard/dist/assets/{AgentDetailPage-CAIU3yzo.js → AgentDetailPage-CIbKor5E.js} +2 -2
  63. package/dashboard/dist/assets/{AgentDetailPage-CAIU3yzo.js.map → AgentDetailPage-CIbKor5E.js.map} +1 -1
  64. package/dashboard/dist/assets/{AgentsPage-qP9fWMyT.js → AgentsPage-CRFZ6KDu.js} +2 -2
  65. package/dashboard/dist/assets/{AgentsPage-qP9fWMyT.js.map → AgentsPage-CRFZ6KDu.js.map} +1 -1
  66. package/dashboard/dist/assets/AvailableEscalationsPage-DDsmXjpi.js +2 -0
  67. package/dashboard/dist/assets/AvailableEscalationsPage-DDsmXjpi.js.map +1 -0
  68. package/dashboard/dist/assets/{BotPicker-BN-MKITV.js → BotPicker-dUpw1wW6.js} +2 -2
  69. package/dashboard/dist/assets/{BotPicker-BN-MKITV.js.map → BotPicker-dUpw1wW6.js.map} +1 -1
  70. package/dashboard/dist/assets/{CapabilitiesPage-CJfmWokN.js → CapabilitiesPage-Ca2jEln-.js} +2 -2
  71. package/dashboard/dist/assets/{CapabilitiesPage-CJfmWokN.js.map → CapabilitiesPage-Ca2jEln-.js.map} +1 -1
  72. package/dashboard/dist/assets/{CollapsibleSection-BvMHlHyt.js → CollapsibleSection-BXlR5QmW.js} +2 -2
  73. package/dashboard/dist/assets/{CollapsibleSection-BvMHlHyt.js.map → CollapsibleSection-BXlR5QmW.js.map} +1 -1
  74. package/dashboard/dist/assets/CountdownTimer-rnoWmFqx.js +2 -0
  75. package/dashboard/dist/assets/CountdownTimer-rnoWmFqx.js.map +1 -0
  76. package/dashboard/dist/assets/{CredentialsPage-2TvvRwGJ.js → CredentialsPage-CGyCCzGh.js} +2 -2
  77. package/dashboard/dist/assets/{CredentialsPage-2TvvRwGJ.js.map → CredentialsPage-CGyCCzGh.js.map} +1 -1
  78. package/dashboard/dist/assets/{CronLabel-HxmsDSnV.js → CronLabel-CAu2hmQf.js} +2 -2
  79. package/dashboard/dist/assets/{CronLabel-HxmsDSnV.js.map → CronLabel-CAu2hmQf.js.map} +1 -1
  80. package/dashboard/dist/assets/CustomDurationPicker-hlnadaFt.js +2 -0
  81. package/dashboard/dist/assets/CustomDurationPicker-hlnadaFt.js.map +1 -0
  82. package/dashboard/dist/assets/{ElapsedCell-BkRu9Xpd.js → ElapsedCell-B1eoCzEw.js} +2 -2
  83. package/dashboard/dist/assets/{ElapsedCell-BkRu9Xpd.js.map → ElapsedCell-B1eoCzEw.js.map} +1 -1
  84. package/dashboard/dist/assets/{EntityTimelinePanel--E6hLMCM.js → EntityTimelinePanel-CIOyjwjM.js} +2 -2
  85. package/dashboard/dist/assets/{EntityTimelinePanel--E6hLMCM.js.map → EntityTimelinePanel-CIOyjwjM.js.map} +1 -1
  86. package/dashboard/dist/assets/{EscalationListSchemaPage-CdFtqEEX.js → EscalationListSchemaPage-DQNQ7o_4.js} +2 -2
  87. package/dashboard/dist/assets/{EscalationListSchemaPage-CdFtqEEX.js.map → EscalationListSchemaPage-DQNQ7o_4.js.map} +1 -1
  88. package/dashboard/dist/assets/{EscalationSchemaPage-BsjS2axz.js → EscalationSchemaPage-DFgDn4R3.js} +2 -2
  89. package/dashboard/dist/assets/{EscalationSchemaPage-BsjS2axz.js.map → EscalationSchemaPage-DFgDn4R3.js.map} +1 -1
  90. package/dashboard/dist/assets/{EscalationsOverview-FL-xteVc.js → EscalationsOverview-DfbKtXVZ.js} +2 -2
  91. package/dashboard/dist/assets/{EscalationsOverview-FL-xteVc.js.map → EscalationsOverview-DfbKtXVZ.js.map} +1 -1
  92. package/dashboard/dist/assets/{EventTable-BOcgZ78i.js → EventTable-CZPkvhao.js} +2 -2
  93. package/dashboard/dist/assets/{EventTable-BOcgZ78i.js.map → EventTable-CZPkvhao.js.map} +1 -1
  94. package/dashboard/dist/assets/{FilterBar-DfCiCmm-.js → FilterBar-CYjKK9Cp.js} +2 -2
  95. package/dashboard/dist/assets/{FilterBar-DfCiCmm-.js.map → FilterBar-CYjKK9Cp.js.map} +1 -1
  96. package/dashboard/dist/assets/{GraphInvokePage-DfVeiN-8.js → GraphInvokePage-DY9u42vt.js} +2 -2
  97. package/dashboard/dist/assets/{GraphInvokePage-DfVeiN-8.js.map → GraphInvokePage-DY9u42vt.js.map} +1 -1
  98. package/dashboard/dist/assets/{HomePage-C2IhF9WB.js → HomePage-p_CYlGnh.js} +2 -2
  99. package/dashboard/dist/assets/{HomePage-C2IhF9WB.js.map → HomePage-p_CYlGnh.js.map} +1 -1
  100. package/dashboard/dist/assets/{ListToolbar-DA0PTOl5.js → ListToolbar-Dz-1RXSH.js} +2 -2
  101. package/dashboard/dist/assets/{ListToolbar-DA0PTOl5.js.map → ListToolbar-Dz-1RXSH.js.map} +1 -1
  102. package/dashboard/dist/assets/{McpOverview-DstPch5M.js → McpOverview-BUI9sVTk.js} +2 -2
  103. package/dashboard/dist/assets/{McpOverview-DstPch5M.js.map → McpOverview-BUI9sVTk.js.map} +1 -1
  104. package/dashboard/dist/assets/{McpQueryDetailPage-Csv0PKE0.js → McpQueryDetailPage-CVN_UAB3.js} +2 -2
  105. package/dashboard/dist/assets/{McpQueryDetailPage-Csv0PKE0.js.map → McpQueryDetailPage-CVN_UAB3.js.map} +1 -1
  106. package/dashboard/dist/assets/{McpQueryPage-DxmqCkly.js → McpQueryPage-DRTKSPDR.js} +2 -2
  107. package/dashboard/dist/assets/{McpQueryPage-DxmqCkly.js.map → McpQueryPage-DRTKSPDR.js.map} +1 -1
  108. package/dashboard/dist/assets/{McpRunDetailPage-CcJOlp_B.js → McpRunDetailPage-CTb1AxR3.js} +2 -2
  109. package/dashboard/dist/assets/{McpRunDetailPage-CcJOlp_B.js.map → McpRunDetailPage-CTb1AxR3.js.map} +1 -1
  110. package/dashboard/dist/assets/{McpRunsPage-BZCR043j.js → McpRunsPage-BWLwjVd0.js} +2 -2
  111. package/dashboard/dist/assets/{McpRunsPage-BZCR043j.js.map → McpRunsPage-BWLwjVd0.js.map} +1 -1
  112. package/dashboard/dist/assets/{OperationsPage-DMsPXITh.js → OperationsPage-BSl_oUAJ.js} +2 -2
  113. package/dashboard/dist/assets/{OperationsPage-DMsPXITh.js.map → OperationsPage-BSl_oUAJ.js.map} +1 -1
  114. package/dashboard/dist/assets/{OperatorDashboard-DSloftQ5.js → OperatorDashboard-DGs9kPOZ.js} +2 -2
  115. package/dashboard/dist/assets/{OperatorDashboard-DSloftQ5.js.map → OperatorDashboard-DGs9kPOZ.js.map} +1 -1
  116. package/dashboard/dist/assets/{PersonaDetailPage-jDVRCLbU.js → PersonaDetailPage-C33MgXUY.js} +2 -2
  117. package/dashboard/dist/assets/{PersonaDetailPage-jDVRCLbU.js.map → PersonaDetailPage-C33MgXUY.js.map} +1 -1
  118. package/dashboard/dist/assets/{PersonasPage-DnDDwXoy.js → PersonasPage-BbLOHq5X.js} +2 -2
  119. package/dashboard/dist/assets/{PersonasPage-DnDDwXoy.js.map → PersonasPage-BbLOHq5X.js.map} +1 -1
  120. package/dashboard/dist/assets/{ProcessDetailPage-CfAUU6q2.js → ProcessDetailPage-zwd0HCJl.js} +2 -2
  121. package/dashboard/dist/assets/{ProcessDetailPage-CfAUU6q2.js.map → ProcessDetailPage-zwd0HCJl.js.map} +1 -1
  122. package/dashboard/dist/assets/{ProcessesListPage-CnAXzaVv.js → ProcessesListPage-DnfmK6jf.js} +2 -2
  123. package/dashboard/dist/assets/{ProcessesListPage-CnAXzaVv.js.map → ProcessesListPage-DnfmK6jf.js.map} +1 -1
  124. package/dashboard/dist/assets/{RoleDetailPage-Dg1p6Qz_.js → RoleDetailPage-axZtFPC_.js} +2 -2
  125. package/dashboard/dist/assets/{RoleDetailPage-Dg1p6Qz_.js.map → RoleDetailPage-axZtFPC_.js.map} +1 -1
  126. package/dashboard/dist/assets/{RolesPage-DeRVQux8.js → RolesPage-DN6yqH7-.js} +2 -2
  127. package/dashboard/dist/assets/{RolesPage-DeRVQux8.js.map → RolesPage-DN6yqH7-.js.map} +1 -1
  128. package/dashboard/dist/assets/{RunAsSelector-BFNqQGuG.js → RunAsSelector-DrGsUhL8.js} +2 -2
  129. package/dashboard/dist/assets/{RunAsSelector-BFNqQGuG.js.map → RunAsSelector-DrGsUhL8.js.map} +1 -1
  130. package/dashboard/dist/assets/{ScanCodesPage-D0GOdk5m.js → ScanCodesPage-BmQjEyWZ.js} +2 -2
  131. package/dashboard/dist/assets/{ScanCodesPage-D0GOdk5m.js.map → ScanCodesPage-BmQjEyWZ.js.map} +1 -1
  132. package/dashboard/dist/assets/ScanSchemeDetailPage-VODehqGs.js +2 -0
  133. package/dashboard/dist/assets/ScanSchemeDetailPage-VODehqGs.js.map +1 -0
  134. package/dashboard/dist/assets/{ScanStationPage-DH1ynTX9.js → ScanStationPage-Y-9Gs7t5.js} +2 -2
  135. package/dashboard/dist/assets/{ScanStationPage-DH1ynTX9.js.map → ScanStationPage-Y-9Gs7t5.js.map} +1 -1
  136. package/dashboard/dist/assets/{StickyPagination-B99hVu95.js → StickyPagination-9VkHiOsT.js} +2 -2
  137. package/dashboard/dist/assets/{StickyPagination-B99hVu95.js.map → StickyPagination-9VkHiOsT.js.map} +1 -1
  138. package/dashboard/dist/assets/{StreamMessageDetail-DcDGISrv.js → StreamMessageDetail-C37J6Qyz.js} +2 -2
  139. package/dashboard/dist/assets/{StreamMessageDetail-DcDGISrv.js.map → StreamMessageDetail-C37J6Qyz.js.map} +1 -1
  140. package/dashboard/dist/assets/{SwimlaneTimeline-BP3mSQAg.js → SwimlaneTimeline-NVGsBIX-.js} +2 -2
  141. package/dashboard/dist/assets/{SwimlaneTimeline-BP3mSQAg.js.map → SwimlaneTimeline-NVGsBIX-.js.map} +1 -1
  142. package/dashboard/dist/assets/{TaskDetailPage-_XWLJzt-.js → TaskDetailPage-5sbMHi5U.js} +2 -2
  143. package/dashboard/dist/assets/{TaskDetailPage-_XWLJzt-.js.map → TaskDetailPage-5sbMHi5U.js.map} +1 -1
  144. package/dashboard/dist/assets/{TasksListPage-iGriKiO2.js → TasksListPage-C9AN7IBb.js} +2 -2
  145. package/dashboard/dist/assets/{TasksListPage-iGriKiO2.js.map → TasksListPage-C9AN7IBb.js.map} +1 -1
  146. package/dashboard/dist/assets/{TimeAgo-BO33VeFl.js → TimeAgo-CsbQGlSd.js} +2 -2
  147. package/dashboard/dist/assets/{TimeAgo-BO33VeFl.js.map → TimeAgo-CsbQGlSd.js.map} +1 -1
  148. package/dashboard/dist/assets/{TimestampCell-KAjX7w35.js → TimestampCell-DlbIkV-G.js} +2 -2
  149. package/dashboard/dist/assets/{TimestampCell-KAjX7w35.js.map → TimestampCell-DlbIkV-G.js.map} +1 -1
  150. package/dashboard/dist/assets/{ToolTestPanel-BchG2yC6.js → ToolTestPanel-BKbLocvr.js} +2 -2
  151. package/dashboard/dist/assets/{ToolTestPanel-BchG2yC6.js.map → ToolTestPanel-BKbLocvr.js.map} +1 -1
  152. package/dashboard/dist/assets/{TopicDetailPage-BaK8H0o1.js → TopicDetailPage-fOnTfDso.js} +2 -2
  153. package/dashboard/dist/assets/{TopicDetailPage-BaK8H0o1.js.map → TopicDetailPage-fOnTfDso.js.map} +1 -1
  154. package/dashboard/dist/assets/{TopicsPage-DEyvm669.js → TopicsPage-BoVkp7DM.js} +2 -2
  155. package/dashboard/dist/assets/{TopicsPage-DEyvm669.js.map → TopicsPage-BoVkp7DM.js.map} +1 -1
  156. package/dashboard/dist/assets/{UserName-BV6SKI9P.js → UserName-0gjVPU_U.js} +2 -2
  157. package/dashboard/dist/assets/{UserName-BV6SKI9P.js.map → UserName-0gjVPU_U.js.map} +1 -1
  158. package/dashboard/dist/assets/{WorkflowExecutionPage-1sKoEFNC.js → WorkflowExecutionPage-B28OxTS_.js} +2 -2
  159. package/dashboard/dist/assets/{WorkflowExecutionPage-1sKoEFNC.js.map → WorkflowExecutionPage-B28OxTS_.js.map} +1 -1
  160. package/dashboard/dist/assets/{WorkflowsDashboard-YTHDZZOD.js → WorkflowsDashboard-Bzvz6tTY.js} +2 -2
  161. package/dashboard/dist/assets/{WorkflowsDashboard-YTHDZZOD.js.map → WorkflowsDashboard-Bzvz6tTY.js.map} +1 -1
  162. package/dashboard/dist/assets/{WorkflowsOverview-ucXPLTtm.js → WorkflowsOverview-BkcRU4Ej.js} +2 -2
  163. package/dashboard/dist/assets/{WorkflowsOverview-ucXPLTtm.js.map → WorkflowsOverview-BkcRU4Ej.js.map} +1 -1
  164. package/dashboard/dist/assets/{YamlWorkflowDetailPage-C_RTZKqZ.js → YamlWorkflowDetailPage-CmM78sYi.js} +2 -2
  165. package/dashboard/dist/assets/{YamlWorkflowDetailPage-C_RTZKqZ.js.map → YamlWorkflowDetailPage-CmM78sYi.js.map} +1 -1
  166. package/dashboard/dist/assets/{YamlWorkflowsPage-Usid3w2W.js → YamlWorkflowsPage-Dp6vG1au.js} +2 -2
  167. package/dashboard/dist/assets/{YamlWorkflowsPage-Usid3w2W.js.map → YamlWorkflowsPage-Dp6vG1au.js.map} +1 -1
  168. package/dashboard/dist/assets/{agents-BTDsRK8e.js → agents-MeqzOPD6.js} +2 -2
  169. package/dashboard/dist/assets/{agents-BTDsRK8e.js.map → agents-MeqzOPD6.js.map} +1 -1
  170. package/dashboard/dist/assets/{bots-DxLrfdfr.js → bots-DTGXnvX_.js} +2 -2
  171. package/dashboard/dist/assets/{bots-DxLrfdfr.js.map → bots-DTGXnvX_.js.map} +1 -1
  172. package/dashboard/dist/assets/{capabilities-DbTmeW-S.js → capabilities-BjlARR7F.js} +2 -2
  173. package/dashboard/dist/assets/{capabilities-DbTmeW-S.js.map → capabilities-BjlARR7F.js.map} +1 -1
  174. package/dashboard/dist/assets/{controlplane-CEBntAL4.js → controlplane-DMYI0OaL.js} +2 -2
  175. package/dashboard/dist/assets/{controlplane-CEBntAL4.js.map → controlplane-DMYI0OaL.js.map} +1 -1
  176. package/dashboard/dist/assets/{escalation-columns-Carqdwoh.js → escalation-columns-BMO_H3cb.js} +2 -2
  177. package/dashboard/dist/assets/{escalation-columns-Carqdwoh.js.map → escalation-columns-BMO_H3cb.js.map} +1 -1
  178. package/dashboard/dist/assets/{index-De8iV1y2.js → index-3QEnMBNG.js} +2 -2
  179. package/dashboard/dist/assets/{index-De8iV1y2.js.map → index-3QEnMBNG.js.map} +1 -1
  180. package/dashboard/dist/assets/{index-Bqm4zu46.js → index-B3FzpDEG.js} +2 -2
  181. package/dashboard/dist/assets/{index-Bqm4zu46.js.map → index-B3FzpDEG.js.map} +1 -1
  182. package/dashboard/dist/assets/{index-cFHoANSG.css → index-B5jxf81r.css} +1 -1
  183. package/dashboard/dist/assets/{index-DBXm49S6.js → index-BU4oujVO.js} +30 -29
  184. package/dashboard/dist/assets/index-BU4oujVO.js.map +1 -0
  185. package/dashboard/dist/assets/{index-kes8V4Xw.js → index-CGCD5hTX.js} +2 -2
  186. package/dashboard/dist/assets/{index-kes8V4Xw.js.map → index-CGCD5hTX.js.map} +1 -1
  187. package/dashboard/dist/assets/{index-BhapT-Vl.js → index-Ch-OS1pk.js} +2 -2
  188. package/dashboard/dist/assets/{index-BhapT-Vl.js.map → index-Ch-OS1pk.js.map} +1 -1
  189. package/dashboard/dist/assets/{index-B9m7fA3M.js → index-CkkOh8y9.js} +2 -2
  190. package/dashboard/dist/assets/{index-B9m7fA3M.js.map → index-CkkOh8y9.js.map} +1 -1
  191. package/dashboard/dist/assets/{index-B2hz0pUh.js → index-D3iDAWK2.js} +2 -2
  192. package/dashboard/dist/assets/{index-B2hz0pUh.js.map → index-D3iDAWK2.js.map} +1 -1
  193. package/dashboard/dist/assets/{index-C0hSttF5.js → index-D6kXz3H8.js} +2 -2
  194. package/dashboard/dist/assets/{index-C0hSttF5.js.map → index-D6kXz3H8.js.map} +1 -1
  195. package/dashboard/dist/assets/{index-CVBBkW8V.js → index-Dsgqxdyh.js} +2 -2
  196. package/dashboard/dist/assets/{index-CVBBkW8V.js.map → index-Dsgqxdyh.js.map} +1 -1
  197. package/dashboard/dist/assets/{index-nwLh3CK2.js → index-DuhqzYwC.js} +2 -2
  198. package/dashboard/dist/assets/{index-nwLh3CK2.js.map → index-DuhqzYwC.js.map} +1 -1
  199. package/dashboard/dist/assets/{index-CDkg6iOE.js → index-DuyzcDuV.js} +2 -2
  200. package/dashboard/dist/assets/{index-CDkg6iOE.js.map → index-DuyzcDuV.js.map} +1 -1
  201. package/dashboard/dist/assets/index-LF1gEc6w.js +3 -0
  202. package/dashboard/dist/assets/index-LF1gEc6w.js.map +1 -0
  203. package/dashboard/dist/assets/{index-CgIBjZta.js → index-k5vcLICm.js} +2 -2
  204. package/dashboard/dist/assets/{index-CgIBjZta.js.map → index-k5vcLICm.js.map} +1 -1
  205. package/dashboard/dist/assets/{knowledge-oFYAanUp.js → knowledge-DAV1Jy7b.js} +2 -2
  206. package/dashboard/dist/assets/{knowledge-oFYAanUp.js.map → knowledge-DAV1Jy7b.js.map} +1 -1
  207. package/dashboard/dist/assets/{mcp-C9Kw4Ow8.js → mcp-CivbxL1P.js} +2 -2
  208. package/dashboard/dist/assets/{mcp-C9Kw4Ow8.js.map → mcp-CivbxL1P.js.map} +1 -1
  209. package/dashboard/dist/assets/{mcp-query-BwzpZ91Z.js → mcp-query-CGvWNrgo.js} +2 -2
  210. package/dashboard/dist/assets/{mcp-query-BwzpZ91Z.js.map → mcp-query-CGvWNrgo.js.map} +1 -1
  211. package/dashboard/dist/assets/{personas-D5ehmtRb.js → personas-lI3aUr6t.js} +2 -2
  212. package/dashboard/dist/assets/{personas-D5ehmtRb.js.map → personas-lI3aUr6t.js.map} +1 -1
  213. package/dashboard/dist/assets/{pipelines-xgPKGEdD.js → pipelines-DjPfnTmx.js} +2 -2
  214. package/dashboard/dist/assets/{pipelines-xgPKGEdD.js.map → pipelines-DjPfnTmx.js.map} +1 -1
  215. package/dashboard/dist/assets/{tasks-CLyrl-MU.js → tasks-Co_S55BO.js} +2 -2
  216. package/dashboard/dist/assets/{tasks-CLyrl-MU.js.map → tasks-Co_S55BO.js.map} +1 -1
  217. package/dashboard/dist/assets/{topics-B_gO7CQ0.js → topics-2IGhZXBi.js} +2 -2
  218. package/dashboard/dist/assets/{topics-B_gO7CQ0.js.map → topics-2IGhZXBi.js.map} +1 -1
  219. package/dashboard/dist/assets/{useEventHooks-BdWYm63U.js → useEventHooks-D0C5yke4.js} +2 -2
  220. package/dashboard/dist/assets/{useEventHooks-BdWYm63U.js.map → useEventHooks-D0C5yke4.js.map} +1 -1
  221. package/dashboard/dist/assets/{useNamespace-C238M4Qn.js → useNamespace-LG52DTT-.js} +2 -2
  222. package/dashboard/dist/assets/{useNamespace-C238M4Qn.js.map → useNamespace-LG52DTT-.js.map} +1 -1
  223. package/dashboard/dist/assets/{useYamlActivityEvents-B2ryEK4S.js → useYamlActivityEvents-1IZGVpWC.js} +2 -2
  224. package/dashboard/dist/assets/{useYamlActivityEvents-B2ryEK4S.js.map → useYamlActivityEvents-1IZGVpWC.js.map} +1 -1
  225. package/dashboard/dist/assets/{users-BFaTe6Mt.js → users-C-eHT1i6.js} +2 -2
  226. package/dashboard/dist/assets/{users-BFaTe6Mt.js.map → users-C-eHT1i6.js.map} +1 -1
  227. package/dashboard/dist/assets/{workflows-DXz7tZxp.js → workflows-C16CeY4e.js} +2 -2
  228. package/dashboard/dist/assets/{workflows-DXz7tZxp.js.map → workflows-C16CeY4e.js.map} +1 -1
  229. package/dashboard/dist/assets/{yaml-workflows-u3xuRAnS.js → yaml-workflows-BBenayT9.js} +2 -2
  230. package/dashboard/dist/assets/{yaml-workflows-u3xuRAnS.js.map → yaml-workflows-BBenayT9.js.map} +1 -1
  231. package/dashboard/dist/index.html +2 -2
  232. package/docs/auth.md +26 -1
  233. package/docs/code-owned-configuration.md +27 -0
  234. package/docs/dashboard.md +15 -0
  235. package/docs/hitl/x-lt-footer.md +16 -4
  236. package/docs/hitl/x-lt-validation.md +23 -0
  237. package/docs/mcp.md +2 -0
  238. package/docs/scan-codes.md +24 -0
  239. package/package.json +1 -1
  240. package/dashboard/dist/assets/AvailableEscalationsPage-DvWaiafI.js +0 -2
  241. package/dashboard/dist/assets/AvailableEscalationsPage-DvWaiafI.js.map +0 -1
  242. package/dashboard/dist/assets/CountdownTimer-By4rbMDN.js +0 -2
  243. package/dashboard/dist/assets/CountdownTimer-By4rbMDN.js.map +0 -1
  244. package/dashboard/dist/assets/CustomDurationPicker-8Ao-1pKA.js +0 -2
  245. package/dashboard/dist/assets/CustomDurationPicker-8Ao-1pKA.js.map +0 -1
  246. package/dashboard/dist/assets/ScanSchemeDetailPage-vFqoe_P4.js +0 -2
  247. package/dashboard/dist/assets/ScanSchemeDetailPage-vFqoe_P4.js.map +0 -1
  248. package/dashboard/dist/assets/index-DBXm49S6.js.map +0 -1
  249. package/dashboard/dist/assets/index-DsgjFRvA.js +0 -3
  250. package/dashboard/dist/assets/index-DsgjFRvA.js.map +0 -1
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerAnnouncementTools = registerAnnouncementTools;
37
+ const zod_1 = require("zod");
38
+ const api = __importStar(require("../../../api/announcements"));
39
+ const publishAnnouncementSchema = zod_1.z.object({
40
+ body: zod_1.z.string().describe('Markdown body — the only required field.'),
41
+ title: zod_1.z.string().optional().describe('Headline shown on the collapsed banner.'),
42
+ layout: zod_1.z.string().optional().describe("Presentation form. Default: 'banner'."),
43
+ roles: zod_1.z.array(zod_1.z.string()).optional().describe('Target roles; omitted = everyone.'),
44
+ expires_at: zod_1.z.string().optional().describe('ISO timestamp; omitted = 24 hours from now.'),
45
+ });
46
+ function registerAnnouncementTools(server) {
47
+ // mirrors POST /api/announcements
48
+ server.registerTool('publish_announcement', {
49
+ title: 'Publish Announcement',
50
+ description: 'Publish a dashboard announcement — a banner every targeted user sees ' +
51
+ 'live and on their next load until it expires or is dismissed. Only ' +
52
+ 'the body is required; title, layout, role targeting, and expiry ' +
53
+ '(default 24h) are optional. Bodies broadcast to all authenticated ' +
54
+ 'subscribers — never include secrets.',
55
+ inputSchema: publishAnnouncementSchema,
56
+ }, async (args) => {
57
+ const result = await api.createAnnouncement({
58
+ body: args.body,
59
+ title: args.title,
60
+ layout: args.layout,
61
+ roles: args.roles,
62
+ expiresAt: args.expires_at,
63
+ }, { userId: 'lt-system', role: 'superadmin' });
64
+ if (result.error) {
65
+ return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
66
+ }
67
+ return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
68
+ });
69
+ }
@@ -60,7 +60,8 @@ const overview_1 = require("./overview");
60
60
  const diagnostics_1 = require("./diagnostics");
61
61
  const scan_codes_1 = require("./scan-codes");
62
62
  const domain_context_1 = require("./domain-context");
63
- const TOOL_COUNT = 103;
63
+ const announcements_1 = require("./announcements");
64
+ const TOOL_COUNT = 105;
64
65
  let server = null;
65
66
  async function createAdminServer(options) {
66
67
  if (server && !options?.fresh)
@@ -73,7 +74,7 @@ async function createAdminServer(options) {
73
74
  (0, tasks_1.registerTaskTools)(instance); // 2 tools
74
75
  (0, escalations_1.registerEscalationTools)(instance); // 20 tools (RO + RW single + metadata + bulk)
75
76
  (0, workflow_config_1.registerWorkflowConfigTools)(instance); // 3 tools
76
- (0, workflows_1.registerWorkflowTools)(instance); // 4 tools (+ terminate_workflow)
77
+ (0, workflows_1.registerWorkflowTools)(instance); // 5 tools (+ terminate_workflow, invoke_workflow_read_safe)
77
78
  (0, mcp_servers_1.registerMcpServerTools)(instance); // 4 tools
78
79
  (0, yaml_workflows_1.registerYamlWorkflowTools)(instance); // 5 tools
79
80
  (0, users_1.registerUserTools)(instance); // 10 tools (users + roles + role schemas)
@@ -91,7 +92,8 @@ async function createAdminServer(options) {
91
92
  (0, diagnostics_1.registerDiagnosticsTools)(instance); // 3 tools
92
93
  (0, scan_codes_1.registerScanCodeTools)(instance); // 5 tools (scan schemes + rules + execute)
93
94
  (0, domain_context_1.registerDomainContextTools)(instance); // 1 tool (get_domain_context)
94
- // Total: 103
95
+ (0, announcements_1.registerAnnouncementTools)(instance); // 1 tool (publish_announcement)
96
+ // Total: 105
95
97
  logger_1.loggerRegistry.info(`[lt-mcp:admin] ${name} ready (${TOOL_COUNT} tools registered)`);
96
98
  return instance;
97
99
  }
@@ -109,6 +109,51 @@ function registerWorkflowTools(server) {
109
109
  }],
110
110
  };
111
111
  });
112
+ // invoke_workflow gated to configs registered read-safe — the invocation
113
+ // surface exposed to read-scoped MCP callers. Any workflow may be attempted;
114
+ // one lacking the flag fails with a clear error.
115
+ server.registerTool('invoke_workflow_read_safe', {
116
+ title: 'Invoke Read-Safe Workflow',
117
+ description: 'Start a workflow registered read-safe (side-effect-free). Same contract ' +
118
+ 'as invoke_workflow, gated to configs carrying read_safe=true — the ' +
119
+ 'variant exposed to read-scoped MCP callers. A workflow without the ' +
120
+ 'flag fails with a clear error.',
121
+ inputSchema: schemas_1.invokeWorkflowSchema,
122
+ }, async (args) => {
123
+ const config = await configService.getWorkflowConfig(args.workflow_type);
124
+ if (!config?.invocable) {
125
+ return {
126
+ content: [{
127
+ type: 'text',
128
+ text: JSON.stringify({ error: `workflow ${args.workflow_type} is not invocable` }),
129
+ }],
130
+ isError: true,
131
+ };
132
+ }
133
+ if (!config.read_safe) {
134
+ return {
135
+ content: [{
136
+ type: 'text',
137
+ text: JSON.stringify({ error: `workflow ${args.workflow_type} is not registered read-safe` }),
138
+ }],
139
+ isError: true,
140
+ };
141
+ }
142
+ const result = await (0, workflow_invocation_1.invokeWorkflow)({
143
+ workflowType: args.workflow_type,
144
+ data: args.data,
145
+ metadata: args.metadata,
146
+ executeAs: args.execute_as,
147
+ options: args.options,
148
+ auth: { userId: 'lt-system', role: 'superadmin' },
149
+ });
150
+ return {
151
+ content: [{
152
+ type: 'text',
153
+ text: JSON.stringify({ workflow_id: result.workflowId, message: 'Workflow started' }),
154
+ }],
155
+ };
156
+ });
112
157
  // mirrors GET /api/workflows/:workflowId/status + /result
113
158
  server.registerTool('get_workflow_status', {
114
159
  title: 'Get Workflow Status',