@moltzap/client 2026.1002.0 → 2026.1004.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/moltzapd +2 -2
- package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +94 -133
- 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 +141 -0
- package/dist/delivery/inbox.d.ts.map +1 -0
- package/dist/delivery/inbox.js +129 -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 +789 -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 +296 -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/{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} +3 -4
- package/dist/endpoint/mcp/owner-tools.js.map +1 -0
- package/dist/endpoint/mcp/schemas.d.ts +60 -0
- package/dist/endpoint/mcp/schemas.d.ts.map +1 -0
- package/dist/endpoint/mcp/schemas.js +116 -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} +229 -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 +19 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +8 -4
- package/dist/index.types-check.d.ts.map +1 -0
- package/dist/{contract.types-check.js → index.types-check.js} +4 -3
- package/dist/index.types-check.js.map +1 -0
- package/dist/{daemon/runtime → service}/activation.d.ts +9 -12
- package/dist/service/activation.d.ts.map +1 -0
- package/dist/{daemon/runtime → service}/activation.js +3 -3
- package/dist/service/activation.js.map +1 -0
- package/dist/{daemon → service}/configuration.d.ts +8 -7
- package/dist/service/configuration.d.ts.map +1 -0
- package/dist/{daemon → service}/configuration.js +30 -28
- package/dist/service/configuration.js.map +1 -0
- package/dist/{daemon/runtime → service}/controller.d.ts +8 -6
- 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} +3 -3
- package/dist/service/lifecycle.d.ts.map +1 -0
- package/dist/{daemon/runtime/index.js → service/lifecycle.js} +28 -25
- package/dist/service/lifecycle.js.map +1 -0
- package/dist/{daemon → service}/management.d.ts +2 -2
- package/dist/service/management.d.ts.map +1 -0
- package/dist/{daemon → service}/management.js +2 -13
- package/dist/service/management.js.map +1 -0
- package/dist/{daemon → service}/registration.d.ts +1 -1
- package/dist/service/registration.d.ts.map +1 -0
- package/dist/{daemon → service}/registration.js +1 -2
- package/dist/service/registration.js.map +1 -0
- package/dist/{daemon/runtime/protocol.d.ts → service/supervision.d.ts} +16 -24
- package/dist/service/supervision.d.ts.map +1 -0
- package/dist/{daemon/runtime/protocol.js → service/supervision.js} +33 -36
- 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/{endpoint/store → store}/deliveries.d.ts +8 -0
- package/dist/store/deliveries.d.ts.map +1 -0
- package/dist/{endpoint/store → store}/deliveries.js +16 -0
- package/dist/store/deliveries.js.map +1 -0
- package/dist/store/dissemination.d.ts.map +1 -0
- package/dist/store/dissemination.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/store/outbound.d.ts.map +1 -0
- package/dist/store/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} +1 -1
- package/dist/store/reads.js.map +1 -0
- package/dist/store/records.d.ts.map +1 -0
- 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} +33 -4
- 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-check.d.ts +22 -0
- package/dist/transport/collectives/answer-check.d.ts.map +1 -0
- package/dist/transport/collectives/answer-check.js +166 -0
- package/dist/transport/collectives/answer-check.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/form-grammar.d.ts +175 -0
- package/dist/transport/collectives/form-grammar.d.ts.map +1 -0
- package/dist/transport/collectives/form-grammar.js +226 -0
- package/dist/transport/collectives/form-grammar.js.map +1 -0
- package/dist/transport/collectives/forms.d.ts +224 -0
- package/dist/transport/collectives/forms.d.ts.map +1 -0
- package/dist/transport/collectives/forms.js +183 -0
- package/dist/transport/collectives/forms.js.map +1 -0
- package/dist/transport/collectives/inbound.d.ts +130 -0
- package/dist/transport/collectives/inbound.d.ts.map +1 -0
- package/dist/transport/collectives/inbound.js +80 -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} +4 -3
- package/dist/transport/collectives/message-text.d.ts.map +1 -0
- package/dist/{message-text.js → transport/collectives/message-text.js} +4 -6
- package/dist/transport/collectives/message-text.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +17 -11
- package/dist/transport/collectives/operation.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.js +20 -48
- package/dist/transport/collectives/operation.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/{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 +3 -2
- package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
- package/dist/transport/collectives/shared-answers.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/validation.d.ts +8 -10
- package/dist/transport/collectives/validation.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/validation.js +10 -19
- package/dist/transport/collectives/validation.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/wire.d.ts +14 -9
- package/dist/transport/collectives/wire.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/wire.js +11 -99
- package/dist/transport/collectives/wire.js.map +1 -0
- package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +38 -5
- package/dist/transport/messaging/address.d.ts.map +1 -0
- package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +100 -21
- 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} +7 -5
- 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} +5 -5
- package/dist/transport/messaging/dissemination.js.map +1 -0
- package/dist/{endpoint/engine-durability.d.ts → transport/messaging/durability.d.ts} +4 -4
- package/dist/{endpoint/engine-durability.d.ts.map → transport/messaging/durability.d.ts.map} +1 -1
- package/dist/{endpoint/engine-durability.js → transport/messaging/durability.js} +4 -13
- package/dist/transport/messaging/durability.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/{endpoint/protocol → transport/messaging}/evidence.d.ts.map +1 -1
- 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} +14 -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 +39 -0
- package/dist/transport/messaging/message.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 +29 -25
- 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/reanchor/empty.d.ts → transport/messaging/recovery/reanchor-empty.d.ts} +6 -6
- package/dist/transport/messaging/recovery/reanchor-empty.d.ts.map +1 -0
- package/dist/{endpoint/recovery/reanchor/empty.js → transport/messaging/recovery/reanchor-empty.js} +4 -4
- package/dist/transport/messaging/recovery/reanchor-empty.js.map +1 -0
- package/dist/{endpoint/recovery/reanchor/index.d.ts → transport/messaging/recovery/reanchor.d.ts} +4 -4
- package/dist/transport/messaging/recovery/reanchor.d.ts.map +1 -0
- package/dist/{endpoint/recovery/reanchor/index.js → transport/messaging/recovery/reanchor.js} +29 -14
- package/dist/transport/messaging/recovery/reanchor.js.map +1 -0
- package/dist/{endpoint → transport/messaging}/recovery/state.d.ts +5 -5
- package/dist/transport/messaging/recovery/state.d.ts.map +1 -0
- package/dist/{endpoint → transport/messaging}/recovery/state.js +2 -2
- package/dist/transport/messaging/recovery/state.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/{endpoint/engine-types.d.ts → transport/messaging/types.d.ts} +7 -5
- package/dist/transport/messaging/types.d.ts.map +1 -0
- package/dist/{endpoint/engine-types.js → transport/messaging/types.js} +1 -1
- package/dist/{endpoint/engine-types.js.map → transport/messaging/types.js.map} +1 -1
- 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 +2 -2
- 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/canonical.d.ts} +1 -1
- package/dist/transport/wire/canonical.d.ts.map +1 -0
- package/dist/{endpoint/representation-canonical.js → transport/wire/canonical.js} +1 -1
- package/dist/transport/wire/canonical.js.map +1 -0
- package/dist/{endpoint/representation-codec.d.ts → transport/wire/codec.d.ts} +5 -6
- package/dist/transport/wire/codec.d.ts.map +1 -0
- package/dist/{endpoint/representation-codec.js → transport/wire/codec.js} +5 -24
- package/dist/transport/wire/codec.js.map +1 -0
- package/dist/transport/wire/index.d.ts +7 -0
- package/dist/transport/wire/index.d.ts.map +1 -0
- package/dist/transport/wire/index.js +10 -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 +79 -0
- package/dist/transport/wire/values.d.ts.map +1 -0
- package/dist/transport/wire/values.js +115 -0
- package/dist/transport/wire/values.js.map +1 -0
- package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +4 -4
- package/dist/transport/wire/verification.d.ts.map +1 -0
- package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +5 -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.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.map +0 -1
- 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.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.d.ts.map +0 -1
- package/dist/endpoint/engine.js.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}/dissemination.d.ts +0 -0
- /package/dist/{endpoint/store → store}/dissemination.js +0 -0
- /package/dist/{endpoint/store → store}/outbound.d.ts +0 -0
- /package/dist/{endpoint/store → store}/outbound.js +0 -0
- /package/dist/{endpoint/store → store}/records.d.ts +0 -0
- /package/dist/{endpoint/store → store}/records.js +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
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* carries a `kind` discriminant so an endpoint classifies a part without trying
|
|
8
8
|
* each shape in turn.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
10
|
+
import { Effect, Option, Schema } from "effect";
|
|
11
|
+
import type { AgentAddress } from "../messaging/address.js";
|
|
12
|
+
import { Content } from "../wire/index.js";
|
|
13
|
+
import { CollectiveId } from "./forms.js";
|
|
14
14
|
type PostContent = typeof Content.Type;
|
|
15
15
|
/** The `data` part key under which the collective layer carries its value. */
|
|
16
16
|
export declare const COLLECTIVE_DATA_KEY = "xyz.moltzap/collective";
|
|
@@ -22,7 +22,7 @@ export declare const COLLECTIVE_DATA_KEY = "xyz.moltzap/collective";
|
|
|
22
22
|
export declare const FormModeSchema: Schema.filter<Schema.Struct<{
|
|
23
23
|
$schema: Schema.optional<typeof Schema.String>;
|
|
24
24
|
type: Schema.Literal<["object"]>;
|
|
25
|
-
properties: Schema.Record$<typeof Schema.String, Schema.transformOrFail<typeof Schema.Unknown, Schema.declare<
|
|
25
|
+
properties: Schema.Record$<typeof Schema.String, Schema.transformOrFail<typeof Schema.Unknown, Schema.declare<import("./form-grammar.js").FormField, import("./form-grammar.js").FormField, readonly [], never>, never>>;
|
|
26
26
|
required: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
27
27
|
}>>;
|
|
28
28
|
/** A validated form-mode schema for one collective question. */
|
|
@@ -37,6 +37,11 @@ export type FormModeSchema = typeof FormModeSchema.Type;
|
|
|
37
37
|
* @returns The id the pair names.
|
|
38
38
|
*/
|
|
39
39
|
export declare const collectiveIdOf: (requester: AgentAddress, nonce: string) => CollectiveId;
|
|
40
|
+
/** A fresh nonce and the id it binds to the requester. */
|
|
41
|
+
export declare const mintCollectiveId: (requester: AgentAddress) => Effect.Effect<{
|
|
42
|
+
id: string & import("effect/Brand").Brand<"CollectiveId">;
|
|
43
|
+
nonce: string;
|
|
44
|
+
}, never, never>;
|
|
40
45
|
/** A member's reply to one request; only `accept` carries content. */
|
|
41
46
|
declare const CollectiveResponse: Schema.Union<[Schema.Struct<{
|
|
42
47
|
kind: Schema.Literal<["response"]>;
|
|
@@ -63,7 +68,7 @@ declare const CollectiveValue: Schema.Union<[Schema.Struct<{
|
|
|
63
68
|
requestedSchema: Schema.filter<Schema.Struct<{
|
|
64
69
|
$schema: Schema.optional<typeof Schema.String>;
|
|
65
70
|
type: Schema.Literal<["object"]>;
|
|
66
|
-
properties: Schema.Record$<typeof Schema.String, Schema.transformOrFail<typeof Schema.Unknown, Schema.declare<
|
|
71
|
+
properties: Schema.Record$<typeof Schema.String, Schema.transformOrFail<typeof Schema.Unknown, Schema.declare<import("./form-grammar.js").FormField, import("./form-grammar.js").FormField, readonly [], never>, never>>;
|
|
67
72
|
required: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
68
73
|
}>>;
|
|
69
74
|
}>, Schema.Union<[Schema.Struct<{
|
|
@@ -132,7 +137,7 @@ export declare const decodeCollectiveValue: (u: unknown, overrideOptions?: impor
|
|
|
132
137
|
readonly $schema?: string | undefined;
|
|
133
138
|
readonly type: "object";
|
|
134
139
|
readonly properties: {
|
|
135
|
-
readonly [x: string]:
|
|
140
|
+
readonly [x: string]: import("./form-grammar.js").FormField;
|
|
136
141
|
};
|
|
137
142
|
readonly required?: readonly string[] | undefined;
|
|
138
143
|
};
|
|
@@ -140,7 +145,7 @@ export declare const decodeCollectiveValue: (u: unknown, overrideOptions?: impor
|
|
|
140
145
|
readonly kind: "close";
|
|
141
146
|
readonly id: string & import("effect/Brand").Brand<"CollectiveId">;
|
|
142
147
|
readonly included: readonly (string & import("effect/Brand").Brand<"RecordHash">)[];
|
|
143
|
-
}, ParseResult.ParseError, never>;
|
|
148
|
+
}, import("effect/ParseResult").ParseError, never>;
|
|
144
149
|
/**
|
|
145
150
|
* Decode one untrusted collective response.
|
|
146
151
|
* @param value A member's response as it arrives.
|
|
@@ -157,7 +162,7 @@ export declare const decodeCollectiveResponse: (u: unknown, overrideOptions?: im
|
|
|
157
162
|
readonly kind: "response";
|
|
158
163
|
readonly id: string & import("effect/Brand").Brand<"CollectiveId">;
|
|
159
164
|
readonly action: "decline";
|
|
160
|
-
}, ParseResult.ParseError, never>;
|
|
165
|
+
}, import("effect/ParseResult").ParseError, never>;
|
|
161
166
|
/**
|
|
162
167
|
* Find and decode the collective value in one post's content.
|
|
163
168
|
* @param content Certified post content.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAA2B,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAIzD,KAAK,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;GA0B1B,CAAC;AACF,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AASxD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,cACd,YAAY,SAChB,MAAM,KACZ,YAKA,CAAC;AAEJ,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,cAAe,YAAY;;;gBAIpD,CAAC;AAuBL,sEAAsE;AACtE,QAAA,MAAM,kBAAkB;;;;;;;;;IAYvB,CAAC;AACF,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAShE,yEAAyE;AACzE,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKpB,CAAC;AACF,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;;;;AAE1D,+EAA+E;AAC/E,qBAAa,0BAA2B,SAAQ,gCAE9C;IACA,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;CAC5C,CAAC;CAAG;;;;AAEL,kGAAkG;AAClG,qBAAa,sBAAuB,SAAQ,2BAE3C;CAAG;AAoBJ;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,YACvB,WAAW,KACnB,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CACgC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAAwC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;kDACK,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,YACrB,WAAW,KACnB,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAC9B,0BAA0B,CAiB3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,UAC3B,eAAe,SACf,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAWjD,CAAC"}
|
|
@@ -7,106 +7,13 @@
|
|
|
7
7
|
* carries a `kind` discriminant so an endpoint classifies a part without trying
|
|
8
8
|
* each shape in turn.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { AnswerContent, CollectiveId
|
|
15
|
-
import { Content, exactStruct, RecordHash } from "../representation.js";
|
|
10
|
+
import { Data, Effect, Option, Schema } from "effect";
|
|
11
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
12
|
+
import { Content, exactStruct, RecordHash } from "../wire/index.js";
|
|
13
|
+
import { FormFieldSchema } from "./form-grammar.js";
|
|
14
|
+
import { AnswerContent, CollectiveId } from "./forms.js";
|
|
16
15
|
/** The `data` part key under which the collective layer carries its value. */
|
|
17
16
|
export const COLLECTIVE_DATA_KEY = "xyz.moltzap/collective";
|
|
18
|
-
const mcpPrimitiveSchemaDefinition = specTypeSchemas.PrimitiveSchemaDefinition["~standard"];
|
|
19
|
-
const McpPrimitiveSchema = Schema.declare((value) => mcpPrimitiveSchemaDefinition.validate(value).issues === undefined, { identifier: "PrimitiveSchemaDefinition" });
|
|
20
|
-
const declares = (property, ...types) => Predicate.hasProperty(property, "type") &&
|
|
21
|
-
types.some((type) => type === property.type);
|
|
22
|
-
/** Form-mode shapes, each listed before any shape it refines. */
|
|
23
|
-
const formModeShapes = [
|
|
24
|
-
{
|
|
25
|
-
expected: 'a titled single-select is {"type":"string","oneOf":[{"const":"a","title":"A"}]}',
|
|
26
|
-
check: specTypeSchemas.TitledSingleSelectEnumSchema["~standard"],
|
|
27
|
-
intends: (property) => declares(property, "string") && Predicate.hasProperty(property, "oneOf"),
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
expected: 'a single-select is {"type":"string","enum":["a","b"]}',
|
|
31
|
-
check: specTypeSchemas.UntitledSingleSelectEnumSchema["~standard"],
|
|
32
|
-
intends: (property) => declares(property, "string") && Predicate.hasProperty(property, "enum"),
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
expected: 'a string is {"type":"string"} with optional minLength, maxLength or format',
|
|
36
|
-
check: specTypeSchemas.StringSchema["~standard"],
|
|
37
|
-
intends: (property) => declares(property, "string"),
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
expected: 'a number is {"type":"number"} or {"type":"integer"} with optional minimum and maximum',
|
|
41
|
-
check: specTypeSchemas.NumberSchema["~standard"],
|
|
42
|
-
intends: (property) => declares(property, "number", "integer"),
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
expected: 'a boolean is {"type":"boolean"}',
|
|
46
|
-
check: specTypeSchemas.BooleanSchema["~standard"],
|
|
47
|
-
intends: (property) => declares(property, "boolean"),
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
expected: 'a titled multi-select is {"type":"array","items":{"anyOf":[{"const":"a","title":"A"}]}}',
|
|
51
|
-
check: specTypeSchemas.TitledMultiSelectEnumSchema["~standard"],
|
|
52
|
-
intends: (property) => declares(property, "array") &&
|
|
53
|
-
Predicate.hasProperty(property, "items") &&
|
|
54
|
-
Predicate.hasProperty(property.items, "anyOf"),
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
expected: 'a multi-select is {"type":"array","items":{"type":"string","enum":["a","b"]}}',
|
|
58
|
-
check: specTypeSchemas.UntitledMultiSelectEnumSchema["~standard"],
|
|
59
|
-
intends: (property) => declares(property, "array"),
|
|
60
|
-
},
|
|
61
|
-
];
|
|
62
|
-
/**
|
|
63
|
-
* Say why a property is outside the form-mode grammar: each keyword its
|
|
64
|
-
* intended shape rejects, by path within the property, then that shape.
|
|
65
|
-
* @param property A property the SDK's grammar rejected.
|
|
66
|
-
* @returns For example `items.type: Invalid input: expected "string"; a
|
|
67
|
-
* multi-select is {"type":"array","items":{"type":"string","enum":["a","b"]}}`.
|
|
68
|
-
*/
|
|
69
|
-
function formModeViolation(property) {
|
|
70
|
-
const shape = formModeShapes.find(({ intends }) => intends(property));
|
|
71
|
-
if (shape === undefined) {
|
|
72
|
-
return '"type" must be "string", "number", "integer", "boolean" or "array"';
|
|
73
|
-
}
|
|
74
|
-
return [
|
|
75
|
-
...(shape.check.validate(property).issues ?? []).map(({ path, message }) => issueAt(path ?? [], message)),
|
|
76
|
-
shape.expected,
|
|
77
|
-
].join("; ");
|
|
78
|
-
}
|
|
79
|
-
function issueAt(path, message) {
|
|
80
|
-
const keys = path.map((segment) => String(Predicate.isObject(segment) ? segment.key : segment));
|
|
81
|
-
return keys.length === 0 ? message : `${keys.join(".")}: ${message}`;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* One property of an MCP form-mode `requestedSchema`, as the MCP SDK's
|
|
85
|
-
* `PrimitiveSchemaDefinition` accepts it. Decoding keeps the SDK's parsed
|
|
86
|
-
* value, so keywords outside the form-mode grammar never travel or reach
|
|
87
|
-
* answer validation. The SDK grammar admits some schemas its own validator
|
|
88
|
-
* cannot compile, such as an empty `enum`; decoding compiles each property
|
|
89
|
-
* so answer validation never meets one.
|
|
90
|
-
*/
|
|
91
|
-
const PrimitiveSchemaDefinition = Schema.transformOrFail(Schema.Unknown, McpPrimitiveSchema, {
|
|
92
|
-
strict: true,
|
|
93
|
-
decode: (value) => {
|
|
94
|
-
const result = mcpPrimitiveSchemaDefinition.validate(value);
|
|
95
|
-
const invalid = (message) => new ParseResult.Type(McpPrimitiveSchema.ast, value, message);
|
|
96
|
-
if (result.issues !== undefined) {
|
|
97
|
-
return ParseResult.fail(invalid(formModeViolation(value)));
|
|
98
|
-
}
|
|
99
|
-
const definition = result.value;
|
|
100
|
-
return ParseResult.try({
|
|
101
|
-
try: () => {
|
|
102
|
-
new AjvJsonSchemaValidator().getValidator(definition);
|
|
103
|
-
return definition;
|
|
104
|
-
},
|
|
105
|
-
catch: (cause) => invalid(`not a compilable form-mode primitive schema: ${cause instanceof Error ? cause.message : String(cause)}`),
|
|
106
|
-
});
|
|
107
|
-
},
|
|
108
|
-
encode: (definition) => ParseResult.succeed(definition),
|
|
109
|
-
});
|
|
110
17
|
/**
|
|
111
18
|
* The MCP form-mode `requestedSchema`: a flat object of primitive properties.
|
|
112
19
|
* Every `required` name must be a declared property, since an answer can carry
|
|
@@ -117,7 +24,7 @@ export const FormModeSchema = exactStruct({
|
|
|
117
24
|
type: Schema.Literal("object"),
|
|
118
25
|
properties: Schema.Record({
|
|
119
26
|
key: Schema.String,
|
|
120
|
-
value:
|
|
27
|
+
value: FormFieldSchema,
|
|
121
28
|
}),
|
|
122
29
|
required: Schema.optional(Schema.Array(Schema.String)),
|
|
123
30
|
}).pipe(Schema.filter((schema) => {
|
|
@@ -145,6 +52,11 @@ const decodeCollectiveId = Schema.decodeUnknownSync(CollectiveId);
|
|
|
145
52
|
export const collectiveIdOf = (requester, nonce) => decodeCollectiveId(`col_${createHash("sha256")
|
|
146
53
|
.update(`xyz.moltzap/collective-id\0${requester}\0${nonce}`)
|
|
147
54
|
.digest("base64url")}`);
|
|
55
|
+
/** A fresh nonce and the id it binds to the requester. */
|
|
56
|
+
export const mintCollectiveId = (requester) => Effect.sync(() => {
|
|
57
|
+
const nonce = randomBytes(32).toString("base64url");
|
|
58
|
+
return { id: collectiveIdOf(requester, nonce), nonce };
|
|
59
|
+
});
|
|
148
60
|
/** A plain post: multicast carries neither a deadline nor a schema. */
|
|
149
61
|
const MulticastOperation = exactStruct({
|
|
150
62
|
kind: Schema.Literal("operation"),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/transport/collectives/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
/** @file Private address resolution from runtime names to immutable cards. */
|
|
2
2
|
import type { Registry } from "@moltzap/identity/registry";
|
|
3
3
|
import { AgentName, type VerifiedAgentCard } from "@moltzap/identity";
|
|
4
|
-
import { type Context, Effect } from "effect";
|
|
5
|
-
import {
|
|
4
|
+
import { type Context, Effect, Schema } from "effect";
|
|
5
|
+
import { SendError } from "./errors.js";
|
|
6
|
+
/**
|
|
7
|
+
* The registry name an `agent:` address names.
|
|
8
|
+
* @param value A candidate address.
|
|
9
|
+
* @returns The name, or undefined when the value is not an agent address.
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseAgentAddress(value: string): string | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* The names a `group:` address lists, in the order given.
|
|
14
|
+
* @param value A candidate address.
|
|
15
|
+
* @returns The names, or undefined when the value is not a group address.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseGroupAddress(value: string): readonly string[] | undefined;
|
|
18
|
+
/** An explicit direct destination using one canonical Registry name. */
|
|
19
|
+
export declare const AgentAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
|
|
20
|
+
/** A validated direct destination. */
|
|
21
|
+
export type AgentAddress = typeof AgentAddress.Type;
|
|
22
|
+
/** A complete fixed-member group address in unsigned ASCII name order. */
|
|
23
|
+
export declare const GroupAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
|
|
24
|
+
/** A validated canonical complete group destination. */
|
|
25
|
+
export type GroupAddress = typeof GroupAddress.Type;
|
|
26
|
+
/** Either accepted destination input, including noncanonical group order. */
|
|
27
|
+
export declare const MessageAddressInput: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
|
|
28
|
+
/** A validated explicit destination input. */
|
|
29
|
+
export type MessageAddressInput = typeof MessageAddressInput.Type;
|
|
6
30
|
/** Minimal Registry capability required by address resolution. */
|
|
7
31
|
export type AddressRegistryPort = Pick<Context.Tag.Service<typeof Registry>, "lookup">;
|
|
8
32
|
/** Resolved deterministic membership for a direct destination. */
|
|
@@ -48,13 +72,22 @@ export type CanonicalMessageAddress = {
|
|
|
48
72
|
/**
|
|
49
73
|
* Put one destination in canonical form, the rule every send shares. An
|
|
50
74
|
* `agent:` address names one other agent. A `group:` address names each agent
|
|
51
|
-
* once
|
|
52
|
-
*
|
|
75
|
+
* once and the local agent is added when absent. Naming one other agent makes
|
|
76
|
+
* it that agent's direct address, since the two-member set is the direct
|
|
77
|
+
* conversation; otherwise the complete group has 3 to `maximumMembers` members
|
|
78
|
+
* in unsigned ASCII name order.
|
|
53
79
|
* @param to The validated destination input.
|
|
54
80
|
* @param localAgentName The local agent's Registry name.
|
|
55
81
|
* @returns The canonical address with its names, local agent included for a
|
|
56
82
|
* group, or `invalid-address` or `membership-invalid`.
|
|
57
83
|
*/
|
|
58
84
|
export declare function canonicalMessageAddress(to: MessageAddressInput, localAgentName: string): Effect.Effect<CanonicalMessageAddress, SendError>;
|
|
85
|
+
/**
|
|
86
|
+
* Unsigned ASCII order, the order a canonical group address lists its names in.
|
|
87
|
+
* @param left One name.
|
|
88
|
+
* @param right The other name.
|
|
89
|
+
* @returns Negative, zero, or positive as `left` sorts before, with, or after `right`.
|
|
90
|
+
*/
|
|
91
|
+
export declare function compareAscii(left: string, right: string): number;
|
|
59
92
|
export {};
|
|
60
|
-
//# sourceMappingURL=
|
|
93
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,49 @@
|
|
|
1
1
|
/** @file Private address resolution from runtime names to immutable cards. */
|
|
2
2
|
import { AgentName } from "@moltzap/identity";
|
|
3
3
|
import { Effect, Schema } from "effect";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { compareAgentIds, maximumMembers } from "../wire/values.js";
|
|
5
|
+
import { SendError } from "./errors.js";
|
|
6
6
|
const AGENT_ADDRESS_PREFIX = "agent:";
|
|
7
7
|
const GROUP_ADDRESS_PREFIX = "group:";
|
|
8
|
-
const
|
|
8
|
+
const isAgentName = Schema.is(AgentName);
|
|
9
|
+
/* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Effect Schemas share their domain names with the nominal values they decode. */
|
|
10
|
+
/**
|
|
11
|
+
* The registry name an `agent:` address names.
|
|
12
|
+
* @param value A candidate address.
|
|
13
|
+
* @returns The name, or undefined when the value is not an agent address.
|
|
14
|
+
*/
|
|
15
|
+
export function parseAgentAddress(value) {
|
|
16
|
+
if (!value.startsWith(AGENT_ADDRESS_PREFIX)) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const name = value.slice(AGENT_ADDRESS_PREFIX.length);
|
|
20
|
+
return isAgentName(name) ? name : undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The names a `group:` address lists, in the order given.
|
|
24
|
+
* @param value A candidate address.
|
|
25
|
+
* @returns The names, or undefined when the value is not a group address.
|
|
26
|
+
*/
|
|
27
|
+
export function parseGroupAddress(value) {
|
|
28
|
+
if (!value.startsWith(GROUP_ADDRESS_PREFIX)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const names = value.slice(GROUP_ADDRESS_PREFIX.length).split(",");
|
|
32
|
+
return names.length > 0 && names.every((name) => isAgentName(name))
|
|
33
|
+
? names
|
|
34
|
+
: undefined;
|
|
35
|
+
}
|
|
36
|
+
const addressInput = Schema.String.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined ||
|
|
37
|
+
parseGroupAddress(value) !== undefined, {
|
|
38
|
+
identifier: "MessageAddressInput",
|
|
39
|
+
description: "An agent address or syntactically valid group input",
|
|
40
|
+
}), Schema.brand("MessageAddressInput"));
|
|
41
|
+
/** An explicit direct destination using one canonical Registry name. */
|
|
42
|
+
export const AgentAddress = addressInput.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined), Schema.brand("AgentAddress"), Schema.annotations({ identifier: "AgentAddress" }));
|
|
43
|
+
/** A complete fixed-member group address in unsigned ASCII name order. */
|
|
44
|
+
export const GroupAddress = addressInput.pipe(Schema.filter(isCanonicalGroupAddress), Schema.brand("GroupAddress"), Schema.annotations({ identifier: "GroupAddress" }));
|
|
45
|
+
/** Either accepted destination input, including noncanonical group order. */
|
|
46
|
+
export const MessageAddressInput = addressInput;
|
|
9
47
|
/**
|
|
10
48
|
* Resolve one explicit runtime destination to canonical immutable membership.
|
|
11
49
|
* @param input Local verified identity, Registry lookup, and validated input.
|
|
@@ -19,8 +57,10 @@ export function resolveMessageAddress(input) {
|
|
|
19
57
|
/**
|
|
20
58
|
* Put one destination in canonical form, the rule every send shares. An
|
|
21
59
|
* `agent:` address names one other agent. A `group:` address names each agent
|
|
22
|
-
* once
|
|
23
|
-
*
|
|
60
|
+
* once and the local agent is added when absent. Naming one other agent makes
|
|
61
|
+
* it that agent's direct address, since the two-member set is the direct
|
|
62
|
+
* conversation; otherwise the complete group has 3 to `maximumMembers` members
|
|
63
|
+
* in unsigned ASCII name order.
|
|
24
64
|
* @param to The validated destination input.
|
|
25
65
|
* @param localAgentName The local agent's Registry name.
|
|
26
66
|
* @returns The canonical address with its names, local agent included for a
|
|
@@ -31,11 +71,33 @@ export function canonicalMessageAddress(to, localAgentName) {
|
|
|
31
71
|
? canonicalDirect(to, localAgentName)
|
|
32
72
|
: canonicalGroup(to, localAgentName);
|
|
33
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Unsigned ASCII order, the order a canonical group address lists its names in.
|
|
76
|
+
* @param left One name.
|
|
77
|
+
* @param right The other name.
|
|
78
|
+
* @returns Negative, zero, or positive as `left` sorts before, with, or after `right`.
|
|
79
|
+
*/
|
|
80
|
+
export function compareAscii(left, right) {
|
|
81
|
+
const sharedLength = Math.min(left.length, right.length);
|
|
82
|
+
for (let index = 0; index < sharedLength; index += 1) {
|
|
83
|
+
const difference = left.charCodeAt(index) - right.charCodeAt(index);
|
|
84
|
+
if (difference !== 0) {
|
|
85
|
+
return difference;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return left.length - right.length;
|
|
89
|
+
}
|
|
34
90
|
function invalidAddress() {
|
|
35
91
|
return new SendError({ reason: "invalid-address" });
|
|
36
92
|
}
|
|
37
|
-
function invalidMembership() {
|
|
38
|
-
return new SendError({ reason: "membership-invalid" });
|
|
93
|
+
function invalidMembership(detail) {
|
|
94
|
+
return new SendError({ reason: "membership-invalid", detail });
|
|
95
|
+
}
|
|
96
|
+
function unknownAgent(agentName) {
|
|
97
|
+
return new SendError({
|
|
98
|
+
reason: "unknown-agent",
|
|
99
|
+
detail: `${AGENT_ADDRESS_PREFIX}${agentName} is not a known agent`,
|
|
100
|
+
});
|
|
39
101
|
}
|
|
40
102
|
function mapRegistryFailure(error) {
|
|
41
103
|
return new SendError({
|
|
@@ -44,15 +106,23 @@ function mapRegistryFailure(error) {
|
|
|
44
106
|
: "network-unavailable",
|
|
45
107
|
});
|
|
46
108
|
}
|
|
47
|
-
function
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
109
|
+
function isCanonicalGroupAddress(value) {
|
|
110
|
+
const names = parseGroupAddress(value);
|
|
111
|
+
if (names === undefined ||
|
|
112
|
+
names.length < 3 ||
|
|
113
|
+
names.length > maximumMembers) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
for (let index = 1; index < names.length; index += 1) {
|
|
117
|
+
const previous = names[index - 1];
|
|
118
|
+
const current = names[index];
|
|
119
|
+
if (previous === undefined ||
|
|
120
|
+
current === undefined ||
|
|
121
|
+
compareAscii(previous, current) >= 0) {
|
|
122
|
+
return false;
|
|
53
123
|
}
|
|
54
124
|
}
|
|
55
|
-
return
|
|
125
|
+
return true;
|
|
56
126
|
}
|
|
57
127
|
function orderMemberCards(cards) {
|
|
58
128
|
const ordered = cards.slice();
|
|
@@ -65,18 +135,18 @@ function decodeAgentName(value) {
|
|
|
65
135
|
function lookupCard(registry, agentName) {
|
|
66
136
|
return registry.lookup({ agentName }).pipe(Effect.mapError(mapRegistryFailure), Effect.flatMap((result) => {
|
|
67
137
|
if (result.kind === "not_found") {
|
|
68
|
-
return Effect.fail(
|
|
138
|
+
return Effect.fail(unknownAgent(agentName));
|
|
69
139
|
}
|
|
70
140
|
return result.agentCard.agentName === agentName
|
|
71
141
|
? Effect.succeed(result.agentCard)
|
|
72
|
-
: Effect.fail(
|
|
142
|
+
: Effect.fail(unknownAgent(agentName));
|
|
73
143
|
}));
|
|
74
144
|
}
|
|
75
145
|
function canonicalDirect(to, localAgentName) {
|
|
76
146
|
return Effect.gen(function* () {
|
|
77
147
|
const remoteName = yield* decodeAgentName(to.slice(AGENT_ADDRESS_PREFIX.length));
|
|
78
148
|
if (remoteName === localAgentName) {
|
|
79
|
-
return yield* invalidMembership();
|
|
149
|
+
return yield* invalidMembership("the address names only you");
|
|
80
150
|
}
|
|
81
151
|
const address = yield* Schema.decodeUnknown(AgentAddress)(to).pipe(Effect.mapError(invalidAddress));
|
|
82
152
|
return { kind: "direct", address, remoteName };
|
|
@@ -86,14 +156,23 @@ function canonicalGroup(to, localAgentName) {
|
|
|
86
156
|
return Effect.gen(function* () {
|
|
87
157
|
const explicitNames = yield* Effect.forEach(to.slice(GROUP_ADDRESS_PREFIX.length).split(","), decodeAgentName, { concurrency: 1 });
|
|
88
158
|
if (new Set(explicitNames).size !== explicitNames.length) {
|
|
89
|
-
return yield* invalidMembership();
|
|
159
|
+
return yield* invalidMembership("the address names an agent more than once");
|
|
90
160
|
}
|
|
91
161
|
const localName = yield* decodeAgentName(localAgentName);
|
|
92
162
|
const memberNames = explicitNames.includes(localName)
|
|
93
163
|
? explicitNames.slice()
|
|
94
164
|
: [...explicitNames, localName];
|
|
95
|
-
|
|
96
|
-
|
|
165
|
+
const others = memberNames.filter((name) => name !== localName);
|
|
166
|
+
const [onlyOther] = others;
|
|
167
|
+
if (onlyOther === undefined) {
|
|
168
|
+
return yield* invalidMembership("the address names only you");
|
|
169
|
+
}
|
|
170
|
+
if (others.length === 1) {
|
|
171
|
+
const address = yield* Schema.decodeUnknown(AgentAddress)(`${AGENT_ADDRESS_PREFIX}${onlyOther}`).pipe(Effect.mapError(invalidAddress));
|
|
172
|
+
return { kind: "direct", address, remoteName: onlyOther };
|
|
173
|
+
}
|
|
174
|
+
if (memberNames.length > maximumMembers) {
|
|
175
|
+
return yield* invalidMembership(`a group has at most ${String(maximumMembers)} members`);
|
|
97
176
|
}
|
|
98
177
|
memberNames.sort(compareAscii);
|
|
99
178
|
const address = yield* Schema.decodeUnknown(GroupAddress)(`${GROUP_ADDRESS_PREFIX}${memberNames.join(",")}`).pipe(Effect.mapError(invalidAddress));
|
|
@@ -135,4 +214,4 @@ function resolveGroup(input, canonical) {
|
|
|
135
214
|
};
|
|
136
215
|
});
|
|
137
216
|
}
|
|
138
|
-
//# sourceMappingURL=
|
|
217
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/transport/messaging/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @file Router-ordered proposal selection and addressed record certification. */
|
|
2
2
|
import { Effect } from "effect";
|
|
3
|
-
import type { EngineRuntime } from "
|
|
4
|
-
import { type
|
|
5
|
-
import { type
|
|
3
|
+
import type { EngineRuntime } from "./types.js";
|
|
4
|
+
import { type RouterIngressDisposition, type RouterWorkerIngress, RouterWorkerPersistenceError } from "../router/index.js";
|
|
5
|
+
import { type DecodedOuterBody } from "../wire/index.js";
|
|
6
6
|
/**
|
|
7
7
|
* Apply one semantically verified Router-ordered protocol value.
|
|
8
8
|
* @param runtime Current engine state and durable protocol dependencies.
|
|
@@ -23,4 +23,4 @@ export declare const acceptEngineRecoveryIngress: (runtime: EngineRuntime, ingre
|
|
|
23
23
|
* @returns Completion after all resumable evidence work has been queued.
|
|
24
24
|
*/
|
|
25
25
|
export declare const resumeEngineFolds: (runtime: EngineRuntime) => Effect.Effect<void, RouterWorkerPersistenceError>;
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=certification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certification.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/certification.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAY,MAAM,EAAgC,MAAM,QAAQ,CAAC;AAOxE,OAAO,KAAK,EAIV,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EASL,KAAK,gBAAgB,EAetB,MAAM,kBAAkB,CAAC;AA25B1B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YACrB,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAalE,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,YAC7B,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAkBlE,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CA0B9C,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** @file Router-ordered proposal selection and addressed record certification. */
|
|
2
2
|
import { MOLTZAP_VERSION } from "@moltzap/identity";
|
|
3
3
|
import { Deferred, Effect, SubscriptionRef } from "effect";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { RouterWorkerPersistenceError, } from "../router-worker/index.js";
|
|
4
|
+
import { RouterWorkerPersistenceError, } from "../router/index.js";
|
|
5
|
+
import { ActionCore as ActionCoreSchema, ClientRepresentationError, encodeCanonical, GenesisAnchorBody, hashAnchor, MembershipDescriptor, quorumThreshold, signEvidenceMessage, verifyActionCertifiedRecord, verifyActionProposal, verifyCertifiedRecord, verifyMembershipDescriptor, verifyOuterMessage, verifyStableEvidence, } from "../wire/index.js";
|
|
6
|
+
import { inboundDelivery, makeActionCertifiedRecord, makeCertifiedRecord, protocolEvidence, recordAnchorHash, stagedRecord, storedCertifiedRecord, } from "./durability.js";
|
|
8
7
|
import { evidenceMatchesFold, evidenceRoute, verifiedEvidenceForRoute, } from "./evidence.js";
|
|
8
|
+
import { proposeIntent, queueCertifiedPacket, queueEvidence } from "./send.js";
|
|
9
9
|
const persistenceFailure = () => new RouterWorkerPersistenceError();
|
|
10
10
|
const isSemanticStoreRejection = (error) => error.reason === "conflict" || error.reason === "invalid-input";
|
|
11
11
|
const localRepresentationFailure = () => persistenceFailure();
|
|
@@ -216,6 +216,8 @@ function completePromotion(runtime, fold, record) {
|
|
|
216
216
|
: Deferred.succeed(intent.completion, record.actionCertifiedRecord.recordHash).pipe(Effect.asVoid)));
|
|
217
217
|
}
|
|
218
218
|
const reproposalDispositionByReason = {
|
|
219
|
+
"idempotency-conflict": "fail",
|
|
220
|
+
"outcome-unknown": "fail",
|
|
219
221
|
"certification-unavailable": "ignore",
|
|
220
222
|
"content-invalid": "fail",
|
|
221
223
|
"invalid-address": "fail",
|
|
@@ -537,4 +539,4 @@ export const resumeEngineFolds = (runtime) => runtime.gate
|
|
|
537
539
|
}
|
|
538
540
|
}), { concurrency: 1, discard: true }))
|
|
539
541
|
.pipe(Effect.catchTag("EndpointStoreError", () => Effect.fail(persistenceFailure())), Effect.withSpan("resumeEngineFolds"));
|
|
540
|
-
//# sourceMappingURL=
|
|
542
|
+
//# sourceMappingURL=certification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certification.js","sourceRoot":"","sources":["../../../src/transport/messaging/certification.ts"],"names":[],"mappings":"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"}
|