@moltzap/client 2026.1004.0 → 2026.1005.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 (256) hide show
  1. package/NOTICE +1 -6
  2. package/dist/delivery/history-export.d.ts +2 -3
  3. package/dist/delivery/history-export.d.ts.map +1 -1
  4. package/dist/delivery/inbox.d.ts +2 -1
  5. package/dist/delivery/inbox.d.ts.map +1 -1
  6. package/dist/delivery/inbox.js +2 -1
  7. package/dist/delivery/inbox.js.map +1 -1
  8. package/dist/delivery/operations.d.ts +8 -10
  9. package/dist/delivery/operations.d.ts.map +1 -1
  10. package/dist/endpoint/harness-endpoint/events.js +1 -1
  11. package/dist/endpoint/harness-endpoint/events.js.map +1 -1
  12. package/dist/endpoint/harness-endpoint/index.js +1 -1
  13. package/dist/endpoint/harness-endpoint/index.js.map +1 -1
  14. package/dist/endpoint/mcp/events.d.ts.map +1 -1
  15. package/dist/endpoint/mcp/events.js +14 -2
  16. package/dist/endpoint/mcp/events.js.map +1 -1
  17. package/dist/endpoint/mcp/names.d.ts +18 -0
  18. package/dist/endpoint/mcp/names.d.ts.map +1 -0
  19. package/dist/endpoint/mcp/names.js +18 -0
  20. package/dist/endpoint/mcp/names.js.map +1 -0
  21. package/dist/endpoint/mcp/owner-tools.d.ts.map +1 -1
  22. package/dist/endpoint/mcp/owner-tools.js +1 -2
  23. package/dist/endpoint/mcp/owner-tools.js.map +1 -1
  24. package/dist/endpoint/mcp/schemas.d.ts +1 -19
  25. package/dist/endpoint/mcp/schemas.d.ts.map +1 -1
  26. package/dist/endpoint/mcp/schemas.js +2 -29
  27. package/dist/endpoint/mcp/schemas.js.map +1 -1
  28. package/dist/endpoint/mcp/tools.d.ts.map +1 -1
  29. package/dist/endpoint/mcp/tools.js +2 -1
  30. package/dist/endpoint/mcp/tools.js.map +1 -1
  31. package/dist/endpoint/mcp/webhook.js +1 -1
  32. package/dist/endpoint/mcp/webhook.js.map +1 -1
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.types-check.d.ts +4 -3
  38. package/dist/index.types-check.d.ts.map +1 -1
  39. package/dist/index.types-check.js +2 -2
  40. package/dist/service/{activation.d.ts → activation/index.d.ts} +11 -10
  41. package/dist/service/activation/index.d.ts.map +1 -0
  42. package/dist/service/{activation.js → activation/index.js} +4 -4
  43. package/dist/service/activation/index.js.map +1 -0
  44. package/dist/service/bootstrap.d.ts +50 -0
  45. package/dist/service/bootstrap.d.ts.map +1 -0
  46. package/dist/service/bootstrap.js +6 -0
  47. package/dist/service/bootstrap.js.map +1 -0
  48. package/dist/service/configuration.d.ts +3 -49
  49. package/dist/service/configuration.d.ts.map +1 -1
  50. package/dist/service/configuration.js +4 -6
  51. package/dist/service/configuration.js.map +1 -1
  52. package/dist/service/controller.d.ts +2 -2
  53. package/dist/service/controller.d.ts.map +1 -1
  54. package/dist/service/controller.js +1 -1
  55. package/dist/service/controller.js.map +1 -1
  56. package/dist/service/index.js +1 -1
  57. package/dist/service/index.js.map +1 -1
  58. package/dist/service/lifecycle.d.ts +2 -2
  59. package/dist/service/lifecycle.d.ts.map +1 -1
  60. package/dist/service/lifecycle.js +1 -1
  61. package/dist/service/lifecycle.js.map +1 -1
  62. package/dist/service/management.d.ts +1 -1
  63. package/dist/service/management.d.ts.map +1 -1
  64. package/dist/service/management.js +3 -2
  65. package/dist/service/management.js.map +1 -1
  66. package/dist/service/{registration.d.ts → registration/index.d.ts} +3 -3
  67. package/dist/service/registration/index.d.ts.map +1 -0
  68. package/dist/service/{registration.js → registration/index.js} +2 -2
  69. package/dist/service/registration/index.js.map +1 -0
  70. package/dist/service/supervision.d.ts +2 -2
  71. package/dist/service/supervision.d.ts.map +1 -1
  72. package/dist/service/supervision.js +3 -3
  73. package/dist/service/supervision.js.map +1 -1
  74. package/dist/store/{deliveries.d.ts → queues/deliveries.d.ts} +1 -1
  75. package/dist/store/queues/deliveries.d.ts.map +1 -0
  76. package/dist/store/{deliveries.js → queues/deliveries.js} +3 -3
  77. package/dist/store/queues/deliveries.js.map +1 -0
  78. package/dist/store/{dissemination.d.ts → queues/dissemination.d.ts} +4 -2
  79. package/dist/store/queues/dissemination.d.ts.map +1 -0
  80. package/dist/store/{dissemination.js → queues/dissemination.js} +5 -4
  81. package/dist/store/queues/dissemination.js.map +1 -0
  82. package/dist/store/queues/index.d.ts +5 -0
  83. package/dist/store/queues/index.d.ts.map +1 -0
  84. package/dist/store/queues/index.js +7 -0
  85. package/dist/store/queues/index.js.map +1 -0
  86. package/dist/store/{outbound.d.ts → queues/outbound.d.ts} +1 -1
  87. package/dist/store/queues/outbound.d.ts.map +1 -0
  88. package/dist/store/{outbound.js → queues/outbound.js} +1 -1
  89. package/dist/store/queues/outbound.js.map +1 -0
  90. package/dist/store/reads.d.ts.map +1 -1
  91. package/dist/store/reads.js +1 -3
  92. package/dist/store/reads.js.map +1 -1
  93. package/dist/store/records.d.ts.map +1 -1
  94. package/dist/store/records.js +1 -2
  95. package/dist/store/records.js.map +1 -1
  96. package/dist/store/store.d.ts.map +1 -1
  97. package/dist/store/store.js +2 -4
  98. package/dist/store/store.js.map +1 -1
  99. package/dist/transport/collectives/failures.d.ts +1 -1
  100. package/dist/transport/collectives/failures.d.ts.map +1 -1
  101. package/dist/transport/collectives/forms.d.ts +38 -2
  102. package/dist/transport/collectives/forms.d.ts.map +1 -1
  103. package/dist/transport/collectives/forms.js +51 -20
  104. package/dist/transport/collectives/forms.js.map +1 -1
  105. package/dist/transport/collectives/inbound.d.ts +2 -3
  106. package/dist/transport/collectives/inbound.d.ts.map +1 -1
  107. package/dist/transport/collectives/inbound.js +8 -7
  108. package/dist/transport/collectives/inbound.js.map +1 -1
  109. package/dist/transport/collectives/index.d.ts +1 -1
  110. package/dist/transport/collectives/index.d.ts.map +1 -1
  111. package/dist/transport/collectives/index.js +1 -1
  112. package/dist/transport/collectives/index.js.map +1 -1
  113. package/dist/transport/collectives/message-text.d.ts +5 -2
  114. package/dist/transport/collectives/message-text.d.ts.map +1 -1
  115. package/dist/transport/collectives/message-text.js +20 -42
  116. package/dist/transport/collectives/message-text.js.map +1 -1
  117. package/dist/transport/collectives/operation.d.ts +20 -15
  118. package/dist/transport/collectives/operation.d.ts.map +1 -1
  119. package/dist/transport/collectives/operation.js +53 -60
  120. package/dist/transport/collectives/operation.js.map +1 -1
  121. package/dist/transport/collectives/{form-grammar.d.ts → part/grammar.d.ts} +1 -1
  122. package/dist/transport/collectives/part/grammar.d.ts.map +1 -0
  123. package/dist/transport/collectives/{form-grammar.js → part/grammar.js} +6 -10
  124. package/dist/transport/collectives/part/grammar.js.map +1 -0
  125. package/dist/transport/collectives/{wire.d.ts → part/index.d.ts} +32 -50
  126. package/dist/transport/collectives/part/index.d.ts.map +1 -0
  127. package/dist/transport/collectives/{wire.js → part/index.js} +14 -28
  128. package/dist/transport/collectives/part/index.js.map +1 -0
  129. package/dist/transport/collectives/received-request.d.ts +1 -1
  130. package/dist/transport/collectives/received-request.d.ts.map +1 -1
  131. package/dist/transport/collectives/render.d.ts +40 -0
  132. package/dist/transport/collectives/render.d.ts.map +1 -0
  133. package/dist/transport/collectives/render.js +74 -0
  134. package/dist/transport/collectives/render.js.map +1 -0
  135. package/dist/transport/collectives/request-sends.d.ts +1 -1
  136. package/dist/transport/collectives/request-sends.d.ts.map +1 -1
  137. package/dist/transport/collectives/shared-answers.d.ts +2 -2
  138. package/dist/transport/collectives/shared-answers.d.ts.map +1 -1
  139. package/dist/transport/collectives/validation.d.ts +8 -24
  140. package/dist/transport/collectives/validation.d.ts.map +1 -1
  141. package/dist/transport/collectives/validation.js +167 -16
  142. package/dist/transport/collectives/validation.js.map +1 -1
  143. package/dist/transport/messaging/address.d.ts +2 -32
  144. package/dist/transport/messaging/address.d.ts.map +1 -1
  145. package/dist/transport/messaging/address.js +1 -76
  146. package/dist/transport/messaging/address.js.map +1 -1
  147. package/dist/transport/messaging/certification.d.ts +1 -1
  148. package/dist/transport/messaging/certification.d.ts.map +1 -1
  149. package/dist/transport/messaging/certification.js +10 -7
  150. package/dist/transport/messaging/certification.js.map +1 -1
  151. package/dist/transport/messaging/dissemination.d.ts +1 -1
  152. package/dist/transport/messaging/dissemination.d.ts.map +1 -1
  153. package/dist/transport/messaging/dissemination.js +4 -3
  154. package/dist/transport/messaging/dissemination.js.map +1 -1
  155. package/dist/transport/messaging/evidence.d.ts +1 -1
  156. package/dist/transport/messaging/evidence.d.ts.map +1 -1
  157. package/dist/transport/messaging/index.d.ts +3 -3
  158. package/dist/transport/messaging/index.d.ts.map +1 -1
  159. package/dist/transport/messaging/index.js +15 -4
  160. package/dist/transport/messaging/index.js.map +1 -1
  161. package/dist/transport/messaging/message.d.ts.map +1 -1
  162. package/dist/transport/messaging/message.js +1 -2
  163. package/dist/transport/messaging/message.js.map +1 -1
  164. package/dist/transport/messaging/{recovery/reanchor-empty.d.ts → reanchor/empty.d.ts} +3 -3
  165. package/dist/transport/messaging/reanchor/empty.d.ts.map +1 -0
  166. package/dist/transport/messaging/{recovery/reanchor-empty.js → reanchor/empty.js} +2 -2
  167. package/dist/transport/messaging/reanchor/empty.js.map +1 -0
  168. package/dist/transport/messaging/{recovery/reanchor.d.ts → reanchor/index.d.ts} +2 -2
  169. package/dist/transport/messaging/reanchor/index.d.ts.map +1 -0
  170. package/dist/transport/messaging/{recovery/reanchor.js → reanchor/index.js} +4 -4
  171. package/dist/transport/messaging/reanchor/index.js.map +1 -0
  172. package/dist/transport/messaging/{durability.d.ts → records/index.d.ts} +9 -6
  173. package/dist/transport/messaging/records/index.d.ts.map +1 -0
  174. package/dist/transport/messaging/{durability.js → records/index.js} +9 -6
  175. package/dist/transport/messaging/records/index.js.map +1 -0
  176. package/dist/transport/messaging/recovery/barrier.d.ts +1 -1
  177. package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -1
  178. package/dist/transport/messaging/recovery/evidence.d.ts +1 -1
  179. package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -1
  180. package/dist/transport/messaging/recovery/index.d.ts +1 -1
  181. package/dist/transport/messaging/recovery/index.d.ts.map +1 -1
  182. package/dist/transport/messaging/recovery/index.js +16 -11
  183. package/dist/transport/messaging/recovery/index.js.map +1 -1
  184. package/dist/transport/messaging/recovery/persistence.d.ts +1 -1
  185. package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -1
  186. package/dist/transport/messaging/{recovery/state.d.ts → recovery-session/index.d.ts} +2 -2
  187. package/dist/transport/messaging/recovery-session/index.d.ts.map +1 -0
  188. package/dist/transport/messaging/{recovery/state.js → recovery-session/index.js} +1 -1
  189. package/dist/transport/messaging/recovery-session/index.js.map +1 -0
  190. package/dist/transport/messaging/{types.d.ts → runtime/index.d.ts} +22 -7
  191. package/dist/transport/messaging/runtime/index.d.ts.map +1 -0
  192. package/dist/transport/messaging/{types.js → runtime/index.js} +1 -1
  193. package/dist/transport/messaging/runtime/index.js.map +1 -0
  194. package/dist/transport/messaging/send.d.ts +2 -2
  195. package/dist/transport/messaging/send.d.ts.map +1 -1
  196. package/dist/transport/messaging/send.js.map +1 -1
  197. package/dist/transport/router/types.d.ts +2 -3
  198. package/dist/transport/router/types.d.ts.map +1 -1
  199. package/dist/transport/router/types.js.map +1 -1
  200. package/dist/transport/wire/{canonical.d.ts → encoding/canonical.d.ts} +0 -1
  201. package/dist/transport/wire/encoding/canonical.d.ts.map +1 -0
  202. package/dist/transport/wire/{canonical.js → encoding/canonical.js} +1 -1
  203. package/dist/transport/wire/encoding/canonical.js.map +1 -0
  204. package/dist/transport/wire/{codec.d.ts → encoding/codec.d.ts} +2 -5
  205. package/dist/transport/wire/encoding/codec.d.ts.map +1 -0
  206. package/dist/transport/wire/{codec.js → encoding/codec.js} +4 -5
  207. package/dist/transport/wire/encoding/codec.js.map +1 -0
  208. package/dist/transport/wire/encoding/index.d.ts +4 -0
  209. package/dist/transport/wire/encoding/index.d.ts.map +1 -0
  210. package/dist/transport/wire/encoding/index.js +6 -0
  211. package/dist/transport/wire/encoding/index.js.map +1 -0
  212. package/dist/transport/wire/index.d.ts +2 -3
  213. package/dist/transport/wire/index.d.ts.map +1 -1
  214. package/dist/transport/wire/index.js +2 -3
  215. package/dist/transport/wire/index.js.map +1 -1
  216. package/dist/transport/wire/values.d.ts +37 -2
  217. package/dist/transport/wire/values.d.ts.map +1 -1
  218. package/dist/transport/wire/values.js +78 -1
  219. package/dist/transport/wire/values.js.map +1 -1
  220. package/dist/transport/wire/verification.d.ts +1 -2
  221. package/dist/transport/wire/verification.d.ts.map +1 -1
  222. package/dist/transport/wire/verification.js +1 -2
  223. package/dist/transport/wire/verification.js.map +1 -1
  224. package/package.json +3 -3
  225. package/dist/service/activation.d.ts.map +0 -1
  226. package/dist/service/activation.js.map +0 -1
  227. package/dist/service/registration.d.ts.map +0 -1
  228. package/dist/service/registration.js.map +0 -1
  229. package/dist/store/deliveries.d.ts.map +0 -1
  230. package/dist/store/deliveries.js.map +0 -1
  231. package/dist/store/dissemination.d.ts.map +0 -1
  232. package/dist/store/dissemination.js.map +0 -1
  233. package/dist/store/outbound.d.ts.map +0 -1
  234. package/dist/store/outbound.js.map +0 -1
  235. package/dist/transport/collectives/answer-check.d.ts +0 -22
  236. package/dist/transport/collectives/answer-check.d.ts.map +0 -1
  237. package/dist/transport/collectives/answer-check.js +0 -166
  238. package/dist/transport/collectives/answer-check.js.map +0 -1
  239. package/dist/transport/collectives/form-grammar.d.ts.map +0 -1
  240. package/dist/transport/collectives/form-grammar.js.map +0 -1
  241. package/dist/transport/collectives/wire.d.ts.map +0 -1
  242. package/dist/transport/collectives/wire.js.map +0 -1
  243. package/dist/transport/messaging/durability.d.ts.map +0 -1
  244. package/dist/transport/messaging/durability.js.map +0 -1
  245. package/dist/transport/messaging/recovery/reanchor-empty.d.ts.map +0 -1
  246. package/dist/transport/messaging/recovery/reanchor-empty.js.map +0 -1
  247. package/dist/transport/messaging/recovery/reanchor.d.ts.map +0 -1
  248. package/dist/transport/messaging/recovery/reanchor.js.map +0 -1
  249. package/dist/transport/messaging/recovery/state.d.ts.map +0 -1
  250. package/dist/transport/messaging/recovery/state.js.map +0 -1
  251. package/dist/transport/messaging/types.d.ts.map +0 -1
  252. package/dist/transport/messaging/types.js.map +0 -1
  253. package/dist/transport/wire/canonical.d.ts.map +0 -1
  254. package/dist/transport/wire/canonical.js.map +0 -1
  255. package/dist/transport/wire/codec.d.ts.map +0 -1
  256. package/dist/transport/wire/codec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"request-sends.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/request-sends.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,MAAM,EAEN,MAAM,EAEN,KAAK,EAEN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAC1C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAC9C,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,cAAc,KAAG,OACrB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAChB,SAAS,YAAY,EAAE,UACxB,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAc9B,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,YACf,SAAS,YAAY,EAAE,SACzB,SAAS,WAAW,EAAE,KAC5B,MAAM,CAAC,MAAM,CAAC;IACf,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;CACpC,CAsBE,CAAC"}
1
+ {"version":3,"file":"request-sends.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/request-sends.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,MAAM,EAEN,MAAM,EAEN,KAAK,EAEN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAC1C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAC9C,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,cAAc,KAAG,OACrB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAChB,SAAS,YAAY,EAAE,UACxB,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAc9B,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,YACf,SAAS,YAAY,EAAE,SACzB,SAAS,WAAW,EAAE,KAC5B,MAAM,CAAC,MAAM,CAAC;IACf,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;CACpC,CAsBE,CAAC"}
@@ -8,10 +8,10 @@
8
8
  * its result from exactly the answers it holds under the listed hashes. The
9
9
  * requester's result uses the same member ordering.
10
10
  */
11
- import type { AgentAddress } from "../messaging/address.js";
12
11
  import type { PostId, RecordHash } from "../wire/index.js";
12
+ import type { AgentAddress } from "../wire/values.js";
13
13
  import type { CollectiveMemberOutcome, InboundItem } from "./inbound.js";
14
- import type { CollectiveValue } from "./wire.js";
14
+ import type { CollectiveValue } from "./part/index.js";
15
15
  /** The members a collecting operation asks, in member order. */
16
16
  export type Members = readonly [AgentAddress, ...AgentAddress[]];
17
17
  /** A member's response value, as its post carries it. */
@@ -1 +1 @@
1
- {"version":3,"file":"shared-answers.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/shared-answers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,eAAe,EACf;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAC9B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,WAAW,EACX;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CACtC,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,eAAe,GACtB,IAAI,CAIN;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,UAAU,EAAE;;;;;;;EAkBhC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,uBAAuB,CAAC,GAC3D,oBAAoB,CAAC,UAAU,CAAC,CAOlC"}
1
+ {"version":3,"file":"shared-answers.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/shared-answers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,eAAe,EACf;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAC9B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,WAAW,EACX;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CACtC,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,eAAe,GACtB,IAAI,CAIN;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,UAAU,EAAE;;;;;;;EAkBhC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,uBAAuB,CAAC,GAC3D,oBAAoB,CAAC,UAAU,CAAC,CAOlC"}
@@ -4,37 +4,22 @@
4
4
  * Validation runs field by field so a failure names each failing field rather
5
5
  * than one combined message. The form-mode grammar is flat, so a field's
6
6
  * property schema is the whole rule for that field.
7
+ *
8
+ * Each keyword has its JSON Schema 2020-12 meaning, and every failing keyword
9
+ * is reported: a keyword that constrains one JSON type applies only to a
10
+ * value of that type, while `type`, `enum` and `oneOf` apply to any value.
7
11
  */
8
12
  import { Effect } from "effect";
9
- import type { AnswerContent, CollectiveFailure } from "./forms.js";
10
13
  import type { CollectiveMemberOutcome } from "./inbound.js";
11
- import type { CollectiveResponse, FormModeSchema } from "./wire.js";
12
- /**
13
- * Why one answer field failed its request's schema; `detail` names each
14
- * keyword an `invalid` field fails.
15
- */
16
- export type CollectiveFieldFailure = Extract<CollectiveFailure, {
17
- readonly kind: "answer-invalid";
18
- }>["fields"][number];
19
- declare const CollectiveAnswerInvalidError_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 & {
20
- readonly _tag: "CollectiveAnswerInvalidError";
21
- } & Readonly<A>;
22
- /** An answer does not satisfy its request's `requestedSchema`. */
23
- export declare class CollectiveAnswerInvalidError extends CollectiveAnswerInvalidError_base<{
24
- readonly failures: readonly [
25
- CollectiveFieldFailure,
26
- ...CollectiveFieldFailure[]
27
- ];
28
- }> {
29
- get message(): string;
30
- }
14
+ import type { FormModeSchema } from "./part/index.js";
15
+ import { type AnswerContent, type AnswerFieldFailures, type CollectiveResponse } from "./forms.js";
31
16
  /**
32
17
  * Check an answer against the schema its request carried.
33
18
  * @param requestedSchema The request's form-mode schema.
34
19
  * @param content The member's answer.
35
- * @returns The answer unchanged, or an error naming every failing field.
20
+ * @returns The answer unchanged, or every failing field.
36
21
  */
37
- export declare const validateAnswer: (requestedSchema: FormModeSchema, content: AnswerContent) => Effect.Effect<AnswerContent, CollectiveAnswerInvalidError>;
22
+ export declare const validateAnswer: (requestedSchema: FormModeSchema, content: AnswerContent) => Effect.Effect<AnswerContent, AnswerFieldFailures>;
38
23
  /**
39
24
  * Record a received response as the member's outcome. An `accept` whose content
40
25
  * fails the request's schema is recorded as invalid rather than rejected.
@@ -43,5 +28,4 @@ export declare const validateAnswer: (requestedSchema: FormModeSchema, content:
43
28
  * @returns The member's outcome.
44
29
  */
45
30
  export declare const outcomeOfResponse: (requestedSchema: FormModeSchema, response: CollectiveResponse) => Effect.Effect<CollectiveMemberOutcome>;
46
- export {};
47
31
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGpE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CACpC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;;;;AAEpB,kEAAkE;AAClE,qBAAa,4BAA6B,SAAQ,kCAEhD;IACA,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,sBAAsB;QACtB,GAAG,sBAAsB,EAAE;KAC5B,CAAC;CACH,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAQ7B;CACF;AAgCD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,oBACR,cAAc,WACtB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAc3D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,oBACX,cAAc,YACrB,kBAAkB,KAC3B,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAsBvC,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAExB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAuHpB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,oBACR,cAAc,WACtB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAYlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,oBACX,cAAc,YACrB,kBAAkB,KAC3B,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAsBvC,CAAC"}
@@ -4,19 +4,63 @@
4
4
  * Validation runs field by field so a failure names each failing field rather
5
5
  * than one combined message. The form-mode grammar is flat, so a field's
6
6
  * property schema is the whole rule for that field.
7
+ *
8
+ * Each keyword has its JSON Schema 2020-12 meaning, and every failing keyword
9
+ * is reported: a keyword that constrains one JSON type applies only to a
10
+ * value of that type, while `type`, `enum` and `oneOf` apply to any value.
7
11
  */
8
- import { Data, Effect } from "effect";
9
- import { answerIssues } from "./answer-check.js";
10
- /** An answer does not satisfy its request's `requestedSchema`. */
11
- export class CollectiveAnswerInvalidError extends Data.TaggedError("CollectiveAnswerInvalidError") {
12
- get message() {
13
- return this.failures
14
- .map((failure) => failure.detail === undefined
15
- ? `${failure.field}: ${failure.reason}`
16
- : `${failure.field}: ${failure.reason} (${failure.detail})`)
17
- .join("; ");
18
- }
19
- }
12
+ import { Effect, Predicate } from "effect";
13
+ import { matchesFormat } from "./answer-formats.js";
14
+ import { answerFieldsText, } from "./forms.js";
15
+ const ALLOWED_VALUES = "must be one of the allowed values";
16
+ /** Every JSON Schema check a form field's keywords make of an answer. */
17
+ const keywordChecks = [
18
+ typeIssues,
19
+ limitIssues,
20
+ formatIssues,
21
+ enumIssues,
22
+ oneOfIssues,
23
+ itemIssues,
24
+ ];
25
+ /** The limit keywords, each applying to one JSON type. */
26
+ const limitKeywords = [
27
+ {
28
+ keyword: "minLength",
29
+ measure: codePointLength,
30
+ fails: below,
31
+ requires: (limit) => `must have at least ${limit} characters`,
32
+ },
33
+ {
34
+ keyword: "maxLength",
35
+ measure: codePointLength,
36
+ fails: above,
37
+ requires: (limit) => `must have at most ${limit} characters`,
38
+ },
39
+ {
40
+ keyword: "minimum",
41
+ measure: numericValue,
42
+ fails: below,
43
+ requires: (limit) => `must be >= ${limit}`,
44
+ },
45
+ {
46
+ keyword: "maximum",
47
+ measure: numericValue,
48
+ fails: above,
49
+ requires: (limit) => `must be <= ${limit}`,
50
+ },
51
+ {
52
+ keyword: "minItems",
53
+ measure: itemCount,
54
+ fails: below,
55
+ requires: (limit) => `must have at least ${limit} items`,
56
+ },
57
+ {
58
+ keyword: "maxItems",
59
+ measure: itemCount,
60
+ fails: above,
61
+ requires: (limit) => `must have at most ${limit} items`,
62
+ },
63
+ ];
20
64
  /**
21
65
  * Field names come from peers, so a lookup ignores the prototype chain: an
22
66
  * answer field named `constructor` must not find `Object.prototype.constructor`.
@@ -42,7 +86,7 @@ function fieldFailure(requestedSchema, content, field) {
42
86
  * Check an answer against the schema its request carried.
43
87
  * @param requestedSchema The request's form-mode schema.
44
88
  * @param content The member's answer.
45
- * @returns The answer unchanged, or an error naming every failing field.
89
+ * @returns The answer unchanged, or every failing field.
46
90
  */
47
91
  export const validateAnswer = (requestedSchema, content) => {
48
92
  const fields = new Set([
@@ -55,7 +99,7 @@ export const validateAnswer = (requestedSchema, content) => {
55
99
  });
56
100
  return first === undefined
57
101
  ? Effect.succeed(content)
58
- : Effect.fail(new CollectiveAnswerInvalidError({ failures: [first, ...rest] }));
102
+ : Effect.fail([first, ...rest]);
59
103
  };
60
104
  /**
61
105
  * Record a received response as the member's outcome. An `accept` whose content
@@ -68,9 +112,9 @@ export const outcomeOfResponse = (requestedSchema, response) => {
68
112
  switch (response.action) {
69
113
  case "accept":
70
114
  return validateAnswer(requestedSchema, response.content).pipe(Effect.match({
71
- onFailure: (error) => ({
115
+ onFailure: (fields) => ({
72
116
  kind: "invalid",
73
- reason: error.message,
117
+ reason: answerFieldsText(fields),
74
118
  }),
75
119
  onSuccess: (content) => ({
76
120
  kind: "answered",
@@ -85,4 +129,111 @@ export const outcomeOfResponse = (requestedSchema, response) => {
85
129
  }
86
130
  }
87
131
  };
132
+ /**
133
+ * Every failing keyword of one answer value. A titled single-select's value
134
+ * must equal exactly one option, so options repeating a `const` admit
135
+ * neither.
136
+ * @param field The field's admitted property schema.
137
+ * @param value The answer's value for the field.
138
+ * @returns Each failing keyword with what it requires; empty when the value
139
+ * satisfies the field.
140
+ */
141
+ function answerIssues(field, value) {
142
+ return keywordChecks.flatMap((check) => check(field, value));
143
+ }
144
+ function typeIssues(field, value) {
145
+ return hasType(field, value) ? [] : [`type: must be ${field.type}`];
146
+ }
147
+ function hasType(field, value) {
148
+ switch (field.type) {
149
+ case "string":
150
+ return typeof value === "string";
151
+ case "number":
152
+ return typeof value === "number";
153
+ case "integer":
154
+ return typeof value === "number" && Number.isInteger(value);
155
+ case "boolean":
156
+ return typeof value === "boolean";
157
+ case "array":
158
+ return Array.isArray(value);
159
+ default: {
160
+ const exhaustive = field;
161
+ return exhaustive;
162
+ }
163
+ }
164
+ }
165
+ function limitIssues(field, value) {
166
+ return limitKeywords.flatMap(({ keyword, measure, fails, requires }) => {
167
+ const limit = limitOf(field, keyword);
168
+ const measured = measure(value);
169
+ return limit === undefined ||
170
+ measured === undefined ||
171
+ !fails(measured, limit)
172
+ ? []
173
+ : [`${keyword}: ${requires(limit)}`];
174
+ });
175
+ }
176
+ function limitOf(field, keyword) {
177
+ const limit = Predicate.hasProperty(field, keyword)
178
+ ? field[keyword]
179
+ : undefined;
180
+ return typeof limit === "number" ? limit : undefined;
181
+ }
182
+ function formatIssues(field, value) {
183
+ if (typeof value !== "string" ||
184
+ !("format" in field) ||
185
+ field.format === undefined) {
186
+ return [];
187
+ }
188
+ return matchesFormat(field.format, value)
189
+ ? []
190
+ : [`format: must match format "${field.format}"`];
191
+ }
192
+ function enumIssues(field, value) {
193
+ return "enum" in field && !field.enum.some((allowed) => allowed === value)
194
+ ? [`enum: ${ALLOWED_VALUES}`]
195
+ : [];
196
+ }
197
+ function oneOfIssues(field, value) {
198
+ return "oneOf" in field &&
199
+ field.oneOf.filter((option) => option.const === value).length !== 1
200
+ ? ["oneOf: must equal exactly one option's const"]
201
+ : [];
202
+ }
203
+ function itemIssues(field, value) {
204
+ if (typeof value !== "object" || !("items" in field)) {
205
+ return [];
206
+ }
207
+ const { items } = field;
208
+ return value.flatMap((item, index) => selectedItemIssues(items, item, index));
209
+ }
210
+ function selectedItemIssues(items, item, index) {
211
+ if ("enum" in items) {
212
+ return items.enum.includes(item)
213
+ ? []
214
+ : [`items[${index}].enum: ${ALLOWED_VALUES}`];
215
+ }
216
+ return items.anyOf.some((option) => option.const === item)
217
+ ? []
218
+ : [`items[${index}].anyOf: must equal some option's const`];
219
+ }
220
+ /**
221
+ * A string's length in Unicode code points, as JSON Schema counts it, so an
222
+ * astral character such as an emoji counts once.
223
+ */
224
+ function codePointLength(value) {
225
+ return typeof value === "string" ? Array.from(value).length : undefined;
226
+ }
227
+ function numericValue(value) {
228
+ return typeof value === "number" ? value : undefined;
229
+ }
230
+ function itemCount(value) {
231
+ return Array.isArray(value) ? value.length : undefined;
232
+ }
233
+ function below(measured, limit) {
234
+ return measured < limit;
235
+ }
236
+ function above(measured, limit) {
237
+ return measured > limit;
238
+ }
88
239
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/transport/collectives/validation.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,9 @@
1
1
  /** @file Private address resolution from runtime names to immutable cards. */
2
2
  import type { Registry } from "@moltzap/identity/registry";
3
3
  import { AgentName, type VerifiedAgentCard } from "@moltzap/identity";
4
- import { type Context, Effect, Schema } from "effect";
4
+ import { type Context, Effect } from "effect";
5
+ import { AgentAddress, GroupAddress, type MessageAddressInput } from "../wire/values.js";
5
6
  import { SendError } from "./errors.js";
6
- /**
7
- * The registry name an `agent:` address names.
8
- * @param value A candidate address.
9
- * @returns The name, or undefined when the value is not an agent address.
10
- */
11
- export declare function parseAgentAddress(value: string): string | undefined;
12
- /**
13
- * The names a `group:` address lists, in the order given.
14
- * @param value A candidate address.
15
- * @returns The names, or undefined when the value is not a group address.
16
- */
17
- export declare function parseGroupAddress(value: string): readonly string[] | undefined;
18
- /** An explicit direct destination using one canonical Registry name. */
19
- export declare const AgentAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
20
- /** A validated direct destination. */
21
- export type AgentAddress = typeof AgentAddress.Type;
22
- /** A complete fixed-member group address in unsigned ASCII name order. */
23
- export declare const GroupAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
24
- /** A validated canonical complete group destination. */
25
- export type GroupAddress = typeof GroupAddress.Type;
26
- /** Either accepted destination input, including noncanonical group order. */
27
- export declare const MessageAddressInput: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
28
- /** A validated explicit destination input. */
29
- export type MessageAddressInput = typeof MessageAddressInput.Type;
30
7
  /** Minimal Registry capability required by address resolution. */
31
8
  export type AddressRegistryPort = Pick<Context.Tag.Service<typeof Registry>, "lookup">;
32
9
  /** Resolved deterministic membership for a direct destination. */
@@ -82,12 +59,5 @@ export type CanonicalMessageAddress = {
82
59
  * group, or `invalid-address` or `membership-invalid`.
83
60
  */
84
61
  export declare function canonicalMessageAddress(to: MessageAddressInput, localAgentName: string): Effect.Effect<CanonicalMessageAddress, SendError>;
85
- /**
86
- * Unsigned ASCII order, the order a canonical group address lists its names in.
87
- * @param left One name.
88
- * @param right The other name.
89
- * @returns Negative, zero, or positive as `left` sorts before, with, or after `right`.
90
- */
91
- export declare function compareAscii(left: string, right: string): number;
92
62
  export {};
93
63
  //# sourceMappingURL=address.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/address.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,EAEL,YAAY,EAIZ,YAAY,EAEZ,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,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;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,mBAAmB,EACvB,cAAc,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAInD"}
@@ -1,49 +1,8 @@
1
1
  /** @file Private address resolution from runtime names to immutable cards. */
2
2
  import { AgentName } from "@moltzap/identity";
3
3
  import { Effect, Schema } from "effect";
4
- import { compareAgentIds, maximumMembers } from "../wire/values.js";
4
+ import { AGENT_ADDRESS_PREFIX, AgentAddress, compareAgentIds, compareAscii, GROUP_ADDRESS_PREFIX, GroupAddress, maximumMembers, } from "../wire/values.js";
5
5
  import { SendError } from "./errors.js";
6
- const AGENT_ADDRESS_PREFIX = "agent:";
7
- const GROUP_ADDRESS_PREFIX = "group:";
8
- const isAgentName = Schema.is(AgentName);
9
- /* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Effect Schemas share their domain names with the nominal values they decode. */
10
- /**
11
- * The registry name an `agent:` address names.
12
- * @param value A candidate address.
13
- * @returns The name, or undefined when the value is not an agent address.
14
- */
15
- export function parseAgentAddress(value) {
16
- if (!value.startsWith(AGENT_ADDRESS_PREFIX)) {
17
- return undefined;
18
- }
19
- const name = value.slice(AGENT_ADDRESS_PREFIX.length);
20
- return isAgentName(name) ? name : undefined;
21
- }
22
- /**
23
- * The names a `group:` address lists, in the order given.
24
- * @param value A candidate address.
25
- * @returns The names, or undefined when the value is not a group address.
26
- */
27
- export function parseGroupAddress(value) {
28
- if (!value.startsWith(GROUP_ADDRESS_PREFIX)) {
29
- return undefined;
30
- }
31
- const names = value.slice(GROUP_ADDRESS_PREFIX.length).split(",");
32
- return names.length > 0 && names.every((name) => isAgentName(name))
33
- ? names
34
- : undefined;
35
- }
36
- const addressInput = Schema.String.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined ||
37
- parseGroupAddress(value) !== undefined, {
38
- identifier: "MessageAddressInput",
39
- description: "An agent address or syntactically valid group input",
40
- }), Schema.brand("MessageAddressInput"));
41
- /** An explicit direct destination using one canonical Registry name. */
42
- export const AgentAddress = addressInput.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined), Schema.brand("AgentAddress"), Schema.annotations({ identifier: "AgentAddress" }));
43
- /** A complete fixed-member group address in unsigned ASCII name order. */
44
- export const GroupAddress = addressInput.pipe(Schema.filter(isCanonicalGroupAddress), Schema.brand("GroupAddress"), Schema.annotations({ identifier: "GroupAddress" }));
45
- /** Either accepted destination input, including noncanonical group order. */
46
- export const MessageAddressInput = addressInput;
47
6
  /**
48
7
  * Resolve one explicit runtime destination to canonical immutable membership.
49
8
  * @param input Local verified identity, Registry lookup, and validated input.
@@ -71,22 +30,6 @@ export function canonicalMessageAddress(to, localAgentName) {
71
30
  ? canonicalDirect(to, localAgentName)
72
31
  : canonicalGroup(to, localAgentName);
73
32
  }
74
- /**
75
- * Unsigned ASCII order, the order a canonical group address lists its names in.
76
- * @param left One name.
77
- * @param right The other name.
78
- * @returns Negative, zero, or positive as `left` sorts before, with, or after `right`.
79
- */
80
- export function compareAscii(left, right) {
81
- const sharedLength = Math.min(left.length, right.length);
82
- for (let index = 0; index < sharedLength; index += 1) {
83
- const difference = left.charCodeAt(index) - right.charCodeAt(index);
84
- if (difference !== 0) {
85
- return difference;
86
- }
87
- }
88
- return left.length - right.length;
89
- }
90
33
  function invalidAddress() {
91
34
  return new SendError({ reason: "invalid-address" });
92
35
  }
@@ -106,24 +49,6 @@ function mapRegistryFailure(error) {
106
49
  : "network-unavailable",
107
50
  });
108
51
  }
109
- function isCanonicalGroupAddress(value) {
110
- const names = parseGroupAddress(value);
111
- if (names === undefined ||
112
- names.length < 3 ||
113
- names.length > maximumMembers) {
114
- return false;
115
- }
116
- for (let index = 1; index < names.length; index += 1) {
117
- const previous = names[index - 1];
118
- const current = names[index];
119
- if (previous === undefined ||
120
- current === undefined ||
121
- compareAscii(previous, current) >= 0) {
122
- return false;
123
- }
124
- }
125
- return true;
126
- }
127
52
  function orderMemberCards(cards) {
128
53
  const ordered = cards.slice();
129
54
  ordered.sort((left, right) => compareAgentIds(left.agentId, right.agentId));
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/transport/messaging/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/transport/messaging/address.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** @file Router-ordered proposal selection and addressed record certification. */
2
2
  import { Effect } from "effect";
3
- import type { EngineRuntime } from "./types.js";
3
+ import type { EngineRuntime } from "./runtime/index.js";
4
4
  import { type RouterIngressDisposition, type RouterWorkerIngress, RouterWorkerPersistenceError } from "../router/index.js";
5
5
  import { type DecodedOuterBody } from "../wire/index.js";
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"certification.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/certification.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAY,MAAM,EAAgC,MAAM,QAAQ,CAAC;AAOxE,OAAO,KAAK,EAIV,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EASL,KAAK,gBAAgB,EAetB,MAAM,kBAAkB,CAAC;AA25B1B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YACrB,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAalE,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,YAC7B,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAkBlE,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CA0B9C,CAAC"}
1
+ {"version":3,"file":"certification.d.ts","sourceRoot":"","sources":["../../../src/transport/messaging/certification.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAY,MAAM,EAAgC,MAAM,QAAQ,CAAC;AAOxE,OAAO,KAAK,EAIV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EASL,KAAK,gBAAgB,EAetB,MAAM,kBAAkB,CAAC;AA85B1B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YACrB,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAalE,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,YAC7B,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAkBlE,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CA0B9C,CAAC"}
@@ -3,9 +3,8 @@ import { MOLTZAP_VERSION } from "@moltzap/identity";
3
3
  import { Deferred, Effect, SubscriptionRef } from "effect";
4
4
  import { RouterWorkerPersistenceError, } from "../router/index.js";
5
5
  import { ActionCore as ActionCoreSchema, ClientRepresentationError, encodeCanonical, GenesisAnchorBody, hashAnchor, MembershipDescriptor, quorumThreshold, signEvidenceMessage, verifyActionCertifiedRecord, verifyActionProposal, verifyCertifiedRecord, verifyMembershipDescriptor, verifyOuterMessage, verifyStableEvidence, } from "../wire/index.js";
6
- import { inboundDelivery, makeActionCertifiedRecord, makeCertifiedRecord, protocolEvidence, recordAnchorHash, stagedRecord, storedCertifiedRecord, } from "./durability.js";
7
6
  import { evidenceMatchesFold, evidenceRoute, verifiedEvidenceForRoute, } from "./evidence.js";
8
- import { proposeIntent, queueCertifiedPacket, queueEvidence } from "./send.js";
7
+ import { inboundDelivery, makeActionCertifiedRecord, makeCertifiedRecord, protocolEvidence, recordAnchorHash, stagedRecord, storedCertifiedRecord, } from "./records/index.js";
9
8
  const persistenceFailure = () => new RouterWorkerPersistenceError();
10
9
  const isSemanticStoreRejection = (error) => error.reason === "conflict" || error.reason === "invalid-input";
11
10
  const localRepresentationFailure = () => persistenceFailure();
@@ -120,7 +119,7 @@ const localActionEvidence = (runtime, fold) => Effect.gen(function* () {
120
119
  if (!retained) {
121
120
  yield* mergeEvidence(runtime, fold, "action", evidence);
122
121
  }
123
- yield* Effect.uninterruptible(queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
122
+ yield* Effect.uninterruptible(runtime.phases.queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
124
123
  fold.localActionEvidenceQueued = true;
125
124
  }))));
126
125
  });
@@ -194,7 +193,7 @@ const localDurabilityEvidence = (runtime, fold) => Effect.gen(function* () {
194
193
  if (retained === undefined) {
195
194
  yield* mergeEvidence(runtime, fold, "durability", evidence);
196
195
  }
197
- yield* Effect.uninterruptible(queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
196
+ yield* Effect.uninterruptible(runtime.phases.queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
198
197
  fold.localDurabilityEvidenceQueued = true;
199
198
  }))));
200
199
  });
@@ -228,7 +227,7 @@ const reproposalDispositionByReason = {
228
227
  "unknown-agent": "fail",
229
228
  "version-mismatch": "fail",
230
229
  };
231
- const reproposePendingIntent = (runtime, pending) => proposeIntent(runtime, pending).pipe(Effect.asVoid, Effect.catchTag("SendError", (error) => reproposalDispositionByReason[error.reason] === "ignore"
230
+ const reproposePendingIntent = (runtime, pending) => runtime.phases.proposeIntent(runtime, pending).pipe(Effect.asVoid, Effect.catchTag("SendError", (error) => reproposalDispositionByReason[error.reason] === "ignore"
232
231
  ? Effect.void
233
232
  : Effect.fail(persistenceFailure())));
234
233
  const rebasePendingIntents = (runtime, conversationId) => Effect.forEach(runtime.intents.values(), (pending) => pending.intent.conversationId === conversationId &&
@@ -279,7 +278,9 @@ const promote = (runtime, fold, record, source) => Effect.gen(function* () {
279
278
  ? persistPromotionWithoutDelivery(runtime, stored, source)
280
279
  : persistPromotionWithDelivery(runtime, stored, source, delivery);
281
280
  const queuePromotion = source === "assembled"
282
- ? queueCertifiedPacket(runtime, fold.conversation, record).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(markCertifiedPacketQueued(fold)))
281
+ ? runtime.phases
282
+ .queueCertifiedPacket(runtime, fold.conversation, record)
283
+ .pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(markCertifiedPacketQueued(fold)))
283
284
  : Effect.sync(() => {
284
285
  fold.actionCertifiedRecordQueued = true;
285
286
  fold.certifiedRecordQueued = true;
@@ -319,7 +320,9 @@ const stageActionCertificate = (runtime, fold, record, source) => Effect.gen(fun
319
320
  runtime.recordFolds.set(record.recordHash, fold);
320
321
  });
321
322
  if (source === "assembled") {
322
- yield* Effect.uninterruptible(queueCertifiedPacket(runtime, fold.conversation, record).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
323
+ yield* Effect.uninterruptible(runtime.phases
324
+ .queueCertifiedPacket(runtime, fold.conversation, record)
325
+ .pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
323
326
  fold.actionCertifiedRecordQueued = true;
324
327
  })), Effect.zipRight(updateFold)));
325
328
  }