@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,280 @@
1
+ /** @file Private addressed-message engine acquisition and daemon seams. */
2
+ import { AgentCard, AgentSigningAuthority } from "@moltzap/identity";
3
+ import { Deferred, Effect, Queue, SubscriptionRef } from "effect";
4
+ import { DeliveryAcknowledgeError, InboundMessage, ListenError, SendError, } from "../contract.js";
5
+ import { resumeDisseminationObligations } from "./engine-dissemination.js";
6
+ import { exportSend, prepareSend, proposeIntent } from "./engine-send.js";
7
+ import { EngineInitializationError, EngineOutboundError, } from "./engine-types.js";
8
+ import { resumeEngineFolds } from "./protocol/index.js";
9
+ import { installRecoveryBarrier } from "./recovery/barrier.js";
10
+ import { acceptEngineIngressWithRecovery, acceptEngineRecoveryIngressWithRecovery, recoverCertifiedHistory, recoverEngineState, } from "./recovery/index.js";
11
+ import { decodeCanonical, encodeCanonical, PostIntent, } from "./representation.js";
12
+ /** Closed engine errors used by daemon composition. */
13
+ export { EngineInitializationError, EngineOutboundError, } from "./engine-types.js";
14
+ const initializationReasonByStoreReason = {
15
+ closed: "persistence",
16
+ conflict: "identity",
17
+ corrupt: "persistence",
18
+ incompatible: "persistence",
19
+ "invalid-continuation": "persistence",
20
+ "invalid-input": "persistence",
21
+ "not-found": "persistence",
22
+ persistence: "persistence",
23
+ };
24
+ const listenReasonByStoreReason = {
25
+ closed: "transport-failed",
26
+ conflict: "decode-failed",
27
+ corrupt: "decode-failed",
28
+ incompatible: "incompatible-daemon",
29
+ "invalid-continuation": "decode-failed",
30
+ "invalid-input": "decode-failed",
31
+ "not-found": "decode-failed",
32
+ persistence: "transport-failed",
33
+ };
34
+ const acknowledgeReasonByStoreReason = {
35
+ closed: "persistence-failed",
36
+ conflict: "delivery-conflict",
37
+ corrupt: "persistence-failed",
38
+ incompatible: "persistence-failed",
39
+ "invalid-continuation": "persistence-failed",
40
+ "invalid-input": "persistence-failed",
41
+ "not-found": "unknown-delivery",
42
+ persistence: "persistence-failed",
43
+ };
44
+ const resumeDispositionBySendReason = {
45
+ "certification-unavailable": "ignore",
46
+ "content-invalid": "fail-representation",
47
+ "invalid-address": "fail-representation",
48
+ "membership-invalid": "fail-representation",
49
+ "network-unavailable": "ignore",
50
+ "not-registered": "fail-representation",
51
+ "persistence-failed": "fail-persistence",
52
+ "unknown-agent": "fail-representation",
53
+ "version-mismatch": "fail-representation",
54
+ };
55
+ const outboundFailure = (error) => {
56
+ switch (error._tag) {
57
+ case "RouterWorkerPersistenceError":
58
+ return new EngineOutboundError({ reason: "persistence" });
59
+ case "RouterWorkerAuthenticationError":
60
+ case "RouterWorkerProtocolError":
61
+ return new EngineOutboundError({ reason: "representation" });
62
+ case "RouterWorkerDiscontinuityError":
63
+ case "RouterWorkerRecoveryError":
64
+ case "RouterWorkerTransportError":
65
+ case "RouterWorkerUnavailableError":
66
+ return new EngineOutboundError({ reason: "network" });
67
+ default: {
68
+ const exhaustive = error;
69
+ return exhaustive;
70
+ }
71
+ }
72
+ };
73
+ function outboundSendFailure(error) {
74
+ switch (error.reason) {
75
+ case "persistence":
76
+ return new SendError({ reason: "persistence-failed" });
77
+ case "network":
78
+ return new SendError({ reason: "network-unavailable" });
79
+ case "representation":
80
+ return new SendError({ reason: "certification-unavailable" });
81
+ default: {
82
+ const exhaustive = error.reason;
83
+ return exhaustive;
84
+ }
85
+ }
86
+ }
87
+ function listenStoreFailure(error) {
88
+ return new ListenError({ reason: listenReasonByStoreReason[error.reason] });
89
+ }
90
+ function listenRepresentationFailure() {
91
+ return new ListenError({ reason: "decode-failed" });
92
+ }
93
+ function acknowledgeStoreFailure(error) {
94
+ return new DeliveryAcknowledgeError({
95
+ reason: acknowledgeReasonByStoreReason[error.reason],
96
+ });
97
+ }
98
+ function bindIdentityFailure(error) {
99
+ switch (error._tag) {
100
+ case "ClientRepresentationError":
101
+ return representationInitializationFailure();
102
+ case "EndpointStoreError":
103
+ return initializationStoreFailure(error);
104
+ default: {
105
+ const exhaustive = error;
106
+ return exhaustive;
107
+ }
108
+ }
109
+ }
110
+ function recoveryInitializationFailure(error) {
111
+ switch (error._tag) {
112
+ case "ClientRepresentationError":
113
+ case "ParseError":
114
+ return representationInitializationFailure();
115
+ case "RouterWorkerPersistenceError":
116
+ return new EngineInitializationError({ reason: "persistence" });
117
+ default: {
118
+ const exhaustive = error;
119
+ return exhaustive;
120
+ }
121
+ }
122
+ }
123
+ function resumeIntentFailure(error) {
124
+ const disposition = resumeDispositionBySendReason[error.reason];
125
+ switch (disposition) {
126
+ case "fail-persistence":
127
+ return Effect.fail(new EngineInitializationError({ reason: "persistence" }));
128
+ case "fail-representation":
129
+ return Effect.fail(representationInitializationFailure());
130
+ case "ignore":
131
+ return Effect.void;
132
+ default: {
133
+ const exhaustive = disposition;
134
+ return exhaustive;
135
+ }
136
+ }
137
+ }
138
+ function initializationStoreFailure(error) {
139
+ return new EngineInitializationError({
140
+ reason: initializationReasonByStoreReason[error.reason],
141
+ });
142
+ }
143
+ function representationInitializationFailure() {
144
+ return new EngineInitializationError({ reason: "representation" });
145
+ }
146
+ function resumeFoldFailure() {
147
+ return new EngineInitializationError({ reason: "persistence" });
148
+ }
149
+ const drainOutbound = (runtime) => runtime.outboundGate.withPermits(1)(Effect.gen(function* () {
150
+ while (runtime.outbound.length > 0) {
151
+ const message = runtime.outbound[0];
152
+ if (message === undefined) {
153
+ return;
154
+ }
155
+ yield* runtime.input.routerWorker
156
+ .send(message)
157
+ .pipe(Effect.mapError(outboundFailure));
158
+ yield* Effect.sync(() => {
159
+ if (runtime.outbound[0] === message) {
160
+ runtime.outbound.shift();
161
+ }
162
+ });
163
+ }
164
+ }));
165
+ const send = (runtime, input) => Effect.gen(function* () {
166
+ const prepared = yield* prepareSend(runtime, input);
167
+ yield* drainOutbound(runtime).pipe(Effect.mapError(outboundSendFailure));
168
+ yield* Deferred.await(prepared.completion);
169
+ yield* Effect.uninterruptible(exportSend(runtime, input, {
170
+ kind: "certified",
171
+ postId: prepared.postId,
172
+ }));
173
+ }).pipe(Effect.tapError((error) => exportSend(runtime, input, { kind: "failed", reason: error.reason })), Effect.withSpan("EndpointEngine.send"));
174
+ const runOutbound = (runtime) => Queue.take(runtime.outboundSignal).pipe(Effect.zipRight(drainOutbound(runtime)), Effect.forever);
175
+ const readPendingMessages = (runtime) => runtime.input.store.readPendingDeliveries().pipe(Effect.mapError(listenStoreFailure), Effect.flatMap((deliveries) => Effect.forEach(deliveries, (delivery) => decodeCanonical(InboundMessage, delivery.canonicalMessage).pipe(Effect.mapError(listenRepresentationFailure), Effect.map((message) => ({
176
+ deliveryToken: delivery.deliveryToken,
177
+ message,
178
+ }))), { concurrency: 1 })));
179
+ const acknowledgeMessage = (runtime, deliveryToken) => runtime.input.store
180
+ .acknowledgeDelivery(deliveryToken)
181
+ .pipe(Effect.mapError(acknowledgeStoreFailure), Effect.asVoid);
182
+ const validateLocalIdentity = (input) => AgentSigningAuthority.publicKey(input.signingAuthority).x ===
183
+ input.localAgentCard.publicKey.x
184
+ ? Effect.void
185
+ : Effect.fail(new EngineInitializationError({ reason: "identity" }));
186
+ const bindLocalIdentity = (input) => encodeCanonical(AgentCard, input.localAgentCard).pipe(Effect.flatMap((canonicalAgentCard) => input.store.bindIdentity({
187
+ agentId: input.localAgentCard.agentId,
188
+ canonicalAgentCard,
189
+ })), Effect.mapError(bindIdentityFailure));
190
+ const makeRuntime = (input, recovered) => Effect.gen(function* () {
191
+ const outbound = recovered.outboundMessages.map((message) => message.outboundId);
192
+ const outboundSignal = yield* Queue.unbounded();
193
+ if (outbound.length > 0) {
194
+ yield* Queue.offer(outboundSignal, undefined);
195
+ }
196
+ return {
197
+ input,
198
+ conversations: recovered.conversations,
199
+ intents: new Map(),
200
+ completedPostIds: recovered.completedPostIds,
201
+ actionFolds: recovered.actionFolds,
202
+ recordFolds: recovered.recordFolds,
203
+ outbound,
204
+ outboundSignal,
205
+ gate: yield* Effect.makeSemaphore(1),
206
+ outboundGate: yield* Effect.makeSemaphore(1),
207
+ revision: yield* SubscriptionRef.make(0),
208
+ };
209
+ });
210
+ const hydratePostIntents = (runtime, postIntents) => Effect.forEach(postIntents, (stored) => Effect.gen(function* () {
211
+ const intent = yield* decodeCanonical(PostIntent, stored.canonicalIntent).pipe(Effect.mapError(representationInitializationFailure));
212
+ const completion = yield* Deferred.make();
213
+ yield* Effect.sync(() => {
214
+ runtime.intents.set(intent.postId, {
215
+ intent,
216
+ canonicalIntent: stored.canonicalIntent,
217
+ completion,
218
+ });
219
+ });
220
+ if (stored.completedRecordHash !== undefined) {
221
+ yield* Deferred.succeed(completion, undefined);
222
+ }
223
+ }), { concurrency: 1, discard: true });
224
+ const initializeRuntime = (input) => Effect.gen(function* () {
225
+ yield* validateLocalIdentity(input);
226
+ yield* bindLocalIdentity(input);
227
+ const recovery = yield* input.store
228
+ .recover()
229
+ .pipe(Effect.mapError(initializationStoreFailure));
230
+ const recovered = yield* recoverEngineState(input, recovery).pipe(Effect.mapError(recoveryInitializationFailure));
231
+ const runtime = yield* makeRuntime(input, recovered);
232
+ yield* hydratePostIntents(runtime, recovered.postIntents);
233
+ return runtime;
234
+ });
235
+ const resumeRuntime = (runtime) => Effect.gen(function* () {
236
+ yield* resumeDisseminationObligations(runtime).pipe(Effect.mapError(resumeFoldFailure));
237
+ yield* resumeEngineFolds(runtime).pipe(Effect.mapError(resumeFoldFailure));
238
+ yield* Effect.forEach(runtime.intents.values(), (intent) => runtime.completedPostIds.has(intent.intent.postId)
239
+ ? Effect.void
240
+ : proposeIntent(runtime, intent).pipe(Effect.asVoid, Effect.catchTag("SendError", resumeIntentFailure)), { concurrency: 1, discard: true });
241
+ });
242
+ const abandonVolatileFolds = (runtime, reason) => runtime.gate
243
+ .withPermits(1)(Effect.gen(function* () {
244
+ yield* installRecoveryBarrier(runtime);
245
+ yield* Effect.sync(() => {
246
+ runtime.outbound.length = 0;
247
+ if (reason !== "router_restarted") {
248
+ return;
249
+ }
250
+ for (const fold of runtime.actionFolds.values()) {
251
+ fold.localActionEvidenceQueued = false;
252
+ fold.actionCertifiedRecordQueued = false;
253
+ fold.localDurabilityEvidenceQueued = false;
254
+ fold.certifiedRecordQueued = false;
255
+ }
256
+ });
257
+ }))
258
+ .pipe(Effect.withSpan("abandonVolatileFolds", { attributes: { reason } }));
259
+ const endpointEngine = (runtime) => Object.freeze({
260
+ send: (sendInput) => send(runtime, sendInput),
261
+ readPendingMessages: () => readPendingMessages(runtime),
262
+ acknowledgeMessage: (deliveryToken) => acknowledgeMessage(runtime, deliveryToken),
263
+ acceptRouterIngress: (ingress) => acceptEngineIngressWithRecovery(runtime, ingress),
264
+ acceptRecoveryIngress: (ingress) => acceptEngineRecoveryIngressWithRecovery(runtime, ingress),
265
+ recoverCertifiedHistory: (recovery) => recoverCertifiedHistory(runtime, recovery),
266
+ drainOutbound: drainOutbound(runtime),
267
+ runOutbound: runOutbound(runtime),
268
+ abandonVolatileFolds: (reason) => abandonVolatileFolds(runtime, reason),
269
+ });
270
+ /**
271
+ * Build one coherent private engine over registered identity and durable state.
272
+ * @param input Verified identity, storage, Registry, and Router dependencies.
273
+ * @returns A scoped engine whose recovered state is ready for protocol work.
274
+ */
275
+ export const makeEndpointEngine = (input) => Effect.gen(function* () {
276
+ const runtime = yield* initializeRuntime(input);
277
+ yield* resumeRuntime(runtime);
278
+ return endpointEngine(runtime);
279
+ }).pipe(Effect.withSpan("makeEndpointEngine"));
280
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** @file Stable evidence routing and verification for active protocol folds. */
2
+ import { SignedMessage } from "@moltzap/identity";
3
+ import { Effect } from "effect";
4
+ import type { EngineActionFold, EngineRuntime } from "../engine-types.js";
5
+ import type { RouterWorkerIngress } from "../router-worker/index.js";
6
+ import { ClientRepresentationError, type DecodedOuterBody, type VerifiedEvidence } from "../representation.js";
7
+ /** One active fold selected by the target of a stable evidence statement. */
8
+ export type EvidenceRoute = Readonly<{
9
+ fold: EngineActionFold;
10
+ kind: "action";
11
+ }> | Readonly<{
12
+ fold: EngineActionFold;
13
+ kind: "durability";
14
+ }>;
15
+ /**
16
+ * Locate the active fold named by a stable evidence message.
17
+ * @param runtime Engine whose active folds may receive the evidence.
18
+ * @param message Decoded stable inner evidence message.
19
+ * @returns The matching fold and evidence kind, when still active.
20
+ */
21
+ export declare const evidenceRoute: (runtime: EngineRuntime, message: SignedMessage) => Effect.Effect<EvidenceRoute | undefined, ClientRepresentationError>;
22
+ /**
23
+ * Check that verified evidence targets the fold selected by its decoded body.
24
+ * @param route Active fold and evidence role selected from the statement.
25
+ * @param statement Cryptographically verified evidence statement.
26
+ * @returns Whether every fold-specific binding matches.
27
+ */
28
+ export declare function evidenceMatchesFold(route: EvidenceRoute, statement: VerifiedEvidence["statement"]): boolean;
29
+ /**
30
+ * Verify one evidence message against its outer sender and fixed membership.
31
+ * @param ingress Authenticated Router ingress carrying the outer message.
32
+ * @param message Stable self-addressed inner evidence message.
33
+ * @param route Active fold selected from the evidence statement.
34
+ * @returns Cryptographically verified evidence and decoded statement.
35
+ */
36
+ export declare function verifiedEvidenceForRoute(ingress: RouterWorkerIngress<DecodedOuterBody>, message: SignedMessage, route: EvidenceRoute): Effect.Effect<VerifiedEvidence, ClientRepresentationError>;
37
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/endpoint/protocol/evidence.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,yBAAyB,EAEzB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GACrB,QAAQ,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GACpD,QAAQ,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YACf,aAAa,WACb,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,yBAAyB,CAqBlE,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GACvC,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAC9C,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,CAgB5D"}
@@ -0,0 +1,80 @@
1
+ /** @file Stable evidence routing and verification for active protocol folds. */
2
+ import { SignedMessage } from "@moltzap/identity";
3
+ import { Effect, Schema } from "effect";
4
+ import { ClientRepresentationError, decodeCanonical, EvidenceStatement, verifyOuterMessage, verifyStableEvidence, } from "../representation.js";
5
+ /**
6
+ * Locate the active fold named by a stable evidence message.
7
+ * @param runtime Engine whose active folds may receive the evidence.
8
+ * @param message Decoded stable inner evidence message.
9
+ * @returns The matching fold and evidence kind, when still active.
10
+ */
11
+ export const evidenceRoute = (runtime, message) => decodeCanonical(EvidenceStatement, message.body).pipe(Effect.map((statement) => {
12
+ switch (statement.kind) {
13
+ case "action_signature": {
14
+ const fold = runtime.actionFolds.get(statement.actionHash);
15
+ return fold === undefined ? undefined : { fold, kind: "action" };
16
+ }
17
+ case "durability_vote": {
18
+ const fold = runtime.recordFolds.get(statement.recordHash);
19
+ return fold === undefined ? undefined : { fold, kind: "durability" };
20
+ }
21
+ case "catch_up_attestation":
22
+ case "reanchor_vote":
23
+ return undefined;
24
+ default: {
25
+ const exhaustive = statement;
26
+ return exhaustive;
27
+ }
28
+ }
29
+ }));
30
+ /**
31
+ * Check that verified evidence targets the fold selected by its decoded body.
32
+ * @param route Active fold and evidence role selected from the statement.
33
+ * @param statement Cryptographically verified evidence statement.
34
+ * @returns Whether every fold-specific binding matches.
35
+ */
36
+ export function evidenceMatchesFold(route, statement) {
37
+ switch (route.kind) {
38
+ case "action":
39
+ return actionEvidenceMatchesFold(route.fold, statement);
40
+ case "durability":
41
+ return durabilityEvidenceMatchesFold(route.fold, statement);
42
+ default: {
43
+ const exhaustive = route;
44
+ return exhaustive;
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * Verify one evidence message against its outer sender and fixed membership.
50
+ * @param ingress Authenticated Router ingress carrying the outer message.
51
+ * @param message Stable self-addressed inner evidence message.
52
+ * @param route Active fold selected from the evidence statement.
53
+ * @returns Cryptographically verified evidence and decoded statement.
54
+ */
55
+ export function verifiedEvidenceForRoute(ingress, message, route) {
56
+ return Effect.gen(function* () {
57
+ yield* verifyOuterMessage({
58
+ message: ingress.message,
59
+ membership: route.fold.conversation.membership,
60
+ });
61
+ const representation = yield* Schema.encode(SignedMessage)(message).pipe(Effect.catchTag("ParseError", () => Effect.fail(new ClientRepresentationError())));
62
+ return yield* verifyStableEvidence({
63
+ representation,
64
+ membership: route.fold.conversation.membership,
65
+ });
66
+ }).pipe(Effect.withSpan("verifiedEvidenceForRoute"));
67
+ }
68
+ function actionEvidenceMatchesFold(fold, statement) {
69
+ return (statement.kind === "action_signature" &&
70
+ statement.actionHash === fold.actionHash);
71
+ }
72
+ function durabilityEvidenceMatchesFold(fold, statement) {
73
+ if (statement.kind !== "durability_vote" || fold.recordHash === undefined) {
74
+ return false;
75
+ }
76
+ return (statement.recordHash === fold.recordHash &&
77
+ statement.conversationId === fold.conversation.conversationId &&
78
+ statement.membershipHash === fold.conversation.membership.hash);
79
+ }
80
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/endpoint/protocol/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /** @file Router-ordered proposal selection and addressed record certification. */
2
+ import { Effect } from "effect";
3
+ import type { EngineRuntime } from "../engine-types.js";
4
+ import { type DecodedOuterBody } from "../representation.js";
5
+ import { type RouterIngressDisposition, type RouterWorkerIngress, RouterWorkerPersistenceError } from "../router-worker/index.js";
6
+ /**
7
+ * Apply one semantically verified Router-ordered protocol value.
8
+ * @param runtime Current engine state and durable protocol dependencies.
9
+ * @param ingress Authenticated Router-ordered protocol input.
10
+ * @returns Whether the input changed durable state or was irrelevant.
11
+ */
12
+ export declare const acceptEngineIngress: (runtime: EngineRuntime, ingress: RouterWorkerIngress<DecodedOuterBody>) => Effect.Effect<RouterIngressDisposition, RouterWorkerPersistenceError>;
13
+ /**
14
+ * Recovery accepts complete certified records through the same durable path.
15
+ * @param runtime Current engine state and durable protocol dependencies.
16
+ * @param ingress Authenticated recovery input from one fixed member.
17
+ * @returns Whether recovery advanced durable state or ignored the input.
18
+ */
19
+ export declare const acceptEngineRecoveryIngress: (runtime: EngineRuntime, ingress: RouterWorkerIngress<DecodedOuterBody>) => Effect.Effect<RouterIngressDisposition, RouterWorkerPersistenceError>;
20
+ /**
21
+ * Resume only the evidence obligations already selected in durable state.
22
+ * @param runtime Recovered engine state and durable protocol dependencies.
23
+ * @returns Completion after all resumable evidence work has been queued.
24
+ */
25
+ export declare const resumeEngineFolds: (runtime: EngineRuntime) => Effect.Effect<void, RouterWorkerPersistenceError>;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/protocol/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAY,MAAM,EAAgC,MAAM,QAAQ,CAAC;AAExE,OAAO,KAAK,EAIV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAqB5B,OAAO,EASL,KAAK,gBAAgB,EAetB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,4BAA4B,EAC7B,MAAM,2BAA2B,CAAC;AA44BnC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YACrB,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAalE,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,YAC7B,aAAa,WACb,mBAAmB,CAAC,gBAAgB,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAkBlE,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CA0B9C,CAAC"}