@moltzap/client 2026.1002.0 → 2026.1005.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +1 -6
- package/README.md +2 -2
- package/bin/moltzapd +2 -2
- package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +96 -136
- package/dist/delivery/history-export.d.ts.map +1 -0
- package/dist/{daemon/runtime → delivery}/history-export.js +36 -3
- package/dist/delivery/history-export.js.map +1 -0
- package/dist/delivery/host-delivery.d.ts +51 -0
- package/dist/delivery/host-delivery.d.ts.map +1 -0
- package/dist/delivery/host-delivery.js +109 -0
- package/dist/delivery/host-delivery.js.map +1 -0
- package/dist/delivery/inbox.d.ts +142 -0
- package/dist/delivery/inbox.d.ts.map +1 -0
- package/dist/delivery/inbox.js +130 -0
- package/dist/delivery/inbox.js.map +1 -0
- package/dist/delivery/index.d.ts +4 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +4 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/delivery/operations.d.ts +787 -0
- package/dist/delivery/operations.d.ts.map +1 -0
- package/dist/delivery/operations.js +162 -0
- package/dist/delivery/operations.js.map +1 -0
- package/dist/delivery/pass.d.ts +91 -0
- package/dist/delivery/pass.d.ts.map +1 -0
- package/dist/{daemon/runtime/pending-delivery.js → delivery/pass.js} +61 -34
- package/dist/delivery/pass.js.map +1 -0
- package/dist/delivery/send-invocations.d.ts +106 -0
- package/dist/delivery/send-invocations.d.ts.map +1 -0
- package/dist/delivery/send-invocations.js +109 -0
- package/dist/delivery/send-invocations.js.map +1 -0
- package/dist/endpoint/harness-endpoint/capability.d.ts +39 -0
- package/dist/endpoint/harness-endpoint/capability.d.ts.map +1 -0
- package/dist/endpoint/harness-endpoint/capability.js +9 -0
- package/dist/endpoint/harness-endpoint/capability.js.map +1 -0
- package/dist/endpoint/harness-endpoint/events.d.ts +12 -0
- package/dist/endpoint/harness-endpoint/events.d.ts.map +1 -0
- package/dist/endpoint/harness-endpoint/events.js +199 -0
- package/dist/endpoint/harness-endpoint/events.js.map +1 -0
- package/dist/{client-runtime.d.ts → endpoint/harness-endpoint/index.d.ts} +4 -2
- package/dist/endpoint/harness-endpoint/index.d.ts.map +1 -0
- package/dist/{client-runtime.js → endpoint/harness-endpoint/index.js} +115 -115
- package/dist/endpoint/harness-endpoint/index.js.map +1 -0
- package/dist/endpoint/implementation.d.ts +4 -0
- package/dist/endpoint/implementation.d.ts.map +1 -0
- package/dist/endpoint/implementation.js +5 -0
- package/dist/endpoint/implementation.js.map +1 -0
- package/dist/endpoint/mcp/auth.d.ts +31 -0
- package/dist/endpoint/mcp/auth.d.ts.map +1 -0
- package/dist/endpoint/mcp/auth.js +42 -0
- package/dist/endpoint/mcp/auth.js.map +1 -0
- package/dist/endpoint/mcp/event-schemas.d.ts +151 -0
- package/dist/endpoint/mcp/event-schemas.d.ts.map +1 -0
- package/dist/endpoint/mcp/event-schemas.js +72 -0
- package/dist/endpoint/mcp/event-schemas.js.map +1 -0
- package/dist/endpoint/mcp/event-signing.d.ts +62 -0
- package/dist/endpoint/mcp/event-signing.d.ts.map +1 -0
- package/dist/endpoint/mcp/event-signing.js +185 -0
- package/dist/endpoint/mcp/event-signing.js.map +1 -0
- package/dist/endpoint/mcp/events.d.ts +45 -0
- package/dist/endpoint/mcp/events.d.ts.map +1 -0
- package/dist/endpoint/mcp/events.js +308 -0
- package/dist/endpoint/mcp/events.js.map +1 -0
- package/dist/{harness-mcp-http.d.ts → endpoint/mcp/http.d.ts} +1 -1
- package/dist/endpoint/mcp/http.d.ts.map +1 -0
- package/dist/{harness-mcp-http.js → endpoint/mcp/http.js} +1 -1
- package/dist/endpoint/mcp/http.js.map +1 -0
- package/dist/endpoint/mcp/index.d.ts +10 -0
- package/dist/endpoint/mcp/index.d.ts.map +1 -0
- package/dist/endpoint/mcp/index.js +8 -0
- package/dist/endpoint/mcp/index.js.map +1 -0
- package/dist/endpoint/mcp/names.d.ts +18 -0
- package/dist/endpoint/mcp/names.d.ts.map +1 -0
- package/dist/endpoint/mcp/names.js +18 -0
- package/dist/endpoint/mcp/names.js.map +1 -0
- package/dist/{management-runtime.d.ts → endpoint/mcp/owner-tools.d.ts} +7 -7
- package/dist/endpoint/mcp/owner-tools.d.ts.map +1 -0
- package/dist/{management-runtime.js → endpoint/mcp/owner-tools.js} +2 -4
- package/dist/endpoint/mcp/owner-tools.js.map +1 -0
- package/dist/endpoint/mcp/schemas.d.ts +42 -0
- package/dist/endpoint/mcp/schemas.d.ts.map +1 -0
- package/dist/endpoint/mcp/schemas.js +89 -0
- package/dist/endpoint/mcp/schemas.js.map +1 -0
- package/dist/{harness-mcp-wire.d.ts → endpoint/mcp/tools.d.ts} +17 -14
- package/dist/endpoint/mcp/tools.d.ts.map +1 -0
- package/dist/{harness-mcp-wire.js → endpoint/mcp/tools.js} +230 -110
- package/dist/endpoint/mcp/tools.js.map +1 -0
- package/dist/endpoint/mcp/webhook.d.ts +15 -0
- package/dist/endpoint/mcp/webhook.d.ts.map +1 -0
- package/dist/endpoint/mcp/webhook.js +359 -0
- package/dist/endpoint/mcp/webhook.js.map +1 -0
- package/dist/identity/credentials.d.ts +46 -0
- package/dist/identity/credentials.d.ts.map +1 -0
- package/dist/identity/credentials.js +55 -0
- package/dist/identity/credentials.js.map +1 -0
- package/dist/identity/index.d.ts +4 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +4 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +21 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -5
- package/dist/index.js.map +1 -1
- package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +12 -7
- package/dist/index.types-check.d.ts.map +1 -0
- package/dist/{contract.types-check.js → index.types-check.js} +6 -5
- package/dist/index.types-check.js.map +1 -0
- package/dist/{daemon/runtime/activation.d.ts → service/activation/index.d.ts} +11 -13
- package/dist/service/activation/index.d.ts.map +1 -0
- package/dist/{daemon/runtime/activation.js → service/activation/index.js} +3 -3
- package/dist/service/activation/index.js.map +1 -0
- package/dist/{daemon/configuration.d.ts → service/bootstrap.d.ts} +9 -17
- package/dist/service/bootstrap.d.ts.map +1 -0
- package/dist/service/bootstrap.js +6 -0
- package/dist/service/bootstrap.js.map +1 -0
- package/dist/service/configuration.d.ts +13 -0
- package/dist/service/configuration.d.ts.map +1 -0
- package/dist/service/configuration.js +75 -0
- package/dist/service/configuration.js.map +1 -0
- package/dist/{daemon/runtime → service}/controller.d.ts +9 -7
- package/dist/service/controller.d.ts.map +1 -0
- package/dist/service/controller.js +106 -0
- package/dist/service/controller.js.map +1 -0
- package/dist/{server.d.ts → service/index.d.ts} +7 -4
- package/dist/service/index.d.ts.map +1 -0
- package/dist/{server.js → service/index.js} +17 -15
- package/dist/service/index.js.map +1 -0
- package/dist/{server.types-check.d.ts → service/index.types-check.d.ts} +7 -7
- package/dist/service/index.types-check.d.ts.map +1 -0
- package/dist/{server.types-check.js → service/index.types-check.js} +1 -1
- package/dist/service/index.types-check.js.map +1 -0
- package/dist/{daemon/runtime/index.d.ts → service/lifecycle.d.ts} +4 -4
- package/dist/service/lifecycle.d.ts.map +1 -0
- package/dist/{daemon/runtime/index.js → service/lifecycle.js} +29 -26
- package/dist/service/lifecycle.js.map +1 -0
- package/dist/{daemon → service}/management.d.ts +3 -3
- package/dist/service/management.d.ts.map +1 -0
- package/dist/{daemon → service}/management.js +4 -14
- package/dist/service/management.js.map +1 -0
- package/dist/{daemon/registration.d.ts → service/registration/index.d.ts} +3 -3
- package/dist/service/registration/index.d.ts.map +1 -0
- package/dist/{daemon/registration.js → service/registration/index.js} +2 -3
- package/dist/service/registration/index.js.map +1 -0
- package/dist/{daemon/runtime/protocol.d.ts → service/supervision.d.ts} +17 -25
- package/dist/service/supervision.d.ts.map +1 -0
- package/dist/{daemon/runtime/protocol.js → service/supervision.js} +34 -37
- package/dist/service/supervision.js.map +1 -0
- package/dist/store/anchors.d.ts.map +1 -0
- package/dist/store/anchors.js.map +1 -0
- package/dist/store/database/index.d.ts.map +1 -0
- package/dist/store/database/index.js.map +1 -0
- package/dist/store/database/schema.d.ts.map +1 -0
- package/dist/{endpoint/store → store}/database/schema.js +42 -6
- package/dist/store/database/schema.js.map +1 -0
- package/dist/store/database/values.d.ts.map +1 -0
- package/dist/store/database/values.js.map +1 -0
- package/dist/store/inbox.d.ts +86 -0
- package/dist/store/inbox.d.ts.map +1 -0
- package/dist/store/inbox.js +269 -0
- package/dist/store/inbox.js.map +1 -0
- package/dist/store/index.d.ts +12 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +8 -0
- package/dist/store/index.js.map +1 -0
- package/dist/{endpoint/store → store/queues}/deliveries.d.ts +9 -1
- package/dist/store/queues/deliveries.d.ts.map +1 -0
- package/dist/{endpoint/store → store/queues}/deliveries.js +19 -3
- package/dist/store/queues/deliveries.js.map +1 -0
- package/dist/{endpoint/store → store/queues}/dissemination.d.ts +4 -2
- package/dist/store/queues/dissemination.d.ts.map +1 -0
- package/dist/{endpoint/store → store/queues}/dissemination.js +5 -4
- package/dist/store/queues/dissemination.js.map +1 -0
- package/dist/store/queues/index.d.ts +5 -0
- package/dist/store/queues/index.d.ts.map +1 -0
- package/dist/store/queues/index.js +7 -0
- package/dist/store/queues/index.js.map +1 -0
- package/dist/{endpoint/store → store/queues}/outbound.d.ts +1 -1
- package/dist/store/queues/outbound.d.ts.map +1 -0
- package/dist/{endpoint/store → store/queues}/outbound.js +1 -1
- package/dist/store/queues/outbound.js.map +1 -0
- package/dist/{endpoint/store/management.d.ts → store/reads.d.ts} +1 -1
- package/dist/store/reads.d.ts.map +1 -0
- package/dist/{endpoint/store/management.js → store/reads.js} +2 -4
- package/dist/store/reads.js.map +1 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/{endpoint/store → store}/records.js +1 -2
- package/dist/store/records.js.map +1 -0
- package/dist/store/rows/index.d.ts.map +1 -0
- package/dist/store/rows/index.js.map +1 -0
- package/dist/store/runtime-codec.d.ts +17 -0
- package/dist/store/runtime-codec.d.ts.map +1 -0
- package/dist/store/runtime-codec.js +32 -0
- package/dist/store/runtime-codec.js.map +1 -0
- package/dist/{endpoint/store/index.d.ts → store/store.d.ts} +2 -2
- package/dist/store/store.d.ts.map +1 -0
- package/dist/{endpoint/store/index.js → store/store.js} +34 -7
- package/dist/store/store.js.map +1 -0
- package/dist/{endpoint/store → store}/types.d.ts +41 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js.map +1 -0
- package/dist/transport/collectives/answer-formats.d.ts +21 -0
- package/dist/transport/collectives/answer-formats.d.ts.map +1 -0
- package/dist/transport/collectives/answer-formats.js +127 -0
- package/dist/transport/collectives/answer-formats.js.map +1 -0
- package/dist/transport/collectives/failures.d.ts +34 -0
- package/dist/transport/collectives/failures.d.ts.map +1 -0
- package/dist/transport/collectives/failures.js +40 -0
- package/dist/transport/collectives/failures.js.map +1 -0
- package/dist/transport/collectives/forms.d.ts +260 -0
- package/dist/transport/collectives/forms.d.ts.map +1 -0
- package/dist/transport/collectives/forms.js +214 -0
- package/dist/transport/collectives/forms.js.map +1 -0
- package/dist/transport/collectives/inbound.d.ts +129 -0
- package/dist/transport/collectives/inbound.d.ts.map +1 -0
- package/dist/transport/collectives/inbound.js +81 -0
- package/dist/transport/collectives/inbound.js.map +1 -0
- package/dist/transport/collectives/index.d.ts +10 -0
- package/dist/transport/collectives/index.d.ts.map +1 -0
- package/dist/transport/collectives/index.js +8 -0
- package/dist/transport/collectives/index.js.map +1 -0
- package/dist/{message-text.d.ts → transport/collectives/message-text.d.ts} +8 -4
- package/dist/transport/collectives/message-text.d.ts.map +1 -0
- package/dist/{message-text.js → transport/collectives/message-text.js} +23 -47
- package/dist/transport/collectives/message-text.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +35 -24
- package/dist/transport/collectives/operation.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.js +70 -105
- package/dist/transport/collectives/operation.js.map +1 -0
- package/dist/transport/collectives/part/grammar.d.ts +175 -0
- package/dist/transport/collectives/part/grammar.d.ts.map +1 -0
- package/dist/transport/collectives/part/grammar.js +222 -0
- package/dist/transport/collectives/part/grammar.js.map +1 -0
- package/dist/{endpoint/collective/wire.d.ts → transport/collectives/part/index.d.ts} +38 -51
- package/dist/transport/collectives/part/index.d.ts.map +1 -0
- package/dist/{endpoint/collective/wire.js → transport/collectives/part/index.js} +20 -122
- package/dist/transport/collectives/part/index.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/received-request.d.ts +2 -1
- package/dist/transport/collectives/received-request.d.ts.map +1 -0
- package/dist/transport/collectives/received-request.js.map +1 -0
- package/dist/transport/collectives/render.d.ts +40 -0
- package/dist/transport/collectives/render.d.ts.map +1 -0
- package/dist/transport/collectives/render.js +74 -0
- package/dist/transport/collectives/render.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/request-sends.d.ts +3 -2
- package/dist/transport/collectives/request-sends.d.ts.map +1 -0
- package/dist/transport/collectives/request-sends.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/shared-answers.d.ts +4 -3
- package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
- package/dist/transport/collectives/shared-answers.js.map +1 -0
- package/dist/transport/collectives/validation.d.ts +31 -0
- package/dist/transport/collectives/validation.d.ts.map +1 -0
- package/dist/transport/collectives/validation.js +239 -0
- package/dist/transport/collectives/validation.js.map +1 -0
- package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +7 -4
- package/dist/transport/messaging/address.d.ts.map +1 -0
- package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +30 -26
- package/dist/transport/messaging/address.js.map +1 -0
- package/dist/{endpoint/protocol/index.d.ts → transport/messaging/certification.d.ts} +4 -4
- package/dist/transport/messaging/certification.d.ts.map +1 -0
- package/dist/{endpoint/protocol/index.js → transport/messaging/certification.js} +15 -10
- package/dist/transport/messaging/certification.js.map +1 -0
- package/dist/{endpoint/engine-dissemination.d.ts → transport/messaging/dissemination.d.ts} +3 -3
- package/dist/transport/messaging/dissemination.d.ts.map +1 -0
- package/dist/{endpoint/engine-dissemination.js → transport/messaging/dissemination.js} +7 -6
- package/dist/transport/messaging/dissemination.js.map +1 -0
- package/dist/transport/messaging/errors.d.ts +50 -0
- package/dist/transport/messaging/errors.d.ts.map +1 -0
- package/dist/transport/messaging/errors.js +64 -0
- package/dist/transport/messaging/errors.js.map +1 -0
- package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts +3 -3
- package/dist/transport/messaging/evidence.d.ts.map +1 -0
- package/dist/{endpoint/protocol → transport/messaging}/evidence.js +1 -1
- package/dist/transport/messaging/evidence.js.map +1 -0
- package/dist/{endpoint/engine.d.ts → transport/messaging/index.d.ts} +4 -4
- package/dist/transport/messaging/index.d.ts.map +1 -0
- package/dist/{endpoint/engine.js → transport/messaging/index.js} +25 -9
- package/dist/transport/messaging/index.js.map +1 -0
- package/dist/transport/messaging/message.d.ts +112 -0
- package/dist/transport/messaging/message.d.ts.map +1 -0
- package/dist/transport/messaging/message.js +38 -0
- package/dist/transport/messaging/message.js.map +1 -0
- package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.d.ts +5 -5
- package/dist/transport/messaging/reanchor/empty.d.ts.map +1 -0
- package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.js +3 -3
- package/dist/transport/messaging/reanchor/empty.js.map +1 -0
- package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.d.ts +3 -3
- package/dist/transport/messaging/reanchor/index.d.ts.map +1 -0
- package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.js +27 -12
- package/dist/transport/messaging/reanchor/index.js.map +1 -0
- package/dist/{endpoint/engine-durability.d.ts → transport/messaging/records/index.d.ts} +9 -6
- package/dist/transport/messaging/records/index.d.ts.map +1 -0
- package/dist/{endpoint/engine-durability.js → transport/messaging/records/index.js} +9 -15
- package/dist/transport/messaging/records/index.js.map +1 -0
- package/dist/{endpoint → transport/messaging}/recovery/barrier.d.ts +1 -1
- package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -0
- package/dist/transport/messaging/recovery/barrier.js.map +1 -0
- package/dist/{endpoint/recovery/store-evidence.d.ts → transport/messaging/recovery/evidence.d.ts} +5 -5
- package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -0
- package/dist/{endpoint/recovery/store-evidence.js → transport/messaging/recovery/evidence.js} +3 -3
- package/dist/transport/messaging/recovery/evidence.js.map +1 -0
- package/dist/{endpoint → transport/messaging}/recovery/index.d.ts +4 -4
- package/dist/transport/messaging/recovery/index.d.ts.map +1 -0
- package/dist/{endpoint → transport/messaging}/recovery/index.js +41 -32
- package/dist/transport/messaging/recovery/index.js.map +1 -0
- package/dist/{endpoint/recovery/store.d.ts → transport/messaging/recovery/persistence.d.ts} +5 -5
- package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -0
- package/dist/{endpoint/recovery/store.js → transport/messaging/recovery/persistence.js} +4 -4
- package/dist/transport/messaging/recovery/persistence.js.map +1 -0
- package/dist/{endpoint/recovery/state.d.ts → transport/messaging/recovery-session/index.d.ts} +6 -6
- package/dist/transport/messaging/recovery-session/index.d.ts.map +1 -0
- package/dist/{endpoint/recovery/state.js → transport/messaging/recovery-session/index.js} +3 -3
- package/dist/transport/messaging/recovery-session/index.js.map +1 -0
- package/dist/{endpoint/engine-types.d.ts → transport/messaging/runtime/index.d.ts} +22 -5
- package/dist/transport/messaging/runtime/index.d.ts.map +1 -0
- package/dist/{endpoint/engine-types.js → transport/messaging/runtime/index.js} +1 -1
- package/dist/transport/messaging/runtime/index.js.map +1 -0
- package/dist/{endpoint/engine-send.d.ts → transport/messaging/send.d.ts} +5 -4
- package/dist/transport/messaging/send.d.ts.map +1 -0
- package/dist/{endpoint/engine-send.js → transport/messaging/send.js} +4 -4
- package/dist/transport/messaging/send.js.map +1 -0
- package/dist/transport/router/index.d.ts.map +1 -0
- package/dist/{endpoint/router-worker → transport/router}/index.js +1 -1
- package/dist/transport/router/index.js.map +1 -0
- package/dist/transport/router/outage.d.ts.map +1 -0
- package/dist/transport/router/outage.js.map +1 -0
- package/dist/{endpoint/router-worker → transport/router}/types.d.ts +3 -4
- package/dist/transport/router/types.d.ts.map +1 -0
- package/dist/transport/router/types.js.map +1 -0
- package/dist/{endpoint/representation-canonical.d.ts → transport/wire/encoding/canonical.d.ts} +1 -2
- package/dist/transport/wire/encoding/canonical.d.ts.map +1 -0
- package/dist/{endpoint/representation-canonical.js → transport/wire/encoding/canonical.js} +2 -2
- package/dist/transport/wire/encoding/canonical.js.map +1 -0
- package/dist/{endpoint/representation-codec.d.ts → transport/wire/encoding/codec.d.ts} +5 -9
- package/dist/transport/wire/encoding/codec.d.ts.map +1 -0
- package/dist/{endpoint/representation-codec.js → transport/wire/encoding/codec.js} +7 -27
- package/dist/transport/wire/encoding/codec.js.map +1 -0
- package/dist/transport/wire/encoding/index.d.ts +4 -0
- package/dist/transport/wire/encoding/index.d.ts.map +1 -0
- package/dist/transport/wire/encoding/index.js +6 -0
- package/dist/transport/wire/encoding/index.js.map +1 -0
- package/dist/transport/wire/index.d.ts +6 -0
- package/dist/transport/wire/index.d.ts.map +1 -0
- package/dist/transport/wire/index.js +9 -0
- package/dist/transport/wire/index.js.map +1 -0
- package/dist/{endpoint/representation-schemas.d.ts → transport/wire/schemas.d.ts} +76 -98
- package/dist/transport/wire/schemas.d.ts.map +1 -0
- package/dist/{endpoint/representation-schemas.js → transport/wire/schemas.js} +7 -19
- package/dist/transport/wire/schemas.js.map +1 -0
- package/dist/transport/wire/values.d.ts +114 -0
- package/dist/transport/wire/values.d.ts.map +1 -0
- package/dist/transport/wire/values.js +192 -0
- package/dist/transport/wire/values.js.map +1 -0
- package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +3 -4
- package/dist/transport/wire/verification.d.ts.map +1 -0
- package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +4 -4
- package/dist/transport/wire/verification.js.map +1 -0
- package/package.json +6 -6
- package/dist/client-runtime.d.ts.map +0 -1
- package/dist/client-runtime.js.map +0 -1
- package/dist/contract.d.ts +0 -721
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -441
- package/dist/contract.js.map +0 -1
- package/dist/contract.types-check.d.ts.map +0 -1
- package/dist/contract.types-check.js.map +0 -1
- package/dist/daemon/configuration.d.ts.map +0 -1
- package/dist/daemon/configuration.js +0 -75
- package/dist/daemon/configuration.js.map +0 -1
- package/dist/daemon/management.d.ts.map +0 -1
- package/dist/daemon/management.js.map +0 -1
- package/dist/daemon/registration.d.ts.map +0 -1
- package/dist/daemon/registration.js.map +0 -1
- package/dist/daemon/runtime/activation.d.ts.map +0 -1
- package/dist/daemon/runtime/activation.js.map +0 -1
- package/dist/daemon/runtime/controller.d.ts.map +0 -1
- package/dist/daemon/runtime/controller.js +0 -138
- package/dist/daemon/runtime/controller.js.map +0 -1
- package/dist/daemon/runtime/history-export.d.ts +0 -33
- package/dist/daemon/runtime/history-export.d.ts.map +0 -1
- package/dist/daemon/runtime/history-export.js.map +0 -1
- package/dist/daemon/runtime/index.d.ts.map +0 -1
- package/dist/daemon/runtime/index.js.map +0 -1
- package/dist/daemon/runtime/pending-delivery.d.ts +0 -49
- package/dist/daemon/runtime/pending-delivery.d.ts.map +0 -1
- package/dist/daemon/runtime/pending-delivery.js.map +0 -1
- package/dist/daemon/runtime/protocol.d.ts.map +0 -1
- package/dist/daemon/runtime/protocol.js.map +0 -1
- package/dist/endpoint/addressing/index.d.ts.map +0 -1
- package/dist/endpoint/addressing/index.js.map +0 -1
- package/dist/endpoint/collective/operation.d.ts.map +0 -1
- package/dist/endpoint/collective/operation.js.map +0 -1
- package/dist/endpoint/collective/received-request.d.ts.map +0 -1
- package/dist/endpoint/collective/received-request.js.map +0 -1
- package/dist/endpoint/collective/request-sends.d.ts.map +0 -1
- package/dist/endpoint/collective/request-sends.js.map +0 -1
- package/dist/endpoint/collective/shared-answers.d.ts.map +0 -1
- package/dist/endpoint/collective/shared-answers.js.map +0 -1
- package/dist/endpoint/collective/validation.d.ts +0 -49
- package/dist/endpoint/collective/validation.d.ts.map +0 -1
- package/dist/endpoint/collective/validation.js +0 -97
- package/dist/endpoint/collective/validation.js.map +0 -1
- package/dist/endpoint/collective/wire.d.ts.map +0 -1
- package/dist/endpoint/collective/wire.js.map +0 -1
- package/dist/endpoint/engine-dissemination.d.ts.map +0 -1
- package/dist/endpoint/engine-dissemination.js.map +0 -1
- package/dist/endpoint/engine-durability.d.ts.map +0 -1
- package/dist/endpoint/engine-durability.js.map +0 -1
- package/dist/endpoint/engine-send.d.ts.map +0 -1
- package/dist/endpoint/engine-send.js.map +0 -1
- package/dist/endpoint/engine-types.d.ts.map +0 -1
- package/dist/endpoint/engine-types.js.map +0 -1
- package/dist/endpoint/engine.d.ts.map +0 -1
- package/dist/endpoint/engine.js.map +0 -1
- package/dist/endpoint/protocol/evidence.d.ts.map +0 -1
- package/dist/endpoint/protocol/evidence.js.map +0 -1
- package/dist/endpoint/protocol/index.d.ts.map +0 -1
- package/dist/endpoint/protocol/index.js.map +0 -1
- package/dist/endpoint/recovery/barrier.d.ts.map +0 -1
- package/dist/endpoint/recovery/barrier.js.map +0 -1
- package/dist/endpoint/recovery/index.d.ts.map +0 -1
- package/dist/endpoint/recovery/index.js.map +0 -1
- package/dist/endpoint/recovery/reanchor/empty.d.ts.map +0 -1
- package/dist/endpoint/recovery/reanchor/empty.js.map +0 -1
- package/dist/endpoint/recovery/reanchor/index.d.ts.map +0 -1
- package/dist/endpoint/recovery/reanchor/index.js.map +0 -1
- package/dist/endpoint/recovery/state.d.ts.map +0 -1
- package/dist/endpoint/recovery/state.js.map +0 -1
- package/dist/endpoint/recovery/store-evidence.d.ts.map +0 -1
- package/dist/endpoint/recovery/store-evidence.js.map +0 -1
- package/dist/endpoint/recovery/store.d.ts.map +0 -1
- package/dist/endpoint/recovery/store.js.map +0 -1
- package/dist/endpoint/representation-canonical.d.ts.map +0 -1
- package/dist/endpoint/representation-canonical.js.map +0 -1
- package/dist/endpoint/representation-codec.d.ts.map +0 -1
- package/dist/endpoint/representation-codec.js.map +0 -1
- package/dist/endpoint/representation-schemas.d.ts.map +0 -1
- package/dist/endpoint/representation-schemas.js.map +0 -1
- package/dist/endpoint/representation-verification.d.ts.map +0 -1
- package/dist/endpoint/representation-verification.js.map +0 -1
- package/dist/endpoint/representation.d.ts +0 -6
- package/dist/endpoint/representation.d.ts.map +0 -1
- package/dist/endpoint/representation.js +0 -8
- package/dist/endpoint/representation.js.map +0 -1
- package/dist/endpoint/router-worker/index.d.ts.map +0 -1
- package/dist/endpoint/router-worker/index.js.map +0 -1
- package/dist/endpoint/router-worker/outage.d.ts.map +0 -1
- package/dist/endpoint/router-worker/outage.js.map +0 -1
- package/dist/endpoint/router-worker/types.d.ts.map +0 -1
- package/dist/endpoint/router-worker/types.js.map +0 -1
- package/dist/endpoint/store/anchors.d.ts.map +0 -1
- package/dist/endpoint/store/anchors.js.map +0 -1
- package/dist/endpoint/store/database/index.d.ts.map +0 -1
- package/dist/endpoint/store/database/index.js.map +0 -1
- package/dist/endpoint/store/database/schema.d.ts.map +0 -1
- package/dist/endpoint/store/database/schema.js.map +0 -1
- package/dist/endpoint/store/database/values.d.ts.map +0 -1
- package/dist/endpoint/store/database/values.js.map +0 -1
- package/dist/endpoint/store/deliveries.d.ts.map +0 -1
- package/dist/endpoint/store/deliveries.js.map +0 -1
- package/dist/endpoint/store/dissemination.d.ts.map +0 -1
- package/dist/endpoint/store/dissemination.js.map +0 -1
- package/dist/endpoint/store/index.d.ts.map +0 -1
- package/dist/endpoint/store/index.js.map +0 -1
- package/dist/endpoint/store/management.d.ts.map +0 -1
- package/dist/endpoint/store/management.js.map +0 -1
- package/dist/endpoint/store/outbound.d.ts.map +0 -1
- package/dist/endpoint/store/outbound.js.map +0 -1
- package/dist/endpoint/store/records.d.ts.map +0 -1
- package/dist/endpoint/store/records.js.map +0 -1
- package/dist/endpoint/store/rows/index.d.ts.map +0 -1
- package/dist/endpoint/store/rows/index.js.map +0 -1
- package/dist/endpoint/store/types.d.ts.map +0 -1
- package/dist/endpoint/store/types.js.map +0 -1
- package/dist/endpoint/store.d.ts +0 -10
- package/dist/endpoint/store.d.ts.map +0 -1
- package/dist/endpoint/store.js +0 -6
- package/dist/endpoint/store.js.map +0 -1
- package/dist/harness-mcp-contract.d.ts.map +0 -1
- package/dist/harness-mcp-contract.js +0 -113
- package/dist/harness-mcp-contract.js.map +0 -1
- package/dist/harness-mcp-http.d.ts.map +0 -1
- package/dist/harness-mcp-http.js.map +0 -1
- package/dist/harness-mcp-subscription.d.ts +0 -30
- package/dist/harness-mcp-subscription.d.ts.map +0 -1
- package/dist/harness-mcp-subscription.js +0 -361
- package/dist/harness-mcp-subscription.js.map +0 -1
- package/dist/harness-mcp-wire.d.ts.map +0 -1
- package/dist/harness-mcp-wire.js.map +0 -1
- package/dist/management-runtime.d.ts.map +0 -1
- package/dist/management-runtime.js.map +0 -1
- package/dist/message-text.d.ts.map +0 -1
- package/dist/message-text.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/server.types-check.d.ts.map +0 -1
- package/dist/server.types-check.js.map +0 -1
- /package/dist/{endpoint/store → store}/anchors.d.ts +0 -0
- /package/dist/{endpoint/store → store}/anchors.js +0 -0
- /package/dist/{endpoint/store → store}/database/index.d.ts +0 -0
- /package/dist/{endpoint/store → store}/database/index.js +0 -0
- /package/dist/{endpoint/store → store}/database/schema.d.ts +0 -0
- /package/dist/{endpoint/store → store}/database/values.d.ts +0 -0
- /package/dist/{endpoint/store → store}/database/values.js +0 -0
- /package/dist/{endpoint/store → store}/records.d.ts +0 -0
- /package/dist/{endpoint/store → store}/rows/index.d.ts +0 -0
- /package/dist/{endpoint/store → store}/rows/index.js +0 -0
- /package/dist/{endpoint/store → store}/types.js +0 -0
- /package/dist/{endpoint/collective → transport/collectives}/received-request.js +0 -0
- /package/dist/{endpoint/collective → transport/collectives}/request-sends.js +0 -0
- /package/dist/{endpoint/collective → transport/collectives}/shared-answers.js +0 -0
- /package/dist/{endpoint → transport/messaging}/recovery/barrier.js +0 -0
- /package/dist/{endpoint/router-worker → transport/router}/index.d.ts +0 -0
- /package/dist/{endpoint/router-worker → transport/router}/outage.d.ts +0 -0
- /package/dist/{endpoint/router-worker → transport/router}/outage.js +0 -0
- /package/dist/{endpoint/router-worker → transport/router}/types.js +0 -0
|
@@ -1,44 +1,21 @@
|
|
|
1
1
|
/** @file Scoped MCP implementation of the public semantic HarnessEndpoint. */
|
|
2
2
|
import { Client, fromJsonSchema, ProtocolError, StreamableHTTPClientTransport, } from "@modelcontextprotocol/client";
|
|
3
|
-
import { Data, Effect,
|
|
4
|
-
import
|
|
5
|
-
import { CollectiveError,
|
|
6
|
-
import {
|
|
3
|
+
import { Data, Effect, Ref, Stream } from "effect";
|
|
4
|
+
import { decodeHarnessReadInboxResult, decodeHarnessSendErrorData, decodeHarnessSendResult, } from "../../delivery/operations.js";
|
|
5
|
+
import { CollectiveError, } from "../../transport/collectives/forms.js";
|
|
6
|
+
import { DeliveryAcknowledgeError, deliveryAcknowledgeFailureReasons, ListenError, SendError, sendFailureReasons, } from "../../transport/messaging/errors.js";
|
|
7
|
+
import { packageVersion } from "../implementation.js";
|
|
8
|
+
import { HARNESS_ACKNOWLEDGE_DELIVERY_TOOL, HARNESS_READ_INBOX_TOOL, HARNESS_SEND_META_KEY, HARNESS_SEND_TOOL, INBOX_PENDING_EVENT, } from "../mcp/names.js";
|
|
9
|
+
import { ConnectError, } from "./capability.js";
|
|
10
|
+
import { inboxWakeups } from "./events.js";
|
|
7
11
|
/* eslint-disable agent-code-guard/promise-type, @typescript-eslint/no-invalid-void-type -- The official MCP client lifecycle is Promise-native and is converted to Effect at this private edge. */
|
|
8
12
|
const MODERN_PROTOCOL_VERSION = "2026-07-28";
|
|
9
13
|
const CLIENT_IMPLEMENTATION = {
|
|
10
14
|
name: "moltzap-harness-endpoint",
|
|
11
|
-
version:
|
|
15
|
+
version: packageVersion,
|
|
12
16
|
};
|
|
13
17
|
class CloseError extends Data.TaggedError("CloseError") {
|
|
14
18
|
}
|
|
15
|
-
const MESSAGE_READY_FILTER = {
|
|
16
|
-
[HARNESS_MESSAGE_READY_FILTER]: true,
|
|
17
|
-
};
|
|
18
|
-
const unknownNotificationParams = fromJsonSchema({});
|
|
19
|
-
const sendReasons = [
|
|
20
|
-
"invalid-address",
|
|
21
|
-
"unknown-agent",
|
|
22
|
-
"membership-invalid",
|
|
23
|
-
"content-invalid",
|
|
24
|
-
"not-registered",
|
|
25
|
-
"version-mismatch",
|
|
26
|
-
"certification-unavailable",
|
|
27
|
-
"persistence-failed",
|
|
28
|
-
"network-unavailable",
|
|
29
|
-
];
|
|
30
|
-
const acknowledgeReasons = [
|
|
31
|
-
"unknown-delivery",
|
|
32
|
-
"delivery-conflict",
|
|
33
|
-
"persistence-failed",
|
|
34
|
-
"transport-failed",
|
|
35
|
-
];
|
|
36
|
-
const listenReasons = [
|
|
37
|
-
"already-listening",
|
|
38
|
-
"incompatible-daemon",
|
|
39
|
-
"decode-failed",
|
|
40
|
-
"transport-failed",
|
|
41
|
-
];
|
|
42
19
|
/**
|
|
43
20
|
* Acquire one real MCP-backed endpoint and its scoped connection.
|
|
44
21
|
* @param endpoint Loopback MCP URL for the configured endpoint daemon.
|
|
@@ -50,33 +27,33 @@ export function acquireHarnessEndpoint(endpoint) {
|
|
|
50
27
|
function closeClient(client) {
|
|
51
28
|
return closeQuietly(() => client.close());
|
|
52
29
|
}
|
|
53
|
-
function closeSubscription(subscription) {
|
|
54
|
-
return closeQuietly(() => subscription.close());
|
|
55
|
-
}
|
|
56
30
|
function closeQuietly(close) {
|
|
57
31
|
return Effect.tryPromise({ try: close, catch: () => new CloseError() }).pipe(Effect.ignore);
|
|
58
32
|
}
|
|
59
33
|
/**
|
|
60
34
|
* Rebuild the typed error of a refused send from its JSON-RPC error data: a
|
|
61
35
|
* collective failure with its id and detail, or a closed send reason.
|
|
36
|
+
* @param cause Upstream rejection at the MCP tool boundary.
|
|
37
|
+
* @returns A closed send failure without transport details.
|
|
62
38
|
*/
|
|
63
39
|
function sendFailure(cause) {
|
|
64
40
|
const data = ProtocolError.isInstance(cause) ? cause.data : cause;
|
|
65
41
|
return decodeHarnessSendErrorData(data).pipe(Effect.map((decoded) => "failure" in decoded
|
|
66
42
|
? new CollectiveError({ id: decoded.id, failure: decoded.failure })
|
|
67
43
|
: new SendError({
|
|
68
|
-
reason: isReason(decoded.reason,
|
|
44
|
+
reason: isReason(decoded.reason, sendFailureReasons)
|
|
69
45
|
? decoded.reason
|
|
70
46
|
: "network-unavailable",
|
|
47
|
+
...("detail" in decoded && decoded.detail !== undefined
|
|
48
|
+
? { detail: decoded.detail }
|
|
49
|
+
: {}),
|
|
71
50
|
})), Effect.orElseSucceed(() => new SendError({ reason: "network-unavailable" })), Effect.runSync);
|
|
72
51
|
}
|
|
73
52
|
function acknowledgeReason(cause) {
|
|
74
53
|
const reason = operationReason(cause);
|
|
75
|
-
return isReason(reason,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const reason = operationReason(cause);
|
|
79
|
-
return isReason(reason, listenReasons) ? reason : "transport-failed";
|
|
54
|
+
return isReason(reason, deliveryAcknowledgeFailureReasons)
|
|
55
|
+
? reason
|
|
56
|
+
: "transport-failed";
|
|
80
57
|
}
|
|
81
58
|
function operationReason(cause) {
|
|
82
59
|
if (hasReasonPayload(cause)) {
|
|
@@ -94,14 +71,24 @@ function isReason(value, allowed) {
|
|
|
94
71
|
return allowed.some((candidate) => candidate === value);
|
|
95
72
|
}
|
|
96
73
|
function callSend(client, ...[input, options]) {
|
|
97
|
-
const failureDelivery = options?.failureDelivery;
|
|
98
74
|
return Effect.tryPromise({
|
|
99
75
|
try: (signal) => client.callTool({
|
|
100
76
|
name: HARNESS_SEND_TOOL,
|
|
101
|
-
arguments: {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
77
|
+
arguments: { input },
|
|
78
|
+
...(options === undefined
|
|
79
|
+
? {}
|
|
80
|
+
: {
|
|
81
|
+
_meta: {
|
|
82
|
+
[HARNESS_SEND_META_KEY]: {
|
|
83
|
+
...(options.idempotencyKey === undefined
|
|
84
|
+
? {}
|
|
85
|
+
: { idempotencyKey: options.idempotencyKey }),
|
|
86
|
+
...(options.failureDelivery === undefined
|
|
87
|
+
? {}
|
|
88
|
+
: { failureDelivery: options.failureDelivery }),
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
}),
|
|
105
92
|
}, { signal }),
|
|
106
93
|
catch: sendFailure,
|
|
107
94
|
}).pipe(Effect.flatMap((result) => result.isError === true
|
|
@@ -119,13 +106,34 @@ function callAcknowledgeDelivery(client, deliveryToken) {
|
|
|
119
106
|
? Effect.fail(new DeliveryAcknowledgeError({ reason: "transport-failed" }))
|
|
120
107
|
: Effect.void));
|
|
121
108
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
109
|
+
const eventsListOutput = fromJsonSchema({
|
|
110
|
+
type: "object",
|
|
111
|
+
required: ["events"],
|
|
112
|
+
properties: {
|
|
113
|
+
events: {
|
|
114
|
+
type: "array",
|
|
115
|
+
items: {
|
|
116
|
+
type: "object",
|
|
117
|
+
required: ["name", "delivery"],
|
|
118
|
+
properties: {
|
|
119
|
+
name: { type: "string" },
|
|
120
|
+
delivery: { type: "array", items: { type: "string" } },
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
function supportsInboxEvents(client) {
|
|
127
|
+
return Effect.tryPromise({
|
|
128
|
+
try: (signal) => client.request({ method: "events/list", params: {} }, eventsListOutput, {
|
|
129
|
+
signal,
|
|
130
|
+
}),
|
|
131
|
+
catch: (cause) => new ConnectError({
|
|
132
|
+
reason: ProtocolError.isInstance(cause) && cause.code === -32601
|
|
133
|
+
? "incompatible-daemon"
|
|
134
|
+
: "transport-failed",
|
|
135
|
+
}),
|
|
136
|
+
}).pipe(Effect.map((catalog) => catalog.events.some((event) => event.name === INBOX_PENDING_EVENT && event.delivery.includes("push"))));
|
|
129
137
|
}
|
|
130
138
|
function acquireConnection(client, endpoint) {
|
|
131
139
|
return Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
|
|
@@ -138,56 +146,55 @@ function connect(client, endpoint) {
|
|
|
138
146
|
return Effect.tryPromise({
|
|
139
147
|
try: (signal) => client.connect(new StreamableHTTPClientTransport(endpoint), { signal }),
|
|
140
148
|
catch: () => new ConnectError({ reason: "transport-failed" }),
|
|
141
|
-
}).pipe(Effect.flatMap(() =>
|
|
149
|
+
}).pipe(Effect.flatMap(() => supportsInboxEvents(client).pipe(Effect.flatMap((supported) => supported
|
|
142
150
|
? Effect.succeed(client)
|
|
143
|
-
: Effect.fail(new ConnectError({ reason: "incompatible-daemon" }))), Effect.onError(() => closeClient(client)));
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
151
|
+
: Effect.fail(new ConnectError({ reason: "incompatible-daemon" }))))), Effect.onError(() => closeClient(client)));
|
|
152
|
+
}
|
|
153
|
+
const decodeInbox = (result) => result.isError === true
|
|
154
|
+
? Effect.fail(new ListenError({ reason: "transport-failed" }))
|
|
155
|
+
: decodeHarnessReadInboxResult(result.structuredContent).pipe(Effect.catchTag("ParseError", () => Effect.fail(new ListenError({ reason: "decode-failed" }))));
|
|
156
|
+
const unseenDeliveries = (client, seen, items) => {
|
|
157
|
+
const deliveries = [];
|
|
158
|
+
for (const entry of items) {
|
|
159
|
+
if (seen.has(entry.deliveryToken)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
seen.add(entry.deliveryToken);
|
|
163
|
+
const acknowledge = callAcknowledgeDelivery(client, entry.deliveryToken);
|
|
164
|
+
deliveries.push({ item: entry.item, acknowledge });
|
|
165
|
+
}
|
|
166
|
+
return deliveries;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Prune completed snapshots so acknowledged history cannot accumulate in a live listener.
|
|
170
|
+
* @param client Scoped connection to the owning daemon.
|
|
171
|
+
* @param seen Tokens already offered by this listener, retained through pending reads.
|
|
172
|
+
* @returns New deliveries from one complete bounded inbox snapshot.
|
|
173
|
+
*/
|
|
174
|
+
function pendingInbox(client, seen) {
|
|
175
|
+
const retained = new Set();
|
|
176
|
+
const page = (cursor) => Stream.unwrap(Effect.tryPromise({
|
|
177
|
+
try: (signal) => client.callTool({
|
|
178
|
+
name: HARNESS_READ_INBOX_TOOL,
|
|
179
|
+
arguments: cursor === undefined ? {} : { cursor },
|
|
180
|
+
}, { signal }),
|
|
161
181
|
catch: () => new ListenError({ reason: "transport-failed" }),
|
|
162
|
-
}).pipe(Effect.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
item: event.item,
|
|
178
|
-
acknowledge: callAcknowledgeDelivery(client, event.deliveryToken),
|
|
182
|
+
}).pipe(Effect.flatMap(decodeInbox), Effect.map((result) => {
|
|
183
|
+
for (const entry of result.items) {
|
|
184
|
+
retained.add(entry.deliveryToken);
|
|
185
|
+
}
|
|
186
|
+
const current = Stream.fromIterable(unseenDeliveries(client, seen, result.items));
|
|
187
|
+
return result.nextCursor === undefined
|
|
188
|
+
? current
|
|
189
|
+
: Stream.concat(current, Stream.suspend(() => page(result.nextCursor)));
|
|
190
|
+
})));
|
|
191
|
+
return Stream.concat(page(), Stream.execute(Effect.sync(() => {
|
|
192
|
+
for (const token of seen) {
|
|
193
|
+
if (!retained.has(token)) {
|
|
194
|
+
seen.delete(token);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
179
197
|
})));
|
|
180
|
-
}
|
|
181
|
-
function notificationPayload(params) {
|
|
182
|
-
if (typeof params !== "object" || params === null || Array.isArray(params)) {
|
|
183
|
-
return params;
|
|
184
|
-
}
|
|
185
|
-
const payload = { ...params };
|
|
186
|
-
Reflect.deleteProperty(payload, "_meta");
|
|
187
|
-
return payload;
|
|
188
|
-
}
|
|
189
|
-
function registerMessageHandler(client, queue) {
|
|
190
|
-
client.setNotificationHandler(HARNESS_MESSAGE_READY_NOTIFICATION, { params: unknownNotificationParams }, (params) => Effect.runPromise(enqueueDelivery(client, queue, params)));
|
|
191
198
|
}
|
|
192
199
|
function acquireListenerSlot(active) {
|
|
193
200
|
return Effect.uninterruptible(Effect.gen(function* () {
|
|
@@ -198,25 +205,16 @@ function acquireListenerSlot(active) {
|
|
|
198
205
|
return acquired;
|
|
199
206
|
}).pipe(Effect.asVoid));
|
|
200
207
|
}
|
|
201
|
-
function messages(client, listenerActive) {
|
|
208
|
+
function messages(client, listenerActive, endpoint) {
|
|
202
209
|
return Stream.unwrapScoped(Effect.gen(function* () {
|
|
203
210
|
yield* acquireListenerSlot(listenerActive);
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
registerMessageHandler(client, queue);
|
|
207
|
-
yield* Effect.addFinalizer(() => Effect.sync(() => {
|
|
208
|
-
client.removeNotificationHandler(HARNESS_MESSAGE_READY_NOTIFICATION);
|
|
209
|
-
}));
|
|
210
|
-
const subscription = yield* acquireSubscription(client);
|
|
211
|
-
yield* Effect.forkScoped(observeSubscription(subscription, queue));
|
|
212
|
-
return Stream.fromQueue(queue).pipe(Stream.flattenTake);
|
|
211
|
+
const seen = new Set();
|
|
212
|
+
return inboxWakeups(endpoint).pipe(Stream.flatMap(() => pendingInbox(client, seen)));
|
|
213
213
|
}));
|
|
214
214
|
}
|
|
215
215
|
function makeMcpClient() {
|
|
216
216
|
return new Client(CLIENT_IMPLEMENTATION, {
|
|
217
|
-
capabilities: {
|
|
218
|
-
experimental: { [HARNESS_EVENTS_EXTENSION]: {} },
|
|
219
|
-
},
|
|
217
|
+
capabilities: {},
|
|
220
218
|
versionNegotiation: { mode: { pin: MODERN_PROTOCOL_VERSION } },
|
|
221
219
|
});
|
|
222
220
|
}
|
|
@@ -227,9 +225,11 @@ function acquireEndpoint(endpoint) {
|
|
|
227
225
|
const listenerActive = yield* Ref.make(false);
|
|
228
226
|
return {
|
|
229
227
|
send: (input, options) => callSend(client, input, options),
|
|
230
|
-
messages: messages(client, listenerActive),
|
|
228
|
+
messages: messages(client, listenerActive, endpoint),
|
|
231
229
|
};
|
|
232
230
|
});
|
|
233
231
|
}
|
|
234
232
|
/* eslint-enable agent-code-guard/promise-type, @typescript-eslint/no-invalid-void-type -- Restore strict defaults after the Promise-native MCP edge. */
|
|
235
|
-
|
|
233
|
+
/** The capability this module acquires, and its connect and delivery types. */
|
|
234
|
+
export { ConnectError, } from "./capability.js";
|
|
235
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/harness-endpoint/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** @file The package version both loopback MCP peers report as their implementation version. */
|
|
2
|
+
/** The `@moltzap/client` package version, reported in MCP implementation info. */
|
|
3
|
+
export declare const packageVersion: string;
|
|
4
|
+
//# sourceMappingURL=implementation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../src/endpoint/implementation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAIhG,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,MAA4B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** @file The package version both loopback MCP peers report as their implementation version. */
|
|
2
|
+
import packageJson from "../../package.json" with { type: "json" };
|
|
3
|
+
/** The `@moltzap/client` package version, reported in MCP implementation info. */
|
|
4
|
+
export const packageVersion = packageJson.version;
|
|
5
|
+
//# sourceMappingURL=implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implementation.js","sourceRoot":"","sources":["../../src/endpoint/implementation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAW,WAAW,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @file Optional credential separation for tunneled runtime and owner requests. */
|
|
2
|
+
import { Redacted } from "effect";
|
|
3
|
+
/** File-loaded credentials never enter a model-visible MCP representation. */
|
|
4
|
+
export interface HarnessMcpCredentials {
|
|
5
|
+
readonly runtime: Redacted.Redacted;
|
|
6
|
+
readonly owner: Redacted.Redacted;
|
|
7
|
+
}
|
|
8
|
+
/** Trusted-local compatibility or an explicitly authenticated authority. */
|
|
9
|
+
export type HarnessMcpRole = "local" | "runtime" | "owner";
|
|
10
|
+
/**
|
|
11
|
+
* Compare fixed-size digests without disclosing credential bytes or lengths.
|
|
12
|
+
* @param supplied Presented bearer value.
|
|
13
|
+
* @param expected File-loaded private credential.
|
|
14
|
+
* @returns Whether both values denote the same authority.
|
|
15
|
+
*/
|
|
16
|
+
export declare const credentialMatches: (supplied: string, expected: Redacted.Redacted) => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Authenticate before SDK or extension dispatch, including discovery and errors.
|
|
19
|
+
* @param request Incoming request on the guarded loopback listener.
|
|
20
|
+
* @param credentials Explicit tunneled-mode authority, absent in trusted-local mode.
|
|
21
|
+
* @returns The authorized role, or no authority for an invalid request.
|
|
22
|
+
*/
|
|
23
|
+
export declare const authenticateHarnessRequest: (request: Request, credentials?: HarnessMcpCredentials) => HarnessMcpRole | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Keep raw protocol history and administrative authority outside the runtime.
|
|
26
|
+
* @param role Authenticated authority, supplied by the server wrapper.
|
|
27
|
+
* @param name Tool selected in the model's request.
|
|
28
|
+
* @returns Whether this role can invoke the selected tool.
|
|
29
|
+
*/
|
|
30
|
+
export declare const mayInvokeHarnessTool: (role: HarnessMcpRole, name: string) => boolean;
|
|
31
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/endpoint/mcp/auth.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACnC;AAED,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,aAClB,MAAM,YACN,QAAQ,CAAC,QAAQ,KAC1B,OACkE,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,YAC5B,OAAO,gBACF,qBAAqB,KAClC,cAAc,GAAG,SAenB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,SACzB,cAAc,QACd,MAAM,KACX,OAE6D,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** @file Optional credential separation for tunneled runtime and owner requests. */
|
|
2
|
+
import { Redacted } from "effect";
|
|
3
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
4
|
+
const digest = (value) => createHash("sha256").update(value).digest();
|
|
5
|
+
/**
|
|
6
|
+
* Compare fixed-size digests without disclosing credential bytes or lengths.
|
|
7
|
+
* @param supplied Presented bearer value.
|
|
8
|
+
* @param expected File-loaded private credential.
|
|
9
|
+
* @returns Whether both values denote the same authority.
|
|
10
|
+
*/
|
|
11
|
+
export const credentialMatches = (supplied, expected) => timingSafeEqual(digest(supplied), digest(Redacted.value(expected)));
|
|
12
|
+
/**
|
|
13
|
+
* Authenticate before SDK or extension dispatch, including discovery and errors.
|
|
14
|
+
* @param request Incoming request on the guarded loopback listener.
|
|
15
|
+
* @param credentials Explicit tunneled-mode authority, absent in trusted-local mode.
|
|
16
|
+
* @returns The authorized role, or no authority for an invalid request.
|
|
17
|
+
*/
|
|
18
|
+
export const authenticateHarnessRequest = (request, credentials) => {
|
|
19
|
+
if (credentials === undefined) {
|
|
20
|
+
return "local";
|
|
21
|
+
}
|
|
22
|
+
const authorization = request.headers.get("authorization");
|
|
23
|
+
if (authorization === null || !authorization.startsWith("Bearer ")) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const supplied = authorization.slice("Bearer ".length);
|
|
27
|
+
if (credentialMatches(supplied, credentials.owner)) {
|
|
28
|
+
return "owner";
|
|
29
|
+
}
|
|
30
|
+
return credentialMatches(supplied, credentials.runtime)
|
|
31
|
+
? "runtime"
|
|
32
|
+
: undefined;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Keep raw protocol history and administrative authority outside the runtime.
|
|
36
|
+
* @param role Authenticated authority, supplied by the server wrapper.
|
|
37
|
+
* @param name Tool selected in the model's request.
|
|
38
|
+
* @returns Whether this role can invoke the selected tool.
|
|
39
|
+
*/
|
|
40
|
+
export const mayInvokeHarnessTool = (role, name) => role !== "runtime" ||
|
|
41
|
+
["send_message", "read_event", "search_agents"].includes(name);
|
|
42
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/endpoint/mcp/auth.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAW1D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAc,EAAE,CAC3C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAgB,EAChB,QAA2B,EAClB,EAAE,CACX,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAgB,EAChB,WAAmC,EACP,EAAE;IAC9B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAoB,EACpB,IAAY,EACH,EAAE,CACX,IAAI,KAAK,SAAS;IAClB,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/** @file Shared schema and ports for the experimental MCP Events edge. */
|
|
2
|
+
import { type ProtocolError } from "@modelcontextprotocol/server";
|
|
3
|
+
import { type Effect, JSONSchema, Schema } from "effect";
|
|
4
|
+
/** Maximum complete UTF-8 callback body accepted by the event transport. */
|
|
5
|
+
export declare const maximumEventBytes: number;
|
|
6
|
+
/** Callback failures expose no upstream response or destination details. */
|
|
7
|
+
export declare const callbackReasons: readonly ["connection_refused", "timeout", "tls_error", "http_4xx", "http_5xx", "challenge_failed"];
|
|
8
|
+
/** Owner-visible diagnostics omit callback addresses and signing authority. */
|
|
9
|
+
declare const webhookStatusSchema: Schema.Struct<{
|
|
10
|
+
mode: Schema.Literal<["none", "push", "webhook"]>;
|
|
11
|
+
id: Schema.optional<typeof Schema.String>;
|
|
12
|
+
refreshBefore: Schema.optional<typeof Schema.String>;
|
|
13
|
+
pendingCount: Schema.optional<Schema.refine<number, typeof Schema.NonNegative>>;
|
|
14
|
+
stalled: Schema.optional<Schema.NullOr<Schema.Literal<["callback", "terminal"]>>>;
|
|
15
|
+
lastError: Schema.optional<Schema.NullOr<Schema.Literal<["connection_refused", "timeout", "tls_error", "http_4xx", "http_5xx", "challenge_failed"]>>>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Secret-free diagnostics shared with the owner-only MCP tool. */
|
|
18
|
+
export type WebhookStatus = typeof webhookStatusSchema.Type;
|
|
19
|
+
/** JSON Schema for the owner-only, secret-free event status tool. */
|
|
20
|
+
export declare const webhookStatusJsonSchema: JSONSchema.JsonSchema7Root;
|
|
21
|
+
/** An absent cursor has the draft's explicit null meaning. */
|
|
22
|
+
declare const subscriptionSchema: Schema.Struct<{
|
|
23
|
+
name: typeof Schema.String;
|
|
24
|
+
arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
|
|
25
|
+
cursor: Schema.optionalWith<Schema.NullOr<typeof Schema.String>, {
|
|
26
|
+
exact: true;
|
|
27
|
+
}>;
|
|
28
|
+
maxAgeMs: Schema.optionalWith<Schema.refine<number, typeof Schema.NonNegative>, {
|
|
29
|
+
exact: true;
|
|
30
|
+
}>;
|
|
31
|
+
}>;
|
|
32
|
+
/** Delivery policy checks follow SDK shape validation. */
|
|
33
|
+
declare const subscribeSchema: Schema.Struct<{
|
|
34
|
+
name: typeof Schema.String;
|
|
35
|
+
arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
|
|
36
|
+
cursor: Schema.optionalWith<Schema.NullOr<typeof Schema.String>, {
|
|
37
|
+
exact: true;
|
|
38
|
+
}>;
|
|
39
|
+
maxAgeMs: Schema.optionalWith<Schema.refine<number, typeof Schema.NonNegative>, {
|
|
40
|
+
exact: true;
|
|
41
|
+
}>;
|
|
42
|
+
delivery: Schema.Struct<{
|
|
43
|
+
mode: typeof Schema.String;
|
|
44
|
+
url: typeof Schema.String;
|
|
45
|
+
secret: typeof Schema.String;
|
|
46
|
+
}>;
|
|
47
|
+
ttlMs: Schema.optionalWith<Schema.NullOr<Schema.refine<number, typeof Schema.NonNegative>>, {
|
|
48
|
+
exact: true;
|
|
49
|
+
}>;
|
|
50
|
+
}>;
|
|
51
|
+
/** Cleanup identifies the registration without disclosing its signing secret. */
|
|
52
|
+
declare const unsubscribeSchema: Schema.Struct<{
|
|
53
|
+
name: typeof Schema.String;
|
|
54
|
+
arguments: Schema.Record$<typeof Schema.String, typeof Schema.Never>;
|
|
55
|
+
delivery: Schema.Struct<{
|
|
56
|
+
url: typeof Schema.String;
|
|
57
|
+
}>;
|
|
58
|
+
}>;
|
|
59
|
+
/** Validated webhook subscription parameters before authorization and URL checks. */
|
|
60
|
+
export type EventSubscribeInput = typeof subscribeSchema.Type;
|
|
61
|
+
/** Exact subscription key supplied for eager webhook cleanup. */
|
|
62
|
+
export type EventUnsubscribeInput = typeof unsubscribeSchema.Type;
|
|
63
|
+
/** Server grant for one webhook registration. */
|
|
64
|
+
interface EventSubscriptionGrant {
|
|
65
|
+
readonly id: string;
|
|
66
|
+
readonly refreshBefore: string;
|
|
67
|
+
readonly cursor: null;
|
|
68
|
+
readonly truncated: boolean;
|
|
69
|
+
}
|
|
70
|
+
/** Durable webhook edge, available only for an authenticated runtime principal. */
|
|
71
|
+
export interface HarnessWebhookEvents {
|
|
72
|
+
readonly hasActiveSubscription: () => boolean;
|
|
73
|
+
readonly subscribe: (input: EventSubscribeInput, principal: string, authorize?: Effect.Effect<void, ProtocolError>) => Effect.Effect<EventSubscriptionGrant, ProtocolError>;
|
|
74
|
+
readonly unsubscribe: (input: EventUnsubscribeInput, principal: string) => Effect.Effect<void, ProtocolError>;
|
|
75
|
+
readonly observe: () => Effect.Effect<void, ProtocolError>;
|
|
76
|
+
readonly status: Effect.Effect<WebhookStatus, ProtocolError>;
|
|
77
|
+
readonly revoke: Effect.Effect<void, ProtocolError>;
|
|
78
|
+
readonly resume: Effect.Effect<void, ProtocolError>;
|
|
79
|
+
}
|
|
80
|
+
/** Native streaming uses the same event and replay grammar as callbacks. */
|
|
81
|
+
export type EventStreamInput = typeof subscriptionSchema.Type;
|
|
82
|
+
/** SDK boundary validation keeps schema constructors private. */
|
|
83
|
+
export declare const eventStreamInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
|
|
84
|
+
readonly name: string;
|
|
85
|
+
readonly arguments: {
|
|
86
|
+
readonly [x: string]: never;
|
|
87
|
+
};
|
|
88
|
+
readonly cursor?: string | null | undefined;
|
|
89
|
+
readonly maxAgeMs?: number | undefined;
|
|
90
|
+
}, {
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly arguments: {
|
|
93
|
+
readonly [x: string]: never;
|
|
94
|
+
};
|
|
95
|
+
readonly cursor?: string | null | undefined;
|
|
96
|
+
readonly maxAgeMs?: number | undefined;
|
|
97
|
+
}>;
|
|
98
|
+
/** The event catalog has its own pagination grammar. */
|
|
99
|
+
export declare const eventListInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
|
|
100
|
+
readonly cursor?: string | undefined;
|
|
101
|
+
}, {
|
|
102
|
+
readonly cursor?: string | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
/** Callback registration includes the signing authority and lease request. */
|
|
105
|
+
export declare const eventSubscribeInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
|
|
106
|
+
readonly name: string;
|
|
107
|
+
readonly arguments: {
|
|
108
|
+
readonly [x: string]: never;
|
|
109
|
+
};
|
|
110
|
+
readonly cursor?: string | null | undefined;
|
|
111
|
+
readonly maxAgeMs?: number | undefined;
|
|
112
|
+
readonly delivery: {
|
|
113
|
+
readonly mode: string;
|
|
114
|
+
readonly url: string;
|
|
115
|
+
readonly secret: string;
|
|
116
|
+
};
|
|
117
|
+
readonly ttlMs?: number | null | undefined;
|
|
118
|
+
}, {
|
|
119
|
+
readonly name: string;
|
|
120
|
+
readonly arguments: {
|
|
121
|
+
readonly [x: string]: never;
|
|
122
|
+
};
|
|
123
|
+
readonly cursor?: string | null | undefined;
|
|
124
|
+
readonly maxAgeMs?: number | undefined;
|
|
125
|
+
readonly delivery: {
|
|
126
|
+
readonly mode: string;
|
|
127
|
+
readonly url: string;
|
|
128
|
+
readonly secret: string;
|
|
129
|
+
};
|
|
130
|
+
readonly ttlMs?: number | null | undefined;
|
|
131
|
+
}>;
|
|
132
|
+
/** Cleanup uses only the subscription's public key fields. */
|
|
133
|
+
export declare const eventUnsubscribeInput: import("@modelcontextprotocol/server").StandardSchemaWithJSON<{
|
|
134
|
+
readonly name: string;
|
|
135
|
+
readonly arguments: {
|
|
136
|
+
readonly [x: string]: never;
|
|
137
|
+
};
|
|
138
|
+
readonly delivery: {
|
|
139
|
+
readonly url: string;
|
|
140
|
+
};
|
|
141
|
+
}, {
|
|
142
|
+
readonly name: string;
|
|
143
|
+
readonly arguments: {
|
|
144
|
+
readonly [x: string]: never;
|
|
145
|
+
};
|
|
146
|
+
readonly delivery: {
|
|
147
|
+
readonly url: string;
|
|
148
|
+
};
|
|
149
|
+
}>;
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=event-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-schemas.d.ts","sourceRoot":"","sources":["../../../src/endpoint/mcp/event-schemas.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,eAAe,YAC1B,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,kBAAkB,CACV,CAAC;AACX,+EAA+E;AAC/E,QAAA,MAAM,mBAAmB;;;;;;;EASvB,CAAC;AAEH,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,4BAElC,CAAC;AAMH,8DAA8D;AAC9D,QAAA,MAAM,kBAAkB;;;;;;;;;EAKtB,CAAC;AAKH,0DAA0D;AAC1D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;EAUnB,CAAC;AACH,iFAAiF;AACjF,QAAA,MAAM,iBAAiB;;;;;;EAIrB,CAAC;AAEH,qFAAqF;AACrF,MAAM,MAAM,mBAAmB,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9D,iEAAiE;AACjE,MAAM,MAAM,qBAAqB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAClE,iDAAiD;AACjD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,CACpB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CACrD;AAQD,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAC9D,iEAAiE;AACjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAA+B,CAAC;AAC7D,wDAAwD;AACxD,eAAO,MAAM,cAAc;;;;EAAuB,CAAC;AACnD,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAC7D,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAA8B,CAAC"}
|