@moltzap/client 2026.811.0 → 2026.902.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/LICENSE +202 -21
- package/NOTICE +19 -0
- package/README.md +50 -0
- package/bin/moltzapd +9 -0
- package/dist/client-runtime.d.ts +10 -0
- package/dist/client-runtime.d.ts.map +1 -0
- package/dist/client-runtime.js +218 -0
- package/dist/client-runtime.js.map +1 -0
- package/dist/contract.d.ts +338 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +213 -0
- package/dist/contract.js.map +1 -0
- package/dist/contract.types-check.d.ts +99 -0
- package/dist/contract.types-check.d.ts.map +1 -0
- package/dist/contract.types-check.js +7 -0
- package/dist/contract.types-check.js.map +1 -0
- package/dist/daemon/configuration.d.ts +46 -0
- package/dist/daemon/configuration.d.ts.map +1 -0
- package/dist/daemon/configuration.js +69 -0
- package/dist/daemon/configuration.js.map +1 -0
- package/dist/daemon/management.d.ts +23 -0
- package/dist/daemon/management.d.ts.map +1 -0
- package/dist/daemon/management.js +489 -0
- package/dist/daemon/management.js.map +1 -0
- package/dist/daemon/registration.d.ts +72 -0
- package/dist/daemon/registration.d.ts.map +1 -0
- package/dist/daemon/registration.js +109 -0
- package/dist/daemon/registration.js.map +1 -0
- package/dist/daemon/runtime/activation.d.ts +95 -0
- package/dist/daemon/runtime/activation.d.ts.map +1 -0
- package/dist/daemon/runtime/activation.js +99 -0
- package/dist/daemon/runtime/activation.js.map +1 -0
- package/dist/daemon/runtime/controller.d.ts +34 -0
- package/dist/daemon/runtime/controller.d.ts.map +1 -0
- package/dist/daemon/runtime/controller.js +106 -0
- package/dist/daemon/runtime/controller.js.map +1 -0
- package/dist/daemon/runtime/history-export.d.ts +23 -0
- package/dist/daemon/runtime/history-export.d.ts.map +1 -0
- package/dist/daemon/runtime/history-export.js +47 -0
- package/dist/daemon/runtime/history-export.js.map +1 -0
- package/dist/daemon/runtime/index.d.ts +24 -0
- package/dist/daemon/runtime/index.d.ts.map +1 -0
- package/dist/daemon/runtime/index.js +65 -0
- package/dist/daemon/runtime/index.js.map +1 -0
- package/dist/daemon/runtime/protocol.d.ts +63 -0
- package/dist/daemon/runtime/protocol.d.ts.map +1 -0
- package/dist/daemon/runtime/protocol.js +133 -0
- package/dist/daemon/runtime/protocol.js.map +1 -0
- package/dist/endpoint/addressing/index.d.ts +39 -0
- package/dist/endpoint/addressing/index.d.ts.map +1 -0
- package/dist/endpoint/addressing/index.js +114 -0
- package/dist/endpoint/addressing/index.js.map +1 -0
- package/dist/endpoint/engine-dissemination.d.ts +11 -0
- package/dist/endpoint/engine-dissemination.d.ts.map +1 -0
- package/dist/endpoint/engine-dissemination.js +71 -0
- package/dist/endpoint/engine-dissemination.js.map +1 -0
- package/dist/endpoint/engine-durability.d.ts +69 -0
- package/dist/endpoint/engine-durability.d.ts.map +1 -0
- package/dist/endpoint/engine-durability.js +210 -0
- package/dist/endpoint/engine-durability.js.map +1 -0
- package/dist/endpoint/engine-send.d.ts +50 -0
- package/dist/endpoint/engine-send.d.ts.map +1 -0
- package/dist/endpoint/engine-send.js +422 -0
- package/dist/endpoint/engine-send.js.map +1 -0
- package/dist/endpoint/engine-types.d.ts +132 -0
- package/dist/endpoint/engine-types.d.ts.map +1 -0
- package/dist/endpoint/engine-types.js +13 -0
- package/dist/endpoint/engine-types.js.map +1 -0
- package/dist/endpoint/engine.d.ts +14 -0
- package/dist/endpoint/engine.d.ts.map +1 -0
- package/dist/endpoint/engine.js +280 -0
- package/dist/endpoint/engine.js.map +1 -0
- package/dist/endpoint/protocol/evidence.d.ts +37 -0
- package/dist/endpoint/protocol/evidence.d.ts.map +1 -0
- package/dist/endpoint/protocol/evidence.js +80 -0
- package/dist/endpoint/protocol/evidence.js.map +1 -0
- package/dist/endpoint/protocol/index.d.ts +26 -0
- package/dist/endpoint/protocol/index.d.ts.map +1 -0
- package/dist/endpoint/protocol/index.js +543 -0
- package/dist/endpoint/protocol/index.js.map +1 -0
- package/dist/endpoint/recovery/barrier.d.ts +23 -0
- package/dist/endpoint/recovery/barrier.d.ts.map +1 -0
- package/dist/endpoint/recovery/barrier.js +47 -0
- package/dist/endpoint/recovery/barrier.js.map +1 -0
- package/dist/endpoint/recovery/index.d.ts +29 -0
- package/dist/endpoint/recovery/index.d.ts.map +1 -0
- package/dist/endpoint/recovery/index.js +489 -0
- package/dist/endpoint/recovery/index.js.map +1 -0
- package/dist/endpoint/recovery/reanchor/empty.d.ts +22 -0
- package/dist/endpoint/recovery/reanchor/empty.d.ts.map +1 -0
- package/dist/endpoint/recovery/reanchor/empty.js +163 -0
- package/dist/endpoint/recovery/reanchor/empty.js.map +1 -0
- package/dist/endpoint/recovery/reanchor/index.d.ts +30 -0
- package/dist/endpoint/recovery/reanchor/index.d.ts.map +1 -0
- package/dist/endpoint/recovery/reanchor/index.js +479 -0
- package/dist/endpoint/recovery/reanchor/index.js.map +1 -0
- package/dist/endpoint/recovery/state.d.ts +130 -0
- package/dist/endpoint/recovery/state.d.ts.map +1 -0
- package/dist/endpoint/recovery/state.js +296 -0
- package/dist/endpoint/recovery/state.js.map +1 -0
- package/dist/endpoint/recovery/store-evidence.d.ts +17 -0
- package/dist/endpoint/recovery/store-evidence.d.ts.map +1 -0
- package/dist/endpoint/recovery/store-evidence.js +79 -0
- package/dist/endpoint/recovery/store-evidence.js.map +1 -0
- package/dist/endpoint/recovery/store.d.ts +56 -0
- package/dist/endpoint/recovery/store.d.ts.map +1 -0
- package/dist/endpoint/recovery/store.js +499 -0
- package/dist/endpoint/recovery/store.js.map +1 -0
- package/dist/endpoint/representation-canonical.d.ts +17 -0
- package/dist/endpoint/representation-canonical.d.ts.map +1 -0
- package/dist/endpoint/representation-canonical.js +48 -0
- package/dist/endpoint/representation-canonical.js.map +1 -0
- package/dist/endpoint/representation-codec.d.ts +51 -0
- package/dist/endpoint/representation-codec.d.ts.map +1 -0
- package/dist/endpoint/representation-codec.js +159 -0
- package/dist/endpoint/representation-codec.js.map +1 -0
- package/dist/endpoint/representation-schemas.d.ts +1831 -0
- package/dist/endpoint/representation-schemas.d.ts.map +1 -0
- package/dist/endpoint/representation-schemas.js +195 -0
- package/dist/endpoint/representation-schemas.js.map +1 -0
- package/dist/endpoint/representation-verification.d.ts +79 -0
- package/dist/endpoint/representation-verification.d.ts.map +1 -0
- package/dist/endpoint/representation-verification.js +420 -0
- package/dist/endpoint/representation-verification.js.map +1 -0
- package/dist/endpoint/representation.d.ts +6 -0
- package/dist/endpoint/representation.d.ts.map +1 -0
- package/dist/endpoint/representation.js +8 -0
- package/dist/endpoint/representation.js.map +1 -0
- package/dist/endpoint/router-worker/index.d.ts +16 -0
- package/dist/endpoint/router-worker/index.d.ts.map +1 -0
- package/dist/endpoint/router-worker/index.js +547 -0
- package/dist/endpoint/router-worker/index.js.map +1 -0
- package/dist/endpoint/router-worker/types.d.ts +183 -0
- package/dist/endpoint/router-worker/types.d.ts.map +1 -0
- package/dist/endpoint/router-worker/types.js +31 -0
- package/dist/endpoint/router-worker/types.js.map +1 -0
- package/dist/endpoint/store/anchors.d.ts +83 -0
- package/dist/endpoint/store/anchors.d.ts.map +1 -0
- package/dist/endpoint/store/anchors.js +471 -0
- package/dist/endpoint/store/anchors.js.map +1 -0
- package/dist/endpoint/store/database/index.d.ts +6 -0
- package/dist/endpoint/store/database/index.d.ts.map +1 -0
- package/dist/endpoint/store/database/index.js +6 -0
- package/dist/endpoint/store/database/index.js.map +1 -0
- package/dist/endpoint/store/database/schema.d.ts +44 -0
- package/dist/endpoint/store/database/schema.d.ts.map +1 -0
- package/dist/endpoint/store/database/schema.js +345 -0
- package/dist/endpoint/store/database/schema.js.map +1 -0
- package/dist/endpoint/store/database/values.d.ts +119 -0
- package/dist/endpoint/store/database/values.d.ts.map +1 -0
- package/dist/endpoint/store/database/values.js +194 -0
- package/dist/endpoint/store/database/values.js.map +1 -0
- package/dist/endpoint/store/deliveries.d.ts +38 -0
- package/dist/endpoint/store/deliveries.d.ts.map +1 -0
- package/dist/endpoint/store/deliveries.js +124 -0
- package/dist/endpoint/store/deliveries.js.map +1 -0
- package/dist/endpoint/store/dissemination.d.ts +27 -0
- package/dist/endpoint/store/dissemination.d.ts.map +1 -0
- package/dist/endpoint/store/dissemination.js +139 -0
- package/dist/endpoint/store/dissemination.js.map +1 -0
- package/dist/endpoint/store/index.d.ts +15 -0
- package/dist/endpoint/store/index.d.ts.map +1 -0
- package/dist/endpoint/store/index.js +76 -0
- package/dist/endpoint/store/index.js.map +1 -0
- package/dist/endpoint/store/management.d.ts +42 -0
- package/dist/endpoint/store/management.d.ts.map +1 -0
- package/dist/endpoint/store/management.js +259 -0
- package/dist/endpoint/store/management.js.map +1 -0
- package/dist/endpoint/store/outbound.d.ts +62 -0
- package/dist/endpoint/store/outbound.d.ts.map +1 -0
- package/dist/endpoint/store/outbound.js +278 -0
- package/dist/endpoint/store/outbound.js.map +1 -0
- package/dist/endpoint/store/records.d.ts +56 -0
- package/dist/endpoint/store/records.d.ts.map +1 -0
- package/dist/endpoint/store/records.js +352 -0
- package/dist/endpoint/store/records.js.map +1 -0
- package/dist/endpoint/store/rows/index.d.ts +138 -0
- package/dist/endpoint/store/rows/index.d.ts.map +1 -0
- package/dist/endpoint/store/rows/index.js +307 -0
- package/dist/endpoint/store/rows/index.js.map +1 -0
- package/dist/endpoint/store/types.d.ts +223 -0
- package/dist/endpoint/store/types.d.ts.map +1 -0
- package/dist/endpoint/store/types.js +15 -0
- package/dist/endpoint/store/types.js.map +1 -0
- package/dist/endpoint/store.d.ts +10 -0
- package/dist/endpoint/store.d.ts.map +1 -0
- package/dist/endpoint/store.js +6 -0
- package/dist/endpoint/store.js.map +1 -0
- package/dist/harness-mcp-contract.d.ts +101 -0
- package/dist/harness-mcp-contract.d.ts.map +1 -0
- package/dist/harness-mcp-contract.js +61 -0
- package/dist/harness-mcp-contract.js.map +1 -0
- package/dist/harness-mcp-http.d.ts +19 -0
- package/dist/harness-mcp-http.d.ts.map +1 -0
- package/dist/{harness-mcp-server.js → harness-mcp-http.js} +43 -71
- package/dist/harness-mcp-http.js.map +1 -0
- package/dist/harness-mcp-subscription.d.ts +12 -7
- package/dist/harness-mcp-subscription.d.ts.map +1 -1
- package/dist/harness-mcp-subscription.js +113 -100
- package/dist/harness-mcp-subscription.js.map +1 -1
- package/dist/harness-mcp-wire.d.ts +26 -19
- package/dist/harness-mcp-wire.d.ts.map +1 -1
- package/dist/harness-mcp-wire.js +380 -67
- package/dist/harness-mcp-wire.js.map +1 -1
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/dist/management-runtime.d.ts +217 -0
- package/dist/management-runtime.d.ts.map +1 -0
- package/dist/management-runtime.js +127 -0
- package/dist/management-runtime.js.map +1 -0
- package/dist/server.d.ts +16 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +46 -0
- package/dist/server.js.map +1 -0
- package/dist/server.types-check.d.ts +23 -0
- package/dist/server.types-check.d.ts.map +1 -0
- package/dist/server.types-check.js +7 -0
- package/dist/server.types-check.js.map +1 -0
- package/package.json +45 -47
- package/dist/agent-client.d.ts +0 -5
- package/dist/agent-client.d.ts.map +0 -1
- package/dist/agent-client.js +0 -3
- package/dist/agent-client.js.map +0 -1
- package/dist/auth.d.ts +0 -37
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -79
- package/dist/auth.js.map +0 -1
- package/dist/bounded-map.d.ts +0 -32
- package/dist/bounded-map.d.ts.map +0 -1
- package/dist/bounded-map.js +0 -79
- package/dist/bounded-map.js.map +0 -1
- package/dist/channel-base/format-cross-conv.d.ts +0 -43
- package/dist/channel-base/format-cross-conv.d.ts.map +0 -1
- package/dist/channel-base/format-cross-conv.js +0 -65
- package/dist/channel-base/format-cross-conv.js.map +0 -1
- package/dist/channel-base/format-group-block.d.ts +0 -48
- package/dist/channel-base/format-group-block.d.ts.map +0 -1
- package/dist/channel-base/format-group-block.js +0 -62
- package/dist/channel-base/format-group-block.js.map +0 -1
- package/dist/channel-base/index.d.ts +0 -12
- package/dist/channel-base/index.d.ts.map +0 -1
- package/dist/channel-base/index.js +0 -13
- package/dist/channel-base/index.js.map +0 -1
- package/dist/channel-core-enrichment.d.ts +0 -14
- package/dist/channel-core-enrichment.d.ts.map +0 -1
- package/dist/channel-core-enrichment.js +0 -143
- package/dist/channel-core-enrichment.js.map +0 -1
- package/dist/channel-core-test-support.d.ts +0 -75
- package/dist/channel-core-test-support.d.ts.map +0 -1
- package/dist/channel-core-test-support.js +0 -74
- package/dist/channel-core-test-support.js.map +0 -1
- package/dist/channel-core.d.ts +0 -304
- package/dist/channel-core.d.ts.map +0 -1
- package/dist/channel-core.js +0 -363
- package/dist/channel-core.js.map +0 -1
- package/dist/cli/adapters.d.ts +0 -21
- package/dist/cli/adapters.d.ts.map +0 -1
- package/dist/cli/adapters.js +0 -111
- package/dist/cli/adapters.js.map +0 -1
- package/dist/cli/commands/agents.d.ts +0 -11
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -27
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/conversations.d.ts +0 -18
- package/dist/cli/commands/conversations.d.ts.map +0 -1
- package/dist/cli/commands/conversations.js +0 -33
- package/dist/cli/commands/conversations.js.map +0 -1
- package/dist/cli/commands/messages.d.ts +0 -41
- package/dist/cli/commands/messages.d.ts.map +0 -1
- package/dist/cli/commands/messages.js +0 -39
- package/dist/cli/commands/messages.js.map +0 -1
- package/dist/cli/commands/register.d.ts +0 -46
- package/dist/cli/commands/register.d.ts.map +0 -1
- package/dist/cli/commands/register.js +0 -103
- package/dist/cli/commands/register.js.map +0 -1
- package/dist/cli/commands/send.d.ts +0 -53
- package/dist/cli/commands/send.d.ts.map +0 -1
- package/dist/cli/commands/send.js +0 -57
- package/dist/cli/commands/send.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -34
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/start.js +0 -59
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -7
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -16
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/test-transport.d.ts +0 -28
- package/dist/cli/commands/test-transport.d.ts.map +0 -1
- package/dist/cli/commands/test-transport.js +0 -40
- package/dist/cli/commands/test-transport.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -105
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/output.d.ts +0 -14
- package/dist/cli/output.d.ts.map +0 -1
- package/dist/cli/output.js +0 -19
- package/dist/cli/output.js.map +0 -1
- package/dist/cli/socket-client.d.ts +0 -28
- package/dist/cli/socket-client.d.ts.map +0 -1
- package/dist/cli/socket-client.js +0 -63
- package/dist/cli/socket-client.js.map +0 -1
- package/dist/cli/transport.d.ts +0 -132
- package/dist/cli/transport.d.ts.map +0 -1
- package/dist/cli/transport.js +0 -127
- package/dist/cli/transport.js.map +0 -1
- package/dist/config.d.ts +0 -33
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -45
- package/dist/config.js.map +0 -1
- package/dist/config.test-utils.d.ts +0 -18
- package/dist/config.test-utils.d.ts.map +0 -1
- package/dist/config.test-utils.js +0 -53
- package/dist/config.test-utils.js.map +0 -1
- package/dist/harness/client-runtime.d.ts +0 -24
- package/dist/harness/client-runtime.d.ts.map +0 -1
- package/dist/harness/client-runtime.js +0 -107
- package/dist/harness/client-runtime.js.map +0 -1
- package/dist/harness/index.d.ts +0 -5
- package/dist/harness/index.d.ts.map +0 -1
- package/dist/harness/index.js +0 -5
- package/dist/harness/index.js.map +0 -1
- package/dist/harness/runtime.d.ts +0 -149
- package/dist/harness/runtime.d.ts.map +0 -1
- package/dist/harness/runtime.js +0 -68
- package/dist/harness/runtime.js.map +0 -1
- package/dist/harness-client.d.ts +0 -43
- package/dist/harness-client.d.ts.map +0 -1
- package/dist/harness-client.js +0 -21
- package/dist/harness-client.js.map +0 -1
- package/dist/harness-mcp-server.d.ts +0 -19
- package/dist/harness-mcp-server.d.ts.map +0 -1
- package/dist/harness-mcp-server.js.map +0 -1
- package/dist/local-daemon-rpc.d.ts +0 -1170
- package/dist/local-daemon-rpc.d.ts.map +0 -1
- package/dist/local-daemon-rpc.js +0 -178
- package/dist/local-daemon-rpc.js.map +0 -1
- package/dist/local-history.d.ts +0 -75
- package/dist/local-history.d.ts.map +0 -1
- package/dist/local-history.js +0 -82
- package/dist/local-history.js.map +0 -1
- package/dist/local-paths.d.ts +0 -22
- package/dist/local-paths.d.ts.map +0 -1
- package/dist/local-paths.js +0 -33
- package/dist/local-paths.js.map +0 -1
- package/dist/local-socket-server.d.ts +0 -33
- package/dist/local-socket-server.d.ts.map +0 -1
- package/dist/local-socket-server.js +0 -100
- package/dist/local-socket-server.js.map +0 -1
- package/dist/message-rendering.d.ts +0 -4
- package/dist/message-rendering.d.ts.map +0 -1
- package/dist/message-rendering.js +0 -8
- package/dist/message-rendering.js.map +0 -1
- package/dist/moltzapd.d.ts +0 -38
- package/dist/moltzapd.d.ts.map +0 -1
- package/dist/moltzapd.js +0 -78
- package/dist/moltzapd.js.map +0 -1
- package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts +0 -53
- package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts.map +0 -1
- package/dist/notification/__tests__/subscribe-signatures.types-check.js +0 -29
- package/dist/notification/__tests__/subscribe-signatures.types-check.js.map +0 -1
- package/dist/notification/errors.d.ts +0 -41
- package/dist/notification/errors.d.ts.map +0 -1
- package/dist/notification/errors.js +0 -24
- package/dist/notification/errors.js.map +0 -1
- package/dist/notification/index.d.ts +0 -6
- package/dist/notification/index.d.ts.map +0 -1
- package/dist/notification/index.js +0 -6
- package/dist/notification/index.js.map +0 -1
- package/dist/notification/stream.d.ts +0 -75
- package/dist/notification/stream.d.ts.map +0 -1
- package/dist/notification/stream.js +0 -30
- package/dist/notification/stream.js.map +0 -1
- package/dist/pagination.d.ts +0 -52
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -51
- package/dist/pagination.js.map +0 -1
- package/dist/profile.d.ts +0 -104
- package/dist/profile.d.ts.map +0 -1
- package/dist/profile.js +0 -163
- package/dist/profile.js.map +0 -1
- package/dist/refs.d.ts +0 -18
- package/dist/refs.d.ts.map +0 -1
- package/dist/refs.js +0 -18
- package/dist/refs.js.map +0 -1
- package/dist/service-event-trace.d.ts +0 -15
- package/dist/service-event-trace.d.ts.map +0 -1
- package/dist/service-event-trace.js +0 -35
- package/dist/service-event-trace.js.map +0 -1
- package/dist/service-helpers.d.ts +0 -55
- package/dist/service-helpers.d.ts.map +0 -1
- package/dist/service-helpers.js +0 -108
- package/dist/service-helpers.js.map +0 -1
- package/dist/service-local-daemon.d.ts +0 -32
- package/dist/service-local-daemon.d.ts.map +0 -1
- package/dist/service-local-daemon.js +0 -153
- package/dist/service-local-daemon.js.map +0 -1
- package/dist/service.d.ts +0 -299
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -789
- package/dist/service.js.map +0 -1
- package/dist/test-utils/channel-service-fixture.d.ts +0 -53
- package/dist/test-utils/channel-service-fixture.d.ts.map +0 -1
- package/dist/test-utils/channel-service-fixture.js +0 -178
- package/dist/test-utils/channel-service-fixture.js.map +0 -1
- package/dist/test-utils/fake-service.d.ts +0 -84
- package/dist/test-utils/fake-service.d.ts.map +0 -1
- package/dist/test-utils/fake-service.js +0 -108
- package/dist/test-utils/fake-service.js.map +0 -1
- package/dist/test-utils/harness.d.ts +0 -27
- package/dist/test-utils/harness.d.ts.map +0 -1
- package/dist/test-utils/harness.js +0 -33
- package/dist/test-utils/harness.js.map +0 -1
- package/dist/test-utils/ids.d.ts +0 -21
- package/dist/test-utils/ids.d.ts.map +0 -1
- package/dist/test-utils/ids.js +0 -68
- package/dist/test-utils/ids.js.map +0 -1
- package/dist/test-utils/index.d.ts +0 -54
- package/dist/test-utils/index.d.ts.map +0 -1
- package/dist/test-utils/index.js +0 -65
- package/dist/test-utils/index.js.map +0 -1
- package/dist/test-utils/standalone-provisioning.d.ts +0 -22
- package/dist/test-utils/standalone-provisioning.d.ts.map +0 -1
- package/dist/test-utils/standalone-provisioning.js +0 -17
- package/dist/test-utils/standalone-provisioning.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
/** @file Address resolution, immutable intent binding, and proposal creation. */
|
|
2
|
+
import { AgentCard, MOLTZAP_VERSION, SignedMessage } from "@moltzap/identity";
|
|
3
|
+
import { DateTime, Deferred, Duration, Effect, Schema } from "effect";
|
|
4
|
+
import { SendError, } from "../contract.js";
|
|
5
|
+
import { resolveMessageAddress } from "./addressing/index.js";
|
|
6
|
+
import { currentRecoveryBarrier } from "./recovery/barrier.js";
|
|
7
|
+
import { deriveConversationId, encodeCanonical, GenesisAnchorBody, hashAction, hashAnchor, hashPostIntent, MembershipDescriptor as MembershipDescriptorSchema, mintPostId, PostIntent as PostIntentSchema, signOuterEvidence, signOuterPacket, verifyMembershipDescriptor, } from "./representation.js";
|
|
8
|
+
const sendReasonByStoreReason = {
|
|
9
|
+
closed: "persistence-failed",
|
|
10
|
+
conflict: "persistence-failed",
|
|
11
|
+
corrupt: "persistence-failed",
|
|
12
|
+
incompatible: "persistence-failed",
|
|
13
|
+
"invalid-continuation": "persistence-failed",
|
|
14
|
+
"invalid-input": "persistence-failed",
|
|
15
|
+
"not-found": "persistence-failed",
|
|
16
|
+
persistence: "persistence-failed",
|
|
17
|
+
};
|
|
18
|
+
function storeFailure(error) {
|
|
19
|
+
return new SendError({ reason: sendReasonByStoreReason[error.reason] });
|
|
20
|
+
}
|
|
21
|
+
const representationFailure = () => new SendError({ reason: "certification-unavailable" });
|
|
22
|
+
/**
|
|
23
|
+
* How long a send waits for the Router worker to attach before failing as
|
|
24
|
+
* `network-unavailable`.
|
|
25
|
+
*
|
|
26
|
+
* A cold-start attach can span a Router tail hold, `HOLD_DURATION` in
|
|
27
|
+
* `@moltzap/router`, and the daemon's own `ROUTER_POLL_TIMEOUT`, so a bound
|
|
28
|
+
* near either one fails sends that are merely early. It stays under the MCP
|
|
29
|
+
* SDK's `DEFAULT_REQUEST_TIMEOUT_MSEC`, the deadline a host client applies to
|
|
30
|
+
* the tool call, so the host receives this closed failure rather than a
|
|
31
|
+
* transport timeout it cannot classify, and the remaining margin covers the
|
|
32
|
+
* send itself. `EndpointEngineInput.routerAttachTimeout` overrides it.
|
|
33
|
+
*/
|
|
34
|
+
const ROUTER_ATTACH_TIMEOUT = Duration.seconds(45);
|
|
35
|
+
const buildMembership = (runtime, resolved) => Effect.gen(function* () {
|
|
36
|
+
const memberAgentIds = resolved.memberCards.map((card) => card.agentId);
|
|
37
|
+
const firstAgentId = memberAgentIds[0];
|
|
38
|
+
const secondAgentId = memberAgentIds[1];
|
|
39
|
+
if (firstAgentId === undefined || secondAgentId === undefined) {
|
|
40
|
+
return yield* Effect.fail(new SendError({ reason: "membership-invalid" }));
|
|
41
|
+
}
|
|
42
|
+
const conversationId = yield* deriveConversationId([
|
|
43
|
+
firstAgentId,
|
|
44
|
+
secondAgentId,
|
|
45
|
+
...memberAgentIds.slice(2),
|
|
46
|
+
]).pipe(Effect.mapError(representationFailure));
|
|
47
|
+
const encodedCards = yield* Effect.forEach(resolved.memberCards, (card) => Schema.encode(AgentCard)(card), { concurrency: 1 }).pipe(Effect.mapError(representationFailure));
|
|
48
|
+
const firstCard = encodedCards[0];
|
|
49
|
+
const secondCard = encodedCards[1];
|
|
50
|
+
if (firstCard === undefined || secondCard === undefined) {
|
|
51
|
+
return yield* Effect.fail(new SendError({ reason: "membership-invalid" }));
|
|
52
|
+
}
|
|
53
|
+
const descriptor = yield* Schema.decodeUnknown(MembershipDescriptorSchema)({
|
|
54
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
55
|
+
kind: "membership_descriptor",
|
|
56
|
+
conversationId,
|
|
57
|
+
members: [firstCard, secondCard, ...encodedCards.slice(2)],
|
|
58
|
+
}).pipe(Effect.mapError(representationFailure));
|
|
59
|
+
const membership = yield* verifyMembershipDescriptor(descriptor, runtime.input.registrySignerPublicKey).pipe(Effect.mapError(representationFailure));
|
|
60
|
+
return membership;
|
|
61
|
+
});
|
|
62
|
+
const resolveMembership = (runtime, input) => resolveMessageAddress({
|
|
63
|
+
localAgentCard: runtime.input.localAgentCard,
|
|
64
|
+
registry: runtime.input.registry,
|
|
65
|
+
to: input.to,
|
|
66
|
+
}).pipe(Effect.flatMap((resolved) => buildMembership(runtime, resolved)));
|
|
67
|
+
function enqueueOuterMessage(runtime, conversationId, message) {
|
|
68
|
+
return outboundInput(conversationId, message).pipe(Effect.flatMap((input) => runtime.input.store
|
|
69
|
+
.enqueueOutbound(input)
|
|
70
|
+
.pipe(Effect.mapError(storeFailure))), Effect.flatMap((outbound) => signalOutbound(runtime, outbound.outboundId)));
|
|
71
|
+
}
|
|
72
|
+
function outboundInput(conversationId, message) {
|
|
73
|
+
return encodeCanonical(SignedMessage, message).pipe(Effect.mapError(representationFailure), Effect.map((canonicalSignedMessage) => ({
|
|
74
|
+
conversationId,
|
|
75
|
+
messageId: message.messageId,
|
|
76
|
+
canonicalSignedMessage,
|
|
77
|
+
})));
|
|
78
|
+
}
|
|
79
|
+
function signalOutbound(runtime, outboundId) {
|
|
80
|
+
return Effect.sync(() => {
|
|
81
|
+
if (!runtime.outbound.includes(outboundId)) {
|
|
82
|
+
runtime.outbound.push(outboundId);
|
|
83
|
+
}
|
|
84
|
+
}).pipe(Effect.zipRight(runtime.outboundSignal.offer(undefined)), Effect.asVoid);
|
|
85
|
+
}
|
|
86
|
+
function recordHash(packet) {
|
|
87
|
+
switch (packet.kind) {
|
|
88
|
+
case "action_certified_record":
|
|
89
|
+
return packet.recordHash;
|
|
90
|
+
case "certified_record":
|
|
91
|
+
return packet.actionCertifiedRecord.recordHash;
|
|
92
|
+
default: {
|
|
93
|
+
const exhaustive = packet;
|
|
94
|
+
return exhaustive;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function disseminationKind(packet) {
|
|
99
|
+
switch (packet.kind) {
|
|
100
|
+
case "action_certified_record":
|
|
101
|
+
return "action-certified-record";
|
|
102
|
+
case "certified_record":
|
|
103
|
+
return "certified-record";
|
|
104
|
+
default: {
|
|
105
|
+
const exhaustive = packet;
|
|
106
|
+
return exhaustive;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Queue one direct protocol packet for all fixed members.
|
|
112
|
+
* @param runtime Engine state and local signing authority.
|
|
113
|
+
* @param conversation Verified conversation and fixed-member recipients.
|
|
114
|
+
* @param packet Closed protocol packet to disseminate.
|
|
115
|
+
* @returns Completion after the complete outer message is durably staged.
|
|
116
|
+
*/
|
|
117
|
+
const queuePacket = (runtime, conversation, packet) => signOuterPacket({
|
|
118
|
+
packet,
|
|
119
|
+
membership: conversation.membership,
|
|
120
|
+
agentCard: runtime.input.localAgentCard,
|
|
121
|
+
signingAuthority: runtime.input.signingAuthority,
|
|
122
|
+
}).pipe(Effect.mapError(representationFailure), Effect.flatMap((message) => enqueueOuterMessage(runtime, conversation.conversationId, message)));
|
|
123
|
+
/**
|
|
124
|
+
* Attach a certified record packet to its durable dissemination obligation.
|
|
125
|
+
* @param runtime Engine state and local signing authority.
|
|
126
|
+
* @param conversation Verified conversation and fixed-member recipients.
|
|
127
|
+
* @param packet Record packet whose state transition retained the obligation.
|
|
128
|
+
* @returns Completion after the exact outer envelope is durably attached.
|
|
129
|
+
*/
|
|
130
|
+
export const queueCertifiedPacket = (runtime, conversation, packet) => signOuterPacket({
|
|
131
|
+
packet,
|
|
132
|
+
membership: conversation.membership,
|
|
133
|
+
agentCard: runtime.input.localAgentCard,
|
|
134
|
+
signingAuthority: runtime.input.signingAuthority,
|
|
135
|
+
}).pipe(Effect.mapError(representationFailure), Effect.flatMap((message) => outboundInput(conversation.conversationId, message).pipe(Effect.flatMap((input) => runtime.input.store
|
|
136
|
+
.enqueueDisseminationOutbound({
|
|
137
|
+
conversationId: conversation.conversationId,
|
|
138
|
+
recordHash: recordHash(packet),
|
|
139
|
+
kind: disseminationKind(packet),
|
|
140
|
+
}, input)
|
|
141
|
+
.pipe(Effect.mapError(storeFailure))))), Effect.flatMap((outbound) => signalOutbound(runtime, outbound.outboundId)));
|
|
142
|
+
/**
|
|
143
|
+
* Queue stable inner evidence without changing its signer attribution.
|
|
144
|
+
* @param runtime Engine state and local signing authority.
|
|
145
|
+
* @param conversation Verified conversation and fixed-member recipients.
|
|
146
|
+
* @param evidence Stable self-addressed evidence message.
|
|
147
|
+
* @returns Completion after the complete outer message is durably staged.
|
|
148
|
+
*/
|
|
149
|
+
export const queueEvidence = (runtime, conversation, evidence) => signOuterEvidence({
|
|
150
|
+
evidence,
|
|
151
|
+
membership: conversation.membership,
|
|
152
|
+
agentCard: runtime.input.localAgentCard,
|
|
153
|
+
signingAuthority: runtime.input.signingAuthority,
|
|
154
|
+
}).pipe(Effect.mapError(representationFailure), Effect.flatMap((message) => enqueueOuterMessage(runtime, conversation.conversationId, message)));
|
|
155
|
+
const proposalAction = (conversation, intent) => {
|
|
156
|
+
const head = conversation.head;
|
|
157
|
+
if (head === undefined) {
|
|
158
|
+
const anchor = conversation.currentAnchor;
|
|
159
|
+
if (anchor.kind !== "genesis_anchor_body") {
|
|
160
|
+
return Effect.fail(representationFailure());
|
|
161
|
+
}
|
|
162
|
+
return hashPostIntent(intent).pipe(Effect.mapError(representationFailure), Effect.map((postIntentHash) => {
|
|
163
|
+
const action = {
|
|
164
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
165
|
+
kind: "GENESIS",
|
|
166
|
+
conversationId: conversation.conversationId,
|
|
167
|
+
membership: conversation.membership.descriptor,
|
|
168
|
+
anchor,
|
|
169
|
+
previousRecordHash: null,
|
|
170
|
+
postIntent: intent,
|
|
171
|
+
postIntentHash,
|
|
172
|
+
};
|
|
173
|
+
return action;
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
return hashPostIntent(intent).pipe(Effect.mapError(representationFailure), Effect.map((postIntentHash) => {
|
|
177
|
+
const action = {
|
|
178
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
179
|
+
kind: "POST",
|
|
180
|
+
conversationId: conversation.conversationId,
|
|
181
|
+
membershipHash: conversation.membership.hash,
|
|
182
|
+
anchorHash: conversation.currentAnchor.kind === "genesis_anchor_body"
|
|
183
|
+
? head.record.actionCertifiedRecord.recordCore.anchorHash
|
|
184
|
+
: conversation.currentAnchor.anchorHash,
|
|
185
|
+
previousRecordHash: head.recordHash,
|
|
186
|
+
postIntent: intent,
|
|
187
|
+
postIntentHash,
|
|
188
|
+
};
|
|
189
|
+
return action;
|
|
190
|
+
}));
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Rebase one unchanged local intent against the conversation's current head.
|
|
194
|
+
* @param runtime Current engine state and protocol dependencies.
|
|
195
|
+
* @param localIntent Durable immutable post intent awaiting certification.
|
|
196
|
+
* @returns The predecessor-bound action hash proposed for this attempt.
|
|
197
|
+
*/
|
|
198
|
+
export const proposeIntent = (runtime, localIntent) => Effect.gen(function* () {
|
|
199
|
+
const conversation = runtime.conversations.get(localIntent.intent.conversationId);
|
|
200
|
+
if (conversation === undefined) {
|
|
201
|
+
return yield* Effect.fail(representationFailure());
|
|
202
|
+
}
|
|
203
|
+
const action = yield* proposalAction(conversation, localIntent.intent);
|
|
204
|
+
const actionHash = yield* hashAction(action).pipe(Effect.mapError(representationFailure));
|
|
205
|
+
if (localIntent.proposedActionHash === actionHash) {
|
|
206
|
+
return actionHash;
|
|
207
|
+
}
|
|
208
|
+
yield* queueAuthorizedProposal(runtime, {
|
|
209
|
+
conversation,
|
|
210
|
+
localIntent,
|
|
211
|
+
action,
|
|
212
|
+
actionHash,
|
|
213
|
+
});
|
|
214
|
+
return actionHash;
|
|
215
|
+
}).pipe(Effect.withSpan("proposeIntent"));
|
|
216
|
+
function queueAuthorizedProposal(runtime, proposal) {
|
|
217
|
+
return Effect.gen(function* () {
|
|
218
|
+
yield* authorizeAction(runtime, proposal);
|
|
219
|
+
yield* Effect.uninterruptible(queuePacket(runtime, proposal.conversation, {
|
|
220
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
221
|
+
kind: "action_proposal",
|
|
222
|
+
action: proposal.action,
|
|
223
|
+
}).pipe(Effect.zipRight(Effect.sync(() => {
|
|
224
|
+
proposal.localIntent.proposedActionHash = proposal.actionHash;
|
|
225
|
+
}))));
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function authorizeAction(runtime, proposal) {
|
|
229
|
+
return runtime.input
|
|
230
|
+
.actionPolicy({
|
|
231
|
+
action: proposal.action,
|
|
232
|
+
membership: proposal.conversation.membership,
|
|
233
|
+
})
|
|
234
|
+
.pipe(Effect.flatMap((policyDecision) => {
|
|
235
|
+
switch (policyDecision) {
|
|
236
|
+
case "sign":
|
|
237
|
+
return Effect.void;
|
|
238
|
+
case "refuse":
|
|
239
|
+
return Effect.fail(new SendError({ reason: "certification-unavailable" }));
|
|
240
|
+
default: {
|
|
241
|
+
const exhaustive = policyDecision;
|
|
242
|
+
return exhaustive;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}));
|
|
246
|
+
}
|
|
247
|
+
const createConversation = (runtime, membership) => Effect.gen(function* () {
|
|
248
|
+
const routerAnchor = yield* runtime.input.routerWorker.currentAnchor.pipe(Effect.mapError(currentAnchorFailure));
|
|
249
|
+
const anchor = yield* Schema.decodeUnknown(GenesisAnchorBody)({
|
|
250
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
251
|
+
kind: "genesis_anchor_body",
|
|
252
|
+
conversationId: membership.descriptor.conversationId,
|
|
253
|
+
membershipHash: membership.hash,
|
|
254
|
+
routerInstanceId: routerAnchor.routerInstanceId,
|
|
255
|
+
}).pipe(Effect.mapError(representationFailure));
|
|
256
|
+
const anchorHash = yield* hashAnchor(anchor).pipe(Effect.mapError(representationFailure));
|
|
257
|
+
const foundation = {
|
|
258
|
+
conversationId: membership.descriptor.conversationId,
|
|
259
|
+
membershipHash: membership.hash,
|
|
260
|
+
canonicalMembership: yield* encodeCanonical(MembershipDescriptorSchema, membership.descriptor).pipe(Effect.mapError(representationFailure)),
|
|
261
|
+
anchorHash,
|
|
262
|
+
canonicalAnchor: yield* encodeCanonical(GenesisAnchorBody, anchor).pipe(Effect.mapError(representationFailure)),
|
|
263
|
+
};
|
|
264
|
+
return {
|
|
265
|
+
foundation,
|
|
266
|
+
conversation: {
|
|
267
|
+
conversationId: membership.descriptor.conversationId,
|
|
268
|
+
membership,
|
|
269
|
+
currentAnchor: anchor,
|
|
270
|
+
},
|
|
271
|
+
};
|
|
272
|
+
});
|
|
273
|
+
function currentAnchorFailure(error) {
|
|
274
|
+
const reasonByTag = {
|
|
275
|
+
RouterWorkerUnavailableError: "network-unavailable",
|
|
276
|
+
};
|
|
277
|
+
return new SendError({ reason: reasonByTag[error._tag] });
|
|
278
|
+
}
|
|
279
|
+
// Registration and daemon restart both admit sends before the worker's first
|
|
280
|
+
// successful poll, and every send needs an attached worker: a new conversation
|
|
281
|
+
// reads the current anchor, an existing one transmits through the worker. The
|
|
282
|
+
// wait runs before `activateIntent` takes the engine gate, because the worker
|
|
283
|
+
// reaches `active` only after recovery that needs that same gate; waiting while
|
|
284
|
+
// holding it would stall the attachment awaited.
|
|
285
|
+
const awaitRouterAttachment = (runtime) => runtime.input.routerWorker.currentAnchor.pipe(Effect.catchTag("RouterWorkerUnavailableError", () => runtime.input.routerWorker.awaitAnchor.pipe(Effect.timeoutFail({
|
|
286
|
+
duration: runtime.input.routerAttachTimeout ?? ROUTER_ATTACH_TIMEOUT,
|
|
287
|
+
onTimeout: () => new SendError({ reason: "network-unavailable" }),
|
|
288
|
+
}))), Effect.asVoid);
|
|
289
|
+
/**
|
|
290
|
+
* Persist an addressed intent and return its durable completion latch.
|
|
291
|
+
* The latch completes when the minted post becomes locally certified.
|
|
292
|
+
*/
|
|
293
|
+
export const prepareSend = (runtime, input) => awaitRouterAttachment(runtime).pipe(Effect.zipRight(prepareIntent(runtime, input)), Effect.flatMap((prepared) => activateIntent(runtime, prepared).pipe(Effect.map((completion) => ({
|
|
294
|
+
postId: prepared.intent.postId,
|
|
295
|
+
completion,
|
|
296
|
+
})))), Effect.withSpan("prepareSend"));
|
|
297
|
+
/**
|
|
298
|
+
* Record one completed `send` invocation in the history export, keeping the
|
|
299
|
+
* host's addressed input as it was given. When no export is configured the
|
|
300
|
+
* no-op port records nothing.
|
|
301
|
+
*/
|
|
302
|
+
export const exportSend = (runtime, input, outcome) => DateTime.now.pipe(Effect.flatMap((at) => runtime.input.historyExport.record({
|
|
303
|
+
kind: "outbound",
|
|
304
|
+
to: input.to,
|
|
305
|
+
content: input.content,
|
|
306
|
+
outcome,
|
|
307
|
+
at,
|
|
308
|
+
})));
|
|
309
|
+
function prepareIntent(runtime, input) {
|
|
310
|
+
return Effect.gen(function* () {
|
|
311
|
+
const membership = yield* resolveMembership(runtime, input);
|
|
312
|
+
const postId = yield* mintPostId().pipe(Effect.mapError(representationFailure));
|
|
313
|
+
const intent = yield* Schema.decodeUnknown(PostIntentSchema)({
|
|
314
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
315
|
+
kind: "post_intent",
|
|
316
|
+
conversationId: membership.descriptor.conversationId,
|
|
317
|
+
membershipHash: membership.hash,
|
|
318
|
+
authorAgentId: runtime.input.localAgentCard.agentId,
|
|
319
|
+
postId,
|
|
320
|
+
content: input.content,
|
|
321
|
+
}).pipe(Effect.mapError(representationFailure));
|
|
322
|
+
const canonicalIntent = yield* encodeCanonical(PostIntentSchema, intent).pipe(Effect.mapError(representationFailure));
|
|
323
|
+
return { membership, intent, canonicalIntent };
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
function storedIntent(prepared) {
|
|
327
|
+
return {
|
|
328
|
+
conversationId: prepared.intent.conversationId,
|
|
329
|
+
membershipHash: prepared.intent.membershipHash,
|
|
330
|
+
authorAgentId: prepared.intent.authorAgentId,
|
|
331
|
+
postId: prepared.intent.postId,
|
|
332
|
+
canonicalIntent: prepared.canonicalIntent,
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function bindPreparedIntent(runtime, prepared) {
|
|
336
|
+
return Effect.gen(function* () {
|
|
337
|
+
const retained = runtime.conversations.get(prepared.intent.conversationId);
|
|
338
|
+
if (retained !== undefined) {
|
|
339
|
+
if (retained.membership.hash !== prepared.membership.hash) {
|
|
340
|
+
return yield* Effect.fail(new SendError({ reason: "certification-unavailable" }));
|
|
341
|
+
}
|
|
342
|
+
yield* runtime.input.store
|
|
343
|
+
.bindPostIntent({
|
|
344
|
+
kind: "existing-conversation",
|
|
345
|
+
intent: storedIntent(prepared),
|
|
346
|
+
})
|
|
347
|
+
.pipe(Effect.mapError(storeFailure));
|
|
348
|
+
return retained;
|
|
349
|
+
}
|
|
350
|
+
const created = yield* createConversation(runtime, prepared.membership);
|
|
351
|
+
yield* runtime.input.store
|
|
352
|
+
.bindPostIntent({
|
|
353
|
+
kind: "new-conversation",
|
|
354
|
+
foundation: created.foundation,
|
|
355
|
+
intent: storedIntent(prepared),
|
|
356
|
+
})
|
|
357
|
+
.pipe(Effect.mapError(storeFailure));
|
|
358
|
+
yield* Effect.sync(() => {
|
|
359
|
+
runtime.conversations.set(created.conversation.conversationId, created.conversation);
|
|
360
|
+
});
|
|
361
|
+
return created.conversation;
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
function activateIntent(runtime, prepared) {
|
|
365
|
+
return runtime.gate
|
|
366
|
+
.withPermits(1)(Effect.uninterruptible(activateIntentOnce(runtime, prepared)))
|
|
367
|
+
.pipe(Effect.flatMap((activation) => {
|
|
368
|
+
switch (activation.kind) {
|
|
369
|
+
case "ready":
|
|
370
|
+
return Effect.succeed(activation.completion);
|
|
371
|
+
case "waiting":
|
|
372
|
+
return Deferred.await(activation.barrier).pipe(Effect.zipRight(activateIntent(runtime, prepared)));
|
|
373
|
+
default: {
|
|
374
|
+
const exhaustive = activation;
|
|
375
|
+
return exhaustive;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}));
|
|
379
|
+
}
|
|
380
|
+
function activateIntentOnce(runtime, prepared) {
|
|
381
|
+
const { canonicalIntent, intent } = prepared;
|
|
382
|
+
return Effect.gen(function* () {
|
|
383
|
+
const barrier = currentRecoveryBarrier(runtime);
|
|
384
|
+
if (barrier !== undefined) {
|
|
385
|
+
return { kind: "waiting", barrier };
|
|
386
|
+
}
|
|
387
|
+
yield* bindPreparedIntent(runtime, prepared);
|
|
388
|
+
const retained = runtime.intents.get(intent.postId);
|
|
389
|
+
if (retained !== undefined) {
|
|
390
|
+
if (runtime.completedPostIds.has(intent.postId)) {
|
|
391
|
+
yield* Deferred.succeed(retained.completion, undefined);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
yield* proposeIntent(runtime, retained);
|
|
395
|
+
}
|
|
396
|
+
return {
|
|
397
|
+
kind: "ready",
|
|
398
|
+
completion: retained.completion,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
const completion = yield* Deferred.make();
|
|
402
|
+
const localIntent = {
|
|
403
|
+
intent,
|
|
404
|
+
canonicalIntent,
|
|
405
|
+
completion,
|
|
406
|
+
};
|
|
407
|
+
if (runtime.completedPostIds.has(intent.postId)) {
|
|
408
|
+
yield* Effect.sync(() => {
|
|
409
|
+
runtime.intents.set(intent.postId, localIntent);
|
|
410
|
+
});
|
|
411
|
+
yield* Deferred.succeed(completion, undefined);
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
yield* Effect.sync(() => {
|
|
415
|
+
runtime.intents.set(intent.postId, localIntent);
|
|
416
|
+
});
|
|
417
|
+
yield* proposeIntent(runtime, localIntent);
|
|
418
|
+
}
|
|
419
|
+
return { kind: "ready", completion };
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=engine-send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-send.js","sourceRoot":"","sources":["../../src/endpoint/engine-send.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAatE,OAAO,EAGL,SAAS,GAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAKL,oBAAoB,EAEpB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,oBAAoB,IAAI,0BAA0B,EAClD,UAAU,EAEV,UAAU,IAAI,gBAAgB,EAC9B,iBAAiB,EACjB,eAAe,EAEf,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,uBAAuB,GAAG;IAC9B,MAAM,EAAE,oBAAoB;IAC5B,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,oBAAoB;IAC7B,YAAY,EAAE,oBAAoB;IAClC,sBAAsB,EAAE,oBAAoB;IAC5C,eAAe,EAAE,oBAAoB;IACrC,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,oBAAoB;CAGlC,CAAC;AAEF,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,qBAAqB,GAAG,GAAc,EAAE,CAC5C,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAMnD,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,QAAyB,EAAE,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC;QACjD,YAAY;QACZ,aAAa;QACb,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACxC,QAAQ,CAAC,WAAW,EACpB,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EACxC,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACzE,cAAc,EAAE,eAAe;QAC/B,IAAI,EAAE,uBAAuB;QAC7B,cAAc;QACd,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,0BAA0B,CAClD,UAAU,EACV,OAAO,CAAC,KAAK,CAAC,uBAAuB,CACtC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,CAAC;AAEL,MAAM,iBAAiB,GAAG,CAAC,OAAsB,EAAE,KAAgB,EAAE,EAAE,CACrE,qBAAqB,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc;IAC5C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;IAChC,EAAE,EAAE,KAAK,CAAC,EAAE;CACb,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE5E,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,cAAoD,EACpD,OAAkC;IAElC,OAAO,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,OAAO,CAAC,KAAK,CAAC,KAAK;SAChB,eAAe,CAAC,KAAK,CAAC;SACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,cAAoD,EACpD,OAAkC;IAElC,OAAO,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACtC,cAAc;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,sBAAsB;KACvB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAsB,EACtB,UAAkB;IAElB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EACxD,MAAM,CAAC,MAAM,CACd,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAA+C;IAE/C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,yBAAyB;YAC5B,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC;QACjD,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA+C;IAE/C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,yBAAyB;YAC5B,OAAO,yBAAyB,CAAC;QACnC,KAAK,kBAAkB;YACrB,OAAO,kBAAkB,CAAC;QAC5B,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAClB,OAAsB,EACtB,YAAgC,EAChC,MAAoB,EACY,EAAE,CAClC,eAAe,CAAC;IACd,MAAM;IACN,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc;IACvC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;CACjD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CACnE,CACF,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAsB,EACtB,YAAgC,EAChC,MAA+C,EACf,EAAE,CAClC,eAAe,CAAC;IACd,MAAM;IACN,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc;IACvC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;CACjD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,aAAa,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,OAAO,CAAC,KAAK,CAAC,KAAK;KAChB,4BAA4B,CAC3B;IACE,cAAc,EAAE,YAAY,CAAC,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;CAChC,EACD,KAAK,CACN;KACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC,CACF,CACF,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC3E,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAgC,EAChC,QAAuB,EACS,EAAE,CAClC,iBAAiB,CAAC;IAChB,QAAQ;IACR,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc;IACvC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;CACjD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CACnE,CACF,CAAC;AAEJ,MAAM,cAAc,GAAG,CACrB,YAAgC,EAChC,MAAkB,EACoB,EAAE;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAe;gBACzB,cAAc,EAAE,eAAe;gBAC/B,IAAI,EAAE,SAAS;gBACf,cAAc,EAAE,YAAY,CAAC,cAAc;gBAC3C,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU;gBAC9C,MAAM;gBACN,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,MAAM;gBAClB,cAAc;aACf,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACtC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAe;YACzB,cAAc,EAAE,eAAe;YAC/B,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI;YAC5C,UAAU,EACR,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,qBAAqB;gBACvD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,UAAU;gBACzD,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU;YAC3C,kBAAkB,EAAE,IAAI,CAAC,UAAU;YACnC,UAAU,EAAE,MAAM;YAClB,cAAc;SACf,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAsB,EACtB,WAA6B,EACS,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAC5C,WAAW,CAAC,MAAM,CAAC,cAAc,CAClC,CAAC;IACF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACvC,CAAC;IACF,IAAI,WAAW,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;QAClD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE;QACtC,YAAY;QACZ,WAAW;QACX,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAS5C,SAAS,uBAAuB,CAC9B,OAAsB,EACtB,QAA4B;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAC3B,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE;YAC1C,cAAc,EAAE,eAAe;YAC/B,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,QAAQ,CAAC,WAAW,CAAC,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;QAChE,CAAC,CAAC,CACH,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,OAAsB,EACtB,QAA4B;IAE5B,OAAO,OAAO,CAAC,KAAK;SACjB,YAAY,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,UAAU;KAC7C,CAAC;SACD,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QAChC,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CACvD,CAAC;YACJ,SAAS,CAAC;gBACR,MAAM,UAAU,GAAU,cAAc,CAAC;gBACzC,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,MAAM,kBAAkB,GAAG,CACzB,OAAsB,EACtB,UAA8B,EAO9B,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CACvE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CACtC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC5D,cAAc,EAAE,eAAe;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,cAAc;QACpD,cAAc,EAAE,UAAU,CAAC,IAAI;QAC/B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;KAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACvC,CAAC;IACF,MAAM,UAAU,GAA2B;QACzC,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,cAAc;QACpD,cAAc,EAAE,UAAU,CAAC,IAAI;QAC/B,mBAAmB,EAAE,KAAK,CAAC,CAAC,eAAe,CACzC,0BAA0B,EAC1B,UAAU,CAAC,UAAU,CACtB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC9C,UAAU;QACV,eAAe,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACvC;KACF,CAAC;IACF,OAAO;QACL,UAAU;QACV,YAAY,EAAE;YACZ,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,cAAc;YACpD,UAAU;YACV,aAAa,EAAE,MAAM;SACtB;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,SAAS,oBAAoB,CAAC,KAAmC;IAC/D,MAAM,WAAW,GAAG;QAClB,4BAA4B,EAAE,qBAAqB;KAGpD,CAAC;IACF,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,iDAAiD;AACjD,MAAM,qBAAqB,GAAG,CAC5B,OAAsB,EACU,EAAE,CAClC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAC3C,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE,CACnD,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CACzC,MAAM,CAAC,WAAW,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,qBAAqB;IACpE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;CAClE,CAAC,CACH,CACF,EACD,MAAM,CAAC,MAAM,CACd,CAAC;AAcJ;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAsB,EACtB,KAAgB,EAC8B,EAAE,CAChD,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CACpC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;IAC9B,UAAU;CACX,CAAC,CAAC,CACJ,CACF,EACD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC/B,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAsB,EACtB,KAAgB,EAChB,OAA0B,EACL,EAAE,CACvB,QAAQ,CAAC,GAAG,CAAC,IAAI,CACf,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CACpB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,UAAU;IAChB,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,OAAO;IACP,EAAE;CACH,CAAC,CACH,CACF,CAAC;AAQJ,SAAS,aAAa,CACpB,OAAsB,EACtB,KAAgB;IAEhB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CACrC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACvC,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC3D,cAAc,EAAE,eAAe;YAC/B,IAAI,EAAE,aAAa;YACnB,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,cAAc;YACpD,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO;YACnD,MAAM;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,eAAe,CAC5C,gBAAgB,EAChB,MAAM,CACP,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,QAAsB;IAC1C,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc;QAC9C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc;QAC9C,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa;QAC5C,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;QAC9B,eAAe,EAAE,QAAQ,CAAC,eAAe;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,QAAsB;IAEtB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC3E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CACvD,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;iBACvB,cAAc,CAAC;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;aAC/B,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;aACvB,cAAc,CAAC;YACd,IAAI,EAAE,kBAAkB;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;SAC/B,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,aAAa,CAAC,GAAG,CACvB,OAAO,CAAC,YAAY,CAAC,cAAc,EACnC,OAAO,CAAC,YAAY,CACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAYD,SAAS,cAAc,CACrB,OAAsB,EACtB,QAAsB;IAEtB,OAAO,OAAO,CAAC,IAAI;SAChB,WAAW,CAAC,CAAC,CAAC,CACb,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAC9D;SACA,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC5B,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/C,KAAK,SAAS;gBACZ,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CACnD,CAAC;YACJ,SAAS,CAAC;gBACR,MAAM,UAAU,GAAU,UAAU,CAAC;gBACrC,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,QAAsB;IAEtB,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAA6B,CAAC;QACjE,CAAC;QACD,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,QAAQ,CAAC,UAAU;aACL,CAAC;QAC/B,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAwB,CAAC;QAChE,MAAM,WAAW,GAAqB;YACpC,MAAM;YACN,eAAe;YACf,UAAU;SACX,CAAC;QACF,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAA6B,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/** @file Private addressed-message engine contracts for daemon composition. */
|
|
2
|
+
import type { AgentId, AgentSigningAuthority, Ed25519PublicKey, SignedMessage, VerifiedAgentCard } from "@moltzap/identity";
|
|
3
|
+
import type { Registry } from "@moltzap/identity/registry";
|
|
4
|
+
import { type Context, type Deferred, type Duration, Effect, type Queue, type SubscriptionRef } from "effect";
|
|
5
|
+
import type { DeliveryAcknowledgeError, HistoryExportRecord, InboundMessage, ListenError, SendError, SendInput } from "../contract.js";
|
|
6
|
+
import type { ActionCore, ActionHash, CertifiedRecord, ConversationId, DecodedOuterBody, PostIntent, RecordHash, RouterAnchor, VerifiedMembership } from "./representation.js";
|
|
7
|
+
import type { RouterDiscontinuityReason, RouterIngressDisposition, RouterTailAnchor, RouterWorkerIngress, RouterWorkerPersistenceError, RouterWorkerRecovery, RouterWorkerRecoveryError, RouterWorkerSendError, RouterWorkerUnavailableError } from "./router-worker/index.js";
|
|
8
|
+
import type { DeliveryToken, EndpointStore } from "./store.js";
|
|
9
|
+
declare const EngineInitializationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
10
|
+
readonly _tag: "EngineInitializationError";
|
|
11
|
+
} & Readonly<A>;
|
|
12
|
+
/** Engine acquisition could not establish one coherent durable endpoint. */
|
|
13
|
+
export declare class EngineInitializationError extends EngineInitializationError_base<{
|
|
14
|
+
readonly reason: "identity" | "persistence" | "representation";
|
|
15
|
+
}> {
|
|
16
|
+
}
|
|
17
|
+
declare const EngineOutboundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
18
|
+
readonly _tag: "EngineOutboundError";
|
|
19
|
+
} & Readonly<A>;
|
|
20
|
+
/** Sending queued protocol traffic could not complete safely. */
|
|
21
|
+
export declare class EngineOutboundError extends EngineOutboundError_base<{
|
|
22
|
+
readonly reason: "network" | "persistence" | "representation";
|
|
23
|
+
}> {
|
|
24
|
+
}
|
|
25
|
+
/** One durable delivery decoded for the daemon's sole subscriber. */
|
|
26
|
+
export interface EnginePendingMessage {
|
|
27
|
+
readonly deliveryToken: DeliveryToken;
|
|
28
|
+
readonly message: InboundMessage;
|
|
29
|
+
}
|
|
30
|
+
/** Minimal Registry capability used to resolve immutable peer cards. */
|
|
31
|
+
export type EngineRegistryPort = Pick<Context.Tag.Service<typeof Registry>, "lookup">;
|
|
32
|
+
/** RouterWorker operations consumed by the engine's outbound queue. */
|
|
33
|
+
export interface EngineRouterPort {
|
|
34
|
+
readonly currentAnchor: Effect.Effect<RouterTailAnchor, RouterWorkerUnavailableError>;
|
|
35
|
+
readonly awaitAnchor: Effect.Effect<RouterTailAnchor>;
|
|
36
|
+
readonly send: (outboundId: string) => Effect.Effect<void, RouterWorkerSendError>;
|
|
37
|
+
}
|
|
38
|
+
/** Closed result of the endpoint's local action-signing policy. */
|
|
39
|
+
export type EngineActionPolicyDecision = "sign" | "refuse";
|
|
40
|
+
/** Verified action context presented to local task, norm, and trust policy. */
|
|
41
|
+
export interface EngineActionPolicyInput {
|
|
42
|
+
readonly action: ActionCore;
|
|
43
|
+
readonly membership: VerifiedMembership;
|
|
44
|
+
}
|
|
45
|
+
/** Endpoint-local policy invoked before creating an action signature. */
|
|
46
|
+
export type EngineActionPolicy = (input: EngineActionPolicyInput) => Effect.Effect<EngineActionPolicyDecision>;
|
|
47
|
+
/**
|
|
48
|
+
* Sink for the daemon's optional history export. Recording never fails and
|
|
49
|
+
* never blocks the protocol on its own outcome: an export that stops is the
|
|
50
|
+
* sink's business, recorded in the file, not the engine's.
|
|
51
|
+
*/
|
|
52
|
+
export interface HistoryExportPort {
|
|
53
|
+
readonly record: (record: HistoryExportRecord) => Effect.Effect<void>;
|
|
54
|
+
}
|
|
55
|
+
/** The export in place when the operator configured none: records vanish. */
|
|
56
|
+
export declare const noHistoryExport: HistoryExportPort;
|
|
57
|
+
/** Stable private dependencies for one endpoint protocol engine. */
|
|
58
|
+
export interface EndpointEngineInput {
|
|
59
|
+
readonly localAgentCard: VerifiedAgentCard;
|
|
60
|
+
readonly signingAuthority: AgentSigningAuthority;
|
|
61
|
+
readonly registrySignerPublicKey: Ed25519PublicKey;
|
|
62
|
+
readonly registry: EngineRegistryPort;
|
|
63
|
+
readonly store: EndpointStore;
|
|
64
|
+
readonly routerWorker: EngineRouterPort;
|
|
65
|
+
readonly actionPolicy: EngineActionPolicy;
|
|
66
|
+
/** Overrides `ROUTER_ATTACH_TIMEOUT`; tests bound the wait in milliseconds. */
|
|
67
|
+
readonly routerAttachTimeout?: Duration.Duration;
|
|
68
|
+
/** Where delivered and sent messages are recorded; `noHistoryExport` when the operator configured none. */
|
|
69
|
+
readonly historyExport: HistoryExportPort;
|
|
70
|
+
}
|
|
71
|
+
/** Stable private engine capability consumed by daemon composition. */
|
|
72
|
+
export interface EndpointEngine {
|
|
73
|
+
readonly send: (input: SendInput) => Effect.Effect<void, SendError>;
|
|
74
|
+
readonly readPendingMessages: () => Effect.Effect<readonly EnginePendingMessage[], ListenError>;
|
|
75
|
+
readonly acknowledgeMessage: (deliveryToken: DeliveryToken) => Effect.Effect<void, DeliveryAcknowledgeError>;
|
|
76
|
+
readonly acceptRouterIngress: (ingress: RouterWorkerIngress<DecodedOuterBody>) => Effect.Effect<RouterIngressDisposition, RouterWorkerPersistenceError>;
|
|
77
|
+
readonly acceptRecoveryIngress: (ingress: RouterWorkerIngress<DecodedOuterBody>) => Effect.Effect<RouterIngressDisposition, RouterWorkerPersistenceError>;
|
|
78
|
+
readonly recoverCertifiedHistory: (recovery: RouterWorkerRecovery) => Effect.Effect<void, RouterWorkerRecoveryError | RouterWorkerSendError>;
|
|
79
|
+
readonly drainOutbound: Effect.Effect<void, EngineOutboundError>;
|
|
80
|
+
readonly runOutbound: Effect.Effect<never, EngineOutboundError>;
|
|
81
|
+
readonly abandonVolatileFolds: (reason: RouterDiscontinuityReason) => Effect.Effect<void>;
|
|
82
|
+
}
|
|
83
|
+
/** One locally authored immutable post intent awaiting certification. */
|
|
84
|
+
export interface EnginePostIntent {
|
|
85
|
+
readonly intent: PostIntent;
|
|
86
|
+
readonly canonicalIntent: Uint8Array;
|
|
87
|
+
readonly completion: Deferred.Deferred<undefined, SendError>;
|
|
88
|
+
proposedActionHash?: ActionHash;
|
|
89
|
+
}
|
|
90
|
+
/** One locally complete history head. */
|
|
91
|
+
export interface EngineCertifiedHead {
|
|
92
|
+
readonly recordHash: RecordHash;
|
|
93
|
+
readonly record: CertifiedRecord;
|
|
94
|
+
}
|
|
95
|
+
/** Immutable membership with the endpoint's current durable position. */
|
|
96
|
+
export interface EngineConversation {
|
|
97
|
+
readonly conversationId: ConversationId;
|
|
98
|
+
readonly membership: VerifiedMembership;
|
|
99
|
+
currentAnchor: RouterAnchor;
|
|
100
|
+
head?: EngineCertifiedHead;
|
|
101
|
+
}
|
|
102
|
+
/** Volatile evidence fold for the selected action at one predecessor. */
|
|
103
|
+
export interface EngineActionFold {
|
|
104
|
+
readonly conversation: EngineConversation;
|
|
105
|
+
readonly action: ActionCore;
|
|
106
|
+
readonly actionHash: ActionHash;
|
|
107
|
+
readonly routerAnchor: RouterAnchor;
|
|
108
|
+
readonly actionEvidence: Map<AgentId, SignedMessage>;
|
|
109
|
+
readonly durabilityEvidence: Map<AgentId, SignedMessage>;
|
|
110
|
+
localActionEvidenceQueued: boolean;
|
|
111
|
+
actionCertifiedRecordQueued: boolean;
|
|
112
|
+
localDurabilityEvidenceQueued: boolean;
|
|
113
|
+
certifiedRecordQueued: boolean;
|
|
114
|
+
recordHash?: RecordHash;
|
|
115
|
+
certifiedRecord?: CertifiedRecord;
|
|
116
|
+
}
|
|
117
|
+
/** Shared acquired state used by addressed send and protocol ingress. */
|
|
118
|
+
export interface EngineRuntime {
|
|
119
|
+
readonly input: EndpointEngineInput;
|
|
120
|
+
readonly conversations: Map<ConversationId, EngineConversation>;
|
|
121
|
+
readonly intents: Map<string, EnginePostIntent>;
|
|
122
|
+
readonly completedPostIds: Set<string>;
|
|
123
|
+
readonly actionFolds: Map<ActionHash, EngineActionFold>;
|
|
124
|
+
readonly recordFolds: Map<RecordHash, EngineActionFold>;
|
|
125
|
+
readonly outbound: string[];
|
|
126
|
+
readonly outboundSignal: Queue.Queue<undefined>;
|
|
127
|
+
readonly gate: Effect.Semaphore;
|
|
128
|
+
readonly outboundGate: Effect.Semaphore;
|
|
129
|
+
readonly revision: SubscriptionRef.SubscriptionRef<number>;
|
|
130
|
+
}
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=engine-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-types.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @file Private addressed-message engine contracts for daemon composition. */
|
|
2
|
+
import { Data, Effect, } from "effect";
|
|
3
|
+
/** Engine acquisition could not establish one coherent durable endpoint. */
|
|
4
|
+
export class EngineInitializationError extends Data.TaggedError("EngineInitializationError") {
|
|
5
|
+
}
|
|
6
|
+
/** Sending queued protocol traffic could not complete safely. */
|
|
7
|
+
export class EngineOutboundError extends Data.TaggedError("EngineOutboundError") {
|
|
8
|
+
}
|
|
9
|
+
/** The export in place when the operator configured none: records vanish. */
|
|
10
|
+
export const noHistoryExport = Object.freeze({
|
|
11
|
+
record: () => Effect.void,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=engine-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-types.js","sourceRoot":"","sources":["../../src/endpoint/engine-types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAU/E,OAAO,EAEL,IAAI,EAGJ,MAAM,GAGP,MAAM,QAAQ,CAAC;AAiChB,4EAA4E;AAC5E,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAC7D,2BAA2B,CAG3B;CAAG;AAEL,iEAAiE;AACjE,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CACvD,qBAAqB,CAGrB;CAAG;AAiDL,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @file Private addressed-message engine acquisition and daemon seams. */
|
|
2
|
+
import { Effect, type Scope } from "effect";
|
|
3
|
+
import { type EndpointEngine, type EndpointEngineInput, EngineInitializationError } from "./engine-types.js";
|
|
4
|
+
/** Closed engine errors used by daemon composition. */
|
|
5
|
+
export { EngineInitializationError, EngineOutboundError, } from "./engine-types.js";
|
|
6
|
+
/** Private engine contracts retained behind the daemon boundary. */
|
|
7
|
+
export type { EndpointEngine, EndpointEngineInput, EnginePendingMessage, } from "./engine-types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Build one coherent private engine over registered identity and durable state.
|
|
10
|
+
* @param input Verified identity, storage, Registry, and Router dependencies.
|
|
11
|
+
* @returns A scoped engine whose recovered state is ready for protocol work.
|
|
12
|
+
*/
|
|
13
|
+
export declare const makeEndpointEngine: (input: EndpointEngineInput) => Effect.Effect<EndpointEngine, EngineInitializationError, Scope.Scope>;
|
|
14
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,EAAY,MAAM,EAAS,KAAK,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAe9E,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,yBAAyB,EAI1B,MAAM,mBAAmB,CAAC;AAoB3B,uDAAuD;AACvD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,oEAAoE;AACpE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAka3B;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UACtB,mBAAmB,KACzB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAKvB,CAAC"}
|