@makaio/framework 1.0.0-dev-1779051654000 → 1.0.0-dev-1781023871421
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/LICENSE +1 -1
- package/dist/.makaio-build.json +5 -0
- package/dist/account-identity-DT5NOtFi.mjs +1 -0
- package/dist/adapter-C1eI-fGV.mjs +1 -0
- package/dist/adapters/acp-client/index.d.mts +6013 -14
- package/dist/adapters/acp-client/index.mjs +3 -1
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +47 -20
- package/dist/adapters/index.mjs +13 -6
- package/dist/adapters/node.d.mts +4 -4
- package/dist/adapters/node.mjs +4 -4
- package/dist/adapters/stream-session/index.d.mts +30 -0
- package/dist/adapters/stream-session/index.mjs +1 -1
- package/dist/artifact-B3npq1cy.mjs +1 -0
- package/dist/bus/index.d.mts +866 -203
- package/dist/bus/index.mjs +1 -1
- package/dist/bus-Caz3Jpbc.mjs +1 -0
- package/dist/bus-Hb-LGzgb.mjs +2 -0
- package/dist/chunk-DTipWd-i.mjs +1 -0
- package/dist/client-bx74gm4R.mjs +1 -0
- package/dist/clients/index.d.mts +113 -35
- package/dist/clients/index.mjs +2 -2
- package/dist/{clients-namespace-UHj5wt-l.d.mts → clients-namespace-GmSJpBUV.d.mts} +8 -8
- package/dist/{config-namespace-ChZOpi1W.d.mts → config-namespace-CPY9YsR8.d.mts} +4 -4
- package/dist/contracts/adapter/index.d.mts +3 -3
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -0
- package/dist/contracts/artifact/index.mjs +1 -0
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +8 -8
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +4 -3
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +2 -0
- package/dist/contracts/facet/index.mjs +1 -0
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/harness/index.mjs +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/host/index.mjs +1 -1
- package/dist/contracts/index.d.mts +12370 -1990
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +4 -0
- package/dist/contracts/materialization/index.mjs +1 -0
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/provider/index.mjs +1 -1
- package/dist/contracts/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/shared/index.mjs +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/skill/index.mjs +1 -1
- package/dist/contracts/telemetry/index.d.mts +2 -0
- package/dist/contracts/telemetry/index.mjs +1 -0
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/timeout/index.mjs +1 -1
- package/dist/contracts/toast/index.d.mts +2 -2
- package/dist/contracts/toast/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/variant/index.mjs +1 -1
- package/dist/core/index.d.mts +296 -34
- package/dist/core/index.mjs +1 -1
- package/dist/{credential-ref-DLCsoKVZ.mjs → credential-ref-YWQQENEo.mjs} +1 -1
- package/dist/cursor-storage-CtVJ3JzB.mjs +1 -0
- package/dist/{definition-DB7bbFSa.d.mts → definition-BLCdXGzh.d.mts} +17 -3
- package/dist/definition-CrgHIpTK.d.mts +60 -0
- package/dist/{definition-DkYy1PZz.mjs → definition-DZMXOnjX.mjs} +1 -1
- package/dist/{definition-DtUNiGom.d.mts → definition-pkJ6szUl.d.mts} +1 -1
- package/dist/drizzle-Eq8W1EbD.mjs +1 -0
- package/dist/event-Ca2yUf5i.mjs +1 -0
- package/dist/execution-target-CRPTfZlc.mjs +1 -0
- package/dist/extension-C-4BHMRI.mjs +1 -0
- package/dist/extension-CpIUgBKI.mjs +1 -0
- package/dist/facet-BuwhrThl.mjs +1 -0
- package/dist/filesystem-service-B8rhBRgB.mjs +1 -0
- package/dist/filesystem-service-p_iJVHd4.d.mts +66 -0
- package/dist/git/index.d.mts +210 -0
- package/dist/git/index.mjs +18 -0
- package/dist/globby-rtWVaFHv.mjs +41 -0
- package/dist/{handlers-DR_4_rAT.mjs → handlers-CkTsQLra.mjs} +3 -3
- package/dist/{harness-B6lGP9rm.mjs → harness-BRCMcvQN.mjs} +1 -1
- package/dist/{host-CvEht5RT.mjs → host-Br9VuOyr.mjs} +1 -1
- package/dist/{index-WKjrpcA_.d.mts → index-472sOmsW.d.mts} +6 -6
- package/dist/index-8SZkg7s6.d.mts +353 -0
- package/dist/index-B3PK4FIn.d.mts +5116 -0
- package/dist/{index-D2jejYlV.d.mts → index-B80L4YqA.d.mts} +3 -3
- package/dist/index-BFg9BUpx.d.mts +355 -0
- package/dist/index-BGfWS6GE.d.mts +483 -0
- package/dist/{index-DQRsGXb5.d.mts → index-BVgfS-AJ.d.mts} +2 -2
- package/dist/{index-CnmPtjnA.d.mts → index-B_zQC98V.d.mts} +16 -16
- package/dist/{index-DaEp4UWW.d.mts → index-Bh_Ne7LF.d.mts} +54 -42
- package/dist/{index-yvN8UcEH.d.mts → index-Bvb2mMH6.d.mts} +109 -109
- package/dist/{index-tKvu34DJ2.d.mts → index-CCGVh9BF2.d.mts} +242 -28
- package/dist/{index-C-myW_aK.d.mts → index-CGmcS0Ma.d.mts} +2 -2
- package/dist/{index-DEw90pa2.d.mts → index-CLpjm52M.d.mts} +3 -3
- package/dist/{index-DQWMu5fS.d.mts → index-Caig6TeF.d.mts} +85 -99
- package/dist/{index-DwCA1HWa.d.mts → index-CelJCBjk.d.mts} +15 -15
- package/dist/{index-ESSDWIB7.d.mts → index-ChunCFu4.d.mts} +1 -1
- package/dist/{index-e5C62_M3.d.mts → index-Cm0dUkWL.d.mts} +819 -85
- package/dist/{index-N5K1NOYs.d.mts → index-CokQYGVP.d.mts} +4 -4
- package/dist/{index-Bigx81Kr.d.mts → index-Cs0kZXIz2.d.mts} +1 -1
- package/dist/{index-6lyShOoU.d.mts → index-D5d5HeWI2.d.mts} +34 -0
- package/dist/{index-sBob9D25.d.mts → index-D90OmGmV.d.mts} +3 -3
- package/dist/{index-D1T-PPqF.d.mts → index-D9MwJ2Q8.d.mts} +3 -3
- package/dist/{index-BePI0ckL.d.mts → index-DANINzMu.d.mts} +1 -1
- package/dist/{index-BnSQE7z7.d.mts → index-DBw-89vC2.d.mts} +129 -1332
- package/dist/{index-C_kS2aqV2.d.mts → index-DGBu6bHi2.d.mts} +14 -14
- package/dist/index-DKC62dY5.d.mts +146 -0
- package/dist/{index-7sXlairn2.d.mts → index-DKia0MX1.d.mts} +1 -1
- package/dist/{index-E8d_RwaF.d.mts → index-DMKnON5s.d.mts} +1 -1
- package/dist/{index-Cq8B7cwK.d.mts → index-DUaw0Dw8.d.mts} +1524 -369
- package/dist/{index-Dd5s4MSm.d.mts → index-De3kPhlN.d.mts} +2 -2
- package/dist/{index-DGTFJB_8.d.mts → index-L4GjJDKb.d.mts} +116 -23
- package/dist/{index-iID2R9G1.d.mts → index-U-A8eyGT.d.mts} +7 -7
- package/dist/{index-D7T8XCku.d.mts → index-eemAKwsB.d.mts} +23 -2
- package/dist/{index-BXP9GK5q.d.mts → index-mNec7V-9.d.mts} +27 -27
- package/dist/{index-CnZOKNjU.d.mts → index-soFznFCy2.d.mts} +2 -2
- package/dist/{index-Ch3ph52M2.d.mts → index-vtXJuwrz.d.mts} +2 -2
- package/dist/{index-BnNqbx2I.d.mts → index-x_lVDp_J.d.mts} +2 -2
- package/dist/json-value-CmhSGMLv.mjs +1 -0
- package/dist/kernel/cli/index.d.mts +4 -2
- package/dist/kernel/cli/index.mjs +1 -1
- package/dist/kernel/cli/schemas.d.mts +1 -0
- package/dist/kernel/cli/schemas.mjs +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/materialization-CuUBu4XI.mjs +1 -0
- package/dist/{namespace-BpIE-jQW.d.mts → namespace-5QQqbF-B.d.mts} +1018 -111
- package/dist/{namespace-DwCyOaZn2.d.mts → namespace-BM7Djng9.d.mts} +3 -3
- package/dist/namespace-BwzZJqTV.mjs +1 -0
- package/dist/{namespace-DZcuLwEA.d.mts → namespace-CTm3nEvh.d.mts} +1 -1
- package/dist/{namespace-BK2erxpV.d.mts → namespace-CaaNnKcR.d.mts} +3 -3
- package/dist/{namespace-GLGGcWPH.d.mts → namespace-CaoZ3S78.d.mts} +1 -1
- package/dist/{namespace-DXnMk3U8.d.mts → namespace-CxhsoFUP.d.mts} +27 -31
- package/dist/{namespace-B1E57soL.d.mts → namespace-DD8Oiqo7.d.mts} +23 -23
- package/dist/{namespace-BCRNwPnw.d.mts → namespace-DLovh2Ws.d.mts} +21 -21
- package/dist/{namespace-Ysg1N6rR.d.mts → namespace-DgqkaOVu.d.mts} +26 -25
- package/dist/{namespace-B5ZCshBw.d.mts → namespace-Dr8K0MCp.d.mts} +82 -81
- package/dist/{namespace-DGMO2E8f.mjs → namespace-DuXK5AYN.mjs} +1 -1
- package/dist/{namespace-ZbthBQVt.d.mts → namespace-EQniz-Aw.d.mts} +14 -14
- package/dist/{namespace-C54Oj025.d.mts → namespace-IV1QK__V.d.mts} +1 -1
- package/dist/{namespace-BKrV_2gZ.d.mts → namespace-TyiTsLFv.d.mts} +46 -45
- package/dist/{namespace-OwAf1Brw.mjs → namespace-xcmbQlxh.mjs} +1 -1
- package/dist/{native-session-supervisor-zPt624Tp.mjs → native-session-supervisor-B1TnaPUF.mjs} +1 -1
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/node/machine-identity/index.mjs +2 -2
- package/dist/node/transports/index.d.mts +200 -7
- package/dist/node/transports/index.mjs +2 -2
- package/dist/{orchestrator-shared-D2txLAUs.mjs → orchestrator-shared-CIDiFJMD.mjs} +1 -1
- package/dist/{orchestrator-shared-DrjtTXYh.d.mts → orchestrator-shared-Dfa7FMyw.d.mts} +5 -5
- package/dist/package-DKVlsMP3.mjs +1 -0
- package/dist/{profile-Cq4A7kQa.mjs → profile-6ynCD5k3.mjs} +1 -1
- package/dist/{provider-context-BB4eD8ON.mjs → provider-context-CK6B4X_8.mjs} +1 -1
- package/dist/providers/index.mjs +1 -1
- package/dist/{providers-namespace-CDwxY_DV.d.mts → providers-namespace-DSEpli4A.d.mts} +1 -1
- package/dist/{schema-B295yplx.d.mts → schema-M5YTvSAG.d.mts} +114 -2
- package/dist/{schema-C4iznV0q.mjs → schema-e0wU_lcV.mjs} +1 -1
- package/dist/{schema-introspection-DCYC47_d.mjs → schema-introspection-Dn1jWQs1.mjs} +1 -1
- package/dist/{schemas-C5xtVqdb.d.mts → schemas-Bd0OjRQf.d.mts} +1 -1
- package/dist/{schemas-Ra8pz5M-.d.mts → schemas-C46QfKzv.d.mts} +24 -28
- package/dist/{schemas-sshQEF3l.d.mts → schemas-CDBSjg7o.d.mts} +1 -1
- package/dist/schemas-CR1Rripy.mjs +1 -0
- package/dist/schemas-CVvwIfG4.mjs +1 -0
- package/dist/schemas-CaLhkkLn.mjs +1 -0
- package/dist/{schemas-DYqKRNju.d.mts → schemas-ClOOT1W6.d.mts} +4 -4
- package/dist/{schemas-BfMZAwff.d.mts → schemas-DATniTHb.d.mts} +8 -8
- package/dist/{schemas-BWvuaL0w.d.mts → schemas-DVF1A4DF.d.mts} +4 -4
- package/dist/{schemas-Di0XnnMX.d.mts → schemas-DaRSfYLf.d.mts} +1 -1
- package/dist/{schemas-C31qbb0s.d.mts → schemas-DiYVzG6e.d.mts} +51 -48
- package/dist/{schemas-KMA1efQg.d.mts → schemas-j7ivZ2HI.d.mts} +3 -3
- package/dist/schemas-wg_6PAdV.d.mts +153 -0
- package/dist/scoped-bus-04pwo1uM.mjs +1 -0
- package/dist/service-base/index.d.mts +1 -1
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/index.mjs +1 -1
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/capability/index.d.mts +1 -1
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/cli-detection/namespace.d.mts +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +4 -4
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/credential-change/index.d.mts +1 -1
- package/dist/services/definition/namespace.d.mts +1 -1
- package/dist/services/definition/schemas.d.mts +1 -1
- package/dist/services/dialog/namespace.d.mts +1 -1
- package/dist/services/dialog/schemas.d.mts +1 -1
- package/dist/services/execution-target/index.d.mts +4 -4
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +3 -0
- package/dist/services/filesystem/index.mjs +1 -0
- package/dist/services/filesystem/namespace.d.mts +7 -7
- package/dist/services/filesystem/schemas.d.mts +4 -4
- package/dist/services/git/namespace.d.mts +1163 -0
- package/dist/services/git/namespace.mjs +1 -0
- package/dist/services/git/schemas.d.mts +932 -0
- package/dist/services/git/schemas.mjs +1 -0
- package/dist/services/harness/index.d.mts +35 -35
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/harness/storage/schema.d.mts +5 -5
- package/dist/services/index.d.mts +1411 -928
- package/dist/services/index.mjs +1 -1
- package/dist/services/local-notification/index.d.mts +1 -1
- package/dist/services/local-notification/namespace.d.mts +1 -1
- package/dist/services/local-notification/schemas.d.mts +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +23 -24
- package/dist/services/log-import/index.mjs +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.d.mts +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.d.mts +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.d.mts +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +10 -10
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.d.mts +2 -2
- package/dist/services/session/testing/index.mjs +16 -3
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/turns/namespace.mjs +1 -1
- package/dist/services/session-editor/index.d.mts +3 -3
- package/dist/services/session-editor/index.mjs +1 -1
- package/dist/services/settings/index.d.mts +4 -4
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +19 -18
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +4 -4
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +2 -0
- package/dist/services/subagent/index.mjs +1 -0
- package/dist/services/subagent-template/index.d.mts +3 -0
- package/dist/services/subagent-template/index.mjs +1 -0
- package/dist/services/subagent-template/namespace.d.mts +2 -0
- package/dist/services/subagent-template/namespace.mjs +1 -0
- package/dist/services/subagent-template/schemas.d.mts +2 -0
- package/dist/services/subagent-template/schemas.mjs +1 -0
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/turn/schemas.d.mts +12 -12
- package/dist/session-BoldSdNZ2.mjs +134 -0
- package/dist/session-DuVOYctZ.mjs +1 -0
- package/dist/{session-lineage-B0cpHfuc.d.mts → session-lineage-CRsc9g1x.d.mts} +1 -1
- package/dist/shared-DpOEfD8F.mjs +1 -0
- package/dist/{skill-20_SBXaI.mjs → skill-CQO4mDqK.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +2 -2
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +49 -10
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +2 -2
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/storage/index.d.mts +4 -4
- package/dist/{storage-namespace-DoH-Wkjp.d.mts → storage-namespace-BXkoh5Sy.d.mts} +11 -11
- package/dist/storage-namespace-DWsYLAXa.mjs +1 -0
- package/dist/{storage-namespace-definition-CJgqyXH1.d.mts → storage-namespace-definition-Bkx5rSto.d.mts} +1 -1
- package/dist/style.css +540 -540
- package/dist/telemetry-CvdLBWuk.mjs +1 -0
- package/dist/testing/drizzle-harness.mjs +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/tool-approval-service-BvZWhYZp.mjs +1 -0
- package/dist/tools/index.d.mts +20 -10
- package/dist/tools/index.mjs +1 -1
- package/dist/tools/testing/index.d.mts +1 -1
- package/dist/tools-D-luYcDw.mjs +1431 -0
- package/dist/{types-C11LvekX.d.mts → types-BCMUtBj1.d.mts} +117 -20
- package/dist/{types-vNpkAe4Y.d.mts → types-C2Ob9zz_.d.mts} +1 -1
- package/dist/{types-t295YC6T.d.mts → types-CCdqjeuH.d.mts} +2 -2
- package/dist/{types-Cvrj2ogm.d.mts → types-DZHvOc_Q.d.mts} +4 -4
- package/dist/{types--nrtGZ1V.d.mts → types-Dy3YTcTF.d.mts} +255 -97
- package/dist/{types-DYF5LxZY.d.mts → types-MfJZ67e9.d.mts} +91 -9
- package/dist/{types-6WxLfoM3.d.mts → types-dyP-bXXE.d.mts} +1 -1
- package/dist/ui-components/index.mjs +2 -2
- package/dist/ui-hooks/index.d.mts +111 -1
- package/dist/ui-hooks/index.mjs +1 -1
- package/dist/ui-kernel/index.d.mts +4 -4
- package/dist/ui-kernel/pages/namespace.d.mts +4 -4
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/ui-views/index.mjs +2 -2
- package/dist/utils/index.d.mts +36 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/utils/project-manifest.d.mts +130 -0
- package/dist/utils/project-manifest.mjs +1 -0
- package/dist/utils/scope-paths.d.mts +33 -0
- package/dist/utils/scope-paths.mjs +1 -0
- package/dist/utils/workspace-packages.d.mts +59 -0
- package/dist/utils/workspace-packages.mjs +1 -0
- package/dist/utils/workspace-root.d.mts +6 -9
- package/dist/utils/workspace-root.mjs +1 -1
- package/dist/{version-D8S4O22A.mjs → version-BeT3ASEe.mjs} +1 -1
- package/package.json +55 -2
- package/dist/account-identity-Bg_vKkcs.mjs +0 -1
- package/dist/adapter-CpF2aK_-.mjs +0 -1
- package/dist/bus-B1seC4M_.mjs +0 -2
- package/dist/chunk-Dc06z0qk.mjs +0 -1
- package/dist/client-DMWXCWhM.mjs +0 -1
- package/dist/cursor-storage-BoNI7OAR.mjs +0 -1
- package/dist/drizzle-Bn2GtW8c.mjs +0 -1
- package/dist/execution-target-D6MgthYs.mjs +0 -1
- package/dist/extension-53GerdGg.mjs +0 -1
- package/dist/extension-fJmv8Yri.mjs +0 -1
- package/dist/namespace-C_h7scWx2.mjs +0 -1
- package/dist/schemas-Bn8aqDIE.mjs +0 -1
- package/dist/services/worker/index.d.mts +0 -3
- package/dist/services/worker/index.mjs +0 -1
- package/dist/services/worker/namespace.d.mts +0 -2
- package/dist/services/worker/namespace.mjs +0 -1
- package/dist/services/worker/schemas.d.mts +0 -2
- package/dist/services/worker/schemas.mjs +0 -1
- package/dist/session-BCSf-Fgj.mjs +0 -1
- package/dist/session-BNo_cIiz.mjs +0 -123
- package/dist/shared-BhuSHZXH.mjs +0 -1
- package/dist/storage-namespace-BIDs9LPb.mjs +0 -1
- package/dist/tool-approval-service-CZCPfvVy.mjs +0 -1
- package/dist/tools-Cid9D99F.mjs +0 -1
- /package/dist/{base-orchestrator-BOAPgqF7.d.mts → base-orchestrator-wyumsn3b.d.mts} +0 -0
- /package/dist/{capability-service-DV32ecwR.mjs → capability-service-CJbmhfv9.mjs} +0 -0
- /package/dist/{cleanEnvForAdapter-hTPNvPU5.mjs → cleanEnvForAdapter-KkYzQa1f.mjs} +0 -0
- /package/dist/{config-namespace-wJ2CakDB.mjs → config-namespace-ncYg2ct_.mjs} +0 -0
- /package/dist/{extension-namespace-CTd9kOtt.mjs → extension-namespace-cMh_mMiL.mjs} +0 -0
- /package/dist/{identity-DBST3-XO.mjs → identity-Cz2IeEtm.mjs} +0 -0
- /package/dist/{index-SzSiyG61.d.mts → index-CHQ1SqT0.d.mts} +0 -0
- /package/dist/{model-registry-xINyxQUT.mjs → model-registry-CfXytvzx.mjs} +0 -0
- /package/dist/{model-registry-Dzpssh9j.mjs → model-registry-Scn_MC2d.mjs} +0 -0
- /package/dist/{namespace-DBw9BYr8.mjs → namespace-BoD94mrN.mjs} +0 -0
- /package/dist/{namespace-DUVgMfTR.mjs → namespace-CFLAmQfh.mjs} +0 -0
- /package/dist/{namespace-aALq9tnE.mjs → namespace-DkRgbZYn.mjs} +0 -0
- /package/dist/{namespace-yxIxUsjo.mjs → namespace-LViZ-EQk.mjs} +0 -0
- /package/dist/{namespace-Zb8HAbyF.mjs → namespace-Yna5-Pws.mjs} +0 -0
- /package/dist/{platform-BMFUpmTA.mjs → platform-DZ7z-wXD.mjs} +0 -0
- /package/dist/{providers-DhiW_fx4.mjs → providers-u8i15co9.mjs} +0 -0
- /package/dist/{schema-D3ZG13h9.mjs → schema-CoyE6mPt.mjs} +0 -0
- /package/dist/{schemas-CEBe89yE.mjs → schemas-DE-GNmSD.mjs} +0 -0
- /package/dist/{schemas-COnLJnt_.mjs → schemas-hSrzflwZ.mjs} +0 -0
- /package/dist/{schemas-CrnlCRep.mjs → schemas-jFe1AuI-.mjs} +0 -0
- /package/dist/{server-lifecycle-Dx5WgfoS.mjs → server-lifecycle-FXTPW39-.mjs} +0 -0
- /package/dist/{server-lifecycle-BC6FRn86.d.mts → server-lifecycle-YoSGFGnU.d.mts} +0 -0
- /package/dist/{shared-schemas-Byah36lG.mjs → shared-schemas-CPShiLNp.mjs} +0 -0
- /package/dist/{storage-namespace-definition-BjK9nZAN.mjs → storage-namespace-definition-CqSdsuCC.mjs} +0 -0
- /package/dist/{timeout-D33CUZ0M.mjs → timeout-XsYIOKrc.mjs} +0 -0
- /package/dist/{tray-menu-service-BAYtLdAg.mjs → tray-menu-service-DuXq5k22.mjs} +0 -0
- /package/dist/{ui-config-zawaoEfB.mjs → ui-config-9bDRwFZr.mjs} +0 -0
- /package/dist/{variant-BZWfmS0q.mjs → variant-CT6XBP6T.mjs} +0 -0
- /package/dist/{visibility-CZu8ooOA.mjs → visibility-Cb62p9bv.mjs} +0 -0
- /package/dist/{window-registry-C_IJmY8_.d.mts → window-registry-CBcrGTv4.d.mts} +0 -0
- /package/dist/{window-registry-B_-hBEcV.mjs → window-registry-DW-dKRjQ.mjs} +0 -0
package/dist/bus/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { ZodType, z } from "zod";
|
|
|
3
3
|
import { Paths, Simplify, UnknownRecord } from "type-fest";
|
|
4
4
|
import * as _$zod_v4_core0 from "zod/v4/core";
|
|
5
5
|
|
|
6
|
-
//#region
|
|
6
|
+
//#region core/makaio-core/src/types/message.d.ts
|
|
7
7
|
/**
|
|
8
8
|
* Host-agnostic principal attached by a trusted local transport.
|
|
9
9
|
*
|
|
@@ -49,6 +49,18 @@ interface TransportReceiveContext {
|
|
|
49
49
|
/** Optional host-agnostic principal resolved for this connection. */
|
|
50
50
|
readonly principal?: PrincipalContext;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Describes the call origin of a bus message.
|
|
54
|
+
*
|
|
55
|
+
* Set on every context before handlers run; never serialized to wire.
|
|
56
|
+
* Derivation: `local` is `true` when no transport received the message
|
|
57
|
+
* (the call originated in this process), `false` when it arrived over
|
|
58
|
+
* a transport from a remote peer.
|
|
59
|
+
*/
|
|
60
|
+
interface MessageOrigin {
|
|
61
|
+
/** Whether the message originated locally (not from a remote transport). */
|
|
62
|
+
readonly local: boolean;
|
|
63
|
+
}
|
|
52
64
|
/**
|
|
53
65
|
* Base message context interface for both events and requests.
|
|
54
66
|
*
|
|
@@ -100,6 +112,16 @@ interface BaseMessageContext {
|
|
|
100
112
|
* context. Never trust similarly named fields in payloads or wire messages.
|
|
101
113
|
*/
|
|
102
114
|
transport?: TransportReceiveContext;
|
|
115
|
+
/**
|
|
116
|
+
* Where this message originated.
|
|
117
|
+
*
|
|
118
|
+
* `local: true` — emitted in this process.
|
|
119
|
+
* `local: false` — arrived via a transport from a remote caller.
|
|
120
|
+
*
|
|
121
|
+
* Always present; never serialized to the wire. Location-sensitive handlers
|
|
122
|
+
* check this before executing local side-effects.
|
|
123
|
+
*/
|
|
124
|
+
origin: MessageOrigin;
|
|
103
125
|
isRequest: boolean;
|
|
104
126
|
}
|
|
105
127
|
type EventMessagePayload<Payload extends UnknownRecord = UnknownRecord> = Payload & {
|
|
@@ -112,7 +134,7 @@ type RequestMessagePayload<Request extends UnknownRecord = UnknownRecord, Respon
|
|
|
112
134
|
};
|
|
113
135
|
type MessagePayload = RequestMessagePayload | EventMessagePayload;
|
|
114
136
|
//#endregion
|
|
115
|
-
//#region
|
|
137
|
+
//#region core/makaio-core/src/types/context.d.ts
|
|
116
138
|
/**
|
|
117
139
|
* Context object passed to event handlers when using wildcard patterns.
|
|
118
140
|
*
|
|
@@ -139,6 +161,7 @@ interface EventContext<Payload> extends BaseMessageContext {
|
|
|
139
161
|
* - `next`: Function to call the next handler in the middleware chain
|
|
140
162
|
* - `replacePayload`: Function to transform the payload for subsequent handlers
|
|
141
163
|
* - `identify`: Optional function to identify the handler for broadcast aggregation
|
|
164
|
+
* - `signal`: Optional AbortSignal from the originating request
|
|
142
165
|
* - Message tracking fields from BaseMessage (messageId, correlationId)
|
|
143
166
|
*/
|
|
144
167
|
interface RequestContext<Payload, Response> extends BaseMessageContext {
|
|
@@ -146,6 +169,8 @@ interface RequestContext<Payload, Response> extends BaseMessageContext {
|
|
|
146
169
|
isRequest: true;
|
|
147
170
|
/** The request payload */
|
|
148
171
|
payload: Payload;
|
|
172
|
+
/** AbortSignal supplied by the originating request, if any. */
|
|
173
|
+
signal?: AbortSignal;
|
|
149
174
|
/** Set the response value (ends the handler chain) */
|
|
150
175
|
setResult: (result: Response) => void;
|
|
151
176
|
/**
|
|
@@ -201,7 +226,7 @@ interface RequestContext<Payload, Response> extends BaseMessageContext {
|
|
|
201
226
|
*/
|
|
202
227
|
type WildcardContext<Payload = unknown, Response = unknown> = EventContext<Payload> | RequestContext<Payload, Response>;
|
|
203
228
|
//#endregion
|
|
204
|
-
//#region
|
|
229
|
+
//#region core/makaio-core/src/types/filter.d.ts
|
|
205
230
|
type Primitive = string | number | boolean | null;
|
|
206
231
|
/**
|
|
207
232
|
* Filter operators for payload field matching.
|
|
@@ -261,7 +286,7 @@ type PayloadFilter = Record<string, FilterOperator>;
|
|
|
261
286
|
*/
|
|
262
287
|
type TypedPayloadFilter<T> = { [K in Paths<T> & string]?: FilterOperator };
|
|
263
288
|
//#endregion
|
|
264
|
-
//#region
|
|
289
|
+
//#region core/makaio-core/src/types/schema.d.ts
|
|
265
290
|
/**
|
|
266
291
|
* Schema definition for event subjects (fire-and-forget).
|
|
267
292
|
* Events have only a payload schema, no response.
|
|
@@ -294,6 +319,17 @@ type LocalSubjectSchema<T extends EventSchema | RequestSchema = EventSchema | Re
|
|
|
294
319
|
readonly __local: true;
|
|
295
320
|
readonly schema: T;
|
|
296
321
|
};
|
|
322
|
+
/**
|
|
323
|
+
* Wrapper to mark an event subject as collector-only.
|
|
324
|
+
*
|
|
325
|
+
* Collector-only events may be received from a transport and delivered to local
|
|
326
|
+
* handlers, but the receiving bus must not relay them onward to other
|
|
327
|
+
* transports. Local emits are also kept local.
|
|
328
|
+
*/
|
|
329
|
+
type CollectorOnlySubjectSchema<T extends EventSchema = EventSchema> = {
|
|
330
|
+
readonly __collectorOnly: true;
|
|
331
|
+
readonly schema: T;
|
|
332
|
+
};
|
|
297
333
|
/**
|
|
298
334
|
* Wrapper to mark a subject as channel-only (encrypted point-to-point).
|
|
299
335
|
*
|
|
@@ -317,31 +353,46 @@ type ChannelSubjectSchema<T extends EventSchema | RequestSchema = EventSchema |
|
|
|
317
353
|
readonly __channel: true;
|
|
318
354
|
readonly schema: T;
|
|
319
355
|
};
|
|
356
|
+
/**
|
|
357
|
+
* Wrapper to set a subject-level default transport routing policy.
|
|
358
|
+
*
|
|
359
|
+
* This is weaker than `localSubject()`: the subject remains routable remotely,
|
|
360
|
+
* but local callers that omit an explicit `transports` option use this default.
|
|
361
|
+
*/
|
|
362
|
+
type DefaultTransportsSubjectSchema<T extends EventSchema | RequestSchema = EventSchema | RequestSchema, Default extends TransportRoutingDefault = TransportRoutingDefault> = {
|
|
363
|
+
readonly __defaultTransports: Default;
|
|
364
|
+
readonly schema: T;
|
|
365
|
+
};
|
|
320
366
|
/**
|
|
321
367
|
* Base schema types (unwrapped).
|
|
322
368
|
*/
|
|
323
369
|
type BaseSubjectSchema = EventSchema | RequestSchema;
|
|
324
370
|
/**
|
|
325
|
-
* Union of all subject schema types (including
|
|
371
|
+
* Union of all subject schema types (including metadata wrappers).
|
|
326
372
|
*/
|
|
327
|
-
type SubjectSchema = BaseSubjectSchema | LocalSubjectSchema | ChannelSubjectSchema;
|
|
373
|
+
type SubjectSchema = BaseSubjectSchema | LocalSubjectSchema | CollectorOnlySubjectSchema | ChannelSubjectSchema | DefaultTransportsSubjectSchema;
|
|
328
374
|
type SchemaRecord = Record<string, SubjectSchema>;
|
|
329
375
|
//#endregion
|
|
330
|
-
//#region
|
|
376
|
+
//#region core/makaio-core/src/types/type-helpers.d.ts
|
|
331
377
|
/**
|
|
332
|
-
* Unwrap
|
|
333
|
-
*
|
|
378
|
+
* Unwrap subject schema wrappers if present. Returns the inner schema for
|
|
379
|
+
* wrapped subjects, or the schema as-is otherwise.
|
|
334
380
|
*/
|
|
335
381
|
type UnwrapSchema<S> = S extends {
|
|
336
382
|
readonly __local: true;
|
|
337
383
|
readonly schema: infer Inner;
|
|
384
|
+
} ? Inner : S extends {
|
|
385
|
+
readonly __collectorOnly: true;
|
|
386
|
+
readonly schema: infer Inner;
|
|
338
387
|
} ? Inner : S extends {
|
|
339
388
|
readonly __channel: true;
|
|
340
389
|
readonly schema: infer Inner;
|
|
390
|
+
} ? Inner : S extends {
|
|
391
|
+
readonly __defaultTransports: TransportRoutingDefault;
|
|
392
|
+
readonly schema: infer Inner;
|
|
341
393
|
} ? Inner : S;
|
|
342
394
|
/**
|
|
343
|
-
* Infer payload type from schema
|
|
344
|
-
* LocalSubjectSchema, and ChannelSubjectSchema).
|
|
395
|
+
* Infer payload type from schema, including subject metadata wrappers.
|
|
345
396
|
*
|
|
346
397
|
* For requests:
|
|
347
398
|
* - Uses z.input for request (what callers pass before validation/defaults)
|
|
@@ -350,8 +401,7 @@ type UnwrapSchema<S> = S extends {
|
|
|
350
401
|
* This allows schemas with .default() to have optional fields in the caller API
|
|
351
402
|
* while the response type reflects the validated output.
|
|
352
403
|
*
|
|
353
|
-
*
|
|
354
|
-
* unwrapped before inference.
|
|
404
|
+
* Subject schema wrappers are automatically unwrapped before inference.
|
|
355
405
|
*
|
|
356
406
|
* Idempotent: Returns already-inferred types as-is.
|
|
357
407
|
*/
|
|
@@ -367,7 +417,7 @@ type InferSchemaPayloadInner<S> = S extends {
|
|
|
367
417
|
* Compute all subject meta from the original schema in one place.
|
|
368
418
|
*
|
|
369
419
|
* Resolves payload, locality, channel membership, request/event discriminator,
|
|
370
|
-
* and namespace from a raw SubjectSchema.
|
|
420
|
+
* default transport routing, and namespace from a raw SubjectSchema.
|
|
371
421
|
* @typeParam S - The subject schema type
|
|
372
422
|
* @typeParam Ns - The namespace string
|
|
373
423
|
*/
|
|
@@ -380,10 +430,23 @@ type InferSubjectMeta<S extends SubjectSchema, Ns extends string> = {
|
|
|
380
430
|
channel: S extends ChannelSubjectSchema ? true : false; /** Inferred payload type (request/response pair or event payload). */
|
|
381
431
|
payload: InferSchemaPayload<S>; /** The namespace this subject belongs to. */
|
|
382
432
|
namespace: Ns;
|
|
383
|
-
}
|
|
433
|
+
} & (S extends DefaultTransportsSubjectSchema<EventSchema | RequestSchema, infer Default> ? {
|
|
434
|
+
defaultTransports: Default;
|
|
435
|
+
} : {
|
|
436
|
+
defaultTransports?: TransportRoutingDefault;
|
|
437
|
+
});
|
|
384
438
|
//#endregion
|
|
385
|
-
//#region
|
|
439
|
+
//#region core/makaio-core/src/types/subjects.d.ts
|
|
386
440
|
type SubjectRecord<SubjectKeys extends string = string, Payload extends MessagePayload = MessagePayload> = Record<SubjectKeys, Payload>;
|
|
441
|
+
/**
|
|
442
|
+
* Default transport routing semantics for a subject or namespace.
|
|
443
|
+
*
|
|
444
|
+
* - `'all'` — send to all registered transports (the default when omitted).
|
|
445
|
+
* - `'local-only'` — suppress outbound transport fan-out unless the caller
|
|
446
|
+
* explicitly provides a `transports` override. Weaker than `localSubject()`:
|
|
447
|
+
* the subject can still be invoked remotely.
|
|
448
|
+
*/
|
|
449
|
+
type TransportRoutingDefault = 'all' | 'local-only';
|
|
387
450
|
type SubjectRecordFromSchemaRecord<SchemaRecord extends Record<string, SubjectSchema>> = { [K in keyof SchemaRecord & string]: Simplify<InferSchemaPayload<SchemaRecord[K]>> };
|
|
388
451
|
type SubjectDefinitionMeta<Subject extends SubjectRecord = SubjectRecord<'default'>, K extends keyof Subject = keyof Subject, Namespace extends string = string> = {
|
|
389
452
|
isRequest: Subject extends SubjectRecord<'default'> ? boolean : Subject[K] extends RequestMessagePayload ? true : false;
|
|
@@ -399,6 +462,17 @@ type SubjectDefinitionMeta<Subject extends SubjectRecord = SubjectRecord<'defaul
|
|
|
399
462
|
* DirectChannel encrypted point-to-point transport.
|
|
400
463
|
*/
|
|
401
464
|
channel: boolean;
|
|
465
|
+
/**
|
|
466
|
+
* Default transport routing for bus calls on this subject when the caller
|
|
467
|
+
* does not provide an explicit `transports` option.
|
|
468
|
+
*
|
|
469
|
+
* - `'all'` (default) — send to all registered transports as usual.
|
|
470
|
+
* - `'local-only'` — suppress transport fan-out unless the caller explicitly
|
|
471
|
+
* provides a `transports` override. Weaker than `localSubject()`: the
|
|
472
|
+
* subject can still be invoked remotely; only the outbound default is
|
|
473
|
+
* suppressed.
|
|
474
|
+
*/
|
|
475
|
+
defaultTransports?: TransportRoutingDefault;
|
|
402
476
|
};
|
|
403
477
|
type SubjectDefinition<Subject extends SubjectRecord = SubjectRecord, SubjectKey extends keyof Subject = keyof Subject, Namespace extends string = string> = {
|
|
404
478
|
$meta: SubjectDefinitionMeta<Subject, SubjectKey, Namespace>;
|
|
@@ -454,11 +528,11 @@ type AllPropertiesOfUnion<T> = { [K in KeysOfUnion<T>]: ValueOfKey<T, K> };
|
|
|
454
528
|
*/
|
|
455
529
|
type FilterablePayloadIntersection<Subjects extends SubjectRecord> = Simplify<AllPropertiesOfUnion<FilterablePayloadsUnion<Subjects>>>;
|
|
456
530
|
//#endregion
|
|
457
|
-
//#region
|
|
531
|
+
//#region core/makaio-core/src/types/wildcards.d.ts
|
|
458
532
|
type WildcardSubject = '*';
|
|
459
533
|
type WildcardSubjectDefinition<Namespace extends string = string> = SubjectDefinition<Record<'*', MessagePayload>, WildcardSubject, Namespace>;
|
|
460
534
|
//#endregion
|
|
461
|
-
//#region
|
|
535
|
+
//#region core/makaio-core/src/types/handler-types.d.ts
|
|
462
536
|
type EventHandler<T> = (context: EventContext<T>) => void | Promise<void>;
|
|
463
537
|
type RequestHandler<Payload, Response> = (context: RequestContext<Payload, Response>) => void | Promise<void>;
|
|
464
538
|
/**
|
|
@@ -526,7 +600,7 @@ type HandlerForSubjectDefinition<T extends SubjectDefinition> = T['subject'] ext
|
|
|
526
600
|
*/
|
|
527
601
|
type ContextForSubjectDefinition<T extends SubjectDefinition> = T['subject'] extends WildcardSubject ? WildcardContext<unknown, unknown> : T['$meta']['payload'] extends RequestMessagePayload<infer Request, infer Response> ? RequestContext<Request, Response> : T['$meta']['payload'] extends EventMessagePayload<infer Payload> ? EventContext<Payload> : never;
|
|
528
602
|
//#endregion
|
|
529
|
-
//#region
|
|
603
|
+
//#region core/makaio-core/src/types/result.d.ts
|
|
530
604
|
/**
|
|
531
605
|
* Result types for optional request handling.
|
|
532
606
|
*
|
|
@@ -555,7 +629,7 @@ type OptionalResult<T> = {
|
|
|
555
629
|
handled: false;
|
|
556
630
|
};
|
|
557
631
|
//#endregion
|
|
558
|
-
//#region
|
|
632
|
+
//#region core/makaio-core/src/subject-helpers/nest-subject-definitions.d.ts
|
|
559
633
|
/**
|
|
560
634
|
* Recursively nests a flat record of dotted keys into a hierarchical object type.
|
|
561
635
|
*
|
|
@@ -604,7 +678,7 @@ type BusSubjects<RecordOfSubjectDefinitions extends Record<string, unknown> = Re
|
|
|
604
678
|
*/
|
|
605
679
|
declare function getFullSubjectForSubjectDefinition(subject: SubjectDefinition): string;
|
|
606
680
|
//#endregion
|
|
607
|
-
//#region
|
|
681
|
+
//#region core/makaio-core/src/subject-helpers/is-request-schema.d.ts
|
|
608
682
|
/**
|
|
609
683
|
* Type guard to check if a schema is a request schema.
|
|
610
684
|
* @param schema - The schema to check
|
|
@@ -612,7 +686,7 @@ declare function getFullSubjectForSubjectDefinition(subject: SubjectDefinition):
|
|
|
612
686
|
*/
|
|
613
687
|
declare function isRequestSchema(schema: SubjectSchema): schema is RequestSchema;
|
|
614
688
|
//#endregion
|
|
615
|
-
//#region
|
|
689
|
+
//#region core/makaio-core/src/subject-helpers/is-local-schema.d.ts
|
|
616
690
|
/**
|
|
617
691
|
* Create a local-only subject schema wrapper.
|
|
618
692
|
*
|
|
@@ -639,7 +713,19 @@ declare function isRequestSchema(schema: SubjectSchema): schema is RequestSchema
|
|
|
639
713
|
*/
|
|
640
714
|
declare function localSubject<T extends EventSchema | RequestSchema>(schema: T): LocalSubjectSchema<T>;
|
|
641
715
|
//#endregion
|
|
642
|
-
//#region
|
|
716
|
+
//#region core/makaio-core/src/subject-helpers/is-collector-only-schema.d.ts
|
|
717
|
+
/**
|
|
718
|
+
* Create a collector-only event schema wrapper.
|
|
719
|
+
*
|
|
720
|
+
* Collector-only events are transport-ingestable but not transport-relayable:
|
|
721
|
+
* a collector bus can receive them from an upstream peer and handle them
|
|
722
|
+
* locally without pushing them laterally to unrelated peers.
|
|
723
|
+
* @param schema - The event schema to mark as collector-only.
|
|
724
|
+
* @returns A CollectorOnlySubjectSchema wrapper.
|
|
725
|
+
*/
|
|
726
|
+
declare function collectorOnlySubject<T extends EventSchema>(schema: T): CollectorOnlySubjectSchema<T>;
|
|
727
|
+
//#endregion
|
|
728
|
+
//#region core/makaio-core/src/subject-helpers/is-channel-schema.d.ts
|
|
643
729
|
/**
|
|
644
730
|
* Create a channel-only subject schema wrapper.
|
|
645
731
|
*
|
|
@@ -666,7 +752,28 @@ declare function localSubject<T extends EventSchema | RequestSchema>(schema: T):
|
|
|
666
752
|
*/
|
|
667
753
|
declare function channelSubject<T extends EventSchema | RequestSchema>(schema: T): ChannelSubjectSchema<T>;
|
|
668
754
|
//#endregion
|
|
669
|
-
//#region
|
|
755
|
+
//#region core/makaio-core/src/subject-helpers/default-transports-schema.d.ts
|
|
756
|
+
/**
|
|
757
|
+
* Create a subject schema wrapper with a subject-level default transport policy.
|
|
758
|
+
*
|
|
759
|
+
* Use this when one subject should override its namespace's default transport
|
|
760
|
+
* routing while still remaining remotely invokable when a caller explicitly
|
|
761
|
+
* targets a transport.
|
|
762
|
+
* @param schema - The event or request schema to wrap
|
|
763
|
+
* @param value - Default transport routing policy for this subject
|
|
764
|
+
* @returns A DefaultTransportsSubjectSchema wrapper
|
|
765
|
+
* @example
|
|
766
|
+
* ```typescript
|
|
767
|
+
* import { defaultTransports } from '@makaio/framework/core';
|
|
768
|
+
*
|
|
769
|
+
* const Schemas = {
|
|
770
|
+
* internalEvent: defaultTransports(z.object({ id: z.string() }), 'local-only'),
|
|
771
|
+
* };
|
|
772
|
+
* ```
|
|
773
|
+
*/
|
|
774
|
+
declare function defaultTransports<T extends EventSchema | RequestSchema, Default extends TransportRoutingDefault>(schema: T, value: Default): DefaultTransportsSubjectSchema<T, Default>;
|
|
775
|
+
//#endregion
|
|
776
|
+
//#region core/makaio-core/src/bus-namespace-definition.d.ts
|
|
670
777
|
/**
|
|
671
778
|
* Report passed to the {@link NamespaceRegistrationOptions} `onSchemaViolation` callback
|
|
672
779
|
* when lenient validation detects a schema mismatch.
|
|
@@ -723,6 +830,19 @@ interface BusNamespaceDefinition<Domain extends string = string, Schemas extends
|
|
|
723
830
|
readonly schemas: Schemas;
|
|
724
831
|
/** Registration options (validation mode, violation callback) */
|
|
725
832
|
readonly options?: NamespaceRegistrationOptions;
|
|
833
|
+
/**
|
|
834
|
+
* Default transport routing for all subjects in this namespace when the
|
|
835
|
+
* caller does not provide an explicit `transports` option.
|
|
836
|
+
*
|
|
837
|
+
* Subject-level `defaultTransports` (set via `SubjectDefinitionMeta`) takes
|
|
838
|
+
* precedence over this namespace-level default when both are set.
|
|
839
|
+
*
|
|
840
|
+
* - `'all'` (default when omitted) — send to all registered transports.
|
|
841
|
+
* - `'local-only'` — suppress outbound transport fan-out by default. Callers
|
|
842
|
+
* can still force transport delivery by passing an explicit `transports`
|
|
843
|
+
* option. Weaker than `localSubject()`: subjects remain reachable remotely.
|
|
844
|
+
*/
|
|
845
|
+
readonly defaultTransports?: TransportRoutingDefault;
|
|
726
846
|
/**
|
|
727
847
|
* Phantom field for type inference of filterable payload shape.
|
|
728
848
|
*
|
|
@@ -747,7 +867,7 @@ type RegistrableBusNamespaceDefinition = Omit<BusNamespaceDefinition, 'subjects'
|
|
|
747
867
|
/** Runtime subject token tree created by `createBusNamespace`. */readonly subjects: unknown;
|
|
748
868
|
};
|
|
749
869
|
//#endregion
|
|
750
|
-
//#region
|
|
870
|
+
//#region core/makaio-core/src/errors/index.d.ts
|
|
751
871
|
/**
|
|
752
872
|
* Base error class for all Makaio-related errors.
|
|
753
873
|
*/
|
|
@@ -756,7 +876,7 @@ declare class MakaioError extends Error {
|
|
|
756
876
|
constructor(message: string, subject?: string | undefined);
|
|
757
877
|
}
|
|
758
878
|
//#endregion
|
|
759
|
-
//#region
|
|
879
|
+
//#region core/bus-core/src/extend-subject.d.ts
|
|
760
880
|
/**
|
|
761
881
|
* Additional fields to add to a request subject's request and/or response schemas.
|
|
762
882
|
* Omit either key to leave that side unchanged.
|
|
@@ -846,7 +966,7 @@ declare function defineSubjectExtension<SD extends SubjectDefinition, Ext extend
|
|
|
846
966
|
*/
|
|
847
967
|
declare function extendSubjectImpl<SD extends SubjectDefinition, Ext extends SubjectExtension<SD>>(context: MakaioBusContext, subject: SD, extensions: Ext): ExtendedSubjectDefinition<SD, Ext>;
|
|
848
968
|
//#endregion
|
|
849
|
-
//#region
|
|
969
|
+
//#region core/bus-core/src/types/interceptor.d.ts
|
|
850
970
|
/**
|
|
851
971
|
* Context provided to interceptor handlers.
|
|
852
972
|
*
|
|
@@ -908,7 +1028,7 @@ interface InterceptorEntry<H> {
|
|
|
908
1028
|
priority: number;
|
|
909
1029
|
}
|
|
910
1030
|
//#endregion
|
|
911
|
-
//#region
|
|
1031
|
+
//#region core/bus-core/src/methods/once.d.ts
|
|
912
1032
|
/**
|
|
913
1033
|
* Options for the Promise-based once() method.
|
|
914
1034
|
*/
|
|
@@ -942,7 +1062,7 @@ declare class OnceAbortError extends Error {
|
|
|
942
1062
|
constructor();
|
|
943
1063
|
}
|
|
944
1064
|
//#endregion
|
|
945
|
-
//#region
|
|
1065
|
+
//#region core/bus-core/src/scoped-bus-base.d.ts
|
|
946
1066
|
/**
|
|
947
1067
|
* Minimal shared surface common to {@link ScopedBus} and {@link IFilteredBus}.
|
|
948
1068
|
* @typeParam Namespace - The namespace domain string (e.g. `'adapter:codex-mcp'`)
|
|
@@ -1003,7 +1123,7 @@ interface IScopedBusBase<Namespace extends string> {
|
|
|
1003
1123
|
requestOptional<Subject extends ScopedSubjectDefinition<Namespace>>(subject: Subject, payload: Subject['$meta']['payload']['request']): Promise<OptionalResult<Subject['$meta']['payload']['response']>>;
|
|
1004
1124
|
}
|
|
1005
1125
|
//#endregion
|
|
1006
|
-
//#region
|
|
1126
|
+
//#region core/bus-core/src/filtered-bus.d.ts
|
|
1007
1127
|
/**
|
|
1008
1128
|
* Filtered bus that applies a base filter to all subscriptions.
|
|
1009
1129
|
*
|
|
@@ -1046,7 +1166,7 @@ interface IFilteredBus<Namespace extends string = string, Subjects = unknown, Fi
|
|
|
1046
1166
|
*/
|
|
1047
1167
|
declare function createFilteredBus<Namespace extends string, Subjects = unknown, FilterPayload = unknown>(context: MakaioBusContext, namespace: Namespace, baseFilter?: PayloadFilter): IFilteredBus<Namespace, Subjects, FilterPayload>;
|
|
1048
1168
|
//#endregion
|
|
1049
|
-
//#region
|
|
1169
|
+
//#region core/bus-core/src/scoped-bus.d.ts
|
|
1050
1170
|
/**
|
|
1051
1171
|
* Scoped bus with namespace isolation and type-safe filtering.
|
|
1052
1172
|
* @typeParam Namespace - The namespace domain string (e.g., 'adapter:codex-mcp')
|
|
@@ -1083,7 +1203,7 @@ type ScopedBus<Namespace extends string, Subjects = SubjectRecord, FilterPayload
|
|
|
1083
1203
|
getContext(): MakaioBusContext;
|
|
1084
1204
|
};
|
|
1085
1205
|
//#endregion
|
|
1086
|
-
//#region
|
|
1206
|
+
//#region core/bus-core/src/types/namespace.d.ts
|
|
1087
1207
|
/**
|
|
1088
1208
|
* A registered bus namespace with domain, subjects, and pre-computed filter payload type.
|
|
1089
1209
|
* @typeParam Domain - The namespace domain string (e.g., 'adapter:codex-mcp')
|
|
@@ -1113,7 +1233,7 @@ type BusNamespace<Domain extends string = string, Subjects extends SubjectRecord
|
|
|
1113
1233
|
*/
|
|
1114
1234
|
type ScopedBusFor<T> = T extends BusNamespace<infer D, infer S, infer F, infer _Sc> ? ScopedBus<D, S extends SubjectRecord ? S : SubjectRecord, F> : never;
|
|
1115
1235
|
//#endregion
|
|
1116
|
-
//#region
|
|
1236
|
+
//#region core/bus-core/src/registries/namespace-registry.d.ts
|
|
1117
1237
|
/**
|
|
1118
1238
|
* Callback invoked when a schema violation is detected in lenient mode.
|
|
1119
1239
|
* @param report - Violation details including subject, payload, and Zod issues
|
|
@@ -1150,6 +1270,8 @@ interface RegisteredSubjectSchema {
|
|
|
1150
1270
|
schema: BaseSubjectSchema;
|
|
1151
1271
|
/** Whether the subject was registered through `localSubject()`. */
|
|
1152
1272
|
local: boolean;
|
|
1273
|
+
/** Whether the subject was registered through `collectorOnlySubject()`. */
|
|
1274
|
+
collectorOnly: boolean;
|
|
1153
1275
|
/** Whether the subject was registered through `channelSubject()`. */
|
|
1154
1276
|
channel: boolean;
|
|
1155
1277
|
}
|
|
@@ -1198,6 +1320,12 @@ declare const createNamespaceRegistry: () => {
|
|
|
1198
1320
|
* @returns Registered subjects sorted by fully-qualified subject key
|
|
1199
1321
|
*/
|
|
1200
1322
|
listRegisteredSubjects(): RegisteredSubjectSchema[];
|
|
1323
|
+
/**
|
|
1324
|
+
* Get the full registration record for a subject.
|
|
1325
|
+
* @param subject - Fully-qualified subject identifier (e.g., "adapter.getCapabilities")
|
|
1326
|
+
* @returns Registration record if found, undefined otherwise
|
|
1327
|
+
*/
|
|
1328
|
+
getRegisteredSubject(subject: string): RegisteredSubjectSchema | undefined;
|
|
1201
1329
|
/**
|
|
1202
1330
|
* Check if a subject is registered as a request subject.
|
|
1203
1331
|
* @param subject - Subject identifier
|
|
@@ -1214,6 +1342,28 @@ declare const createNamespaceRegistry: () => {
|
|
|
1214
1342
|
* @returns True if the subject was wrapped with `localSubject()`
|
|
1215
1343
|
*/
|
|
1216
1344
|
isLocalSubject(subject: string): boolean;
|
|
1345
|
+
/**
|
|
1346
|
+
* Check if a subject is collector-only.
|
|
1347
|
+
*
|
|
1348
|
+
* Collector-only events may enter from a transport and run local handlers,
|
|
1349
|
+
* but must not be relayed onward to other transports.
|
|
1350
|
+
* @param subject - Full subject identifier (e.g., "subject-telemetry.fact")
|
|
1351
|
+
* @returns True if the subject was wrapped with `collectorOnlySubject()`
|
|
1352
|
+
*/
|
|
1353
|
+
isCollectorOnlySubject(subject: string): boolean;
|
|
1354
|
+
/**
|
|
1355
|
+
* Get the default transport visibility for a subject.
|
|
1356
|
+
*
|
|
1357
|
+
* Returns the namespace-level `defaultTransports` value recorded at
|
|
1358
|
+
* registration time. Subject-level overrides in `SubjectDefinitionMeta`
|
|
1359
|
+
* take precedence and are resolved by `emit()` directly from the subject
|
|
1360
|
+
* definition token.
|
|
1361
|
+
*
|
|
1362
|
+
* Returns `'all'` when no namespace-level default was registered.
|
|
1363
|
+
* @param subject - Fully-qualified subject identifier (e.g., `"session.list"`)
|
|
1364
|
+
* @returns Effective namespace-level default transport visibility
|
|
1365
|
+
*/
|
|
1366
|
+
getDefaultTransports(subject: string): "all" | "local-only";
|
|
1217
1367
|
/**
|
|
1218
1368
|
* Get the validation configuration for a subject.
|
|
1219
1369
|
*
|
|
@@ -1246,7 +1396,7 @@ declare const createNamespaceRegistry: () => {
|
|
|
1246
1396
|
};
|
|
1247
1397
|
type NamespaceRegistry = ReturnType<typeof createNamespaceRegistry>;
|
|
1248
1398
|
//#endregion
|
|
1249
|
-
//#region
|
|
1399
|
+
//#region core/bus-core/src/registries/transport-registry.d.ts
|
|
1250
1400
|
interface BusTransportRegistry extends Record<string, BusTransport> {}
|
|
1251
1401
|
type BusTransportKeys = keyof BusTransportRegistry;
|
|
1252
1402
|
/**
|
|
@@ -1302,7 +1452,7 @@ declare const createTransportRegistry: (context: MakaioBusContext) => {
|
|
|
1302
1452
|
};
|
|
1303
1453
|
type TransportRegistry = ReturnType<typeof createTransportRegistry>;
|
|
1304
1454
|
//#endregion
|
|
1305
|
-
//#region
|
|
1455
|
+
//#region core/bus-core/src/types/transports.d.ts
|
|
1306
1456
|
/**
|
|
1307
1457
|
* Subscribe message for client subscription management.
|
|
1308
1458
|
*
|
|
@@ -1323,6 +1473,13 @@ type TransportRegistry = ReturnType<typeof createTransportRegistry>;
|
|
|
1323
1473
|
*/
|
|
1324
1474
|
interface BusSubscribeMessage {
|
|
1325
1475
|
type: 'subscribe';
|
|
1476
|
+
/**
|
|
1477
|
+
* Optional acknowledgement identifier.
|
|
1478
|
+
* Transports that support dynamic subscription acknowledgements send a
|
|
1479
|
+
* `subscription-ack` after applying the subscription update to their local
|
|
1480
|
+
* routing state.
|
|
1481
|
+
*/
|
|
1482
|
+
ackId?: string;
|
|
1326
1483
|
/**
|
|
1327
1484
|
* Subjects and their handler priorities.
|
|
1328
1485
|
* Keys are subject patterns (can include wildcards like `'adapter.*'`).
|
|
@@ -1355,6 +1512,13 @@ interface BusSubscribeMessage {
|
|
|
1355
1512
|
*/
|
|
1356
1513
|
interface BusUnsubscribeMessage {
|
|
1357
1514
|
type: 'unsubscribe';
|
|
1515
|
+
/**
|
|
1516
|
+
* Optional acknowledgement identifier.
|
|
1517
|
+
* Transports that support dynamic subscription acknowledgements send a
|
|
1518
|
+
* `subscription-ack` after applying the unsubscription update to their local
|
|
1519
|
+
* routing state.
|
|
1520
|
+
*/
|
|
1521
|
+
ackId?: string;
|
|
1358
1522
|
/**
|
|
1359
1523
|
* Subjects and the handler priorities being removed.
|
|
1360
1524
|
* Keys are subject patterns.
|
|
@@ -1374,10 +1538,21 @@ interface BusUnsubscribeMessage {
|
|
|
1374
1538
|
interface BusSubscribeSyncCompleteMessage {
|
|
1375
1539
|
type: 'subscribe-sync-complete';
|
|
1376
1540
|
}
|
|
1541
|
+
/**
|
|
1542
|
+
* Acknowledges a dynamic subscribe/unsubscribe control message.
|
|
1543
|
+
*
|
|
1544
|
+
* Complements the initial `subscribe-sync-complete` handshake: the handshake
|
|
1545
|
+
* covers connection startup, while this message confirms one later
|
|
1546
|
+
* subscription change has reached the remote routing state.
|
|
1547
|
+
*/
|
|
1548
|
+
interface BusSubscriptionAckMessage {
|
|
1549
|
+
type: 'subscription-ack';
|
|
1550
|
+
ackId: string;
|
|
1551
|
+
}
|
|
1377
1552
|
/**
|
|
1378
1553
|
* Message types for transport wire protocol.
|
|
1379
1554
|
*/
|
|
1380
|
-
type BusMessage = BusRequestMessage | BusResponseMessage | BusEventMessage | BusBroadcastMessage | BusBroadcastResponseMessage | BusHeartbeatMessage | BusSubscribeMessage | BusUnsubscribeMessage | BusSubscribeSyncCompleteMessage;
|
|
1555
|
+
type BusMessage = BusRequestMessage | BusResponseMessage | BusEventMessage | BusBroadcastMessage | BusBroadcastResponseMessage | BusHeartbeatMessage | BusSubscribeMessage | BusUnsubscribeMessage | BusSubscribeSyncCompleteMessage | BusSubscriptionAckMessage;
|
|
1381
1556
|
/**
|
|
1382
1557
|
* Handler invoked by transports when a bus message arrives.
|
|
1383
1558
|
*
|
|
@@ -1752,7 +1927,7 @@ interface BusTransport {
|
|
|
1752
1927
|
}>, error?: BusTransportError): void;
|
|
1753
1928
|
}
|
|
1754
1929
|
//#endregion
|
|
1755
|
-
//#region
|
|
1930
|
+
//#region core/bus-core/src/methods/broadcast.d.ts
|
|
1756
1931
|
/**
|
|
1757
1932
|
* Result from a single handler in a broadcast.
|
|
1758
1933
|
* @typeParam T - Response payload type
|
|
@@ -1776,7 +1951,7 @@ interface BroadcastContext<Request, Response> extends RequestContext<Request, Re
|
|
|
1776
1951
|
identify: (nodeId: string) => void;
|
|
1777
1952
|
}
|
|
1778
1953
|
//#endregion
|
|
1779
|
-
//#region
|
|
1954
|
+
//#region core/bus-core/src/types/options.d.ts
|
|
1780
1955
|
/**
|
|
1781
1956
|
* Default request timeout in milliseconds.
|
|
1782
1957
|
*
|
|
@@ -1888,7 +2063,7 @@ interface RequestOptions extends EmitOptions {
|
|
|
1888
2063
|
signal?: AbortSignal;
|
|
1889
2064
|
}
|
|
1890
2065
|
//#endregion
|
|
1891
|
-
//#region
|
|
2066
|
+
//#region core/bus-core/src/types/handler-entry.d.ts
|
|
1892
2067
|
/**
|
|
1893
2068
|
* Handler entry with priority for middleware-style ordering.
|
|
1894
2069
|
* Higher priority values run earlier in the handler chain.
|
|
@@ -1898,7 +2073,29 @@ interface HandlerEntry<H> {
|
|
|
1898
2073
|
priority: number;
|
|
1899
2074
|
}
|
|
1900
2075
|
//#endregion
|
|
1901
|
-
//#region
|
|
2076
|
+
//#region core/bus-core/src/types/bus.d.ts
|
|
2077
|
+
/**
|
|
2078
|
+
* Production-capable observation record for local bus API entrypoints.
|
|
2079
|
+
*
|
|
2080
|
+
* Unlike `AnyMessageContext`, this is not debug-only and is safe for runtime
|
|
2081
|
+
* services that need to derive sanitized telemetry.
|
|
2082
|
+
*/
|
|
2083
|
+
interface ObservedBusMessage {
|
|
2084
|
+
readonly type: 'event' | 'request' | 'broadcast';
|
|
2085
|
+
readonly subject: string;
|
|
2086
|
+
readonly namespace: string;
|
|
2087
|
+
readonly payload: unknown;
|
|
2088
|
+
readonly messageId: string;
|
|
2089
|
+
readonly correlationId?: string;
|
|
2090
|
+
readonly transport?: TransportReceiveContext;
|
|
2091
|
+
/** True when the originating bus call was explicitly or inherently local-only. */
|
|
2092
|
+
readonly localOnly?: boolean;
|
|
2093
|
+
}
|
|
2094
|
+
/**
|
|
2095
|
+
* Observer callback invoked for each local bus API message after validation
|
|
2096
|
+
* has succeeded. Observers must not mutate the payload.
|
|
2097
|
+
*/
|
|
2098
|
+
type BusMessageObserver = (message: ObservedBusMessage) => void | Promise<void>;
|
|
1902
2099
|
/**
|
|
1903
2100
|
* Internal bus context containing handler registries and shared state.
|
|
1904
2101
|
*
|
|
@@ -1913,6 +2110,8 @@ interface MakaioBusContext {
|
|
|
1913
2110
|
requestHandlers: Map<string, Array<HandlerEntry<RequestHandler<unknown, unknown>>>>;
|
|
1914
2111
|
interceptorHandlers: Map<string, Array<InterceptorEntry<InterceptorHandler<unknown>>>>;
|
|
1915
2112
|
anyHandlers: Set<AnyHandler>;
|
|
2113
|
+
/** Production-capable message observers registered via {@link IMakaioBus.observeMessages}. */
|
|
2114
|
+
messageObservers: Set<BusMessageObserver>;
|
|
1916
2115
|
transportRegistry: TransportRegistry;
|
|
1917
2116
|
namespaceRegistry: NamespaceRegistry;
|
|
1918
2117
|
/** Remote handler priorities from subscribe messages; keyed by subject pattern. */
|
|
@@ -2275,6 +2474,22 @@ type IMakaioBus<NamespaceDomain extends string | unknown = unknown, Subjects ext
|
|
|
2275
2474
|
* ```
|
|
2276
2475
|
*/
|
|
2277
2476
|
withFilter: <Payload = unknown>(filter: [unknown] extends [Payload] ? PayloadFilter : TypedPayloadFilter<Payload>) => IFilteredBus<NamespaceDomain extends string ? NamespaceDomain : string>;
|
|
2477
|
+
/**
|
|
2478
|
+
* Register a production-capable local message observer.
|
|
2479
|
+
*
|
|
2480
|
+
* Observers receive local `emit`, `request`, and `broadcast` API calls after
|
|
2481
|
+
* message validation has succeeded. Observers must not mutate the payload.
|
|
2482
|
+
* Unlike `__onAny`, this is not debug-only and is safe for runtime telemetry services.
|
|
2483
|
+
* @param observer - Observer callback.
|
|
2484
|
+
* @returns Cleanup function that unregisters the observer.
|
|
2485
|
+
* @example
|
|
2486
|
+
* ```typescript
|
|
2487
|
+
* const dispose = bus.observeMessages((message) => {
|
|
2488
|
+
* console.debug(`[${message.type}] ${message.namespace}.${message.subject}`);
|
|
2489
|
+
* });
|
|
2490
|
+
* ```
|
|
2491
|
+
*/
|
|
2492
|
+
observeMessages(observer: BusMessageObserver): () => void;
|
|
2278
2493
|
/**
|
|
2279
2494
|
* Register a handler that receives ALL messages (events and requests) across all namespaces.
|
|
2280
2495
|
*
|
|
@@ -2389,7 +2604,159 @@ type IMakaioBus<NamespaceDomain extends string | unknown = unknown, Subjects ext
|
|
|
2389
2604
|
extendSubject<SD extends Subjects & StrictNamespace, Ext extends SubjectExtension<SD>>(subject: SD, extensions: Ext): ExtendedSubjectDefinition<SD, Ext>;
|
|
2390
2605
|
};
|
|
2391
2606
|
//#endregion
|
|
2392
|
-
//#region
|
|
2607
|
+
//#region core/bus-core/src/utils/correlation-tracker.d.ts
|
|
2608
|
+
/**
|
|
2609
|
+
* Correlation tracker for request-response matching.
|
|
2610
|
+
*
|
|
2611
|
+
* Manages pending requests with timeout handling and automatic cleanup.
|
|
2612
|
+
*/
|
|
2613
|
+
/**
|
|
2614
|
+
* Tracks correlation IDs for request-response matching.
|
|
2615
|
+
*
|
|
2616
|
+
* Provides automatic timeout handling and cleanup for pending requests.
|
|
2617
|
+
* @example
|
|
2618
|
+
* ```typescript
|
|
2619
|
+
* const tracker = new CorrelationTracker();
|
|
2620
|
+
*
|
|
2621
|
+
* // Track a request with 5 second timeout
|
|
2622
|
+
* const promise = tracker.track('correlation-123', 5000);
|
|
2623
|
+
*
|
|
2624
|
+
* // Later, resolve when response arrives
|
|
2625
|
+
* tracker.resolve('correlation-123', { data: 'result' });
|
|
2626
|
+
*
|
|
2627
|
+
* // Or reject on error
|
|
2628
|
+
* tracker.reject('correlation-123', new Error('Failed'));
|
|
2629
|
+
* ```
|
|
2630
|
+
*/
|
|
2631
|
+
declare class CorrelationTracker {
|
|
2632
|
+
private pending;
|
|
2633
|
+
private static readonly DEFAULT_ABORT_MESSAGE;
|
|
2634
|
+
/**
|
|
2635
|
+
* Create a new correlation tracker.
|
|
2636
|
+
*/
|
|
2637
|
+
constructor();
|
|
2638
|
+
/**
|
|
2639
|
+
* Track a pending request.
|
|
2640
|
+
*
|
|
2641
|
+
* Returns a promise that resolves when the response arrives or rejects on timeout.
|
|
2642
|
+
* When `timeout` is `0`, no automatic timeout is set — the promise stays open
|
|
2643
|
+
* until `resolve()` or `reject()` is called externally (e.g. by the caller's
|
|
2644
|
+
* own `AbortSignal` or `pTimeout` wrapper).
|
|
2645
|
+
* @param correlationId - Correlation ID for the request
|
|
2646
|
+
* @param timeout - Timeout in milliseconds; `0` means no automatic timeout
|
|
2647
|
+
* @param signal - Optional AbortSignal to cancel and cleanup the pending entry
|
|
2648
|
+
* @returns Promise that resolves with the response result
|
|
2649
|
+
*/
|
|
2650
|
+
track(correlationId: string, timeout: number, signal?: AbortSignal): Promise<unknown>;
|
|
2651
|
+
/**
|
|
2652
|
+
* Convert AbortSignal reasons into Error instances while preserving reason detail.
|
|
2653
|
+
* @param signal - Abort signal associated with the pending request.
|
|
2654
|
+
* @returns Normalized abort error preserving the original reason when available.
|
|
2655
|
+
*/
|
|
2656
|
+
private getAbortError;
|
|
2657
|
+
/**
|
|
2658
|
+
* Resolve a pending request.
|
|
2659
|
+
*
|
|
2660
|
+
* Clears the timeout and removes the request from tracking.
|
|
2661
|
+
* @param correlationId - Correlation ID for the request
|
|
2662
|
+
* @param result - Response result
|
|
2663
|
+
*/
|
|
2664
|
+
resolve(correlationId: string, result: unknown): void;
|
|
2665
|
+
/**
|
|
2666
|
+
* Reject a pending request.
|
|
2667
|
+
*
|
|
2668
|
+
* Clears the timeout and removes the request from tracking.
|
|
2669
|
+
* @param correlationId - Correlation ID for the request
|
|
2670
|
+
* @param error - Error to reject with
|
|
2671
|
+
*/
|
|
2672
|
+
reject(correlationId: string, error: Error): void;
|
|
2673
|
+
/**
|
|
2674
|
+
* Cancel a pending request and remove its correlation entry.
|
|
2675
|
+
* @param correlationId - Correlation ID for the request
|
|
2676
|
+
* @param error - Optional cancellation error
|
|
2677
|
+
*/
|
|
2678
|
+
cancel(correlationId: string, error?: Error): void;
|
|
2679
|
+
/**
|
|
2680
|
+
* Clean up all pending requests.
|
|
2681
|
+
*
|
|
2682
|
+
* Clears all timeouts and rejects all pending requests with a disconnection error.
|
|
2683
|
+
*/
|
|
2684
|
+
cleanup(): void;
|
|
2685
|
+
}
|
|
2686
|
+
//#endregion
|
|
2687
|
+
//#region core/bus-core/src/utils/transport-helpers.d.ts
|
|
2688
|
+
/**
|
|
2689
|
+
* Singleton frozen origin for messages emitted within the current process.
|
|
2690
|
+
*
|
|
2691
|
+
* Shared across `emit`, `broadcast`, and `dispatch` to avoid a per-message
|
|
2692
|
+
* allocation on the hot path. Both variants are frozen to prevent accidental
|
|
2693
|
+
* mutation since they are module-level constants.
|
|
2694
|
+
*/
|
|
2695
|
+
declare const LOCAL_ORIGIN: MessageOrigin;
|
|
2696
|
+
/**
|
|
2697
|
+
* Singleton frozen origin for messages that arrived via a transport.
|
|
2698
|
+
*
|
|
2699
|
+
* Used by `emit`, `broadcast`, and `dispatch` when a `TransportReceiveContext`
|
|
2700
|
+
* is present (i.e. the message was forwarded from a remote caller).
|
|
2701
|
+
*/
|
|
2702
|
+
declare const REMOTE_ORIGIN: MessageOrigin;
|
|
2703
|
+
/**
|
|
2704
|
+
* Check if a client/tab wants to receive a message based on subscriptions and filters.
|
|
2705
|
+
*
|
|
2706
|
+
* **Filtering logic:**
|
|
2707
|
+
* - No subscriptions = receive all (default broadcast mode)
|
|
2708
|
+
* - With subscriptions: check if message subject matches any subscription pattern
|
|
2709
|
+
* - Apply payload filters if the client has filters for this subject
|
|
2710
|
+
* @param subject - The message subject (if any)
|
|
2711
|
+
* @param payload - The message payload (if any)
|
|
2712
|
+
* @param subscriptions - Set of subscription patterns
|
|
2713
|
+
* @param filters - Map of payload filters per subject
|
|
2714
|
+
* @returns true if the client should receive the message
|
|
2715
|
+
*/
|
|
2716
|
+
declare function shouldReceiveMessage(subject: string | undefined, payload: unknown, subscriptions: Set<string>, filters: Map<string, PayloadFilter>): boolean;
|
|
2717
|
+
/**
|
|
2718
|
+
* Handle response messages for correlation tracking.
|
|
2719
|
+
*
|
|
2720
|
+
* Processes both regular response and broadcast-response messages,
|
|
2721
|
+
* resolving or rejecting the corresponding correlation promise.
|
|
2722
|
+
* @param message - Decoded bus message
|
|
2723
|
+
* @param correlations - Correlation tracker instance
|
|
2724
|
+
* @returns true if the message was a response and was handled
|
|
2725
|
+
*/
|
|
2726
|
+
declare function handleCorrelationResponse(message: BusMessage, correlations: CorrelationTracker): boolean;
|
|
2727
|
+
/**
|
|
2728
|
+
* Track correlation for request/broadcast messages and return appropriate result type.
|
|
2729
|
+
*
|
|
2730
|
+
* **Behavior by message type:**
|
|
2731
|
+
* - Request: Returns promise tracking correlation (resolves to response payload)
|
|
2732
|
+
* - Broadcast: Returns promise tracking correlation (resolves to array of results)
|
|
2733
|
+
* - Other: Returns true immediately (no correlation tracking needed)
|
|
2734
|
+
*
|
|
2735
|
+
* **Timeout semantics:**
|
|
2736
|
+
* Pass `0` to disable automatic timeout — the correlation entry stays open
|
|
2737
|
+
* until resolved or rejected externally. All callers must supply an explicit
|
|
2738
|
+
* value; there is no default so callers cannot accidentally rely on a hidden timeout.
|
|
2739
|
+
* @param message - Bus message to process
|
|
2740
|
+
* @param correlations - Correlation tracker instance
|
|
2741
|
+
* @param timeout - Timeout in milliseconds; `0` means no automatic timeout
|
|
2742
|
+
* @param signal - Optional AbortSignal forwarded to correlation tracking cleanup
|
|
2743
|
+
* @returns Promise resolving to response data, broadcast results, or boolean
|
|
2744
|
+
*/
|
|
2745
|
+
declare function trackMessageCorrelation<TMessage extends BusMessage>(message: TMessage, correlations: CorrelationTracker, timeout: number, signal?: AbortSignal): Promise<TMessage extends BusRequestMessage ? unknown : TMessage extends BusBroadcastMessage ? Array<{
|
|
2746
|
+
nodeId: string;
|
|
2747
|
+
payload: unknown;
|
|
2748
|
+
}> : boolean>;
|
|
2749
|
+
/**
|
|
2750
|
+
* Serialize an error into a transport-safe structure.
|
|
2751
|
+
*
|
|
2752
|
+
* Preserves `subject` alongside `code` so that `isNoHandlerErrorForSubject`
|
|
2753
|
+
* can match deserialized errors without fragile message-string comparisons.
|
|
2754
|
+
* @param error - The error to serialize
|
|
2755
|
+
* @returns Structured error payload
|
|
2756
|
+
*/
|
|
2757
|
+
declare function serializeTransportError(error: unknown): BusTransportError;
|
|
2758
|
+
//#endregion
|
|
2759
|
+
//#region core/bus-core/src/utils/transport.d.ts
|
|
2393
2760
|
/**
|
|
2394
2761
|
* Detects a "no handler" error for a specific request subject.
|
|
2395
2762
|
*
|
|
@@ -2435,7 +2802,7 @@ declare function getSubjectFromBusMessage(message: BusMessage): string | null;
|
|
|
2435
2802
|
*/
|
|
2436
2803
|
declare function deserializeTransportError(transportError: BusTransportError): Error;
|
|
2437
2804
|
//#endregion
|
|
2438
|
-
//#region
|
|
2805
|
+
//#region core/bus-core/src/utils/payload-filter.d.ts
|
|
2439
2806
|
/**
|
|
2440
2807
|
* Get a nested value from an object using dot-notation path.
|
|
2441
2808
|
* @param obj - Object to traverse
|
|
@@ -2491,7 +2858,7 @@ declare function matchesFilter(payload: unknown, filter: PayloadFilter): boolean
|
|
|
2491
2858
|
*/
|
|
2492
2859
|
declare function mergeFilters(base: PayloadFilter | undefined, override: PayloadFilter | undefined): PayloadFilter | undefined;
|
|
2493
2860
|
//#endregion
|
|
2494
|
-
//#region
|
|
2861
|
+
//#region core/bus-core/src/utils/url-config.d.ts
|
|
2495
2862
|
/**
|
|
2496
2863
|
* Bus URL configuration utilities.
|
|
2497
2864
|
*
|
|
@@ -2550,7 +2917,7 @@ interface BusUrlConfig {
|
|
|
2550
2917
|
*/
|
|
2551
2918
|
declare function parseBusUrl(envValue: string | undefined): BusUrlConfig;
|
|
2552
2919
|
//#endregion
|
|
2553
|
-
//#region
|
|
2920
|
+
//#region core/bus-core/src/utils/subscription-matching.d.ts
|
|
2554
2921
|
/**
|
|
2555
2922
|
* Subscription pattern matching utilities.
|
|
2556
2923
|
*
|
|
@@ -2650,7 +3017,7 @@ declare function matchesSubscription(subject: string, pattern: string): boolean;
|
|
|
2650
3017
|
*/
|
|
2651
3018
|
declare function matchesAnySubscription(subject: string, patterns: Iterable<string>): boolean;
|
|
2652
3019
|
//#endregion
|
|
2653
|
-
//#region
|
|
3020
|
+
//#region core/bus-core/src/errors/bus-error.d.ts
|
|
2654
3021
|
/**
|
|
2655
3022
|
* Base error class for all bus-related errors.
|
|
2656
3023
|
*/
|
|
@@ -2663,7 +3030,7 @@ declare class BusError extends MakaioError {
|
|
|
2663
3030
|
constructor(message: string, subject?: string | undefined);
|
|
2664
3031
|
}
|
|
2665
3032
|
//#endregion
|
|
2666
|
-
//#region
|
|
3033
|
+
//#region core/bus-core/src/errors/channel-auth-error.d.ts
|
|
2667
3034
|
/**
|
|
2668
3035
|
* Thrown when channel authentication fails during the handshake.
|
|
2669
3036
|
* Indicates the provided token does not match the endpoint's expected token.
|
|
@@ -2675,7 +3042,7 @@ declare class ChannelAuthError extends BusError {
|
|
|
2675
3042
|
constructor(endpoint: string);
|
|
2676
3043
|
}
|
|
2677
3044
|
//#endregion
|
|
2678
|
-
//#region
|
|
3045
|
+
//#region core/bus-core/src/errors/channel-closed-error.d.ts
|
|
2679
3046
|
/**
|
|
2680
3047
|
* Thrown when an operation is attempted on a closed DirectChannel.
|
|
2681
3048
|
* All pending requests are rejected with this error when a channel closes.
|
|
@@ -2687,7 +3054,7 @@ declare class ChannelClosedError extends BusError {
|
|
|
2687
3054
|
constructor(channelId: string);
|
|
2688
3055
|
}
|
|
2689
3056
|
//#endregion
|
|
2690
|
-
//#region
|
|
3057
|
+
//#region core/bus-core/src/errors/channel-only-error.d.ts
|
|
2691
3058
|
/**
|
|
2692
3059
|
* Thrown when a channel-only subject is used directly on the public bus.
|
|
2693
3060
|
* Channel subjects must be routed through a DirectChannel, not the public bus API.
|
|
@@ -2699,7 +3066,7 @@ declare class ChannelOnlyError extends BusError {
|
|
|
2699
3066
|
constructor(subject: string);
|
|
2700
3067
|
}
|
|
2701
3068
|
//#endregion
|
|
2702
|
-
//#region
|
|
3069
|
+
//#region core/bus-core/src/errors/local-subject-error.d.ts
|
|
2703
3070
|
/**
|
|
2704
3071
|
* Thrown when a remote peer attempts to invoke a local-only subject over a
|
|
2705
3072
|
* transport. Local subjects are never serializable and must not be routed
|
|
@@ -2712,7 +3079,7 @@ declare class LocalSubjectError extends BusError {
|
|
|
2712
3079
|
constructor(subject: string);
|
|
2713
3080
|
}
|
|
2714
3081
|
//#endregion
|
|
2715
|
-
//#region
|
|
3082
|
+
//#region core/bus-core/src/errors/no-handler-error.d.ts
|
|
2716
3083
|
/**
|
|
2717
3084
|
* Stable error code for "no handler registered" failures.
|
|
2718
3085
|
*/
|
|
@@ -2728,7 +3095,7 @@ declare class NoHandlerError extends BusError {
|
|
|
2728
3095
|
constructor(subject: string);
|
|
2729
3096
|
}
|
|
2730
3097
|
//#endregion
|
|
2731
|
-
//#region
|
|
3098
|
+
//#region core/bus-core/src/errors/request-error.d.ts
|
|
2732
3099
|
/**
|
|
2733
3100
|
* Generic error thrown when a request fails for any other reason.
|
|
2734
3101
|
*/
|
|
@@ -2742,7 +3109,7 @@ declare class RequestError extends BusError {
|
|
|
2742
3109
|
constructor(subject: string, message: string, cause?: Error | undefined);
|
|
2743
3110
|
}
|
|
2744
3111
|
//#endregion
|
|
2745
|
-
//#region
|
|
3112
|
+
//#region core/bus-core/src/errors/timeout-error.d.ts
|
|
2746
3113
|
/**
|
|
2747
3114
|
* Error thrown when a request times out.
|
|
2748
3115
|
*/
|
|
@@ -2755,7 +3122,7 @@ declare class TimeoutError extends BusError {
|
|
|
2755
3122
|
constructor(subject: string, timeoutMs: number);
|
|
2756
3123
|
}
|
|
2757
3124
|
//#endregion
|
|
2758
|
-
//#region
|
|
3125
|
+
//#region core/bus-core/src/errors/validation-error.d.ts
|
|
2759
3126
|
/**
|
|
2760
3127
|
* Error thrown when payload validation fails.
|
|
2761
3128
|
*/
|
|
@@ -2768,7 +3135,7 @@ declare class ValidationError extends BusError {
|
|
|
2768
3135
|
constructor(subject: string, zodError: z.ZodError);
|
|
2769
3136
|
}
|
|
2770
3137
|
//#endregion
|
|
2771
|
-
//#region
|
|
3138
|
+
//#region core/bus-core/src/bus.d.ts
|
|
2772
3139
|
/**
|
|
2773
3140
|
* Creates a new bus context containing handler registries and shared state.
|
|
2774
3141
|
*
|
|
@@ -2857,7 +3224,18 @@ declare function createBusInstance<Namespace extends string | undefined = undefi
|
|
|
2857
3224
|
*/
|
|
2858
3225
|
declare const MakaioBus: IMakaioBus;
|
|
2859
3226
|
//#endregion
|
|
2860
|
-
//#region
|
|
3227
|
+
//#region core/bus-core/src/methods/on.d.ts
|
|
3228
|
+
/**
|
|
3229
|
+
* Wait until a handler registration has propagated to registered transports.
|
|
3230
|
+
*
|
|
3231
|
+
* `on()` still returns a plain cleanup function for public ergonomics, but
|
|
3232
|
+
* remote transports subscribe asynchronously. Callers that publish readiness
|
|
3233
|
+
* based on remote routability can await this helper before proceeding.
|
|
3234
|
+
* @param cleanup - Cleanup function returned by {@link on}.
|
|
3235
|
+
*/
|
|
3236
|
+
declare function waitForSubscriptionPropagation(cleanup: (() => void) | null | undefined): Promise<void>;
|
|
3237
|
+
//#endregion
|
|
3238
|
+
//#region core/bus-core/src/channel/types.d.ts
|
|
2861
3239
|
/**
|
|
2862
3240
|
* Encrypted point-to-point communication channel over the bus.
|
|
2863
3241
|
*
|
|
@@ -2939,7 +3317,7 @@ interface ChannelEndpoint {
|
|
|
2939
3317
|
close(): void;
|
|
2940
3318
|
}
|
|
2941
3319
|
//#endregion
|
|
2942
|
-
//#region
|
|
3320
|
+
//#region core/bus-core/src/channel/system-namespace.d.ts
|
|
2943
3321
|
/**
|
|
2944
3322
|
* Schema for the system.channel.open handshake request.
|
|
2945
3323
|
*
|
|
@@ -2964,7 +3342,7 @@ declare const SystemChannelSchemas: {
|
|
|
2964
3342
|
};
|
|
2965
3343
|
};
|
|
2966
3344
|
//#endregion
|
|
2967
|
-
//#region
|
|
3345
|
+
//#region core/bus-core/src/channel/channel-endpoint.d.ts
|
|
2968
3346
|
/**
|
|
2969
3347
|
* Register a channel endpoint that accepts encrypted point-to-point connections.
|
|
2970
3348
|
*
|
|
@@ -3016,87 +3394,7 @@ declare function openChannel(context: MakaioBusContext, endpointName: string, op
|
|
|
3016
3394
|
transports?: ReadonlyArray<BusTransportKeys>;
|
|
3017
3395
|
}): Promise<IDirectChannel>;
|
|
3018
3396
|
//#endregion
|
|
3019
|
-
//#region
|
|
3020
|
-
/**
|
|
3021
|
-
* Correlation tracker for request-response matching.
|
|
3022
|
-
*
|
|
3023
|
-
* Manages pending requests with timeout handling and automatic cleanup.
|
|
3024
|
-
*/
|
|
3025
|
-
/**
|
|
3026
|
-
* Tracks correlation IDs for request-response matching.
|
|
3027
|
-
*
|
|
3028
|
-
* Provides automatic timeout handling and cleanup for pending requests.
|
|
3029
|
-
* @example
|
|
3030
|
-
* ```typescript
|
|
3031
|
-
* const tracker = new CorrelationTracker();
|
|
3032
|
-
*
|
|
3033
|
-
* // Track a request with 5 second timeout
|
|
3034
|
-
* const promise = tracker.track('correlation-123', 5000);
|
|
3035
|
-
*
|
|
3036
|
-
* // Later, resolve when response arrives
|
|
3037
|
-
* tracker.resolve('correlation-123', { data: 'result' });
|
|
3038
|
-
*
|
|
3039
|
-
* // Or reject on error
|
|
3040
|
-
* tracker.reject('correlation-123', new Error('Failed'));
|
|
3041
|
-
* ```
|
|
3042
|
-
*/
|
|
3043
|
-
declare class CorrelationTracker {
|
|
3044
|
-
private pending;
|
|
3045
|
-
private static readonly DEFAULT_ABORT_MESSAGE;
|
|
3046
|
-
/**
|
|
3047
|
-
* Create a new correlation tracker.
|
|
3048
|
-
*/
|
|
3049
|
-
constructor();
|
|
3050
|
-
/**
|
|
3051
|
-
* Track a pending request.
|
|
3052
|
-
*
|
|
3053
|
-
* Returns a promise that resolves when the response arrives or rejects on timeout.
|
|
3054
|
-
* When `timeout` is `0`, no automatic timeout is set — the promise stays open
|
|
3055
|
-
* until `resolve()` or `reject()` is called externally (e.g. by the caller's
|
|
3056
|
-
* own `AbortSignal` or `pTimeout` wrapper).
|
|
3057
|
-
* @param correlationId - Correlation ID for the request
|
|
3058
|
-
* @param timeout - Timeout in milliseconds; `0` means no automatic timeout
|
|
3059
|
-
* @param signal - Optional AbortSignal to cancel and cleanup the pending entry
|
|
3060
|
-
* @returns Promise that resolves with the response result
|
|
3061
|
-
*/
|
|
3062
|
-
track(correlationId: string, timeout: number, signal?: AbortSignal): Promise<unknown>;
|
|
3063
|
-
/**
|
|
3064
|
-
* Convert AbortSignal reasons into Error instances while preserving reason detail.
|
|
3065
|
-
* @param signal - Abort signal associated with the pending request.
|
|
3066
|
-
* @returns Normalized abort error preserving the original reason when available.
|
|
3067
|
-
*/
|
|
3068
|
-
private getAbortError;
|
|
3069
|
-
/**
|
|
3070
|
-
* Resolve a pending request.
|
|
3071
|
-
*
|
|
3072
|
-
* Clears the timeout and removes the request from tracking.
|
|
3073
|
-
* @param correlationId - Correlation ID for the request
|
|
3074
|
-
* @param result - Response result
|
|
3075
|
-
*/
|
|
3076
|
-
resolve(correlationId: string, result: unknown): void;
|
|
3077
|
-
/**
|
|
3078
|
-
* Reject a pending request.
|
|
3079
|
-
*
|
|
3080
|
-
* Clears the timeout and removes the request from tracking.
|
|
3081
|
-
* @param correlationId - Correlation ID for the request
|
|
3082
|
-
* @param error - Error to reject with
|
|
3083
|
-
*/
|
|
3084
|
-
reject(correlationId: string, error: Error): void;
|
|
3085
|
-
/**
|
|
3086
|
-
* Cancel a pending request and remove its correlation entry.
|
|
3087
|
-
* @param correlationId - Correlation ID for the request
|
|
3088
|
-
* @param error - Optional cancellation error
|
|
3089
|
-
*/
|
|
3090
|
-
cancel(correlationId: string, error?: Error): void;
|
|
3091
|
-
/**
|
|
3092
|
-
* Clean up all pending requests.
|
|
3093
|
-
*
|
|
3094
|
-
* Clears all timeouts and rejects all pending requests with a disconnection error.
|
|
3095
|
-
*/
|
|
3096
|
-
cleanup(): void;
|
|
3097
|
-
}
|
|
3098
|
-
//#endregion
|
|
3099
|
-
//#region packages/bus-core/src/lifecycle-schemas.d.ts
|
|
3397
|
+
//#region core/bus-core/src/lifecycle-schemas.d.ts
|
|
3100
3398
|
/** Payload emitted when a transport establishes or re-establishes a connection. */
|
|
3101
3399
|
type ConnectedPayload = {
|
|
3102
3400
|
transport: string;
|
|
@@ -3106,7 +3404,7 @@ type DisconnectedPayload = {
|
|
|
3106
3404
|
transport: string;
|
|
3107
3405
|
};
|
|
3108
3406
|
//#endregion
|
|
3109
|
-
//#region
|
|
3407
|
+
//#region core/bus-core/src/lifecycle.d.ts
|
|
3110
3408
|
/**
|
|
3111
3409
|
* Bus-level lifecycle subjects for subscribing to transport connection state changes.
|
|
3112
3410
|
*
|
|
@@ -3136,7 +3434,7 @@ declare const BusLifecycle: BusSubjects<FlatSubjectDefinitions<"bus:lifecycle",
|
|
|
3136
3434
|
}, _$zod_v4_core0.$strip>>;
|
|
3137
3435
|
}>, "bus:lifecycle">;
|
|
3138
3436
|
//#endregion
|
|
3139
|
-
//#region
|
|
3437
|
+
//#region core/bus-core/src/extension-namespace-types.d.ts
|
|
3140
3438
|
/**
|
|
3141
3439
|
* Extension point for extension namespace extensions.
|
|
3142
3440
|
*
|
|
@@ -3204,64 +3502,7 @@ interface ExtensionNamespaceConfig<Schemas extends SchemaRecord, Ext extends Ext
|
|
|
3204
3502
|
*/
|
|
3205
3503
|
type ExtensionNamespaceFromConfig<N extends string, Schemas extends SchemaRecord, Ext extends ExtensionNamespaceExtensions = ExtensionNamespaceExtensions> = ExtensionNamespace<N, SubjectRecordFromSchemaRecord<Schemas>, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord<Schemas>>, Ext, Schemas>;
|
|
3206
3504
|
//#endregion
|
|
3207
|
-
//#region
|
|
3208
|
-
/**
|
|
3209
|
-
* Check if a client/tab wants to receive a message based on subscriptions and filters.
|
|
3210
|
-
*
|
|
3211
|
-
* **Filtering logic:**
|
|
3212
|
-
* - No subscriptions = receive all (default broadcast mode)
|
|
3213
|
-
* - With subscriptions: check if message subject matches any subscription pattern
|
|
3214
|
-
* - Apply payload filters if the client has filters for this subject
|
|
3215
|
-
* @param subject - The message subject (if any)
|
|
3216
|
-
* @param payload - The message payload (if any)
|
|
3217
|
-
* @param subscriptions - Set of subscription patterns
|
|
3218
|
-
* @param filters - Map of payload filters per subject
|
|
3219
|
-
* @returns true if the client should receive the message
|
|
3220
|
-
*/
|
|
3221
|
-
declare function shouldReceiveMessage(subject: string | undefined, payload: unknown, subscriptions: Set<string>, filters: Map<string, PayloadFilter>): boolean;
|
|
3222
|
-
/**
|
|
3223
|
-
* Handle response messages for correlation tracking.
|
|
3224
|
-
*
|
|
3225
|
-
* Processes both regular response and broadcast-response messages,
|
|
3226
|
-
* resolving or rejecting the corresponding correlation promise.
|
|
3227
|
-
* @param message - Decoded bus message
|
|
3228
|
-
* @param correlations - Correlation tracker instance
|
|
3229
|
-
* @returns true if the message was a response and was handled
|
|
3230
|
-
*/
|
|
3231
|
-
declare function handleCorrelationResponse(message: BusMessage, correlations: CorrelationTracker): boolean;
|
|
3232
|
-
/**
|
|
3233
|
-
* Track correlation for request/broadcast messages and return appropriate result type.
|
|
3234
|
-
*
|
|
3235
|
-
* **Behavior by message type:**
|
|
3236
|
-
* - Request: Returns promise tracking correlation (resolves to response payload)
|
|
3237
|
-
* - Broadcast: Returns promise tracking correlation (resolves to array of results)
|
|
3238
|
-
* - Other: Returns true immediately (no correlation tracking needed)
|
|
3239
|
-
*
|
|
3240
|
-
* **Timeout semantics:**
|
|
3241
|
-
* Pass `0` to disable automatic timeout — the correlation entry stays open
|
|
3242
|
-
* until resolved or rejected externally. All callers must supply an explicit
|
|
3243
|
-
* value; there is no default so callers cannot accidentally rely on a hidden timeout.
|
|
3244
|
-
* @param message - Bus message to process
|
|
3245
|
-
* @param correlations - Correlation tracker instance
|
|
3246
|
-
* @param timeout - Timeout in milliseconds; `0` means no automatic timeout
|
|
3247
|
-
* @param signal - Optional AbortSignal forwarded to correlation tracking cleanup
|
|
3248
|
-
* @returns Promise resolving to response data, broadcast results, or boolean
|
|
3249
|
-
*/
|
|
3250
|
-
declare function trackMessageCorrelation<TMessage extends BusMessage>(message: TMessage, correlations: CorrelationTracker, timeout: number, signal?: AbortSignal): Promise<TMessage extends BusRequestMessage ? unknown : TMessage extends BusBroadcastMessage ? Array<{
|
|
3251
|
-
nodeId: string;
|
|
3252
|
-
payload: unknown;
|
|
3253
|
-
}> : boolean>;
|
|
3254
|
-
/**
|
|
3255
|
-
* Serialize an error into a transport-safe structure.
|
|
3256
|
-
*
|
|
3257
|
-
* Preserves `subject` alongside `code` so that `isNoHandlerErrorForSubject`
|
|
3258
|
-
* can match deserialized errors without fragile message-string comparisons.
|
|
3259
|
-
* @param error - The error to serialize
|
|
3260
|
-
* @returns Structured error payload
|
|
3261
|
-
*/
|
|
3262
|
-
declare function serializeTransportError(error: unknown): BusTransportError;
|
|
3263
|
-
//#endregion
|
|
3264
|
-
//#region packages/bus-core/src/subscribe-message.d.ts
|
|
3505
|
+
//#region core/bus-core/src/subscribe-message.d.ts
|
|
3265
3506
|
/**
|
|
3266
3507
|
* Per-subject subscription state tracked locally on a client transport.
|
|
3267
3508
|
*/
|
|
@@ -3274,17 +3515,19 @@ interface SubscriptionEntry {
|
|
|
3274
3515
|
/**
|
|
3275
3516
|
* Build a BusSubscribeMessage from local subscription state.
|
|
3276
3517
|
* @param subscriptions - Map of subject patterns to their subscription entries
|
|
3518
|
+
* @param ackId - Optional acknowledgement ID for dynamic subscription propagation
|
|
3277
3519
|
* @returns Wire-format subscribe message
|
|
3278
3520
|
*/
|
|
3279
|
-
declare function buildSubscribeMessage(subscriptions: Map<string, SubscriptionEntry
|
|
3521
|
+
declare function buildSubscribeMessage(subscriptions: Map<string, SubscriptionEntry>, ackId?: string): BusSubscribeMessage;
|
|
3280
3522
|
/**
|
|
3281
3523
|
* Build a BusUnsubscribeMessage for specific subjects and priorities.
|
|
3282
3524
|
* @param subjects - Map of subject patterns to priorities being removed
|
|
3525
|
+
* @param ackId - Optional acknowledgement ID for dynamic unsubscription propagation
|
|
3283
3526
|
* @returns Wire-format unsubscribe message
|
|
3284
3527
|
*/
|
|
3285
|
-
declare function buildUnsubscribeMessage(subjects: Record<string, number[]
|
|
3528
|
+
declare function buildUnsubscribeMessage(subjects: Record<string, number[]>, ackId?: string): BusUnsubscribeMessage;
|
|
3286
3529
|
//#endregion
|
|
3287
|
-
//#region
|
|
3530
|
+
//#region core/bus-core/src/create-extension-namespace.d.ts
|
|
3288
3531
|
type Whitespace = ' ' | '\n' | '\r' | '\t' | '\v' | '\f' | '\u00A0' | '\u1680' | '\u2000' | '\u2001' | '\u2002' | '\u2003' | '\u2004' | '\u2005' | '\u2006' | '\u2007' | '\u2008' | '\u2009' | '\u200A' | '\u2028' | '\u2029' | '\u202F' | '\u205F' | '\u3000' | '\uFEFF';
|
|
3289
3532
|
type TrimLeft<T extends string> = T extends `${Whitespace}${infer Rest}` ? TrimLeft<Rest> : T;
|
|
3290
3533
|
type TrimRight<T extends string> = T extends `${infer Rest}${Whitespace}` ? TrimRight<Rest> : T;
|
|
@@ -3320,7 +3563,7 @@ type Trim<T extends string> = string extends T ? string : TrimLeft<TrimRight<T>>
|
|
|
3320
3563
|
*/
|
|
3321
3564
|
declare function createExtensionNamespace<N extends string, Schemas extends SchemaRecord, Ext extends ExtensionNamespaceExtensions = ExtensionNamespaceExtensions>(extensionName: N, config: ExtensionNamespaceConfig<Schemas, Ext>): ExtensionNamespace<Trim<N>, SubjectRecordFromSchemaRecord<Schemas>, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord<Schemas>>, Ext, Schemas>;
|
|
3322
3565
|
//#endregion
|
|
3323
|
-
//#region
|
|
3566
|
+
//#region core/bus-core/src/utils/warn-unregistered.d.ts
|
|
3324
3567
|
/**
|
|
3325
3568
|
* Reset the warned-subjects set between test runs.
|
|
3326
3569
|
* @internal
|
|
@@ -3328,4 +3571,424 @@ declare function createExtensionNamespace<N extends string, Schemas extends Sche
|
|
|
3328
3571
|
*/
|
|
3329
3572
|
declare const __resetWarnedSubjects: (() => void) | undefined;
|
|
3330
3573
|
//#endregion
|
|
3331
|
-
|
|
3574
|
+
//#region core/contracts/src/canonical-model/selection.d.ts
|
|
3575
|
+
/**
|
|
3576
|
+
* Agent selection for `kind: 'canonical-model'`.
|
|
3577
|
+
*
|
|
3578
|
+
* The `model` field carries the canonical model reference string verbatim.
|
|
3579
|
+
* Resolution happens immediately at the `AgentResolutionSubjects.resolve`
|
|
3580
|
+
* chokepoint, so this kind never persists into runtime spawn paths.
|
|
3581
|
+
*/
|
|
3582
|
+
declare const CanonicalModelSelectionSchema: z.ZodObject<{
|
|
3583
|
+
providerConfigId: z.ZodOptional<z.ZodString>;
|
|
3584
|
+
reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
|
3585
|
+
none: "none";
|
|
3586
|
+
low: "low";
|
|
3587
|
+
medium: "medium";
|
|
3588
|
+
high: "high";
|
|
3589
|
+
"extra-high": "extra-high";
|
|
3590
|
+
}>>;
|
|
3591
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
3592
|
+
systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
3593
|
+
mode: z.ZodLiteral<"append">;
|
|
3594
|
+
content: z.ZodString;
|
|
3595
|
+
}, z.core.$strip>]>>;
|
|
3596
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3597
|
+
disallowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3598
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3599
|
+
mcpSessionContext: z.ZodOptional<z.ZodObject<{
|
|
3600
|
+
sessionId: z.ZodString;
|
|
3601
|
+
servers: z.ZodArray<z.ZodObject<{
|
|
3602
|
+
name: z.ZodString;
|
|
3603
|
+
transport: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3604
|
+
type: z.ZodLiteral<"stdio">;
|
|
3605
|
+
command: z.ZodString;
|
|
3606
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3607
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3608
|
+
alwaysLoad: z.ZodOptional<z.ZodBoolean>;
|
|
3609
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
3610
|
+
url: z.ZodString;
|
|
3611
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3612
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3613
|
+
name: z.ZodString;
|
|
3614
|
+
permission_policy: z.ZodEnum<{
|
|
3615
|
+
always_allow: "always_allow";
|
|
3616
|
+
always_ask: "always_ask";
|
|
3617
|
+
always_deny: "always_deny";
|
|
3618
|
+
}>;
|
|
3619
|
+
}, z.core.$strip>>>;
|
|
3620
|
+
alwaysLoad: z.ZodOptional<z.ZodBoolean>;
|
|
3621
|
+
type: z.ZodLiteral<"sse">;
|
|
3622
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
3623
|
+
url: z.ZodString;
|
|
3624
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3625
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3626
|
+
name: z.ZodString;
|
|
3627
|
+
permission_policy: z.ZodEnum<{
|
|
3628
|
+
always_allow: "always_allow";
|
|
3629
|
+
always_ask: "always_ask";
|
|
3630
|
+
always_deny: "always_deny";
|
|
3631
|
+
}>;
|
|
3632
|
+
}, z.core.$strip>>>;
|
|
3633
|
+
alwaysLoad: z.ZodOptional<z.ZodBoolean>;
|
|
3634
|
+
type: z.ZodLiteral<"http">;
|
|
3635
|
+
}, z.core.$strip>], "type">;
|
|
3636
|
+
exposureMode: z.ZodEnum<{
|
|
3637
|
+
direct: "direct";
|
|
3638
|
+
discovery: "discovery";
|
|
3639
|
+
}>;
|
|
3640
|
+
}, z.core.$strip>>;
|
|
3641
|
+
directTools: z.ZodArray<z.ZodObject<{
|
|
3642
|
+
fullName: z.ZodString;
|
|
3643
|
+
originalName: z.ZodString;
|
|
3644
|
+
serverName: z.ZodString;
|
|
3645
|
+
description: z.ZodOptional<z.ZodString>;
|
|
3646
|
+
inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3647
|
+
exposureMode: z.ZodEnum<{
|
|
3648
|
+
direct: "direct";
|
|
3649
|
+
discovery: "discovery";
|
|
3650
|
+
hidden: "hidden";
|
|
3651
|
+
}>;
|
|
3652
|
+
enabled: z.ZodBoolean;
|
|
3653
|
+
enabledBy: z.ZodOptional<z.ZodEnum<{
|
|
3654
|
+
discovery: "discovery";
|
|
3655
|
+
toolset: "toolset";
|
|
3656
|
+
}>>;
|
|
3657
|
+
enabledAt: z.ZodOptional<z.ZodNumber>;
|
|
3658
|
+
exposed: z.ZodBoolean;
|
|
3659
|
+
}, z.core.$strip>>;
|
|
3660
|
+
discoverableTools: z.ZodArray<z.ZodObject<{
|
|
3661
|
+
fullName: z.ZodString;
|
|
3662
|
+
originalName: z.ZodString;
|
|
3663
|
+
serverName: z.ZodString;
|
|
3664
|
+
description: z.ZodOptional<z.ZodString>;
|
|
3665
|
+
inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3666
|
+
exposureMode: z.ZodEnum<{
|
|
3667
|
+
direct: "direct";
|
|
3668
|
+
discovery: "discovery";
|
|
3669
|
+
hidden: "hidden";
|
|
3670
|
+
}>;
|
|
3671
|
+
enabled: z.ZodBoolean;
|
|
3672
|
+
enabledBy: z.ZodOptional<z.ZodEnum<{
|
|
3673
|
+
discovery: "discovery";
|
|
3674
|
+
toolset: "toolset";
|
|
3675
|
+
}>>;
|
|
3676
|
+
enabledAt: z.ZodOptional<z.ZodNumber>;
|
|
3677
|
+
exposed: z.ZodBoolean;
|
|
3678
|
+
}, z.core.$strip>>;
|
|
3679
|
+
}, z.core.$strip>>;
|
|
3680
|
+
allowedDirectories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3681
|
+
kind: z.ZodLiteral<"canonical-model">;
|
|
3682
|
+
model: z.ZodString;
|
|
3683
|
+
}, z.core.$loose>;
|
|
3684
|
+
type CanonicalModelSelection = z.infer<typeof CanonicalModelSelectionSchema>;
|
|
3685
|
+
declare module '@makaio/framework/contracts' {
|
|
3686
|
+
interface AgentSelectionKindMap {
|
|
3687
|
+
'canonical-model': CanonicalModelSelection;
|
|
3688
|
+
}
|
|
3689
|
+
}
|
|
3690
|
+
//#endregion
|
|
3691
|
+
//#region core/contracts/src/skill/schemas.d.ts
|
|
3692
|
+
/** Trigger that activated or reinjected a skill. */
|
|
3693
|
+
declare const SkillActivationTriggerSchema: z.ZodEnum<{
|
|
3694
|
+
user: "user";
|
|
3695
|
+
auto: "auto";
|
|
3696
|
+
model: "model";
|
|
3697
|
+
reinjection: "reinjection";
|
|
3698
|
+
}>;
|
|
3699
|
+
/** Why a previously-active skill was removed from runtime state. */
|
|
3700
|
+
declare const SkillDeactivationReasonSchema: z.ZodEnum<{
|
|
3701
|
+
user: "user";
|
|
3702
|
+
cwd_changed: "cwd_changed";
|
|
3703
|
+
session_end: "session_end";
|
|
3704
|
+
replaced: "replaced";
|
|
3705
|
+
}>;
|
|
3706
|
+
type SkillActivationTrigger = z.infer<typeof SkillActivationTriggerSchema>;
|
|
3707
|
+
type SkillDeactivationReason = z.infer<typeof SkillDeactivationReasonSchema>;
|
|
3708
|
+
//#endregion
|
|
3709
|
+
//#region core/contracts/src/skill/types.d.ts
|
|
3710
|
+
declare module '@makaio/framework/contracts' {
|
|
3711
|
+
interface SessionEventTypeMap {
|
|
3712
|
+
/** Skill catalog built for a session agent. */
|
|
3713
|
+
'skill.catalog.built': {
|
|
3714
|
+
agentId: string;
|
|
3715
|
+
cwd: string;
|
|
3716
|
+
adapterId?: string;
|
|
3717
|
+
skillNames: string[];
|
|
3718
|
+
};
|
|
3719
|
+
/** Skill activated for a session agent. */
|
|
3720
|
+
'skill.activated': {
|
|
3721
|
+
agentId: string;
|
|
3722
|
+
skillName: string;
|
|
3723
|
+
trigger: SkillActivationTrigger;
|
|
3724
|
+
turnNumber?: number;
|
|
3725
|
+
};
|
|
3726
|
+
/** Skill deactivated for a session agent. */
|
|
3727
|
+
'skill.deactivated': {
|
|
3728
|
+
agentId: string;
|
|
3729
|
+
skillName: string;
|
|
3730
|
+
reason: SkillDeactivationReason;
|
|
3731
|
+
};
|
|
3732
|
+
}
|
|
3733
|
+
}
|
|
3734
|
+
//#endregion
|
|
3735
|
+
//#region core/contracts/src/telemetry/schemas.d.ts
|
|
3736
|
+
/**
|
|
3737
|
+
* Scalar attribute value allowed in a telemetry fact.
|
|
3738
|
+
*
|
|
3739
|
+
* Restricted to primitives and homogeneous primitive arrays so that the
|
|
3740
|
+
* telemetry sink can safely serialize without inspecting arbitrary objects.
|
|
3741
|
+
*/
|
|
3742
|
+
declare const SubjectTelemetryAttributeValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>, z.ZodArray<z.ZodBoolean>, z.ZodArray<z.ZodNull>]>;
|
|
3743
|
+
/** Inferred TypeScript type for a sanitized attribute value. */
|
|
3744
|
+
type SubjectTelemetryAttributeValue = z.infer<typeof SubjectTelemetryAttributeValueSchema>;
|
|
3745
|
+
/**
|
|
3746
|
+
* Sanitized bus subject telemetry fact schema.
|
|
3747
|
+
*
|
|
3748
|
+
* A fact captures the observable, non-sensitive metadata of a single bus
|
|
3749
|
+
* message. All payload content is excluded; only correlation handles and
|
|
3750
|
+
* namespace-approved scalar attributes are present.
|
|
3751
|
+
*/
|
|
3752
|
+
declare const SubjectTelemetryFactSchema: z.ZodObject<{
|
|
3753
|
+
factId: z.ZodString;
|
|
3754
|
+
observedAt: z.ZodNumber;
|
|
3755
|
+
machineId: z.ZodOptional<z.ZodString>;
|
|
3756
|
+
namespace: z.ZodString;
|
|
3757
|
+
subject: z.ZodString;
|
|
3758
|
+
messageType: z.ZodEnum<{
|
|
3759
|
+
request: "request";
|
|
3760
|
+
event: "event";
|
|
3761
|
+
broadcast: "broadcast";
|
|
3762
|
+
}>;
|
|
3763
|
+
direction: z.ZodEnum<{
|
|
3764
|
+
local: "local";
|
|
3765
|
+
outbound: "outbound";
|
|
3766
|
+
inbound: "inbound";
|
|
3767
|
+
}>;
|
|
3768
|
+
messageId: z.ZodString;
|
|
3769
|
+
correlationId: z.ZodOptional<z.ZodString>;
|
|
3770
|
+
attributes: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>, z.ZodArray<z.ZodBoolean>, z.ZodArray<z.ZodNull>]>>;
|
|
3771
|
+
}, z.core.$strict>;
|
|
3772
|
+
/** Inferred TypeScript type for a sanitized bus subject telemetry fact. */
|
|
3773
|
+
type SubjectTelemetryFact = z.infer<typeof SubjectTelemetryFactSchema>;
|
|
3774
|
+
//#endregion
|
|
3775
|
+
//#region core/bus-core/src/observability/projector-registry.d.ts
|
|
3776
|
+
/**
|
|
3777
|
+
* Map of sanitized scalar attribute values approved for telemetry emission.
|
|
3778
|
+
*
|
|
3779
|
+
* Keys are attribute names; values are restricted to primitives and homogeneous
|
|
3780
|
+
* primitive arrays so that telemetry sinks can safely serialize without
|
|
3781
|
+
* inspecting arbitrary objects. `undefined` values are excluded during merge.
|
|
3782
|
+
*/
|
|
3783
|
+
type SubjectTelemetryAttributes = Record<string, SubjectTelemetryAttributeValue | undefined>;
|
|
3784
|
+
/**
|
|
3785
|
+
* Input provided to a {@link SubjectTelemetryProjector} when projecting
|
|
3786
|
+
* attributes from a bus message payload.
|
|
3787
|
+
*/
|
|
3788
|
+
interface SubjectTelemetryProjectorInput {
|
|
3789
|
+
/** Raw bus message payload (read-only; must not be mutated). */
|
|
3790
|
+
readonly payload: unknown;
|
|
3791
|
+
/** Bus namespace that owns the observed subject. */
|
|
3792
|
+
readonly namespace: string;
|
|
3793
|
+
/** Subject key within the namespace. */
|
|
3794
|
+
readonly subject: string;
|
|
3795
|
+
/** Bus message type for the observed message. */
|
|
3796
|
+
readonly messageType: 'event' | 'request' | 'broadcast';
|
|
3797
|
+
}
|
|
3798
|
+
/**
|
|
3799
|
+
* Namespace-owned sidecar projector that extracts sanitized telemetry attributes
|
|
3800
|
+
* from a bus message payload.
|
|
3801
|
+
*
|
|
3802
|
+
* The projector is responsible for ensuring that the returned attributes contain
|
|
3803
|
+
* no sensitive data. Only scalar values ({@link SubjectTelemetryAttributeValue})
|
|
3804
|
+
* should appear in the returned map.
|
|
3805
|
+
*/
|
|
3806
|
+
interface SubjectTelemetryProjector {
|
|
3807
|
+
/** Namespace that owns this projector. */
|
|
3808
|
+
readonly namespace: string;
|
|
3809
|
+
/** Subject within the namespace that this projector handles. */
|
|
3810
|
+
readonly subject: string;
|
|
3811
|
+
/**
|
|
3812
|
+
* Extract sanitized telemetry attributes from the message payload.
|
|
3813
|
+
* @param input - Message context including payload, namespace, subject, and message type.
|
|
3814
|
+
* @returns Map of attribute key to sanitized scalar value. `undefined` values are omitted.
|
|
3815
|
+
*/
|
|
3816
|
+
project(input: SubjectTelemetryProjectorInput): SubjectTelemetryAttributes;
|
|
3817
|
+
}
|
|
3818
|
+
/**
|
|
3819
|
+
* Registry of namespace-owned sidecar projectors, keyed by `namespace.subject`.
|
|
3820
|
+
*
|
|
3821
|
+
* Projectors may be registered by the namespace owner to provide sanitized
|
|
3822
|
+
* telemetry attributes that cannot be inferred purely from schema observability
|
|
3823
|
+
* metadata (e.g., when the payload contains nested structures that require
|
|
3824
|
+
* domain-specific extraction logic).
|
|
3825
|
+
*/
|
|
3826
|
+
interface SubjectTelemetryProjectorRegistry {
|
|
3827
|
+
/**
|
|
3828
|
+
* Register a projector for a specific namespace and subject.
|
|
3829
|
+
*
|
|
3830
|
+
* If a projector is already registered for the same key, it is replaced.
|
|
3831
|
+
* @param projector - Projector to register.
|
|
3832
|
+
* @returns Cleanup function that unregisters this projector instance.
|
|
3833
|
+
*/
|
|
3834
|
+
register(projector: SubjectTelemetryProjector): () => void;
|
|
3835
|
+
/**
|
|
3836
|
+
* Retrieve the registered projector for a namespace and subject, if any.
|
|
3837
|
+
* @param namespace - Namespace that owns the subject.
|
|
3838
|
+
* @param subject - Subject key within the namespace.
|
|
3839
|
+
* @returns The registered projector, or `undefined` if none is registered.
|
|
3840
|
+
*/
|
|
3841
|
+
get(namespace: string, subject: string): SubjectTelemetryProjector | undefined;
|
|
3842
|
+
}
|
|
3843
|
+
/**
|
|
3844
|
+
* Create a new {@link SubjectTelemetryProjectorRegistry}.
|
|
3845
|
+
*
|
|
3846
|
+
* Maintains a map of projectors keyed by `namespace.subject`. At most one
|
|
3847
|
+
* projector is stored per key; later registrations replace earlier ones.
|
|
3848
|
+
* @returns A new projector registry instance.
|
|
3849
|
+
*/
|
|
3850
|
+
declare function createSubjectTelemetryProjectorRegistry(): SubjectTelemetryProjectorRegistry;
|
|
3851
|
+
//#endregion
|
|
3852
|
+
//#region core/bus-core/src/observability/subject-telemetry-projector.d.ts
|
|
3853
|
+
/**
|
|
3854
|
+
* Union of the three projectable local bus message types.
|
|
3855
|
+
*
|
|
3856
|
+
* Only messages that enter the bus via the local API (`emit`, `request`,
|
|
3857
|
+
* `broadcast`) are candidates for telemetry projection. Transport-relayed
|
|
3858
|
+
* messages are excluded because their projection is the responsibility of
|
|
3859
|
+
* the originating runtime.
|
|
3860
|
+
*/
|
|
3861
|
+
type ProjectableBusMessage = BusEventMessage | BusRequestMessage | BusBroadcastMessage;
|
|
3862
|
+
/**
|
|
3863
|
+
* Input for {@link projectSubjectTelemetryFacts}.
|
|
3864
|
+
*
|
|
3865
|
+
* Carries all data needed to project a sanitized {@link SubjectTelemetryFact}
|
|
3866
|
+
* from a single observed bus message.
|
|
3867
|
+
*/
|
|
3868
|
+
interface SubjectTelemetryProjectionInput {
|
|
3869
|
+
/** The observed bus message to project. */
|
|
3870
|
+
readonly message: ProjectableBusMessage;
|
|
3871
|
+
/**
|
|
3872
|
+
* Flow direction of the observed message at the source runtime.
|
|
3873
|
+
* Typically `'local'` for messages that originate and are consumed within
|
|
3874
|
+
* the same process.
|
|
3875
|
+
*/
|
|
3876
|
+
readonly direction: 'local' | 'outbound' | 'inbound';
|
|
3877
|
+
/** Wall-clock timestamp in Unix milliseconds at the time of observation. */
|
|
3878
|
+
readonly observedAt: number;
|
|
3879
|
+
/** Optional source machine identifier for multi-node telemetry correlation. */
|
|
3880
|
+
readonly machineId?: string;
|
|
3881
|
+
/**
|
|
3882
|
+
* Namespace registry used to look up the schema for the observed subject.
|
|
3883
|
+
* Obtain via `bus.getContext().namespaceRegistry`.
|
|
3884
|
+
*/
|
|
3885
|
+
readonly namespaceRegistry: NamespaceRegistry;
|
|
3886
|
+
/**
|
|
3887
|
+
* Optional sidecar projector registry for namespace-owned attribute extraction.
|
|
3888
|
+
*
|
|
3889
|
+
* When a projector is registered for the message's namespace and subject it
|
|
3890
|
+
* takes precedence over schema-driven projection.
|
|
3891
|
+
*/
|
|
3892
|
+
readonly projectorRegistry?: SubjectTelemetryProjectorRegistry;
|
|
3893
|
+
}
|
|
3894
|
+
/**
|
|
3895
|
+
* Project a single bus message into an array of sanitized
|
|
3896
|
+
* {@link SubjectTelemetryFact} objects.
|
|
3897
|
+
*
|
|
3898
|
+
* Attributes are resolved in the following priority order:
|
|
3899
|
+
* 1. **Sidecar projector**: a namespace-owned projector registered in
|
|
3900
|
+
* `projectorRegistry` for the message's namespace and subject.
|
|
3901
|
+
* 2. **Schema-driven**: scalar fields projected via `traceAll` or explicit
|
|
3902
|
+
* `observability.attribute()` / `observability.hidden()` metadata on the
|
|
3903
|
+
* Zod schema stored in the namespace registry.
|
|
3904
|
+
* 3. **Trace-only**: when neither approach yields attributes, an empty
|
|
3905
|
+
* `attributes` map is produced (the fact still carries correlation handles).
|
|
3906
|
+
*
|
|
3907
|
+
* The function always returns exactly one fact per call. The array shape
|
|
3908
|
+
* is intentional — downstream aggregation layers may extend this to fan-out
|
|
3909
|
+
* multiple facts from a single message (e.g., per-field count metrics).
|
|
3910
|
+
* @param input - Projection input including the message, direction, timestamp,
|
|
3911
|
+
* namespace registry, and optional sidecar projector registry.
|
|
3912
|
+
* @returns Array containing exactly one {@link SubjectTelemetryFact}.
|
|
3913
|
+
*/
|
|
3914
|
+
declare function projectSubjectTelemetryFacts(input: SubjectTelemetryProjectionInput): SubjectTelemetryFact[];
|
|
3915
|
+
//#endregion
|
|
3916
|
+
//#region core/bus-core/src/observability/projected-telemetry-transport.d.ts
|
|
3917
|
+
/**
|
|
3918
|
+
* Configuration options for {@link createProjectedTelemetryTransport}.
|
|
3919
|
+
*/
|
|
3920
|
+
interface ProjectedTelemetryTransportOptions {
|
|
3921
|
+
/**
|
|
3922
|
+
* Unique name for this transport instance.
|
|
3923
|
+
*
|
|
3924
|
+
* Must be unique within a single bus instance (used as the registry key).
|
|
3925
|
+
*/
|
|
3926
|
+
readonly name: string;
|
|
3927
|
+
/**
|
|
3928
|
+
* The underlying transport that receives projected telemetry fact events.
|
|
3929
|
+
*
|
|
3930
|
+
* All projected facts are forwarded to this transport as
|
|
3931
|
+
* `subject-telemetry.fact` events. No raw application payloads are forwarded.
|
|
3932
|
+
*/
|
|
3933
|
+
readonly inner: BusTransport;
|
|
3934
|
+
/**
|
|
3935
|
+
* Namespace registry used to resolve schemas for attribute projection.
|
|
3936
|
+
*
|
|
3937
|
+
* Obtain via `bus.getContext().namespaceRegistry`.
|
|
3938
|
+
*/
|
|
3939
|
+
readonly namespaceRegistry: NamespaceRegistry;
|
|
3940
|
+
/**
|
|
3941
|
+
* Optional sidecar projector registry for namespace-owned attribute extraction.
|
|
3942
|
+
*
|
|
3943
|
+
* When provided, sidecar projectors registered for a message's namespace and
|
|
3944
|
+
* subject take precedence over schema-driven attribute projection.
|
|
3945
|
+
*/
|
|
3946
|
+
readonly projectorRegistry?: SubjectTelemetryProjectorRegistry;
|
|
3947
|
+
/**
|
|
3948
|
+
* Optional source machine identifier embedded in each projected fact.
|
|
3949
|
+
*
|
|
3950
|
+
* When omitted, the `machineId` field is absent from emitted facts.
|
|
3951
|
+
*/
|
|
3952
|
+
readonly machineId?: string;
|
|
3953
|
+
/**
|
|
3954
|
+
* Optional clock override for deterministic testing.
|
|
3955
|
+
*
|
|
3956
|
+
* When provided, called instead of `Date.now()` to obtain the `observedAt`
|
|
3957
|
+
* timestamp for each projected fact. Defaults to `Date.now`.
|
|
3958
|
+
* @returns Current Unix timestamp in milliseconds.
|
|
3959
|
+
*/
|
|
3960
|
+
readonly now?: () => number;
|
|
3961
|
+
}
|
|
3962
|
+
/**
|
|
3963
|
+
* Create a one-way outbound transport that projects bus messages into sanitized
|
|
3964
|
+
* {@link SubjectTelemetryFact} events and forwards only those facts upstream.
|
|
3965
|
+
*
|
|
3966
|
+
* ## Behavior
|
|
3967
|
+
*
|
|
3968
|
+
* **Outbound (send):**
|
|
3969
|
+
* - Projectable messages (`event`, `request`, `broadcast`) are projected into
|
|
3970
|
+
* `subject-telemetry.fact` events via {@link projectSubjectTelemetryFacts}
|
|
3971
|
+
* and forwarded to `inner.send()`. The raw application payload is never
|
|
3972
|
+
* forwarded.
|
|
3973
|
+
* - Non-projectable messages (`response`, `subscribe`, `heartbeat`, etc.) are
|
|
3974
|
+
* silently dropped. This transport is strictly outbound; control and response
|
|
3975
|
+
* messages must not be relayed to the upstream collector.
|
|
3976
|
+
*
|
|
3977
|
+
* **Inbound (onReceive):**
|
|
3978
|
+
* - The transport registers a receive handler on `inner` but silently drops all
|
|
3979
|
+
* inbound messages. Control messages (`heartbeat`, `subscribe-ack`,
|
|
3980
|
+
* `subscribe-sync-complete`) are consumed silently. Application messages
|
|
3981
|
+
* arriving from upstream are dropped to prevent raw remote data from
|
|
3982
|
+
* propagating into the local bus.
|
|
3983
|
+
*
|
|
3984
|
+
* Connection and readiness operations delegate to `inner`. Subscription
|
|
3985
|
+
* advertisement is deliberately not forwarded: this transport is telemetry-only
|
|
3986
|
+
* and must not make the upstream collector believe it can route application
|
|
3987
|
+
* subjects back to this runtime.
|
|
3988
|
+
* @param options - Configuration including the inner transport, namespace
|
|
3989
|
+
* registry, optional machine ID, and optional clock override.
|
|
3990
|
+
* @returns A {@link BusTransport} that emits only projected telemetry facts.
|
|
3991
|
+
*/
|
|
3992
|
+
declare function createProjectedTelemetryTransport(options: ProjectedTelemetryTransportOptions): BusTransport;
|
|
3993
|
+
//#endregion
|
|
3994
|
+
export { type BroadcastContext, type BroadcastResult, type BusBroadcastMessage, type BusBroadcastResponseMessage, BusError, type BusEventMessage, type BusHeartbeatMessage, BusLifecycle, type BusMessage, type BusMessageObserver, type BusNamespace, type BusReceiveHandler, type BusRequestMessage, type BusResponseMessage, type BusSubscribeMessage, type BusSubscribeSyncCompleteMessage, type BusSubscriptionAckMessage, type BusTransport, type BusTransportError, type BusTransportKeys, type BusTransportRegistry, type BusUnsubscribeMessage, type BusUrlConfig, type BusValidationMode, ChannelAuthError, ChannelClosedError, type ChannelEndpoint, type ChannelEndpointOptions, ChannelOnlyError, type ConnectOptions, type ConnectedPayload, CorrelationTracker, DEFAULT_REQUEST_TIMEOUT_MS, type DefinedSubjectExtension, type DisconnectedPayload, type EventSubjectExtension, type ExtendedSubjectDefinition, type ExtensionNamespace, type ExtensionNamespaceConfig, type ExtensionNamespaceExtensions, type ExtensionNamespaceFromConfig, type IDirectChannel, type IFilteredBus, type IMakaioBus, type InterceptorContext, LOCAL_ORIGIN, LocalSubjectError, MakaioBus, type MakaioBusContext, NO_HANDLER_ERROR_CODE, type NamespaceRegistrationOptions, NoHandlerError, type ObservedBusMessage, type OnOptions, OnceAbortError, type OptionalResult, type ProjectableBusMessage, type ProjectedTelemetryTransportOptions, REMOTE_ORIGIN, RequestError, type RequestSubjectExtension, type SchemaViolationCallback, type SchemaViolationReport, type ScopedBus, type ScopedBusFor, type SubjectExtension, type SubjectTelemetryAttributes, type SubjectTelemetryProjectionInput, type SubjectTelemetryProjector, type SubjectTelemetryProjectorInput, type SubjectTelemetryProjectorRegistry, type SubscriptionEntry, SystemChannelSchemas, TimeoutError, type TransportRegistration, ValidationError, __resetWarnedSubjects, buildSubscribeMessage, buildUnsubscribeMessage, channelSubject, collectorOnlySubject, createBusContext, createBusInstance, createChannelEndpoint, createExtensionNamespace, createFilteredBus, createProjectedTelemetryTransport, createSubjectTelemetryProjectorRegistry, defaultTransports, defineSubjectExtension, deserializeTransportError, extendSubjectImpl as extendSubject, getFullSubjectForSubjectDefinition, getPath, getSubjectFromBusMessage, handleCorrelationResponse, isNoHandlerErrorForSubject, isRequestSchema, localSubject, matchesAnySubscription, matchesFilter, matchesSubscription, mergeFilters, openChannel, parseBusUrl, projectSubjectTelemetryFacts, serializeTransportError, shouldReceiveMessage, trackMessageCorrelation, waitForSubscriptionPropagation };
|