@moltzap/client 2026.1001.2 → 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 +11 -6
- package/bin/moltzapd +2 -2
- package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +94 -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 +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 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -3
- package/dist/index.js.map +1 -1
- package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +21 -18
- package/dist/index.types-check.d.ts.map +1 -0
- package/dist/{contract.types-check.js → index.types-check.js} +6 -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/transport/collectives/message-text.d.ts +52 -0
- package/dist/transport/collectives/message-text.d.ts.map +1 -0
- package/dist/transport/collectives/message-text.js +118 -0
- package/dist/transport/collectives/message-text.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +30 -21
- package/dist/transport/collectives/operation.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/operation.js +135 -143
- package/dist/transport/collectives/operation.js.map +1 -0
- package/dist/transport/collectives/received-request.d.ts +41 -0
- package/dist/transport/collectives/received-request.d.ts.map +1 -0
- package/dist/transport/collectives/received-request.js +56 -0
- package/dist/transport/collectives/received-request.js.map +1 -0
- package/dist/transport/collectives/request-sends.d.ts +42 -0
- package/dist/transport/collectives/request-sends.d.ts.map +1 -0
- package/dist/transport/collectives/request-sends.js +46 -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 -21
- package/dist/transport/collectives/validation.js.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/wire.d.ts +18 -13
- package/dist/transport/collectives/wire.d.ts.map +1 -0
- package/dist/{endpoint/collective → transport/collectives}/wire.js +19 -38
- 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 -451
- 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 -140
- 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/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/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}/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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file A gather's request posts while they are sent, and how each one is
|
|
3
|
+
* settled when the requester stops waiting.
|
|
4
|
+
*/
|
|
5
|
+
import { Effect, Either, Fiber } from "effect";
|
|
6
|
+
import type { AgentAddress } from "../messaging/address.js";
|
|
7
|
+
import type { SendError } from "../messaging/errors.js";
|
|
8
|
+
import type { EngineSentPost } from "../messaging/index.js";
|
|
9
|
+
/** A member whose request post was refused, and why. */
|
|
10
|
+
export type RequestRefusal = Readonly<{
|
|
11
|
+
member: AgentAddress;
|
|
12
|
+
reason: SendError["reason"];
|
|
13
|
+
}>;
|
|
14
|
+
/** A request post in flight, resolving to the member's refusal, if any. */
|
|
15
|
+
export type RequestSend = Fiber.RuntimeFiber<Either.Either<EngineSentPost, RequestRefusal>>;
|
|
16
|
+
/**
|
|
17
|
+
* Whether a member's refusal is an address error rather than a delivery
|
|
18
|
+
* failure.
|
|
19
|
+
* @param refusal A member's lookup or post refusal.
|
|
20
|
+
* @returns True for a malformed or unknown member or invalid membership.
|
|
21
|
+
*/
|
|
22
|
+
export declare const isAddressRefusal: (refusal: RequestRefusal) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Look up every member and name each whose lookup fails, in member order.
|
|
25
|
+
* @param members The members to resolve.
|
|
26
|
+
* @param lookup The engine's address resolution for one member.
|
|
27
|
+
* @returns Each failing member with its reason; empty when all resolve.
|
|
28
|
+
*/
|
|
29
|
+
export declare const lookupRefusals: (members: readonly AgentAddress[], lookup: (member: AgentAddress) => Effect.Effect<void, SendError>) => Effect.Effect<RequestRefusal[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Where a gather's request posts stand when the send stops waiting: each
|
|
32
|
+
* certified post and each member refused. A send still pending keeps
|
|
33
|
+
* running and is in neither.
|
|
34
|
+
* @param members The members asked, in the order of their sends.
|
|
35
|
+
* @param sends Each member's request send.
|
|
36
|
+
* @returns The posts and refusals, in member order.
|
|
37
|
+
*/
|
|
38
|
+
export declare const requestsSoFar: (members: readonly AgentAddress[], sends: readonly RequestSend[]) => Effect.Effect<{
|
|
39
|
+
readonly posts: EngineSentPost[];
|
|
40
|
+
readonly refused: RequestRefusal[];
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=request-sends.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-sends.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/request-sends.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,MAAM,EAEN,MAAM,EAEN,KAAK,EAEN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAC1C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAC9C,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,cAAc,KAAG,OACrB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAChB,SAAS,YAAY,EAAE,UACxB,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAc9B,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,YACf,SAAS,YAAY,EAAE,SACzB,SAAS,WAAW,EAAE,KAC5B,MAAM,CAAC,MAAM,CAAC;IACf,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;CACpC,CAsBE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file A gather's request posts while they are sent, and how each one is
|
|
3
|
+
* settled when the requester stops waiting.
|
|
4
|
+
*/
|
|
5
|
+
import { Effect, Array as EffectArray, Either, Exit, Fiber, Option, } from "effect";
|
|
6
|
+
/** How many Registry lookups run at once; a group has at most 32 members. */
|
|
7
|
+
const MEMBER_LOOKUP_CONCURRENCY = 8;
|
|
8
|
+
/**
|
|
9
|
+
* Failures that address resolution alone determines, so the send can refuse
|
|
10
|
+
* them before any post.
|
|
11
|
+
*/
|
|
12
|
+
const ADDRESS_FAILURES = new Set([
|
|
13
|
+
"invalid-address",
|
|
14
|
+
"unknown-agent",
|
|
15
|
+
"membership-invalid",
|
|
16
|
+
]);
|
|
17
|
+
/**
|
|
18
|
+
* Whether a member's refusal is an address error rather than a delivery
|
|
19
|
+
* failure.
|
|
20
|
+
* @param refusal A member's lookup or post refusal.
|
|
21
|
+
* @returns True for a malformed or unknown member or invalid membership.
|
|
22
|
+
*/
|
|
23
|
+
export const isAddressRefusal = (refusal) => ADDRESS_FAILURES.has(refusal.reason);
|
|
24
|
+
/**
|
|
25
|
+
* Look up every member and name each whose lookup fails, in member order.
|
|
26
|
+
* @param members The members to resolve.
|
|
27
|
+
* @param lookup The engine's address resolution for one member.
|
|
28
|
+
* @returns Each failing member with its reason; empty when all resolve.
|
|
29
|
+
*/
|
|
30
|
+
export const lookupRefusals = (members, lookup) => Effect.forEach(members, (member) => lookup(member).pipe(Effect.flip, Effect.map((error) => ({ member, reason: error.reason })), Effect.option), { concurrency: MEMBER_LOOKUP_CONCURRENCY }).pipe(Effect.map((lookups) => lookups.flatMap((found) => Option.toArray(found))));
|
|
31
|
+
/**
|
|
32
|
+
* Where a gather's request posts stand when the send stops waiting: each
|
|
33
|
+
* certified post and each member refused. A send still pending keeps
|
|
34
|
+
* running and is in neither.
|
|
35
|
+
* @param members The members asked, in the order of their sends.
|
|
36
|
+
* @param sends Each member's request send.
|
|
37
|
+
* @returns The posts and refusals, in member order.
|
|
38
|
+
*/
|
|
39
|
+
export const requestsSoFar = (members, sends) => Effect.forEach(EffectArray.zip(members, sends), ([member, send]) => Fiber.poll(send).pipe(Effect.map((poll) => ({
|
|
40
|
+
member,
|
|
41
|
+
result: Option.flatMap(poll, (exit) => Exit.isSuccess(exit) ? Option.some(exit.value) : Option.none()),
|
|
42
|
+
}))), { concurrency: 1 }).pipe(Effect.map((states) => ({
|
|
43
|
+
posts: states.flatMap(({ result }) => Option.toArray(Option.flatMap(result, Either.getRight))),
|
|
44
|
+
refused: states.flatMap(({ result }) => Option.toArray(Option.flatMap(result, Either.getLeft))),
|
|
45
|
+
})));
|
|
46
|
+
//# sourceMappingURL=request-sends.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-sends.js","sourceRoot":"","sources":["../../../src/transport/collectives/request-sends.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,IAAI,WAAW,EACpB,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,GACP,MAAM,QAAQ,CAAC;AAgBhB,6EAA6E;AAC7E,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,gBAAgB,GAAqC,IAAI,GAAG,CAAC;IACjE,iBAAiB;IACjB,eAAe;IACf,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAuB,EAAW,EAAE,CACnE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAAgC,EAChC,MAAgE,EAC/B,EAAE,CACnC,MAAM,CAAC,OAAO,CACZ,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,CACR,CAAC,KAAK,EAAkB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAC9D,EACD,MAAM,CAAC,MAAM,CACd,EACH,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAC3C,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3E,CAAC;AAEJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAgC,EAChC,KAA6B,EAI5B,EAAE,CACH,MAAM,CAAC,OAAO,CACZ,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAC/B,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,MAAM;IACN,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAC/D;CACF,CAAC,CAAC,CACJ,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CACxD;IACD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CACvD;CACF,CAAC,CAAC,CACJ,CAAC"}
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
* its result from exactly the answers it holds under the listed hashes. The
|
|
9
9
|
* requester's result uses the same member ordering.
|
|
10
10
|
*/
|
|
11
|
-
import type { AgentAddress
|
|
12
|
-
import type { RecordHash } from "../
|
|
11
|
+
import type { AgentAddress } from "../messaging/address.js";
|
|
12
|
+
import type { PostId, RecordHash } from "../wire/index.js";
|
|
13
|
+
import type { CollectiveMemberOutcome, InboundItem } from "./inbound.js";
|
|
13
14
|
import type { CollectiveValue } from "./wire.js";
|
|
14
15
|
/** The members a collecting operation asks, in member order. */
|
|
15
16
|
export type Members = readonly [AgentAddress, ...AgentAddress[]];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-answers.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/shared-answers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,eAAe,EACf;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAC9B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,WAAW,EACX;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CACtC,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,eAAe,GACtB,IAAI,CAIN;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,UAAU,EAAE;;;;;;;EAkBhC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,uBAAuB,CAAC,GAC3D,oBAAoB,CAAC,UAAU,CAAC,CAOlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-answers.js","sourceRoot":"","sources":["../../../src/transport/collectives/shared-answers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8CH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAqB,EACrB,MAAoB,EACpB,MAAuB;IAEvB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,QAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,UAAU;QACjB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;KACtC,CAAC,CACH,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;QACzC,QAAQ,EACN,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM;KACxE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,QAA4D;IAE5D,MAAM,OAAO,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM;QACN,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,WAAoB,EAAE;KAChE,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Answer validation against a collective request's form-mode schema.
|
|
3
3
|
*
|
|
4
|
-
* Validation runs field by field
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* for that field.
|
|
4
|
+
* Validation runs field by field so a failure names each failing field rather
|
|
5
|
+
* than one combined message. The form-mode grammar is flat, so a field's
|
|
6
|
+
* property schema is the whole rule for that field.
|
|
8
7
|
*/
|
|
9
8
|
import { Effect } from "effect";
|
|
10
|
-
import type { AnswerContent, CollectiveFailure
|
|
9
|
+
import type { AnswerContent, CollectiveFailure } from "./forms.js";
|
|
10
|
+
import type { CollectiveMemberOutcome } from "./inbound.js";
|
|
11
11
|
import type { CollectiveResponse, FormModeSchema } from "./wire.js";
|
|
12
12
|
/**
|
|
13
|
-
* Why one answer field failed its request's schema; `detail`
|
|
14
|
-
*
|
|
13
|
+
* Why one answer field failed its request's schema; `detail` names each
|
|
14
|
+
* keyword an `invalid` field fails.
|
|
15
15
|
*/
|
|
16
16
|
export type CollectiveFieldFailure = Extract<CollectiveFailure, {
|
|
17
17
|
readonly kind: "answer-invalid";
|
|
@@ -29,9 +29,7 @@ export declare class CollectiveAnswerInvalidError extends CollectiveAnswerInvali
|
|
|
29
29
|
get message(): string;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* Check an answer against the schema its request carried.
|
|
33
|
-
* with its own validator: the SDK's shared default caches every compiled
|
|
34
|
-
* schema for the life of the process, and request schemas are unbounded.
|
|
32
|
+
* Check an answer against the schema its request carried.
|
|
35
33
|
* @param requestedSchema The request's form-mode schema.
|
|
36
34
|
* @param content The member's answer.
|
|
37
35
|
* @returns The answer unchanged, or an error naming every failing field.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGpE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CACpC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;;;;AAEpB,kEAAkE;AAClE,qBAAa,4BAA6B,SAAQ,kCAEhD;IACA,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,sBAAsB;QACtB,GAAG,sBAAsB,EAAE;KAC5B,CAAC;CACH,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAQ7B;CACF;AAgCD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,oBACR,cAAc,WACtB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAc3D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,oBACX,cAAc,YACrB,kBAAkB,KAC3B,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAsBvC,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Answer validation against a collective request's form-mode schema.
|
|
3
3
|
*
|
|
4
|
-
* Validation runs field by field
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* for that field.
|
|
4
|
+
* Validation runs field by field so a failure names each failing field rather
|
|
5
|
+
* than one combined message. The form-mode grammar is flat, so a field's
|
|
6
|
+
* property schema is the whole rule for that field.
|
|
8
7
|
*/
|
|
9
|
-
import { fromJsonSchema, } from "@modelcontextprotocol/client";
|
|
10
|
-
import { AjvJsonSchemaValidator } from "@modelcontextprotocol/client/validators/ajv";
|
|
11
8
|
import { Data, Effect } from "effect";
|
|
9
|
+
import { answerIssues } from "./answer-check.js";
|
|
12
10
|
/** An answer does not satisfy its request's `requestedSchema`. */
|
|
13
11
|
export class CollectiveAnswerInvalidError extends Data.TaggedError("CollectiveAnswerInvalidError") {
|
|
14
12
|
get message() {
|
|
@@ -24,7 +22,7 @@ export class CollectiveAnswerInvalidError extends Data.TaggedError("CollectiveAn
|
|
|
24
22
|
* answer field named `constructor` must not find `Object.prototype.constructor`.
|
|
25
23
|
*/
|
|
26
24
|
const ownValue = (record, key) => (Object.hasOwn(record, key) ? record[key] : undefined);
|
|
27
|
-
function fieldFailure(
|
|
25
|
+
function fieldFailure(requestedSchema, content, field) {
|
|
28
26
|
const definition = ownValue(requestedSchema.properties, field);
|
|
29
27
|
if (definition === undefined) {
|
|
30
28
|
return { field, reason: "unexpected" };
|
|
@@ -35,19 +33,13 @@ function fieldFailure(validator, requestedSchema, content, field) {
|
|
|
35
33
|
? { field, reason: "missing" }
|
|
36
34
|
: undefined;
|
|
37
35
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
return { field, reason: "invalid", detail: "asynchronous validator" };
|
|
41
|
-
}
|
|
42
|
-
const detail = result.issues?.map((issue) => issue.message).join(", ");
|
|
43
|
-
return detail === undefined
|
|
36
|
+
const issues = answerIssues(definition, value);
|
|
37
|
+
return issues.length === 0
|
|
44
38
|
? undefined
|
|
45
|
-
: { field, reason: "invalid", detail };
|
|
39
|
+
: { field, reason: "invalid", detail: issues.join(", ") };
|
|
46
40
|
}
|
|
47
41
|
/**
|
|
48
|
-
* Check an answer against the schema its request carried.
|
|
49
|
-
* with its own validator: the SDK's shared default caches every compiled
|
|
50
|
-
* schema for the life of the process, and request schemas are unbounded.
|
|
42
|
+
* Check an answer against the schema its request carried.
|
|
51
43
|
* @param requestedSchema The request's form-mode schema.
|
|
52
44
|
* @param content The member's answer.
|
|
53
45
|
* @returns The answer unchanged, or an error naming every failing field.
|
|
@@ -57,9 +49,8 @@ export const validateAnswer = (requestedSchema, content) => {
|
|
|
57
49
|
...Object.keys(requestedSchema.properties),
|
|
58
50
|
...Object.keys(content),
|
|
59
51
|
]);
|
|
60
|
-
const validator = new AjvJsonSchemaValidator();
|
|
61
52
|
const [first, ...rest] = [...fields].flatMap((field) => {
|
|
62
|
-
const failure = fieldFailure(
|
|
53
|
+
const failure = fieldFailure(requestedSchema, content, field);
|
|
63
54
|
return failure === undefined ? [] : [failure];
|
|
64
55
|
});
|
|
65
56
|
return first === undefined
|
|
@@ -88,8 +79,6 @@ export const outcomeOfResponse = (requestedSchema, response) => {
|
|
|
88
79
|
}));
|
|
89
80
|
case "decline":
|
|
90
81
|
return Effect.succeed({ kind: "declined" });
|
|
91
|
-
case "cancel":
|
|
92
|
-
return Effect.succeed({ kind: "cancelled" });
|
|
93
82
|
default: {
|
|
94
83
|
const exhaustive = response;
|
|
95
84
|
return exhaustive;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"]>;
|
|
@@ -46,7 +51,7 @@ declare const CollectiveResponse: Schema.Union<[Schema.Struct<{
|
|
|
46
51
|
}>, Schema.Struct<{
|
|
47
52
|
kind: Schema.Literal<["response"]>;
|
|
48
53
|
id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
|
|
49
|
-
action: Schema.Literal<["decline"
|
|
54
|
+
action: Schema.Literal<["decline"]>;
|
|
50
55
|
}>]>;
|
|
51
56
|
/** A validated collective response. */
|
|
52
57
|
export type CollectiveResponse = typeof CollectiveResponse.Type;
|
|
@@ -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<{
|
|
@@ -74,7 +79,7 @@ declare const CollectiveValue: Schema.Union<[Schema.Struct<{
|
|
|
74
79
|
}>, Schema.Struct<{
|
|
75
80
|
kind: Schema.Literal<["response"]>;
|
|
76
81
|
id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
|
|
77
|
-
action: Schema.Literal<["decline"
|
|
82
|
+
action: Schema.Literal<["decline"]>;
|
|
78
83
|
}>]>, Schema.Struct<{
|
|
79
84
|
kind: Schema.Literal<["close"]>;
|
|
80
85
|
id: Schema.brand<Schema.filter<typeof Schema.String>, "CollectiveId">;
|
|
@@ -118,7 +123,7 @@ export declare const decodeCollectiveValue: (u: unknown, overrideOptions?: impor
|
|
|
118
123
|
} | {
|
|
119
124
|
readonly kind: "response";
|
|
120
125
|
readonly id: string & import("effect/Brand").Brand<"CollectiveId">;
|
|
121
|
-
readonly action: "
|
|
126
|
+
readonly action: "decline";
|
|
122
127
|
} | {
|
|
123
128
|
readonly kind: "operation";
|
|
124
129
|
readonly op: "multicast";
|
|
@@ -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.
|
|
@@ -156,8 +161,8 @@ export declare const decodeCollectiveResponse: (u: unknown, overrideOptions?: im
|
|
|
156
161
|
} | {
|
|
157
162
|
readonly kind: "response";
|
|
158
163
|
readonly id: string & import("effect/Brand").Brand<"CollectiveId">;
|
|
159
|
-
readonly action: "
|
|
160
|
-
}, ParseResult.ParseError, never>;
|
|
164
|
+
readonly action: "decline";
|
|
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,43 +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
|
-
/**
|
|
21
|
-
* One property of an MCP form-mode `requestedSchema`, as the MCP SDK's
|
|
22
|
-
* `PrimitiveSchemaDefinition` accepts it. Decoding keeps the SDK's parsed
|
|
23
|
-
* value, so keywords outside the form-mode grammar never travel or reach
|
|
24
|
-
* answer validation. The SDK grammar admits some schemas its own validator
|
|
25
|
-
* cannot compile, such as an empty `enum`; decoding compiles each property
|
|
26
|
-
* so answer validation never meets one.
|
|
27
|
-
*/
|
|
28
|
-
const PrimitiveSchemaDefinition = Schema.transformOrFail(Schema.Unknown, McpPrimitiveSchema, {
|
|
29
|
-
strict: true,
|
|
30
|
-
decode: (value) => {
|
|
31
|
-
const result = mcpPrimitiveSchemaDefinition.validate(value);
|
|
32
|
-
const invalid = (message) => new ParseResult.Type(McpPrimitiveSchema.ast, value, message);
|
|
33
|
-
if (result.issues !== undefined) {
|
|
34
|
-
return ParseResult.fail(invalid("not an MCP form-mode primitive schema"));
|
|
35
|
-
}
|
|
36
|
-
const definition = result.value;
|
|
37
|
-
return ParseResult.try({
|
|
38
|
-
try: () => {
|
|
39
|
-
new AjvJsonSchemaValidator().getValidator(definition);
|
|
40
|
-
return definition;
|
|
41
|
-
},
|
|
42
|
-
catch: () => invalid("not a compilable form-mode primitive schema"),
|
|
43
|
-
});
|
|
44
|
-
},
|
|
45
|
-
encode: (definition) => ParseResult.succeed(definition),
|
|
46
|
-
});
|
|
47
17
|
/**
|
|
48
18
|
* The MCP form-mode `requestedSchema`: a flat object of primitive properties.
|
|
49
19
|
* Every `required` name must be a declared property, since an answer can carry
|
|
@@ -54,10 +24,16 @@ export const FormModeSchema = exactStruct({
|
|
|
54
24
|
type: Schema.Literal("object"),
|
|
55
25
|
properties: Schema.Record({
|
|
56
26
|
key: Schema.String,
|
|
57
|
-
value:
|
|
27
|
+
value: FormFieldSchema,
|
|
58
28
|
}),
|
|
59
29
|
required: Schema.optional(Schema.Array(Schema.String)),
|
|
60
|
-
}).pipe(Schema.filter((schema) =>
|
|
30
|
+
}).pipe(Schema.filter((schema) => {
|
|
31
|
+
const undeclared = (schema.required ?? []).filter((name) => !Object.hasOwn(schema.properties, name));
|
|
32
|
+
return (undeclared.length === 0 || {
|
|
33
|
+
path: ["required"],
|
|
34
|
+
message: `names ${undeclared.map((name) => JSON.stringify(name)).join(", ")}, which properties does not declare`,
|
|
35
|
+
});
|
|
36
|
+
}, {
|
|
61
37
|
identifier: "RequestedSchema",
|
|
62
38
|
description: "Form-mode schema whose required names are properties",
|
|
63
39
|
}));
|
|
@@ -76,6 +52,11 @@ const decodeCollectiveId = Schema.decodeUnknownSync(CollectiveId);
|
|
|
76
52
|
export const collectiveIdOf = (requester, nonce) => decodeCollectiveId(`col_${createHash("sha256")
|
|
77
53
|
.update(`xyz.moltzap/collective-id\0${requester}\0${nonce}`)
|
|
78
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
|
+
});
|
|
79
60
|
/** A plain post: multicast carries neither a deadline nor a schema. */
|
|
80
61
|
const MulticastOperation = exactStruct({
|
|
81
62
|
kind: Schema.Literal("operation"),
|
|
@@ -104,7 +85,7 @@ const CollectiveResponse = Schema.Union(exactStruct({
|
|
|
104
85
|
}), exactStruct({
|
|
105
86
|
kind: Schema.Literal("response"),
|
|
106
87
|
id: CollectiveId,
|
|
107
|
-
action: Schema.Literal("decline"
|
|
88
|
+
action: Schema.Literal("decline"),
|
|
108
89
|
}));
|
|
109
90
|
/** The requester's all_gather close: the included answers by certified record hash. */
|
|
110
91
|
const CollectiveClose = exactStruct({
|
|
@@ -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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"}
|