@moltzap/client 2026.922.3 → 2026.1001.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.
Files changed (124) hide show
  1. package/README.md +23 -7
  2. package/dist/client-runtime.d.ts.map +1 -1
  3. package/dist/client-runtime.js +28 -11
  4. package/dist/client-runtime.js.map +1 -1
  5. package/dist/contract.d.ts +440 -57
  6. package/dist/contract.d.ts.map +1 -1
  7. package/dist/contract.js +256 -18
  8. package/dist/contract.js.map +1 -1
  9. package/dist/contract.types-check.d.ts +109 -13
  10. package/dist/contract.types-check.d.ts.map +1 -1
  11. package/dist/contract.types-check.js +11 -3
  12. package/dist/contract.types-check.js.map +1 -1
  13. package/dist/daemon/configuration.d.ts +18 -6
  14. package/dist/daemon/configuration.d.ts.map +1 -1
  15. package/dist/daemon/configuration.js +15 -9
  16. package/dist/daemon/configuration.js.map +1 -1
  17. package/dist/daemon/management.d.ts.map +1 -1
  18. package/dist/daemon/management.js +2 -0
  19. package/dist/daemon/management.js.map +1 -1
  20. package/dist/daemon/registration.d.ts +18 -3
  21. package/dist/daemon/registration.d.ts.map +1 -1
  22. package/dist/daemon/registration.js +17 -2
  23. package/dist/daemon/registration.js.map +1 -1
  24. package/dist/daemon/runtime/activation.d.ts +1 -1
  25. package/dist/daemon/runtime/activation.d.ts.map +1 -1
  26. package/dist/daemon/runtime/controller.d.ts +1 -1
  27. package/dist/daemon/runtime/controller.d.ts.map +1 -1
  28. package/dist/daemon/runtime/controller.js +44 -10
  29. package/dist/daemon/runtime/controller.js.map +1 -1
  30. package/dist/daemon/runtime/history-export.d.ts +11 -1
  31. package/dist/daemon/runtime/history-export.d.ts.map +1 -1
  32. package/dist/daemon/runtime/history-export.js +4 -0
  33. package/dist/daemon/runtime/history-export.js.map +1 -1
  34. package/dist/daemon/runtime/index.d.ts.map +1 -1
  35. package/dist/daemon/runtime/index.js +1 -2
  36. package/dist/daemon/runtime/index.js.map +1 -1
  37. package/dist/daemon/runtime/pending-delivery.d.ts +49 -0
  38. package/dist/daemon/runtime/pending-delivery.d.ts.map +1 -0
  39. package/dist/daemon/runtime/pending-delivery.js +115 -0
  40. package/dist/daemon/runtime/pending-delivery.js.map +1 -0
  41. package/dist/daemon/runtime/protocol.d.ts +20 -5
  42. package/dist/daemon/runtime/protocol.d.ts.map +1 -1
  43. package/dist/daemon/runtime/protocol.js +58 -24
  44. package/dist/daemon/runtime/protocol.js.map +1 -1
  45. package/dist/endpoint/addressing/index.d.ts +22 -1
  46. package/dist/endpoint/addressing/index.d.ts.map +1 -1
  47. package/dist/endpoint/addressing/index.js +50 -26
  48. package/dist/endpoint/addressing/index.js.map +1 -1
  49. package/dist/endpoint/collective/operation.d.ts +123 -0
  50. package/dist/endpoint/collective/operation.d.ts.map +1 -0
  51. package/dist/endpoint/collective/operation.js +784 -0
  52. package/dist/endpoint/collective/operation.js.map +1 -0
  53. package/dist/endpoint/collective/shared-answers.d.ts +78 -0
  54. package/dist/endpoint/collective/shared-answers.d.ts.map +1 -0
  55. package/dist/endpoint/collective/shared-answers.js +62 -0
  56. package/dist/endpoint/collective/shared-answers.js.map +1 -0
  57. package/dist/endpoint/collective/validation.d.ts +49 -0
  58. package/dist/endpoint/collective/validation.d.ts.map +1 -0
  59. package/dist/endpoint/collective/validation.js +99 -0
  60. package/dist/endpoint/collective/validation.js.map +1 -0
  61. package/dist/endpoint/collective/wire.d.ts +176 -0
  62. package/dist/endpoint/collective/wire.d.ts.map +1 -0
  63. package/dist/endpoint/collective/wire.js +181 -0
  64. package/dist/endpoint/collective/wire.js.map +1 -0
  65. package/dist/endpoint/engine-durability.d.ts +3 -17
  66. package/dist/endpoint/engine-durability.d.ts.map +1 -1
  67. package/dist/endpoint/engine-durability.js +3 -14
  68. package/dist/endpoint/engine-durability.js.map +1 -1
  69. package/dist/endpoint/engine-send.d.ts +14 -16
  70. package/dist/endpoint/engine-send.d.ts.map +1 -1
  71. package/dist/endpoint/engine-send.js +16 -20
  72. package/dist/endpoint/engine-send.js.map +1 -1
  73. package/dist/endpoint/engine-types.d.ts +32 -15
  74. package/dist/endpoint/engine-types.d.ts.map +1 -1
  75. package/dist/endpoint/engine-types.js +1 -5
  76. package/dist/endpoint/engine-types.js.map +1 -1
  77. package/dist/endpoint/engine.d.ts +1 -1
  78. package/dist/endpoint/engine.d.ts.map +1 -1
  79. package/dist/endpoint/engine.js +44 -27
  80. package/dist/endpoint/engine.js.map +1 -1
  81. package/dist/endpoint/protocol/index.d.ts.map +1 -1
  82. package/dist/endpoint/protocol/index.js +5 -8
  83. package/dist/endpoint/protocol/index.js.map +1 -1
  84. package/dist/endpoint/recovery/index.d.ts +5 -0
  85. package/dist/endpoint/recovery/index.d.ts.map +1 -1
  86. package/dist/endpoint/recovery/index.js +40 -39
  87. package/dist/endpoint/recovery/index.js.map +1 -1
  88. package/dist/endpoint/recovery/reanchor/empty.js +1 -1
  89. package/dist/endpoint/recovery/reanchor/empty.js.map +1 -1
  90. package/dist/endpoint/recovery/reanchor/index.js +26 -5
  91. package/dist/endpoint/recovery/reanchor/index.js.map +1 -1
  92. package/dist/endpoint/recovery/state.d.ts +7 -1
  93. package/dist/endpoint/recovery/state.d.ts.map +1 -1
  94. package/dist/endpoint/recovery/state.js +3 -1
  95. package/dist/endpoint/recovery/state.js.map +1 -1
  96. package/dist/endpoint/recovery/store.d.ts +9 -2
  97. package/dist/endpoint/recovery/store.d.ts.map +1 -1
  98. package/dist/endpoint/recovery/store.js +27 -5
  99. package/dist/endpoint/recovery/store.js.map +1 -1
  100. package/dist/endpoint/representation-schemas.d.ts +2 -0
  101. package/dist/endpoint/representation-schemas.d.ts.map +1 -1
  102. package/dist/endpoint/representation-schemas.js +2 -2
  103. package/dist/endpoint/representation-schemas.js.map +1 -1
  104. package/dist/endpoint/representation.d.ts +1 -1
  105. package/dist/endpoint/representation.d.ts.map +1 -1
  106. package/dist/endpoint/representation.js +1 -1
  107. package/dist/endpoint/representation.js.map +1 -1
  108. package/dist/harness-mcp-contract.d.ts +189 -57
  109. package/dist/harness-mcp-contract.d.ts.map +1 -1
  110. package/dist/harness-mcp-contract.js +61 -9
  111. package/dist/harness-mcp-contract.js.map +1 -1
  112. package/dist/harness-mcp-wire.d.ts +3 -3
  113. package/dist/harness-mcp-wire.d.ts.map +1 -1
  114. package/dist/harness-mcp-wire.js +38 -28
  115. package/dist/harness-mcp-wire.js.map +1 -1
  116. package/dist/index.d.ts +1 -1
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +2 -1
  119. package/dist/index.js.map +1 -1
  120. package/dist/server.d.ts +2 -0
  121. package/dist/server.d.ts.map +1 -1
  122. package/dist/server.js +18 -0
  123. package/dist/server.js.map +1 -1
  124. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"history-export.js","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,kNAAkN;AAElN,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAC7D,CACF,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/B,KAAK,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,EAAE;aACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,OAAO;YACL,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CACtC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,OAAO;gBACL,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,CACF;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"history-export.js","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,kNAAkN;AAElN,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAWxE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;CAC1B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAC7D,CACF,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/B,KAAK,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,EAAE;aACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,OAAO;YACL,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CACtC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,OAAO;gBACL,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,CACF;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EACL,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAuBzB,qDAAqD;AACrD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,iEAAiE;AACjE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UACpB;IACL,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,iBACa,yBAAyB,KACtC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CA+B7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EACL,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAuBzB,qDAAqD;AACrD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,iEAAiE;AACjE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UACpB;IACL,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,iBACa,yBAAyB,KACtC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CA+B7B,CAAC"}
@@ -2,14 +2,13 @@
2
2
  import { NodeFileSystem } from "@effect/platform-node";
3
3
  import { Effect } from "effect";
4
4
  import packageJson from "../../../package.json" with { type: "json" };
5
- import { noHistoryExport } from "../../endpoint/engine-types.js";
6
5
  import { makeEndpointEngine } from "../../endpoint/engine.js";
7
6
  import { makeRouterWorker } from "../../endpoint/router-worker/index.js";
8
7
  import { acquireHarnessMcpHttpServer } from "../../harness-mcp-http.js";
9
8
  import { makeHarnessMcpHttpHandler } from "../../harness-mcp-wire.js";
10
9
  import { DaemonRuntimeError, prepareDaemonActivation, } from "./activation.js";
11
10
  import { makeDaemonController } from "./controller.js";
12
- import { makeHistoryExport } from "./history-export.js";
11
+ import { makeHistoryExport, noHistoryExport } from "./history-export.js";
13
12
  const DAEMON_IMPLEMENTATION = {
14
13
  name: "moltzapd",
15
14
  version: packageJson.version,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file One pass over pending deliveries: the collective layer classifies
3
+ * each durable delivery, consumed ones are acknowledged, and the remaining
4
+ * items and the layer's own are published in order while a subscriber takes
5
+ * them.
6
+ */
7
+ import { Effect } from "effect";
8
+ import type { InboundItem } from "../../contract.js";
9
+ import type { CollectiveOperations } from "../../endpoint/collective/operation.js";
10
+ import type { EndpointEngine, EnginePendingMessage } from "../../endpoint/engine.js";
11
+ import type { HarnessMessageReadyEvent } from "../../harness-mcp-contract.js";
12
+ import type { HistoryExportPort } from "./history-export.js";
13
+ import { DeliveryToken } from "../../endpoint/store.js";
14
+ /** The subscriber's publish edge; false means it refused the event. */
15
+ interface Subscriber {
16
+ readonly publish: (event: HarnessMessageReadyEvent) => boolean;
17
+ }
18
+ /** What one pass over pending deliveries reads and changes. */
19
+ export interface PendingOffer {
20
+ readonly engine: Pick<EndpointEngine, "acknowledgeMessage">;
21
+ readonly classify: CollectiveOperations["classify"];
22
+ /** The attached subscriber, absent while none is attached. */
23
+ readonly handler?: Subscriber;
24
+ readonly historyExport: HistoryExportPort;
25
+ readonly publishedDeliveries: Set<string>;
26
+ readonly exportedDeliveries: Set<string>;
27
+ /**
28
+ * The item each unacknowledged durable delivery classified into, so a
29
+ * delivery is decoded and classified once rather than on every pass.
30
+ */
31
+ readonly classifiedItems: Map<string, InboundItem>;
32
+ }
33
+ /**
34
+ * Offer pending deliveries in order, then the collective layer's own items.
35
+ * Every durable delivery is classified: the layer consumes protocol posts,
36
+ * which are acknowledged here whether or not a subscriber is attached, so
37
+ * answers are recorded and deadlines complete with nobody listening. Items
38
+ * are published while a subscriber accepts them; after the first refusal,
39
+ * or with no subscriber, they stay pending for a later pass.
40
+ * @param offer The engine, classifier, subscriber and delivery bookkeeping.
41
+ * @param messages Pending durable deliveries in order.
42
+ * @param localItems Items the collective layer emitted, in order.
43
+ * @returns Completion after every delivery is consumed or offered.
44
+ */
45
+ export declare const offerPendingMessages: (offer: PendingOffer, messages: readonly EnginePendingMessage[], localItems: ReadonlyMap<DeliveryToken, InboundItem>) => Effect.Effect<void>;
46
+ /** A delivery token for an item the collective layer emitted, held in memory. */
47
+ export declare const mintLocalDeliveryToken: Effect.Effect<string & import("effect/Brand").Brand<"DeliveryToken">, never, never>;
48
+ export {};
49
+ //# sourceMappingURL=pending-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-delivery.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/pending-delivery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,uEAAuE;AACvE,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC;CAChE;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpD,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpD;AAmHD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,UACxB,YAAY,YACT,SAAS,oBAAoB,EAAE,cAC7B,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAkB6B,CAAC;AAEnD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,qFAIlC,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @file One pass over pending deliveries: the collective layer classifies
3
+ * each durable delivery, consumed ones are acknowledged, and the remaining
4
+ * items and the layer's own are published in order while a subscriber takes
5
+ * them.
6
+ */
7
+ import { DateTime, Effect, Option, Schema } from "effect";
8
+ import { randomBytes } from "node:crypto";
9
+ import { DeliveryToken } from "../../endpoint/store.js";
10
+ /**
11
+ * Acknowledge a delivery the collective layer consumed. A failed
12
+ * acknowledgment is logged and the delivery stays pending: the next pass
13
+ * classifies it again, which records nothing twice because the requester
14
+ * and every all_gather member keep only a member's first answer and a member
15
+ * applies a close once, and acknowledges it again. It does
16
+ * not end the daemon, whose store failures surface through the pending read
17
+ * that starts every pass.
18
+ */
19
+ const acknowledgeConsumed = (offer, pending) => offer.engine
20
+ .acknowledgeMessage(pending.deliveryToken)
21
+ .pipe(Effect.catchAll((error) => Effect.logWarning(`consumed delivery stays pending: ${error.message}`)));
22
+ /**
23
+ * Record an item in the history export the first time it is offered, then
24
+ * offer it to the subscriber, yielding whether the subscriber took it. The
25
+ * line lands before the item is visible, for the reason `makeHistoryExport`
26
+ * gives.
27
+ *
28
+ * The append runs inside the pass, under the delivery gate. It cannot
29
+ * deadlock: the export's own gate is taken only inside `record`, which takes
30
+ * no other lock, and a send records its outbound line without the delivery
31
+ * gate. Its cost is one append per item on first offer, only when an operator
32
+ * configured the export, and an acknowledgment waits for the pass that holds
33
+ * the gate.
34
+ */
35
+ const publishItem = (offer, handler, event) => Effect.gen(function* () {
36
+ if (!offer.exportedDeliveries.has(event.deliveryToken)) {
37
+ const at = yield* DateTime.now;
38
+ yield* offer.historyExport.record({
39
+ kind: "inbound",
40
+ item: event.item,
41
+ at,
42
+ });
43
+ offer.exportedDeliveries.add(event.deliveryToken);
44
+ }
45
+ if (!handler.publish(event)) {
46
+ return false;
47
+ }
48
+ offer.publishedDeliveries.add(event.deliveryToken);
49
+ return true;
50
+ });
51
+ const classifyOnce = (offer, pending) => offer.classify(pending).pipe(Effect.flatMap(Option.match({
52
+ onNone: () => acknowledgeConsumed(offer, pending).pipe(Effect.as(Option.none())),
53
+ onSome: (item) => Effect.sync(() => {
54
+ offer.classifiedItems.set(pending.deliveryToken, item);
55
+ return Option.some({
56
+ deliveryToken: pending.deliveryToken,
57
+ item,
58
+ });
59
+ }),
60
+ })));
61
+ /**
62
+ * Classify one durable delivery not yet published: acknowledge it when the
63
+ * collective layer consumes it, otherwise return its event, reusing the item
64
+ * an earlier pass classified.
65
+ */
66
+ const classifyPending = (offer, pending) => {
67
+ const { deliveryToken } = pending;
68
+ if (offer.publishedDeliveries.has(deliveryToken)) {
69
+ return Effect.succeed(Option.none());
70
+ }
71
+ const classified = offer.classifiedItems.get(deliveryToken);
72
+ return classified === undefined
73
+ ? classifyOnce(offer, pending)
74
+ : Effect.succeed(Option.some({ deliveryToken, item: classified }));
75
+ };
76
+ /** Publish events in order, skipping published ones, until one is refused. */
77
+ const publishInOrder = (offer, handler, events) => Effect.gen(function* () {
78
+ for (const event of events) {
79
+ if (offer.publishedDeliveries.has(event.deliveryToken)) {
80
+ continue;
81
+ }
82
+ if (!(yield* publishItem(offer, handler, event))) {
83
+ return;
84
+ }
85
+ }
86
+ });
87
+ /**
88
+ * Offer pending deliveries in order, then the collective layer's own items.
89
+ * Every durable delivery is classified: the layer consumes protocol posts,
90
+ * which are acknowledged here whether or not a subscriber is attached, so
91
+ * answers are recorded and deadlines complete with nobody listening. Items
92
+ * are published while a subscriber accepts them; after the first refusal,
93
+ * or with no subscriber, they stay pending for a later pass.
94
+ * @param offer The engine, classifier, subscriber and delivery bookkeeping.
95
+ * @param messages Pending durable deliveries in order.
96
+ * @param localItems Items the collective layer emitted, in order.
97
+ * @returns Completion after every delivery is consumed or offered.
98
+ */
99
+ export const offerPendingMessages = (offer, messages, localItems) => Effect.gen(function* () {
100
+ const classified = yield* Effect.forEach(messages, (pending) => classifyPending(offer, pending), { concurrency: 1 });
101
+ const handler = offer.handler;
102
+ if (handler === undefined) {
103
+ return;
104
+ }
105
+ yield* publishInOrder(offer, handler, [
106
+ ...classified.flatMap((event) => Option.toArray(event)),
107
+ ...[...localItems].map(([deliveryToken, item]) => ({
108
+ deliveryToken,
109
+ item,
110
+ })),
111
+ ]);
112
+ }).pipe(Effect.withSpan("offerPendingMessages"));
113
+ /** A delivery token for an item the collective layer emitted, held in memory. */
114
+ export const mintLocalDeliveryToken = Effect.sync(() => Schema.decodeUnknownSync(DeliveryToken)(`dlv_${randomBytes(32).toString("base64url")}`));
115
+ //# sourceMappingURL=pending-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-delivery.js","sourceRoot":"","sources":["../../../src/daemon/runtime/pending-delivery.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,22 @@ import type { VerifiedAgentCard } from "@moltzap/identity";
3
3
  import { Registry } from "@moltzap/identity/registry";
4
4
  import { Router } from "@moltzap/router";
5
5
  import { Cause, type Context, Deferred, Effect, Scope } from "effect";
6
- import type { HistoryExportPort } from "../../endpoint/engine-types.js";
7
6
  import type { EndpointEngine } from "../../endpoint/engine.js";
8
- import type { EndpointStore } from "../../endpoint/store.js";
7
+ import type { DeliveryToken, EndpointStore } from "../../endpoint/store.js";
9
8
  import type { DaemonBootstrap } from "../configuration.js";
9
+ import type { HistoryExportPort } from "./history-export.js";
10
+ import { type InboundItem } from "../../contract.js";
11
+ import { type CollectiveOperations } from "../../endpoint/collective/operation.js";
10
12
  import { type RouterWorker } from "../../endpoint/router-worker/index.js";
11
13
  import { DaemonActivationError, type DaemonRuntimeDependencies, DaemonRuntimeError } from "./activation.js";
12
14
  /** Subscription publisher installed after the MCP handler is acquired. */
13
15
  export type RuntimeSubscriptionHandler = Effect.Effect.Success<ReturnType<DaemonRuntimeDependencies["makeHandler"]>>;
14
- /** Engine and Router worker active for the daemon's immutable identity. */
16
+ /** Engine, Router worker and collective layer active for the daemon's identity. */
15
17
  interface ActiveProtocol {
16
18
  readonly agentCard: VerifiedAgentCard;
17
19
  readonly worker: RouterWorker;
18
20
  readonly engine: EndpointEngine;
21
+ readonly collectives: CollectiveOperations;
19
22
  }
20
23
  /** Mutable controller state shared with supervised protocol resources. */
21
24
  export interface ProtocolState {
@@ -23,6 +26,16 @@ export interface ProtocolState {
23
26
  subscriptionActive: boolean;
24
27
  handler?: RuntimeSubscriptionHandler;
25
28
  readonly publishedDeliveries: Set<string>;
29
+ /**
30
+ * Items the collective layer emitted, in emission order, each under a
31
+ * daemon-minted delivery token until the subscriber acknowledges it. They
32
+ * live in memory like the gather state they come from.
33
+ */
34
+ readonly localItems: Map<DeliveryToken, InboundItem>;
35
+ /** Deliveries whose item the history export already recorded. */
36
+ readonly exportedDeliveries: Set<string>;
37
+ /** The item each unacknowledged durable delivery classified into. */
38
+ readonly classifiedItems: Map<string, InboundItem>;
26
39
  }
27
40
  /** Dependencies and owned resources available to one protocol lifecycle. */
28
41
  export interface ProtocolEnvironment {
@@ -37,10 +50,12 @@ export interface ProtocolEnvironment {
37
50
  readonly state: ProtocolState;
38
51
  }
39
52
  /**
40
- * Publish newly durable messages while one active native subscriber exists.
53
+ * Classify newly durable deliveries and publish what a subscriber can take.
54
+ * The pass runs with or without a subscriber, so the collective layer
55
+ * consumes protocol posts even while no host is attached.
41
56
  * @param environment Protocol resources and controller-owned delivery state.
42
57
  * @param deliveryGate Serializes pending reads with subscription changes.
43
- * @returns Completion after every currently publishable delivery is offered.
58
+ * @returns Completion after every current delivery is consumed or offered.
44
59
  */
45
60
  export declare const publishPendingMessages: (environment: ProtocolEnvironment, deliveryGate: Effect.Semaphore) => Effect.Effect<void>;
46
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAEzB,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5D,UAAU,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CACrD,CAAC;AAEF,2EAA2E;AAC3E,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,gBACpB,mBAAmB,gBAClB,MAAM,CAAC,SAAS,KAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAmClB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAChC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAC5C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KACpB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAOxB,CAAC;AAmHF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,gBAChB,mBAAmB,kBAChB,MAAM,CAAC,SAAS,cACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aACpB,iBAAiB,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAuCI,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,58 @@
1
1
  /** @file Protocol acquisition, supervision, and pending-delivery reconciliation. */
2
2
  import { Registry } from "@moltzap/identity/registry";
3
3
  import { Router } from "@moltzap/router";
4
- import { Cause, Deferred, Effect, Scope } from "effect";
4
+ import { Cause, Deferred, Effect, Schema, Scope } from "effect";
5
+ import { AgentAddress } from "../../contract.js";
6
+ import { makeCollectiveOperations, } from "../../endpoint/collective/operation.js";
5
7
  import { decodeOuterBody } from "../../endpoint/representation.js";
6
8
  import { RouterWorkerPayloadInvalidError, } from "../../endpoint/router-worker/index.js";
7
9
  import { DaemonActivationError, DaemonRuntimeError, recoverPinnedSenderCards, } from "./activation.js";
10
+ import { mintLocalDeliveryToken, offerPendingMessages, } from "./pending-delivery.js";
8
11
  const signStructurallyValidAction = () => Effect.succeed("sign");
9
12
  const activationFailure = (reason) => new DaemonActivationError({ reason });
10
13
  const runtimeFailure = (phase) => new DaemonRuntimeError({ phase });
11
14
  const mapWorkerInitializationError = (error) => activationFailure(error._tag === "RouterWorkerTransportError" ? "upstream" : "representation");
12
15
  /**
13
- * Publish newly durable messages while one active native subscriber exists.
16
+ * What one pass reads and changes, from the active protocol and the
17
+ * controller's delivery state. Items are offered only to an attached
18
+ * subscriber.
19
+ */
20
+ const pendingOffer = (environment, protocol) => {
21
+ const { state } = environment;
22
+ const handler = state.subscriptionActive ? state.handler : undefined;
23
+ return {
24
+ engine: protocol.engine,
25
+ classify: protocol.collectives.classify,
26
+ ...(handler === undefined ? {} : { handler }),
27
+ historyExport: environment.historyExport,
28
+ publishedDeliveries: state.publishedDeliveries,
29
+ exportedDeliveries: state.exportedDeliveries,
30
+ classifiedItems: state.classifiedItems,
31
+ };
32
+ };
33
+ /**
34
+ * Classify newly durable deliveries and publish what a subscriber can take.
35
+ * The pass runs with or without a subscriber, so the collective layer
36
+ * consumes protocol posts even while no host is attached.
14
37
  * @param environment Protocol resources and controller-owned delivery state.
15
38
  * @param deliveryGate Serializes pending reads with subscription changes.
16
- * @returns Completion after every currently publishable delivery is offered.
39
+ * @returns Completion after every current delivery is consumed or offered.
17
40
  */
18
41
  export const publishPendingMessages = (environment, deliveryGate) => deliveryGate.withPermits(1)(Effect.suspend(() => {
19
42
  const protocol = environment.state.activeProtocol;
20
- if (!environment.state.subscriptionActive || protocol === undefined) {
43
+ if (protocol === undefined) {
21
44
  return Effect.void;
22
45
  }
23
- return protocol.engine.readPendingMessages().pipe(Effect.flatMap((messages) => Effect.sync(() => {
24
- const handler = environment.state.handler;
25
- if (handler === undefined) {
26
- return;
27
- }
28
- for (const pending of messages) {
29
- if (environment.state.publishedDeliveries.has(pending.deliveryToken)) {
30
- continue;
31
- }
32
- const event = pending;
33
- if (!handler.publish(event)) {
34
- return;
35
- }
36
- environment.state.publishedDeliveries.add(pending.deliveryToken);
37
- }
38
- })), Effect.catchAll(() => Deferred.fail(environment.fatal, runtimeFailure("storage")).pipe(Effect.asVoid)));
46
+ return protocol.engine.readPendingMessages().pipe(Effect.flatMap((messages) => offerPendingMessages(pendingOffer(environment, protocol), messages, environment.state.localItems)), Effect.catchAll(() => Deferred.fail(environment.fatal, runtimeFailure("storage")).pipe(Effect.asVoid)));
39
47
  }));
48
+ /**
49
+ * Queue an item the collective layer emitted and start a publication pass.
50
+ * The pass is forked because the layer can emit from inside one, which holds
51
+ * the delivery gate.
52
+ */
53
+ const emitLocalItem = (environment, reconciler, item) => mintLocalDeliveryToken.pipe(Effect.tap((deliveryToken) => Effect.sync(() => {
54
+ environment.state.localItems.set(deliveryToken, item);
55
+ })), Effect.zipRight(Effect.forkIn(reconciler, environment.daemonScope)), Effect.asVoid);
40
56
  /**
41
57
  * Propagate interruption and convert other background failures to daemon failure.
42
58
  * @param fatal Process-wide failure signal.
@@ -78,7 +94,6 @@ const acquireProtocolEngine = (environment, agentCard, worker) => environment.de
78
94
  store: environment.store,
79
95
  routerWorker: worker,
80
96
  actionPolicy: signStructurallyValidAction,
81
- historyExport: environment.historyExport,
82
97
  })
83
98
  .pipe(Scope.extend(environment.daemonScope), Effect.mapError(mapEngineInitializationError));
84
99
  const checkExistingProtocol = (agentCard, activeProtocol) => {
@@ -91,8 +106,23 @@ const checkExistingProtocol = (agentCard, activeProtocol) => {
91
106
  }
92
107
  return Effect.succeed(true);
93
108
  };
94
- const retainActiveProtocol = (state, protocol) => {
95
- state.activeProtocol = protocol;
109
+ /**
110
+ * The collective layer for the active identity: it certifies posts through
111
+ * the engine and queues the items it emits for the next publication pass.
112
+ */
113
+ const makeProtocolCollectives = (environment, reconciler, agentCard, engine) => makeCollectiveOperations({
114
+ self: Schema.decodeUnknownSync(AgentAddress)(`agent:${agentCard.agentName}`),
115
+ lookupMember: (member) => engine.resolveAddress(member),
116
+ sendPost: (input) => engine.send(input),
117
+ emit: (item) => emitLocalItem(environment, reconciler, item),
118
+ scope: environment.daemonScope,
119
+ });
120
+ /** Hold the active protocol with its collective layer for later operations. */
121
+ const retainActiveProtocol = (environment, reconciler, protocol) => {
122
+ environment.state.activeProtocol = {
123
+ ...protocol,
124
+ collectives: makeProtocolCollectives(environment, reconciler, protocol.agentCard, protocol.engine),
125
+ };
96
126
  };
97
127
  /**
98
128
  * Acquire and supervise the protocol resources for one immutable daemon identity.
@@ -123,7 +153,11 @@ export const initializeProtocol = (environment, activationGate, reconciler, agen
123
153
  publishPending: reconciler,
124
154
  });
125
155
  const engine = yield* acquireProtocolEngine(environment, agentCard, worker);
126
- retainActiveProtocol(environment.state, { agentCard, worker, engine });
156
+ retainActiveProtocol(environment, reconciler, {
157
+ agentCard,
158
+ worker,
159
+ engine,
160
+ });
127
161
  yield* Deferred.succeed(engineReady, engine);
128
162
  yield* superviseBackground(environment, worker.run);
129
163
  yield* superviseBackground(environment, engine.runOutbound);
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** @file Private address resolution from runtime names to immutable cards. */
2
2
  import type { Registry } from "@moltzap/identity/registry";
3
- import { type VerifiedAgentCard } from "@moltzap/identity";
3
+ import { AgentName, type VerifiedAgentCard } from "@moltzap/identity";
4
4
  import { type Context, Effect } from "effect";
5
5
  import { AgentAddress, GroupAddress, type MessageAddressInput, SendError } from "../../contract.js";
6
6
  /** Minimal Registry capability required by address resolution. */
@@ -35,5 +35,26 @@ interface ResolveMessageAddressInput {
35
35
  * @returns The canonical runtime address and AgentId-ordered verified cards.
36
36
  */
37
37
  export declare function resolveMessageAddress(input: ResolveMessageAddressInput): Effect.Effect<ResolvedMessageAddress, SendError>;
38
+ /** A destination in canonical form, before any Registry lookup. */
39
+ export type CanonicalMessageAddress = {
40
+ readonly kind: "direct";
41
+ readonly address: AgentAddress;
42
+ readonly remoteName: AgentName;
43
+ } | {
44
+ readonly kind: "group";
45
+ readonly address: GroupAddress;
46
+ readonly memberNames: readonly AgentName[];
47
+ };
48
+ /**
49
+ * Put one destination in canonical form, the rule every send shares. An
50
+ * `agent:` address names one other agent. A `group:` address names each agent
51
+ * once; the local agent is added when absent, and the complete group has 3 to
52
+ * 32 members in unsigned ASCII name order.
53
+ * @param to The validated destination input.
54
+ * @param localAgentName The local agent's Registry name.
55
+ * @returns The canonical address with its names, local agent included for a
56
+ * group, or `invalid-address` or `membership-invalid`.
57
+ */
58
+ export declare function canonicalMessageAddress(to: MessageAddressInput, localAgentName: string): Effect.Effect<CanonicalMessageAddress, SendError>;
38
59
  export {};
39
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/addressing/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,mBAAmB,EACxB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAO3B,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,EACpC,QAAQ,CACT,CAAC;AAEF,kEAAkE;AAClE,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;CACvE;AAED,uEAAuE;AACvE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,GAAG,iBAAiB,EAAE;KACvB,CAAC;CACH;AAED,8EAA8E;AAC9E,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB,UAAU,0BAA0B;IAClC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAIlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/addressing/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,mBAAmB,EACxB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAO3B,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,EACpC,QAAQ,CACT,CAAC;AAEF,kEAAkE;AAClE,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;CACvE;AAED,uEAAuE;AACvE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,GAAG,iBAAiB,EAAE;KACvB,CAAC;CACH;AAED,8EAA8E;AAC9E,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB,UAAU,0BAA0B;IAClC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,SAAS,CAAC,CASlD;AAED,mEAAmE;AACnE,MAAM,MAAM,uBAAuB,GAC/B;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;CAC5C,CAAC;AAEN;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,mBAAmB,EACvB,cAAc,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAInD"}
@@ -12,9 +12,24 @@ const MAXIMUM_GROUP_MEMBERS = 32;
12
12
  * @returns The canonical runtime address and AgentId-ordered verified cards.
13
13
  */
14
14
  export function resolveMessageAddress(input) {
15
- return input.to.startsWith(AGENT_ADDRESS_PREFIX)
16
- ? resolveDirect(input)
17
- : resolveGroup(input);
15
+ return canonicalMessageAddress(input.to, input.localAgentCard.agentName).pipe(Effect.flatMap((canonical) => canonical.kind === "direct"
16
+ ? resolveDirect(input, canonical)
17
+ : resolveGroup(input, canonical)));
18
+ }
19
+ /**
20
+ * Put one destination in canonical form, the rule every send shares. An
21
+ * `agent:` address names one other agent. A `group:` address names each agent
22
+ * once; the local agent is added when absent, and the complete group has 3 to
23
+ * 32 members in unsigned ASCII name order.
24
+ * @param to The validated destination input.
25
+ * @param localAgentName The local agent's Registry name.
26
+ * @returns The canonical address with its names, local agent included for a
27
+ * group, or `invalid-address` or `membership-invalid`.
28
+ */
29
+ export function canonicalMessageAddress(to, localAgentName) {
30
+ return to.startsWith(AGENT_ADDRESS_PREFIX)
31
+ ? canonicalDirect(to, localAgentName)
32
+ : canonicalGroup(to, localAgentName);
18
33
  }
19
34
  function invalidAddress() {
20
35
  return new SendError({ reason: "invalid-address" });
@@ -57,41 +72,53 @@ function lookupCard(registry, agentName) {
57
72
  : Effect.fail(new SendError({ reason: "unknown-agent" }));
58
73
  }));
59
74
  }
60
- function resolveDirect(input) {
75
+ function canonicalDirect(to, localAgentName) {
76
+ return Effect.gen(function* () {
77
+ const remoteName = yield* decodeAgentName(to.slice(AGENT_ADDRESS_PREFIX.length));
78
+ if (remoteName === localAgentName) {
79
+ return yield* invalidMembership();
80
+ }
81
+ const address = yield* Schema.decodeUnknown(AgentAddress)(to).pipe(Effect.mapError(invalidAddress));
82
+ return { kind: "direct", address, remoteName };
83
+ });
84
+ }
85
+ function canonicalGroup(to, localAgentName) {
61
86
  return Effect.gen(function* () {
62
- const agentName = yield* decodeAgentName(input.to.slice(AGENT_ADDRESS_PREFIX.length));
63
- if (agentName === input.localAgentCard.agentName) {
87
+ const explicitNames = yield* Effect.forEach(to.slice(GROUP_ADDRESS_PREFIX.length).split(","), decodeAgentName, { concurrency: 1 });
88
+ if (new Set(explicitNames).size !== explicitNames.length) {
64
89
  return yield* invalidMembership();
65
90
  }
66
- const remoteCard = yield* lookupCard(input.registry, agentName);
91
+ const localName = yield* decodeAgentName(localAgentName);
92
+ const memberNames = explicitNames.includes(localName)
93
+ ? explicitNames.slice()
94
+ : [...explicitNames, localName];
95
+ if (memberNames.length < 3 || memberNames.length > MAXIMUM_GROUP_MEMBERS) {
96
+ return yield* invalidMembership();
97
+ }
98
+ memberNames.sort(compareAscii);
99
+ const address = yield* Schema.decodeUnknown(GroupAddress)(`${GROUP_ADDRESS_PREFIX}${memberNames.join(",")}`).pipe(Effect.mapError(invalidAddress));
100
+ return { kind: "group", address, memberNames };
101
+ });
102
+ }
103
+ function resolveDirect(input, canonical) {
104
+ return Effect.gen(function* () {
105
+ const remoteCard = yield* lookupCard(input.registry, canonical.remoteName);
67
106
  const ordered = orderMemberCards([input.localAgentCard, remoteCard]);
68
107
  const first = ordered[0];
69
108
  const second = ordered[1];
70
109
  if (first === undefined || second === undefined) {
71
110
  return yield* Effect.dieMessage("direct membership lost a member");
72
111
  }
73
- const address = yield* Schema.decodeUnknown(AgentAddress)(input.to).pipe(Effect.mapError(invalidAddress));
74
112
  return {
75
113
  kind: "direct",
76
- address,
114
+ address: canonical.address,
77
115
  memberCards: [first, second],
78
116
  };
79
117
  });
80
118
  }
81
- function resolveGroup(input) {
119
+ function resolveGroup(input, canonical) {
82
120
  return Effect.gen(function* () {
83
- const explicitNames = yield* Effect.forEach(input.to.slice(GROUP_ADDRESS_PREFIX.length).split(","), decodeAgentName, { concurrency: 1 });
84
- if (new Set(explicitNames).size !== explicitNames.length) {
85
- return yield* invalidMembership();
86
- }
87
- const completeNames = explicitNames.includes(input.localAgentCard.agentName)
88
- ? explicitNames
89
- : [...explicitNames, input.localAgentCard.agentName];
90
- if (completeNames.length < 3 ||
91
- completeNames.length > MAXIMUM_GROUP_MEMBERS) {
92
- return yield* invalidMembership();
93
- }
94
- const resolved = yield* Effect.forEach(completeNames, (agentName) => agentName === input.localAgentCard.agentName
121
+ const resolved = yield* Effect.forEach(canonical.memberNames, (agentName) => agentName === input.localAgentCard.agentName
95
122
  ? Effect.succeed(input.localAgentCard)
96
123
  : lookupCard(input.registry, agentName), { concurrency: 1 });
97
124
  const ordered = orderMemberCards(resolved);
@@ -101,12 +128,9 @@ function resolveGroup(input) {
101
128
  if (first === undefined || second === undefined || third === undefined) {
102
129
  return yield* Effect.dieMessage("group membership lost a member");
103
130
  }
104
- const canonicalNames = completeNames.slice();
105
- canonicalNames.sort(compareAscii);
106
- const address = yield* Schema.decodeUnknown(GroupAddress)(`${GROUP_ADDRESS_PREFIX}${canonicalNames.join(",")}`).pipe(Effect.mapError(invalidAddress));
107
131
  return {
108
132
  kind: "group",
109
- address,
133
+ address: canonical.address,
110
134
  memberCards: [first, second, third, ...ordered.slice(3)],
111
135
  };
112
136
  });