@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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The public Client is one addressed structural endpoint. Sends always
|
|
3
|
+
* create one fresh Client-owned intent, and inbound deliveries carry a certified
|
|
4
|
+
* direct or complete-group message plus transport-only acknowledgment.
|
|
5
|
+
*/
|
|
6
|
+
import type { DateTime, Effect, Scope, Stream } from "effect";
|
|
7
|
+
import type { acquireHarnessEndpoint, AgentAddress, ConnectError, Content, ContentPart, DeliveryAcknowledgeError, DirectMessage, GroupAddress, GroupMessage, HarnessEndpoint, HistoryExportRecord, InboundDelivery, InboundMessage, ListenError, MessageAddressInput, PostId, SendError, SendInput } from "./index.js";
|
|
8
|
+
type Equal<Left, Right> = [Left, Right] extends [Right, Left] ? true : false;
|
|
9
|
+
type Expect<Value extends true> = Value;
|
|
10
|
+
type ExpectedSendInput = Readonly<{
|
|
11
|
+
to: MessageAddressInput;
|
|
12
|
+
content: Content;
|
|
13
|
+
}>;
|
|
14
|
+
type ExpectedDirectMessage = Readonly<{
|
|
15
|
+
kind: "direct";
|
|
16
|
+
postId: PostId;
|
|
17
|
+
address: AgentAddress;
|
|
18
|
+
sender: AgentAddress;
|
|
19
|
+
content: Content;
|
|
20
|
+
}>;
|
|
21
|
+
type ExpectedGroupMessage = Readonly<{
|
|
22
|
+
kind: "group";
|
|
23
|
+
postId: PostId;
|
|
24
|
+
address: GroupAddress;
|
|
25
|
+
sender: AgentAddress;
|
|
26
|
+
members: readonly [
|
|
27
|
+
AgentAddress,
|
|
28
|
+
AgentAddress,
|
|
29
|
+
AgentAddress,
|
|
30
|
+
...AgentAddress[]
|
|
31
|
+
];
|
|
32
|
+
content: Content;
|
|
33
|
+
}>;
|
|
34
|
+
type ExpectedDelivery = Readonly<{
|
|
35
|
+
message: InboundMessage;
|
|
36
|
+
acknowledge: Effect.Effect<void, DeliveryAcknowledgeError>;
|
|
37
|
+
}>;
|
|
38
|
+
type ExpectedEndpoint = Readonly<{
|
|
39
|
+
send: (input: SendInput) => Effect.Effect<void, SendError>;
|
|
40
|
+
messages: Stream.Stream<InboundDelivery, ListenError>;
|
|
41
|
+
}>;
|
|
42
|
+
type SendInputIsExact = Expect<Equal<SendInput, ExpectedSendInput>>;
|
|
43
|
+
type DirectMessageIsExact = Expect<Equal<DirectMessage, ExpectedDirectMessage>>;
|
|
44
|
+
type GroupMessageIsExact = Expect<Equal<GroupMessage, ExpectedGroupMessage>>;
|
|
45
|
+
type InboundMessageIsExact = Expect<Equal<InboundMessage, DirectMessage | GroupMessage>>;
|
|
46
|
+
type DeliveryIsExact = Expect<Equal<InboundDelivery, ExpectedDelivery>>;
|
|
47
|
+
type EndpointIsExact = Expect<Equal<HarnessEndpoint, ExpectedEndpoint>>;
|
|
48
|
+
type ExpectedHistoryExportRecord = Readonly<{
|
|
49
|
+
kind: "inbound";
|
|
50
|
+
message: InboundMessage;
|
|
51
|
+
at: DateTime.Utc;
|
|
52
|
+
}> | Readonly<{
|
|
53
|
+
kind: "outbound";
|
|
54
|
+
to: MessageAddressInput;
|
|
55
|
+
content: Content;
|
|
56
|
+
outcome: Readonly<{
|
|
57
|
+
kind: "certified";
|
|
58
|
+
postId: PostId;
|
|
59
|
+
}> | Readonly<{
|
|
60
|
+
kind: "failed";
|
|
61
|
+
reason: SendError["reason"];
|
|
62
|
+
}>;
|
|
63
|
+
at: DateTime.Utc;
|
|
64
|
+
}> | Readonly<{
|
|
65
|
+
kind: "export-failed";
|
|
66
|
+
reason: string;
|
|
67
|
+
at: DateTime.Utc;
|
|
68
|
+
}>;
|
|
69
|
+
type HistoryExportRecordIsExact = Expect<Equal<HistoryExportRecord, ExpectedHistoryExportRecord>>;
|
|
70
|
+
type ContentIsNonempty = Expect<Content extends readonly [ContentPart, ...ContentPart[]] ? true : false>;
|
|
71
|
+
type AgentAddressIsInput = Expect<AgentAddress extends MessageAddressInput ? true : false>;
|
|
72
|
+
type GroupAddressIsInput = Expect<GroupAddress extends MessageAddressInput ? true : false>;
|
|
73
|
+
type SendReasonsAreExact = Expect<Equal<SendError["reason"], "invalid-address" | "unknown-agent" | "membership-invalid" | "content-invalid" | "not-registered" | "version-mismatch" | "certification-unavailable" | "persistence-failed" | "network-unavailable">>;
|
|
74
|
+
type ListenReasonsAreExact = Expect<Equal<ListenError["reason"], "already-listening" | "incompatible-daemon" | "transport-failed" | "decode-failed">>;
|
|
75
|
+
type AcknowledgeReasonsAreExact = Expect<Equal<DeliveryAcknowledgeError["reason"], "unknown-delivery" | "delivery-conflict" | "persistence-failed" | "transport-failed">>;
|
|
76
|
+
type ConnectReasonsAreExact = Expect<Equal<ConnectError["reason"], "transport-failed" | "decode-failed" | "incompatible-daemon">>;
|
|
77
|
+
type AcquisitionIsScoped = Expect<Equal<Parameters<typeof acquireHarnessEndpoint>, [endpoint: URL]>>;
|
|
78
|
+
type AcquisitionResultIsExact = Expect<Equal<ReturnType<typeof acquireHarnessEndpoint>, Effect.Effect<HarnessEndpoint, ConnectError, Scope.Scope>>>;
|
|
79
|
+
/** Compile-time witnesses for the accepted public Client boundary. */
|
|
80
|
+
export type HarnessEndpointCanaries = [
|
|
81
|
+
SendInputIsExact,
|
|
82
|
+
DirectMessageIsExact,
|
|
83
|
+
GroupMessageIsExact,
|
|
84
|
+
InboundMessageIsExact,
|
|
85
|
+
DeliveryIsExact,
|
|
86
|
+
EndpointIsExact,
|
|
87
|
+
ContentIsNonempty,
|
|
88
|
+
AgentAddressIsInput,
|
|
89
|
+
GroupAddressIsInput,
|
|
90
|
+
SendReasonsAreExact,
|
|
91
|
+
HistoryExportRecordIsExact,
|
|
92
|
+
ListenReasonsAreExact,
|
|
93
|
+
AcknowledgeReasonsAreExact,
|
|
94
|
+
ConnectReasonsAreExact,
|
|
95
|
+
AcquisitionIsScoped,
|
|
96
|
+
AcquisitionResultIsExact
|
|
97
|
+
];
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=contract.types-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.types-check.d.ts","sourceRoot":"","sources":["../src/contract.types-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The public Client is one addressed structural endpoint. Sends always
|
|
3
|
+
* create one fresh Client-owned intent, and inbound deliveries carry a certified
|
|
4
|
+
* direct or complete-group message plus transport-only acknowledgment.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=contract.types-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.types-check.js","sourceRoot":"","sources":["../src/contract.types-check.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** @file Exact daemon process configuration and redacted bootstrap material. */
|
|
2
|
+
import { AgentSigningAuthority, type Ed25519PublicKey as Ed25519PublicKeyValue } from "@moltzap/identity";
|
|
3
|
+
import { Effect, Redacted } from "effect";
|
|
4
|
+
/** Closed reason that daemon configuration cannot become startup authority. */
|
|
5
|
+
export type DaemonConfigurationFailure = "environment" | "agent-private-key-file" | "agent-private-key" | "admission-credential-file" | "admission-credential";
|
|
6
|
+
declare const DaemonConfigurationError_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 & {
|
|
7
|
+
readonly _tag: "DaemonConfigurationError";
|
|
8
|
+
} & Readonly<A>;
|
|
9
|
+
/** One non-diagnostic daemon configuration failure. */
|
|
10
|
+
export declare class DaemonConfigurationError extends DaemonConfigurationError_base<{
|
|
11
|
+
readonly reason: DaemonConfigurationFailure;
|
|
12
|
+
}> {
|
|
13
|
+
}
|
|
14
|
+
/** Exact non-secret values and redacted secret-file locations for one daemon. */
|
|
15
|
+
export interface DaemonProcessConfiguration {
|
|
16
|
+
readonly stateDirectory: string;
|
|
17
|
+
readonly mcpPort: number;
|
|
18
|
+
readonly registryOrigin: URL;
|
|
19
|
+
readonly registrySignerPublicKey: Ed25519PublicKeyValue;
|
|
20
|
+
readonly routerOrigin: URL;
|
|
21
|
+
readonly agentPrivateKeyFile: Redacted.Redacted;
|
|
22
|
+
readonly admissionCredentialFile: Redacted.Redacted;
|
|
23
|
+
/**
|
|
24
|
+
* File the daemon appends its delivered and sent messages to, one JSON
|
|
25
|
+
* line each, when the operator asks for that record.
|
|
26
|
+
*/
|
|
27
|
+
readonly historyExport?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Loaded private authority required by daemon registration and network calls. */
|
|
30
|
+
export interface DaemonBootstrap {
|
|
31
|
+
readonly configuration: DaemonProcessConfiguration;
|
|
32
|
+
readonly signingAuthority: AgentSigningAuthority;
|
|
33
|
+
readonly agentPublicKey: Ed25519PublicKeyValue;
|
|
34
|
+
readonly admissionCredential: Redacted.Redacted;
|
|
35
|
+
}
|
|
36
|
+
/** Loads exactly the seven required daemon process inputs and the optional export. */
|
|
37
|
+
export declare const loadDaemonProcessConfiguration: Effect.Effect<DaemonProcessConfiguration, DaemonConfigurationError>;
|
|
38
|
+
/**
|
|
39
|
+
* Reads exact secret bytes and constructs the configured Ed25519 authority.
|
|
40
|
+
*
|
|
41
|
+
* @param configuration Validated seven-input process configuration.
|
|
42
|
+
* @returns Redacted admission and opaque agent signing authority.
|
|
43
|
+
*/
|
|
44
|
+
export declare const loadDaemonBootstrap: (configuration: DaemonProcessConfiguration) => Effect.Effect<DaemonBootstrap, DaemonConfigurationError>;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/daemon/configuration.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EAErB,KAAK,gBAAgB,IAAI,qBAAqB,EAC/C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAgB,MAAM,EAAE,QAAQ,EAAU,MAAM,QAAQ,CAAC;AA8DhE,+EAA+E;AAC/E,MAAM,MAAM,0BAA0B,GAClC,aAAa,GACb,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,sBAAsB,CAAC;;;;AAE3B,uDAAuD;AACvD,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C,CAAC;CAAG;AAEL,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAChD,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACjD;AAMD,sFAAsF;AACtF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,CACxD,0BAA0B,EAC1B,wBAAwB,CAKzB,CAAC;AAwDF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,kBACf,0BAA0B,KACxC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAWT,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** @file Exact daemon process configuration and redacted bootstrap material. */
|
|
2
|
+
import { AgentSigningAuthority, Ed25519PublicKey, } from "@moltzap/identity";
|
|
3
|
+
import { Config, Data, Effect, Redacted, Schema } from "effect";
|
|
4
|
+
// eslint-disable-next-line agent-code-guard/prefer-effect-platform -- Bootstrap reads two configured Node files before the daemon composes its platform services.
|
|
5
|
+
import { readFile } from "node:fs/promises";
|
|
6
|
+
const canonicalUnsignedDecimal = Schema.String.pipe(Schema.pattern(/^(?:0|[1-9]\d*)$/u));
|
|
7
|
+
const port = canonicalUnsignedDecimal.pipe(Schema.compose(Schema.NumberFromString), Schema.int(), Schema.between(1, 65_535));
|
|
8
|
+
const configuredPath = Schema.String.pipe(Schema.minLength(1), Schema.filter((value) => !value.includes("\u0000")));
|
|
9
|
+
const isSerializedOrigin = (value) => {
|
|
10
|
+
if (!URL.canParse(value)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const parsed = new URL(value);
|
|
14
|
+
return ((parsed.protocol === "http:" || parsed.protocol === "https:") &&
|
|
15
|
+
value === parsed.origin);
|
|
16
|
+
};
|
|
17
|
+
const origin = Schema.String.pipe(Schema.filter(isSerializedOrigin), Schema.compose(Schema.URL));
|
|
18
|
+
const compactPublicKeyJson = Schema.String.pipe(Schema.pattern(/^\{"crv":"Ed25519","kty":"OKP","x":"[A-Za-z0-9_-]{43}"\}$/u), Schema.compose(Schema.parseJson(Ed25519PublicKey)));
|
|
19
|
+
const admissionCredential = Schema.String.pipe(Schema.minLength(8), Schema.maxLength(512), Schema.pattern(/^[A-Za-z0-9\-._~+/]+=*$/u));
|
|
20
|
+
const configuredValues = Config.all({
|
|
21
|
+
stateDirectory: Schema.Config("MOLTZAPD_STATE_DIRECTORY", configuredPath),
|
|
22
|
+
mcpPort: Schema.Config("MOLTZAPD_MCP_PORT", port),
|
|
23
|
+
registryOrigin: Schema.Config("MOLTZAPD_REGISTRY_ORIGIN", origin),
|
|
24
|
+
registrySignerPublicKey: Schema.Config("MOLTZAPD_REGISTRY_SIGNER_PUBLIC_KEY", compactPublicKeyJson),
|
|
25
|
+
routerOrigin: Schema.Config("MOLTZAPD_ROUTER_ORIGIN", origin),
|
|
26
|
+
agentPrivateKeyFile: Config.redacted(Schema.Config("MOLTZAPD_AGENT_PRIVATE_KEY_FILE", configuredPath)),
|
|
27
|
+
admissionCredentialFile: Config.redacted(Schema.Config("MOLTZAPD_ADMISSION_CREDENTIAL_FILE", configuredPath)),
|
|
28
|
+
historyExport: Schema.Config("MOLTZAPD_HISTORY_EXPORT", configuredPath).pipe(Config.withDefault(undefined)),
|
|
29
|
+
});
|
|
30
|
+
/** One non-diagnostic daemon configuration failure. */
|
|
31
|
+
export class DaemonConfigurationError extends Data.TaggedError("DaemonConfigurationError") {
|
|
32
|
+
}
|
|
33
|
+
const configurationError = (reason) => new DaemonConfigurationError({ reason });
|
|
34
|
+
/** Loads exactly the seven required daemon process inputs and the optional export. */
|
|
35
|
+
export const loadDaemonProcessConfiguration = configuredValues.pipe(Effect.map((configuration) => configuration), Effect.mapError(() => configurationError("environment")), Effect.withSpan("loadDaemonProcessConfiguration"));
|
|
36
|
+
const utf8Decoder = new TextDecoder("utf-8", {
|
|
37
|
+
fatal: true,
|
|
38
|
+
ignoreBOM: true,
|
|
39
|
+
});
|
|
40
|
+
const readExactUtf8 = (path, reason) => Effect.tryPromise({
|
|
41
|
+
try: () => readFile(Redacted.value(path)),
|
|
42
|
+
catch: () => configurationError(reason),
|
|
43
|
+
}).pipe(Effect.flatMap((bytes) => Effect.try({
|
|
44
|
+
try: () => utf8Decoder.decode(bytes),
|
|
45
|
+
catch: () => configurationError(reason),
|
|
46
|
+
})));
|
|
47
|
+
const loadSigningAuthority = (configuration) => readExactUtf8(configuration.agentPrivateKeyFile, "agent-private-key-file").pipe(Effect.flatMap((privateKey) => AgentSigningAuthority.fromPkcs8(Redacted.make(privateKey))), Effect.mapError((error) => error._tag === "DaemonConfigurationError"
|
|
48
|
+
? error
|
|
49
|
+
: configurationError("agent-private-key")));
|
|
50
|
+
const loadAdmissionCredential = (configuration) => readExactUtf8(configuration.admissionCredentialFile, "admission-credential-file").pipe(Effect.flatMap(Schema.decodeUnknown(admissionCredential)), Effect.map(Redacted.make), Effect.mapError((error) => error._tag === "DaemonConfigurationError"
|
|
51
|
+
? error
|
|
52
|
+
: configurationError("admission-credential")));
|
|
53
|
+
/**
|
|
54
|
+
* Reads exact secret bytes and constructs the configured Ed25519 authority.
|
|
55
|
+
*
|
|
56
|
+
* @param configuration Validated seven-input process configuration.
|
|
57
|
+
* @returns Redacted admission and opaque agent signing authority.
|
|
58
|
+
*/
|
|
59
|
+
export const loadDaemonBootstrap = (configuration) => Effect.gen(function* () {
|
|
60
|
+
const signingAuthority = yield* loadSigningAuthority(configuration);
|
|
61
|
+
const loadedAdmissionCredential = yield* loadAdmissionCredential(configuration);
|
|
62
|
+
return Object.freeze({
|
|
63
|
+
configuration,
|
|
64
|
+
signingAuthority,
|
|
65
|
+
agentPublicKey: AgentSigningAuthority.publicKey(signingAuthority),
|
|
66
|
+
admissionCredential: loadedAdmissionCredential,
|
|
67
|
+
});
|
|
68
|
+
}).pipe(Effect.withSpan("loadDaemonBootstrap"));
|
|
69
|
+
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/daemon/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** @file Private owner-authorized management over Registry and endpoint state. */
|
|
2
|
+
import { Registry } from "@moltzap/identity/registry";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
import type { EndpointStore } from "../endpoint/store.js";
|
|
5
|
+
import type { HarnessMcpOperations } from "../harness-mcp-wire.js";
|
|
6
|
+
import type { DaemonBootstrap } from "./configuration.js";
|
|
7
|
+
type ManagementOperation = "readStatus" | "register" | "searchAgents" | "searchConversations" | "readConversation";
|
|
8
|
+
/** Closed management-only projection consumed by the MCP presentation. */
|
|
9
|
+
export type DaemonManagementOperations = Pick<HarnessMcpOperations, ManagementOperation>;
|
|
10
|
+
/**
|
|
11
|
+
* Builds management operations with one captured Registry service.
|
|
12
|
+
*
|
|
13
|
+
* @param input Daemon bootstrap authority and its exclusively owned store.
|
|
14
|
+
* @param input.store Durable endpoint state owned by this daemon.
|
|
15
|
+
* @param input.bootstrap Fixed identity and service configuration.
|
|
16
|
+
* @returns Closed operations ready for the loopback MCP presentation.
|
|
17
|
+
*/
|
|
18
|
+
export declare const makeDaemonManagementOperations: (input: {
|
|
19
|
+
readonly store: EndpointStore;
|
|
20
|
+
readonly bootstrap: DaemonBootstrap;
|
|
21
|
+
}) => Effect.Effect<DaemonManagementOperations, never, Registry>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/daemon/management.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAOlF,OAAO,EACL,QAAQ,EAKT,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAsB,MAAM,EAAU,MAAM,QAAQ,CAAC;AAC5D,OAAO,KAAK,EAEV,aAAa,EAKd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AASnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA2B1D,KAAK,mBAAmB,GACpB,YAAY,GACZ,UAAU,GACV,cAAc,GACd,qBAAqB,GACrB,kBAAkB,CAAC;AAwDvB,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,oBAAoB,EACpB,mBAAmB,CACpB,CAAC;AA8wBF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,UAAW;IACpD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,KAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,EAAE,QAAQ,CAWD,CAAC"}
|