@hotmeshio/long-tail 0.26.0 → 0.28.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/README.md +9 -2
- package/build/api/settings.d.ts +4 -1
- package/build/api/settings.js +7 -1
- package/build/index.d.ts +4 -0
- package/build/index.js +35 -8
- package/build/lib/db/config-lock.d.ts +10 -0
- package/build/lib/db/config-lock.js +28 -0
- package/build/lib/db/schemas/041_machine_lines.sql +26 -0
- package/build/lib/events/browser-view.js +8 -2
- package/build/lib/events/nats.d.ts +11 -0
- package/build/lib/events/nats.js +33 -2
- package/build/lib/events/publish.d.ts +33 -0
- package/build/lib/events/publish.js +52 -1
- package/build/lib/machines/index.d.ts +1 -0
- package/build/lib/machines/index.js +1 -0
- package/build/lib/machines/line.d.ts +4 -1
- package/build/lib/machines/line.js +18 -1
- package/build/lib/machines/protocol/codec.d.ts +24 -0
- package/build/lib/machines/protocol/codec.js +10 -0
- package/build/lib/machines/protocol/constants.d.ts +1 -1
- package/build/lib/machines/protocol/constants.js +1 -1
- package/build/lib/machines/protocol/contract.js +12 -3
- package/build/lib/machines/site/edge-account.d.ts +11 -0
- package/build/lib/machines/site/edge-account.js +24 -0
- package/build/lib/machines/site/mosquitto-conf.d.ts +5 -4
- package/build/lib/machines/site/mosquitto-conf.js +31 -16
- package/build/lib/machines/site/site-conf.d.ts +16 -6
- package/build/lib/machines/site/site-conf.js +39 -13
- package/build/lib/machines/transport/callback-feed.d.ts +1 -0
- package/build/lib/machines/transport/callback-feed.js +4 -1
- package/build/lib/machines/transport/delivery.d.ts +3 -4
- package/build/lib/machines/transport/delivery.js +3 -8
- package/build/lib/machines/transport/index.d.ts +2 -0
- package/build/lib/machines/transport/index.js +2 -0
- package/build/lib/machines/transport/memory.d.ts +2 -0
- package/build/lib/machines/transport/memory.js +6 -0
- package/build/lib/machines/transport/mqtt-bus.d.ts +2 -0
- package/build/lib/machines/transport/mqtt-bus.js +4 -0
- package/build/lib/machines/transport/nats-bus.d.ts +8 -13
- package/build/lib/machines/transport/nats-bus.js +26 -43
- package/build/lib/machines/transport/nats-feed.d.ts +1 -0
- package/build/lib/machines/transport/nats-feed.js +6 -3
- package/build/lib/machines/transport/pubsub-feed.d.ts +18 -0
- package/build/lib/machines/transport/pubsub-feed.js +42 -0
- package/build/lib/machines/transport/stream-bus.d.ts +42 -0
- package/build/lib/machines/transport/stream-bus.js +61 -0
- package/build/lib/machines/transport/streams.d.ts +10 -14
- package/build/lib/machines/transport/streams.js +18 -61
- package/build/lib/messaging/config.d.ts +25 -0
- package/build/lib/messaging/config.js +55 -0
- package/build/lib/messaging/constants.d.ts +26 -0
- package/build/lib/messaging/constants.js +26 -0
- package/build/lib/messaging/index.d.ts +24 -0
- package/build/lib/messaging/index.js +65 -0
- package/build/lib/messaging/memory.d.ts +16 -0
- package/build/lib/messaging/memory.js +147 -0
- package/build/lib/messaging/nats/permissions.d.ts +13 -0
- package/build/lib/messaging/nats/permissions.js +22 -0
- package/build/lib/messaging/nats/provider.d.ts +30 -0
- package/build/lib/messaging/nats/provider.js +77 -0
- package/build/lib/messaging/nats/render-conf.d.ts +68 -0
- package/build/lib/messaging/nats/render-conf.js +58 -0
- package/build/lib/messaging/nats/streams.d.ts +26 -0
- package/build/lib/messaging/nats/streams.js +97 -0
- package/build/lib/messaging/subjects.d.ts +8 -0
- package/build/lib/messaging/subjects.js +25 -0
- package/build/modules/machines.d.ts +8 -0
- package/build/modules/machines.js +16 -0
- package/build/routes/index.js +2 -0
- package/build/routes/machines.d.ts +2 -0
- package/build/routes/machines.js +220 -0
- package/build/scripts/bambu-boat.d.ts +17 -0
- package/build/scripts/bambu-boat.js +134 -0
- package/build/scripts/bambu-print.d.ts +18 -0
- package/build/scripts/bambu-print.js +114 -0
- package/build/services/machines/commands.d.ts +5 -5
- package/build/services/machines/commands.js +3 -2
- package/build/services/machines/config.d.ts +8 -1
- package/build/services/machines/config.js +17 -7
- package/build/services/machines/contracts.d.ts +29 -2
- package/build/services/machines/contracts.js +12 -3
- package/build/services/machines/gateway/actions.d.ts +2 -1
- package/build/services/machines/gateway/admission.d.ts +15 -3
- package/build/services/machines/gateway/admission.js +29 -14
- package/build/services/machines/gateway/dispatcher.d.ts +19 -3
- package/build/services/machines/gateway/dispatcher.js +61 -13
- package/build/services/machines/gateway/executor.d.ts +18 -4
- package/build/services/machines/gateway/executor.js +99 -34
- package/build/services/machines/gateway/gateway.d.ts +22 -1
- package/build/services/machines/gateway/gateway.js +83 -28
- package/build/services/machines/gateway/index.d.ts +3 -0
- package/build/services/machines/gateway/index.js +3 -0
- package/build/services/machines/gateway/inspect.d.ts +17 -0
- package/build/services/machines/gateway/inspect.js +68 -0
- package/build/services/machines/gateway/lifecycle.d.ts +21 -0
- package/build/services/machines/gateway/lifecycle.js +89 -0
- package/build/services/machines/gateway/log.d.ts +8 -0
- package/build/services/machines/gateway/log.js +18 -0
- package/build/services/machines/gateway/pacing.d.ts +14 -0
- package/build/services/machines/gateway/pacing.js +27 -2
- package/build/services/machines/gateway/plan-escalation.js +21 -7
- package/build/services/machines/gateway/plan-machine.d.ts +5 -4
- package/build/services/machines/gateway/plan-machine.js +70 -19
- package/build/services/machines/gateway/project.d.ts +9 -0
- package/build/services/machines/gateway/project.js +55 -0
- package/build/services/machines/gateway/receipts.d.ts +3 -0
- package/build/services/machines/gateway/receipts.js +3 -1
- package/build/services/machines/gateway/reconcile.d.ts +2 -0
- package/build/services/machines/gateway/reconcile.js +16 -3
- package/build/services/machines/gateway/registration.js +1 -1
- package/build/services/machines/gateway/reply-waiter.d.ts +6 -3
- package/build/services/machines/gateway/reply-waiter.js +37 -16
- package/build/services/machines/gateway/state.d.ts +50 -4
- package/build/services/machines/gateway/state.js +77 -10
- package/build/services/machines/gateway/wire.d.ts +58 -0
- package/build/services/machines/gateway/wire.js +171 -0
- package/build/services/machines/index.d.ts +3 -0
- package/build/services/machines/index.js +2 -0
- package/build/services/machines/leadership.d.ts +17 -4
- package/build/services/machines/leadership.js +43 -18
- package/build/services/machines/line-index.d.ts +16 -0
- package/build/services/machines/line-index.js +39 -0
- package/build/services/machines/registry-sql.d.ts +31 -0
- package/build/services/machines/registry-sql.js +110 -0
- package/build/services/machines/registry-sync.d.ts +31 -0
- package/build/services/machines/registry-sync.js +81 -0
- package/build/services/machines/registry.d.ts +77 -0
- package/build/services/machines/registry.js +158 -0
- package/build/services/machines/rows.js +26 -2
- package/build/services/machines/select.d.ts +9 -2
- package/build/services/machines/select.js +20 -7
- package/build/services/machines/surface.d.ts +45 -5
- package/build/services/machines/surface.js +102 -16
- package/build/services/machines/testing/fake-long-tail.d.ts +1 -0
- package/build/services/machines/testing/fake-long-tail.js +6 -3
- package/build/start/adapters.js +11 -2
- package/build/start/apply-report.d.ts +1 -1
- package/build/start/apply-report.js +3 -25
- package/build/start/index.js +23 -5
- package/build/system/index.js +13 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +22 -22
- package/build/system/mcp-servers/human-queue-schemas.d.ts +7 -7
- package/build/system/mcp-servers/machines-schemas.d.ts +35 -0
- package/build/system/mcp-servers/machines-schemas.js +35 -0
- package/build/system/mcp-servers/machines.d.ts +20 -0
- package/build/system/mcp-servers/machines.js +154 -0
- package/build/system/seed/tool-manifests-machines.d.ts +2 -0
- package/build/system/seed/tool-manifests-machines.js +88 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/events.d.ts +6 -1
- package/build/types/index.d.ts +2 -0
- package/build/types/machines-view.d.ts +159 -0
- package/build/types/machines-view.js +7 -0
- package/build/types/machines.d.ts +6 -1
- package/build/types/messaging.d.ts +72 -0
- package/build/types/messaging.js +11 -0
- package/build/types/startup.d.ts +26 -1
- package/dashboard/dist/assets/{AdminDashboard-DlItqxFS.js → AdminDashboard-Bm7VG65H.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DlItqxFS.js.map → AdminDashboard-Bm7VG65H.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-BUmT4a7n.js → AgentConfigPage-aJF7Sdbc.js} +6 -6
- package/dashboard/dist/assets/{AgentConfigPage-BUmT4a7n.js.map → AgentConfigPage-aJF7Sdbc.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-Cww8rlBi.js → AgentDetailPage-GwwghhxT.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-Cww8rlBi.js.map → AgentDetailPage-GwwghhxT.js.map} +1 -1
- package/dashboard/dist/assets/AgentsPage-DVvCzZyg.js +2 -0
- package/dashboard/dist/assets/{AgentsPage-C9UuUKhr.js.map → AgentsPage-DVvCzZyg.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-Cxmcji_K.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-DrvfXz70.js.map → AvailableEscalationsPage-Cxmcji_K.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-CDq9XRMp.js → BotPicker-CofRxk4L.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-CDq9XRMp.js.map → BotPicker-CofRxk4L.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-jsvqtrEA.js → BulkAssignModal-BARWuz4L.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-jsvqtrEA.js.map → BulkAssignModal-BARWuz4L.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-CSCrI6B1.js → CapabilitiesPage-BJAWVNEx.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-CSCrI6B1.js.map → CapabilitiesPage-BJAWVNEx.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-uD9mn-CQ.js → CollapsibleSection-CtgoaG75.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-uD9mn-CQ.js.map → CollapsibleSection-CtgoaG75.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-BRmx2hA4.js → ConfirmDeleteModal-BYXXBWs6.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-BRmx2hA4.js.map → ConfirmDeleteModal-BYXXBWs6.js.map} +1 -1
- package/dashboard/dist/assets/{ConnectedAppsPage-DlMzE5a-.js → ConnectedAppsPage-D0JkzWa7.js} +2 -2
- package/dashboard/dist/assets/{ConnectedAppsPage-DlMzE5a-.js.map → ConnectedAppsPage-D0JkzWa7.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-sRuM4eM5.js → CountdownTimer-BcFxdZYN.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-sRuM4eM5.js.map → CountdownTimer-BcFxdZYN.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-bLYydwqa.js → CredentialsPage-DPSY20rV.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-bLYydwqa.js.map → CredentialsPage-DPSY20rV.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-D_ATDL2N.js → CronLabel-Dg_Oew_Y.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-D_ATDL2N.js.map → CronLabel-Dg_Oew_Y.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-u1JGfR9G.js → DropZone-Cl_Flb16.js} +2 -2
- package/dashboard/dist/assets/{DropZone-u1JGfR9G.js.map → DropZone-Cl_Flb16.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-groSMfqB.js → ElapsedCell-Dm3G5fK2.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-groSMfqB.js.map → ElapsedCell-Dm3G5fK2.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-D-F3_A9m.js → EntityTimelinePanel-CrEEP04e.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-D-F3_A9m.js.map → EntityTimelinePanel-CrEEP04e.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-Bad6Jrmr.js → EscalationListSchemaPage-wOInXcjs.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-Bad6Jrmr.js.map → EscalationListSchemaPage-wOInXcjs.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-BKi_npI9.js → EscalationSchemaPage-CrIj_g9d.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-BKi_npI9.js.map → EscalationSchemaPage-CrIj_g9d.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTimeline-DQUUm3b1.js → EscalationTimeline-CeAsl5IT.js} +2 -2
- package/dashboard/dist/assets/{EscalationTimeline-DQUUm3b1.js.map → EscalationTimeline-CeAsl5IT.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-3mhXh77a.js → EscalationTitleSelect-D8qpCYiy.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-3mhXh77a.js.map → EscalationTitleSelect-D8qpCYiy.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-Qaov-uML.js → EscalationsOverview-CvaqVPsr.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-Qaov-uML.js.map → EscalationsOverview-CvaqVPsr.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-V4RF_n58.js → EventTable-Be0JuEl6.js} +2 -2
- package/dashboard/dist/assets/{EventTable-V4RF_n58.js.map → EventTable-Be0JuEl6.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-BVyAjIgv.js +2 -0
- package/dashboard/dist/assets/FilterBar-BVyAjIgv.js.map +1 -0
- package/dashboard/dist/assets/{GraphInvokePage-Djslhf96.js → GraphInvokePage-D_QigJeD.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-Djslhf96.js.map → GraphInvokePage-D_QigJeD.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-EjcNxlKx.js → HomePage-C1haeuNy.js} +2 -2
- package/dashboard/dist/assets/{HomePage-EjcNxlKx.js.map → HomePage-C1haeuNy.js.map} +1 -1
- package/dashboard/dist/assets/LinePage-CWD5pv1g.js +5 -0
- package/dashboard/dist/assets/LinePage-CWD5pv1g.js.map +1 -0
- package/dashboard/dist/assets/LinesPage-NqChsKcO.js +3 -0
- package/dashboard/dist/assets/LinesPage-NqChsKcO.js.map +1 -0
- package/dashboard/dist/assets/{ListToolbar-RrEAePOX.js → ListToolbar-BZCNrTh6.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-RrEAePOX.js.map → ListToolbar-BZCNrTh6.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-8gqiL3Vj.js → McpOverview-yJTYnh1z.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-8gqiL3Vj.js.map → McpOverview-yJTYnh1z.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-COyn6Ak5.js → McpQueryDetailPage-ChuLpJ4u.js} +3 -3
- package/dashboard/dist/assets/{McpQueryDetailPage-COyn6Ak5.js.map → McpQueryDetailPage-ChuLpJ4u.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-Dj6Qj72w.js → McpQueryPage-9S-v9soF.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-Dj6Qj72w.js.map → McpQueryPage-9S-v9soF.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-BhrcfxD5.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-80fQn9iX.js.map → McpRunDetailPage-BhrcfxD5.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-DaSsI-EM.js → McpRunsPage-C5_i8_Zx.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-DaSsI-EM.js.map → McpRunsPage-C5_i8_Zx.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-C5epAgq6.js → NamespacePill-OTZD2hzt.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-C5epAgq6.js.map → NamespacePill-OTZD2hzt.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-BSu1o2gB.js → OperationsPage-C03CeU5P.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-BSu1o2gB.js.map → OperationsPage-C03CeU5P.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-HFI4WGIV.js → OperatorDashboard-BzC134Jt.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-HFI4WGIV.js.map → OperatorDashboard-BzC134Jt.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-BSWIspNB.js → PageHeader-Hx8APPwE.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-BSWIspNB.js.map → PageHeader-Hx8APPwE.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-DDjopQ-k.js → PageHeaderWithStats-BEQYYBJv.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-DDjopQ-k.js.map → PageHeaderWithStats-BEQYYBJv.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-D0qlBuGi.js → PersonaDetailPage-D0mY9L6j.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-D0qlBuGi.js.map → PersonaDetailPage-D0mY9L6j.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-BJClu-5H.js → PersonasPage-FFlm5Eug.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-BJClu-5H.js.map → PersonasPage-FFlm5Eug.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-CucNZn_w.js → PortalPage-Cpc25uO-.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-CucNZn_w.js.map → PortalPage-Cpc25uO-.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-B9wMw0RV.js → ProcessDetailPage-Di2J7KwY.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-B9wMw0RV.js.map → ProcessDetailPage-Di2J7KwY.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-B6k4RpmR.js → ProcessesListPage-BEXwU3Z0.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-B6k4RpmR.js.map → ProcessesListPage-BEXwU3Z0.js.map} +1 -1
- package/dashboard/dist/assets/{ResolverForm-ZVufJ4G-.js → ResolverForm-2ks-3jXC.js} +6 -6
- package/dashboard/dist/assets/{ResolverForm-ZVufJ4G-.js.map → ResolverForm-2ks-3jXC.js.map} +1 -1
- package/dashboard/dist/assets/{RoleDetailPage-CTbq0mz4.js → RoleDetailPage-DqoOk0xc.js} +3 -3
- package/dashboard/dist/assets/{RoleDetailPage-CTbq0mz4.js.map → RoleDetailPage-DqoOk0xc.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-CoETDpjF.js → RolePill-R5_ctGFy.js} +2 -2
- package/dashboard/dist/assets/{RolePill-CoETDpjF.js.map → RolePill-R5_ctGFy.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-DBKxeam4.js → RolesPage-CPmo8Srr.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-DBKxeam4.js.map → RolesPage-CPmo8Srr.js.map} +1 -1
- package/dashboard/dist/assets/{RosterWidget-BkLAwEYB.js → RosterWidget-D2yovCKw.js} +2 -2
- package/dashboard/dist/assets/{RosterWidget-BkLAwEYB.js.map → RosterWidget-D2yovCKw.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-D2DC4iDf.js → RunAsSelector-CMv96On6.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-D2DC4iDf.js.map → RunAsSelector-CMv96On6.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-BlKleaT0.js → ScanCodesPage-CA6cTT-M.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-BlKleaT0.js.map → ScanCodesPage-CA6cTT-M.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CTW6gofi.js → ScanSchemeDetailPage-DnctN5-H.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CTW6gofi.js.map → ScanSchemeDetailPage-DnctN5-H.js.map} +1 -1
- package/dashboard/dist/assets/{ScanStationPage-DPRjSPyT.js → ScanStationPage-Bk8RwkKL.js} +2 -2
- package/dashboard/dist/assets/{ScanStationPage-DPRjSPyT.js.map → ScanStationPage-Bk8RwkKL.js.map} +1 -1
- package/dashboard/dist/assets/{ScopeBadge-CGsTtqFr.js → ScopeBadge-BXZ084nD.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-CGsTtqFr.js.map → ScopeBadge-BXZ084nD.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CkmX3-Gu.js → StickyPagination-B0FSuUgs.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CkmX3-Gu.js.map → StickyPagination-B0FSuUgs.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-Xm_n510s.js → StreamMessageDetail-BwZEvMpP.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-Xm_n510s.js.map → StreamMessageDetail-BwZEvMpP.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-De48aJan.js → SwimlaneTimeline-BDVQEaMw.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-De48aJan.js.map → SwimlaneTimeline-BDVQEaMw.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-S7UuVT_M.js → TagInput-DjPUDp2M.js} +2 -2
- package/dashboard/dist/assets/{TagInput-S7UuVT_M.js.map → TagInput-DjPUDp2M.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-HycMx3O9.js → TaskDetailPage-BOlv3iGB.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-HycMx3O9.js.map → TaskDetailPage-BOlv3iGB.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-BlHNpYiZ.js → TaskQueuePill-D-4Ynf3K.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-BlHNpYiZ.js.map → TaskQueuePill-D-4Ynf3K.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-OIcFFp1C.js → TasksListPage-e2teY0bD.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-OIcFFp1C.js.map → TasksListPage-e2teY0bD.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-OTC_55oZ.js → TimeAgo-Cvkpf_b3.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-OTC_55oZ.js.map → TimeAgo-Cvkpf_b3.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-CAwIj_AI.js → TimestampCell-B3btAV0N.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-CAwIj_AI.js.map → TimestampCell-B3btAV0N.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-D40uLM_v.js → ToolPill-GsKQ80CO.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-D40uLM_v.js.map → ToolPill-GsKQ80CO.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-8Vf6pfw4.js → ToolTestPanel-B03nebR7.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-8Vf6pfw4.js.map → ToolTestPanel-B03nebR7.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-iZW8rK9L.js → TopicDetailPage-DBRWne3O.js} +3 -3
- package/dashboard/dist/assets/{TopicDetailPage-iZW8rK9L.js.map → TopicDetailPage-DBRWne3O.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-CqiEcj-W.js → TopicsPage-CVe2M9HD.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-CqiEcj-W.js.map → TopicsPage-CVe2M9HD.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-DQFjuoib.js → UserName-B_q_qp6V.js} +2 -2
- package/dashboard/dist/assets/{UserName-DQFjuoib.js.map → UserName-B_q_qp6V.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-Bh_dr9tM.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-Di08wCbs.js.map → WorkflowExecutionPage-Bh_dr9tM.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-DJLcK_CM.js → WorkflowPill-D7244fKp.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-DJLcK_CM.js.map → WorkflowPill-D7244fKp.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-Bb8HlrTJ.js → WorkflowsDashboard-DA6Mj7qH.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-Bb8HlrTJ.js.map → WorkflowsDashboard-DA6Mj7qH.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-Dta1kurk.js → WorkflowsOverview-B1kBLj-a.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-Dta1kurk.js.map → WorkflowsOverview-B1kBLj-a.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CfAajg68.js → YamlWorkflowDetailPage-6GJM8QIX.js} +8 -8
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CfAajg68.js.map → YamlWorkflowDetailPage-6GJM8QIX.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-CQFUzT4t.js → YamlWorkflowsPage-Bu811C7f.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-CQFUzT4t.js.map → YamlWorkflowsPage-Bu811C7f.js.map} +1 -1
- package/dashboard/dist/assets/{agents-PuftRTB2.js → agents-MPk_GnYz.js} +2 -2
- package/dashboard/dist/assets/{agents-PuftRTB2.js.map → agents-MPk_GnYz.js.map} +1 -1
- package/dashboard/dist/assets/{bots-BmEiPAWY.js → bots-2RihE2Tc.js} +2 -2
- package/dashboard/dist/assets/{bots-BmEiPAWY.js.map → bots-2RihE2Tc.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-CRii4Soa.js → capabilities-CC4iwJ1P.js} +2 -2
- package/dashboard/dist/assets/{capabilities-CRii4Soa.js.map → capabilities-CC4iwJ1P.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-DO_czaYo.js → controlplane-Bmkic8BH.js} +2 -2
- package/dashboard/dist/assets/{controlplane-DO_czaYo.js.map → controlplane-Bmkic8BH.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-CzCquCPh.js → escalation-columns-B0lhUUrQ.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-CzCquCPh.js.map → escalation-columns-B0lhUUrQ.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-items-Cy0ZgJqV.js → escalation-items-7WFpPo46.js} +2 -2
- package/dashboard/dist/assets/{escalation-items-Cy0ZgJqV.js.map → escalation-items-7WFpPo46.js.map} +1 -1
- package/dashboard/dist/assets/index-B9uv-euR.css +1 -0
- package/dashboard/dist/assets/{index-DhSCCpqM.js → index-B_XV1rwu.js} +2 -2
- package/dashboard/dist/assets/{index-DhSCCpqM.js.map → index-B_XV1rwu.js.map} +1 -1
- package/dashboard/dist/assets/{index-Cx8xb-oU.js → index-C2CLfGwL.js} +2 -2
- package/dashboard/dist/assets/{index-Cx8xb-oU.js.map → index-C2CLfGwL.js.map} +1 -1
- package/dashboard/dist/assets/{index-Cga5IW3D.js → index-C3AeFihz.js} +2 -2
- package/dashboard/dist/assets/{index-Cga5IW3D.js.map → index-C3AeFihz.js.map} +1 -1
- package/dashboard/dist/assets/{index-DiaRlFYI.js → index-CBri8fYM.js} +2 -2
- package/dashboard/dist/assets/{index-DiaRlFYI.js.map → index-CBri8fYM.js.map} +1 -1
- package/dashboard/dist/assets/{index-CL_1VpGb.js → index-CRWsB7ZC.js} +2 -2
- package/dashboard/dist/assets/{index-CL_1VpGb.js.map → index-CRWsB7ZC.js.map} +1 -1
- package/dashboard/dist/assets/{index-XntldBd0.js → index-CTOv3G7a.js} +2 -2
- package/dashboard/dist/assets/{index-XntldBd0.js.map → index-CTOv3G7a.js.map} +1 -1
- package/dashboard/dist/assets/{index-CfP2nKRc.js → index-CcArGkzI.js} +3 -3
- package/dashboard/dist/assets/{index-CfP2nKRc.js.map → index-CcArGkzI.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dz6R8-Dw.js → index-CkMHS-hG.js} +25 -25
- package/dashboard/dist/assets/index-CkMHS-hG.js.map +1 -0
- package/dashboard/dist/assets/index-CmsmwCyv.js +2 -0
- package/dashboard/dist/assets/{index-4YaDUcKd.js.map → index-CmsmwCyv.js.map} +1 -1
- package/dashboard/dist/assets/{index-2SM2_onB.js → index-CvJsvqIc.js} +2 -2
- package/dashboard/dist/assets/{index-2SM2_onB.js.map → index-CvJsvqIc.js.map} +1 -1
- package/dashboard/dist/assets/{index-Rwqrflm-.js → index-D-ilRyfy.js} +2 -2
- package/dashboard/dist/assets/{index-Rwqrflm-.js.map → index-D-ilRyfy.js.map} +1 -1
- package/dashboard/dist/assets/{index-CZ7A3AcD.js → index-DSUtfDXx.js} +2 -2
- package/dashboard/dist/assets/{index-CZ7A3AcD.js.map → index-DSUtfDXx.js.map} +1 -1
- package/dashboard/dist/assets/{index-jL2K6us4.js → index-Da6ycKyf.js} +2 -2
- package/dashboard/dist/assets/{index-jL2K6us4.js.map → index-Da6ycKyf.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-CeUqGPuo.js → knowledge-Bpbg20DC.js} +2 -2
- package/dashboard/dist/assets/{knowledge-CeUqGPuo.js.map → knowledge-Bpbg20DC.js.map} +1 -1
- package/dashboard/dist/assets/machines-BqOZZU-3.js +2 -0
- package/dashboard/dist/assets/machines-BqOZZU-3.js.map +1 -0
- package/dashboard/dist/assets/{mcp-Cx96NTeD.js → mcp-CmcUXYce.js} +2 -2
- package/dashboard/dist/assets/{mcp-Cx96NTeD.js.map → mcp-CmcUXYce.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-XAzWl0gm.js → mcp-query-C8buQxN9.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-XAzWl0gm.js.map → mcp-query-C8buQxN9.js.map} +1 -1
- package/dashboard/dist/assets/{personas--4kjwyOw.js → personas-C2n5oDmY.js} +2 -2
- package/dashboard/dist/assets/{personas--4kjwyOw.js.map → personas-C2n5oDmY.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-PgkwvG7f.js → pipelines-RKpSkFz7.js} +2 -2
- package/dashboard/dist/assets/{pipelines-PgkwvG7f.js.map → pipelines-RKpSkFz7.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CcYxdBa3.js → tasks-Dab4hExW.js} +2 -2
- package/dashboard/dist/assets/{tasks-CcYxdBa3.js.map → tasks-Dab4hExW.js.map} +1 -1
- package/dashboard/dist/assets/{topics-_lik7cNY.js → topics-FTMNP7r3.js} +2 -2
- package/dashboard/dist/assets/{topics-_lik7cNY.js.map → topics-FTMNP7r3.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-Bm_AoxVx.js → useDebouncedValue-B_1u1YIk.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-Bm_AoxVx.js.map → useDebouncedValue-B_1u1YIk.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-DgXXKdx5.js → useNamespace-HUeAI7Qb.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-DgXXKdx5.js.map → useNamespace-HUeAI7Qb.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Dj2qtGSd.js → useYamlActivityEvents-Cax54qHH.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Dj2qtGSd.js.map → useYamlActivityEvents-Cax54qHH.js.map} +1 -1
- package/dashboard/dist/assets/{validate-FlXCBBT6.js → validate-DxOaV7QS.js} +2 -2
- package/dashboard/dist/assets/{validate-FlXCBBT6.js.map → validate-DxOaV7QS.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-DUYcKTjP.js → vendor-icons-fxBvvHBi.js} +187 -182
- package/dashboard/dist/assets/vendor-icons-fxBvvHBi.js.map +1 -0
- package/dashboard/dist/assets/{yaml-workflows-B0_JxRYQ.js → yaml-workflows-BgY1XHJx.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-B0_JxRYQ.js.map → yaml-workflows-BgY1XHJx.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/architecture.md +1 -0
- package/docs/code-owned-configuration.md +6 -0
- package/docs/dashboard.md +1 -0
- package/docs/events.md +83 -4
- package/docs/machines.md +129 -23
- package/docs/mcp.md +19 -0
- package/package.json +3 -1
- package/build/lib/machines/transport/nats-durable.d.ts +0 -11
- package/build/lib/machines/transport/nats-durable.js +0 -28
- package/dashboard/dist/assets/AgentsPage-C9UuUKhr.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-DrvfXz70.js +0 -2
- package/dashboard/dist/assets/FilterBar-BygWrnB1.js +0 -2
- package/dashboard/dist/assets/FilterBar-BygWrnB1.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-80fQn9iX.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-Di08wCbs.js +0 -2
- package/dashboard/dist/assets/index-4YaDUcKd.js +0 -2
- package/dashboard/dist/assets/index-CnU7Jjz3.css +0 -1
- package/dashboard/dist/assets/index-Dz6R8-Dw.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-DUYcKTjP.js.map +0 -1
package/build/start/adapters.js
CHANGED
|
@@ -6,6 +6,8 @@ const pino_1 = require("../lib/logger/pino");
|
|
|
6
6
|
const telemetry_1 = require("../lib/telemetry");
|
|
7
7
|
const honeycomb_1 = require("../lib/telemetry/honeycomb");
|
|
8
8
|
const events_1 = require("../lib/events");
|
|
9
|
+
const messaging_1 = require("../lib/messaging");
|
|
10
|
+
const config_1 = require("../lib/messaging/config");
|
|
9
11
|
const nats_1 = require("../lib/events/nats");
|
|
10
12
|
const socketio_1 = require("../lib/events/socketio");
|
|
11
13
|
const maintenance_1 = require("../services/maintenance");
|
|
@@ -44,6 +46,10 @@ function registerAdapters(startConfig) {
|
|
|
44
46
|
else if (startConfig.telemetry?.honeycomb) {
|
|
45
47
|
telemetry_1.telemetryRegistry.register(new honeycomb_1.HoneycombTelemetryAdapter(startConfig.telemetry.honeycomb));
|
|
46
48
|
}
|
|
49
|
+
// Messaging: one provider shared by events and the machine surface.
|
|
50
|
+
const messaging = (0, config_1.resolveMessaging)(startConfig);
|
|
51
|
+
if (messaging.provider)
|
|
52
|
+
messaging_1.messagingRegistry.register(messaging.provider);
|
|
47
53
|
// Events — register the configured transport.
|
|
48
54
|
// Socket.IO is the default for single-container ("nothing but Postgres").
|
|
49
55
|
// When NATS or custom adapters are configured, Socket.IO is NOT registered —
|
|
@@ -54,8 +60,11 @@ function registerAdapters(startConfig) {
|
|
|
54
60
|
events_1.eventRegistry.register(adapter);
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
|
-
else if (
|
|
58
|
-
events_1.eventRegistry.register(new nats_1.NatsEventAdapter(
|
|
63
|
+
else if (messaging.provider?.name === config_1.MESSAGING_KIND.NATS) {
|
|
64
|
+
events_1.eventRegistry.register(new nats_1.NatsEventAdapter({
|
|
65
|
+
messaging: messaging.provider, wsUrl: messaging.ws.url, wsProxy: messaging.ws.proxy, token: messaging.ws.token,
|
|
66
|
+
subjectPrefix: startConfig.events?.nats?.subjectPrefix,
|
|
67
|
+
}));
|
|
59
68
|
}
|
|
60
69
|
else {
|
|
61
70
|
events_1.eventRegistry.register(new socketio_1.SocketIOEventAdapter({
|
|
@@ -18,7 +18,7 @@ export interface SurfaceReport {
|
|
|
18
18
|
export declare function newSurfaceReport(): SurfaceReport;
|
|
19
19
|
/** Record one entry's outcome on the surface report. */
|
|
20
20
|
export declare function recordOutcome(report: SurfaceReport, name: string, outcome: ApplyOutcome): void;
|
|
21
|
-
export
|
|
21
|
+
export { withConfigLock } from '../lib/db/config-lock';
|
|
22
22
|
/**
|
|
23
23
|
* One boot line per surface. Warn level when orphans exist so operators see
|
|
24
24
|
* "declared set no longer matches the DB" without grepping.
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withConfigLock = void 0;
|
|
3
4
|
exports.ownedByCode = ownedByCode;
|
|
4
5
|
exports.newSurfaceReport = newSurfaceReport;
|
|
5
6
|
exports.recordOutcome = recordOutcome;
|
|
6
|
-
exports.withConfigLock = withConfigLock;
|
|
7
7
|
exports.logSurfaceReport = logSurfaceReport;
|
|
8
|
-
const db_1 = require("../lib/db");
|
|
9
8
|
const logger_1 = require("../lib/logger");
|
|
10
9
|
/**
|
|
11
10
|
* Effective ownership for one declared entry: the per-entry `reset` flag wins
|
|
@@ -26,29 +25,8 @@ function recordOutcome(report, name, outcome) {
|
|
|
26
25
|
else
|
|
27
26
|
report.dbOwned.push(name);
|
|
28
27
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* target replaces) across concurrently booting containers. Single-statement
|
|
32
|
-
* upserts are individually race-safe; the lock exists for the replace
|
|
33
|
-
* transactions and keeps boot reports coherent. Distinct from the migration
|
|
34
|
-
* lock so a slow migration on one container never blocks another's config
|
|
35
|
-
* pass behind two locks at once.
|
|
36
|
-
*/
|
|
37
|
-
const CONFIG_APPLY_LOCK_ID = 8675310;
|
|
38
|
-
async function withConfigLock(fn) {
|
|
39
|
-
const pool = (0, db_1.getPool)();
|
|
40
|
-
const client = await pool.connect();
|
|
41
|
-
try {
|
|
42
|
-
await client.query(`SELECT pg_advisory_lock(${CONFIG_APPLY_LOCK_ID})`);
|
|
43
|
-
return await fn();
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
await client
|
|
47
|
-
.query(`SELECT pg_advisory_unlock(${CONFIG_APPLY_LOCK_ID})`)
|
|
48
|
-
.catch(() => { });
|
|
49
|
-
client.release();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
28
|
+
var config_lock_1 = require("../lib/db/config-lock");
|
|
29
|
+
Object.defineProperty(exports, "withConfigLock", { enumerable: true, get: function () { return config_lock_1.withConfigLock; } });
|
|
52
30
|
/**
|
|
53
31
|
* One boot line per surface. Warn level when orphans exist so operators see
|
|
54
32
|
* "declared set no longer matches the DB" without grepping.
|
package/build/start/index.js
CHANGED
|
@@ -5,9 +5,12 @@ const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
|
5
5
|
const logger_1 = require("../lib/logger");
|
|
6
6
|
const telemetry_1 = require("../lib/telemetry");
|
|
7
7
|
const events_1 = require("../lib/events");
|
|
8
|
+
const messaging_1 = require("../lib/messaging");
|
|
8
9
|
const callback_1 = require("../lib/events/callback");
|
|
9
10
|
const surface_1 = require("../services/machines/surface");
|
|
11
|
+
const machines_1 = require("../modules/machines");
|
|
10
12
|
const roles_1 = require("../services/machines/roles");
|
|
13
|
+
const registry_sync_1 = require("../services/machines/registry-sync");
|
|
11
14
|
const maintenance_1 = require("../services/maintenance");
|
|
12
15
|
const cron_1 = require("../services/cron");
|
|
13
16
|
const mcp_1 = require("../services/mcp");
|
|
@@ -66,8 +69,12 @@ async function start(startConfig) {
|
|
|
66
69
|
(0, config_1.applyDatabaseConfig)(startConfig.database);
|
|
67
70
|
// 2. Apply server/auth config
|
|
68
71
|
await (0, config_1.applyServerAuthConfig)(startConfig);
|
|
69
|
-
// 3. Register adapters
|
|
72
|
+
// 3. Register adapters; messaging connects first, since events and machines use it.
|
|
73
|
+
// An unreachable NATS is logged and Long Tail starts, as events always have; what needs streams fails then.
|
|
70
74
|
(0, adapters_1.registerAdapters)(startConfig);
|
|
75
|
+
await messaging_1.messagingRegistry.connect().catch((err) => {
|
|
76
|
+
logger_1.loggerRegistry.error(`${messaging_1.MESSAGING_LOG.CONNECT_FAILED} ${err instanceof Error ? err.message : String(err)}`);
|
|
77
|
+
});
|
|
71
78
|
logger_1.loggerRegistry.info('[long-tail] starting...');
|
|
72
79
|
// 4-5. Collect workers, run migrations, start workers, seed data
|
|
73
80
|
if (startConfig.machines && startConfig.machines.declareRoles !== false) {
|
|
@@ -75,10 +82,18 @@ async function start(startConfig) {
|
|
|
75
82
|
}
|
|
76
83
|
const { workers, builtinMcpServerFactories } = await (0, workers_1.collectWorkers)(startConfig);
|
|
77
84
|
const { adminUserId } = await (0, workers_1.startWorkers)(startConfig, workers, builtinMcpServerFactories);
|
|
78
|
-
// 5b. Machines, after the workers exist so their rows publish lifecycle events
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
// 5b. Machines, after the workers exist so their rows publish lifecycle events.
|
|
86
|
+
// Code lines land in the registry under the configSource rules; the surface runs every line the registry holds.
|
|
87
|
+
let machines = null;
|
|
88
|
+
let unwatchLines = null;
|
|
89
|
+
if (startConfig.machines) {
|
|
90
|
+
const callbacks = events_1.eventRegistry.getAdapter(callback_1.CallbackEventAdapter);
|
|
91
|
+
const { lines } = await (0, registry_sync_1.syncDeclaredLines)(startConfig.machines.lines, (startConfig.configSource ?? 'db') === 'code');
|
|
92
|
+
machines = surface_1.MachineSurface.start({ ...startConfig.machines, lines, callbacks });
|
|
93
|
+
if (callbacks)
|
|
94
|
+
unwatchLines = (0, registry_sync_1.watchLineRegistry)(machines, callbacks);
|
|
95
|
+
}
|
|
96
|
+
(0, machines_1.registerMachineSurface)(machines);
|
|
82
97
|
// 6. Start embedded server (if enabled)
|
|
83
98
|
const serverEnabled = startConfig.server?.enabled !== false;
|
|
84
99
|
let httpServer = null;
|
|
@@ -96,7 +111,9 @@ async function start(startConfig) {
|
|
|
96
111
|
await new Promise((resolve) => httpServer.close(() => resolve()));
|
|
97
112
|
}
|
|
98
113
|
if (machines) {
|
|
114
|
+
unwatchLines?.();
|
|
99
115
|
await machines.stop();
|
|
116
|
+
(0, machines_1.registerMachineSurface)(null);
|
|
100
117
|
}
|
|
101
118
|
if (mcp_1.mcpRegistry.hasAdapter) {
|
|
102
119
|
await mcp_1.mcpRegistry.disconnect();
|
|
@@ -110,6 +127,7 @@ async function start(startConfig) {
|
|
|
110
127
|
if (events_1.eventRegistry.hasAdapters) {
|
|
111
128
|
await events_1.eventRegistry.disconnect();
|
|
112
129
|
}
|
|
130
|
+
await messaging_1.messagingRegistry.disconnect();
|
|
113
131
|
if (telemetry_1.telemetryRegistry.hasAdapter) {
|
|
114
132
|
await telemetry_1.telemetryRegistry.disconnect();
|
|
115
133
|
}
|
package/build/system/index.js
CHANGED
|
@@ -60,6 +60,7 @@ const tool_manifests_workflows_1 = require("./seed/tool-manifests-workflows");
|
|
|
60
60
|
const tool_manifests_admin_1 = require("./seed/tool-manifests-admin");
|
|
61
61
|
const tool_manifests_knowledge_1 = require("./seed/tool-manifests-knowledge");
|
|
62
62
|
const tool_manifests_events_1 = require("./seed/tool-manifests-events");
|
|
63
|
+
const tool_manifests_machines_1 = require("./seed/tool-manifests-machines");
|
|
63
64
|
// Example connectors — loaded conditionally (not in npm package)
|
|
64
65
|
let GMAIL_TOOLS = [];
|
|
65
66
|
try {
|
|
@@ -296,6 +297,18 @@ exports.builtinMcpServerFactories = {
|
|
|
296
297
|
toolManifest: tool_manifests_data_1.SCHEMA_EXCHANGE_TOOLS,
|
|
297
298
|
},
|
|
298
299
|
},
|
|
300
|
+
'long-tail-machines': {
|
|
301
|
+
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/machines'))).then((m) => m.createMachinesServer()),
|
|
302
|
+
config: {
|
|
303
|
+
description: 'The machine surface: the lines index with health, a line as its leader sees it, a wire message dry run, machine-command rows, and the registry\'s declare and retire.',
|
|
304
|
+
tags: ['machines', 'lines', 'mqtt', 'factory'],
|
|
305
|
+
category: 'Data',
|
|
306
|
+
compileHints: 'list_machine_lines answers which lines need attention; get_machine_line reads one line. ' +
|
|
307
|
+
'send_machine_command parks a machine-command row that the gateway resolves with the machine\'s reply; ' +
|
|
308
|
+
'read the row to learn the outcome. declare_machine_line and retire_machine_line change the registry and need admin.',
|
|
309
|
+
toolManifest: tool_manifests_machines_1.MACHINE_TOOLS,
|
|
310
|
+
},
|
|
311
|
+
},
|
|
299
312
|
'long-tail-events': {
|
|
300
313
|
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/events'))).then((m) => m.createEventsServer()),
|
|
301
314
|
config: {
|
|
@@ -210,14 +210,14 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
210
210
|
key?: string | undefined;
|
|
211
211
|
value?: string | undefined;
|
|
212
212
|
id?: string | undefined;
|
|
213
|
-
signalKey?: string | undefined;
|
|
214
213
|
payload?: Record<string, any> | undefined;
|
|
214
|
+
signalKey?: string | undefined;
|
|
215
215
|
}, {
|
|
216
216
|
key?: string | undefined;
|
|
217
217
|
value?: string | undefined;
|
|
218
218
|
id?: string | undefined;
|
|
219
|
-
signalKey?: string | undefined;
|
|
220
219
|
payload?: Record<string, any> | undefined;
|
|
220
|
+
signalKey?: string | undefined;
|
|
221
221
|
}>>;
|
|
222
222
|
initiatedBy: z.ZodOptional<z.ZodString>;
|
|
223
223
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -229,8 +229,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
229
229
|
key?: string | undefined;
|
|
230
230
|
value?: string | undefined;
|
|
231
231
|
id?: string | undefined;
|
|
232
|
-
signalKey?: string | undefined;
|
|
233
232
|
payload?: Record<string, any> | undefined;
|
|
233
|
+
signalKey?: string | undefined;
|
|
234
234
|
} | undefined;
|
|
235
235
|
initiatedBy?: string | undefined;
|
|
236
236
|
}, {
|
|
@@ -242,8 +242,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
242
242
|
key?: string | undefined;
|
|
243
243
|
value?: string | undefined;
|
|
244
244
|
id?: string | undefined;
|
|
245
|
-
signalKey?: string | undefined;
|
|
246
245
|
payload?: Record<string, any> | undefined;
|
|
246
|
+
signalKey?: string | undefined;
|
|
247
247
|
} | undefined;
|
|
248
248
|
initiatedBy?: string | undefined;
|
|
249
249
|
}>;
|
|
@@ -1277,14 +1277,14 @@ export declare const applyThrottleSchema: z.ZodObject<{
|
|
|
1277
1277
|
}, "strip", z.ZodTypeAny, {
|
|
1278
1278
|
appId: string;
|
|
1279
1279
|
throttle: number;
|
|
1280
|
-
scope?: string | undefined;
|
|
1281
1280
|
topic?: string | undefined;
|
|
1281
|
+
scope?: string | undefined;
|
|
1282
1282
|
guid?: string | undefined;
|
|
1283
1283
|
}, {
|
|
1284
1284
|
throttle: number;
|
|
1285
|
+
topic?: string | undefined;
|
|
1285
1286
|
appId?: string | undefined;
|
|
1286
1287
|
scope?: string | undefined;
|
|
1287
|
-
topic?: string | undefined;
|
|
1288
1288
|
guid?: string | undefined;
|
|
1289
1289
|
}>;
|
|
1290
1290
|
export declare const getStreamStatsSchema: z.ZodObject<{
|
|
@@ -1320,10 +1320,10 @@ export declare const listStreamMessagesSchema: z.ZodObject<{
|
|
|
1320
1320
|
offset: number;
|
|
1321
1321
|
namespace: string;
|
|
1322
1322
|
status?: string | undefined;
|
|
1323
|
+
topic?: string | undefined;
|
|
1323
1324
|
order?: "asc" | "desc" | undefined;
|
|
1324
1325
|
sort_by?: string | undefined;
|
|
1325
1326
|
workflow_name?: string | undefined;
|
|
1326
|
-
topic?: string | undefined;
|
|
1327
1327
|
jid?: string | undefined;
|
|
1328
1328
|
stream_name?: string | undefined;
|
|
1329
1329
|
msg_type?: string | undefined;
|
|
@@ -1331,12 +1331,12 @@ export declare const listStreamMessagesSchema: z.ZodObject<{
|
|
|
1331
1331
|
}, {
|
|
1332
1332
|
source: string;
|
|
1333
1333
|
status?: string | undefined;
|
|
1334
|
+
topic?: string | undefined;
|
|
1334
1335
|
limit?: number | undefined;
|
|
1335
1336
|
offset?: number | undefined;
|
|
1336
1337
|
order?: "asc" | "desc" | undefined;
|
|
1337
1338
|
sort_by?: string | undefined;
|
|
1338
1339
|
workflow_name?: string | undefined;
|
|
1339
|
-
topic?: string | undefined;
|
|
1340
1340
|
jid?: string | undefined;
|
|
1341
1341
|
namespace?: string | undefined;
|
|
1342
1342
|
stream_name?: string | undefined;
|
|
@@ -1396,12 +1396,12 @@ export declare const interruptJobSchema: z.ZodObject<{
|
|
|
1396
1396
|
topic: z.ZodString;
|
|
1397
1397
|
app_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1398
1398
|
}, "strip", z.ZodTypeAny, {
|
|
1399
|
+
topic: string;
|
|
1399
1400
|
app_id: string;
|
|
1400
1401
|
job_id: string;
|
|
1401
|
-
topic: string;
|
|
1402
1402
|
}, {
|
|
1403
|
-
job_id: string;
|
|
1404
1403
|
topic: string;
|
|
1404
|
+
job_id: string;
|
|
1405
1405
|
app_id?: string | undefined;
|
|
1406
1406
|
}>;
|
|
1407
1407
|
export declare const listTopicsSchema: z.ZodObject<{
|
|
@@ -1435,15 +1435,15 @@ export declare const createTopicSchema: z.ZodObject<{
|
|
|
1435
1435
|
example_payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
1436
1436
|
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1437
1437
|
}, "strip", z.ZodTypeAny, {
|
|
1438
|
-
category: string;
|
|
1439
1438
|
topic: string;
|
|
1439
|
+
category: string;
|
|
1440
1440
|
description?: string | undefined;
|
|
1441
1441
|
tags?: string[] | undefined;
|
|
1442
1442
|
payload_schema?: Record<string, any> | undefined;
|
|
1443
1443
|
example_payload?: Record<string, any> | undefined;
|
|
1444
1444
|
}, {
|
|
1445
|
-
category: string;
|
|
1446
1445
|
topic: string;
|
|
1446
|
+
category: string;
|
|
1447
1447
|
description?: string | undefined;
|
|
1448
1448
|
tags?: string[] | undefined;
|
|
1449
1449
|
payload_schema?: Record<string, any> | undefined;
|
|
@@ -2989,8 +2989,8 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
2989
2989
|
requireActingIdentity: z.ZodOptional<z.ZodBoolean>;
|
|
2990
2990
|
code: z.ZodOptional<z.ZodString>;
|
|
2991
2991
|
}, "strip", z.ZodTypeAny, {
|
|
2992
|
-
label: string;
|
|
2993
2992
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
2993
|
+
label: string;
|
|
2994
2994
|
code?: string | undefined;
|
|
2995
2995
|
confirm?: {
|
|
2996
2996
|
prompt: string;
|
|
@@ -3041,8 +3041,8 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3041
3041
|
} | undefined;
|
|
3042
3042
|
requireActingIdentity?: boolean | undefined;
|
|
3043
3043
|
}, {
|
|
3044
|
-
label: string;
|
|
3045
3044
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
3045
|
+
label: string;
|
|
3046
3046
|
code?: string | undefined;
|
|
3047
3047
|
confirm?: {
|
|
3048
3048
|
prompt: string;
|
|
@@ -3148,6 +3148,7 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3148
3148
|
markdown: string;
|
|
3149
3149
|
}>>;
|
|
3150
3150
|
}, "strip", z.ZodTypeAny, {
|
|
3151
|
+
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3151
3152
|
query: {
|
|
3152
3153
|
status?: "pending" | "resolved" | "cancelled" | undefined;
|
|
3153
3154
|
roles?: string[] | undefined;
|
|
@@ -3156,15 +3157,14 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3156
3157
|
subtypes?: string[] | undefined;
|
|
3157
3158
|
availability?: "available" | "claimed" | "mine" | "any" | undefined;
|
|
3158
3159
|
};
|
|
3159
|
-
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3160
3160
|
subject?: {
|
|
3161
3161
|
schemes: number[];
|
|
3162
3162
|
facets?: Record<string, string | number | boolean> | undefined;
|
|
3163
3163
|
claimedByOther?: "refuse" | "allow" | undefined;
|
|
3164
3164
|
} | undefined;
|
|
3165
3165
|
choices?: {
|
|
3166
|
-
label: string;
|
|
3167
3166
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
3167
|
+
label: string;
|
|
3168
3168
|
code?: string | undefined;
|
|
3169
3169
|
confirm?: {
|
|
3170
3170
|
prompt: string;
|
|
@@ -3282,6 +3282,7 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3282
3282
|
}[] | undefined;
|
|
3283
3283
|
autoSelectSingle?: boolean | undefined;
|
|
3284
3284
|
}, {
|
|
3285
|
+
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3285
3286
|
query: {
|
|
3286
3287
|
status?: "pending" | "resolved" | "cancelled" | undefined;
|
|
3287
3288
|
roles?: string[] | undefined;
|
|
@@ -3290,15 +3291,14 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3290
3291
|
subtypes?: string[] | undefined;
|
|
3291
3292
|
availability?: "available" | "claimed" | "mine" | "any" | undefined;
|
|
3292
3293
|
};
|
|
3293
|
-
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3294
3294
|
subject?: {
|
|
3295
3295
|
schemes: number[];
|
|
3296
3296
|
facets?: Record<string, string | number | boolean> | undefined;
|
|
3297
3297
|
claimedByOther?: "refuse" | "allow" | undefined;
|
|
3298
3298
|
} | undefined;
|
|
3299
3299
|
choices?: {
|
|
3300
|
-
label: string;
|
|
3301
3300
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
3301
|
+
label: string;
|
|
3302
3302
|
code?: string | undefined;
|
|
3303
3303
|
confirm?: {
|
|
3304
3304
|
prompt: string;
|
|
@@ -3442,6 +3442,7 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3442
3442
|
category: string;
|
|
3443
3443
|
scheme_version: number;
|
|
3444
3444
|
steps: {
|
|
3445
|
+
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3445
3446
|
query: {
|
|
3446
3447
|
status?: "pending" | "resolved" | "cancelled" | undefined;
|
|
3447
3448
|
roles?: string[] | undefined;
|
|
@@ -3450,15 +3451,14 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3450
3451
|
subtypes?: string[] | undefined;
|
|
3451
3452
|
availability?: "available" | "claimed" | "mine" | "any" | undefined;
|
|
3452
3453
|
};
|
|
3453
|
-
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3454
3454
|
subject?: {
|
|
3455
3455
|
schemes: number[];
|
|
3456
3456
|
facets?: Record<string, string | number | boolean> | undefined;
|
|
3457
3457
|
claimedByOther?: "refuse" | "allow" | undefined;
|
|
3458
3458
|
} | undefined;
|
|
3459
3459
|
choices?: {
|
|
3460
|
-
label: string;
|
|
3461
3460
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
3461
|
+
label: string;
|
|
3462
3462
|
code?: string | undefined;
|
|
3463
3463
|
confirm?: {
|
|
3464
3464
|
prompt: string;
|
|
@@ -3590,6 +3590,7 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3590
3590
|
category: string;
|
|
3591
3591
|
scheme_version: number;
|
|
3592
3592
|
steps: {
|
|
3593
|
+
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3593
3594
|
query: {
|
|
3594
3595
|
status?: "pending" | "resolved" | "cancelled" | undefined;
|
|
3595
3596
|
roles?: string[] | undefined;
|
|
@@ -3598,15 +3599,14 @@ export declare const upsertScanRuleSchema: z.ZodObject<{
|
|
|
3598
3599
|
subtypes?: string[] | undefined;
|
|
3599
3600
|
availability?: "available" | "claimed" | "mine" | "any" | undefined;
|
|
3600
3601
|
};
|
|
3601
|
-
verb: "resolve" | "show-detail" | "show-list" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "accumulate" | "present" | "hold" | "fill";
|
|
3602
3602
|
subject?: {
|
|
3603
3603
|
schemes: number[];
|
|
3604
3604
|
facets?: Record<string, string | number | boolean> | undefined;
|
|
3605
3605
|
claimedByOther?: "refuse" | "allow" | undefined;
|
|
3606
3606
|
} | undefined;
|
|
3607
3607
|
choices?: {
|
|
3608
|
-
label: string;
|
|
3609
3608
|
verb: "resolve" | "show-detail" | "claim" | "claim-show-detail" | "release" | "escalate" | "cancel" | "hold";
|
|
3609
|
+
label: string;
|
|
3610
3610
|
code?: string | undefined;
|
|
3611
3611
|
confirm?: {
|
|
3612
3612
|
prompt: string;
|
|
@@ -11,8 +11,8 @@ export declare const escalateSchema: z.ZodObject<{
|
|
|
11
11
|
role: string;
|
|
12
12
|
subtype: string;
|
|
13
13
|
type: string;
|
|
14
|
-
priority: number;
|
|
15
14
|
message: string;
|
|
15
|
+
priority: number;
|
|
16
16
|
schema_version?: number | undefined;
|
|
17
17
|
data?: Record<string, any> | undefined;
|
|
18
18
|
}, {
|
|
@@ -69,12 +69,12 @@ export declare const resolveBatchItemSchema: z.ZodObject<{
|
|
|
69
69
|
item_key: z.ZodString;
|
|
70
70
|
payload: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
71
71
|
}, "strip", z.ZodTypeAny, {
|
|
72
|
-
item_key: string;
|
|
73
72
|
payload: Record<string, any>;
|
|
73
|
+
item_key: string;
|
|
74
74
|
escalation_id: string;
|
|
75
75
|
}, {
|
|
76
|
-
item_key: string;
|
|
77
76
|
payload: Record<string, any>;
|
|
77
|
+
item_key: string;
|
|
78
78
|
escalation_id: string;
|
|
79
79
|
}>;
|
|
80
80
|
export declare const accumulateItemSchema: z.ZodObject<{
|
|
@@ -91,14 +91,14 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
91
91
|
key?: string | undefined;
|
|
92
92
|
value?: string | undefined;
|
|
93
93
|
id?: string | undefined;
|
|
94
|
-
signalKey?: string | undefined;
|
|
95
94
|
payload?: Record<string, any> | undefined;
|
|
95
|
+
signalKey?: string | undefined;
|
|
96
96
|
}, {
|
|
97
97
|
key?: string | undefined;
|
|
98
98
|
value?: string | undefined;
|
|
99
99
|
id?: string | undefined;
|
|
100
|
-
signalKey?: string | undefined;
|
|
101
100
|
payload?: Record<string, any> | undefined;
|
|
101
|
+
signalKey?: string | undefined;
|
|
102
102
|
}>>;
|
|
103
103
|
}, "strip", z.ZodTypeAny, {
|
|
104
104
|
item_key: string;
|
|
@@ -108,8 +108,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
108
108
|
key?: string | undefined;
|
|
109
109
|
value?: string | undefined;
|
|
110
110
|
id?: string | undefined;
|
|
111
|
-
signalKey?: string | undefined;
|
|
112
111
|
payload?: Record<string, any> | undefined;
|
|
112
|
+
signalKey?: string | undefined;
|
|
113
113
|
} | undefined;
|
|
114
114
|
}, {
|
|
115
115
|
item_key: string;
|
|
@@ -119,8 +119,8 @@ export declare const accumulateItemSchema: z.ZodObject<{
|
|
|
119
119
|
key?: string | undefined;
|
|
120
120
|
value?: string | undefined;
|
|
121
121
|
id?: string | undefined;
|
|
122
|
-
signalKey?: string | undefined;
|
|
123
122
|
payload?: Record<string, any> | undefined;
|
|
123
|
+
signalKey?: string | undefined;
|
|
124
124
|
} | undefined;
|
|
125
125
|
}>;
|
|
126
126
|
export declare const removeItemSchema: z.ZodObject<{
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const listMachineLinesSchema: {
|
|
3
|
+
q: z.ZodOptional<z.ZodString>;
|
|
4
|
+
site: z.ZodOptional<z.ZodString>;
|
|
5
|
+
attention: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
sort: z.ZodOptional<z.ZodEnum<["attention", "site", "updated"]>>;
|
|
7
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
};
|
|
10
|
+
export declare const getMachineLineSchema: {
|
|
11
|
+
siteId: z.ZodString;
|
|
12
|
+
lineId: z.ZodString;
|
|
13
|
+
};
|
|
14
|
+
export declare const inspectMachineMessageSchema: {
|
|
15
|
+
topic: z.ZodString;
|
|
16
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
17
|
+
retained: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
siteId: z.ZodString;
|
|
19
|
+
lineId: z.ZodString;
|
|
20
|
+
};
|
|
21
|
+
export declare const sendMachineCommandSchema: {
|
|
22
|
+
machineId: z.ZodString;
|
|
23
|
+
op: z.ZodString;
|
|
24
|
+
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
25
|
+
siteId: z.ZodString;
|
|
26
|
+
lineId: z.ZodString;
|
|
27
|
+
};
|
|
28
|
+
export declare const declareMachineLineSchema: {
|
|
29
|
+
definition: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
30
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
};
|
|
32
|
+
export declare const retireMachineLineSchema: {
|
|
33
|
+
siteId: z.ZodString;
|
|
34
|
+
lineId: z.ZodString;
|
|
35
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retireMachineLineSchema = exports.declareMachineLineSchema = exports.sendMachineCommandSchema = exports.inspectMachineMessageSchema = exports.getMachineLineSchema = exports.listMachineLinesSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/** Zod input schemas for the machines MCP server; the manifest mirrors them as JSON schema. */
|
|
6
|
+
const siteLine = {
|
|
7
|
+
siteId: zod_1.z.string().min(1).describe('Site id'),
|
|
8
|
+
lineId: zod_1.z.string().min(1).describe('Line id'),
|
|
9
|
+
};
|
|
10
|
+
exports.listMachineLinesSchema = {
|
|
11
|
+
q: zod_1.z.string().optional().describe('Search site, line, machine ids, processes, roles and addresses'),
|
|
12
|
+
site: zod_1.z.string().optional().describe('Only this site'),
|
|
13
|
+
attention: zod_1.z.boolean().optional().describe('Only lines with an offline machine, an active alarm or a row waiting on a person'),
|
|
14
|
+
sort: zod_1.z.enum(['attention', 'site', 'updated']).optional().describe('attention first (default), site, or recently changed'),
|
|
15
|
+
limit: zod_1.z.number().int().min(1).max(200).optional(),
|
|
16
|
+
offset: zod_1.z.number().int().min(0).optional(),
|
|
17
|
+
};
|
|
18
|
+
exports.getMachineLineSchema = { ...siteLine };
|
|
19
|
+
exports.inspectMachineMessageSchema = {
|
|
20
|
+
...siteLine,
|
|
21
|
+
topic: zod_1.z.string().min(1).describe('The MQTT topic the message would arrive on'),
|
|
22
|
+
payload: zod_1.z.any().optional().describe('The message body: an object is serialized as JSON, a string passes through'),
|
|
23
|
+
retained: zod_1.z.boolean().optional().describe('Whether the broker would deliver it as retained'),
|
|
24
|
+
};
|
|
25
|
+
exports.sendMachineCommandSchema = {
|
|
26
|
+
...siteLine,
|
|
27
|
+
machineId: zod_1.z.string().min(1).describe('The machine on the line'),
|
|
28
|
+
op: zod_1.z.string().min(1).describe('A control op, snapshot, or an op the line\'s codec declares'),
|
|
29
|
+
args: zod_1.z.record(zod_1.z.any()).optional().describe('Arguments the op takes, such as jobId or recipe'),
|
|
30
|
+
};
|
|
31
|
+
exports.declareMachineLineSchema = {
|
|
32
|
+
definition: zod_1.z.record(zod_1.z.any()).describe('The line definition: siteId, lineId, machines in route order (machineId, process, cycleSec), roles, addressing'),
|
|
33
|
+
version: zod_1.z.number().int().min(1).optional().describe('The version the row is expected to be at; a mismatch is a conflict'),
|
|
34
|
+
};
|
|
35
|
+
exports.retireMachineLineSchema = { ...siteLine };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export declare const MACHINES_SERVER_NAME = "long-tail-machines";
|
|
3
|
+
export declare const MACHINE_TOOL: {
|
|
4
|
+
readonly LIST: "list_machine_lines";
|
|
5
|
+
readonly GET: "get_machine_line";
|
|
6
|
+
readonly INSPECT: "inspect_machine_message";
|
|
7
|
+
readonly COMMAND: "send_machine_command";
|
|
8
|
+
readonly DECLARE: "declare_machine_line";
|
|
9
|
+
readonly RETIRE: "retire_machine_line";
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The machines MCP server: the Lines index and views, a message dry run,
|
|
13
|
+
* command rows, and the registry's declare and retire, for agents.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createMachinesServer(options?: {
|
|
16
|
+
name?: string;
|
|
17
|
+
fresh?: boolean;
|
|
18
|
+
}): Promise<McpServer>;
|
|
19
|
+
export declare function getMachinesServer(): McpServer | null;
|
|
20
|
+
export declare function stopMachinesServer(): Promise<void>;
|