@hotmeshio/long-tail 0.27.0 → 0.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/build/api/files.d.ts +5 -0
- package/build/api/files.js +19 -2
- package/build/api/knowledge.d.ts +3 -1
- package/build/api/settings.d.ts +4 -1
- package/build/api/settings.js +7 -1
- package/build/index.js +9 -4
- 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/db/schemas/042_knowledge_edition_labels.sql +9 -0
- package/build/lib/events/browser-view.js +8 -2
- package/build/lib/events/publish.d.ts +33 -0
- package/build/lib/events/publish.js +52 -1
- package/build/lib/machines/line.d.ts +7 -1
- package/build/lib/machines/line.js +25 -2
- package/build/lib/machines/protocol/codec.d.ts +14 -0
- package/build/lib/machines/protocol/codec.js +10 -1
- 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.d.ts +2 -0
- package/build/lib/machines/protocol/contract.js +13 -8
- package/build/lib/machines/site/mosquitto-conf.d.ts +9 -4
- package/build/lib/machines/site/mosquitto-conf.js +32 -22
- package/build/lib/machines/site/site-conf.d.ts +13 -3
- package/build/lib/machines/site/site-conf.js +31 -8
- 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/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 +3 -0
- package/build/lib/machines/transport/nats-bus.js +3 -0
- package/build/lib/machines/transport/nats-feed.d.ts +1 -0
- package/build/lib/machines/transport/nats-feed.js +4 -1
- package/build/lib/machines/transport/pubsub-feed.d.ts +1 -0
- package/build/lib/machines/transport/pubsub-feed.js +4 -1
- package/build/lib/machines/transport/stream-bus.d.ts +7 -1
- package/build/lib/machines/transport/stream-bus.js +17 -5
- package/build/lib/machines/transport/streams.d.ts +10 -2
- package/build/lib/machines/transport/streams.js +32 -5
- package/build/lib/messaging/memory.js +3 -0
- package/build/lib/messaging/nats/streams.d.ts +3 -0
- package/build/lib/messaging/nats/streams.js +16 -0
- package/build/lib/storage/local.d.ts +2 -0
- package/build/lib/storage/local.js +3 -0
- package/build/lib/storage/s3.d.ts +3 -2
- package/build/lib/storage/s3.js +6 -1
- package/build/lib/storage/types.d.ts +7 -1
- package/build/modules/machines.d.ts +8 -0
- package/build/modules/machines.js +16 -0
- package/build/routes/file-browser.js +3 -1
- package/build/routes/index.js +2 -0
- package/build/routes/knowledge.js +6 -5
- package/build/routes/machines.d.ts +2 -0
- package/build/routes/machines.js +253 -0
- package/build/services/knowledge/index.d.ts +4 -2
- package/build/services/knowledge/index.js +8 -2
- package/build/services/knowledge/lookup-cache.d.ts +8 -0
- package/build/services/knowledge/lookup-cache.js +30 -3
- package/build/services/knowledge/lookup-refs.js +1 -1
- package/build/services/knowledge/sql.d.ts +4 -2
- package/build/services/knowledge/sql.js +8 -3
- package/build/services/machines/commands.d.ts +5 -5
- package/build/services/machines/commands.js +3 -2
- package/build/services/machines/config.d.ts +4 -1
- package/build/services/machines/config.js +2 -1
- package/build/services/machines/contracts.d.ts +28 -0
- package/build/services/machines/contracts.js +15 -1
- package/build/services/machines/forms.d.ts +26 -1
- package/build/services/machines/forms.js +17 -1
- package/build/services/machines/gateway/actions.d.ts +14 -1
- package/build/services/machines/gateway/admission.d.ts +30 -4
- package/build/services/machines/gateway/admission.js +76 -14
- package/build/services/machines/gateway/api-escalations.js +4 -0
- package/build/services/machines/gateway/dispatcher.d.ts +12 -4
- package/build/services/machines/gateway/dispatcher.js +53 -17
- package/build/services/machines/gateway/executor.d.ts +13 -2
- package/build/services/machines/gateway/executor.js +84 -29
- package/build/services/machines/gateway/gateway.d.ts +21 -1
- package/build/services/machines/gateway/gateway.js +65 -25
- 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/log.d.ts +10 -0
- package/build/services/machines/gateway/log.js +20 -0
- package/build/services/machines/gateway/lt-http.js +11 -2
- package/build/services/machines/gateway/pacing.js +2 -1
- package/build/services/machines/gateway/plan-escalation.js +8 -3
- package/build/services/machines/gateway/plan-machine.js +41 -16
- package/build/services/machines/gateway/plan-shared.d.ts +5 -3
- package/build/services/machines/gateway/plan-shared.js +6 -4
- 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.js +3 -3
- package/build/services/machines/gateway/registration.js +1 -1
- package/build/services/machines/gateway/reply-waiter.d.ts +8 -3
- package/build/services/machines/gateway/reply-waiter.js +37 -16
- package/build/services/machines/gateway/state.d.ts +53 -4
- package/build/services/machines/gateway/state.js +128 -13
- package/build/services/machines/gateway/wire-window.d.ts +21 -0
- package/build/services/machines/gateway/wire-window.js +61 -0
- package/build/services/machines/gateway/wire.d.ts +58 -0
- package/build/services/machines/gateway/wire.js +172 -0
- package/build/services/machines/index.d.ts +3 -0
- package/build/services/machines/index.js +2 -0
- 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/roles.d.ts +5 -4
- package/build/services/machines/roles.js +13 -4
- package/build/services/machines/rows.js +10 -1
- package/build/services/machines/select.d.ts +3 -2
- package/build/services/machines/select.js +4 -3
- package/build/services/machines/surface.d.ts +54 -5
- package/build/services/machines/surface.js +113 -17
- package/build/start/apply-report.d.ts +1 -1
- package/build/start/apply-report.js +3 -25
- package/build/start/index.js +16 -4
- package/build/system/activities/knowledge.d.ts +4 -0
- package/build/system/activities/knowledge.js +15 -0
- package/build/system/activities/sql.d.ts +2 -0
- package/build/system/activities/sql.js +6 -1
- 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/knowledge.js +4 -2
- 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/escalation.d.ts +9 -6
- package/build/types/escalation.js +8 -2
- package/build/types/events.d.ts +6 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/machines-view.d.ts +175 -0
- package/build/types/machines-view.js +7 -0
- package/build/types/machines.d.ts +5 -0
- package/build/types/messaging.d.ts +2 -0
- package/build/types/startup.d.ts +2 -0
- 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 +2 -1
- package/docs/events.md +34 -1
- package/docs/hitl/lookups.md +6 -4
- package/docs/machines.md +114 -28
- package/docs/mcp.md +19 -0
- package/package.json +1 -1
- 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
|
@@ -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
|
@@ -8,7 +8,9 @@ const events_1 = require("../lib/events");
|
|
|
8
8
|
const messaging_1 = require("../lib/messaging");
|
|
9
9
|
const callback_1 = require("../lib/events/callback");
|
|
10
10
|
const surface_1 = require("../services/machines/surface");
|
|
11
|
+
const machines_1 = require("../modules/machines");
|
|
11
12
|
const roles_1 = require("../services/machines/roles");
|
|
13
|
+
const registry_sync_1 = require("../services/machines/registry-sync");
|
|
12
14
|
const maintenance_1 = require("../services/maintenance");
|
|
13
15
|
const cron_1 = require("../services/cron");
|
|
14
16
|
const mcp_1 = require("../services/mcp");
|
|
@@ -80,10 +82,18 @@ async function start(startConfig) {
|
|
|
80
82
|
}
|
|
81
83
|
const { workers, builtinMcpServerFactories } = await (0, workers_1.collectWorkers)(startConfig);
|
|
82
84
|
const { adminUserId } = await (0, workers_1.startWorkers)(startConfig, workers, builtinMcpServerFactories);
|
|
83
|
-
// 5b. Machines, after the workers exist so their rows publish lifecycle events
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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);
|
|
87
97
|
// 6. Start embedded server (if enabled)
|
|
88
98
|
const serverEnabled = startConfig.server?.enabled !== false;
|
|
89
99
|
let httpServer = null;
|
|
@@ -101,7 +111,9 @@ async function start(startConfig) {
|
|
|
101
111
|
await new Promise((resolve) => httpServer.close(() => resolve()));
|
|
102
112
|
}
|
|
103
113
|
if (machines) {
|
|
114
|
+
unwatchLines?.();
|
|
104
115
|
await machines.stop();
|
|
116
|
+
(0, machines_1.registerMachineSurface)(null);
|
|
105
117
|
}
|
|
106
118
|
if (mcp_1.mcpRegistry.hasAdapter) {
|
|
107
119
|
await mcp_1.mcpRegistry.disconnect();
|
|
@@ -4,6 +4,8 @@ export declare function storeKnowledge(args: {
|
|
|
4
4
|
data: Record<string, any>;
|
|
5
5
|
tags?: string[];
|
|
6
6
|
replace?: boolean;
|
|
7
|
+
/** A name for the edition this write leaves current, which lookup refs may pin. */
|
|
8
|
+
label?: string;
|
|
7
9
|
}): Promise<{
|
|
8
10
|
id: string;
|
|
9
11
|
domain: string;
|
|
@@ -75,6 +77,8 @@ export declare function appendKnowledge(args: {
|
|
|
75
77
|
key: string;
|
|
76
78
|
path: string;
|
|
77
79
|
value: any;
|
|
80
|
+
/** A name for the edition this write leaves current, which lookup refs may pin. */
|
|
81
|
+
label?: string;
|
|
78
82
|
}): Promise<{
|
|
79
83
|
id: string;
|
|
80
84
|
domain: string;
|
|
@@ -23,10 +23,23 @@ async function withClient(fn) {
|
|
|
23
23
|
await client.end();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
/** Name the entry's current edition. A label already naming another edition of the entry is refused. */
|
|
27
|
+
async function labelCurrentEdition(client, domain, key, version, label) {
|
|
28
|
+
try {
|
|
29
|
+
await client.query(sql_1.LABEL_KNOWLEDGE_VERSION, [domain, key, label, version]);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (err?.code === '23505')
|
|
33
|
+
throw new Error(`label "${label}" already names another edition of ${domain}/${key}`);
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
26
37
|
async function storeKnowledge(args) {
|
|
27
38
|
return withClient(async (client) => {
|
|
28
39
|
const sql = args.replace ? sql_1.REPLACE_KNOWLEDGE : sql_1.UPSERT_KNOWLEDGE;
|
|
29
40
|
const { rows } = await client.query(sql, [args.domain, args.key, JSON.stringify(args.data), args.tags || []]);
|
|
41
|
+
if (args.label)
|
|
42
|
+
await labelCurrentEdition(client, args.domain, args.key, rows[0].current_version, args.label);
|
|
30
43
|
const result = { ...rows[0], updated_at: rows[0].updated_at.toISOString() };
|
|
31
44
|
(0, publish_1.publishKnowledgeEvent)({ type: 'knowledge.stored', domain: args.domain, key: args.key });
|
|
32
45
|
return result;
|
|
@@ -173,6 +186,8 @@ async function appendKnowledge(args) {
|
|
|
173
186
|
initData = { [pathParts[i]]: initData };
|
|
174
187
|
}
|
|
175
188
|
const { rows } = await client.query(sql_1.APPEND_KNOWLEDGE, [args.domain, args.key, JSON.stringify(initData), pathArray, valueJson]);
|
|
189
|
+
if (args.label)
|
|
190
|
+
await labelCurrentEdition(client, args.domain, args.key, rows[0].current_version, args.label);
|
|
176
191
|
return { ...rows[0], updated_at: rows[0].updated_at.toISOString() };
|
|
177
192
|
});
|
|
178
193
|
}
|
|
@@ -6,3 +6,5 @@ export declare const LIST_DOMAINS = "\n SELECT domain, COUNT(*)::int AS count,
|
|
|
6
6
|
export declare const SET_KNOWLEDGE_FIELD = "\n WITH upserted AS (\n INSERT INTO lt_knowledge (domain, key, data, tags)\n VALUES ($1, $2, $3::jsonb, $4)\n ON CONFLICT (domain, key) DO UPDATE SET\n data = jsonb_set(lt_knowledge.data, $5::text[], $6::jsonb, true),\n tags = ARRAY(SELECT DISTINCT unnest(lt_knowledge.tags || EXCLUDED.tags)),\n current_version = CASE\n WHEN jsonb_set(lt_knowledge.data, $5::text[], $6::jsonb, true) IS DISTINCT FROM lt_knowledge.data\n THEN lt_knowledge.current_version + 1\n ELSE lt_knowledge.current_version\n END\n RETURNING id, domain, key, data, tags, current_version, (xmax = 0) AS created, updated_at\n ), snapshot AS (\n INSERT INTO lt_knowledge_versions (domain, key, version, data, tags)\n SELECT domain, key, current_version, data, tags FROM upserted\n ON CONFLICT (domain, key, version) DO NOTHING\n )\n SELECT id, domain, key, current_version, created, updated_at FROM upserted";
|
|
7
7
|
export declare const REMOVE_KNOWLEDGE_FIELD = "\n WITH updated AS (\n UPDATE lt_knowledge\n SET data = data #- $3::text[],\n current_version = CASE\n WHEN data #- $3::text[] IS DISTINCT FROM data\n THEN current_version + 1\n ELSE current_version\n END\n WHERE domain = $1 AND key = $2\n RETURNING id, domain, key, data, tags, current_version, updated_at\n ), snapshot AS (\n INSERT INTO lt_knowledge_versions (domain, key, version, data, tags)\n SELECT domain, key, current_version, data, tags FROM updated\n ON CONFLICT (domain, key, version) DO NOTHING\n )\n SELECT id, domain, key, current_version, updated_at FROM updated";
|
|
8
8
|
export declare const APPEND_KNOWLEDGE = "\n WITH upserted AS (\n INSERT INTO lt_knowledge (domain, key, data)\n VALUES ($1, $2, $3::jsonb)\n ON CONFLICT (domain, key) DO UPDATE SET\n data = CASE\n WHEN lt_knowledge.data #> $4::text[] IS NULL\n THEN jsonb_set(lt_knowledge.data, $4::text[], jsonb_build_array($5::jsonb))\n ELSE jsonb_set(lt_knowledge.data, $4::text[], (lt_knowledge.data #> $4::text[]) || jsonb_build_array($5::jsonb))\n END,\n current_version = lt_knowledge.current_version + 1\n RETURNING id, domain, key, data, tags, current_version, updated_at\n ), snapshot AS (\n INSERT INTO lt_knowledge_versions (domain, key, version, data, tags)\n SELECT domain, key, current_version, data, tags FROM upserted\n ON CONFLICT (domain, key, version) DO NOTHING\n )\n SELECT id, domain, key, current_version, updated_at FROM upserted";
|
|
9
|
+
/** Name an edition: the label a lookup ref may pin instead of the number. A label names one edition of an entry. */
|
|
10
|
+
export declare const LABEL_KNOWLEDGE_VERSION = "\n UPDATE lt_knowledge_versions SET label = $3\n WHERE domain = $1 AND key = $2 AND version = $4\n RETURNING version";
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// no-op writes snapshot-free). Tags-only changes never bump — the version is
|
|
9
9
|
// the data's identity.
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.APPEND_KNOWLEDGE = exports.REMOVE_KNOWLEDGE_FIELD = exports.SET_KNOWLEDGE_FIELD = exports.LIST_DOMAINS = exports.DELETE_KNOWLEDGE = exports.GET_KNOWLEDGE = exports.REPLACE_KNOWLEDGE = exports.UPSERT_KNOWLEDGE = void 0;
|
|
11
|
+
exports.LABEL_KNOWLEDGE_VERSION = exports.APPEND_KNOWLEDGE = exports.REMOVE_KNOWLEDGE_FIELD = exports.SET_KNOWLEDGE_FIELD = exports.LIST_DOMAINS = exports.DELETE_KNOWLEDGE = exports.GET_KNOWLEDGE = exports.REPLACE_KNOWLEDGE = exports.UPSERT_KNOWLEDGE = void 0;
|
|
12
12
|
// Upsert knowledge entry. On conflict (domain+key), merges JSONB data at
|
|
13
13
|
// the top level — new keys are added, existing keys are overwritten.
|
|
14
14
|
//
|
|
@@ -130,3 +130,8 @@ exports.APPEND_KNOWLEDGE = `
|
|
|
130
130
|
ON CONFLICT (domain, key, version) DO NOTHING
|
|
131
131
|
)
|
|
132
132
|
SELECT id, domain, key, current_version, updated_at FROM upserted`;
|
|
133
|
+
/** Name an edition: the label a lookup ref may pin instead of the number. A label names one edition of an entry. */
|
|
134
|
+
exports.LABEL_KNOWLEDGE_VERSION = `
|
|
135
|
+
UPDATE lt_knowledge_versions SET label = $3
|
|
136
|
+
WHERE domain = $1 AND key = $2 AND version = $4
|
|
137
|
+
RETURNING version`;
|
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<{
|
|
@@ -45,11 +45,12 @@ const storeSchema = zod_1.z.object({
|
|
|
45
45
|
field: zod_1.z.string().optional().describe('RECOMMENDED. Names a specific field to set within the entry (e.g. "2026-05-09", "url", "score"). Using field is additive — it merges into existing data without clobbering other fields. Without field, the entire data object is merged at the top level, which can overwrite existing fields with the same keys. Always use field when adding to an entry that may already have data.'),
|
|
46
46
|
data: zod_1.z.any().describe('The value to store. When field is provided, this can be any type (string, number, boolean, object, array) and is stored as { [field]: data }. When field is omitted, data must be a JSON object whose keys merge into existing data.'),
|
|
47
47
|
tags: zod_1.z.array(zod_1.z.string()).optional().describe('Categorization tags (unioned on upsert)'),
|
|
48
|
+
label: zod_1.z.string().min(1).optional().describe('A name for the edition this write leaves current; lookup refs may pin it as their version'),
|
|
48
49
|
});
|
|
49
50
|
const getSchema = zod_1.z.object({
|
|
50
51
|
domain: zod_1.z.string().describe('Knowledge domain'),
|
|
51
52
|
key: zod_1.z.string().describe('Document key'),
|
|
52
|
-
version: zod_1.z.number().int().min(1).optional().describe('Fetch this immutable edition instead of the live entry'),
|
|
53
|
+
version: zod_1.z.union([zod_1.z.number().int().min(1), zod_1.z.string().min(1)]).optional().describe('Fetch this immutable edition, by number or by the label it carries, instead of the live entry'),
|
|
53
54
|
});
|
|
54
55
|
const listVersionsSchema = zod_1.z.object({
|
|
55
56
|
domain: zod_1.z.string().describe('Knowledge domain'),
|
|
@@ -90,6 +91,7 @@ const appendSchema = zod_1.z.object({
|
|
|
90
91
|
key: zod_1.z.string().describe('Document key'),
|
|
91
92
|
path: zod_1.z.string().describe('JSONB path to array field (e.g. "screenshots" or "analysis.variations")'),
|
|
92
93
|
value: zod_1.z.any().refine((v) => v !== undefined, 'value is required').describe('Value to append to the array'),
|
|
94
|
+
label: zod_1.z.string().min(1).optional().describe('A name for the edition this write leaves current; lookup refs may pin it as their version'),
|
|
93
95
|
});
|
|
94
96
|
function registerTools(server) {
|
|
95
97
|
server.registerTool('store_knowledge', {
|
|
@@ -124,7 +126,7 @@ function registerTools(server) {
|
|
|
124
126
|
dataObj = args.data;
|
|
125
127
|
}
|
|
126
128
|
const result = await knowledge.storeKnowledge({
|
|
127
|
-
domain: args.domain, key: args.key, data: dataObj, tags: args.tags,
|
|
129
|
+
domain: args.domain, key: args.key, data: dataObj, tags: args.tags, label: args.label,
|
|
128
130
|
});
|
|
129
131
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
130
132
|
});
|
|
@@ -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>;
|