@hotmeshio/long-tail 0.11.0 → 0.12.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.
- package/build/api/domain.d.ts +14 -0
- package/build/api/domain.js +76 -0
- package/build/api/escalations/cancel.js +16 -1
- package/build/api/escalations/helpers.js +5 -0
- package/build/lib/db/schemas/030_domain_dictionary.sql +18 -0
- package/build/lib/events/escalation-wire.d.ts +9 -0
- package/build/lib/events/escalation-wire.js +69 -0
- package/build/lib/events/system-events.js +13 -5
- package/build/lib/json-path/pick.d.ts +14 -0
- package/build/lib/json-path/pick.js +51 -0
- package/build/routes/domain.d.ts +2 -0
- package/build/routes/domain.js +62 -0
- package/build/routes/index.js +2 -0
- package/build/routes/mcp-endpoint.js +4 -1
- package/build/services/domain/index.d.ts +4 -0
- package/build/services/domain/index.js +14 -0
- package/build/services/domain/read.d.ts +21 -0
- package/build/services/domain/read.js +78 -0
- package/build/services/domain/seed.d.ts +11 -0
- package/build/services/domain/seed.js +65 -0
- package/build/services/domain/sql.d.ts +10 -0
- package/build/services/domain/sql.js +29 -0
- package/build/services/domain/validate.d.ts +29 -0
- package/build/services/domain/validate.js +50 -0
- package/build/services/domain/write.d.ts +23 -0
- package/build/services/domain/write.js +43 -0
- package/build/services/escalation/aggregate-validate.js +6 -0
- package/build/services/escalation/crud.js +16 -12
- package/build/services/escalation/facet-sql.js +10 -0
- package/build/services/mcp/db-server/schemas.d.ts +1 -1
- package/build/services/mcp/external-server.js +65 -27
- package/build/services/role/index.d.ts +2 -0
- package/build/services/role/index.js +7 -0
- package/build/services/role/sql.d.ts +1 -0
- package/build/services/role/sql.js +3 -1
- package/build/services/role/types.d.ts +17 -1
- package/build/services/role/types.js +16 -0
- package/build/start/workers.js +6 -0
- package/build/system/index.js +17 -0
- package/build/system/mcp-servers/admin/domain-context.d.ts +14 -0
- package/build/system/mcp-servers/admin/domain-context.js +220 -0
- package/build/system/mcp-servers/admin/exports.js +7 -4
- package/build/system/mcp-servers/admin/index.js +5 -5
- package/build/system/mcp-servers/admin/pipelines.js +9 -3
- package/build/system/mcp-servers/admin/schemas.d.ts +61 -32
- package/build/system/mcp-servers/admin/schemas.js +23 -5
- package/build/system/mcp-servers/admin/workflows.js +26 -0
- package/build/system/mcp-servers/db-query/schemas.d.ts +1 -1
- package/build/system/mcp-servers/human-queue-schemas.d.ts +1 -1
- package/build/system/seed/tool-manifests-admin.d.ts +115 -969
- package/build/system/seed/tool-manifests-admin.js +8 -10
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/domain-manifest.d.ts +77 -0
- package/build/types/domain-manifest.js +16 -0
- package/build/types/facets.d.ts +8 -0
- package/build/types/index.d.ts +2 -1
- package/build/types/index.js +2 -1
- package/build/types/startup.d.ts +10 -0
- package/dashboard/dist/assets/{AdminDashboard-DJ3LJQ09.js → AdminDashboard-CahUELrr.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DJ3LJQ09.js.map → AdminDashboard-CahUELrr.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-BMMvaD0z.js → AgentConfigPage-CkMv-cTV.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-BMMvaD0z.js.map → AgentConfigPage-CkMv-cTV.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-C6wfsnRe.js → AgentDetailPage-ZGea3Z4A.js} +2 -2
- package/dashboard/dist/assets/{AgentDetailPage-C6wfsnRe.js.map → AgentDetailPage-ZGea3Z4A.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-Cwqka7nE.js → AgentsPage-BMWSUJGi.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-Cwqka7nE.js.map → AgentsPage-BMWSUJGi.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-BjsbfsWW.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BjsbfsWW.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-BBkJBXZB.js → BotPicker-DN8tq7pz.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-BBkJBXZB.js.map → BotPicker-DN8tq7pz.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-EAO3Ae0S.js +2 -0
- package/dashboard/dist/assets/CapabilitiesPage-EAO3Ae0S.js.map +1 -0
- package/dashboard/dist/assets/{CollapsibleSection-B3FsrHwH.js → CollapsibleSection-J-RejbjG.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-B3FsrHwH.js.map → CollapsibleSection-J-RejbjG.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-B3nCqJdC.js → CountdownTimer-Dw8N9tmQ.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-B3nCqJdC.js.map → CountdownTimer-Dw8N9tmQ.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-Bv875IHe.js → CredentialsPage-CTurxwRn.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-Bv875IHe.js.map → CredentialsPage-CTurxwRn.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-CSzjWuwj.js → CronLabel-DZ5TmIQG.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-CSzjWuwj.js.map → CronLabel-DZ5TmIQG.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-CCpqf3e4.js → CustomDurationPicker-BES_FTrm.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-CCpqf3e4.js.map → CustomDurationPicker-BES_FTrm.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-CJkk-U3o.js → DropZone-BWD9aGOz.js} +2 -2
- package/dashboard/dist/assets/{DropZone-CJkk-U3o.js.map → DropZone-BWD9aGOz.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-WV6pUaKo.js → ElapsedCell-CIGRporU.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-WV6pUaKo.js.map → ElapsedCell-CIGRporU.js.map} +1 -1
- package/dashboard/dist/assets/EntityTimelinePanel-CKIFsDOB.js +2 -0
- package/dashboard/dist/assets/EntityTimelinePanel-CKIFsDOB.js.map +1 -0
- package/dashboard/dist/assets/{EscalationListSchemaPage-CTQCALw4.js → EscalationListSchemaPage-DOrv-quD.js} +2 -2
- package/dashboard/dist/assets/{EscalationListSchemaPage-CTQCALw4.js.map → EscalationListSchemaPage-DOrv-quD.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-D_UgP0pv.js → EscalationSchemaPage-DAOVAxAM.js} +2 -2
- package/dashboard/dist/assets/{EscalationSchemaPage-D_UgP0pv.js.map → EscalationSchemaPage-DAOVAxAM.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DuIUyxr0.js → EscalationsOverview-B27sDn5O.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DuIUyxr0.js.map → EscalationsOverview-B27sDn5O.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-BV6unphX.js → EventTable-Co1d40Qq.js} +2 -2
- package/dashboard/dist/assets/{EventTable-BV6unphX.js.map → EventTable-Co1d40Qq.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-DYFgzXNB.js → FilterBar-2ZfU21EA.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-DYFgzXNB.js.map → FilterBar-2ZfU21EA.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-BGHVUipJ.js → GraphInvokePage-pdvc9VSv.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-BGHVUipJ.js.map → GraphInvokePage-pdvc9VSv.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-B-S2cK3E.js → HomePage-CLlDsBnw.js} +2 -2
- package/dashboard/dist/assets/{HomePage-B-S2cK3E.js.map → HomePage-CLlDsBnw.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-Bl7F3A28.js → ListToolbar-DMremj2e.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-Bl7F3A28.js.map → ListToolbar-DMremj2e.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-_T9IsCD_.js → McpOverview-BhztmhoL.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-_T9IsCD_.js.map → McpOverview-BhztmhoL.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-DtsVqKPw.js → McpQueryDetailPage-BseZfrhc.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-DtsVqKPw.js.map → McpQueryDetailPage-BseZfrhc.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-DX5u-1bx.js → McpQueryPage-DMzkble7.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-DX5u-1bx.js.map → McpQueryPage-DMzkble7.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-BhcqqtYS.js → McpRunDetailPage-DqaBQAnn.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-BhcqqtYS.js.map → McpRunDetailPage-DqaBQAnn.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-L-1y8wnX.js → McpRunsPage-Du8GnHFv.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-L-1y8wnX.js.map → McpRunsPage-Du8GnHFv.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-in1SLd0W.js → NamespacePill-C09QuOEz.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-in1SLd0W.js.map → NamespacePill-C09QuOEz.js.map} +1 -1
- package/dashboard/dist/assets/OperationsPage-CL2feqwS.js +3 -0
- package/dashboard/dist/assets/OperationsPage-CL2feqwS.js.map +1 -0
- package/dashboard/dist/assets/{OperatorDashboard-CIbDzOlh.js → OperatorDashboard-BHiGQZN_.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-CIbDzOlh.js.map → OperatorDashboard-BHiGQZN_.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-BJgWMZtw.js → PageHeader-B7YJxa4o.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-BJgWMZtw.js.map → PageHeader-B7YJxa4o.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-Ccio4vyG.js → PageHeaderWithStats-gT-5ovJh.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-Ccio4vyG.js.map → PageHeaderWithStats-gT-5ovJh.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-BOaf0TW1.js → PersonaDetailPage-D6GGZgUS.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-BOaf0TW1.js.map → PersonaDetailPage-D6GGZgUS.js.map} +1 -1
- package/dashboard/dist/assets/PersonasPage-BQYCdmAs.js +2 -0
- package/dashboard/dist/assets/PersonasPage-BQYCdmAs.js.map +1 -0
- package/dashboard/dist/assets/{ProcessDetailPage-DN9NqfeP.js → ProcessDetailPage-P45jOLim.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-DN9NqfeP.js.map → ProcessDetailPage-P45jOLim.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-CfQEWaD4.js → ProcessesListPage-CgdzgCY6.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-CfQEWaD4.js.map → ProcessesListPage-CgdzgCY6.js.map} +1 -1
- package/dashboard/dist/assets/{RoleDetailPage-BC5HL7ls.js → RoleDetailPage-Dme2pa9z.js} +2 -2
- package/dashboard/dist/assets/{RoleDetailPage-BC5HL7ls.js.map → RoleDetailPage-Dme2pa9z.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-BNAP-uK6.js → RolePill-CtYI1_k1.js} +2 -2
- package/dashboard/dist/assets/{RolePill-BNAP-uK6.js.map → RolePill-CtYI1_k1.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-Ci7_PbPt.js +2 -0
- package/dashboard/dist/assets/RolesPage-Ci7_PbPt.js.map +1 -0
- package/dashboard/dist/assets/{RunAsSelector-twbuX7fB.js → RunAsSelector-CB0pV097.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-twbuX7fB.js.map → RunAsSelector-CB0pV097.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-CPNg6K--.js → ScanCodesPage-DpbPhAj1.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-CPNg6K--.js.map → ScanCodesPage-DpbPhAj1.js.map} +1 -1
- package/dashboard/dist/assets/ScanSchemeDetailPage-CGnMGlt0.js +2 -0
- package/dashboard/dist/assets/ScanSchemeDetailPage-CGnMGlt0.js.map +1 -0
- package/dashboard/dist/assets/ScanStationPage-BTeV7TGy.js +2 -0
- package/dashboard/dist/assets/ScanStationPage-BTeV7TGy.js.map +1 -0
- package/dashboard/dist/assets/{ScopeBadge-BG7KkZ8Q.js → ScopeBadge-B76rOtA0.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-BG7KkZ8Q.js.map → ScopeBadge-B76rOtA0.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-DIeYMPPd.js → StickyPagination-DH-0JEyx.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-DIeYMPPd.js.map → StickyPagination-DH-0JEyx.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-gU4CUeQI.js → StreamMessageDetail-u-pDrHfS.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-gU4CUeQI.js.map → StreamMessageDetail-u-pDrHfS.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-Br-nBA4l.js → SwimlaneTimeline-vN1N8BGy.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-Br-nBA4l.js.map → SwimlaneTimeline-vN1N8BGy.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-CvM5n6ww.js → TagInput-BQAPOp17.js} +2 -2
- package/dashboard/dist/assets/{TagInput-CvM5n6ww.js.map → TagInput-BQAPOp17.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-_9cr_R0u.js → TaskDetailPage-CAQm6avs.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-_9cr_R0u.js.map → TaskDetailPage-CAQm6avs.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-D4JPHXOq.js → TaskQueuePill-C2NImrwl.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-D4JPHXOq.js.map → TaskQueuePill-C2NImrwl.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DVENC9Jp.js → TasksListPage-C1bT3DT9.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DVENC9Jp.js.map → TasksListPage-C1bT3DT9.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-C9yYnOui.js → TimeAgo-qZxkJ8Am.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-C9yYnOui.js.map → TimeAgo-qZxkJ8Am.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DoB8cYgw.js → TimestampCell-CC3dz6FG.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DoB8cYgw.js.map → TimestampCell-CC3dz6FG.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-BUjbC-Tj.js → ToolPill-FOZm67TS.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-BUjbC-Tj.js.map → ToolPill-FOZm67TS.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-CBtsIP8K.js → ToolTestPanel-C3sSQUvw.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-CBtsIP8K.js.map → ToolTestPanel-C3sSQUvw.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-mR4Jaz83.js → TopicDetailPage-ClI0I8Mu.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-mR4Jaz83.js.map → TopicDetailPage-ClI0I8Mu.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-CP7HFxIC.js → TopicsPage-CNf2VZud.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-CP7HFxIC.js.map → TopicsPage-CNf2VZud.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-BnLF6yhz.js → UserName-BdMHmyL3.js} +2 -2
- package/dashboard/dist/assets/{UserName-BnLF6yhz.js.map → UserName-BdMHmyL3.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-xL956RZi.js → WorkflowExecutionPage-Ba4mYFoW.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-xL956RZi.js.map → WorkflowExecutionPage-Ba4mYFoW.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-tXU0-eXu.js → WorkflowPill-C5TEWlfO.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-tXU0-eXu.js.map → WorkflowPill-C5TEWlfO.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-B-u7zFKM.js → WorkflowsDashboard-ImEm16tX.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-B-u7zFKM.js.map → WorkflowsDashboard-ImEm16tX.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-CqZVarK-.js → WorkflowsOverview-BpWyV_tj.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-CqZVarK-.js.map → WorkflowsOverview-BpWyV_tj.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DiFLavW0.js → YamlWorkflowDetailPage-BFBlw1YY.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DiFLavW0.js.map → YamlWorkflowDetailPage-BFBlw1YY.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-BuQM6uZA.js → YamlWorkflowsPage-C9gxapRg.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-BuQM6uZA.js.map → YamlWorkflowsPage-C9gxapRg.js.map} +1 -1
- package/dashboard/dist/assets/{agents-DU9GPovp.js → agents-BJQtJTiz.js} +2 -2
- package/dashboard/dist/assets/{agents-DU9GPovp.js.map → agents-BJQtJTiz.js.map} +1 -1
- package/dashboard/dist/assets/{bots-Cy-Hmg7w.js → bots-DDlU1gMy.js} +2 -2
- package/dashboard/dist/assets/{bots-Cy-Hmg7w.js.map → bots-DDlU1gMy.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-sSJJqrp-.js → capabilities-qYrUpdid.js} +2 -2
- package/dashboard/dist/assets/{capabilities-sSJJqrp-.js.map → capabilities-qYrUpdid.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-TVCjDHQ-.js → controlplane-DnJ1VDTs.js} +2 -2
- package/dashboard/dist/assets/{controlplane-TVCjDHQ-.js.map → controlplane-DnJ1VDTs.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-BpkjKYGd.js → escalation-columns-BCnVWr_n.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-BpkjKYGd.js.map → escalation-columns-BCnVWr_n.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dy-MMYti.js → index-04QQsxMp.js} +2 -2
- package/dashboard/dist/assets/{index-Dy-MMYti.js.map → index-04QQsxMp.js.map} +1 -1
- package/dashboard/dist/assets/{index-fgBDhnI6.js → index-B5q8ksfv.js} +2 -2
- package/dashboard/dist/assets/{index-fgBDhnI6.js.map → index-B5q8ksfv.js.map} +1 -1
- package/dashboard/dist/assets/{index-CtwbQ_-m.js → index-BAqQSgxn.js} +2 -2
- package/dashboard/dist/assets/{index-CtwbQ_-m.js.map → index-BAqQSgxn.js.map} +1 -1
- package/dashboard/dist/assets/{index-DOai950R.js → index-BHbO4F8Z.js} +2 -2
- package/dashboard/dist/assets/{index-DOai950R.js.map → index-BHbO4F8Z.js.map} +1 -1
- package/dashboard/dist/assets/{index-DTtHNC-D.js → index-BUpB9ezn.js} +2 -2
- package/dashboard/dist/assets/{index-DTtHNC-D.js.map → index-BUpB9ezn.js.map} +1 -1
- package/dashboard/dist/assets/{index-errgQT5x.js → index-C991QfUN.js} +23 -23
- package/dashboard/dist/assets/index-C991QfUN.js.map +1 -0
- package/dashboard/dist/assets/{index-7BP6FaCZ.js → index-CFlmubaP.js} +2 -2
- package/dashboard/dist/assets/{index-7BP6FaCZ.js.map → index-CFlmubaP.js.map} +1 -1
- package/dashboard/dist/assets/{index-BYNN9N1T.js → index-CroJTX8g.js} +2 -2
- package/dashboard/dist/assets/{index-BYNN9N1T.js.map → index-CroJTX8g.js.map} +1 -1
- package/dashboard/dist/assets/{index-BE0phFw0.js → index-CtAPxA03.js} +2 -2
- package/dashboard/dist/assets/{index-BE0phFw0.js.map → index-CtAPxA03.js.map} +1 -1
- package/dashboard/dist/assets/{index-CLPVqbVY.js → index-D-5F3Bw-.js} +2 -2
- package/dashboard/dist/assets/{index-CLPVqbVY.js.map → index-D-5F3Bw-.js.map} +1 -1
- package/dashboard/dist/assets/index-DhRdWzz0.js +6 -0
- package/dashboard/dist/assets/index-DhRdWzz0.js.map +1 -0
- package/dashboard/dist/assets/{index-DsWnVyVN.js → index-KotwPxGB.js} +2 -2
- package/dashboard/dist/assets/{index-DsWnVyVN.js.map → index-KotwPxGB.js.map} +1 -1
- package/dashboard/dist/assets/{index-Cfv86_L9.js → index-LiLVAQzB.js} +2 -2
- package/dashboard/dist/assets/{index-Cfv86_L9.js.map → index-LiLVAQzB.js.map} +1 -1
- package/dashboard/dist/assets/index-cFHoANSG.css +1 -0
- package/dashboard/dist/assets/{knowledge-arh4NfmL.js → knowledge-CnMeg8Rw.js} +2 -2
- package/dashboard/dist/assets/{knowledge-arh4NfmL.js.map → knowledge-CnMeg8Rw.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-QGf5jHCo.js → mcp-CHPSFv7m.js} +2 -2
- package/dashboard/dist/assets/{mcp-QGf5jHCo.js.map → mcp-CHPSFv7m.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-BEJN1nMZ.js → mcp-query-C19EGwdN.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-BEJN1nMZ.js.map → mcp-query-C19EGwdN.js.map} +1 -1
- package/dashboard/dist/assets/{personas-DYtw1COf.js → personas-Br1Vo2S3.js} +2 -2
- package/dashboard/dist/assets/{personas-DYtw1COf.js.map → personas-Br1Vo2S3.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-Byi6PnbE.js → pipelines-QMrFoJZX.js} +2 -2
- package/dashboard/dist/assets/{pipelines-Byi6PnbE.js.map → pipelines-QMrFoJZX.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-D0SQdENz.js → tasks-Doy_7cGX.js} +2 -2
- package/dashboard/dist/assets/{tasks-D0SQdENz.js.map → tasks-Doy_7cGX.js.map} +1 -1
- package/dashboard/dist/assets/{topics-DgDv5ZXP.js → topics-BcJS4G09.js} +2 -2
- package/dashboard/dist/assets/{topics-DgDv5ZXP.js.map → topics-BcJS4G09.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-DZaYzE7s.js → useEventHooks-ldE5o0ok.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-DZaYzE7s.js.map → useEventHooks-ldE5o0ok.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-C1OqiNXN.js → useNamespace-CCu8fZc6.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-C1OqiNXN.js.map → useNamespace-CCu8fZc6.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CkmXDm-Z.js → useYamlActivityEvents-DDrXwFXX.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CkmXDm-Z.js.map → useYamlActivityEvents-DDrXwFXX.js.map} +1 -1
- package/dashboard/dist/assets/{users-D4DCFPH1.js → users-BvKhSq1i.js} +2 -2
- package/dashboard/dist/assets/{users-D4DCFPH1.js.map → users-BvKhSq1i.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-BxuyFxH2.js → vendor-icons-Aw7bzBxa.js} +142 -137
- package/dashboard/dist/assets/vendor-icons-Aw7bzBxa.js.map +1 -0
- package/dashboard/dist/assets/{workflows-qyc0ku_5.js → workflows-D09ysQF1.js} +2 -2
- package/dashboard/dist/assets/{workflows-qyc0ku_5.js.map → workflows-D09ysQF1.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DWFww9Xn.js → yaml-workflows-BFHrxEl4.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DWFww9Xn.js.map → yaml-workflows-BFHrxEl4.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/domain-dictionary.md +115 -0
- package/docs/events.md +8 -0
- package/package.json +1 -1
- package/build/system/mcp-servers/admin/ortho.d.ts +0 -10
- package/build/system/mcp-servers/admin/ortho.js +0 -242
- package/dashboard/dist/assets/AvailableEscalationsPage-CVlG_AVC.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-CVlG_AVC.js.map +0 -1
- package/dashboard/dist/assets/CapabilitiesPage-wxmE4917.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-wxmE4917.js.map +0 -1
- package/dashboard/dist/assets/EntityTimelinePanel-DrL86Yrf.js +0 -2
- package/dashboard/dist/assets/EntityTimelinePanel-DrL86Yrf.js.map +0 -1
- package/dashboard/dist/assets/OperationsPage-i8KcDpKo.js +0 -3
- package/dashboard/dist/assets/OperationsPage-i8KcDpKo.js.map +0 -1
- package/dashboard/dist/assets/PersonasPage-DSdRb90f.js +0 -2
- package/dashboard/dist/assets/PersonasPage-DSdRb90f.js.map +0 -1
- package/dashboard/dist/assets/RolesPage-DCnW0VmD.js +0 -2
- package/dashboard/dist/assets/RolesPage-DCnW0VmD.js.map +0 -1
- package/dashboard/dist/assets/ScanSchemeDetailPage-DyLmCamO.js +0 -2
- package/dashboard/dist/assets/ScanSchemeDetailPage-DyLmCamO.js.map +0 -1
- package/dashboard/dist/assets/ScanStationPage-DoZccU5B.js +0 -2
- package/dashboard/dist/assets/ScanStationPage-DoZccU5B.js.map +0 -1
- package/dashboard/dist/assets/index-5TblaCXQ.css +0 -1
- package/dashboard/dist/assets/index-B7IaBPBg.js +0 -6
- package/dashboard/dist/assets/index-B7IaBPBg.js.map +0 -1
- package/dashboard/dist/assets/index-errgQT5x.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-BxuyFxH2.js.map +0 -1
|
@@ -40,8 +40,9 @@ exports.ADMIN_TOOLS = [
|
|
|
40
40
|
{ name: 'delete_workflow_config', description: 'De-certify a workflow by removing its config entry.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' } }, required: ['workflow_type'] } },
|
|
41
41
|
// ── workflows.ts ────────────────────────────────────────────────────────
|
|
42
42
|
{ name: 'list_discovered_workflows', description: 'Unified list of all known workflows: active workers, historical entities, and registered configs.', read_safe: true, inputSchema: { type: 'object', properties: { include_system: { type: 'boolean' } } } },
|
|
43
|
-
{ name: 'invoke_workflow', description: 'Start a certified workflow by type. Returns workflow ID immediately.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' }, data: { type: 'object' }, metadata: { type: 'object' }, execute_as: { type: 'string' } }, required: ['workflow_type', 'data'] } },
|
|
43
|
+
{ name: 'invoke_workflow', description: 'Start a certified workflow by type. Returns workflow ID immediately. options passes HotMesh WorkflowOptions through (workflowId for deterministic ids per the deployment\'s id convention; entity/expire/search are safe; taskQueue/namespace reroute execution — set only deliberately).', read_safe: false, inputSchema: { type: 'object', properties: { workflow_type: { type: 'string' }, data: { type: 'object' }, metadata: { type: 'object' }, execute_as: { type: 'string' }, options: { type: 'object' } }, required: ['workflow_type', 'data'] } },
|
|
44
44
|
{ name: 'get_workflow_status', description: 'Check workflow status and result. Returns status (running | complete) and result if complete. Namespace-aware — pass app_id to read a workflow running in a non-default HotMesh namespace.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' }, app_id: { type: 'string' } }, required: ['workflow_id'] } },
|
|
45
|
+
{ name: 'terminate_workflow', description: 'Completely terminate a workflow: kills the durable handle AND cancels its pending escalations. The correct way to stop a workflow — prefer over interrupt_pipeline_job, which strands escalations as orphans.', read_safe: false, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' } }, required: ['workflow_id'] } },
|
|
45
46
|
// ── mcp-servers.ts ──────────────────────────────────────────────────────
|
|
46
47
|
{ name: 'list_mcp_servers', description: 'List registered MCP servers with optional filters by status, tags, or search.', read_safe: true, inputSchema: { type: 'object', properties: { status: { type: 'string' }, tags: { type: 'string' }, search: { type: 'string' }, limit: { type: 'integer' }, offset: { type: 'integer' } } } },
|
|
47
48
|
{ name: 'update_mcp_server', description: 'Update an MCP server registration (tags, description, auto_connect).', read_safe: false, inputSchema: { type: 'object', properties: { id: { type: 'string' }, name: { type: 'string' }, description: { type: 'string' }, tags: { type: 'array', items: { type: 'string' } }, auto_connect: { type: 'boolean' } }, required: ['id'] } },
|
|
@@ -107,8 +108,8 @@ exports.ADMIN_TOOLS = [
|
|
|
107
108
|
// ── pipelines.ts ────────────────────────────────────────────────────────
|
|
108
109
|
{ name: 'list_pipeline_entities', description: 'List distinct entity (tool) names from pipeline jobs.', read_safe: true, inputSchema: { type: 'object', properties: { app_id: { type: 'string' } } } },
|
|
109
110
|
{ name: 'list_pipeline_jobs', description: 'List pipeline jobs with optional entity, search, and status filters.', read_safe: true, inputSchema: { type: 'object', properties: { app_id: { type: 'string' }, limit: { type: 'integer' }, offset: { type: 'integer' }, entity: { type: 'string' }, search: { type: 'string' }, status: { type: 'string' }, sort_by: { type: 'string' }, order: { type: 'string', enum: ['asc', 'desc'] } } } },
|
|
110
|
-
{ name: 'get_pipeline_execution', description: 'Export execution details for a specific pipeline job.', read_safe: true, inputSchema: { type: 'object', properties: { job_id: { type: 'string' }, app_id: { type: 'string' } }, required: ['job_id'] } },
|
|
111
|
-
{ name: 'interrupt_pipeline_job', description: '
|
|
111
|
+
{ name: 'get_pipeline_execution', description: 'Export execution details for a specific pipeline job. Histories run large — pass select (dot paths) to return only what you need.', read_safe: true, inputSchema: { type: 'object', properties: { job_id: { type: 'string' }, app_id: { type: 'string' }, select: { type: 'array', items: { type: 'string' } } }, required: ['job_id'] } },
|
|
112
|
+
{ name: 'interrupt_pipeline_job', description: 'Engine-level interrupt of a running job. WARNING: does NOT cancel the workflow\'s escalations — they are stranded as pending orphans. Prefer terminate_workflow to stop a workflow cleanly; use this only for a raw engine interrupt.', read_safe: false, inputSchema: { type: 'object', properties: { job_id: { type: 'string' }, topic: { type: 'string' }, app_id: { type: 'string' } }, required: ['job_id', 'topic'] } },
|
|
112
113
|
// ── topics.ts ───────────────────────────────────────────────────────────
|
|
113
114
|
{ name: 'list_topics', description: 'List topics in the event catalog with optional category and search filters.', read_safe: true, inputSchema: { type: 'object', properties: { category: { type: 'string' }, search: { type: 'string' }, limit: { type: 'integer' }, offset: { type: 'integer' } } } },
|
|
114
115
|
{ name: 'get_topic', description: 'Get a single topic by name, including schema and example payload.', read_safe: true, inputSchema: { type: 'object', properties: { topic: { type: 'string' } }, required: ['topic'] } },
|
|
@@ -119,16 +120,13 @@ exports.ADMIN_TOOLS = [
|
|
|
119
120
|
{ name: 'get_settings', description: 'Get frontend-relevant configuration (no secrets). Returns feature flags, enabled capabilities, and system metadata.', read_safe: true, inputSchema: { type: 'object', properties: {} } },
|
|
120
121
|
// ── exports.ts ──────────────────────────────────────────────────────────
|
|
121
122
|
{ name: 'list_export_jobs', description: 'List workflow jobs with optional filtering and pagination.', read_safe: true, inputSchema: { type: 'object', properties: { limit: { type: 'integer' }, offset: { type: 'integer' }, entity: { type: 'string' }, search: { type: 'string' }, status: { type: 'string' }, sort_by: { type: 'string' }, order: { type: 'string', enum: ['asc', 'desc'] } } } },
|
|
122
|
-
{ name: 'export_workflow_state', description: 'Export the full workflow state using HotMesh durable export.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' }, allow: { type: 'array', items: { type: 'string' } }, block: { type: 'array', items: { type: 'string' } }, values: { type: 'object' } }, required: ['workflow_id'] } },
|
|
123
|
-
{ name: 'export_workflow_execution', description: 'Export workflow state as a structured execution event history.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' }, excludeSystem: { type: 'boolean' }, omitResults: { type: 'boolean' }, mode: { type: 'string' }, maxDepth: { type: 'integer' } }, required: ['workflow_id'] } },
|
|
123
|
+
{ name: 'export_workflow_state', description: 'Export the full workflow state using HotMesh durable export. allow/block filter which sections the engine fetches; select (dot paths) projects the returned JSON.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' }, allow: { type: 'array', items: { type: 'string' } }, block: { type: 'array', items: { type: 'string' } }, values: { type: 'object' }, select: { type: 'array', items: { type: 'string' } } }, required: ['workflow_id'] } },
|
|
124
|
+
{ name: 'export_workflow_execution', description: 'Export workflow state as a structured execution event history. Histories run large — pass select (dot paths) to return only what you need.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' }, excludeSystem: { type: 'boolean' }, omitResults: { type: 'boolean' }, mode: { type: 'string' }, maxDepth: { type: 'integer' }, select: { type: 'array', items: { type: 'string' } } }, required: ['workflow_id'] } },
|
|
124
125
|
{ name: 'get_export_status', description: 'Return the numeric status semaphore for a workflow.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' } }, required: ['workflow_id'] } },
|
|
125
126
|
// ── overview.ts ─────────────────────────────────────────────────────────
|
|
126
127
|
{ name: 'get_system_overview', description: 'Triage-ready system dashboard: escalation queue pressure, task throughput, hourly trends, infrastructure status, and process summary. One call for complete system state.', read_safe: true, inputSchema: { type: 'object', properties: { period: { type: 'string', enum: ['1h', '24h', '7d'], description: 'Time window (default: 24h)' } } } },
|
|
127
|
-
// ──
|
|
128
|
-
{ name: '
|
|
129
|
-
{ name: 'ortho_pending', description: 'List open ortho-pipeline stage escalations waiting to be completed. Optionally filter by stage name. Returns escalation IDs for use with ortho_complete_stage.', read_safe: true, inputSchema: { type: 'object', properties: { stage: { type: 'string' }, limit: { type: 'integer' } } } },
|
|
130
|
-
{ name: 'ortho_complete_stage', description: 'Complete a pending ortho pipeline stage escalation. Resolving automatically advances the workflow to the next stage.', read_safe: false, inputSchema: { type: 'object', properties: { escalation_id: { type: 'string' }, notes: { type: 'string' }, outcome: { type: 'object' } }, required: ['escalation_id', 'notes'] } },
|
|
131
|
-
{ name: 'ortho_status', description: 'Get the current status and completed stage results for an ortho pipeline workflow. Returns "running" while in progress or "complete" with the full stage history.', read_safe: true, inputSchema: { type: 'object', properties: { workflow_id: { type: 'string' } }, required: ['workflow_id'] } },
|
|
128
|
+
// ── domain-context.ts ─────────────────────────────────────────────────────
|
|
129
|
+
{ name: 'get_domain_context', description: 'The deployment\'s domain dictionary merged with live platform state — how this operation\'s jargon maps to roles, workflows, escalations, and metadata facets. No args returns the overview + index; { topic, name } returns specific entries (entity id facet + roles for building escalation queries, role cancel/timeout semantics, workflow kill road); topic `term` looks a word or alias up across every kind. Works on every deployment — with no dictionary registered it serves a view derived from the live registries. Call before acting on deployment-specific semantics.', read_safe: true, inputSchema: { type: 'object', properties: { topic: { type: 'string', enum: ['term', 'entity', 'role', 'workflow', 'facet', 'action', 'rule', 'runbook'] }, name: { type: 'string' } } } },
|
|
132
130
|
// ── scan-codes.ts ────────────────────────────────────────────────────────
|
|
133
131
|
{ name: 'execute_scan_code', description: 'Execute a raw scan code (version:category:target): parse against the configured schemes, walk the rule\'s condition/action steps, and return a structured outcome. Identity-kind schemes mint an acting-identity grant; with actingToken, mutating verbs attribute to the badged person.', read_safe: false, inputSchema: { type: 'object', properties: { code: { type: 'string' }, actingToken: { type: 'string' }, previousActingToken: { type: 'string' } }, required: ['code'] } },
|
|
134
132
|
{ name: 'execute_scan_choice', description: 'Execute one choice presented by a PRESENT step (the info-choice screen). The pointer is re-validated against live config, row state, the acting-identity gate, and RBAC before the verb runs.', read_safe: false, inputSchema: { type: 'object', properties: { schemeVersion: { type: 'integer' }, category: { type: 'string' }, stepIndex: { type: 'integer' }, choiceIndex: { type: 'integer' }, escalationId: { type: 'string' }, actingToken: { type: 'string' } }, required: ['schemeVersion', 'category', 'stepIndex', 'choiceIndex', 'escalationId'] } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../adapters/express.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth-sso.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/diagnostics.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/me.ts","../api/namespaces.ts","../api/overview.ts","../api/personas.ts","../api/pipelines.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/analytics.ts","../api/escalations/bulk.ts","../api/escalations/cancel.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/facets.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/metadata.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/scan-codes/choice.ts","../api/scan-codes/config.ts","../api/scan-codes/context.ts","../api/scan-codes/execute.ts","../api/scan-codes/identity.ts","../api/scan-codes/index.ts","../api/scan-codes/locate.ts","../api/scan-codes/present.ts","../api/scan-codes/verbs.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/typed-resolution.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/personas.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/roles.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats-ws-proxy.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/events/system-events.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/branding.ts","../modules/config.ts","../modules/defaults.ts","../modules/features.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/sso.ts","../modules/utils.ts","../modules/version.ts","../routes/agents.ts","../routes/auth-sso.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/diagnostics.ts","../routes/docs.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-endpoint.ts","../routes/mcp.ts","../routes/me.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/overview.ts","../routes/personas.ts","../routes/pipelines.ts","../routes/roles.ts","../routes/scan-codes.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/acting.ts","../routes/escalations/analytics.ts","../routes/escalations/bulk.ts","../routes/escalations/facets.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/metadata.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/ortho-populate.ts","../scripts/printer-cycle.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../scripts/twin-farm.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/auth/sql.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/diagnostics/index.ts","../services/diagnostics/patterns.ts","../services/escalation/aggregate-sql.ts","../services/escalation/aggregate-validate.ts","../services/escalation/aggregates.ts","../services/escalation/bulk.ts","../services/escalation/client.ts","../services/escalation/crud.ts","../services/escalation/facet-sql.ts","../services/escalation/facets.ts","../services/escalation/index.ts","../services/escalation/map.ts","../services/escalation/metrics-cache.ts","../services/escalation/queries.ts","../services/escalation/resolver-validation.ts","../services/escalation/sql.ts","../services/escalation/submit-guard.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/acting-identity.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/exposure.ts","../services/mcp/external-server.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/seed-service-account.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/overview/index.ts","../services/overview/sql.ts","../services/persona/index.ts","../services/persona/sql.ts","../services/persona/types.ts","../services/pipelines/enrichment.ts","../services/pipelines/events.ts","../services/pipelines/execution-builder.ts","../services/pipelines/index.ts","../services/pipelines/queries.ts","../services/pipelines/sql.ts","../services/pipelines/types.ts","../services/role/enforcement-cache.ts","../services/role/index.ts","../services/role/schema-validator.ts","../services/role/sql.ts","../services/role/types.ts","../services/scan-code/index.ts","../services/scan-code/parse.ts","../services/scan-code/read.ts","../services/scan-code/sql.ts","../services/scan-code/validate.ts","../services/scan-code/write.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/preferences.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/scope.ts","../services/user/seed-admin.ts","../services/user/sql.ts","../services/user/sso-provision.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/pipe-validator.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../shared/form-validation/derive-field-label.ts","../shared/form-validation/field-validator.ts","../shared/form-validation/index.ts","../shared/form-validation/validate-resolver-payload.ts","../shared/form-validation/x-lt-bind.ts","../shared/form-validation/x-lt-help.ts","../shared/form-validation/x-lt-labels.ts","../shared/form-validation/x-lt-query.ts","../shared/form-validation/x-lt-show-if.ts","../shared/form-validation/x-lt-submit-guard.ts","../shared/form-validation/x-lt-submit-on-claim.ts","../shared/form-validation/x-lt-transition.ts","../start/adapters.ts","../start/config.ts","../start/graph-workflows.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/agent-subscriptions.ts","../system/mcp-servers/admin/agents.ts","../system/mcp-servers/admin/bot-accounts.ts","../system/mcp-servers/admin/controlplane.ts","../system/mcp-servers/admin/diagnostics.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/exports.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/ortho.ts","../system/mcp-servers/admin/overview.ts","../system/mcp-servers/admin/personas.ts","../system/mcp-servers/admin/pipelines.ts","../system/mcp-servers/admin/scan-codes.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/settings.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/topics.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../themes/midnight.ts","../types/agent.ts","../types/analytics.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/facets.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/persona.ts","../types/scan-choice.ts","../types/scan-code.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/validation.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../adapters/express.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth-sso.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/diagnostics.ts","../api/domain.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/me.ts","../api/namespaces.ts","../api/overview.ts","../api/personas.ts","../api/pipelines.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/analytics.ts","../api/escalations/bulk.ts","../api/escalations/cancel.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/facets.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/metadata.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/scan-codes/choice.ts","../api/scan-codes/config.ts","../api/scan-codes/context.ts","../api/scan-codes/execute.ts","../api/scan-codes/identity.ts","../api/scan-codes/index.ts","../api/scan-codes/locate.ts","../api/scan-codes/present.ts","../api/scan-codes/verbs.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/typed-resolution.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/personas.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/roles.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/escalation-wire.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats-ws-proxy.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/events/system-events.ts","../lib/json-path/pick.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/branding.ts","../modules/config.ts","../modules/defaults.ts","../modules/features.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/sso.ts","../modules/utils.ts","../modules/version.ts","../routes/agents.ts","../routes/auth-sso.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/diagnostics.ts","../routes/docs.ts","../routes/domain.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-endpoint.ts","../routes/mcp.ts","../routes/me.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/overview.ts","../routes/personas.ts","../routes/pipelines.ts","../routes/roles.ts","../routes/scan-codes.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/acting.ts","../routes/escalations/analytics.ts","../routes/escalations/bulk.ts","../routes/escalations/facets.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/metadata.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/ortho-populate.ts","../scripts/printer-cycle.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../scripts/twin-farm.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/auth/sql.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/diagnostics/index.ts","../services/diagnostics/patterns.ts","../services/domain/index.ts","../services/domain/read.ts","../services/domain/seed.ts","../services/domain/sql.ts","../services/domain/validate.ts","../services/domain/write.ts","../services/escalation/aggregate-sql.ts","../services/escalation/aggregate-validate.ts","../services/escalation/aggregates.ts","../services/escalation/bulk.ts","../services/escalation/client.ts","../services/escalation/crud.ts","../services/escalation/facet-sql.ts","../services/escalation/facets.ts","../services/escalation/index.ts","../services/escalation/map.ts","../services/escalation/metrics-cache.ts","../services/escalation/queries.ts","../services/escalation/resolver-validation.ts","../services/escalation/sql.ts","../services/escalation/submit-guard.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/acting-identity.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/exposure.ts","../services/mcp/external-server.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/seed-service-account.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/overview/index.ts","../services/overview/sql.ts","../services/persona/index.ts","../services/persona/sql.ts","../services/persona/types.ts","../services/pipelines/enrichment.ts","../services/pipelines/events.ts","../services/pipelines/execution-builder.ts","../services/pipelines/index.ts","../services/pipelines/queries.ts","../services/pipelines/sql.ts","../services/pipelines/types.ts","../services/role/enforcement-cache.ts","../services/role/index.ts","../services/role/schema-validator.ts","../services/role/sql.ts","../services/role/types.ts","../services/scan-code/index.ts","../services/scan-code/parse.ts","../services/scan-code/read.ts","../services/scan-code/sql.ts","../services/scan-code/validate.ts","../services/scan-code/write.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/preferences.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/scope.ts","../services/user/seed-admin.ts","../services/user/sql.ts","../services/user/sso-provision.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/pipe-validator.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../shared/form-validation/derive-field-label.ts","../shared/form-validation/field-validator.ts","../shared/form-validation/index.ts","../shared/form-validation/validate-resolver-payload.ts","../shared/form-validation/x-lt-bind.ts","../shared/form-validation/x-lt-help.ts","../shared/form-validation/x-lt-labels.ts","../shared/form-validation/x-lt-query.ts","../shared/form-validation/x-lt-show-if.ts","../shared/form-validation/x-lt-submit-guard.ts","../shared/form-validation/x-lt-submit-on-claim.ts","../shared/form-validation/x-lt-transition.ts","../start/adapters.ts","../start/config.ts","../start/graph-workflows.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/agent-subscriptions.ts","../system/mcp-servers/admin/agents.ts","../system/mcp-servers/admin/bot-accounts.ts","../system/mcp-servers/admin/controlplane.ts","../system/mcp-servers/admin/diagnostics.ts","../system/mcp-servers/admin/domain-context.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/exports.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/overview.ts","../system/mcp-servers/admin/personas.ts","../system/mcp-servers/admin/pipelines.ts","../system/mcp-servers/admin/scan-codes.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/settings.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/topics.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../themes/midnight.ts","../types/agent.ts","../types/analytics.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/domain-manifest.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/facets.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/persona.ts","../types/scan-choice.ts","../types/scan-code.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/validation.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The domain dictionary — a deployment's ontology, stored in `lt_domain` and
|
|
3
|
+
* exposed through the MCP surface so an agent can translate domain speech
|
|
4
|
+
* ("printer PRN-001", "reset it") into the primitive call: which role/queue,
|
|
5
|
+
* which metadata facet, which workflow, which verb.
|
|
6
|
+
*
|
|
7
|
+
* The dictionary declares only the SEMANTIC overlay the live registries can't
|
|
8
|
+
* hold — jargon terms, verb guidance, kill roads, runbooks. Structure (an
|
|
9
|
+
* entity's id facet, a role's title) is DERIVED from lt_roles /
|
|
10
|
+
* lt_config_workflows at read time, so the merged view is always current.
|
|
11
|
+
* Role verb semantics (what cancel MEANS for a row class) live on the role
|
|
12
|
+
* itself, under reserved `lt_roles.properties` keys (ROLE_PROPERTY_KEYS in
|
|
13
|
+
* services/role/types.ts); `get_domain_context` merges them in.
|
|
14
|
+
*/
|
|
15
|
+
export type DomainTermKind =
|
|
16
|
+
/** A domain noun tracked through the system ("printer", "order"). */
|
|
17
|
+
'entity'
|
|
18
|
+
/** Jargon for a role/queue ("demand row" → print-operator). */
|
|
19
|
+
| 'role'
|
|
20
|
+
/** Jargon for a workflow ("the pipe" → orderPipeline). */
|
|
21
|
+
| 'workflow'
|
|
22
|
+
/** A metadata facet's meaning ("pdac", "facility"). */
|
|
23
|
+
| 'facet'
|
|
24
|
+
/** A domain verb and what it maps to ("reset" → cancel on a role). */
|
|
25
|
+
| 'action'
|
|
26
|
+
/** A standing rule, stated imperatively ("claims expire = recovery"). */
|
|
27
|
+
| 'rule';
|
|
28
|
+
/** What a term maps to in platform primitives. All fields optional — a `rule`
|
|
29
|
+
* term maps to nothing; an `action` may name a verb + role. */
|
|
30
|
+
export interface DomainTermMapping {
|
|
31
|
+
role?: string;
|
|
32
|
+
roles?: string[];
|
|
33
|
+
workflow?: string;
|
|
34
|
+
facet?: string;
|
|
35
|
+
/** A platform verb: claim | release | resolve | cancel | escalate | terminate. */
|
|
36
|
+
verb?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface DomainTerm {
|
|
39
|
+
/** The word the operation actually uses. */
|
|
40
|
+
term: string;
|
|
41
|
+
/** Other spellings/phrases that mean the same thing. */
|
|
42
|
+
aliases?: string[];
|
|
43
|
+
kind: DomainTermKind;
|
|
44
|
+
maps_to?: DomainTermMapping;
|
|
45
|
+
/** 1–4 imperative sentences: what an agent must know before acting on this. */
|
|
46
|
+
guidance: string;
|
|
47
|
+
/** entity terms: override the id facet derived from the role's entity_facet. */
|
|
48
|
+
idFacet?: string;
|
|
49
|
+
/** workflow terms: how to stop it correctly ("terminate the root; never cancel the demand row"). */
|
|
50
|
+
kill_road?: string;
|
|
51
|
+
/** workflow terms: deterministic id convention ("pipe-<orderId>[-g<N>]"). */
|
|
52
|
+
id_convention?: string;
|
|
53
|
+
/** facet terms: the enumerable value domain, when closed. */
|
|
54
|
+
values?: string[];
|
|
55
|
+
}
|
|
56
|
+
/** A named procedure as ordered, tool-level steps. */
|
|
57
|
+
export interface DomainRunbook {
|
|
58
|
+
name: string;
|
|
59
|
+
steps: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface DomainDictionary {
|
|
62
|
+
name: string;
|
|
63
|
+
version: string;
|
|
64
|
+
/** One page: what this deployment runs. */
|
|
65
|
+
overview: string;
|
|
66
|
+
terms?: DomainTerm[];
|
|
67
|
+
runbooks?: DomainRunbook[];
|
|
68
|
+
}
|
|
69
|
+
/** Compact names-only index for the MCP `instructions` string. */
|
|
70
|
+
export interface DomainIndex {
|
|
71
|
+
name: string;
|
|
72
|
+
version: string;
|
|
73
|
+
overview: string;
|
|
74
|
+
/** Term names grouped by kind. */
|
|
75
|
+
terms: Partial<Record<DomainTermKind, string[]>>;
|
|
76
|
+
runbooks: string[];
|
|
77
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The domain dictionary — a deployment's ontology, stored in `lt_domain` and
|
|
4
|
+
* exposed through the MCP surface so an agent can translate domain speech
|
|
5
|
+
* ("printer PRN-001", "reset it") into the primitive call: which role/queue,
|
|
6
|
+
* which metadata facet, which workflow, which verb.
|
|
7
|
+
*
|
|
8
|
+
* The dictionary declares only the SEMANTIC overlay the live registries can't
|
|
9
|
+
* hold — jargon terms, verb guidance, kill roads, runbooks. Structure (an
|
|
10
|
+
* entity's id facet, a role's title) is DERIVED from lt_roles /
|
|
11
|
+
* lt_config_workflows at read time, so the merged view is always current.
|
|
12
|
+
* Role verb semantics (what cancel MEANS for a row class) live on the role
|
|
13
|
+
* itself, under reserved `lt_roles.properties` keys (ROLE_PROPERTY_KEYS in
|
|
14
|
+
* services/role/types.ts); `get_domain_context` merges them in.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/build/types/facets.d.ts
CHANGED
|
@@ -43,6 +43,14 @@ export interface FacetQuery {
|
|
|
43
43
|
* entity keys (type or scan the leading characters of a serial).
|
|
44
44
|
*/
|
|
45
45
|
prefix?: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Exact match on facet VALUES via the text projection: metadata->>key =
|
|
48
|
+
* '<value>'. Compares as text, so it round-trips whatever `groupBy` emits —
|
|
49
|
+
* booleans, enums, and numbers all surface as text — the correct way to scope
|
|
50
|
+
* to a categorical slice value the aggregate handed back (a jsonb-containment
|
|
51
|
+
* filter would need the native type the text projection has already lost).
|
|
52
|
+
*/
|
|
53
|
+
equals?: Record<string, string>;
|
|
46
54
|
status?: string;
|
|
47
55
|
/** true = only available (unclaimed/expired); false = only held now. */
|
|
48
56
|
available?: boolean;
|
package/build/types/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type { LTEnvelope, } from './envelope';
|
|
2
2
|
export type { LTTaskStatus, LTTaskPriority, LTTaskRecord, LTMilestone, } from './task';
|
|
3
3
|
export type { LTEscalationStatus, LTEscalationPriority, LTEscalationRecord, EscalationResolution, } from './escalation';
|
|
4
|
-
export { isEffectivelyClaimed, isAvailable, } from './escalation';
|
|
4
|
+
export { isEffectivelyClaimed, isAvailable, ESCALATION_METADATA_KEYS, } from './escalation';
|
|
5
|
+
export type { DomainDictionary, DomainTerm, DomainTermKind, DomainTermMapping, DomainRunbook, DomainIndex, } from './domain-manifest';
|
|
5
6
|
export type { FacetRangeOp, FacetRange, FacetOrder, FacetQuery, ClaimedGroup, GroupSummary, } from './facets';
|
|
6
7
|
export type { GroupableColumn, AnalyticsQuery, FacetGroupBy, AnalyticsWindow, AggregateMeasure, StateMatch, AggregateOrder, AggregateByFacetsInput, AggregateRow, AggregateByFacetsResult, TimelineByFacetInput, TimelineInterval, TimelineByFacetResult, } from './analytics';
|
|
7
8
|
export { GROUPABLE_COLUMNS, } from './analytics';
|
package/build/types/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ACTING_IDENTITY_LABEL = exports.SCAN_TEMPLATE_TOKENS = exports.SCAN_PROVENANCE_KEYS = exports.SCAN_CARDINALITY = exports.SCAN_AVAILABILITY = exports.SCAN_OUTCOMES = exports.SCAN_MUTATING_VERBS = exports.SCAN_VERBS = exports.SCAN_SCHEME_KINDS = exports.SCAN_ENCODINGS = exports.GROUPABLE_COLUMNS = exports.isAvailable = exports.isEffectivelyClaimed = void 0;
|
|
3
|
+
exports.ACTING_IDENTITY_LABEL = exports.SCAN_TEMPLATE_TOKENS = exports.SCAN_PROVENANCE_KEYS = exports.SCAN_CARDINALITY = exports.SCAN_AVAILABILITY = exports.SCAN_OUTCOMES = exports.SCAN_MUTATING_VERBS = exports.SCAN_VERBS = exports.SCAN_SCHEME_KINDS = exports.SCAN_ENCODINGS = exports.GROUPABLE_COLUMNS = exports.ESCALATION_METADATA_KEYS = exports.isAvailable = exports.isEffectivelyClaimed = void 0;
|
|
4
4
|
var escalation_1 = require("./escalation");
|
|
5
5
|
Object.defineProperty(exports, "isEffectivelyClaimed", { enumerable: true, get: function () { return escalation_1.isEffectivelyClaimed; } });
|
|
6
6
|
Object.defineProperty(exports, "isAvailable", { enumerable: true, get: function () { return escalation_1.isAvailable; } });
|
|
7
|
+
Object.defineProperty(exports, "ESCALATION_METADATA_KEYS", { enumerable: true, get: function () { return escalation_1.ESCALATION_METADATA_KEYS; } });
|
|
7
8
|
var analytics_1 = require("./analytics");
|
|
8
9
|
Object.defineProperty(exports, "GROUPABLE_COLUMNS", { enumerable: true, get: function () { return analytics_1.GROUPABLE_COLUMNS; } });
|
|
9
10
|
var scan_code_1 = require("./scan-code");
|
package/build/types/startup.d.ts
CHANGED
|
@@ -405,6 +405,16 @@ export interface LTStartConfig {
|
|
|
405
405
|
}>;
|
|
406
406
|
/** Replace the built-in MCP adapter entirely. */
|
|
407
407
|
adapter?: LTMcpAdapter;
|
|
408
|
+
/**
|
|
409
|
+
* Path to a JSON DomainDictionary — the deployment's ontology (jargon
|
|
410
|
+
* terms mapped to roles/workflows/facets/verbs, plus runbooks). Resolved
|
|
411
|
+
* relative to the host process cwd and SEEDED into `lt_domain` at boot
|
|
412
|
+
* (insert-if-absent with drift + reference warnings; never fails boot).
|
|
413
|
+
* The DB row is the runtime truth: edit live via PUT /api/domain, which
|
|
414
|
+
* validates role/workflow references against the live registries. Exposed
|
|
415
|
+
* through the MCP `instructions` index and the `get_domain_context` tool.
|
|
416
|
+
*/
|
|
417
|
+
domainDictionaryPath?: string;
|
|
408
418
|
/**
|
|
409
419
|
* Controls which tools are exposed when this instance acts as an MCP server.
|
|
410
420
|
* All fields are optional — omit the entire object for unrestricted access.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as o}from"./vendor-query-RUZdMvN6.js";import{c as n}from"./tasks-
|
|
2
|
-
//# sourceMappingURL=AdminDashboard-
|
|
1
|
+
import{j as o}from"./vendor-query-RUZdMvN6.js";import{c as n}from"./tasks-Doy_7cGX.js";import{M as m}from"./index-C991QfUN.js";import{f as c}from"./useEventHooks-ldE5o0ok.js";import{u}from"./mcp-CHPSFv7m.js";import{P as d}from"./PageHeaderWithStats-gT-5ovJh.js";import"./vendor-react-CdqEC2zv.js";import"./vendor-icons-Aw7bzBxa.js";function j(){var a;c();const{data:s}=n({limit:1}),{data:e}=m({status:"pending",limit:1}),{data:t}=u(),r=((a=t==null?void 0:t.servers)==null?void 0:a.filter(i=>i.status==="connected").length)??0,l=t?`${r}/${t.total}`:"—";return o.jsx("div",{children:o.jsx(d,{title:"Admin",stats:[{label:"Tasks",value:(s==null?void 0:s.total)??"—"},{label:"Pending Escalations",value:(e==null?void 0:e.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:l},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]})})}export{j as AdminDashboard};
|
|
2
|
+
//# sourceMappingURL=AdminDashboard-CahUELrr.js.map
|
package/dashboard/dist/assets/{AdminDashboard-DJ3LJQ09.js.map → AdminDashboard-CahUELrr.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminDashboard-
|
|
1
|
+
{"version":3,"file":"AdminDashboard-CahUELrr.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"4UAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,a as f}from"./vendor-query-RUZdMvN6.js";import{a as le,d as ce,b as oe}from"./agents-DU9GPovp.js";import{E as de,C as xe,u as pe,a as ue,b as me,c as he}from"./CronLabel-CSzjWuwj.js";import{b as fe,u as ve,l as be}from"./index-errgQT5x.js";import{P as ye}from"./PageHeader-BJgWMZtw.js";import{B as E,m as U,A as ge,R as Y,e as M,T as Z,ap as G,d as V,b9 as ee,a8 as je}from"./vendor-icons-BxuyFxH2.js";import{e as we}from"./knowledge-arh4NfmL.js";import{R as te}from"./RunAsSelector-twbuX7fB.js";import{u as Ne}from"./workflows-qyc0ku_5.js";import{u as _e}from"./yaml-workflows-DWFww9Xn.js";import{u as se}from"./capabilities-sSJJqrp-.js";import{u as ke}from"./topics-DgDv5ZXP.js";import{W as Q}from"./WorkflowPill-tXU0-eXu.js";import{e as Ce,u as Se,f as qe}from"./vendor-react-CdqEC2zv.js";import"./BotPicker-BBkJBXZB.js";import"./bots-Cy-Hmg7w.js";const X={name:"",description:"",goals:"",rules:"",user_id:"",knowledge_domain:"",subscriptions:[],schedules:[]},Ae={topic:"",filter:"",reaction_type:"durable",workflow_type:"",pipeline_id:"",mcp_prompt:"",server_id:"",tool_name:"",input_mapping:"{}",execute_as:"",enabled:!0},Oe={cron:"0 * * * *",reaction_type:"durable",workflow_type:"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""};function Re(s,a){var o,x,m;const r=(x=(o=s.behaviors)==null?void 0:o.schedules)!=null&&x.length?s.behaviors.schedules.map(i=>({cron:i.cron||"",reaction_type:i.reaction_type||"durable",workflow_type:i.workflow_type||"",pipeline_id:i.pipeline_id||"",server_id:i.server_id||"",tool_name:i.tool_name||"",envelope:i.envelope?JSON.stringify(i.envelope,null,2):"{}",execute_as:i.execute_as||""})):(m=s.behaviors)!=null&&m.cron?[{cron:s.behaviors.cron,reaction_type:"durable",workflow_type:s.workflow_type??"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""}]:[];return{name:s.id,description:s.description??"",goals:s.goals??"",rules:s.rules??"",user_id:s.user_id??"",knowledge_domain:s.knowledge_domain??"",subscriptions:a.map(i=>({id:i.id,topic:i.topic,filter:i.filter?JSON.stringify(i.filter,null,2):"",reaction_type:i.reaction_type,workflow_type:i.workflow_type??"",pipeline_id:i.pipeline_id??"",mcp_prompt:i.mcp_prompt??"",server_id:i.server_id??"",tool_name:i.tool_name??"",input_mapping:JSON.stringify(i.input_mapping??{},null,2),execute_as:i.execute_as??"",enabled:i.enabled})),schedules:r}}function Ee(s){var r;const a={};return s.schedules.length>0&&(a.schedules=s.schedules.map(o=>({cron:o.cron,reaction_type:o.reaction_type||"durable",workflow_type:o.reaction_type==="pipeline"?void 0:o.workflow_type,pipeline_id:o.reaction_type==="pipeline"?o.pipeline_id:void 0,envelope:B(o.envelope)??{},execute_as:o.execute_as||void 0})),a.cron=s.schedules[0].cron),{id:s.name,description:s.description||void 0,goals:s.goals||void 0,rules:s.rules||void 0,user_id:s.user_id||void 0,knowledge_domain:s.knowledge_domain||void 0,behaviors:a,workflow_type:((r=s.schedules[0])==null?void 0:r.workflow_type)||void 0,pipeline_id:void 0}}function $e(s){return s.subscriptions.map(a=>({id:a.id,topic:a.topic,filter:a.filter?B(a.filter):void 0,reaction_type:a.reaction_type,workflow_type:a.workflow_type||void 0,pipeline_id:a.pipeline_id||void 0,mcp_prompt:a.mcp_prompt||void 0,server_id:a.server_id||void 0,tool_name:a.tool_name||void 0,input_mapping:B(a.input_mapping)??{},execute_as:a.execute_as||void 0,enabled:a.enabled}))}function B(s){if(s.trim())try{return JSON.parse(s)}catch{return}}function Pe(s,a,r,o){let x;try{x=JSON.parse(s)}catch{x={}}const m=o.includes(a),i=r===""||r===void 0||r===null||Array.isArray(r)&&r.length===0||r==="[]";if(!m&&i){const{[a]:p,...c}=x;return JSON.stringify(c,null,2)}let u=r;if(typeof r=="string")try{const p=JSON.parse(r);Array.isArray(p)&&(u=p)}catch{}return JSON.stringify({...x,[a]:u},null,2)}const S="section-header mt-[3em] first:mt-0",P="label",_="hint",O="input",L="input-json w-full";function Ie({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Give your automation a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:identity"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Identity",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Name *"}),e.jsx("input",{type:"text",value:s.name,onChange:r=>a("name",r.target.value),placeholder:"health-monitor",className:O}),e.jsx("p",{className:_,children:"Lowercase, kebab-case. This appears everywhere."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Description"}),e.jsx("input",{type:"text",value:s.description,onChange:r=>a("description",r.target.value),placeholder:"Watches for workflow failures and captures diagnostics",className:O}),e.jsx("p",{className:_,children:"One sentence that explains what this automation does."})]})]})}function We({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Goals define what drives the automation. Rules define what constrains it."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:motivation"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Motivation",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-8",children:[e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Goals"}),e.jsx("textarea",{value:s.goals,onChange:r=>a("goals",r.target.value),placeholder:"Detect failures early, capture diagnostics, alert before cascading",rows:4,className:`${O} resize-none`}),e.jsx("p",{className:_,children:"Primary motivation. What the automation is trying to achieve."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Rules"}),e.jsx("textarea",{value:s.rules,onChange:r=>a("rules",r.target.value),placeholder:"Never auto-restart failed workflows. Always escalate to humans.",rows:4,className:`${O} resize-none`}),e.jsx("p",{className:_,children:"Guardrails. What it must never do, even when goals suggest it should."})]})]})]})}function Te({form:s,set:a}){const{data:r}=we(),o=(r==null?void 0:r.domains)??[];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Assign a knowledge domain — the automation's memory. It stores context here over time."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:knowledge"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Knowledge",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Knowledge Domain"}),e.jsx("input",{type:"text",value:s.knowledge_domain,onChange:x=>a("knowledge_domain",x.target.value),placeholder:"e.g., system-health, content-review, vendor-data",className:O,list:"domain-suggestions"}),e.jsx("datalist",{id:"domain-suggestions",children:o.map(x=>e.jsx("option",{value:x.domain},x.domain))}),e.jsx("p",{className:_,children:"Choose an existing domain to share memory, or type a new name to create one."})]}),o.length>0&&e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Existing Domains"}),e.jsx("div",{className:"space-y-0.5 mt-2",children:o.map(x=>e.jsxs("button",{type:"button",onClick:()=>a("knowledge_domain",x.domain),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${s.knowledge_domain===x.domain?"border-l-2 border-l-accent bg-accent/5":"hover:bg-surface-hover border-l-2 border-l-transparent"}`,children:[e.jsx(U,{className:"w-3.5 h-3.5 text-text-quaternary shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-sm text-text-primary flex-1",children:x.domain}),e.jsxs("span",{className:"text-2xs text-text-quaternary",children:[x.count," entries"]}),e.jsx("span",{className:"text-2xs text-text-quaternary",children:e.jsx(fe,{date:x.latest})})]},x.domain))})]})]})}function Me({serverId:s,toolName:a,onChange:r}){const{data:o}=se(),x=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[m,i]=f.useState(!1),[u,p]=f.useState(""),c=f.useRef(null),h=f.useRef(null);f.useEffect(()=>{if(!m)return;function t(n){h.current&&!h.current.contains(n.target)&&i(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[m]);const l=a?`${a}`:"",d=m?u:l,y=f.useMemo(()=>{const t=(m?u:"").toLowerCase();return t?x.filter(n=>n.name.toLowerCase().includes(t)||n.serverName.toLowerCase().includes(t)||(n.description??"").toLowerCase().includes(t)):x},[x,u,m]),v=a?x.find(t=>t.serverId===s&&t.name===a):void 0;return e.jsxs("div",{ref:h,className:"relative",children:[e.jsx("input",{ref:c,type:"text",value:d,onFocus:()=>{i(!0),p(l)},onChange:t=>{const n=t.target.value;p(n),n||r("",""),m||i(!0)},placeholder:"Search capabilities...",className:"input font-mono text-sm w-full"}),!m&&(v==null?void 0:v.description)&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-1 italic",children:v.description}),m&&y.length>0&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 max-h-64 overflow-y-auto rounded-md border border-surface-border bg-surface shadow-lg",children:y.map(t=>e.jsxs("button",{type:"button",onClick:()=>{r(t.serverId,t.name),p(t.name),i(!1)},className:`w-full text-left px-3 py-2 hover:bg-surface-hover transition-colors flex items-center gap-3 ${s===t.serverId&&a===t.name?"bg-accent/5":""}`,children:[e.jsx("span",{className:"text-2xs font-mono text-text-primary shrink-0",children:t.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-2xs font-medium shrink-0 bg-accent/10 text-accent",children:[e.jsx(ge,{className:"w-2 h-2",strokeWidth:1.5}),t.serverName]}),t.description&&e.jsx("span",{className:"text-2xs text-text-quaternary truncate",children:t.description})]},`${t.serverId}:${t.name}`))}),m&&y.length===0&&u&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 rounded-md border border-surface-border bg-surface shadow-lg px-3 py-4 text-center",children:e.jsxs("p",{className:"text-2xs text-text-quaternary",children:['No capabilities match "',u,'"']})})]})}const Le={durable:"Workflow",pipeline:"Pipeline",capability:"Capability",mcp_query:"MCP Query"},Je=["durable","pipeline","capability","mcp_query"];function ae({reactionType:s,onReactionTypeChange:a,workflowType:r,onWorkflowTypeChange:o,pipelineId:x,onPipelineIdChange:m,serverId:i,toolName:u,onCapabilityChange:p,mcpPrompt:c,onMcpPromptChange:h,availableTypes:l=[...Je]}){const{data:d}=Ne(),y=(d??[]).filter(n=>n.invocable).map(n=>n.workflow_type),{data:v}=_e({status:"active"}),t=((v==null?void 0:v.workflows)??[]).map(n=>({id:n.id,name:n.graph_topic||n.id}));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex gap-1",children:l.map(n=>{const b=s===n;return e.jsx("button",{type:"button",onClick:()=>a(n),className:`px-3 py-1.5 text-2xs font-medium rounded-md transition-colors ${b?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:Le[n]},n)})}),s==="durable"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Workflow *"}),e.jsxs("select",{value:r,onChange:n=>o(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select workflow..."}),y.map(n=>e.jsx("option",{value:n,children:n},n))]})]}),s==="pipeline"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Pipeline *"}),e.jsxs("select",{value:x,onChange:n=>m(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select pipeline..."}),t.map(n=>e.jsx("option",{value:n.id,children:n.name},n.id))]})]}),s==="capability"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Capability *"}),e.jsx(Me,{serverId:i,toolName:u,onChange:p})]}),s==="mcp_query"&&h&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Prompt *"}),e.jsx("textarea",{value:c??"",onChange:n=>h(n.target.value),placeholder:"Analyze the error and suggest remediation...",rows:3,className:"input resize-none"})]})]})}const Fe={task:"bg-status-active/10 text-status-active",workflow:"bg-accent/15 text-accent",escalation:"bg-status-warning/10 text-status-warning",activity:"bg-status-active/10 text-status-active",knowledge:"bg-accent/10 text-accent",file:"bg-status-draft/10 text-status-draft",agent:"bg-status-success/10 text-status-success",app:"bg-status-error/10 text-status-error",milestone:"bg-accent/10 text-accent"};function De({form:s,set:a}){const{data:r}=ke({limit:200}),{data:o}=se(),x=(r==null?void 0:r.topics)??[],m=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[i,u]=f.useState(0),p=(t,n,b)=>{const g=[...s.subscriptions];g[t]={...g[t],[n]:b},a("subscriptions",g)},c=()=>{a("subscriptions",[...s.subscriptions,{...Ae}]),u(s.subscriptions.length)},h=t=>{a("subscriptions",s.subscriptions.filter((n,b)=>b!==t)),i>=s.subscriptions.length-1&&u(Math.max(0,s.subscriptions.length-2))},l=s.subscriptions,d=l[i],y=t=>t.topic?t.reaction_type==="durable"?!!t.workflow_type:t.reaction_type==="pipeline"?!!t.pipeline_id:t.reaction_type==="mcp_query"?!!t.mcp_prompt:t.reaction_type==="capability"?!!t.server_id&&!!t.tool_name:!1:!1,v=d?x.find(t=>t.topic===d.topic):void 0;return l.length===0?e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Y,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1}),e.jsx("p",{className:"text-sm text-text-tertiary mb-2",children:"No event subscriptions yet"}),e.jsx("p",{className:"text-2xs text-text-quaternary max-w-sm mb-6",children:"Each subscription listens for a topic pattern and runs a workflow when it matches."}),e.jsxs("button",{onClick:c,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3.5 h-3.5"})," Add first subscription"]})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex gap-8",children:[e.jsxs("div",{className:"w-52 shrink-0 space-y-0.5",children:[l.map((t,n)=>e.jsxs("div",{className:`group/sub flex items-center rounded-md transition-colors ${i===n?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxs("button",{onClick:()=>u(n),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`w-2.5 h-2.5 rounded-full dot-ring shrink-0 ${y(t)?"bg-status-success":"bg-surface-border"}`}),e.jsx("span",{className:"text-2xs font-mono truncate",children:t.topic||"new subscription"})]}),e.jsxs("span",{className:"text-2xs text-text-quaternary ml-3",children:["→ ",t.workflow_type||t.tool_name||t.reaction_type]})]}),e.jsx("button",{onClick:b=>{b.stopPropagation(),confirm(`Remove subscription "${t.topic||"new"}"?
|
|
1
|
+
import{j as e,a as f}from"./vendor-query-RUZdMvN6.js";import{a as le,d as ce,b as oe}from"./agents-BJQtJTiz.js";import{E as de,C as xe,u as pe,a as ue,b as me,c as he}from"./CronLabel-DZ5TmIQG.js";import{b as fe,u as ve,l as be}from"./index-C991QfUN.js";import{P as ye}from"./PageHeader-B7YJxa4o.js";import{B as E,m as U,A as ge,R as Y,e as M,T as Z,ap as G,d as V,ba as ee,a8 as je}from"./vendor-icons-Aw7bzBxa.js";import{e as we}from"./knowledge-CnMeg8Rw.js";import{R as te}from"./RunAsSelector-CB0pV097.js";import{u as Ne}from"./workflows-D09ysQF1.js";import{u as _e}from"./yaml-workflows-BFHrxEl4.js";import{u as se}from"./capabilities-qYrUpdid.js";import{u as ke}from"./topics-BcJS4G09.js";import{W as Q}from"./WorkflowPill-C5TEWlfO.js";import{e as Ce,u as Se,f as qe}from"./vendor-react-CdqEC2zv.js";import"./BotPicker-DN8tq7pz.js";import"./bots-DDlU1gMy.js";const X={name:"",description:"",goals:"",rules:"",user_id:"",knowledge_domain:"",subscriptions:[],schedules:[]},Ae={topic:"",filter:"",reaction_type:"durable",workflow_type:"",pipeline_id:"",mcp_prompt:"",server_id:"",tool_name:"",input_mapping:"{}",execute_as:"",enabled:!0},Oe={cron:"0 * * * *",reaction_type:"durable",workflow_type:"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""};function Re(s,a){var o,x,m;const r=(x=(o=s.behaviors)==null?void 0:o.schedules)!=null&&x.length?s.behaviors.schedules.map(i=>({cron:i.cron||"",reaction_type:i.reaction_type||"durable",workflow_type:i.workflow_type||"",pipeline_id:i.pipeline_id||"",server_id:i.server_id||"",tool_name:i.tool_name||"",envelope:i.envelope?JSON.stringify(i.envelope,null,2):"{}",execute_as:i.execute_as||""})):(m=s.behaviors)!=null&&m.cron?[{cron:s.behaviors.cron,reaction_type:"durable",workflow_type:s.workflow_type??"",pipeline_id:"",server_id:"",tool_name:"",envelope:"{}",execute_as:""}]:[];return{name:s.id,description:s.description??"",goals:s.goals??"",rules:s.rules??"",user_id:s.user_id??"",knowledge_domain:s.knowledge_domain??"",subscriptions:a.map(i=>({id:i.id,topic:i.topic,filter:i.filter?JSON.stringify(i.filter,null,2):"",reaction_type:i.reaction_type,workflow_type:i.workflow_type??"",pipeline_id:i.pipeline_id??"",mcp_prompt:i.mcp_prompt??"",server_id:i.server_id??"",tool_name:i.tool_name??"",input_mapping:JSON.stringify(i.input_mapping??{},null,2),execute_as:i.execute_as??"",enabled:i.enabled})),schedules:r}}function Ee(s){var r;const a={};return s.schedules.length>0&&(a.schedules=s.schedules.map(o=>({cron:o.cron,reaction_type:o.reaction_type||"durable",workflow_type:o.reaction_type==="pipeline"?void 0:o.workflow_type,pipeline_id:o.reaction_type==="pipeline"?o.pipeline_id:void 0,envelope:B(o.envelope)??{},execute_as:o.execute_as||void 0})),a.cron=s.schedules[0].cron),{id:s.name,description:s.description||void 0,goals:s.goals||void 0,rules:s.rules||void 0,user_id:s.user_id||void 0,knowledge_domain:s.knowledge_domain||void 0,behaviors:a,workflow_type:((r=s.schedules[0])==null?void 0:r.workflow_type)||void 0,pipeline_id:void 0}}function $e(s){return s.subscriptions.map(a=>({id:a.id,topic:a.topic,filter:a.filter?B(a.filter):void 0,reaction_type:a.reaction_type,workflow_type:a.workflow_type||void 0,pipeline_id:a.pipeline_id||void 0,mcp_prompt:a.mcp_prompt||void 0,server_id:a.server_id||void 0,tool_name:a.tool_name||void 0,input_mapping:B(a.input_mapping)??{},execute_as:a.execute_as||void 0,enabled:a.enabled}))}function B(s){if(s.trim())try{return JSON.parse(s)}catch{return}}function Pe(s,a,r,o){let x;try{x=JSON.parse(s)}catch{x={}}const m=o.includes(a),i=r===""||r===void 0||r===null||Array.isArray(r)&&r.length===0||r==="[]";if(!m&&i){const{[a]:p,...c}=x;return JSON.stringify(c,null,2)}let u=r;if(typeof r=="string")try{const p=JSON.parse(r);Array.isArray(p)&&(u=p)}catch{}return JSON.stringify({...x,[a]:u},null,2)}const S="section-header mt-[3em] first:mt-0",P="label",_="hint",O="input",L="input-json w-full";function Ie({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Give your automation a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:identity"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Identity",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Name *"}),e.jsx("input",{type:"text",value:s.name,onChange:r=>a("name",r.target.value),placeholder:"health-monitor",className:O}),e.jsx("p",{className:_,children:"Lowercase, kebab-case. This appears everywhere."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Description"}),e.jsx("input",{type:"text",value:s.description,onChange:r=>a("description",r.target.value),placeholder:"Watches for workflow failures and captures diagnostics",className:O}),e.jsx("p",{className:_,children:"One sentence that explains what this automation does."})]})]})}function We({form:s,set:a}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Goals define what drives the automation. Rules define what constrains it."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:motivation"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Motivation",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-8",children:[e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Goals"}),e.jsx("textarea",{value:s.goals,onChange:r=>a("goals",r.target.value),placeholder:"Detect failures early, capture diagnostics, alert before cascading",rows:4,className:`${O} resize-none`}),e.jsx("p",{className:_,children:"Primary motivation. What the automation is trying to achieve."})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Rules"}),e.jsx("textarea",{value:s.rules,onChange:r=>a("rules",r.target.value),placeholder:"Never auto-restart failed workflows. Always escalate to humans.",rows:4,className:`${O} resize-none`}),e.jsx("p",{className:_,children:"Guardrails. What it must never do, even when goals suggest it should."})]})]})]})}function Te({form:s,set:a}){const{data:r}=we(),o=(r==null?void 0:r.domains)??[];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Assign a knowledge domain — the automation's memory. It stores context here over time."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:knowledge"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Knowledge",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Knowledge Domain"}),e.jsx("input",{type:"text",value:s.knowledge_domain,onChange:x=>a("knowledge_domain",x.target.value),placeholder:"e.g., system-health, content-review, vendor-data",className:O,list:"domain-suggestions"}),e.jsx("datalist",{id:"domain-suggestions",children:o.map(x=>e.jsx("option",{value:x.domain},x.domain))}),e.jsx("p",{className:_,children:"Choose an existing domain to share memory, or type a new name to create one."})]}),o.length>0&&e.jsxs("div",{children:[e.jsx("label",{className:P,children:"Existing Domains"}),e.jsx("div",{className:"space-y-0.5 mt-2",children:o.map(x=>e.jsxs("button",{type:"button",onClick:()=>a("knowledge_domain",x.domain),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${s.knowledge_domain===x.domain?"border-l-2 border-l-accent bg-accent/5":"hover:bg-surface-hover border-l-2 border-l-transparent"}`,children:[e.jsx(U,{className:"w-3.5 h-3.5 text-text-quaternary shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-sm text-text-primary flex-1",children:x.domain}),e.jsxs("span",{className:"text-2xs text-text-quaternary",children:[x.count," entries"]}),e.jsx("span",{className:"text-2xs text-text-quaternary",children:e.jsx(fe,{date:x.latest})})]},x.domain))})]})]})}function Me({serverId:s,toolName:a,onChange:r}){const{data:o}=se(),x=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[m,i]=f.useState(!1),[u,p]=f.useState(""),c=f.useRef(null),h=f.useRef(null);f.useEffect(()=>{if(!m)return;function t(n){h.current&&!h.current.contains(n.target)&&i(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[m]);const l=a?`${a}`:"",d=m?u:l,y=f.useMemo(()=>{const t=(m?u:"").toLowerCase();return t?x.filter(n=>n.name.toLowerCase().includes(t)||n.serverName.toLowerCase().includes(t)||(n.description??"").toLowerCase().includes(t)):x},[x,u,m]),v=a?x.find(t=>t.serverId===s&&t.name===a):void 0;return e.jsxs("div",{ref:h,className:"relative",children:[e.jsx("input",{ref:c,type:"text",value:d,onFocus:()=>{i(!0),p(l)},onChange:t=>{const n=t.target.value;p(n),n||r("",""),m||i(!0)},placeholder:"Search capabilities...",className:"input font-mono text-sm w-full"}),!m&&(v==null?void 0:v.description)&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-1 italic",children:v.description}),m&&y.length>0&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 max-h-64 overflow-y-auto rounded-md border border-surface-border bg-surface shadow-lg",children:y.map(t=>e.jsxs("button",{type:"button",onClick:()=>{r(t.serverId,t.name),p(t.name),i(!1)},className:`w-full text-left px-3 py-2 hover:bg-surface-hover transition-colors flex items-center gap-3 ${s===t.serverId&&a===t.name?"bg-accent/5":""}`,children:[e.jsx("span",{className:"text-2xs font-mono text-text-primary shrink-0",children:t.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-2xs font-medium shrink-0 bg-accent/10 text-accent",children:[e.jsx(ge,{className:"w-2 h-2",strokeWidth:1.5}),t.serverName]}),t.description&&e.jsx("span",{className:"text-2xs text-text-quaternary truncate",children:t.description})]},`${t.serverId}:${t.name}`))}),m&&y.length===0&&u&&e.jsx("div",{className:"absolute z-[100] left-0 right-0 mt-1 rounded-md border border-surface-border bg-surface shadow-lg px-3 py-4 text-center",children:e.jsxs("p",{className:"text-2xs text-text-quaternary",children:['No capabilities match "',u,'"']})})]})}const Le={durable:"Workflow",pipeline:"Pipeline",capability:"Capability",mcp_query:"MCP Query"},Je=["durable","pipeline","capability","mcp_query"];function ae({reactionType:s,onReactionTypeChange:a,workflowType:r,onWorkflowTypeChange:o,pipelineId:x,onPipelineIdChange:m,serverId:i,toolName:u,onCapabilityChange:p,mcpPrompt:c,onMcpPromptChange:h,availableTypes:l=[...Je]}){const{data:d}=Ne(),y=(d??[]).filter(n=>n.invocable).map(n=>n.workflow_type),{data:v}=_e({status:"active"}),t=((v==null?void 0:v.workflows)??[]).map(n=>({id:n.id,name:n.graph_topic||n.id}));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex gap-1",children:l.map(n=>{const b=s===n;return e.jsx("button",{type:"button",onClick:()=>a(n),className:`px-3 py-1.5 text-2xs font-medium rounded-md transition-colors ${b?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:Le[n]},n)})}),s==="durable"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Workflow *"}),e.jsxs("select",{value:r,onChange:n=>o(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select workflow..."}),y.map(n=>e.jsx("option",{value:n,children:n},n))]})]}),s==="pipeline"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Pipeline *"}),e.jsxs("select",{value:x,onChange:n=>m(n.target.value),className:"input",children:[e.jsx("option",{value:"",children:"Select pipeline..."}),t.map(n=>e.jsx("option",{value:n.id,children:n.name},n.id))]})]}),s==="capability"&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Capability *"}),e.jsx(Me,{serverId:i,toolName:u,onChange:p})]}),s==="mcp_query"&&h&&e.jsxs("div",{children:[e.jsx("label",{className:"label",children:"Prompt *"}),e.jsx("textarea",{value:c??"",onChange:n=>h(n.target.value),placeholder:"Analyze the error and suggest remediation...",rows:3,className:"input resize-none"})]})]})}const Fe={task:"bg-status-active/10 text-status-active",workflow:"bg-accent/15 text-accent",escalation:"bg-status-warning/10 text-status-warning",activity:"bg-status-active/10 text-status-active",knowledge:"bg-accent/10 text-accent",file:"bg-status-draft/10 text-status-draft",agent:"bg-status-success/10 text-status-success",app:"bg-status-error/10 text-status-error",milestone:"bg-accent/10 text-accent"};function De({form:s,set:a}){const{data:r}=ke({limit:200}),{data:o}=se(),x=(r==null?void 0:r.topics)??[],m=f.useMemo(()=>{var t;return((t=o==null?void 0:o.categories)==null?void 0:t.flatMap(n=>n.tools))??[]},[o]),[i,u]=f.useState(0),p=(t,n,b)=>{const g=[...s.subscriptions];g[t]={...g[t],[n]:b},a("subscriptions",g)},c=()=>{a("subscriptions",[...s.subscriptions,{...Ae}]),u(s.subscriptions.length)},h=t=>{a("subscriptions",s.subscriptions.filter((n,b)=>b!==t)),i>=s.subscriptions.length-1&&u(Math.max(0,s.subscriptions.length-2))},l=s.subscriptions,d=l[i],y=t=>t.topic?t.reaction_type==="durable"?!!t.workflow_type:t.reaction_type==="pipeline"?!!t.pipeline_id:t.reaction_type==="mcp_query"?!!t.mcp_prompt:t.reaction_type==="capability"?!!t.server_id&&!!t.tool_name:!1:!1,v=d?x.find(t=>t.topic===d.topic):void 0;return l.length===0?e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Y,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1}),e.jsx("p",{className:"text-sm text-text-tertiary mb-2",children:"No event subscriptions yet"}),e.jsx("p",{className:"text-2xs text-text-quaternary max-w-sm mb-6",children:"Each subscription listens for a topic pattern and runs a workflow when it matches."}),e.jsxs("button",{onClick:c,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3.5 h-3.5"})," Add first subscription"]})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6",children:[e.jsx("p",{className:"text-xs text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the automation runs the configured workflow with the event payload."}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsx(E,{className:"w-3 h-3",strokeWidth:1.5})})]}),e.jsxs("div",{className:"flex gap-8",children:[e.jsxs("div",{className:"w-52 shrink-0 space-y-0.5",children:[l.map((t,n)=>e.jsxs("div",{className:`group/sub flex items-center rounded-md transition-colors ${i===n?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxs("button",{onClick:()=>u(n),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`w-2.5 h-2.5 rounded-full dot-ring shrink-0 ${y(t)?"bg-status-success":"bg-surface-border"}`}),e.jsx("span",{className:"text-2xs font-mono truncate",children:t.topic||"new subscription"})]}),e.jsxs("span",{className:"text-2xs text-text-quaternary ml-3",children:["→ ",t.workflow_type||t.tool_name||t.reaction_type]})]}),e.jsx("button",{onClick:b=>{b.stopPropagation(),confirm(`Remove subscription "${t.topic||"new"}"?
|
|
2
2
|
|
|
3
3
|
This takes effect when you save.`)&&h(n)},className:"opacity-0 group-hover/sub:opacity-100 px-2 text-text-quaternary hover:text-status-error transition-all",title:"Remove",children:e.jsx(Z,{className:"w-3 h-3"})})]},n)),e.jsxs("button",{onClick:c,className:"w-full flex items-center gap-1.5 px-3 py-2 text-2xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3 h-3"})," Add"]})]}),d&&e.jsxs("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"When this event fires"}),e.jsx(Ue,{value:d.topic,onChange:t=>p(i,"topic",t),topics:x}),(v==null?void 0:v.payload_schema)&&e.jsxs("div",{className:"mt-3 p-3 rounded-md bg-surface-sunken border border-surface-border",children:[e.jsx("p",{className:"text-2xs text-text-quaternary mb-1 uppercase tracking-wider font-medium",children:"Payload Schema"}),e.jsx("pre",{className:"text-2xs font-mono text-text-secondary whitespace-pre-wrap overflow-x-auto max-h-40",children:JSON.stringify(v.payload_schema.properties??v.payload_schema,null,2)}),v.description&&e.jsx("p",{className:"text-2xs text-text-tertiary mt-2 italic",children:v.description})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run this reaction"}),e.jsx(ae,{reactionType:d.reaction_type,onReactionTypeChange:t=>p(i,"reaction_type",t),workflowType:d.workflow_type,onWorkflowTypeChange:t=>p(i,"workflow_type",t),pipelineId:d.pipeline_id,onPipelineIdChange:t=>p(i,"pipeline_id",t),serverId:d.server_id,toolName:d.tool_name,onCapabilityChange:(t,n)=>{var $;const b=[...s.subscriptions],g={...b[i],server_id:t,tool_name:n},k=m.find(q=>q.serverId===t&&q.name===n),R=($=k==null?void 0:k.inputSchema)==null?void 0:$.properties;if(R&&n){const q={};for(const w of Object.keys(R))w.startsWith("_")||(q[w]=`{event.data.${w}}`);g.input_mapping=JSON.stringify(q,null,2)}b[i]=g,a("subscriptions",b)},mcpPrompt:d.mcp_prompt,onMcpPromptChange:t=>p(i,"mcp_prompt",t)})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"As identity"}),e.jsx(te,{selected:d.execute_as,onChange:t=>p(i,"execute_as",t)}),e.jsx("p",{className:_,children:"Identity used when invoking the workflow."})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"But only if"}),e.jsx("input",{type:"text",value:d.filter,onChange:t=>p(i,"filter",t.target.value),placeholder:'{"extension": "png"}',className:`${O} font-mono text-xs`}),e.jsx("p",{className:_,children:"JSON filter against event.data. Click an operator to insert:"}),e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:[{label:"equals",value:'{"key": "val"}'},{label:"not equal",value:'{"key": {"$ne": "val"}}'},{label:"in list",value:'{"key": {"$in": ["a", "b"]}}'},{label:"exists",value:'{"key": {"$exists": true}}'}].map(t=>e.jsx("button",{type:"button",onClick:()=>p(i,"filter",t.value),className:"px-2 py-0.5 text-2xs font-mono rounded bg-accent/8 text-accent hover:bg-accent/15 transition-colors",children:t.label},t.label))})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"With this data"}),d.reaction_type==="capability"&&d.tool_name?e.jsx(ze,{tool:m.find(t=>t.serverId===d.server_id&&t.name===d.tool_name),value:d.input_mapping,onChange:t=>p(i,"input_mapping",t),eventSchema:v==null?void 0:v.payload_schema}):e.jsxs(e.Fragment,{children:[e.jsx("textarea",{value:d.input_mapping,onChange:t=>p(i,"input_mapping",t.target.value),rows:10,className:L,placeholder:`{
|
|
4
4
|
"data": {
|
|
@@ -13,4 +13,4 @@ This takes effect when you save.`)&&h(n)},className:"opacity-0 group-hover/sub:o
|
|
|
13
13
|
This takes effect when you save.`)&&i(h)},className:"opacity-0 group-hover/sched:opacity-100 px-2 text-text-quaternary hover:text-status-error transition-all",title:"Remove",children:e.jsx(Z,{className:"w-3 h-3"})})]},h)),e.jsxs("button",{onClick:m,className:"w-full flex items-center gap-1.5 px-3 py-2 text-2xs text-accent hover:text-accent-hover transition-colors",children:[e.jsx(M,{className:"w-3 h-3"})," Add"]})]}),p&&e.jsxs("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run every"}),e.jsx("input",{type:"text",value:p.cron,onChange:c=>x(r,"cron",c.target.value),placeholder:"0 * * * *",className:`${O} font-mono`}),p.cron&&e.jsx("p",{className:"text-2xs text-accent/80 mt-1",children:z(p.cron)}),e.jsx("div",{className:"flex gap-3 mt-2 overflow-x-auto",children:Ye.map(c=>e.jsx("button",{type:"button",onClick:()=>x(r,"cron",c),className:`text-2xs font-mono whitespace-nowrap transition-colors ${p.cron===c?"text-accent font-medium":"text-accent/50 hover:text-accent"}`,children:z(c)},c))})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"Run this reaction"}),e.jsx(ae,{reactionType:p.reaction_type,onReactionTypeChange:c=>x(r,"reaction_type",c),workflowType:p.workflow_type,onWorkflowTypeChange:c=>x(r,"workflow_type",c),pipelineId:p.pipeline_id,onPipelineIdChange:c=>x(r,"pipeline_id",c),serverId:p.server_id,toolName:p.tool_name,onCapabilityChange:(c,h)=>{x(r,"server_id",c),x(r,"tool_name",h)},availableTypes:["durable","pipeline","capability"]})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"As identity"}),e.jsx(te,{selected:p.execute_as,onChange:c=>x(r,"execute_as",c)}),e.jsx("p",{className:_,children:"Identity used when invoking."})]}),e.jsxs("div",{children:[e.jsx("label",{className:S,children:"With this data"}),e.jsx("textarea",{value:p.envelope,onChange:c=>x(r,"envelope",c.target.value),rows:10,className:L,placeholder:`{
|
|
14
14
|
"data": { "source": "cron" }
|
|
15
15
|
}`}),e.jsx("p",{className:_,children:"Static payload passed to the workflow on each invocation."})]})]})]})]})}function W({icon:s,color:a,title:r,children:o}){return e.jsxs("div",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 pb-1.5 border-b border-surface-border/40",children:[e.jsx(s,{className:`w-3.5 h-3.5 ${a}`,strokeWidth:1.5}),e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-widest text-accent/80",children:r})]}),e.jsx("div",{className:"pl-5.5",children:o})]})}function T({label:s,children:a}){return e.jsxs("div",{className:"flex gap-3 py-0.5",children:[e.jsx("span",{className:"text-2xs text-text-quaternary w-20 shrink-0",children:s}),e.jsx("span",{className:"text-xs text-text-primary",children:a})]})}function Ke({form:s}){return e.jsxs("div",{children:[e.jsxs(W,{icon:V,color:"text-accent",title:"Identity",children:[e.jsx(T,{label:"Name",children:s.name||"—"}),s.description&&e.jsx(T,{label:"Description",children:s.description})]}),(s.goals||s.rules)&&e.jsxs(W,{icon:ee,color:"text-accent",title:"Motivation",children:[s.goals&&e.jsx(T,{label:"Goals",children:s.goals}),s.rules&&e.jsx(T,{label:"Rules",children:s.rules})]}),e.jsx(W,{icon:U,color:"text-accent",title:"Knowledge",children:e.jsx(T,{label:"Domain",children:s.knowledge_domain||"None"})}),e.jsxs("div",{className:"grid grid-cols-2 gap-x-10",children:[e.jsx(W,{icon:Y,color:"text-accent",title:`Subscriptions (${s.subscriptions.length})`,children:s.subscriptions.length===0?e.jsx("span",{className:"text-2xs text-text-quaternary",children:"None configured"}):e.jsx("div",{className:"divide-y divide-surface-border/30",children:s.subscriptions.map((a,r)=>e.jsxs("div",{className:"flex items-center py-1.5",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(de,{topic:a.topic||"unset"})}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{className:"text-text-quaternary text-2xs",children:"→"}),a.workflow_type?e.jsx(Q,{type:a.workflow_type}):e.jsx("span",{className:"text-2xs text-text-quaternary",children:a.reaction_type})]})]},r))})}),e.jsx(W,{icon:G,color:"text-accent",title:`Schedules (${s.schedules.length})`,children:s.schedules.length===0?e.jsx("span",{className:"text-2xs text-text-quaternary",children:"None configured"}):e.jsx("div",{className:"divide-y divide-surface-border/30",children:s.schedules.map((a,r)=>e.jsxs("div",{className:"flex items-center py-1.5",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(xe,{cron:a.cron})}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{className:"text-text-quaternary text-2xs",children:"→"}),a.workflow_type?e.jsx(Q,{type:a.workflow_type}):e.jsx("span",{className:"text-2xs text-text-quaternary",children:"no workflow"})]})]},r))})})]}),e.jsx("div",{className:"border-l-2 border-status-success/30 pl-3 py-2 mt-6",children:e.jsx("p",{className:"text-2xs text-text-tertiary leading-relaxed",children:"After saving, subscriptions and schedules activate immediately. You can pause the automation anytime."})})]})}const He=[{id:1,label:"Identity",icon:V},{id:2,label:"Motivation",icon:ee},{id:3,label:"Knowledge",icon:U},{id:4,label:"Subscriptions",icon:Y},{id:5,label:"Schedules",icon:G},{id:6,label:"Review",icon:je}];function pt(){var H;const{id:s}=Ce(),a=!s,r=Se(),{data:o}=ve(),x=be(),i=(x!==null?x:!!((H=o==null?void 0:o.ai)!=null&&H.enabled))?"Agent":"Automation",{data:u,isLoading:p}=le(a?null:s),{data:c}=pe(a?null:s),h=ce(),l=oe(),d=ue(),y=me(),v=he(),[t,n]=f.useState(X),[b,g]=f.useState(!1),[k,R]=f.useState(""),[$,q]=qe(),w=parseInt($.get("step")||"1",10),ne=f.useCallback(j=>{q(N=>{const A=new URLSearchParams(N);return A.set("step",String(j)),A},{replace:!0})},[q]);f.useEffect(()=>{if(!b){if(a){n(X),g(!0);return}u&&c&&(n(Re(u,c.subscriptions??[])),g(!0))}},[u,c,a,b]);const I=(j,N)=>n(A=>({...A,[j]:N})),ie=async()=>{R("");try{const j=Ee(t);let N=s;a?N=(await h.mutateAsync(j)).id:await l.mutateAsync({id:s,...j});const A=$e(t),re=(c==null?void 0:c.subscriptions)??[],J=new Set(re.map(C=>C.id));for(const C of A)if(C.id&&J.has(C.id)){const{id:F,...D}=C;await y.mutateAsync({agentId:N,subId:F,...D}),J.delete(F)}else{const{id:F,...D}=C;await d.mutateAsync({agentId:N,...D})}for(const C of J)await v.mutateAsync({agentId:N,subId:C});r(`/agents/${N}`)}catch(j){R(j.message)}};if(!a&&p)return e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-48"}),e.jsx("div",{className:"h-60 bg-surface-sunken rounded"})]});const K=h.isPending||l.isPending;return e.jsxs("div",{children:[e.jsx(ye,{title:a?`New ${i}`:`${i}: ${(u==null?void 0:u.id)??""}`,docsHash:"#docs:agents.md"}),e.jsxs("div",{className:"flex gap-10",children:[e.jsxs("nav",{className:"w-44 shrink-0 sticky top-0 self-start pt-2",children:[e.jsx("div",{className:"space-y-0.5",children:He.map(j=>{const N=j.icon,A=w===j.id;return e.jsxs("button",{onClick:()=>ne(j.id),className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-md text-left transition-colors ${A?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsx(N,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"text-xs font-medium",children:j.label})]},j.id)})}),e.jsxs("div",{className:"mt-8 pt-4 border-t border-surface-border space-y-2",children:[e.jsx("button",{onClick:ie,disabled:!t.name.trim()||K,className:"w-full btn-primary text-xs disabled:opacity-50",children:K?"Saving...":a?`Create ${i}`:"Save"}),e.jsx("button",{onClick:()=>r(a?"/agents":`/agents/${s}`),className:"w-full btn-ghost text-xs",children:"Cancel"})]}),k&&e.jsx("p",{className:"text-xs text-status-error mt-3",children:k})]}),e.jsxs("div",{className:"flex-1 min-w-0 pt-2",children:[w===1&&e.jsx(Ie,{form:t,set:I}),w===2&&e.jsx(We,{form:t,set:I}),w===3&&e.jsx(Te,{form:t,set:I}),w===4&&e.jsx(De,{form:t,set:I}),w===5&&e.jsx(Ge,{form:t,set:I}),w===6&&e.jsx(Ke,{form:t})]})]})]})}export{pt as AgentConfigPage};
|
|
16
|
-
//# sourceMappingURL=AgentConfigPage-
|
|
16
|
+
//# sourceMappingURL=AgentConfigPage-CkMv-cTV.js.map
|