@moltzap/client 2026.812.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-server.d.ts → harness-mcp-http.d.ts} +9 -8
- package/dist/harness-mcp-http.d.ts.map +1 -0
- package/dist/{harness-mcp-server.js → harness-mcp-http.js} +38 -60
- 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 +24 -49
- package/dist/harness-mcp-wire.d.ts.map +1 -1
- package/dist/harness-mcp-wire.js +381 -124
- package/dist/harness-mcp-wire.js.map +1 -1
- package/dist/index.d.ts +4 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -10
- 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 +24 -52
- 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 -16
- package/dist/channel-base/index.js.map +0 -1
- package/dist/channel-core-enrichment.d.ts +0 -38
- package/dist/channel-core-enrichment.d.ts.map +0 -1
- package/dist/channel-core-enrichment.js +0 -217
- 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 -306
- package/dist/channel-core.d.ts.map +0 -1
- package/dist/channel-core.js +0 -365
- package/dist/channel-core.js.map +0 -1
- package/dist/config.d.ts +0 -33
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -51
- package/dist/config.js.map +0 -1
- package/dist/config.test-utils.d.ts +0 -24
- package/dist/config.test-utils.d.ts.map +0 -1
- package/dist/config.test-utils.js +0 -57
- package/dist/config.test-utils.js.map +0 -1
- package/dist/harness/client-runtime.d.ts +0 -31
- package/dist/harness/client-runtime.d.ts.map +0 -1
- package/dist/harness/client-runtime.js +0 -121
- 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 -301
- package/dist/harness/runtime.d.ts.map +0 -1
- package/dist/harness/runtime.js +0 -165
- package/dist/harness/runtime.js.map +0 -1
- package/dist/harness-client.d.ts +0 -47
- package/dist/harness-client.d.ts.map +0 -1
- package/dist/harness-client.js +0 -76
- package/dist/harness-client.js.map +0 -1
- package/dist/harness-context-projection.d.ts +0 -35
- package/dist/harness-context-projection.d.ts.map +0 -1
- package/dist/harness-context-projection.js +0 -123
- package/dist/harness-context-projection.js.map +0 -1
- package/dist/harness-mcp-server.d.ts.map +0 -1
- package/dist/harness-mcp-server.js.map +0 -1
- package/dist/local-paths.d.ts +0 -11
- package/dist/local-paths.d.ts.map +0 -1
- package/dist/local-paths.js +0 -21
- package/dist/local-paths.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-catalog.d.ts +0 -35
- package/dist/moltzapd-catalog.d.ts.map +0 -1
- package/dist/moltzapd-catalog.js +0 -117
- package/dist/moltzapd-catalog.js.map +0 -1
- package/dist/moltzapd-child-ipc.d.ts +0 -26
- package/dist/moltzapd-child-ipc.d.ts.map +0 -1
- package/dist/moltzapd-child-ipc.js +0 -31
- package/dist/moltzapd-child-ipc.js.map +0 -1
- package/dist/moltzapd-child.d.ts +0 -55
- package/dist/moltzapd-child.d.ts.map +0 -1
- package/dist/moltzapd-child.js +0 -225
- package/dist/moltzapd-child.js.map +0 -1
- package/dist/moltzapd-main.d.ts +0 -3
- package/dist/moltzapd-main.d.ts.map +0 -1
- package/dist/moltzapd-main.js +0 -18
- package/dist/moltzapd-main.js.map +0 -1
- package/dist/moltzapd-registration.d.ts +0 -40
- package/dist/moltzapd-registration.d.ts.map +0 -1
- package/dist/moltzapd-registration.js +0 -59
- package/dist/moltzapd-registration.js.map +0 -1
- package/dist/moltzapd.d.ts +0 -85
- package/dist/moltzapd.d.ts.map +0 -1
- package/dist/moltzapd.js +0 -150
- 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/notification/trace.d.ts +0 -10
- package/dist/notification/trace.d.ts.map +0 -1
- package/dist/notification/trace.js +0 -34
- package/dist/notification/trace.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/presentation/index.d.ts +0 -3
- package/dist/presentation/index.d.ts.map +0 -1
- package/dist/presentation/index.js +0 -3
- package/dist/presentation/index.js.map +0 -1
- package/dist/presentation/state.d.ts +0 -77
- package/dist/presentation/state.d.ts.map +0 -1
- package/dist/presentation/state.js +0 -211
- package/dist/presentation/state.js.map +0 -1
- package/dist/profile.d.ts +0 -106
- package/dist/profile.d.ts.map +0 -1
- package/dist/profile.js +0 -171
- package/dist/profile.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.d.ts +0 -228
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -485
- 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 -82
- 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 -56
- package/dist/test-utils/index.d.ts.map +0 -1
- package/dist/test-utils/index.js +0 -67
- package/dist/test-utils/index.js.map +0 -1
- package/dist/test-utils/process/reserve-port.d.ts +0 -20
- package/dist/test-utils/process/reserve-port.d.ts.map +0 -1
- package/dist/test-utils/process/reserve-port.js +0 -41
- package/dist/test-utils/process/reserve-port.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,210 @@
|
|
|
1
|
+
/** @file Record certification, evidence persistence, and host projection. */
|
|
2
|
+
import { MOLTZAP_VERSION, SignedMessage, } from "@moltzap/identity";
|
|
3
|
+
import { DateTime, Effect, Schema } from "effect";
|
|
4
|
+
import { AgentAddress, GroupAddress, InboundMessage, } from "../contract.js";
|
|
5
|
+
import { ClientRepresentationError, compareAgentIds, encodeCanonical, hashAnchor, hashRecord, RecordCore as RecordCoreSchema, } from "./representation.js";
|
|
6
|
+
const compareAscii = (left, right) => {
|
|
7
|
+
const length = Math.min(left.length, right.length);
|
|
8
|
+
for (let index = 0; index < length; index += 1) {
|
|
9
|
+
const difference = left.charCodeAt(index) - right.charCodeAt(index);
|
|
10
|
+
if (difference !== 0) {
|
|
11
|
+
return difference;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return left.length - right.length;
|
|
15
|
+
};
|
|
16
|
+
function requireNonEmpty(values) {
|
|
17
|
+
const first = values[0];
|
|
18
|
+
if (first === undefined) {
|
|
19
|
+
return Effect.fail(representationFailure());
|
|
20
|
+
}
|
|
21
|
+
return Effect.succeed([first, ...values.slice(1)]);
|
|
22
|
+
}
|
|
23
|
+
function representationFailure() {
|
|
24
|
+
return new ClientRepresentationError();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the immutable Router anchor bound when one action fold is created.
|
|
28
|
+
* @param fold Selected action and its action-specific Router anchor.
|
|
29
|
+
* @returns The canonical anchor hash committed by the record core.
|
|
30
|
+
*/
|
|
31
|
+
export const recordAnchorHash = (fold) => fold.action.kind === "GENESIS"
|
|
32
|
+
? hashAnchor(fold.action.anchor)
|
|
33
|
+
: Effect.succeed(fold.action.anchorHash);
|
|
34
|
+
/**
|
|
35
|
+
* Encode signer evidence in canonical decoded-AgentId order.
|
|
36
|
+
* @param evidence Verified signer messages keyed by signer identity.
|
|
37
|
+
* @returns Canonically ordered nonempty encoded evidence.
|
|
38
|
+
*/
|
|
39
|
+
const encodeOrderedEvidence = (evidence) => {
|
|
40
|
+
const messages = [...evidence.values()].sort((left, right) => compareAgentIds(left.senderAgentId, right.senderAgentId));
|
|
41
|
+
return Effect.forEach(messages, (message) => Schema.encode(SignedMessage)(message).pipe(Effect.mapError(representationFailure)), { concurrency: 1 }).pipe(Effect.flatMap(requireNonEmpty));
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Convert one verified inner signature into its durable evidence row.
|
|
45
|
+
* @param conversationId Private conversation that owns the evidence.
|
|
46
|
+
* @param kind Evidence statement family retained by the store.
|
|
47
|
+
* @param subjectId Hash named by the evidence statement.
|
|
48
|
+
* @param message Verified self-addressed evidence message.
|
|
49
|
+
* @returns Canonical durable evidence without changing its signer bytes.
|
|
50
|
+
*/
|
|
51
|
+
export const protocolEvidence = (conversationId, kind, subjectId, message) => encodeCanonical(SignedMessage, message).pipe(Effect.map((canonicalEvidence) => ({
|
|
52
|
+
conversationId,
|
|
53
|
+
kind,
|
|
54
|
+
subjectId,
|
|
55
|
+
evidenceKey: message.senderAgentId,
|
|
56
|
+
canonicalEvidence,
|
|
57
|
+
})));
|
|
58
|
+
/**
|
|
59
|
+
* Build the action-certified record after its threshold is reached.
|
|
60
|
+
* @param fold In-memory fold containing verified action evidence.
|
|
61
|
+
* @param anchorHash Completed anchor bound by the record core.
|
|
62
|
+
* @returns One evidence-independent record core with its action certificate.
|
|
63
|
+
*/
|
|
64
|
+
export const makeActionCertifiedRecord = (fold, anchorHash) => Effect.gen(function* () {
|
|
65
|
+
const signatures = yield* encodeOrderedEvidence(fold.actionEvidence);
|
|
66
|
+
const recordCore = {
|
|
67
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
68
|
+
kind: "record_core",
|
|
69
|
+
membership: fold.conversation.membership.descriptor,
|
|
70
|
+
anchorHash,
|
|
71
|
+
action: fold.action,
|
|
72
|
+
actionHash: fold.actionHash,
|
|
73
|
+
};
|
|
74
|
+
const actionCertifiedRecord = {
|
|
75
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
76
|
+
kind: "action_certified_record",
|
|
77
|
+
recordHash: yield* hashRecord(recordCore),
|
|
78
|
+
recordCore,
|
|
79
|
+
routerAnchor: fold.routerAnchor,
|
|
80
|
+
actionCertificate: {
|
|
81
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
82
|
+
kind: "action_certificate",
|
|
83
|
+
actionHash: fold.actionHash,
|
|
84
|
+
signatures,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
return actionCertifiedRecord;
|
|
88
|
+
}).pipe(Effect.withSpan("makeActionCertifiedRecord"));
|
|
89
|
+
/**
|
|
90
|
+
* Add a durability certificate without changing the certified record hash.
|
|
91
|
+
* @param actionCertifiedRecord Action-certified core being finalized.
|
|
92
|
+
* @param fold In-memory fold containing verified durability evidence.
|
|
93
|
+
* @returns One complete certified record with mergeable durability votes.
|
|
94
|
+
*/
|
|
95
|
+
export const makeCertifiedRecord = (actionCertifiedRecord, fold) => encodeOrderedEvidence(fold.durabilityEvidence).pipe(Effect.map((votes) => {
|
|
96
|
+
const certifiedRecord = {
|
|
97
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
98
|
+
kind: "certified_record",
|
|
99
|
+
actionCertifiedRecord,
|
|
100
|
+
durabilityCertificate: {
|
|
101
|
+
moltzapVersion: MOLTZAP_VERSION,
|
|
102
|
+
kind: "durability_certificate",
|
|
103
|
+
recordHash: actionCertifiedRecord.recordHash,
|
|
104
|
+
votes,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
return certifiedRecord;
|
|
108
|
+
}));
|
|
109
|
+
/**
|
|
110
|
+
* Convert one verified record core to the store's evidence-free staging row.
|
|
111
|
+
* @param record Verified action-certified record from the protocol fold.
|
|
112
|
+
* @returns Canonical evidence-free row used for atomic staging.
|
|
113
|
+
*/
|
|
114
|
+
export const stagedRecord = (record) => {
|
|
115
|
+
const action = record.recordCore.action;
|
|
116
|
+
return encodeCanonical(RecordCoreSchema, record.recordCore).pipe(Effect.map((canonicalRecordCore) => ({
|
|
117
|
+
conversationId: action.conversationId,
|
|
118
|
+
recordHash: record.recordHash,
|
|
119
|
+
...(action.previousRecordHash === null
|
|
120
|
+
? {}
|
|
121
|
+
: { previousRecordHash: action.previousRecordHash }),
|
|
122
|
+
membershipHash: action.kind === "GENESIS"
|
|
123
|
+
? action.postIntent.membershipHash
|
|
124
|
+
: action.membershipHash,
|
|
125
|
+
anchorHash: record.recordCore.anchorHash,
|
|
126
|
+
actionHash: record.recordCore.actionHash,
|
|
127
|
+
authorAgentId: action.postIntent.authorAgentId,
|
|
128
|
+
postId: action.postIntent.postId,
|
|
129
|
+
canonicalRecordCore,
|
|
130
|
+
})));
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Convert a complete wire record into one complete store promotion row.
|
|
134
|
+
* @param record Complete certified wire record.
|
|
135
|
+
* @param fold In-memory fold retaining verified signer messages.
|
|
136
|
+
* @returns Store promotion data with separate action and durability evidence.
|
|
137
|
+
*/
|
|
138
|
+
export const storedCertifiedRecord = (record, fold) => Effect.gen(function* () {
|
|
139
|
+
const staged = yield* stagedRecord(record.actionCertifiedRecord);
|
|
140
|
+
const actionEvidence = yield* Effect.forEach([...fold.actionEvidence.values()], (message) => protocolEvidence(staged.conversationId, "action", staged.actionHash, message), { concurrency: 1 });
|
|
141
|
+
const durabilityEvidence = yield* Effect.forEach([...fold.durabilityEvidence.values()], (message) => protocolEvidence(staged.conversationId, "durability", staged.recordHash, message), { concurrency: 1 });
|
|
142
|
+
return { ...staged, actionEvidence, durabilityEvidence };
|
|
143
|
+
}).pipe(Effect.withSpan("storedCertifiedRecord"));
|
|
144
|
+
const addressFor = (agentName) => Schema.decodeUnknown(AgentAddress)(`agent:${agentName}`).pipe(Effect.mapError(representationFailure));
|
|
145
|
+
const projectGroupMessage = (conversation, intent, sender) => Effect.gen(function* () {
|
|
146
|
+
const names = conversation.membership.members
|
|
147
|
+
.map((member) => member.agentName)
|
|
148
|
+
.sort(compareAscii);
|
|
149
|
+
const address = yield* Schema.decodeUnknown(GroupAddress)(`group:${names.join(",")}`).pipe(Effect.mapError(representationFailure));
|
|
150
|
+
const members = yield* Effect.forEach(names, addressFor, {
|
|
151
|
+
concurrency: 1,
|
|
152
|
+
});
|
|
153
|
+
const first = members[0];
|
|
154
|
+
const second = members[1];
|
|
155
|
+
const third = members[2];
|
|
156
|
+
if (first === undefined || second === undefined || third === undefined) {
|
|
157
|
+
return yield* Effect.fail(representationFailure());
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
kind: "group",
|
|
161
|
+
postId: intent.postId,
|
|
162
|
+
address,
|
|
163
|
+
sender,
|
|
164
|
+
members: [first, second, third, ...members.slice(3)],
|
|
165
|
+
content: intent.content,
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
/**
|
|
169
|
+
* Project one remote record to its exact host-visible addressed message.
|
|
170
|
+
* @param conversation Verified local conversation state and member cards.
|
|
171
|
+
* @param record Complete remote-authored certified record.
|
|
172
|
+
* @returns Canonical direct or group message for pending Client delivery.
|
|
173
|
+
*/
|
|
174
|
+
const projectInboundMessage = (conversation, record) => Effect.gen(function* () {
|
|
175
|
+
const intent = record.actionCertifiedRecord.recordCore.action.postIntent;
|
|
176
|
+
const author = conversation.membership.members.find((member) => member.agentId === intent.authorAgentId);
|
|
177
|
+
if (author === undefined) {
|
|
178
|
+
return yield* Effect.fail(representationFailure());
|
|
179
|
+
}
|
|
180
|
+
const sender = yield* addressFor(author.agentName);
|
|
181
|
+
if (conversation.membership.members.length === 2) {
|
|
182
|
+
const directMessage = {
|
|
183
|
+
kind: "direct",
|
|
184
|
+
postId: intent.postId,
|
|
185
|
+
address: sender,
|
|
186
|
+
sender,
|
|
187
|
+
content: intent.content,
|
|
188
|
+
};
|
|
189
|
+
return directMessage;
|
|
190
|
+
}
|
|
191
|
+
return yield* projectGroupMessage(conversation, intent, sender);
|
|
192
|
+
}).pipe(Effect.withSpan("projectInboundMessage"));
|
|
193
|
+
/**
|
|
194
|
+
* Encode the remote projection atomically retained during promotion.
|
|
195
|
+
* The recipient is the local agent that owns the pending delivery, which
|
|
196
|
+
* `AgentId` cannot express and nothing here checks. The result carries both
|
|
197
|
+
* the canonical input that record promotion commits atomically and the
|
|
198
|
+
* decoded message it was encoded from.
|
|
199
|
+
*/
|
|
200
|
+
export const inboundDelivery = (conversation, record, recipientAgentId) => projectInboundMessage(conversation, record).pipe(Effect.flatMap((message) => encodeCanonical(InboundMessage, message).pipe(Effect.map((canonicalMessage) => ({
|
|
201
|
+
input: { recipientAgentId, canonicalMessage },
|
|
202
|
+
message,
|
|
203
|
+
})))));
|
|
204
|
+
/**
|
|
205
|
+
* Record one durable inbound delivery in the history export: exactly the
|
|
206
|
+
* host-visible message the store now holds. When no export is configured the
|
|
207
|
+
* no-op port records nothing.
|
|
208
|
+
*/
|
|
209
|
+
export const exportInbound = (runtime, message) => DateTime.now.pipe(Effect.flatMap((at) => runtime.input.historyExport.record({ kind: "inbound", message, at })));
|
|
210
|
+
//# sourceMappingURL=engine-durability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-durability.js","sourceRoot":"","sources":["../../src/endpoint/engine-durability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** @file Address resolution, immutable intent binding, and proposal creation. */
|
|
2
|
+
import { SignedMessage } from "@moltzap/identity";
|
|
3
|
+
import { Deferred, Effect } from "effect";
|
|
4
|
+
import type { EngineConversation, EnginePostIntent, EngineRuntime } from "./engine-types.js";
|
|
5
|
+
import { type HistoryExportRecord, type PostId, SendError, type SendInput } from "../contract.js";
|
|
6
|
+
import { type ActionCertifiedRecord, type ActionHash, type CertifiedRecord } from "./representation.js";
|
|
7
|
+
/**
|
|
8
|
+
* Attach a certified record packet to its durable dissemination obligation.
|
|
9
|
+
* @param runtime Engine state and local signing authority.
|
|
10
|
+
* @param conversation Verified conversation and fixed-member recipients.
|
|
11
|
+
* @param packet Record packet whose state transition retained the obligation.
|
|
12
|
+
* @returns Completion after the exact outer envelope is durably attached.
|
|
13
|
+
*/
|
|
14
|
+
export declare const queueCertifiedPacket: (runtime: EngineRuntime, conversation: EngineConversation, packet: ActionCertifiedRecord | CertifiedRecord) => Effect.Effect<void, SendError>;
|
|
15
|
+
/**
|
|
16
|
+
* Queue stable inner evidence without changing its signer attribution.
|
|
17
|
+
* @param runtime Engine state and local signing authority.
|
|
18
|
+
* @param conversation Verified conversation and fixed-member recipients.
|
|
19
|
+
* @param evidence Stable self-addressed evidence message.
|
|
20
|
+
* @returns Completion after the complete outer message is durably staged.
|
|
21
|
+
*/
|
|
22
|
+
export declare const queueEvidence: (runtime: EngineRuntime, conversation: EngineConversation, evidence: SignedMessage) => Effect.Effect<void, SendError>;
|
|
23
|
+
/**
|
|
24
|
+
* Rebase one unchanged local intent against the conversation's current head.
|
|
25
|
+
* @param runtime Current engine state and protocol dependencies.
|
|
26
|
+
* @param localIntent Durable immutable post intent awaiting certification.
|
|
27
|
+
* @returns The predecessor-bound action hash proposed for this attempt.
|
|
28
|
+
*/
|
|
29
|
+
export declare const proposeIntent: (runtime: EngineRuntime, localIntent: EnginePostIntent) => Effect.Effect<ActionHash, SendError>;
|
|
30
|
+
/** One durably bound send: its minted identity and its completion latch. */
|
|
31
|
+
export interface PreparedSendHandle {
|
|
32
|
+
readonly postId: PostId;
|
|
33
|
+
readonly completion: Deferred.Deferred<undefined, SendError>;
|
|
34
|
+
}
|
|
35
|
+
/** How one completed `send` invocation is recorded in the history export. */
|
|
36
|
+
export type SendExportOutcome = Extract<HistoryExportRecord, {
|
|
37
|
+
readonly kind: "outbound";
|
|
38
|
+
}>["outcome"];
|
|
39
|
+
/**
|
|
40
|
+
* Persist an addressed intent and return its durable completion latch.
|
|
41
|
+
* The latch completes when the minted post becomes locally certified.
|
|
42
|
+
*/
|
|
43
|
+
export declare const prepareSend: (runtime: EngineRuntime, input: SendInput) => Effect.Effect<PreparedSendHandle, SendError>;
|
|
44
|
+
/**
|
|
45
|
+
* Record one completed `send` invocation in the history export, keeping the
|
|
46
|
+
* host's addressed input as it was given. When no export is configured the
|
|
47
|
+
* no-op port records nothing.
|
|
48
|
+
*/
|
|
49
|
+
export declare const exportSend: (runtime: EngineRuntime, input: SendInput, outcome: SendExportOutcome) => Effect.Effect<void>;
|
|
50
|
+
//# sourceMappingURL=engine-send.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-send.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine-send.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAY,QAAQ,EAAY,MAAM,EAAU,MAAM,QAAQ,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,SAAS,EACT,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,UAAU,EACf,KAAK,eAAe,EAgBrB,MAAM,qBAAqB,CAAC;AAwL7B;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,YACtB,aAAa,gBACR,kBAAkB,UACxB,qBAAqB,GAAG,eAAe,KAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAyB7B,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,YACf,aAAa,gBACR,kBAAkB,YACtB,aAAa,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAW7B,CAAC;AAkDJ;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YACf,aAAa,eACT,gBAAgB,KAC5B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAsBK,CAAC;AAsI5C,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAC9D;AAED,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,mBAAmB,EACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAC9B,CAAC,SAAS,CAAC,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,WAAW,YACb,aAAa,SACf,SAAS,KACf,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAY3C,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,UAAU,YACZ,aAAa,SACf,SAAS,WACP,iBAAiB,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAWlB,CAAC"}
|