@hotmeshio/long-tail 0.11.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/build/routes/mcp-endpoint.js +4 -1
  2. package/build/services/escalation/aggregate-validate.js +6 -0
  3. package/build/services/escalation/facet-sql.js +10 -0
  4. package/build/services/mcp/external-server.js +34 -26
  5. package/build/system/index.js +17 -0
  6. package/build/system/mcp-servers/admin/index.js +2 -4
  7. package/build/system/seed/tool-manifests-admin.d.ts +0 -1137
  8. package/build/system/seed/tool-manifests-admin.js +0 -5
  9. package/build/tsconfig.tsbuildinfo +1 -1
  10. package/build/types/facets.d.ts +8 -0
  11. package/dashboard/dist/assets/{AdminDashboard-DJ3LJQ09.js → AdminDashboard-D4ebrcNR.js} +2 -2
  12. package/dashboard/dist/assets/{AdminDashboard-DJ3LJQ09.js.map → AdminDashboard-D4ebrcNR.js.map} +1 -1
  13. package/dashboard/dist/assets/{AgentConfigPage-BMMvaD0z.js → AgentConfigPage-DP4KUuCX.js} +2 -2
  14. package/dashboard/dist/assets/{AgentConfigPage-BMMvaD0z.js.map → AgentConfigPage-DP4KUuCX.js.map} +1 -1
  15. package/dashboard/dist/assets/{AgentDetailPage-C6wfsnRe.js → AgentDetailPage-ktYiR1kq.js} +2 -2
  16. package/dashboard/dist/assets/{AgentDetailPage-C6wfsnRe.js.map → AgentDetailPage-ktYiR1kq.js.map} +1 -1
  17. package/dashboard/dist/assets/{AgentsPage-Cwqka7nE.js → AgentsPage-B4iqm4-h.js} +2 -2
  18. package/dashboard/dist/assets/{AgentsPage-Cwqka7nE.js.map → AgentsPage-B4iqm4-h.js.map} +1 -1
  19. package/dashboard/dist/assets/AvailableEscalationsPage-tL3mM1RG.js +2 -0
  20. package/dashboard/dist/assets/AvailableEscalationsPage-tL3mM1RG.js.map +1 -0
  21. package/dashboard/dist/assets/{BotPicker-BBkJBXZB.js → BotPicker-CLrJuHnW.js} +2 -2
  22. package/dashboard/dist/assets/{BotPicker-BBkJBXZB.js.map → BotPicker-CLrJuHnW.js.map} +1 -1
  23. package/dashboard/dist/assets/CapabilitiesPage-DG5V0tMT.js +2 -0
  24. package/dashboard/dist/assets/CapabilitiesPage-DG5V0tMT.js.map +1 -0
  25. package/dashboard/dist/assets/{CollapsibleSection-B3FsrHwH.js → CollapsibleSection-CvLHvVfU.js} +2 -2
  26. package/dashboard/dist/assets/{CollapsibleSection-B3FsrHwH.js.map → CollapsibleSection-CvLHvVfU.js.map} +1 -1
  27. package/dashboard/dist/assets/{CountdownTimer-B3nCqJdC.js → CountdownTimer-Co57-iLY.js} +2 -2
  28. package/dashboard/dist/assets/{CountdownTimer-B3nCqJdC.js.map → CountdownTimer-Co57-iLY.js.map} +1 -1
  29. package/dashboard/dist/assets/{CredentialsPage-Bv875IHe.js → CredentialsPage-qCJZ3rdi.js} +2 -2
  30. package/dashboard/dist/assets/{CredentialsPage-Bv875IHe.js.map → CredentialsPage-qCJZ3rdi.js.map} +1 -1
  31. package/dashboard/dist/assets/{CronLabel-CSzjWuwj.js → CronLabel-C3iKifDN.js} +2 -2
  32. package/dashboard/dist/assets/{CronLabel-CSzjWuwj.js.map → CronLabel-C3iKifDN.js.map} +1 -1
  33. package/dashboard/dist/assets/{CustomDurationPicker-CCpqf3e4.js → CustomDurationPicker-C-Szl4rU.js} +2 -2
  34. package/dashboard/dist/assets/{CustomDurationPicker-CCpqf3e4.js.map → CustomDurationPicker-C-Szl4rU.js.map} +1 -1
  35. package/dashboard/dist/assets/{DropZone-CJkk-U3o.js → DropZone-BWD9aGOz.js} +2 -2
  36. package/dashboard/dist/assets/{DropZone-CJkk-U3o.js.map → DropZone-BWD9aGOz.js.map} +1 -1
  37. package/dashboard/dist/assets/{ElapsedCell-WV6pUaKo.js → ElapsedCell-CamZk5o1.js} +2 -2
  38. package/dashboard/dist/assets/{ElapsedCell-WV6pUaKo.js.map → ElapsedCell-CamZk5o1.js.map} +1 -1
  39. package/dashboard/dist/assets/EntityTimelinePanel-CABCW2dS.js +2 -0
  40. package/dashboard/dist/assets/EntityTimelinePanel-CABCW2dS.js.map +1 -0
  41. package/dashboard/dist/assets/{EscalationListSchemaPage-CTQCALw4.js → EscalationListSchemaPage-BddDSfjl.js} +2 -2
  42. package/dashboard/dist/assets/{EscalationListSchemaPage-CTQCALw4.js.map → EscalationListSchemaPage-BddDSfjl.js.map} +1 -1
  43. package/dashboard/dist/assets/{EscalationSchemaPage-D_UgP0pv.js → EscalationSchemaPage-BRyCtw9R.js} +2 -2
  44. package/dashboard/dist/assets/{EscalationSchemaPage-D_UgP0pv.js.map → EscalationSchemaPage-BRyCtw9R.js.map} +1 -1
  45. package/dashboard/dist/assets/{EscalationsOverview-DuIUyxr0.js → EscalationsOverview-DUWYxJyD.js} +2 -2
  46. package/dashboard/dist/assets/{EscalationsOverview-DuIUyxr0.js.map → EscalationsOverview-DUWYxJyD.js.map} +1 -1
  47. package/dashboard/dist/assets/{EventTable-BV6unphX.js → EventTable-CtVuCgq6.js} +2 -2
  48. package/dashboard/dist/assets/{EventTable-BV6unphX.js.map → EventTable-CtVuCgq6.js.map} +1 -1
  49. package/dashboard/dist/assets/{FilterBar-DYFgzXNB.js → FilterBar-BYsBgOiE.js} +2 -2
  50. package/dashboard/dist/assets/{FilterBar-DYFgzXNB.js.map → FilterBar-BYsBgOiE.js.map} +1 -1
  51. package/dashboard/dist/assets/{GraphInvokePage-BGHVUipJ.js → GraphInvokePage-CA4skPN2.js} +2 -2
  52. package/dashboard/dist/assets/{GraphInvokePage-BGHVUipJ.js.map → GraphInvokePage-CA4skPN2.js.map} +1 -1
  53. package/dashboard/dist/assets/{HomePage-B-S2cK3E.js → HomePage-DwG-AnjQ.js} +2 -2
  54. package/dashboard/dist/assets/{HomePage-B-S2cK3E.js.map → HomePage-DwG-AnjQ.js.map} +1 -1
  55. package/dashboard/dist/assets/{ListToolbar-Bl7F3A28.js → ListToolbar-D86IN_hQ.js} +2 -2
  56. package/dashboard/dist/assets/{ListToolbar-Bl7F3A28.js.map → ListToolbar-D86IN_hQ.js.map} +1 -1
  57. package/dashboard/dist/assets/{McpOverview-_T9IsCD_.js → McpOverview-CoEHGseD.js} +2 -2
  58. package/dashboard/dist/assets/{McpOverview-_T9IsCD_.js.map → McpOverview-CoEHGseD.js.map} +1 -1
  59. package/dashboard/dist/assets/{McpQueryDetailPage-DtsVqKPw.js → McpQueryDetailPage-C9hMgJe1.js} +2 -2
  60. package/dashboard/dist/assets/{McpQueryDetailPage-DtsVqKPw.js.map → McpQueryDetailPage-C9hMgJe1.js.map} +1 -1
  61. package/dashboard/dist/assets/{McpQueryPage-DX5u-1bx.js → McpQueryPage-B20Zn4QX.js} +2 -2
  62. package/dashboard/dist/assets/{McpQueryPage-DX5u-1bx.js.map → McpQueryPage-B20Zn4QX.js.map} +1 -1
  63. package/dashboard/dist/assets/{McpRunDetailPage-BhcqqtYS.js → McpRunDetailPage-DDKHf-3R.js} +2 -2
  64. package/dashboard/dist/assets/{McpRunDetailPage-BhcqqtYS.js.map → McpRunDetailPage-DDKHf-3R.js.map} +1 -1
  65. package/dashboard/dist/assets/{McpRunsPage-L-1y8wnX.js → McpRunsPage-Puyn3iJr.js} +2 -2
  66. package/dashboard/dist/assets/{McpRunsPage-L-1y8wnX.js.map → McpRunsPage-Puyn3iJr.js.map} +1 -1
  67. package/dashboard/dist/assets/{NamespacePill-in1SLd0W.js → NamespacePill-C09QuOEz.js} +2 -2
  68. package/dashboard/dist/assets/{NamespacePill-in1SLd0W.js.map → NamespacePill-C09QuOEz.js.map} +1 -1
  69. package/dashboard/dist/assets/OperationsPage-Bsrt4XTL.js +3 -0
  70. package/dashboard/dist/assets/OperationsPage-Bsrt4XTL.js.map +1 -0
  71. package/dashboard/dist/assets/{OperatorDashboard-CIbDzOlh.js → OperatorDashboard-CXBbFLAL.js} +2 -2
  72. package/dashboard/dist/assets/{OperatorDashboard-CIbDzOlh.js.map → OperatorDashboard-CXBbFLAL.js.map} +1 -1
  73. package/dashboard/dist/assets/{PageHeader-BJgWMZtw.js → PageHeader-B7YJxa4o.js} +2 -2
  74. package/dashboard/dist/assets/{PageHeader-BJgWMZtw.js.map → PageHeader-B7YJxa4o.js.map} +1 -1
  75. package/dashboard/dist/assets/{PageHeaderWithStats-Ccio4vyG.js → PageHeaderWithStats-gT-5ovJh.js} +2 -2
  76. package/dashboard/dist/assets/{PageHeaderWithStats-Ccio4vyG.js.map → PageHeaderWithStats-gT-5ovJh.js.map} +1 -1
  77. package/dashboard/dist/assets/{PersonaDetailPage-BOaf0TW1.js → PersonaDetailPage-BN5xNDDX.js} +2 -2
  78. package/dashboard/dist/assets/{PersonaDetailPage-BOaf0TW1.js.map → PersonaDetailPage-BN5xNDDX.js.map} +1 -1
  79. package/dashboard/dist/assets/PersonasPage-Bdtv6HPZ.js +2 -0
  80. package/dashboard/dist/assets/PersonasPage-Bdtv6HPZ.js.map +1 -0
  81. package/dashboard/dist/assets/{ProcessDetailPage-DN9NqfeP.js → ProcessDetailPage-BMg70ZAJ.js} +2 -2
  82. package/dashboard/dist/assets/{ProcessDetailPage-DN9NqfeP.js.map → ProcessDetailPage-BMg70ZAJ.js.map} +1 -1
  83. package/dashboard/dist/assets/{ProcessesListPage-CfQEWaD4.js → ProcessesListPage-_KvdxGhL.js} +2 -2
  84. package/dashboard/dist/assets/{ProcessesListPage-CfQEWaD4.js.map → ProcessesListPage-_KvdxGhL.js.map} +1 -1
  85. package/dashboard/dist/assets/{RoleDetailPage-BC5HL7ls.js → RoleDetailPage-BM5BXc7j.js} +2 -2
  86. package/dashboard/dist/assets/{RoleDetailPage-BC5HL7ls.js.map → RoleDetailPage-BM5BXc7j.js.map} +1 -1
  87. package/dashboard/dist/assets/{RolePill-BNAP-uK6.js → RolePill-CtYI1_k1.js} +2 -2
  88. package/dashboard/dist/assets/{RolePill-BNAP-uK6.js.map → RolePill-CtYI1_k1.js.map} +1 -1
  89. package/dashboard/dist/assets/RolesPage-Bv23VmUi.js +2 -0
  90. package/dashboard/dist/assets/RolesPage-Bv23VmUi.js.map +1 -0
  91. package/dashboard/dist/assets/{RunAsSelector-twbuX7fB.js → RunAsSelector-D-Sjr7uB.js} +2 -2
  92. package/dashboard/dist/assets/{RunAsSelector-twbuX7fB.js.map → RunAsSelector-D-Sjr7uB.js.map} +1 -1
  93. package/dashboard/dist/assets/{ScanCodesPage-CPNg6K--.js → ScanCodesPage-s3OEMJno.js} +2 -2
  94. package/dashboard/dist/assets/{ScanCodesPage-CPNg6K--.js.map → ScanCodesPage-s3OEMJno.js.map} +1 -1
  95. package/dashboard/dist/assets/ScanSchemeDetailPage-D8WQkZmw.js +2 -0
  96. package/dashboard/dist/assets/ScanSchemeDetailPage-D8WQkZmw.js.map +1 -0
  97. package/dashboard/dist/assets/ScanStationPage-CkRQaH5G.js +2 -0
  98. package/dashboard/dist/assets/ScanStationPage-CkRQaH5G.js.map +1 -0
  99. package/dashboard/dist/assets/{ScopeBadge-BG7KkZ8Q.js → ScopeBadge-B76rOtA0.js} +2 -2
  100. package/dashboard/dist/assets/{ScopeBadge-BG7KkZ8Q.js.map → ScopeBadge-B76rOtA0.js.map} +1 -1
  101. package/dashboard/dist/assets/{StickyPagination-DIeYMPPd.js → StickyPagination-BpTIMOL5.js} +2 -2
  102. package/dashboard/dist/assets/{StickyPagination-DIeYMPPd.js.map → StickyPagination-BpTIMOL5.js.map} +1 -1
  103. package/dashboard/dist/assets/{StreamMessageDetail-gU4CUeQI.js → StreamMessageDetail-ChoWrZzO.js} +2 -2
  104. package/dashboard/dist/assets/{StreamMessageDetail-gU4CUeQI.js.map → StreamMessageDetail-ChoWrZzO.js.map} +1 -1
  105. package/dashboard/dist/assets/{SwimlaneTimeline-Br-nBA4l.js → SwimlaneTimeline-nmIqEuEH.js} +2 -2
  106. package/dashboard/dist/assets/{SwimlaneTimeline-Br-nBA4l.js.map → SwimlaneTimeline-nmIqEuEH.js.map} +1 -1
  107. package/dashboard/dist/assets/{TagInput-CvM5n6ww.js → TagInput-BQAPOp17.js} +2 -2
  108. package/dashboard/dist/assets/{TagInput-CvM5n6ww.js.map → TagInput-BQAPOp17.js.map} +1 -1
  109. package/dashboard/dist/assets/{TaskDetailPage-_9cr_R0u.js → TaskDetailPage-KajZD2Cp.js} +2 -2
  110. package/dashboard/dist/assets/{TaskDetailPage-_9cr_R0u.js.map → TaskDetailPage-KajZD2Cp.js.map} +1 -1
  111. package/dashboard/dist/assets/{TaskQueuePill-D4JPHXOq.js → TaskQueuePill-C2NImrwl.js} +2 -2
  112. package/dashboard/dist/assets/{TaskQueuePill-D4JPHXOq.js.map → TaskQueuePill-C2NImrwl.js.map} +1 -1
  113. package/dashboard/dist/assets/{TasksListPage-DVENC9Jp.js → TasksListPage-CiqSfapP.js} +2 -2
  114. package/dashboard/dist/assets/{TasksListPage-DVENC9Jp.js.map → TasksListPage-CiqSfapP.js.map} +1 -1
  115. package/dashboard/dist/assets/{TimeAgo-C9yYnOui.js → TimeAgo-ClauexJj.js} +2 -2
  116. package/dashboard/dist/assets/{TimeAgo-C9yYnOui.js.map → TimeAgo-ClauexJj.js.map} +1 -1
  117. package/dashboard/dist/assets/{TimestampCell-DoB8cYgw.js → TimestampCell-CXmbCnAJ.js} +2 -2
  118. package/dashboard/dist/assets/{TimestampCell-DoB8cYgw.js.map → TimestampCell-CXmbCnAJ.js.map} +1 -1
  119. package/dashboard/dist/assets/{ToolPill-BUjbC-Tj.js → ToolPill-FOZm67TS.js} +2 -2
  120. package/dashboard/dist/assets/{ToolPill-BUjbC-Tj.js.map → ToolPill-FOZm67TS.js.map} +1 -1
  121. package/dashboard/dist/assets/{ToolTestPanel-CBtsIP8K.js → ToolTestPanel-DFUU0zGv.js} +2 -2
  122. package/dashboard/dist/assets/{ToolTestPanel-CBtsIP8K.js.map → ToolTestPanel-DFUU0zGv.js.map} +1 -1
  123. package/dashboard/dist/assets/{TopicDetailPage-mR4Jaz83.js → TopicDetailPage-DuN5BrsI.js} +2 -2
  124. package/dashboard/dist/assets/{TopicDetailPage-mR4Jaz83.js.map → TopicDetailPage-DuN5BrsI.js.map} +1 -1
  125. package/dashboard/dist/assets/{TopicsPage-CP7HFxIC.js → TopicsPage-DZ1NQdYG.js} +2 -2
  126. package/dashboard/dist/assets/{TopicsPage-CP7HFxIC.js.map → TopicsPage-DZ1NQdYG.js.map} +1 -1
  127. package/dashboard/dist/assets/{UserName-BnLF6yhz.js → UserName-BPHG_MQs.js} +2 -2
  128. package/dashboard/dist/assets/{UserName-BnLF6yhz.js.map → UserName-BPHG_MQs.js.map} +1 -1
  129. package/dashboard/dist/assets/{WorkflowExecutionPage-xL956RZi.js → WorkflowExecutionPage-D_Z-tIjR.js} +2 -2
  130. package/dashboard/dist/assets/{WorkflowExecutionPage-xL956RZi.js.map → WorkflowExecutionPage-D_Z-tIjR.js.map} +1 -1
  131. package/dashboard/dist/assets/{WorkflowPill-tXU0-eXu.js → WorkflowPill-C5TEWlfO.js} +2 -2
  132. package/dashboard/dist/assets/{WorkflowPill-tXU0-eXu.js.map → WorkflowPill-C5TEWlfO.js.map} +1 -1
  133. package/dashboard/dist/assets/{WorkflowsDashboard-B-u7zFKM.js → WorkflowsDashboard-VMBW1WuR.js} +2 -2
  134. package/dashboard/dist/assets/{WorkflowsDashboard-B-u7zFKM.js.map → WorkflowsDashboard-VMBW1WuR.js.map} +1 -1
  135. package/dashboard/dist/assets/{WorkflowsOverview-CqZVarK-.js → WorkflowsOverview-CUOXXcpg.js} +2 -2
  136. package/dashboard/dist/assets/{WorkflowsOverview-CqZVarK-.js.map → WorkflowsOverview-CUOXXcpg.js.map} +1 -1
  137. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DiFLavW0.js → YamlWorkflowDetailPage-CsfzbboC.js} +2 -2
  138. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DiFLavW0.js.map → YamlWorkflowDetailPage-CsfzbboC.js.map} +1 -1
  139. package/dashboard/dist/assets/{YamlWorkflowsPage-BuQM6uZA.js → YamlWorkflowsPage-BpgKLSGT.js} +2 -2
  140. package/dashboard/dist/assets/{YamlWorkflowsPage-BuQM6uZA.js.map → YamlWorkflowsPage-BpgKLSGT.js.map} +1 -1
  141. package/dashboard/dist/assets/{agents-DU9GPovp.js → agents-Cg2FVYQP.js} +2 -2
  142. package/dashboard/dist/assets/{agents-DU9GPovp.js.map → agents-Cg2FVYQP.js.map} +1 -1
  143. package/dashboard/dist/assets/{bots-Cy-Hmg7w.js → bots-vtVLRKGt.js} +2 -2
  144. package/dashboard/dist/assets/{bots-Cy-Hmg7w.js.map → bots-vtVLRKGt.js.map} +1 -1
  145. package/dashboard/dist/assets/{capabilities-sSJJqrp-.js → capabilities-DLsXhwlD.js} +2 -2
  146. package/dashboard/dist/assets/{capabilities-sSJJqrp-.js.map → capabilities-DLsXhwlD.js.map} +1 -1
  147. package/dashboard/dist/assets/{controlplane-TVCjDHQ-.js → controlplane-Js7dxpX4.js} +2 -2
  148. package/dashboard/dist/assets/{controlplane-TVCjDHQ-.js.map → controlplane-Js7dxpX4.js.map} +1 -1
  149. package/dashboard/dist/assets/{escalation-columns-BpkjKYGd.js → escalation-columns-h0NLAJss.js} +2 -2
  150. package/dashboard/dist/assets/{escalation-columns-BpkjKYGd.js.map → escalation-columns-h0NLAJss.js.map} +1 -1
  151. package/dashboard/dist/assets/{index-DOai950R.js → index-7c7FEe5S.js} +2 -2
  152. package/dashboard/dist/assets/{index-DOai950R.js.map → index-7c7FEe5S.js.map} +1 -1
  153. package/dashboard/dist/assets/{index-7BP6FaCZ.js → index-BTzhV9ST.js} +2 -2
  154. package/dashboard/dist/assets/{index-7BP6FaCZ.js.map → index-BTzhV9ST.js.map} +1 -1
  155. package/dashboard/dist/assets/{index-fgBDhnI6.js → index-Bcv5k8Dw.js} +2 -2
  156. package/dashboard/dist/assets/{index-fgBDhnI6.js.map → index-Bcv5k8Dw.js.map} +1 -1
  157. package/dashboard/dist/assets/{index-BE0phFw0.js → index-BjfoWzJL.js} +2 -2
  158. package/dashboard/dist/assets/{index-BE0phFw0.js.map → index-BjfoWzJL.js.map} +1 -1
  159. package/dashboard/dist/assets/{index-BYNN9N1T.js → index-BvVJ538E.js} +2 -2
  160. package/dashboard/dist/assets/{index-BYNN9N1T.js.map → index-BvVJ538E.js.map} +1 -1
  161. package/dashboard/dist/assets/{index-Cfv86_L9.js → index-CSpTj5DB.js} +2 -2
  162. package/dashboard/dist/assets/{index-Cfv86_L9.js.map → index-CSpTj5DB.js.map} +1 -1
  163. package/dashboard/dist/assets/{index-errgQT5x.js → index-CcjdA7jA.js} +23 -23
  164. package/dashboard/dist/assets/index-CcjdA7jA.js.map +1 -0
  165. package/dashboard/dist/assets/{index-CLPVqbVY.js → index-DQi6CjqF.js} +2 -2
  166. package/dashboard/dist/assets/{index-CLPVqbVY.js.map → index-DQi6CjqF.js.map} +1 -1
  167. package/dashboard/dist/assets/index-DglcqBHn.js +6 -0
  168. package/dashboard/dist/assets/index-DglcqBHn.js.map +1 -0
  169. package/dashboard/dist/assets/{index-Dy-MMYti.js → index-DlO3bCfu.js} +2 -2
  170. package/dashboard/dist/assets/{index-Dy-MMYti.js.map → index-DlO3bCfu.js.map} +1 -1
  171. package/dashboard/dist/assets/{index-CtwbQ_-m.js → index-FYQ9yPhO.js} +2 -2
  172. package/dashboard/dist/assets/{index-CtwbQ_-m.js.map → index-FYQ9yPhO.js.map} +1 -1
  173. package/dashboard/dist/assets/{index-DTtHNC-D.js → index-KcaVfpWn.js} +2 -2
  174. package/dashboard/dist/assets/{index-DTtHNC-D.js.map → index-KcaVfpWn.js.map} +1 -1
  175. package/dashboard/dist/assets/index-cFHoANSG.css +1 -0
  176. package/dashboard/dist/assets/{index-DsWnVyVN.js → index-vAkZ5dZe.js} +2 -2
  177. package/dashboard/dist/assets/{index-DsWnVyVN.js.map → index-vAkZ5dZe.js.map} +1 -1
  178. package/dashboard/dist/assets/{knowledge-arh4NfmL.js → knowledge-Bkvl3cIz.js} +2 -2
  179. package/dashboard/dist/assets/{knowledge-arh4NfmL.js.map → knowledge-Bkvl3cIz.js.map} +1 -1
  180. package/dashboard/dist/assets/{mcp-QGf5jHCo.js → mcp-DEtDLeIQ.js} +2 -2
  181. package/dashboard/dist/assets/{mcp-QGf5jHCo.js.map → mcp-DEtDLeIQ.js.map} +1 -1
  182. package/dashboard/dist/assets/{mcp-query-BEJN1nMZ.js → mcp-query-BCRgnt0K.js} +2 -2
  183. package/dashboard/dist/assets/{mcp-query-BEJN1nMZ.js.map → mcp-query-BCRgnt0K.js.map} +1 -1
  184. package/dashboard/dist/assets/{personas-DYtw1COf.js → personas-CABKq-0L.js} +2 -2
  185. package/dashboard/dist/assets/{personas-DYtw1COf.js.map → personas-CABKq-0L.js.map} +1 -1
  186. package/dashboard/dist/assets/{pipelines-Byi6PnbE.js → pipelines-fuN8dVNl.js} +2 -2
  187. package/dashboard/dist/assets/{pipelines-Byi6PnbE.js.map → pipelines-fuN8dVNl.js.map} +1 -1
  188. package/dashboard/dist/assets/{tasks-D0SQdENz.js → tasks-u3YPNJBo.js} +2 -2
  189. package/dashboard/dist/assets/{tasks-D0SQdENz.js.map → tasks-u3YPNJBo.js.map} +1 -1
  190. package/dashboard/dist/assets/{topics-DgDv5ZXP.js → topics-D37_RAIT.js} +2 -2
  191. package/dashboard/dist/assets/{topics-DgDv5ZXP.js.map → topics-D37_RAIT.js.map} +1 -1
  192. package/dashboard/dist/assets/{useEventHooks-DZaYzE7s.js → useEventHooks-BbXfrFbq.js} +2 -2
  193. package/dashboard/dist/assets/{useEventHooks-DZaYzE7s.js.map → useEventHooks-BbXfrFbq.js.map} +1 -1
  194. package/dashboard/dist/assets/{useNamespace-C1OqiNXN.js → useNamespace-DvuoFTda.js} +2 -2
  195. package/dashboard/dist/assets/{useNamespace-C1OqiNXN.js.map → useNamespace-DvuoFTda.js.map} +1 -1
  196. package/dashboard/dist/assets/{useYamlActivityEvents-CkmXDm-Z.js → useYamlActivityEvents-CL-Uf2cb.js} +2 -2
  197. package/dashboard/dist/assets/{useYamlActivityEvents-CkmXDm-Z.js.map → useYamlActivityEvents-CL-Uf2cb.js.map} +1 -1
  198. package/dashboard/dist/assets/{users-D4DCFPH1.js → users-CMxw_HzK.js} +2 -2
  199. package/dashboard/dist/assets/{users-D4DCFPH1.js.map → users-CMxw_HzK.js.map} +1 -1
  200. package/dashboard/dist/assets/{vendor-icons-BxuyFxH2.js → vendor-icons-Aw7bzBxa.js} +142 -137
  201. package/dashboard/dist/assets/vendor-icons-Aw7bzBxa.js.map +1 -0
  202. package/dashboard/dist/assets/{workflows-qyc0ku_5.js → workflows-Bez-o6fu.js} +2 -2
  203. package/dashboard/dist/assets/{workflows-qyc0ku_5.js.map → workflows-Bez-o6fu.js.map} +1 -1
  204. package/dashboard/dist/assets/{yaml-workflows-DWFww9Xn.js → yaml-workflows-NrXcLsNm.js} +2 -2
  205. package/dashboard/dist/assets/{yaml-workflows-DWFww9Xn.js.map → yaml-workflows-NrXcLsNm.js.map} +1 -1
  206. package/dashboard/dist/index.html +3 -3
  207. package/package.json +1 -1
  208. package/build/system/mcp-servers/admin/ortho.d.ts +0 -10
  209. package/build/system/mcp-servers/admin/ortho.js +0 -242
  210. package/dashboard/dist/assets/AvailableEscalationsPage-CVlG_AVC.js +0 -2
  211. package/dashboard/dist/assets/AvailableEscalationsPage-CVlG_AVC.js.map +0 -1
  212. package/dashboard/dist/assets/CapabilitiesPage-wxmE4917.js +0 -2
  213. package/dashboard/dist/assets/CapabilitiesPage-wxmE4917.js.map +0 -1
  214. package/dashboard/dist/assets/EntityTimelinePanel-DrL86Yrf.js +0 -2
  215. package/dashboard/dist/assets/EntityTimelinePanel-DrL86Yrf.js.map +0 -1
  216. package/dashboard/dist/assets/OperationsPage-i8KcDpKo.js +0 -3
  217. package/dashboard/dist/assets/OperationsPage-i8KcDpKo.js.map +0 -1
  218. package/dashboard/dist/assets/PersonasPage-DSdRb90f.js +0 -2
  219. package/dashboard/dist/assets/PersonasPage-DSdRb90f.js.map +0 -1
  220. package/dashboard/dist/assets/RolesPage-DCnW0VmD.js +0 -2
  221. package/dashboard/dist/assets/RolesPage-DCnW0VmD.js.map +0 -1
  222. package/dashboard/dist/assets/ScanSchemeDetailPage-DyLmCamO.js +0 -2
  223. package/dashboard/dist/assets/ScanSchemeDetailPage-DyLmCamO.js.map +0 -1
  224. package/dashboard/dist/assets/ScanStationPage-DoZccU5B.js +0 -2
  225. package/dashboard/dist/assets/ScanStationPage-DoZccU5B.js.map +0 -1
  226. package/dashboard/dist/assets/index-5TblaCXQ.css +0 -1
  227. package/dashboard/dist/assets/index-B7IaBPBg.js +0 -6
  228. package/dashboard/dist/assets/index-B7IaBPBg.js.map +0 -1
  229. package/dashboard/dist/assets/index-errgQT5x.js.map +0 -1
  230. package/dashboard/dist/assets/vendor-icons-BxuyFxH2.js.map +0 -1
@@ -39,7 +39,10 @@ router.post('/', auth_1.requireAuth, async (req, res) => {
39
39
  await transport.handleRequest(req, res, req.body);
40
40
  }
41
41
  catch (err) {
42
- logger_1.loggerRegistry.error(`[lt-mcp:endpoint] error: ${err.message}`);
42
+ // Log the full stack, not just the message — otherwise a 500 here is
43
+ // undiagnosable from the deployment logs (the caller only sees a generic
44
+ // "Internal server error").
45
+ logger_1.loggerRegistry.error(`[lt-mcp:endpoint] error: ${err?.stack || err?.message || err}`);
43
46
  if (!res.headersSent) {
44
47
  res.status(500).json({
45
48
  jsonrpc: '2.0',
@@ -102,6 +102,12 @@ function requireCleanFilter(query, label = 'query') {
102
102
  throw new AnalyticsInputError(`${label}.prefix["${key}"] must be a non-empty string`);
103
103
  }
104
104
  }
105
+ for (const [key, value] of Object.entries(q.equals ?? {})) {
106
+ requireFacetKey(key, `${label}.equals key`);
107
+ if (typeof value !== 'string' || value.length === 0) {
108
+ throw new AnalyticsInputError(`${label}.equals["${key}"] must be a non-empty string`);
109
+ }
110
+ }
105
111
  if (q.anyOf !== undefined) {
106
112
  if (!Array.isArray(q.anyOf) || q.anyOf.length === 0) {
107
113
  throw new AnalyticsInputError(`${label}.anyOf must be a non-empty array of facet sets`);
@@ -72,6 +72,16 @@ function buildFacetWhere(q, params, opts = {}) {
72
72
  params.push(`${escapeLikePrefix(value)}%`);
73
73
  clauses.push(`${metaExpr(key)} ILIKE $${params.length}`);
74
74
  }
75
+ // Exact match on facet VALUES via the text projection — the same projection
76
+ // groupBy uses, so a categorical value the aggregate returned (bool/enum/
77
+ // number, all surfaced as text) round-trips as a filter. Rides the same
78
+ // bounded scans as `prefix`.
79
+ for (const [key, value] of Object.entries(q.equals ?? {})) {
80
+ if (!exports.FACET_KEY.test(key) || typeof value !== 'string' || !value)
81
+ continue;
82
+ params.push(value);
83
+ clauses.push(`${metaExpr(key)} = $${params.length}`);
84
+ }
75
85
  for (const r of q.range ?? []) {
76
86
  if (!exports.FACET_KEY.test(r.facet) || !RANGE_OPS.has(r.op))
77
87
  continue;
@@ -91,37 +91,45 @@ function isToolAllowed(toolName, serverName, exposure, callerScopes) {
91
91
  async function createUnifiedMcpServer(exposure, callerScopes) {
92
92
  const unified = new mcp_js_1.McpServer({ name: 'long-tail', version: '1.0.0' });
93
93
  const registered = new Set();
94
- for (const [name, entry] of Object.entries(system_1.builtinMcpServerFactories)) {
94
+ for (const [name] of Object.entries(system_1.builtinMcpServerFactories)) {
95
95
  if (!isServerAllowed(name, exposure))
96
96
  continue;
97
- const server = await getOrCreateServer(name);
98
- if (!server)
99
- continue;
100
- const tools = server._registeredTools;
101
- if (!tools)
102
- continue;
103
- for (const [toolName, tool] of Object.entries(tools)) {
104
- if (!tool?.handler || !tool.enabled)
97
+ // Isolate each shipped server: a factory or registration that throws
98
+ // (e.g. a backend/credential missing in one environment) must not deny
99
+ // every other server's tools by taking down the whole /mcp endpoint.
100
+ try {
101
+ const server = await getOrCreateServer(name);
102
+ if (!server)
105
103
  continue;
106
- if (!isToolAllowed(toolName, name, exposure, callerScopes))
104
+ const tools = server._registeredTools;
105
+ if (!tools)
107
106
  continue;
108
- // Deduplicate: prefix with server short name on collision
109
- let finalName = toolName;
110
- if (registered.has(toolName)) {
111
- const prefix = name.replace('long-tail-', '').replace(/-/g, '_');
112
- finalName = `${prefix}_${toolName}`;
113
- if (registered.has(finalName))
114
- continue; // still a collision — skip
107
+ for (const [toolName, tool] of Object.entries(tools)) {
108
+ if (!tool?.handler || !tool.enabled)
109
+ continue;
110
+ if (!isToolAllowed(toolName, name, exposure, callerScopes))
111
+ continue;
112
+ // Deduplicate: prefix with server short name on collision
113
+ let finalName = toolName;
114
+ if (registered.has(toolName)) {
115
+ const prefix = name.replace('long-tail-', '').replace(/-/g, '_');
116
+ finalName = `${prefix}_${toolName}`;
117
+ if (registered.has(finalName))
118
+ continue; // still a collision — skip
119
+ }
120
+ registered.add(finalName);
121
+ // Re-register the tool handler on the unified server.
122
+ // Use the low-level `tool()` API since we already have the parsed handler.
123
+ unified.registerTool(finalName, {
124
+ title: tool.title,
125
+ description: tool.description,
126
+ inputSchema: tool.inputSchema,
127
+ annotations: tool.annotations,
128
+ }, tool.handler);
115
129
  }
116
- registered.add(finalName);
117
- // Re-register the tool handler on the unified server.
118
- // Use the low-level `tool()` API since we already have the parsed handler.
119
- unified.registerTool(finalName, {
120
- title: tool.title,
121
- description: tool.description,
122
- inputSchema: tool.inputSchema,
123
- annotations: tool.annotations,
124
- }, tool.handler);
130
+ }
131
+ catch (err) {
132
+ logger_1.loggerRegistry.error(`[lt-mcp:endpoint] server "${name}" failed to load, skipping its tools: ${err?.stack || err?.message || err}`);
125
133
  }
126
134
  }
127
135
  logger_1.loggerRegistry.info(`[lt-mcp:endpoint] unified server ready (${registered.size} tools)`);
@@ -71,6 +71,11 @@ try {
71
71
  IMAGE_TOOLS = require('../examples/mcp-servers/tool-manifests-image').IMAGE_TOOLS;
72
72
  }
73
73
  catch { /* not available */ }
74
+ let ORTHO_TOOLS = [];
75
+ try {
76
+ ORTHO_TOOLS = require('../examples/seed/tool-manifests-ortho').ORTHO_TOOLS;
77
+ }
78
+ catch { /* not available */ }
74
79
  // ── Role constants ──────────────────────────────────────────────────────────
75
80
  const SYSTEM_ROLES = ['reviewer', 'engineer', 'admin'];
76
81
  const ENGINEER = 'engineer';
@@ -364,6 +369,18 @@ if (IMAGE_TOOLS.length > 0) {
364
369
  },
365
370
  };
366
371
  }
372
+ // Ortho pipeline — example connector for the ortho-pipeline example workflow
373
+ if (ORTHO_TOOLS.length > 0) {
374
+ exports.builtinMcpServerFactories['long-tail-ortho'] = {
375
+ factory: () => Promise.resolve().then(() => __importStar(require('../examples/mcp-servers/ortho'))).then((m) => m.createOrthoServer()),
376
+ config: {
377
+ description: 'AI-operable interface for the 8-stage ortho manufacturing pipeline example — submit orders, list and complete pending stage escalations, and track workflow status.',
378
+ tags: ['ortho', 'pipeline', 'manufacturing', 'example'],
379
+ category: 'Automation',
380
+ toolManifest: ORTHO_TOOLS,
381
+ },
382
+ };
383
+ }
367
384
  // ── System agents ──────────────────────────────────────────────────────────
368
385
  function getSystemAgents() {
369
386
  return [
@@ -58,9 +58,8 @@ const settings_1 = require("./settings");
58
58
  const exports_1 = require("./exports");
59
59
  const overview_1 = require("./overview");
60
60
  const diagnostics_1 = require("./diagnostics");
61
- const ortho_1 = require("./ortho");
62
61
  const scan_codes_1 = require("./scan-codes");
63
- const TOOL_COUNT = 105;
62
+ const TOOL_COUNT = 101;
64
63
  let server = null;
65
64
  async function createAdminServer(options) {
66
65
  if (server && !options?.fresh)
@@ -89,9 +88,8 @@ async function createAdminServer(options) {
89
88
  (0, exports_1.registerExportTools)(instance); // 4 tools
90
89
  (0, overview_1.registerOverviewTools)(instance); // 1 tool
91
90
  (0, diagnostics_1.registerDiagnosticsTools)(instance); // 3 tools
92
- (0, ortho_1.registerOrthoTools)(instance); // 4 tools
93
91
  (0, scan_codes_1.registerScanCodeTools)(instance); // 5 tools (scan schemes + rules + execute)
94
- // Total: 105
92
+ // Total: 101
95
93
  logger_1.loggerRegistry.info(`[lt-mcp:admin] ${name} ready (${TOOL_COUNT} tools registered)`);
96
94
  return instance;
97
95
  }