@moltzap/client 2026.811.0 → 2026.902.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/LICENSE +202 -21
  2. package/NOTICE +19 -0
  3. package/README.md +50 -0
  4. package/bin/moltzapd +9 -0
  5. package/dist/client-runtime.d.ts +10 -0
  6. package/dist/client-runtime.d.ts.map +1 -0
  7. package/dist/client-runtime.js +218 -0
  8. package/dist/client-runtime.js.map +1 -0
  9. package/dist/contract.d.ts +338 -0
  10. package/dist/contract.d.ts.map +1 -0
  11. package/dist/contract.js +213 -0
  12. package/dist/contract.js.map +1 -0
  13. package/dist/contract.types-check.d.ts +99 -0
  14. package/dist/contract.types-check.d.ts.map +1 -0
  15. package/dist/contract.types-check.js +7 -0
  16. package/dist/contract.types-check.js.map +1 -0
  17. package/dist/daemon/configuration.d.ts +46 -0
  18. package/dist/daemon/configuration.d.ts.map +1 -0
  19. package/dist/daemon/configuration.js +69 -0
  20. package/dist/daemon/configuration.js.map +1 -0
  21. package/dist/daemon/management.d.ts +23 -0
  22. package/dist/daemon/management.d.ts.map +1 -0
  23. package/dist/daemon/management.js +489 -0
  24. package/dist/daemon/management.js.map +1 -0
  25. package/dist/daemon/registration.d.ts +72 -0
  26. package/dist/daemon/registration.d.ts.map +1 -0
  27. package/dist/daemon/registration.js +109 -0
  28. package/dist/daemon/registration.js.map +1 -0
  29. package/dist/daemon/runtime/activation.d.ts +95 -0
  30. package/dist/daemon/runtime/activation.d.ts.map +1 -0
  31. package/dist/daemon/runtime/activation.js +99 -0
  32. package/dist/daemon/runtime/activation.js.map +1 -0
  33. package/dist/daemon/runtime/controller.d.ts +34 -0
  34. package/dist/daemon/runtime/controller.d.ts.map +1 -0
  35. package/dist/daemon/runtime/controller.js +106 -0
  36. package/dist/daemon/runtime/controller.js.map +1 -0
  37. package/dist/daemon/runtime/history-export.d.ts +23 -0
  38. package/dist/daemon/runtime/history-export.d.ts.map +1 -0
  39. package/dist/daemon/runtime/history-export.js +47 -0
  40. package/dist/daemon/runtime/history-export.js.map +1 -0
  41. package/dist/daemon/runtime/index.d.ts +24 -0
  42. package/dist/daemon/runtime/index.d.ts.map +1 -0
  43. package/dist/daemon/runtime/index.js +65 -0
  44. package/dist/daemon/runtime/index.js.map +1 -0
  45. package/dist/daemon/runtime/protocol.d.ts +63 -0
  46. package/dist/daemon/runtime/protocol.d.ts.map +1 -0
  47. package/dist/daemon/runtime/protocol.js +133 -0
  48. package/dist/daemon/runtime/protocol.js.map +1 -0
  49. package/dist/endpoint/addressing/index.d.ts +39 -0
  50. package/dist/endpoint/addressing/index.d.ts.map +1 -0
  51. package/dist/endpoint/addressing/index.js +114 -0
  52. package/dist/endpoint/addressing/index.js.map +1 -0
  53. package/dist/endpoint/engine-dissemination.d.ts +11 -0
  54. package/dist/endpoint/engine-dissemination.d.ts.map +1 -0
  55. package/dist/endpoint/engine-dissemination.js +71 -0
  56. package/dist/endpoint/engine-dissemination.js.map +1 -0
  57. package/dist/endpoint/engine-durability.d.ts +69 -0
  58. package/dist/endpoint/engine-durability.d.ts.map +1 -0
  59. package/dist/endpoint/engine-durability.js +210 -0
  60. package/dist/endpoint/engine-durability.js.map +1 -0
  61. package/dist/endpoint/engine-send.d.ts +50 -0
  62. package/dist/endpoint/engine-send.d.ts.map +1 -0
  63. package/dist/endpoint/engine-send.js +422 -0
  64. package/dist/endpoint/engine-send.js.map +1 -0
  65. package/dist/endpoint/engine-types.d.ts +132 -0
  66. package/dist/endpoint/engine-types.d.ts.map +1 -0
  67. package/dist/endpoint/engine-types.js +13 -0
  68. package/dist/endpoint/engine-types.js.map +1 -0
  69. package/dist/endpoint/engine.d.ts +14 -0
  70. package/dist/endpoint/engine.d.ts.map +1 -0
  71. package/dist/endpoint/engine.js +280 -0
  72. package/dist/endpoint/engine.js.map +1 -0
  73. package/dist/endpoint/protocol/evidence.d.ts +37 -0
  74. package/dist/endpoint/protocol/evidence.d.ts.map +1 -0
  75. package/dist/endpoint/protocol/evidence.js +80 -0
  76. package/dist/endpoint/protocol/evidence.js.map +1 -0
  77. package/dist/endpoint/protocol/index.d.ts +26 -0
  78. package/dist/endpoint/protocol/index.d.ts.map +1 -0
  79. package/dist/endpoint/protocol/index.js +543 -0
  80. package/dist/endpoint/protocol/index.js.map +1 -0
  81. package/dist/endpoint/recovery/barrier.d.ts +23 -0
  82. package/dist/endpoint/recovery/barrier.d.ts.map +1 -0
  83. package/dist/endpoint/recovery/barrier.js +47 -0
  84. package/dist/endpoint/recovery/barrier.js.map +1 -0
  85. package/dist/endpoint/recovery/index.d.ts +29 -0
  86. package/dist/endpoint/recovery/index.d.ts.map +1 -0
  87. package/dist/endpoint/recovery/index.js +489 -0
  88. package/dist/endpoint/recovery/index.js.map +1 -0
  89. package/dist/endpoint/recovery/reanchor/empty.d.ts +22 -0
  90. package/dist/endpoint/recovery/reanchor/empty.d.ts.map +1 -0
  91. package/dist/endpoint/recovery/reanchor/empty.js +163 -0
  92. package/dist/endpoint/recovery/reanchor/empty.js.map +1 -0
  93. package/dist/endpoint/recovery/reanchor/index.d.ts +30 -0
  94. package/dist/endpoint/recovery/reanchor/index.d.ts.map +1 -0
  95. package/dist/endpoint/recovery/reanchor/index.js +479 -0
  96. package/dist/endpoint/recovery/reanchor/index.js.map +1 -0
  97. package/dist/endpoint/recovery/state.d.ts +130 -0
  98. package/dist/endpoint/recovery/state.d.ts.map +1 -0
  99. package/dist/endpoint/recovery/state.js +296 -0
  100. package/dist/endpoint/recovery/state.js.map +1 -0
  101. package/dist/endpoint/recovery/store-evidence.d.ts +17 -0
  102. package/dist/endpoint/recovery/store-evidence.d.ts.map +1 -0
  103. package/dist/endpoint/recovery/store-evidence.js +79 -0
  104. package/dist/endpoint/recovery/store-evidence.js.map +1 -0
  105. package/dist/endpoint/recovery/store.d.ts +56 -0
  106. package/dist/endpoint/recovery/store.d.ts.map +1 -0
  107. package/dist/endpoint/recovery/store.js +499 -0
  108. package/dist/endpoint/recovery/store.js.map +1 -0
  109. package/dist/endpoint/representation-canonical.d.ts +17 -0
  110. package/dist/endpoint/representation-canonical.d.ts.map +1 -0
  111. package/dist/endpoint/representation-canonical.js +48 -0
  112. package/dist/endpoint/representation-canonical.js.map +1 -0
  113. package/dist/endpoint/representation-codec.d.ts +51 -0
  114. package/dist/endpoint/representation-codec.d.ts.map +1 -0
  115. package/dist/endpoint/representation-codec.js +159 -0
  116. package/dist/endpoint/representation-codec.js.map +1 -0
  117. package/dist/endpoint/representation-schemas.d.ts +1831 -0
  118. package/dist/endpoint/representation-schemas.d.ts.map +1 -0
  119. package/dist/endpoint/representation-schemas.js +195 -0
  120. package/dist/endpoint/representation-schemas.js.map +1 -0
  121. package/dist/endpoint/representation-verification.d.ts +79 -0
  122. package/dist/endpoint/representation-verification.d.ts.map +1 -0
  123. package/dist/endpoint/representation-verification.js +420 -0
  124. package/dist/endpoint/representation-verification.js.map +1 -0
  125. package/dist/endpoint/representation.d.ts +6 -0
  126. package/dist/endpoint/representation.d.ts.map +1 -0
  127. package/dist/endpoint/representation.js +8 -0
  128. package/dist/endpoint/representation.js.map +1 -0
  129. package/dist/endpoint/router-worker/index.d.ts +16 -0
  130. package/dist/endpoint/router-worker/index.d.ts.map +1 -0
  131. package/dist/endpoint/router-worker/index.js +547 -0
  132. package/dist/endpoint/router-worker/index.js.map +1 -0
  133. package/dist/endpoint/router-worker/types.d.ts +183 -0
  134. package/dist/endpoint/router-worker/types.d.ts.map +1 -0
  135. package/dist/endpoint/router-worker/types.js +31 -0
  136. package/dist/endpoint/router-worker/types.js.map +1 -0
  137. package/dist/endpoint/store/anchors.d.ts +83 -0
  138. package/dist/endpoint/store/anchors.d.ts.map +1 -0
  139. package/dist/endpoint/store/anchors.js +471 -0
  140. package/dist/endpoint/store/anchors.js.map +1 -0
  141. package/dist/endpoint/store/database/index.d.ts +6 -0
  142. package/dist/endpoint/store/database/index.d.ts.map +1 -0
  143. package/dist/endpoint/store/database/index.js +6 -0
  144. package/dist/endpoint/store/database/index.js.map +1 -0
  145. package/dist/endpoint/store/database/schema.d.ts +44 -0
  146. package/dist/endpoint/store/database/schema.d.ts.map +1 -0
  147. package/dist/endpoint/store/database/schema.js +345 -0
  148. package/dist/endpoint/store/database/schema.js.map +1 -0
  149. package/dist/endpoint/store/database/values.d.ts +119 -0
  150. package/dist/endpoint/store/database/values.d.ts.map +1 -0
  151. package/dist/endpoint/store/database/values.js +194 -0
  152. package/dist/endpoint/store/database/values.js.map +1 -0
  153. package/dist/endpoint/store/deliveries.d.ts +38 -0
  154. package/dist/endpoint/store/deliveries.d.ts.map +1 -0
  155. package/dist/endpoint/store/deliveries.js +124 -0
  156. package/dist/endpoint/store/deliveries.js.map +1 -0
  157. package/dist/endpoint/store/dissemination.d.ts +27 -0
  158. package/dist/endpoint/store/dissemination.d.ts.map +1 -0
  159. package/dist/endpoint/store/dissemination.js +139 -0
  160. package/dist/endpoint/store/dissemination.js.map +1 -0
  161. package/dist/endpoint/store/index.d.ts +15 -0
  162. package/dist/endpoint/store/index.d.ts.map +1 -0
  163. package/dist/endpoint/store/index.js +76 -0
  164. package/dist/endpoint/store/index.js.map +1 -0
  165. package/dist/endpoint/store/management.d.ts +42 -0
  166. package/dist/endpoint/store/management.d.ts.map +1 -0
  167. package/dist/endpoint/store/management.js +259 -0
  168. package/dist/endpoint/store/management.js.map +1 -0
  169. package/dist/endpoint/store/outbound.d.ts +62 -0
  170. package/dist/endpoint/store/outbound.d.ts.map +1 -0
  171. package/dist/endpoint/store/outbound.js +278 -0
  172. package/dist/endpoint/store/outbound.js.map +1 -0
  173. package/dist/endpoint/store/records.d.ts +56 -0
  174. package/dist/endpoint/store/records.d.ts.map +1 -0
  175. package/dist/endpoint/store/records.js +352 -0
  176. package/dist/endpoint/store/records.js.map +1 -0
  177. package/dist/endpoint/store/rows/index.d.ts +138 -0
  178. package/dist/endpoint/store/rows/index.d.ts.map +1 -0
  179. package/dist/endpoint/store/rows/index.js +307 -0
  180. package/dist/endpoint/store/rows/index.js.map +1 -0
  181. package/dist/endpoint/store/types.d.ts +223 -0
  182. package/dist/endpoint/store/types.d.ts.map +1 -0
  183. package/dist/endpoint/store/types.js +15 -0
  184. package/dist/endpoint/store/types.js.map +1 -0
  185. package/dist/endpoint/store.d.ts +10 -0
  186. package/dist/endpoint/store.d.ts.map +1 -0
  187. package/dist/endpoint/store.js +6 -0
  188. package/dist/endpoint/store.js.map +1 -0
  189. package/dist/harness-mcp-contract.d.ts +101 -0
  190. package/dist/harness-mcp-contract.d.ts.map +1 -0
  191. package/dist/harness-mcp-contract.js +61 -0
  192. package/dist/harness-mcp-contract.js.map +1 -0
  193. package/dist/harness-mcp-http.d.ts +19 -0
  194. package/dist/harness-mcp-http.d.ts.map +1 -0
  195. package/dist/{harness-mcp-server.js → harness-mcp-http.js} +43 -71
  196. package/dist/harness-mcp-http.js.map +1 -0
  197. package/dist/harness-mcp-subscription.d.ts +12 -7
  198. package/dist/harness-mcp-subscription.d.ts.map +1 -1
  199. package/dist/harness-mcp-subscription.js +113 -100
  200. package/dist/harness-mcp-subscription.js.map +1 -1
  201. package/dist/harness-mcp-wire.d.ts +26 -19
  202. package/dist/harness-mcp-wire.d.ts.map +1 -1
  203. package/dist/harness-mcp-wire.js +380 -67
  204. package/dist/harness-mcp-wire.js.map +1 -1
  205. package/dist/index.d.ts +4 -8
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js +6 -8
  208. package/dist/index.js.map +1 -1
  209. package/dist/management-runtime.d.ts +217 -0
  210. package/dist/management-runtime.d.ts.map +1 -0
  211. package/dist/management-runtime.js +127 -0
  212. package/dist/management-runtime.js.map +1 -0
  213. package/dist/server.d.ts +16 -0
  214. package/dist/server.d.ts.map +1 -0
  215. package/dist/server.js +46 -0
  216. package/dist/server.js.map +1 -0
  217. package/dist/server.types-check.d.ts +23 -0
  218. package/dist/server.types-check.d.ts.map +1 -0
  219. package/dist/server.types-check.js +7 -0
  220. package/dist/server.types-check.js.map +1 -0
  221. package/package.json +45 -47
  222. package/dist/agent-client.d.ts +0 -5
  223. package/dist/agent-client.d.ts.map +0 -1
  224. package/dist/agent-client.js +0 -3
  225. package/dist/agent-client.js.map +0 -1
  226. package/dist/auth.d.ts +0 -37
  227. package/dist/auth.d.ts.map +0 -1
  228. package/dist/auth.js +0 -79
  229. package/dist/auth.js.map +0 -1
  230. package/dist/bounded-map.d.ts +0 -32
  231. package/dist/bounded-map.d.ts.map +0 -1
  232. package/dist/bounded-map.js +0 -79
  233. package/dist/bounded-map.js.map +0 -1
  234. package/dist/channel-base/format-cross-conv.d.ts +0 -43
  235. package/dist/channel-base/format-cross-conv.d.ts.map +0 -1
  236. package/dist/channel-base/format-cross-conv.js +0 -65
  237. package/dist/channel-base/format-cross-conv.js.map +0 -1
  238. package/dist/channel-base/format-group-block.d.ts +0 -48
  239. package/dist/channel-base/format-group-block.d.ts.map +0 -1
  240. package/dist/channel-base/format-group-block.js +0 -62
  241. package/dist/channel-base/format-group-block.js.map +0 -1
  242. package/dist/channel-base/index.d.ts +0 -12
  243. package/dist/channel-base/index.d.ts.map +0 -1
  244. package/dist/channel-base/index.js +0 -13
  245. package/dist/channel-base/index.js.map +0 -1
  246. package/dist/channel-core-enrichment.d.ts +0 -14
  247. package/dist/channel-core-enrichment.d.ts.map +0 -1
  248. package/dist/channel-core-enrichment.js +0 -143
  249. package/dist/channel-core-enrichment.js.map +0 -1
  250. package/dist/channel-core-test-support.d.ts +0 -75
  251. package/dist/channel-core-test-support.d.ts.map +0 -1
  252. package/dist/channel-core-test-support.js +0 -74
  253. package/dist/channel-core-test-support.js.map +0 -1
  254. package/dist/channel-core.d.ts +0 -304
  255. package/dist/channel-core.d.ts.map +0 -1
  256. package/dist/channel-core.js +0 -363
  257. package/dist/channel-core.js.map +0 -1
  258. package/dist/cli/adapters.d.ts +0 -21
  259. package/dist/cli/adapters.d.ts.map +0 -1
  260. package/dist/cli/adapters.js +0 -111
  261. package/dist/cli/adapters.js.map +0 -1
  262. package/dist/cli/commands/agents.d.ts +0 -11
  263. package/dist/cli/commands/agents.d.ts.map +0 -1
  264. package/dist/cli/commands/agents.js +0 -27
  265. package/dist/cli/commands/agents.js.map +0 -1
  266. package/dist/cli/commands/conversations.d.ts +0 -18
  267. package/dist/cli/commands/conversations.d.ts.map +0 -1
  268. package/dist/cli/commands/conversations.js +0 -33
  269. package/dist/cli/commands/conversations.js.map +0 -1
  270. package/dist/cli/commands/messages.d.ts +0 -41
  271. package/dist/cli/commands/messages.d.ts.map +0 -1
  272. package/dist/cli/commands/messages.js +0 -39
  273. package/dist/cli/commands/messages.js.map +0 -1
  274. package/dist/cli/commands/register.d.ts +0 -46
  275. package/dist/cli/commands/register.d.ts.map +0 -1
  276. package/dist/cli/commands/register.js +0 -103
  277. package/dist/cli/commands/register.js.map +0 -1
  278. package/dist/cli/commands/send.d.ts +0 -53
  279. package/dist/cli/commands/send.d.ts.map +0 -1
  280. package/dist/cli/commands/send.js +0 -57
  281. package/dist/cli/commands/send.js.map +0 -1
  282. package/dist/cli/commands/start.d.ts +0 -34
  283. package/dist/cli/commands/start.d.ts.map +0 -1
  284. package/dist/cli/commands/start.js +0 -59
  285. package/dist/cli/commands/start.js.map +0 -1
  286. package/dist/cli/commands/status.d.ts +0 -7
  287. package/dist/cli/commands/status.d.ts.map +0 -1
  288. package/dist/cli/commands/status.js +0 -16
  289. package/dist/cli/commands/status.js.map +0 -1
  290. package/dist/cli/commands/test-transport.d.ts +0 -28
  291. package/dist/cli/commands/test-transport.d.ts.map +0 -1
  292. package/dist/cli/commands/test-transport.js +0 -40
  293. package/dist/cli/commands/test-transport.js.map +0 -1
  294. package/dist/cli/index.d.ts +0 -3
  295. package/dist/cli/index.d.ts.map +0 -1
  296. package/dist/cli/index.js +0 -105
  297. package/dist/cli/index.js.map +0 -1
  298. package/dist/cli/output.d.ts +0 -14
  299. package/dist/cli/output.d.ts.map +0 -1
  300. package/dist/cli/output.js +0 -19
  301. package/dist/cli/output.js.map +0 -1
  302. package/dist/cli/socket-client.d.ts +0 -28
  303. package/dist/cli/socket-client.d.ts.map +0 -1
  304. package/dist/cli/socket-client.js +0 -63
  305. package/dist/cli/socket-client.js.map +0 -1
  306. package/dist/cli/transport.d.ts +0 -132
  307. package/dist/cli/transport.d.ts.map +0 -1
  308. package/dist/cli/transport.js +0 -127
  309. package/dist/cli/transport.js.map +0 -1
  310. package/dist/config.d.ts +0 -33
  311. package/dist/config.d.ts.map +0 -1
  312. package/dist/config.js +0 -45
  313. package/dist/config.js.map +0 -1
  314. package/dist/config.test-utils.d.ts +0 -18
  315. package/dist/config.test-utils.d.ts.map +0 -1
  316. package/dist/config.test-utils.js +0 -53
  317. package/dist/config.test-utils.js.map +0 -1
  318. package/dist/harness/client-runtime.d.ts +0 -24
  319. package/dist/harness/client-runtime.d.ts.map +0 -1
  320. package/dist/harness/client-runtime.js +0 -107
  321. package/dist/harness/client-runtime.js.map +0 -1
  322. package/dist/harness/index.d.ts +0 -5
  323. package/dist/harness/index.d.ts.map +0 -1
  324. package/dist/harness/index.js +0 -5
  325. package/dist/harness/index.js.map +0 -1
  326. package/dist/harness/runtime.d.ts +0 -149
  327. package/dist/harness/runtime.d.ts.map +0 -1
  328. package/dist/harness/runtime.js +0 -68
  329. package/dist/harness/runtime.js.map +0 -1
  330. package/dist/harness-client.d.ts +0 -43
  331. package/dist/harness-client.d.ts.map +0 -1
  332. package/dist/harness-client.js +0 -21
  333. package/dist/harness-client.js.map +0 -1
  334. package/dist/harness-mcp-server.d.ts +0 -19
  335. package/dist/harness-mcp-server.d.ts.map +0 -1
  336. package/dist/harness-mcp-server.js.map +0 -1
  337. package/dist/local-daemon-rpc.d.ts +0 -1170
  338. package/dist/local-daemon-rpc.d.ts.map +0 -1
  339. package/dist/local-daemon-rpc.js +0 -178
  340. package/dist/local-daemon-rpc.js.map +0 -1
  341. package/dist/local-history.d.ts +0 -75
  342. package/dist/local-history.d.ts.map +0 -1
  343. package/dist/local-history.js +0 -82
  344. package/dist/local-history.js.map +0 -1
  345. package/dist/local-paths.d.ts +0 -22
  346. package/dist/local-paths.d.ts.map +0 -1
  347. package/dist/local-paths.js +0 -33
  348. package/dist/local-paths.js.map +0 -1
  349. package/dist/local-socket-server.d.ts +0 -33
  350. package/dist/local-socket-server.d.ts.map +0 -1
  351. package/dist/local-socket-server.js +0 -100
  352. package/dist/local-socket-server.js.map +0 -1
  353. package/dist/message-rendering.d.ts +0 -4
  354. package/dist/message-rendering.d.ts.map +0 -1
  355. package/dist/message-rendering.js +0 -8
  356. package/dist/message-rendering.js.map +0 -1
  357. package/dist/moltzapd.d.ts +0 -38
  358. package/dist/moltzapd.d.ts.map +0 -1
  359. package/dist/moltzapd.js +0 -78
  360. package/dist/moltzapd.js.map +0 -1
  361. package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts +0 -53
  362. package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts.map +0 -1
  363. package/dist/notification/__tests__/subscribe-signatures.types-check.js +0 -29
  364. package/dist/notification/__tests__/subscribe-signatures.types-check.js.map +0 -1
  365. package/dist/notification/errors.d.ts +0 -41
  366. package/dist/notification/errors.d.ts.map +0 -1
  367. package/dist/notification/errors.js +0 -24
  368. package/dist/notification/errors.js.map +0 -1
  369. package/dist/notification/index.d.ts +0 -6
  370. package/dist/notification/index.d.ts.map +0 -1
  371. package/dist/notification/index.js +0 -6
  372. package/dist/notification/index.js.map +0 -1
  373. package/dist/notification/stream.d.ts +0 -75
  374. package/dist/notification/stream.d.ts.map +0 -1
  375. package/dist/notification/stream.js +0 -30
  376. package/dist/notification/stream.js.map +0 -1
  377. package/dist/pagination.d.ts +0 -52
  378. package/dist/pagination.d.ts.map +0 -1
  379. package/dist/pagination.js +0 -51
  380. package/dist/pagination.js.map +0 -1
  381. package/dist/profile.d.ts +0 -104
  382. package/dist/profile.d.ts.map +0 -1
  383. package/dist/profile.js +0 -163
  384. package/dist/profile.js.map +0 -1
  385. package/dist/refs.d.ts +0 -18
  386. package/dist/refs.d.ts.map +0 -1
  387. package/dist/refs.js +0 -18
  388. package/dist/refs.js.map +0 -1
  389. package/dist/service-event-trace.d.ts +0 -15
  390. package/dist/service-event-trace.d.ts.map +0 -1
  391. package/dist/service-event-trace.js +0 -35
  392. package/dist/service-event-trace.js.map +0 -1
  393. package/dist/service-helpers.d.ts +0 -55
  394. package/dist/service-helpers.d.ts.map +0 -1
  395. package/dist/service-helpers.js +0 -108
  396. package/dist/service-helpers.js.map +0 -1
  397. package/dist/service-local-daemon.d.ts +0 -32
  398. package/dist/service-local-daemon.d.ts.map +0 -1
  399. package/dist/service-local-daemon.js +0 -153
  400. package/dist/service-local-daemon.js.map +0 -1
  401. package/dist/service.d.ts +0 -299
  402. package/dist/service.d.ts.map +0 -1
  403. package/dist/service.js +0 -789
  404. package/dist/service.js.map +0 -1
  405. package/dist/test-utils/channel-service-fixture.d.ts +0 -53
  406. package/dist/test-utils/channel-service-fixture.d.ts.map +0 -1
  407. package/dist/test-utils/channel-service-fixture.js +0 -178
  408. package/dist/test-utils/channel-service-fixture.js.map +0 -1
  409. package/dist/test-utils/fake-service.d.ts +0 -84
  410. package/dist/test-utils/fake-service.d.ts.map +0 -1
  411. package/dist/test-utils/fake-service.js +0 -108
  412. package/dist/test-utils/fake-service.js.map +0 -1
  413. package/dist/test-utils/harness.d.ts +0 -27
  414. package/dist/test-utils/harness.d.ts.map +0 -1
  415. package/dist/test-utils/harness.js +0 -33
  416. package/dist/test-utils/harness.js.map +0 -1
  417. package/dist/test-utils/ids.d.ts +0 -21
  418. package/dist/test-utils/ids.d.ts.map +0 -1
  419. package/dist/test-utils/ids.js +0 -68
  420. package/dist/test-utils/ids.js.map +0 -1
  421. package/dist/test-utils/index.d.ts +0 -54
  422. package/dist/test-utils/index.d.ts.map +0 -1
  423. package/dist/test-utils/index.js +0 -65
  424. package/dist/test-utils/index.js.map +0 -1
  425. package/dist/test-utils/standalone-provisioning.d.ts +0 -22
  426. package/dist/test-utils/standalone-provisioning.d.ts.map +0 -1
  427. package/dist/test-utils/standalone-provisioning.js +0 -17
  428. package/dist/test-utils/standalone-provisioning.js.map +0 -1
  429. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,543 @@
1
+ /** @file Router-ordered proposal selection and addressed record certification. */
2
+ import { MOLTZAP_VERSION } from "@moltzap/identity";
3
+ import { Deferred, Effect, SubscriptionRef } from "effect";
4
+ import { exportInbound, inboundDelivery, makeActionCertifiedRecord, makeCertifiedRecord, protocolEvidence, recordAnchorHash, stagedRecord, storedCertifiedRecord, } from "../engine-durability.js";
5
+ import { proposeIntent, queueCertifiedPacket, queueEvidence, } from "../engine-send.js";
6
+ import { ActionCore as ActionCoreSchema, ClientRepresentationError, encodeCanonical, GenesisAnchorBody, hashAnchor, MembershipDescriptor, quorumThreshold, signEvidenceMessage, verifyActionCertifiedRecord, verifyActionProposal, verifyCertifiedRecord, verifyMembershipDescriptor, verifyOuterMessage, verifyStableEvidence, } from "../representation.js";
7
+ import { RouterWorkerPersistenceError, } from "../router-worker/index.js";
8
+ import { evidenceMatchesFold, evidenceRoute, verifiedEvidenceForRoute, } from "./evidence.js";
9
+ const persistenceFailure = () => new RouterWorkerPersistenceError();
10
+ const isSemanticStoreRejection = (error) => error.reason === "conflict" || error.reason === "invalid-input";
11
+ const localRepresentationFailure = () => persistenceFailure();
12
+ const sameBytes = (left, right) => left.byteLength === right.byteLength &&
13
+ left.every((byte, index) => byte === right[index]);
14
+ const sameCanonical = (schema, left, right) => Effect.all([
15
+ encodeCanonical(schema, left),
16
+ encodeCanonical(schema, right),
17
+ ]).pipe(Effect.map(([leftBytes, rightBytes]) => sameBytes(leftBytes, rightBytes)));
18
+ const currentAnchorHash = (conversation) => conversation.currentAnchor.kind === "genesis_anchor_body"
19
+ ? hashAnchor(conversation.currentAnchor).pipe(Effect.mapError(localRepresentationFailure))
20
+ : Effect.succeed(conversation.currentAnchor.anchorHash);
21
+ const gapFree = (conversation, action) => Effect.gen(function* () {
22
+ if (action.kind === "GENESIS") {
23
+ return (conversation.head === undefined &&
24
+ conversation.currentAnchor.kind === "genesis_anchor_body" &&
25
+ (yield* sameCanonical(GenesisAnchorBody, conversation.currentAnchor, action.anchor).pipe(Effect.mapError(localRepresentationFailure))));
26
+ }
27
+ return (conversation.head?.recordHash === action.previousRecordHash &&
28
+ (yield* currentAnchorHash(conversation)) === action.anchorHash);
29
+ });
30
+ const conversationForAction = (runtime, action, routerInstanceId) => Effect.gen(function* () {
31
+ const retained = runtime.conversations.get(action.conversationId);
32
+ if (action.kind === "POST") {
33
+ return retained;
34
+ }
35
+ if (retained !== undefined) {
36
+ return retained;
37
+ }
38
+ const membership = yield* verifyMembershipDescriptor(action.membership, runtime.input.registrySignerPublicKey);
39
+ if (action.anchor.routerInstanceId !== routerInstanceId) {
40
+ return undefined;
41
+ }
42
+ return {
43
+ conversationId: action.conversationId,
44
+ membership,
45
+ currentAnchor: action.anchor,
46
+ };
47
+ });
48
+ const genesisFoundation = (conversation, action) => Effect.gen(function* () {
49
+ return {
50
+ conversationId: action.conversationId,
51
+ membershipHash: conversation.membership.hash,
52
+ canonicalMembership: yield* encodeCanonical(MembershipDescriptor, conversation.membership.descriptor).pipe(Effect.mapError(localRepresentationFailure)),
53
+ anchorHash: yield* hashAnchor(action.anchor).pipe(Effect.mapError(localRepresentationFailure)),
54
+ canonicalAnchor: yield* encodeCanonical(GenesisAnchorBody, action.anchor).pipe(Effect.mapError(localRepresentationFailure)),
55
+ };
56
+ });
57
+ const proposalLock = (conversation, action, actionHash) => encodeCanonical(ActionCoreSchema, action).pipe(Effect.mapError(localRepresentationFailure), Effect.map((canonicalActionCore) => ({
58
+ conversationId: conversation.conversationId,
59
+ ...(action.previousRecordHash === null
60
+ ? {}
61
+ : { previousRecordHash: action.previousRecordHash }),
62
+ actionHash,
63
+ canonicalActionCore,
64
+ })));
65
+ const lockAction = (runtime, conversation, action, actionHash) => Effect.gen(function* () {
66
+ const lock = yield* proposalLock(conversation, action, actionHash);
67
+ if (action.kind === "GENESIS" &&
68
+ !runtime.conversations.has(action.conversationId)) {
69
+ const foundation = yield* genesisFoundation(conversation, action);
70
+ yield* runtime.input.store.lockGenesisProposal(foundation, lock);
71
+ yield* Effect.sync(() => {
72
+ runtime.conversations.set(action.conversationId, conversation);
73
+ });
74
+ return;
75
+ }
76
+ yield* runtime.input.store.lockProposal(lock);
77
+ });
78
+ const foldFor = (runtime, conversation, action, actionHash) => {
79
+ const retained = runtime.actionFolds.get(actionHash);
80
+ if (retained !== undefined) {
81
+ return retained;
82
+ }
83
+ const fold = {
84
+ conversation,
85
+ action,
86
+ actionHash,
87
+ routerAnchor: action.kind === "GENESIS" ? action.anchor : conversation.currentAnchor,
88
+ actionEvidence: new Map(),
89
+ durabilityEvidence: new Map(),
90
+ localActionEvidenceQueued: false,
91
+ actionCertifiedRecordQueued: false,
92
+ localDurabilityEvidenceQueued: false,
93
+ certifiedRecordQueued: false,
94
+ };
95
+ runtime.actionFolds.set(actionHash, fold);
96
+ return fold;
97
+ };
98
+ const mergeEvidence = (runtime, fold, kind, message) => Effect.gen(function* () {
99
+ const subjectId = kind === "action" ? fold.actionHash : fold.recordHash;
100
+ if (subjectId === undefined) {
101
+ return;
102
+ }
103
+ const row = yield* protocolEvidence(fold.conversation.conversationId, kind, subjectId, message).pipe(Effect.mapError(localRepresentationFailure));
104
+ yield* runtime.input.store.mergeEvidence(row);
105
+ const evidence = kind === "action" ? fold.actionEvidence : fold.durabilityEvidence;
106
+ yield* Effect.sync(() => {
107
+ evidence.set(message.senderAgentId, message);
108
+ });
109
+ });
110
+ const localActionEvidence = (runtime, fold) => Effect.gen(function* () {
111
+ const localAgentId = runtime.input.localAgentCard.agentId;
112
+ if (fold.localActionEvidenceQueued) {
113
+ return;
114
+ }
115
+ const retained = fold.actionEvidence.has(localAgentId);
116
+ const evidence = yield* selectLocalActionEvidence(runtime, fold);
117
+ if (evidence === undefined) {
118
+ return;
119
+ }
120
+ if (!retained) {
121
+ yield* mergeEvidence(runtime, fold, "action", evidence);
122
+ }
123
+ yield* Effect.uninterruptible(queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
124
+ fold.localActionEvidenceQueued = true;
125
+ }))));
126
+ });
127
+ function selectLocalActionEvidence(runtime, fold) {
128
+ const retained = fold.actionEvidence.get(runtime.input.localAgentCard.agentId);
129
+ if (retained !== undefined) {
130
+ return Effect.succeed(retained);
131
+ }
132
+ return runtime.input
133
+ .actionPolicy({
134
+ action: fold.action,
135
+ membership: fold.conversation.membership,
136
+ })
137
+ .pipe(Effect.flatMap((policyDecision) => {
138
+ switch (policyDecision) {
139
+ case "sign":
140
+ return signLocalActionEvidence(runtime, fold);
141
+ case "refuse":
142
+ return Effect.succeed(undefined);
143
+ default: {
144
+ const exhaustive = policyDecision;
145
+ return exhaustive;
146
+ }
147
+ }
148
+ }));
149
+ }
150
+ function signLocalActionEvidence(runtime, fold) {
151
+ return signEvidenceMessage({
152
+ statement: {
153
+ moltzapVersion: MOLTZAP_VERSION,
154
+ kind: "action_signature",
155
+ signerAgentId: runtime.input.localAgentCard.agentId,
156
+ actionHash: fold.actionHash,
157
+ },
158
+ agentCard: runtime.input.localAgentCard,
159
+ signingAuthority: runtime.input.signingAuthority,
160
+ }).pipe(Effect.mapError(localRepresentationFailure));
161
+ }
162
+ const hasActionThreshold = (fold) => {
163
+ const memberCount = fold.conversation.membership.members.length;
164
+ const count = fold.actionEvidence.size;
165
+ const thresholdReached = fold.action.kind === "GENESIS"
166
+ ? count === memberCount
167
+ : count >= quorumThreshold(memberCount);
168
+ return (thresholdReached &&
169
+ fold.actionEvidence.has(fold.action.postIntent.authorAgentId));
170
+ };
171
+ const hasDurabilityThreshold = (fold) => fold.durabilityEvidence.size >=
172
+ quorumThreshold(fold.conversation.membership.members.length);
173
+ const actionAnchorHash = (fold) => recordAnchorHash(fold).pipe(Effect.mapError(localRepresentationFailure));
174
+ const localDurabilityEvidence = (runtime, fold) => Effect.gen(function* () {
175
+ const recordHash = fold.recordHash;
176
+ const localAgentId = runtime.input.localAgentCard.agentId;
177
+ if (recordHash === undefined || fold.localDurabilityEvidenceQueued) {
178
+ return;
179
+ }
180
+ const retained = fold.durabilityEvidence.get(localAgentId);
181
+ const evidence = retained ??
182
+ (yield* signEvidenceMessage({
183
+ statement: {
184
+ moltzapVersion: MOLTZAP_VERSION,
185
+ kind: "durability_vote",
186
+ signerAgentId: localAgentId,
187
+ conversationId: fold.conversation.conversationId,
188
+ membershipHash: fold.conversation.membership.hash,
189
+ recordHash,
190
+ },
191
+ agentCard: runtime.input.localAgentCard,
192
+ signingAuthority: runtime.input.signingAuthority,
193
+ }).pipe(Effect.mapError(localRepresentationFailure)));
194
+ if (retained === undefined) {
195
+ yield* mergeEvidence(runtime, fold, "durability", evidence);
196
+ }
197
+ yield* Effect.uninterruptible(queueEvidence(runtime, fold.conversation, evidence).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
198
+ fold.localDurabilityEvidenceQueued = true;
199
+ }))));
200
+ });
201
+ const applyPromotionState = (runtime, fold, record) => Effect.sync(() => {
202
+ fold.certifiedRecord = record;
203
+ fold.conversation.head = {
204
+ recordHash: record.actionCertifiedRecord.recordHash,
205
+ record,
206
+ };
207
+ runtime.completedPostIds.add(fold.action.postIntent.postId);
208
+ return fold.action.postIntent.authorAgentId ===
209
+ runtime.input.localAgentCard.agentId
210
+ ? runtime.intents.get(fold.action.postIntent.postId)
211
+ : undefined;
212
+ });
213
+ function completePromotion(runtime, fold, record) {
214
+ return applyPromotionState(runtime, fold, record).pipe(Effect.flatMap((intent) => intent === undefined
215
+ ? Effect.void
216
+ : Deferred.succeed(intent.completion, undefined).pipe(Effect.asVoid)));
217
+ }
218
+ const reproposalDispositionByReason = {
219
+ "certification-unavailable": "ignore",
220
+ "content-invalid": "fail",
221
+ "invalid-address": "fail",
222
+ "membership-invalid": "fail",
223
+ "network-unavailable": "ignore",
224
+ "not-registered": "fail",
225
+ "persistence-failed": "fail",
226
+ "unknown-agent": "fail",
227
+ "version-mismatch": "fail",
228
+ };
229
+ const reproposePendingIntent = (runtime, pending) => proposeIntent(runtime, pending).pipe(Effect.asVoid, Effect.catchTag("SendError", (error) => reproposalDispositionByReason[error.reason] === "ignore"
230
+ ? Effect.void
231
+ : Effect.fail(persistenceFailure())));
232
+ const rebasePendingIntents = (runtime, conversationId) => Effect.forEach(runtime.intents.values(), (pending) => pending.intent.conversationId === conversationId &&
233
+ !runtime.completedPostIds.has(pending.intent.postId)
234
+ ? reproposePendingIntent(runtime, pending)
235
+ : Effect.void, { concurrency: 1, discard: true });
236
+ function persistPromotionWithoutDelivery(runtime, record, source) {
237
+ switch (source) {
238
+ case "assembled":
239
+ return runtime.input.store.promoteRecordForDissemination(record);
240
+ case "catch-up":
241
+ return runtime.input.store.applyCatchUpRecord(record);
242
+ case "received":
243
+ return runtime.input.store.promoteRecord(record);
244
+ default: {
245
+ const exhaustive = source;
246
+ return exhaustive;
247
+ }
248
+ }
249
+ }
250
+ function persistPromotionWithDelivery(runtime, record, source, delivery) {
251
+ switch (source) {
252
+ case "assembled":
253
+ return runtime.input.store.promoteRecordForDissemination(record, delivery);
254
+ case "catch-up":
255
+ return runtime.input.store.applyCatchUpRecord(record, delivery);
256
+ case "received":
257
+ return runtime.input.store.promoteRecord(record, delivery);
258
+ default: {
259
+ const exhaustive = source;
260
+ return exhaustive;
261
+ }
262
+ }
263
+ }
264
+ function markCertifiedPacketQueued(fold) {
265
+ return Effect.sync(() => {
266
+ fold.certifiedRecordQueued = true;
267
+ });
268
+ }
269
+ const promote = (runtime, fold, record, source) => Effect.gen(function* () {
270
+ const stored = yield* storedCertifiedRecord(record, fold).pipe(Effect.mapError(localRepresentationFailure));
271
+ const remote = fold.action.postIntent.authorAgentId !==
272
+ runtime.input.localAgentCard.agentId;
273
+ const delivery = remote
274
+ ? yield* inboundDelivery(fold.conversation, record, runtime.input.localAgentCard.agentId).pipe(Effect.mapError(localRepresentationFailure))
275
+ : undefined;
276
+ yield* delivery === undefined
277
+ ? persistPromotionWithoutDelivery(runtime, stored, source)
278
+ : persistPromotionWithDelivery(runtime, stored, source, delivery.input);
279
+ if (delivery !== undefined) {
280
+ yield* exportInbound(runtime, delivery.message);
281
+ }
282
+ const queuePromotion = source === "assembled"
283
+ ? queueCertifiedPacket(runtime, fold.conversation, record).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(markCertifiedPacketQueued(fold)))
284
+ : Effect.sync(() => {
285
+ fold.actionCertifiedRecordQueued = true;
286
+ fold.certifiedRecordQueued = true;
287
+ });
288
+ yield* Effect.uninterruptible(queuePromotion.pipe(Effect.zipRight(completePromotion(runtime, fold, record))));
289
+ yield* SubscriptionRef.update(runtime.revision, (revision) => revision + 1);
290
+ yield* rebasePendingIntents(runtime, fold.conversation.conversationId);
291
+ });
292
+ const maybePromote = (runtime, fold, actionCertifiedRecord) => Effect.gen(function* () {
293
+ if (!hasDurabilityThreshold(fold) || fold.certifiedRecord !== undefined) {
294
+ return;
295
+ }
296
+ const record = yield* makeCertifiedRecord(actionCertifiedRecord, fold).pipe(Effect.mapError(localRepresentationFailure));
297
+ yield* verifyCertifiedRecord({
298
+ record,
299
+ registrySignerPublicKey: runtime.input.registrySignerPublicKey,
300
+ }).pipe(Effect.mapError(localRepresentationFailure));
301
+ yield* promote(runtime, fold, record, "assembled");
302
+ });
303
+ function persistActionCertificate(runtime, record, source) {
304
+ switch (source) {
305
+ case "assembled":
306
+ return runtime.input.store.stageRecordForDissemination(record);
307
+ case "received":
308
+ return runtime.input.store.stageRecord(record);
309
+ default: {
310
+ const exhaustive = source;
311
+ return exhaustive;
312
+ }
313
+ }
314
+ }
315
+ const stageActionCertificate = (runtime, fold, record, source) => Effect.gen(function* () {
316
+ const stored = yield* stagedRecord(record).pipe(Effect.mapError(localRepresentationFailure));
317
+ yield* persistActionCertificate(runtime, stored, source);
318
+ const updateFold = Effect.sync(() => {
319
+ fold.recordHash = record.recordHash;
320
+ runtime.recordFolds.set(record.recordHash, fold);
321
+ });
322
+ if (source === "assembled") {
323
+ yield* Effect.uninterruptible(queueCertifiedPacket(runtime, fold.conversation, record).pipe(Effect.mapError(() => persistenceFailure()), Effect.zipRight(Effect.sync(() => {
324
+ fold.actionCertifiedRecordQueued = true;
325
+ })), Effect.zipRight(updateFold)));
326
+ }
327
+ else {
328
+ yield* Effect.sync(() => {
329
+ fold.actionCertifiedRecordQueued = true;
330
+ }).pipe(Effect.zipRight(updateFold));
331
+ }
332
+ yield* localDurabilityEvidence(runtime, fold);
333
+ yield* maybePromote(runtime, fold, record);
334
+ });
335
+ const maybeCertifyAction = (runtime, fold) => Effect.gen(function* () {
336
+ if (!hasActionThreshold(fold) || fold.recordHash !== undefined) {
337
+ return;
338
+ }
339
+ const record = yield* makeActionCertifiedRecord(fold, yield* actionAnchorHash(fold)).pipe(Effect.mapError(localRepresentationFailure));
340
+ yield* stageActionCertificate(runtime, fold, record, "assembled");
341
+ });
342
+ const prepareProposalFold = (runtime, ingress, proposal) => Effect.gen(function* () {
343
+ const conversation = yield* conversationForAction(runtime, proposal.action, ingress.routerInstanceId);
344
+ if (conversation === undefined ||
345
+ !(yield* gapFree(conversation, proposal.action))) {
346
+ return undefined;
347
+ }
348
+ yield* verifyOuterMessage({
349
+ message: ingress.message,
350
+ membership: conversation.membership,
351
+ });
352
+ const verified = yield* verifyActionProposal({
353
+ proposal,
354
+ membership: conversation.membership,
355
+ outerSenderAgentId: ingress.message.senderAgentId,
356
+ });
357
+ yield* lockAction(runtime, conversation, proposal.action, verified.actionHash);
358
+ return foldFor(runtime, conversation, proposal.action, verified.actionHash);
359
+ });
360
+ const acceptProposal = (runtime, ingress, proposal) => Effect.gen(function* () {
361
+ const fold = yield* prepareProposalFold(runtime, ingress, proposal);
362
+ if (fold === undefined) {
363
+ return "ignored";
364
+ }
365
+ yield* localActionEvidence(runtime, fold);
366
+ yield* maybeCertifyAction(runtime, fold);
367
+ return "accepted";
368
+ });
369
+ const acceptEvidence = (runtime, ingress, message) => Effect.gen(function* () {
370
+ const route = yield* evidenceRoute(runtime, message);
371
+ if (route === undefined) {
372
+ return "ignored";
373
+ }
374
+ const evidence = yield* verifiedEvidenceForRoute(ingress, message, route);
375
+ if (!evidenceMatchesFold(route, evidence.statement)) {
376
+ return "ignored";
377
+ }
378
+ yield* mergeEvidence(runtime, route.fold, route.kind, evidence.message);
379
+ yield* advanceEvidenceFold(runtime, route);
380
+ return "accepted";
381
+ });
382
+ function advanceEvidenceFold(runtime, route) {
383
+ switch (route.kind) {
384
+ case "action":
385
+ return maybeCertifyAction(runtime, route.fold);
386
+ case "durability":
387
+ return advanceDurabilityFold(runtime, route.fold);
388
+ default: {
389
+ const exhaustive = route;
390
+ return exhaustive;
391
+ }
392
+ }
393
+ }
394
+ function advanceDurabilityFold(runtime, fold) {
395
+ const recordHash = fold.recordHash;
396
+ if (recordHash === undefined) {
397
+ return Effect.void;
398
+ }
399
+ const record = runtime.recordFolds.get(recordHash);
400
+ if (record === undefined || !hasDurabilityThreshold(record)) {
401
+ return Effect.void;
402
+ }
403
+ return Effect.gen(function* () {
404
+ const actionCertifiedRecord = yield* makeActionCertifiedRecord(record, yield* actionAnchorHash(record)).pipe(Effect.mapError(localRepresentationFailure));
405
+ yield* maybePromote(runtime, record, actionCertifiedRecord);
406
+ });
407
+ }
408
+ const membershipForRecord = (runtime, record) => verifyActionCertifiedRecord({
409
+ record,
410
+ registrySignerPublicKey: runtime.input.registrySignerPublicKey,
411
+ }).pipe(Effect.map((verified) => verified.membership));
412
+ const ensureConversation = (runtime, membership, record) => {
413
+ const action = record.recordCore.action;
414
+ const retained = runtime.conversations.get(action.conversationId);
415
+ if (retained !== undefined) {
416
+ return retained.membership.hash === membership.hash ? retained : undefined;
417
+ }
418
+ if (action.kind !== "GENESIS" ||
419
+ record.routerAnchor.kind !== "genesis_anchor_body") {
420
+ return undefined;
421
+ }
422
+ return {
423
+ conversationId: action.conversationId,
424
+ membership,
425
+ currentAnchor: record.routerAnchor,
426
+ };
427
+ };
428
+ const certificateEvidenceMatches = (fold, kind, evidence) => evidenceMatchesFold(kind === "action" ? { fold, kind: "action" } : { fold, kind: "durability" }, evidence.statement);
429
+ const mergeCertificateEvidence = (runtime, fold, kind, representations) => Effect.forEach(representations, (representation) => verifyStableEvidence({
430
+ representation,
431
+ membership: fold.conversation.membership,
432
+ }).pipe(Effect.filterOrFail((evidence) => certificateEvidenceMatches(fold, kind, evidence), () => new ClientRepresentationError()), Effect.flatMap((evidence) => mergeEvidence(runtime, fold, kind, evidence.message))), { concurrency: 1, discard: true });
433
+ const prepareRecordFold = (runtime, ingress, membership, record) => Effect.gen(function* () {
434
+ yield* verifyOuterMessage({
435
+ message: ingress.message,
436
+ membership,
437
+ });
438
+ const conversation = ensureConversation(runtime, membership, record);
439
+ const action = record.recordCore.action;
440
+ if (conversation === undefined || !(yield* gapFree(conversation, action))) {
441
+ return undefined;
442
+ }
443
+ yield* lockAction(runtime, conversation, action, record.recordCore.actionHash);
444
+ const fold = foldFor(runtime, conversation, action, record.recordCore.actionHash);
445
+ yield* mergeCertificateEvidence(runtime, fold, "action", record.actionCertificate.signatures);
446
+ return fold;
447
+ });
448
+ const acceptActionCertifiedRecord = (runtime, ingress, record) => Effect.gen(function* () {
449
+ const membership = yield* membershipForRecord(runtime, record);
450
+ const fold = yield* prepareRecordFold(runtime, ingress, membership, record);
451
+ if (fold === undefined) {
452
+ return "ignored";
453
+ }
454
+ yield* stageActionCertificate(runtime, fold, record, "received");
455
+ return "accepted";
456
+ });
457
+ const acceptCertifiedRecord = (runtime, ingress, record, applyCatchUp = false) => Effect.gen(function* () {
458
+ const membership = yield* verifyCertifiedRecord({
459
+ record,
460
+ registrySignerPublicKey: runtime.input.registrySignerPublicKey,
461
+ });
462
+ const actionRecord = record.actionCertifiedRecord;
463
+ const fold = yield* prepareRecordFold(runtime, ingress, membership, actionRecord);
464
+ if (fold === undefined) {
465
+ return "ignored";
466
+ }
467
+ yield* runtime.input.store.stageRecord(yield* stagedRecord(actionRecord));
468
+ yield* Effect.sync(() => {
469
+ fold.recordHash = actionRecord.recordHash;
470
+ runtime.recordFolds.set(actionRecord.recordHash, fold);
471
+ });
472
+ yield* mergeCertificateEvidence(runtime, fold, "durability", record.durabilityCertificate.votes);
473
+ yield* promote(runtime, fold, record, applyCatchUp ? "catch-up" : "received");
474
+ return "accepted";
475
+ });
476
+ const acceptDirectPacket = (runtime, ingress) => {
477
+ if (ingress.payload.kind !== "direct") {
478
+ return acceptEvidence(runtime, ingress, ingress.payload.message);
479
+ }
480
+ return acceptPacket(runtime, ingress, ingress.payload.packet);
481
+ };
482
+ function acceptPacket(runtime, ingress, packet) {
483
+ switch (packet.kind) {
484
+ case "action_proposal":
485
+ return acceptProposal(runtime, ingress, packet);
486
+ case "action_certified_record":
487
+ return acceptActionCertifiedRecord(runtime, ingress, packet);
488
+ case "certified_record":
489
+ return acceptCertifiedRecord(runtime, ingress, packet);
490
+ case "catch_up_request":
491
+ case "catch_up_page":
492
+ case "catch_up_incomplete":
493
+ case "completed_reanchor":
494
+ return Effect.succeed("ignored");
495
+ default: {
496
+ const exhaustive = packet;
497
+ return exhaustive;
498
+ }
499
+ }
500
+ }
501
+ const ignoredDisposition = "ignored";
502
+ /**
503
+ * Apply one semantically verified Router-ordered protocol value.
504
+ * @param runtime Current engine state and durable protocol dependencies.
505
+ * @param ingress Authenticated Router-ordered protocol input.
506
+ * @returns Whether the input changed durable state or was irrelevant.
507
+ */
508
+ export const acceptEngineIngress = (runtime, ingress) => runtime.gate
509
+ .withPermits(1)(acceptDirectPacket(runtime, ingress))
510
+ .pipe(Effect.catchTag("ClientRepresentationError", () => Effect.succeed(ignoredDisposition)), Effect.catchTag("EndpointStoreError", (error) => isSemanticStoreRejection(error)
511
+ ? Effect.succeed(ignoredDisposition)
512
+ : Effect.fail(persistenceFailure())), Effect.withSpan("acceptEngineIngress"));
513
+ /**
514
+ * Recovery accepts complete certified records through the same durable path.
515
+ * @param runtime Current engine state and durable protocol dependencies.
516
+ * @param ingress Authenticated recovery input from one fixed member.
517
+ * @returns Whether recovery advanced durable state or ignored the input.
518
+ */
519
+ export const acceptEngineRecoveryIngress = (runtime, ingress) => runtime.gate
520
+ .withPermits(1)(ingress.payload.kind === "direct" &&
521
+ ingress.payload.packet.kind === "certified_record"
522
+ ? acceptCertifiedRecord(runtime, ingress, ingress.payload.packet, true)
523
+ : Effect.succeed(ignoredDisposition))
524
+ .pipe(Effect.catchTag("ClientRepresentationError", () => Effect.succeed(ignoredDisposition)), Effect.catchTag("EndpointStoreError", (error) => isSemanticStoreRejection(error)
525
+ ? Effect.succeed(ignoredDisposition)
526
+ : Effect.fail(persistenceFailure())), Effect.withSpan("acceptEngineRecoveryIngress"));
527
+ /**
528
+ * Resume only the evidence obligations already selected in durable state.
529
+ * @param runtime Recovered engine state and durable protocol dependencies.
530
+ * @returns Completion after all resumable evidence work has been queued.
531
+ */
532
+ export const resumeEngineFolds = (runtime) => runtime.gate
533
+ .withPermits(1)(Effect.forEach(runtime.actionFolds.values(), (fold) => Effect.gen(function* () {
534
+ yield* localActionEvidence(runtime, fold);
535
+ yield* maybeCertifyAction(runtime, fold);
536
+ if (fold.recordHash !== undefined) {
537
+ yield* localDurabilityEvidence(runtime, fold);
538
+ const record = yield* makeActionCertifiedRecord(fold, yield* actionAnchorHash(fold)).pipe(Effect.mapError(localRepresentationFailure));
539
+ yield* maybePromote(runtime, fold, record);
540
+ }
541
+ }), { concurrency: 1, discard: true }))
542
+ .pipe(Effect.catchTag("EndpointStoreError", () => Effect.fail(persistenceFailure())), Effect.withSpan("resumeEngineFolds"));
543
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/protocol/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** @file Completion barrier shared by protocol activation and recovery. */
2
+ import { Deferred, Effect } from "effect";
3
+ import type { EngineRuntime } from "../engine-types.js";
4
+ /**
5
+ * Install the one completion barrier shared by all retries of a discontinuity.
6
+ * @param runtime Engine entering Router recovery under its protocol gate.
7
+ * @returns Completion after a barrier exists for the engine.
8
+ */
9
+ export declare function installRecoveryBarrier(runtime: EngineRuntime): Effect.Effect<void>;
10
+ /**
11
+ * Read the barrier that blocks new action activation during discontinuity.
12
+ * @param runtime Engine whose recovery state guards action activation.
13
+ * @returns The pending barrier, or absence while the Router is active.
14
+ */
15
+ export declare function currentRecoveryBarrier(runtime: EngineRuntime): Deferred.Deferred<undefined> | undefined;
16
+ /**
17
+ * Release the exact barrier after recovery has resumed every durable fold.
18
+ * @param runtime Engine returning to normal protocol operation.
19
+ * @param barrier Barrier captured by the completed recovery attempt.
20
+ * @returns Completion after waiters resume and the barrier is removed.
21
+ */
22
+ export declare function completeRecoveryBarrier(runtime: EngineRuntime, barrier: Deferred.Deferred<undefined>): Effect.Effect<void>;
23
+ //# sourceMappingURL=barrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrier.d.ts","sourceRoot":"","sources":["../../../src/endpoint/recovery/barrier.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,GACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAerB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,GACrB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAgBrB"}