@moltzap/client 2026.1002.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 (515) hide show
  1. package/NOTICE +1 -6
  2. package/README.md +2 -2
  3. package/bin/moltzapd +2 -2
  4. package/dist/{harness-mcp-contract.d.ts → delivery/history-export.d.ts} +96 -136
  5. package/dist/delivery/history-export.d.ts.map +1 -0
  6. package/dist/{daemon/runtime → delivery}/history-export.js +36 -3
  7. package/dist/delivery/history-export.js.map +1 -0
  8. package/dist/delivery/host-delivery.d.ts +51 -0
  9. package/dist/delivery/host-delivery.d.ts.map +1 -0
  10. package/dist/delivery/host-delivery.js +109 -0
  11. package/dist/delivery/host-delivery.js.map +1 -0
  12. package/dist/delivery/inbox.d.ts +142 -0
  13. package/dist/delivery/inbox.d.ts.map +1 -0
  14. package/dist/delivery/inbox.js +130 -0
  15. package/dist/delivery/inbox.js.map +1 -0
  16. package/dist/delivery/index.d.ts +4 -0
  17. package/dist/delivery/index.d.ts.map +1 -0
  18. package/dist/delivery/index.js +4 -0
  19. package/dist/delivery/index.js.map +1 -0
  20. package/dist/delivery/operations.d.ts +787 -0
  21. package/dist/delivery/operations.d.ts.map +1 -0
  22. package/dist/delivery/operations.js +162 -0
  23. package/dist/delivery/operations.js.map +1 -0
  24. package/dist/delivery/pass.d.ts +91 -0
  25. package/dist/delivery/pass.d.ts.map +1 -0
  26. package/dist/{daemon/runtime/pending-delivery.js → delivery/pass.js} +61 -34
  27. package/dist/delivery/pass.js.map +1 -0
  28. package/dist/delivery/send-invocations.d.ts +106 -0
  29. package/dist/delivery/send-invocations.d.ts.map +1 -0
  30. package/dist/delivery/send-invocations.js +109 -0
  31. package/dist/delivery/send-invocations.js.map +1 -0
  32. package/dist/endpoint/harness-endpoint/capability.d.ts +39 -0
  33. package/dist/endpoint/harness-endpoint/capability.d.ts.map +1 -0
  34. package/dist/endpoint/harness-endpoint/capability.js +9 -0
  35. package/dist/endpoint/harness-endpoint/capability.js.map +1 -0
  36. package/dist/endpoint/harness-endpoint/events.d.ts +12 -0
  37. package/dist/endpoint/harness-endpoint/events.d.ts.map +1 -0
  38. package/dist/endpoint/harness-endpoint/events.js +199 -0
  39. package/dist/endpoint/harness-endpoint/events.js.map +1 -0
  40. package/dist/{client-runtime.d.ts → endpoint/harness-endpoint/index.d.ts} +4 -2
  41. package/dist/endpoint/harness-endpoint/index.d.ts.map +1 -0
  42. package/dist/{client-runtime.js → endpoint/harness-endpoint/index.js} +115 -115
  43. package/dist/endpoint/harness-endpoint/index.js.map +1 -0
  44. package/dist/endpoint/implementation.d.ts +4 -0
  45. package/dist/endpoint/implementation.d.ts.map +1 -0
  46. package/dist/endpoint/implementation.js +5 -0
  47. package/dist/endpoint/implementation.js.map +1 -0
  48. package/dist/endpoint/mcp/auth.d.ts +31 -0
  49. package/dist/endpoint/mcp/auth.d.ts.map +1 -0
  50. package/dist/endpoint/mcp/auth.js +42 -0
  51. package/dist/endpoint/mcp/auth.js.map +1 -0
  52. package/dist/endpoint/mcp/event-schemas.d.ts +151 -0
  53. package/dist/endpoint/mcp/event-schemas.d.ts.map +1 -0
  54. package/dist/endpoint/mcp/event-schemas.js +72 -0
  55. package/dist/endpoint/mcp/event-schemas.js.map +1 -0
  56. package/dist/endpoint/mcp/event-signing.d.ts +62 -0
  57. package/dist/endpoint/mcp/event-signing.d.ts.map +1 -0
  58. package/dist/endpoint/mcp/event-signing.js +185 -0
  59. package/dist/endpoint/mcp/event-signing.js.map +1 -0
  60. package/dist/endpoint/mcp/events.d.ts +45 -0
  61. package/dist/endpoint/mcp/events.d.ts.map +1 -0
  62. package/dist/endpoint/mcp/events.js +308 -0
  63. package/dist/endpoint/mcp/events.js.map +1 -0
  64. package/dist/{harness-mcp-http.d.ts → endpoint/mcp/http.d.ts} +1 -1
  65. package/dist/endpoint/mcp/http.d.ts.map +1 -0
  66. package/dist/{harness-mcp-http.js → endpoint/mcp/http.js} +1 -1
  67. package/dist/endpoint/mcp/http.js.map +1 -0
  68. package/dist/endpoint/mcp/index.d.ts +10 -0
  69. package/dist/endpoint/mcp/index.d.ts.map +1 -0
  70. package/dist/endpoint/mcp/index.js +8 -0
  71. package/dist/endpoint/mcp/index.js.map +1 -0
  72. package/dist/endpoint/mcp/names.d.ts +18 -0
  73. package/dist/endpoint/mcp/names.d.ts.map +1 -0
  74. package/dist/endpoint/mcp/names.js +18 -0
  75. package/dist/endpoint/mcp/names.js.map +1 -0
  76. package/dist/{management-runtime.d.ts → endpoint/mcp/owner-tools.d.ts} +7 -7
  77. package/dist/endpoint/mcp/owner-tools.d.ts.map +1 -0
  78. package/dist/{management-runtime.js → endpoint/mcp/owner-tools.js} +2 -4
  79. package/dist/endpoint/mcp/owner-tools.js.map +1 -0
  80. package/dist/endpoint/mcp/schemas.d.ts +42 -0
  81. package/dist/endpoint/mcp/schemas.d.ts.map +1 -0
  82. package/dist/endpoint/mcp/schemas.js +89 -0
  83. package/dist/endpoint/mcp/schemas.js.map +1 -0
  84. package/dist/{harness-mcp-wire.d.ts → endpoint/mcp/tools.d.ts} +17 -14
  85. package/dist/endpoint/mcp/tools.d.ts.map +1 -0
  86. package/dist/{harness-mcp-wire.js → endpoint/mcp/tools.js} +230 -110
  87. package/dist/endpoint/mcp/tools.js.map +1 -0
  88. package/dist/endpoint/mcp/webhook.d.ts +15 -0
  89. package/dist/endpoint/mcp/webhook.d.ts.map +1 -0
  90. package/dist/endpoint/mcp/webhook.js +359 -0
  91. package/dist/endpoint/mcp/webhook.js.map +1 -0
  92. package/dist/identity/credentials.d.ts +46 -0
  93. package/dist/identity/credentials.d.ts.map +1 -0
  94. package/dist/identity/credentials.js +55 -0
  95. package/dist/identity/credentials.js.map +1 -0
  96. package/dist/identity/index.d.ts +4 -0
  97. package/dist/identity/index.d.ts.map +1 -0
  98. package/dist/identity/index.js +4 -0
  99. package/dist/identity/index.js.map +1 -0
  100. package/dist/index.d.ts +21 -4
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +23 -5
  103. package/dist/index.js.map +1 -1
  104. package/dist/{contract.types-check.d.ts → index.types-check.d.ts} +12 -7
  105. package/dist/index.types-check.d.ts.map +1 -0
  106. package/dist/{contract.types-check.js → index.types-check.js} +6 -5
  107. package/dist/index.types-check.js.map +1 -0
  108. package/dist/{daemon/runtime/activation.d.ts → service/activation/index.d.ts} +11 -13
  109. package/dist/service/activation/index.d.ts.map +1 -0
  110. package/dist/{daemon/runtime/activation.js → service/activation/index.js} +3 -3
  111. package/dist/service/activation/index.js.map +1 -0
  112. package/dist/{daemon/configuration.d.ts → service/bootstrap.d.ts} +9 -17
  113. package/dist/service/bootstrap.d.ts.map +1 -0
  114. package/dist/service/bootstrap.js +6 -0
  115. package/dist/service/bootstrap.js.map +1 -0
  116. package/dist/service/configuration.d.ts +13 -0
  117. package/dist/service/configuration.d.ts.map +1 -0
  118. package/dist/service/configuration.js +75 -0
  119. package/dist/service/configuration.js.map +1 -0
  120. package/dist/{daemon/runtime → service}/controller.d.ts +9 -7
  121. package/dist/service/controller.d.ts.map +1 -0
  122. package/dist/service/controller.js +106 -0
  123. package/dist/service/controller.js.map +1 -0
  124. package/dist/{server.d.ts → service/index.d.ts} +7 -4
  125. package/dist/service/index.d.ts.map +1 -0
  126. package/dist/{server.js → service/index.js} +17 -15
  127. package/dist/service/index.js.map +1 -0
  128. package/dist/{server.types-check.d.ts → service/index.types-check.d.ts} +7 -7
  129. package/dist/service/index.types-check.d.ts.map +1 -0
  130. package/dist/{server.types-check.js → service/index.types-check.js} +1 -1
  131. package/dist/service/index.types-check.js.map +1 -0
  132. package/dist/{daemon/runtime/index.d.ts → service/lifecycle.d.ts} +4 -4
  133. package/dist/service/lifecycle.d.ts.map +1 -0
  134. package/dist/{daemon/runtime/index.js → service/lifecycle.js} +29 -26
  135. package/dist/service/lifecycle.js.map +1 -0
  136. package/dist/{daemon → service}/management.d.ts +3 -3
  137. package/dist/service/management.d.ts.map +1 -0
  138. package/dist/{daemon → service}/management.js +4 -14
  139. package/dist/service/management.js.map +1 -0
  140. package/dist/{daemon/registration.d.ts → service/registration/index.d.ts} +3 -3
  141. package/dist/service/registration/index.d.ts.map +1 -0
  142. package/dist/{daemon/registration.js → service/registration/index.js} +2 -3
  143. package/dist/service/registration/index.js.map +1 -0
  144. package/dist/{daemon/runtime/protocol.d.ts → service/supervision.d.ts} +17 -25
  145. package/dist/service/supervision.d.ts.map +1 -0
  146. package/dist/{daemon/runtime/protocol.js → service/supervision.js} +34 -37
  147. package/dist/service/supervision.js.map +1 -0
  148. package/dist/store/anchors.d.ts.map +1 -0
  149. package/dist/store/anchors.js.map +1 -0
  150. package/dist/store/database/index.d.ts.map +1 -0
  151. package/dist/store/database/index.js.map +1 -0
  152. package/dist/store/database/schema.d.ts.map +1 -0
  153. package/dist/{endpoint/store → store}/database/schema.js +42 -6
  154. package/dist/store/database/schema.js.map +1 -0
  155. package/dist/store/database/values.d.ts.map +1 -0
  156. package/dist/store/database/values.js.map +1 -0
  157. package/dist/store/inbox.d.ts +86 -0
  158. package/dist/store/inbox.d.ts.map +1 -0
  159. package/dist/store/inbox.js +269 -0
  160. package/dist/store/inbox.js.map +1 -0
  161. package/dist/store/index.d.ts +12 -0
  162. package/dist/store/index.d.ts.map +1 -0
  163. package/dist/store/index.js +8 -0
  164. package/dist/store/index.js.map +1 -0
  165. package/dist/{endpoint/store → store/queues}/deliveries.d.ts +9 -1
  166. package/dist/store/queues/deliveries.d.ts.map +1 -0
  167. package/dist/{endpoint/store → store/queues}/deliveries.js +19 -3
  168. package/dist/store/queues/deliveries.js.map +1 -0
  169. package/dist/{endpoint/store → store/queues}/dissemination.d.ts +4 -2
  170. package/dist/store/queues/dissemination.d.ts.map +1 -0
  171. package/dist/{endpoint/store → store/queues}/dissemination.js +5 -4
  172. package/dist/store/queues/dissemination.js.map +1 -0
  173. package/dist/store/queues/index.d.ts +5 -0
  174. package/dist/store/queues/index.d.ts.map +1 -0
  175. package/dist/store/queues/index.js +7 -0
  176. package/dist/store/queues/index.js.map +1 -0
  177. package/dist/{endpoint/store → store/queues}/outbound.d.ts +1 -1
  178. package/dist/store/queues/outbound.d.ts.map +1 -0
  179. package/dist/{endpoint/store → store/queues}/outbound.js +1 -1
  180. package/dist/store/queues/outbound.js.map +1 -0
  181. package/dist/{endpoint/store/management.d.ts → store/reads.d.ts} +1 -1
  182. package/dist/store/reads.d.ts.map +1 -0
  183. package/dist/{endpoint/store/management.js → store/reads.js} +2 -4
  184. package/dist/store/reads.js.map +1 -0
  185. package/dist/store/records.d.ts.map +1 -0
  186. package/dist/{endpoint/store → store}/records.js +1 -2
  187. package/dist/store/records.js.map +1 -0
  188. package/dist/store/rows/index.d.ts.map +1 -0
  189. package/dist/store/rows/index.js.map +1 -0
  190. package/dist/store/runtime-codec.d.ts +17 -0
  191. package/dist/store/runtime-codec.d.ts.map +1 -0
  192. package/dist/store/runtime-codec.js +32 -0
  193. package/dist/store/runtime-codec.js.map +1 -0
  194. package/dist/{endpoint/store/index.d.ts → store/store.d.ts} +2 -2
  195. package/dist/store/store.d.ts.map +1 -0
  196. package/dist/{endpoint/store/index.js → store/store.js} +34 -7
  197. package/dist/store/store.js.map +1 -0
  198. package/dist/{endpoint/store → store}/types.d.ts +41 -0
  199. package/dist/store/types.d.ts.map +1 -0
  200. package/dist/store/types.js.map +1 -0
  201. package/dist/transport/collectives/answer-formats.d.ts +21 -0
  202. package/dist/transport/collectives/answer-formats.d.ts.map +1 -0
  203. package/dist/transport/collectives/answer-formats.js +127 -0
  204. package/dist/transport/collectives/answer-formats.js.map +1 -0
  205. package/dist/transport/collectives/failures.d.ts +34 -0
  206. package/dist/transport/collectives/failures.d.ts.map +1 -0
  207. package/dist/transport/collectives/failures.js +40 -0
  208. package/dist/transport/collectives/failures.js.map +1 -0
  209. package/dist/transport/collectives/forms.d.ts +260 -0
  210. package/dist/transport/collectives/forms.d.ts.map +1 -0
  211. package/dist/transport/collectives/forms.js +214 -0
  212. package/dist/transport/collectives/forms.js.map +1 -0
  213. package/dist/transport/collectives/inbound.d.ts +129 -0
  214. package/dist/transport/collectives/inbound.d.ts.map +1 -0
  215. package/dist/transport/collectives/inbound.js +81 -0
  216. package/dist/transport/collectives/inbound.js.map +1 -0
  217. package/dist/transport/collectives/index.d.ts +10 -0
  218. package/dist/transport/collectives/index.d.ts.map +1 -0
  219. package/dist/transport/collectives/index.js +8 -0
  220. package/dist/transport/collectives/index.js.map +1 -0
  221. package/dist/{message-text.d.ts → transport/collectives/message-text.d.ts} +8 -4
  222. package/dist/transport/collectives/message-text.d.ts.map +1 -0
  223. package/dist/{message-text.js → transport/collectives/message-text.js} +23 -47
  224. package/dist/transport/collectives/message-text.js.map +1 -0
  225. package/dist/{endpoint/collective → transport/collectives}/operation.d.ts +35 -24
  226. package/dist/transport/collectives/operation.d.ts.map +1 -0
  227. package/dist/{endpoint/collective → transport/collectives}/operation.js +70 -105
  228. package/dist/transport/collectives/operation.js.map +1 -0
  229. package/dist/transport/collectives/part/grammar.d.ts +175 -0
  230. package/dist/transport/collectives/part/grammar.d.ts.map +1 -0
  231. package/dist/transport/collectives/part/grammar.js +222 -0
  232. package/dist/transport/collectives/part/grammar.js.map +1 -0
  233. package/dist/{endpoint/collective/wire.d.ts → transport/collectives/part/index.d.ts} +38 -51
  234. package/dist/transport/collectives/part/index.d.ts.map +1 -0
  235. package/dist/{endpoint/collective/wire.js → transport/collectives/part/index.js} +20 -122
  236. package/dist/transport/collectives/part/index.js.map +1 -0
  237. package/dist/{endpoint/collective → transport/collectives}/received-request.d.ts +2 -1
  238. package/dist/transport/collectives/received-request.d.ts.map +1 -0
  239. package/dist/transport/collectives/received-request.js.map +1 -0
  240. package/dist/transport/collectives/render.d.ts +40 -0
  241. package/dist/transport/collectives/render.d.ts.map +1 -0
  242. package/dist/transport/collectives/render.js +74 -0
  243. package/dist/transport/collectives/render.js.map +1 -0
  244. package/dist/{endpoint/collective → transport/collectives}/request-sends.d.ts +3 -2
  245. package/dist/transport/collectives/request-sends.d.ts.map +1 -0
  246. package/dist/transport/collectives/request-sends.js.map +1 -0
  247. package/dist/{endpoint/collective → transport/collectives}/shared-answers.d.ts +4 -3
  248. package/dist/transport/collectives/shared-answers.d.ts.map +1 -0
  249. package/dist/transport/collectives/shared-answers.js.map +1 -0
  250. package/dist/transport/collectives/validation.d.ts +31 -0
  251. package/dist/transport/collectives/validation.d.ts.map +1 -0
  252. package/dist/transport/collectives/validation.js +239 -0
  253. package/dist/transport/collectives/validation.js.map +1 -0
  254. package/dist/{endpoint/addressing/index.d.ts → transport/messaging/address.d.ts} +7 -4
  255. package/dist/transport/messaging/address.d.ts.map +1 -0
  256. package/dist/{endpoint/addressing/index.js → transport/messaging/address.js} +30 -26
  257. package/dist/transport/messaging/address.js.map +1 -0
  258. package/dist/{endpoint/protocol/index.d.ts → transport/messaging/certification.d.ts} +4 -4
  259. package/dist/transport/messaging/certification.d.ts.map +1 -0
  260. package/dist/{endpoint/protocol/index.js → transport/messaging/certification.js} +15 -10
  261. package/dist/transport/messaging/certification.js.map +1 -0
  262. package/dist/{endpoint/engine-dissemination.d.ts → transport/messaging/dissemination.d.ts} +3 -3
  263. package/dist/transport/messaging/dissemination.d.ts.map +1 -0
  264. package/dist/{endpoint/engine-dissemination.js → transport/messaging/dissemination.js} +7 -6
  265. package/dist/transport/messaging/dissemination.js.map +1 -0
  266. package/dist/transport/messaging/errors.d.ts +50 -0
  267. package/dist/transport/messaging/errors.d.ts.map +1 -0
  268. package/dist/transport/messaging/errors.js +64 -0
  269. package/dist/transport/messaging/errors.js.map +1 -0
  270. package/dist/{endpoint/protocol → transport/messaging}/evidence.d.ts +3 -3
  271. package/dist/transport/messaging/evidence.d.ts.map +1 -0
  272. package/dist/{endpoint/protocol → transport/messaging}/evidence.js +1 -1
  273. package/dist/transport/messaging/evidence.js.map +1 -0
  274. package/dist/{endpoint/engine.d.ts → transport/messaging/index.d.ts} +4 -4
  275. package/dist/transport/messaging/index.d.ts.map +1 -0
  276. package/dist/{endpoint/engine.js → transport/messaging/index.js} +25 -9
  277. package/dist/transport/messaging/index.js.map +1 -0
  278. package/dist/transport/messaging/message.d.ts +112 -0
  279. package/dist/transport/messaging/message.d.ts.map +1 -0
  280. package/dist/transport/messaging/message.js +38 -0
  281. package/dist/transport/messaging/message.js.map +1 -0
  282. package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.d.ts +5 -5
  283. package/dist/transport/messaging/reanchor/empty.d.ts.map +1 -0
  284. package/dist/{endpoint/recovery → transport/messaging}/reanchor/empty.js +3 -3
  285. package/dist/transport/messaging/reanchor/empty.js.map +1 -0
  286. package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.d.ts +3 -3
  287. package/dist/transport/messaging/reanchor/index.d.ts.map +1 -0
  288. package/dist/{endpoint/recovery → transport/messaging}/reanchor/index.js +27 -12
  289. package/dist/transport/messaging/reanchor/index.js.map +1 -0
  290. package/dist/{endpoint/engine-durability.d.ts → transport/messaging/records/index.d.ts} +9 -6
  291. package/dist/transport/messaging/records/index.d.ts.map +1 -0
  292. package/dist/{endpoint/engine-durability.js → transport/messaging/records/index.js} +9 -15
  293. package/dist/transport/messaging/records/index.js.map +1 -0
  294. package/dist/{endpoint → transport/messaging}/recovery/barrier.d.ts +1 -1
  295. package/dist/transport/messaging/recovery/barrier.d.ts.map +1 -0
  296. package/dist/transport/messaging/recovery/barrier.js.map +1 -0
  297. package/dist/{endpoint/recovery/store-evidence.d.ts → transport/messaging/recovery/evidence.d.ts} +5 -5
  298. package/dist/transport/messaging/recovery/evidence.d.ts.map +1 -0
  299. package/dist/{endpoint/recovery/store-evidence.js → transport/messaging/recovery/evidence.js} +3 -3
  300. package/dist/transport/messaging/recovery/evidence.js.map +1 -0
  301. package/dist/{endpoint → transport/messaging}/recovery/index.d.ts +4 -4
  302. package/dist/transport/messaging/recovery/index.d.ts.map +1 -0
  303. package/dist/{endpoint → transport/messaging}/recovery/index.js +41 -32
  304. package/dist/transport/messaging/recovery/index.js.map +1 -0
  305. package/dist/{endpoint/recovery/store.d.ts → transport/messaging/recovery/persistence.d.ts} +5 -5
  306. package/dist/transport/messaging/recovery/persistence.d.ts.map +1 -0
  307. package/dist/{endpoint/recovery/store.js → transport/messaging/recovery/persistence.js} +4 -4
  308. package/dist/transport/messaging/recovery/persistence.js.map +1 -0
  309. package/dist/{endpoint/recovery/state.d.ts → transport/messaging/recovery-session/index.d.ts} +6 -6
  310. package/dist/transport/messaging/recovery-session/index.d.ts.map +1 -0
  311. package/dist/{endpoint/recovery/state.js → transport/messaging/recovery-session/index.js} +3 -3
  312. package/dist/transport/messaging/recovery-session/index.js.map +1 -0
  313. package/dist/{endpoint/engine-types.d.ts → transport/messaging/runtime/index.d.ts} +22 -5
  314. package/dist/transport/messaging/runtime/index.d.ts.map +1 -0
  315. package/dist/{endpoint/engine-types.js → transport/messaging/runtime/index.js} +1 -1
  316. package/dist/transport/messaging/runtime/index.js.map +1 -0
  317. package/dist/{endpoint/engine-send.d.ts → transport/messaging/send.d.ts} +5 -4
  318. package/dist/transport/messaging/send.d.ts.map +1 -0
  319. package/dist/{endpoint/engine-send.js → transport/messaging/send.js} +4 -4
  320. package/dist/transport/messaging/send.js.map +1 -0
  321. package/dist/transport/router/index.d.ts.map +1 -0
  322. package/dist/{endpoint/router-worker → transport/router}/index.js +1 -1
  323. package/dist/transport/router/index.js.map +1 -0
  324. package/dist/transport/router/outage.d.ts.map +1 -0
  325. package/dist/transport/router/outage.js.map +1 -0
  326. package/dist/{endpoint/router-worker → transport/router}/types.d.ts +3 -4
  327. package/dist/transport/router/types.d.ts.map +1 -0
  328. package/dist/transport/router/types.js.map +1 -0
  329. package/dist/{endpoint/representation-canonical.d.ts → transport/wire/encoding/canonical.d.ts} +1 -2
  330. package/dist/transport/wire/encoding/canonical.d.ts.map +1 -0
  331. package/dist/{endpoint/representation-canonical.js → transport/wire/encoding/canonical.js} +2 -2
  332. package/dist/transport/wire/encoding/canonical.js.map +1 -0
  333. package/dist/{endpoint/representation-codec.d.ts → transport/wire/encoding/codec.d.ts} +5 -9
  334. package/dist/transport/wire/encoding/codec.d.ts.map +1 -0
  335. package/dist/{endpoint/representation-codec.js → transport/wire/encoding/codec.js} +7 -27
  336. package/dist/transport/wire/encoding/codec.js.map +1 -0
  337. package/dist/transport/wire/encoding/index.d.ts +4 -0
  338. package/dist/transport/wire/encoding/index.d.ts.map +1 -0
  339. package/dist/transport/wire/encoding/index.js +6 -0
  340. package/dist/transport/wire/encoding/index.js.map +1 -0
  341. package/dist/transport/wire/index.d.ts +6 -0
  342. package/dist/transport/wire/index.d.ts.map +1 -0
  343. package/dist/transport/wire/index.js +9 -0
  344. package/dist/transport/wire/index.js.map +1 -0
  345. package/dist/{endpoint/representation-schemas.d.ts → transport/wire/schemas.d.ts} +76 -98
  346. package/dist/transport/wire/schemas.d.ts.map +1 -0
  347. package/dist/{endpoint/representation-schemas.js → transport/wire/schemas.js} +7 -19
  348. package/dist/transport/wire/schemas.js.map +1 -0
  349. package/dist/transport/wire/values.d.ts +114 -0
  350. package/dist/transport/wire/values.d.ts.map +1 -0
  351. package/dist/transport/wire/values.js +192 -0
  352. package/dist/transport/wire/values.js.map +1 -0
  353. package/dist/{endpoint/representation-verification.d.ts → transport/wire/verification.d.ts} +3 -4
  354. package/dist/transport/wire/verification.d.ts.map +1 -0
  355. package/dist/{endpoint/representation-verification.js → transport/wire/verification.js} +4 -4
  356. package/dist/transport/wire/verification.js.map +1 -0
  357. package/package.json +6 -6
  358. package/dist/client-runtime.d.ts.map +0 -1
  359. package/dist/client-runtime.js.map +0 -1
  360. package/dist/contract.d.ts +0 -721
  361. package/dist/contract.d.ts.map +0 -1
  362. package/dist/contract.js +0 -441
  363. package/dist/contract.js.map +0 -1
  364. package/dist/contract.types-check.d.ts.map +0 -1
  365. package/dist/contract.types-check.js.map +0 -1
  366. package/dist/daemon/configuration.d.ts.map +0 -1
  367. package/dist/daemon/configuration.js +0 -75
  368. package/dist/daemon/configuration.js.map +0 -1
  369. package/dist/daemon/management.d.ts.map +0 -1
  370. package/dist/daemon/management.js.map +0 -1
  371. package/dist/daemon/registration.d.ts.map +0 -1
  372. package/dist/daemon/registration.js.map +0 -1
  373. package/dist/daemon/runtime/activation.d.ts.map +0 -1
  374. package/dist/daemon/runtime/activation.js.map +0 -1
  375. package/dist/daemon/runtime/controller.d.ts.map +0 -1
  376. package/dist/daemon/runtime/controller.js +0 -138
  377. package/dist/daemon/runtime/controller.js.map +0 -1
  378. package/dist/daemon/runtime/history-export.d.ts +0 -33
  379. package/dist/daemon/runtime/history-export.d.ts.map +0 -1
  380. package/dist/daemon/runtime/history-export.js.map +0 -1
  381. package/dist/daemon/runtime/index.d.ts.map +0 -1
  382. package/dist/daemon/runtime/index.js.map +0 -1
  383. package/dist/daemon/runtime/pending-delivery.d.ts +0 -49
  384. package/dist/daemon/runtime/pending-delivery.d.ts.map +0 -1
  385. package/dist/daemon/runtime/pending-delivery.js.map +0 -1
  386. package/dist/daemon/runtime/protocol.d.ts.map +0 -1
  387. package/dist/daemon/runtime/protocol.js.map +0 -1
  388. package/dist/endpoint/addressing/index.d.ts.map +0 -1
  389. package/dist/endpoint/addressing/index.js.map +0 -1
  390. package/dist/endpoint/collective/operation.d.ts.map +0 -1
  391. package/dist/endpoint/collective/operation.js.map +0 -1
  392. package/dist/endpoint/collective/received-request.d.ts.map +0 -1
  393. package/dist/endpoint/collective/received-request.js.map +0 -1
  394. package/dist/endpoint/collective/request-sends.d.ts.map +0 -1
  395. package/dist/endpoint/collective/request-sends.js.map +0 -1
  396. package/dist/endpoint/collective/shared-answers.d.ts.map +0 -1
  397. package/dist/endpoint/collective/shared-answers.js.map +0 -1
  398. package/dist/endpoint/collective/validation.d.ts +0 -49
  399. package/dist/endpoint/collective/validation.d.ts.map +0 -1
  400. package/dist/endpoint/collective/validation.js +0 -97
  401. package/dist/endpoint/collective/validation.js.map +0 -1
  402. package/dist/endpoint/collective/wire.d.ts.map +0 -1
  403. package/dist/endpoint/collective/wire.js.map +0 -1
  404. package/dist/endpoint/engine-dissemination.d.ts.map +0 -1
  405. package/dist/endpoint/engine-dissemination.js.map +0 -1
  406. package/dist/endpoint/engine-durability.d.ts.map +0 -1
  407. package/dist/endpoint/engine-durability.js.map +0 -1
  408. package/dist/endpoint/engine-send.d.ts.map +0 -1
  409. package/dist/endpoint/engine-send.js.map +0 -1
  410. package/dist/endpoint/engine-types.d.ts.map +0 -1
  411. package/dist/endpoint/engine-types.js.map +0 -1
  412. package/dist/endpoint/engine.d.ts.map +0 -1
  413. package/dist/endpoint/engine.js.map +0 -1
  414. package/dist/endpoint/protocol/evidence.d.ts.map +0 -1
  415. package/dist/endpoint/protocol/evidence.js.map +0 -1
  416. package/dist/endpoint/protocol/index.d.ts.map +0 -1
  417. package/dist/endpoint/protocol/index.js.map +0 -1
  418. package/dist/endpoint/recovery/barrier.d.ts.map +0 -1
  419. package/dist/endpoint/recovery/barrier.js.map +0 -1
  420. package/dist/endpoint/recovery/index.d.ts.map +0 -1
  421. package/dist/endpoint/recovery/index.js.map +0 -1
  422. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +0 -1
  423. package/dist/endpoint/recovery/reanchor/empty.js.map +0 -1
  424. package/dist/endpoint/recovery/reanchor/index.d.ts.map +0 -1
  425. package/dist/endpoint/recovery/reanchor/index.js.map +0 -1
  426. package/dist/endpoint/recovery/state.d.ts.map +0 -1
  427. package/dist/endpoint/recovery/state.js.map +0 -1
  428. package/dist/endpoint/recovery/store-evidence.d.ts.map +0 -1
  429. package/dist/endpoint/recovery/store-evidence.js.map +0 -1
  430. package/dist/endpoint/recovery/store.d.ts.map +0 -1
  431. package/dist/endpoint/recovery/store.js.map +0 -1
  432. package/dist/endpoint/representation-canonical.d.ts.map +0 -1
  433. package/dist/endpoint/representation-canonical.js.map +0 -1
  434. package/dist/endpoint/representation-codec.d.ts.map +0 -1
  435. package/dist/endpoint/representation-codec.js.map +0 -1
  436. package/dist/endpoint/representation-schemas.d.ts.map +0 -1
  437. package/dist/endpoint/representation-schemas.js.map +0 -1
  438. package/dist/endpoint/representation-verification.d.ts.map +0 -1
  439. package/dist/endpoint/representation-verification.js.map +0 -1
  440. package/dist/endpoint/representation.d.ts +0 -6
  441. package/dist/endpoint/representation.d.ts.map +0 -1
  442. package/dist/endpoint/representation.js +0 -8
  443. package/dist/endpoint/representation.js.map +0 -1
  444. package/dist/endpoint/router-worker/index.d.ts.map +0 -1
  445. package/dist/endpoint/router-worker/index.js.map +0 -1
  446. package/dist/endpoint/router-worker/outage.d.ts.map +0 -1
  447. package/dist/endpoint/router-worker/outage.js.map +0 -1
  448. package/dist/endpoint/router-worker/types.d.ts.map +0 -1
  449. package/dist/endpoint/router-worker/types.js.map +0 -1
  450. package/dist/endpoint/store/anchors.d.ts.map +0 -1
  451. package/dist/endpoint/store/anchors.js.map +0 -1
  452. package/dist/endpoint/store/database/index.d.ts.map +0 -1
  453. package/dist/endpoint/store/database/index.js.map +0 -1
  454. package/dist/endpoint/store/database/schema.d.ts.map +0 -1
  455. package/dist/endpoint/store/database/schema.js.map +0 -1
  456. package/dist/endpoint/store/database/values.d.ts.map +0 -1
  457. package/dist/endpoint/store/database/values.js.map +0 -1
  458. package/dist/endpoint/store/deliveries.d.ts.map +0 -1
  459. package/dist/endpoint/store/deliveries.js.map +0 -1
  460. package/dist/endpoint/store/dissemination.d.ts.map +0 -1
  461. package/dist/endpoint/store/dissemination.js.map +0 -1
  462. package/dist/endpoint/store/index.d.ts.map +0 -1
  463. package/dist/endpoint/store/index.js.map +0 -1
  464. package/dist/endpoint/store/management.d.ts.map +0 -1
  465. package/dist/endpoint/store/management.js.map +0 -1
  466. package/dist/endpoint/store/outbound.d.ts.map +0 -1
  467. package/dist/endpoint/store/outbound.js.map +0 -1
  468. package/dist/endpoint/store/records.d.ts.map +0 -1
  469. package/dist/endpoint/store/records.js.map +0 -1
  470. package/dist/endpoint/store/rows/index.d.ts.map +0 -1
  471. package/dist/endpoint/store/rows/index.js.map +0 -1
  472. package/dist/endpoint/store/types.d.ts.map +0 -1
  473. package/dist/endpoint/store/types.js.map +0 -1
  474. package/dist/endpoint/store.d.ts +0 -10
  475. package/dist/endpoint/store.d.ts.map +0 -1
  476. package/dist/endpoint/store.js +0 -6
  477. package/dist/endpoint/store.js.map +0 -1
  478. package/dist/harness-mcp-contract.d.ts.map +0 -1
  479. package/dist/harness-mcp-contract.js +0 -113
  480. package/dist/harness-mcp-contract.js.map +0 -1
  481. package/dist/harness-mcp-http.d.ts.map +0 -1
  482. package/dist/harness-mcp-http.js.map +0 -1
  483. package/dist/harness-mcp-subscription.d.ts +0 -30
  484. package/dist/harness-mcp-subscription.d.ts.map +0 -1
  485. package/dist/harness-mcp-subscription.js +0 -361
  486. package/dist/harness-mcp-subscription.js.map +0 -1
  487. package/dist/harness-mcp-wire.d.ts.map +0 -1
  488. package/dist/harness-mcp-wire.js.map +0 -1
  489. package/dist/management-runtime.d.ts.map +0 -1
  490. package/dist/management-runtime.js.map +0 -1
  491. package/dist/message-text.d.ts.map +0 -1
  492. package/dist/message-text.js.map +0 -1
  493. package/dist/server.d.ts.map +0 -1
  494. package/dist/server.js.map +0 -1
  495. package/dist/server.types-check.d.ts.map +0 -1
  496. package/dist/server.types-check.js.map +0 -1
  497. /package/dist/{endpoint/store → store}/anchors.d.ts +0 -0
  498. /package/dist/{endpoint/store → store}/anchors.js +0 -0
  499. /package/dist/{endpoint/store → store}/database/index.d.ts +0 -0
  500. /package/dist/{endpoint/store → store}/database/index.js +0 -0
  501. /package/dist/{endpoint/store → store}/database/schema.d.ts +0 -0
  502. /package/dist/{endpoint/store → store}/database/values.d.ts +0 -0
  503. /package/dist/{endpoint/store → store}/database/values.js +0 -0
  504. /package/dist/{endpoint/store → store}/records.d.ts +0 -0
  505. /package/dist/{endpoint/store → store}/rows/index.d.ts +0 -0
  506. /package/dist/{endpoint/store → store}/rows/index.js +0 -0
  507. /package/dist/{endpoint/store → store}/types.js +0 -0
  508. /package/dist/{endpoint/collective → transport/collectives}/received-request.js +0 -0
  509. /package/dist/{endpoint/collective → transport/collectives}/request-sends.js +0 -0
  510. /package/dist/{endpoint/collective → transport/collectives}/shared-answers.js +0 -0
  511. /package/dist/{endpoint → transport/messaging}/recovery/barrier.js +0 -0
  512. /package/dist/{endpoint/router-worker → transport/router}/index.d.ts +0 -0
  513. /package/dist/{endpoint/router-worker → transport/router}/outage.d.ts +0 -0
  514. /package/dist/{endpoint/router-worker → transport/router}/outage.js +0 -0
  515. /package/dist/{endpoint/router-worker → transport/router}/types.js +0 -0
@@ -19,13 +19,14 @@
19
19
  * participant ME as Member endpoint
20
20
  * participant MM as Member host
21
21
  * RM->>RE: send gather to, question, deadline, schema
22
- * RE->>RE: validate schema, mint id<br>deadline = now + duration
23
- * RE->>ME: one request post per member
24
- * alt no request post is accepted
25
- * RE-->>RM: error naming each unreachable member
26
- * else some request post accepted
22
+ * RE->>RE: validate schema, resolve every member<br>refuse an address error before any post
23
+ * RE->>RE: mint id<br>deadline = now + duration
24
+ * RE->>ME: one request post in each member's direct conversation
25
+ * alt every request post is refused
26
+ * RE-->>RM: error naming each member and its reason
27
+ * else otherwise, after at most 20 s
27
28
  * RE-->>RM: operation id
28
- * RE->>RE: record each refused or uncertified member as no-answer
29
+ * RE->>RE: a refused member is no-answer<br>a pending one settles later, no-answer at the deadline
29
30
  * end
30
31
  * ME->>MM: collectiveRequest item
31
32
  * MM->>ME: send collectiveResponse to the requester, action, content
@@ -48,9 +49,10 @@
48
49
  * participant ME as Member endpoints
49
50
  * participant MM as Member hosts
50
51
  * RM->>RE: send all_gather to group, question, deadline, schema
51
- * RE->>ME: one request post to the group
52
+ * RE->>RE: validate schema, resolve every member<br>refuse an address error before any post
53
+ * RE->>ME: one request post in the group conversation
52
54
  * alt the group post is refused or not certified in time
53
- * RE-->>RM: error naming each unreachable member
55
+ * RE-->>RM: error naming every member with the post's reason
54
56
  * else request post certified
55
57
  * RE-->>RM: operation id
56
58
  * end
@@ -61,28 +63,39 @@
61
63
  * ME->>ME: peer response posts, consumed and recorded by record hash
62
64
  * Note over RE: complete when every member has an outcome<br>or at the deadline
63
65
  * RE->>ME: close post listing the counted answers' record hashes
64
- * RE->>RM: collectiveResult item once the close is certified
65
- * ME->>ME: build the result from exactly the listed answers
66
- * ME->>MM: collectiveResult item, the same outcomes
66
+ * alt the close is not certified
67
+ * RE->>RM: operationFailed item, and members get no result
68
+ * else close certified
69
+ * RE->>RM: collectiveResult item
70
+ * ME->>ME: build the result from exactly the listed answers
71
+ * ME->>MM: collectiveResult item, the same outcomes
72
+ * end
67
73
  * ```
68
74
  */
69
75
  import { Duration, Effect, Option, type Scope } from "effect";
70
- import type { EngineSendInput, EngineSentPost } from "../engine-types.js";
71
- import type { RecordHash } from "../representation.js";
72
- import { AgentAddress, CollectiveError, type FailureDelivery, type InboundItem, type InboundMessage, SendError, type SendInput, type SendResult } from "../../contract.js";
76
+ import type { EngineSendInput, EngineSentPost } from "../messaging/index.js";
77
+ import type { InboundMessage } from "../messaging/message.js";
78
+ import type { InboundItem } from "./inbound.js";
79
+ import { SendError } from "../messaging/errors.js";
80
+ import { AgentAddress, type RecordHash } from "../wire/index.js";
81
+ import { type CollectiveSendOutcome } from "./failures.js";
82
+ import { type CollectiveEmitError, CollectiveError, type FailureDelivery, type SendInput } from "./forms.js";
73
83
  /** What the collective layer needs from the daemon around it. */
74
84
  export interface CollectivePorts {
75
85
  /** The local agent: a group gather or all_gather asks every member but this one. */
76
86
  readonly self: AgentAddress;
77
87
  /**
78
- * Resolve one member's Registry card without sending. A refused all_gather
79
- * group post names only the members that fail this lookup.
88
+ * Resolve one member's Registry card without sending, so a collecting
89
+ * operation refuses an address error before any post.
80
90
  */
81
91
  readonly lookupMember: (member: AgentAddress) => Effect.Effect<void, SendError>;
82
92
  /** Certify one post and complete once it is stored locally. */
83
93
  readonly sendPost: (input: EngineSendInput) => Effect.Effect<EngineSentPost, SendError>;
84
- /** Queue an item the layer emits itself: a result or a failure. */
85
- readonly emit: (item: InboundItem) => Effect.Effect<void>;
94
+ /**
95
+ * Queue an item the layer emits itself: a result or a failure. It fails
96
+ * when the item cannot be kept, which ends the work that emitted it.
97
+ */
98
+ readonly emit: (item: InboundItem) => Effect.Effect<void, CollectiveEmitError>;
86
99
  /** Owns deadline timers and request sends that outlive their send call. */
87
100
  readonly scope: Scope.Scope;
88
101
  /** Overrides `REQUEST_SEND_WAIT`; tests bound the wait. */
@@ -93,10 +106,6 @@ interface CertifiedPost {
93
106
  readonly message: InboundMessage;
94
107
  readonly recordHash: RecordHash;
95
108
  }
96
- /** One completed send: the posts certified by its return, and a collective id. */
97
- interface CollectiveSendOutcome extends SendResult {
98
- readonly postIds: ReadonlyArray<EngineSentPost["postId"]>;
99
- }
100
109
  /** The daemon's collective layer for one active identity. */
101
110
  export interface CollectiveOperations {
102
111
  /**
@@ -112,9 +121,11 @@ export interface CollectiveOperations {
112
121
  * Classify one certified remote post. Answers are recorded and consumed,
113
122
  * every other protocol post is consumed, and each remaining post becomes
114
123
  * one item. Classifying a post again yields the same result, so the daemon
115
- * may run it on every pass over pending deliveries.
124
+ * may run it on every pass over pending deliveries. It fails with
125
+ * `CollectiveEmitError` when a result or failure the post completes cannot
126
+ * be kept, which ends the pass classifying it.
116
127
  */
117
- readonly classify: (post: CertifiedPost) => Effect.Effect<Option.Option<InboundItem>>;
128
+ readonly classify: (post: CertifiedPost) => Effect.Effect<Option.Option<InboundItem>, CollectiveEmitError>;
118
129
  }
119
130
  /**
120
131
  * Build the collective layer for one active identity.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/transport/collectives/operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AAEH,OAAO,EAEL,QAAQ,EACR,MAAM,EAGN,MAAM,EAEN,KAAK,KAAK,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,YAAY,EAGZ,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,qBAAqB,EAK3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,mBAAmB,EACxB,eAAe,EAMf,KAAK,eAAe,EAEpB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AA0FpB,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CACrB,MAAM,EAAE,YAAY,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,eAAe,KACnB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,WAAW,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC9C;AAED,uEAAuE;AACvE,UAAU,aAAa;IACrB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,CACb,KAAK,EAAE,SAAS,EAChB,eAAe,EAAE,eAAe,KAC7B,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IACvE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,aAAa,KAChB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC;CACrE;AA2DD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAC5B,eAAe,KACrB,oBAiBF,CAAC"}
@@ -19,13 +19,14 @@
19
19
  * participant ME as Member endpoint
20
20
  * participant MM as Member host
21
21
  * RM->>RE: send gather to, question, deadline, schema
22
- * RE->>RE: validate schema, mint id&lt;br>deadline = now + duration
23
- * RE->>ME: one request post per member
24
- * alt no request post is accepted
25
- * RE-->>RM: error naming each unreachable member
26
- * else some request post accepted
22
+ * RE->>RE: validate schema, resolve every member&lt;br>refuse an address error before any post
23
+ * RE->>RE: mint id&lt;br>deadline = now + duration
24
+ * RE->>ME: one request post in each member's direct conversation
25
+ * alt every request post is refused
26
+ * RE-->>RM: error naming each member and its reason
27
+ * else otherwise, after at most 20 s
27
28
  * RE-->>RM: operation id
28
- * RE->>RE: record each refused or uncertified member as no-answer
29
+ * RE->>RE: a refused member is no-answer&lt;br>a pending one settles later, no-answer at the deadline
29
30
  * end
30
31
  * ME->>MM: collectiveRequest item
31
32
  * MM->>ME: send collectiveResponse to the requester, action, content
@@ -48,9 +49,10 @@
48
49
  * participant ME as Member endpoints
49
50
  * participant MM as Member hosts
50
51
  * RM->>RE: send all_gather to group, question, deadline, schema
51
- * RE->>ME: one request post to the group
52
+ * RE->>RE: validate schema, resolve every member&lt;br>refuse an address error before any post
53
+ * RE->>ME: one request post in the group conversation
52
54
  * alt the group post is refused or not certified in time
53
- * RE-->>RM: error naming each unreachable member
55
+ * RE-->>RM: error naming every member with the post's reason
54
56
  * else request post certified
55
57
  * RE-->>RM: operation id
56
58
  * end
@@ -61,20 +63,26 @@
61
63
  * ME->>ME: peer response posts, consumed and recorded by record hash
62
64
  * Note over RE: complete when every member has an outcome&lt;br>or at the deadline
63
65
  * RE->>ME: close post listing the counted answers' record hashes
64
- * RE->>RM: collectiveResult item once the close is certified
65
- * ME->>ME: build the result from exactly the listed answers
66
- * ME->>MM: collectiveResult item, the same outcomes
66
+ * alt the close is not certified
67
+ * RE->>RM: operationFailed item, and members get no result
68
+ * else close certified
69
+ * RE->>RM: collectiveResult item
70
+ * ME->>ME: build the result from exactly the listed answers
71
+ * ME->>MM: collectiveResult item, the same outcomes
72
+ * end
67
73
  * ```
68
74
  */
69
- import { Clock, Duration, Effect, Array as EffectArray, Fiber, Option, ParseResult, Schema, } from "effect";
70
- import { randomBytes } from "node:crypto";
71
- import { AgentAddress, CollectiveError, MAXIMUM_DEADLINE_SECONDS, RequestedSchema, SendError, } from "../../contract.js";
72
- import { canonicalMessageAddress } from "../addressing/index.js";
75
+ import { Clock, Duration, Effect, Array as EffectArray, Fiber, Option, Schema, } from "effect";
76
+ import { canonicalMessageAddress } from "../messaging/address.js";
77
+ import { SendError } from "../messaging/errors.js";
78
+ import { AgentAddress, } from "../wire/index.js";
79
+ import { emitFailureAsSendError, refusedAs, reportFailure, } from "./failures.js";
80
+ import { closeFailureText, CollectiveError, describeIssues, MAXIMUM_DEADLINE_SECONDS, } from "./forms.js";
81
+ import { collectiveIdOf, encodeCollectiveContent, FormModeSchema, mintCollectiveId, readCollectiveValue, withoutCollectivePart, } from "./part/index.js";
73
82
  import { matchOpenRequest, } from "./received-request.js";
74
83
  import { isAddressRefusal, lookupRefusals, requestsSoFar, } from "./request-sends.js";
75
84
  import { keepFirstAnswer, listedAnswers, memberOutcomes, } from "./shared-answers.js";
76
85
  import { outcomeOfResponse, validateAnswer } from "./validation.js";
77
- import { collectiveIdOf, encodeCollectiveContent, FormModeSchema, readCollectiveValue, withoutCollectivePart, } from "./wire.js";
78
86
  /**
79
87
  * How long a collecting operation's send waits for its request posts before
80
88
  * returning. A gather's request still uncertified then is left running: its
@@ -107,12 +115,6 @@ const RECEIVED_DEADLINE_ALLOWANCE = Duration.hours(1);
107
115
  /** The furthest past `now` a received request's deadline may lie. */
108
116
  const RECEIVED_DEADLINE_HORIZON = Duration.toMillis(Duration.sum(Duration.seconds(MAXIMUM_DEADLINE_SECONDS), RECEIVED_DEADLINE_ALLOWANCE));
109
117
  const decodeAgentAddress = Schema.decodeUnknownOption(AgentAddress);
110
- const decodeRequestedSchema = Schema.decodeUnknownOption(RequestedSchema);
111
- /** A fresh nonce and the id it binds to the requester. */
112
- const mintCollectiveId = (requester) => Effect.sync(() => {
113
- const nonce = randomBytes(32).toString("base64url");
114
- return { id: collectiveIdOf(requester, nonce), nonce };
115
- });
116
118
  const contentInvalid = () => new SendError({ reason: "content-invalid" });
117
119
  const collectiveFailure = (id, failure) => new CollectiveError({ id, failure });
118
120
  /**
@@ -128,7 +130,7 @@ export const makeCollectiveOperations = (ports) => {
128
130
  };
129
131
  return {
130
132
  send: (input, failureDelivery) => "collectiveResponse" in input
131
- ? reportFailure(state, failureDelivery, respond(state, input.to, input.collectiveResponse))
133
+ ? reportFailure(state.ports.emit, failureDelivery, respond(state, input.to, input.collectiveResponse))
132
134
  : sendOperation(state, input, failureDelivery),
133
135
  classify: (message) => classify(state, message),
134
136
  };
@@ -141,7 +143,7 @@ function sendOperation(state, input, failureDelivery) {
141
143
  return multicast(state, input.to, input.text);
142
144
  case "gather":
143
145
  case "all_gather":
144
- return reportFailure(state, failureDelivery, gather(state, input.to, input.text, operation));
146
+ return reportFailure(state.ports.emit, failureDelivery, gather(state, input.to, input.text, operation));
145
147
  default: {
146
148
  const exhaustive = operation;
147
149
  return exhaustive;
@@ -151,35 +153,6 @@ function sendOperation(state, input, failureDelivery) {
151
153
  function multicast(state, to, text) {
152
154
  return encodeCollectiveContent({ kind: "operation", op: "multicast" }, text).pipe(Effect.mapError(contentInvalid), Effect.flatMap((content) => state.ports.sendPost({ to, content })), Effect.map((post) => ({ postIds: [post.postId] })));
153
155
  }
154
- /**
155
- * Deliver a refused collective send's error where the host wants it. With
156
- * `inbound` the send completes, naming the operation, and the error arrives
157
- * as an `operationFailed` item carrying the same text.
158
- */
159
- function reportFailure(state, failureDelivery, send) {
160
- return send.pipe(Effect.catchAll((refused) => {
161
- switch (failureDelivery) {
162
- case "result":
163
- return Effect.fail(refused.error);
164
- case "inbound":
165
- return state.ports
166
- .emit({
167
- kind: "operationFailed",
168
- id: refused.id,
169
- to: refused.to,
170
- error: refused.error.message,
171
- })
172
- .pipe(Effect.as({ operationId: refused.id, postIds: [] }));
173
- default: {
174
- const exhaustive = failureDelivery;
175
- return exhaustive;
176
- }
177
- }
178
- }));
179
- }
180
- function refusedAs(id, to) {
181
- return (error) => ({ id, to, error });
182
- }
183
156
  /**
184
157
  * The canonical address a collecting operation's result and failure name, by
185
158
  * the rule every send shares, and the members it asks: the one agent of an
@@ -189,7 +162,10 @@ function refusedAs(id, to) {
189
162
  */
190
163
  function gatherAddress(to, self, op) {
191
164
  const selfName = self.slice("agent:".length);
192
- const membershipInvalid = new SendError({ reason: "membership-invalid" });
165
+ const membershipInvalid = new SendError({
166
+ reason: "membership-invalid",
167
+ detail: "an all_gather asks a group of two or more other agents",
168
+ });
193
169
  return canonicalMessageAddress(to, selfName).pipe(Effect.flatMap((canonical) => {
194
170
  if (canonical.kind === "direct") {
195
171
  return op === "gather"
@@ -216,11 +192,7 @@ function gatherAddress(to, self, op) {
216
192
  function formModeSchema(id, requestedSchema) {
217
193
  return Schema.decodeUnknown(FormModeSchema)(requestedSchema).pipe(Effect.mapError((error) => collectiveFailure(id, {
218
194
  kind: "schema-invalid",
219
- detail: ParseResult.ArrayFormatter.formatErrorSync(error)
220
- .map(({ path, message }) => path.length === 0
221
- ? message
222
- : `${path.map(String).join(".")}: ${message}`)
223
- .join("; "),
195
+ detail: describeIssues(error),
224
196
  })));
225
197
  }
226
198
  /**
@@ -266,7 +238,7 @@ function prepareGather(state, requestedTo, question, operation) {
266
238
  function gather(state, requestedTo, question, operation) {
267
239
  return Effect.gen(function* () {
268
240
  const prepared = yield* prepareGather(state, requestedTo, question, operation);
269
- const timer = yield* sleepUntil(prepared.deadlineAt).pipe(Effect.zipRight(completeGather(state, prepared.id)), Effect.forkIn(state.ports.scope));
241
+ const timer = yield* sleepUntil(prepared.deadlineAt).pipe(Effect.zipRight(Effect.ignore(completeGather(state, prepared.id))), Effect.forkIn(state.ports.scope));
270
242
  yield* Effect.sync(() => {
271
243
  state.gathers.set(prepared.id, {
272
244
  ...prepared.open,
@@ -306,7 +278,9 @@ function sleepUntil(at) {
306
278
  * send keeps running and settles its member when it completes: certified
307
279
  * asks it, refused makes it `no-answer`, as does pending at the deadline.
308
280
  * The send fails only when every post was refused and the gather has not
309
- * completed, so an operation ends in exactly one refusal or one result.
281
+ * completed, so an operation ends in exactly one refusal or one result, or
282
+ * as persistence-failed when the result its settling completes cannot be
283
+ * kept.
310
284
  */
311
285
  function sendRequests(state, prepared) {
312
286
  return Effect.gen(function* () {
@@ -324,19 +298,19 @@ function sendRequests(state, prepared) {
324
298
  members: [refusal, ...refusals],
325
299
  }));
326
300
  }
327
- yield* updateGather(state, id, (settled) => {
301
+ yield* emitFailureAsSendError(updateGather(state, id, (settled) => {
328
302
  settled.requestsSettled = true;
329
- });
303
+ }));
330
304
  return { postIds: posts.map((post) => post.postId) };
331
305
  });
332
306
  }
333
307
  /** Record a member whose request post was refused as `no-answer`. */
334
308
  function recordRefusal(state, id, { member }) {
335
- return updateGather(state, id, ({ outcomes }) => {
309
+ return Effect.ignore(updateGather(state, id, ({ outcomes }) => {
336
310
  if (!outcomes.has(member)) {
337
311
  outcomes.set(member, { kind: "no-answer" });
338
312
  }
339
- });
313
+ }));
340
314
  }
341
315
  /**
342
316
  * Apply a change to an open gather, then complete it once its send has
@@ -360,8 +334,11 @@ function updateGather(state, id, change) {
360
334
  * Send an all_gather's one request post to the group and wait for it, never
361
335
  * past the deadline. A refused post, or one still uncertified when the wait
362
336
  * ends, abandons the all_gather: the group's GENESIS needs every member. The
363
- * operation is dropped before its unreachable members are looked up, so a
364
- * deadline that passes during the lookups cannot close it.
337
+ * deadline timer is forked just before the wait starts, so it can complete
338
+ * the all_gather first; its result then stands and the send succeeds, so an
339
+ * operation ends in exactly one refusal or one result. A group post succeeds
340
+ * or fails as a whole, so the refusal names every member with its reason;
341
+ * members whose address resolution fails were refused before the post.
365
342
  */
366
343
  function sendGroupRequest(state, prepared) {
367
344
  return state.ports
@@ -369,24 +346,12 @@ function sendGroupRequest(state, prepared) {
369
346
  .pipe(Effect.timeoutFail({
370
347
  duration: requestWait(state, prepared),
371
348
  onTimeout: () => new SendError({ reason: "certification-unavailable" }),
372
- }), Effect.map((post) => [post.postId]), Effect.catchAll((error) => forgetGather(state, prepared.id).pipe(Effect.zipRight(unreachableMembers(state, prepared.open.members, error.reason)), Effect.flatMap((members) => Effect.fail(collectiveFailure(prepared.id, {
373
- kind: "members-unreachable",
374
- members,
375
- }))))));
376
- }
377
- /**
378
- * The members to name for a refused group post. A group post succeeds or
379
- * fails as a whole, so each member is looked up on its own: the members whose
380
- * lookup fails are named with their own reason, and when every lookup
381
- * succeeds each member is named with the group post's reason.
382
- */
383
- function unreachableMembers(state, members, groupReason) {
384
- return lookupRefusals(members, state.ports.lookupMember).pipe(Effect.map(([first, ...rest]) => first === undefined
385
- ? EffectArray.map(members, (member) => ({
386
- member,
387
- reason: groupReason,
388
- }))
389
- : [first, ...rest]));
349
+ }), Effect.map((post) => [post.postId]), Effect.catchAll((error) => Effect.suspend(() => state.gathers.has(prepared.id)
350
+ ? forgetGather(state, prepared.id).pipe(Effect.zipRight(Effect.fail(collectiveFailure(prepared.id, {
351
+ kind: "members-unreachable",
352
+ members: EffectArray.map(prepared.open.members, (member) => ({ member, reason: error.reason })),
353
+ }))))
354
+ : Effect.succeed([]))));
390
355
  }
391
356
  /** How long a send waits for request posts: the bound, never past the deadline. */
392
357
  function requestWait(state, prepared) {
@@ -416,6 +381,7 @@ function completeGather(state, id) {
416
381
  state.gathers.delete(id);
417
382
  const result = {
418
383
  kind: "collectiveResult",
384
+ op: open.op,
419
385
  id,
420
386
  to: open.to,
421
387
  question: open.question,
@@ -435,8 +401,7 @@ function completeGather(state, id) {
435
401
  }
436
402
  /**
437
403
  * Post an all_gather's close, listing the certified record of every answer
438
- * its result counts, and emit the result once the close is certified, naming
439
- * the close post. A close that cannot be certified ends the operation as an
404
+ * its result counts, and emit the result once the close is certified. A close that cannot be certified ends the operation as an
440
405
  * `operationFailed` item, since members then have no result to agree on.
441
406
  */
442
407
  function closeAllGather(state, open, result) {
@@ -450,9 +415,9 @@ function closeAllGather(state, open, result) {
450
415
  kind: "operationFailed",
451
416
  id: result.id,
452
417
  to: open.to,
453
- error: `all_gather ${result.id} failed: its close was not certified (${error.reason})`,
418
+ error: closeFailureText(error.reason),
454
419
  }),
455
- onSuccess: (post) => state.ports.emit({ ...result, closePostId: post.postId }),
420
+ onSuccess: () => state.ports.emit(result),
456
421
  }));
457
422
  }
458
423
  /**
@@ -470,7 +435,7 @@ function respond(state, to, response) {
470
435
  const post = yield* state.ports.sendPost({ to: request.to, content }).pipe(Effect.tapBoth({
471
436
  onFailure: () => settleAnswer(state, id, request, Option.none()),
472
437
  onSuccess: (sent) => settleAnswer(state, id, request, Option.some({ recordHash: sent.recordHash, response: value })),
473
- }), Effect.onInterrupt(() => settleAnswer(state, id, request, Option.none())), Effect.mapError(refused));
438
+ }), Effect.onInterrupt(() => Effect.ignore(settleAnswer(state, id, request, Option.none()))), emitFailureAsSendError, Effect.mapError(refused));
474
439
  return { operationId: id, postIds: [post.postId] };
475
440
  });
476
441
  }
@@ -493,10 +458,7 @@ function openRequest(state, to) {
493
458
  */
494
459
  function responseContent(request, response) {
495
460
  const validated = response.action === "accept"
496
- ? validateAnswer(request.requestedSchema, response.content).pipe(Effect.mapError((error) => collectiveFailure(response.id, {
497
- kind: "answer-invalid",
498
- fields: error.failures,
499
- })))
461
+ ? validateAnswer(request.requestedSchema, response.content).pipe(Effect.mapError((fields) => collectiveFailure(response.id, { kind: "answer-invalid", fields })))
500
462
  : Effect.void;
501
463
  return validated.pipe(Effect.zipRight(encodeCollectiveContent(response).pipe(Effect.mapError(contentInvalid))));
502
464
  }
@@ -655,16 +617,19 @@ function requestItem(state, message, value) {
655
617
  forgetExpiredRequests(state, now);
656
618
  state.requests.set(value.id, received.value);
657
619
  }
658
- return decodeRequestedSchema(value.requestedSchema).pipe(Option.filter(() => now < value.deadlineAt), Option.map((requestedSchema) => ({
659
- kind: "collectiveRequest",
660
- id: value.id,
661
- postId: message.postId,
662
- from: message.sender,
663
- to: received.value.to,
664
- question: questionText(message.content),
665
- requestedSchema,
666
- deadlineAt: value.deadlineAt,
667
- })));
620
+ return now < value.deadlineAt
621
+ ? Option.some({
622
+ kind: "collectiveRequest",
623
+ op: value.op,
624
+ id: value.id,
625
+ postId: message.postId,
626
+ from: message.sender,
627
+ to: received.value.to,
628
+ question: questionText(message.content),
629
+ requestedSchema: value.requestedSchema,
630
+ deadlineAt: value.deadlineAt,
631
+ })
632
+ : Option.none();
668
633
  }));
669
634
  }
670
635
  /** Forget every request past the time `retainedUntil` gives it. */
@@ -794,11 +759,11 @@ function applyClose(state, asked, close) {
794
759
  }
795
760
  return Effect.forEach(answers, (answer) => outcomeOfResponse(request.requestedSchema, answer.response).pipe(Effect.map((outcome) => [answer.member, outcome])), { concurrency: 1 }).pipe(Effect.flatMap((outcomes) => state.ports.emit({
796
761
  kind: "collectiveResult",
762
+ op: "all_gather",
797
763
  id,
798
764
  to: request.to,
799
765
  question: shared.question,
800
766
  outcomes: memberOutcomes(shared.members, new Map(outcomes)),
801
- closePostId: close.postId,
802
767
  })));
803
768
  }
804
769
  //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/transport/collectives/operation.ts"],"names":[],"mappings":"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"}