@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,38 @@
1
+ /** @file Durable remote-message delivery, replay, and acknowledgment. */
2
+ import type { DatabaseSync } from "node:sqlite";
3
+ import { type CertifiedRecord, DeliveryToken, type InboundDeliveryInput, type PendingDelivery, type StoreMutation } from "./types.js";
4
+ /**
5
+ * Reads unacknowledged deliveries in stable local commit order.
6
+ *
7
+ * @param database Exclusively owned endpoint database.
8
+ * @returns Detached pending deliveries in durable insertion order.
9
+ */
10
+ export declare function readPendingDeliveries(database: DatabaseSync): readonly PendingDelivery[];
11
+ /**
12
+ * Reads every retained delivery, including acknowledged tombstones.
13
+ *
14
+ * @param database Exclusively owned endpoint database.
15
+ * @returns Detached retained deliveries in durable insertion order.
16
+ */
17
+ export declare function readRetainedDeliveries(database: DatabaseSync): readonly PendingDelivery[];
18
+ /**
19
+ * Durably acknowledges one delivery without deleting its collision tombstone.
20
+ *
21
+ * @param database Exclusively owned endpoint database.
22
+ * @param deliveryToken Stable opaque delivery identity.
23
+ * @returns Whether acknowledgment state advanced or was already retained.
24
+ */
25
+ export declare function acknowledgeDelivery(database: DatabaseSync, deliveryToken: DeliveryToken): StoreMutation;
26
+ /**
27
+ * Creates or validates the delivery coupled to one certified record.
28
+ *
29
+ * This function runs inside the record-promotion transaction after the
30
+ * certified marker exists. It suppresses the local author's own post.
31
+ *
32
+ * @param database Exclusively owned endpoint database.
33
+ * @param record Complete record whose certification is already durable.
34
+ * @param delivery Canonical remote message, absent for the local author.
35
+ * @returns Whether the delivery row was inserted or already retained.
36
+ */
37
+ export declare function retainDeliveryInTransaction(database: DatabaseSync, record: CertifiedRecord, delivery?: InboundDeliveryInput): StoreMutation;
38
+ //# sourceMappingURL=deliveries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../../src/endpoint/store/deliveries.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAchD,OAAO,EACL,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAOpB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GACrB,SAAS,eAAe,EAAE,CAU5B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,GACrB,SAAS,eAAe,EAAE,CAU5B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,aAAa,GAC3B,aAAa,CA4Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,aAAa,CA6Cf"}
@@ -0,0 +1,124 @@
1
+ /** @file Durable remote-message delivery, replay, and acknowledgment. */
2
+ import { Either, Schema } from "effect";
3
+ import { copyBytes, mintDeliveryToken, readText, requireBytes, requireEqual, requireSameBytes, requireText, StoreSignal, transaction, } from "./database/index.js";
4
+ import { readPendingDelivery, readStoredIdentity } from "./rows/index.js";
5
+ import { DeliveryToken, } from "./types.js";
6
+ const deliveryColumns = `
7
+ delivery_token, conversation_id, record_hash, recipient_agent_id,
8
+ canonical_message, acknowledged
9
+ `;
10
+ /**
11
+ * Reads unacknowledged deliveries in stable local commit order.
12
+ *
13
+ * @param database Exclusively owned endpoint database.
14
+ * @returns Detached pending deliveries in durable insertion order.
15
+ */
16
+ export function readPendingDeliveries(database) {
17
+ return Object.freeze(database
18
+ .prepare(`SELECT ${deliveryColumns} FROM pending_deliveries
19
+ WHERE acknowledged = 0 ORDER BY delivery_sequence`)
20
+ .all()
21
+ .map(readPendingDelivery));
22
+ }
23
+ /**
24
+ * Reads every retained delivery, including acknowledged tombstones.
25
+ *
26
+ * @param database Exclusively owned endpoint database.
27
+ * @returns Detached retained deliveries in durable insertion order.
28
+ */
29
+ export function readRetainedDeliveries(database) {
30
+ return Object.freeze(database
31
+ .prepare(`SELECT ${deliveryColumns} FROM pending_deliveries
32
+ ORDER BY delivery_sequence`)
33
+ .all()
34
+ .map(readPendingDelivery));
35
+ }
36
+ /**
37
+ * Durably acknowledges one delivery without deleting its collision tombstone.
38
+ *
39
+ * @param database Exclusively owned endpoint database.
40
+ * @param deliveryToken Stable opaque delivery identity.
41
+ * @returns Whether acknowledgment state advanced or was already retained.
42
+ */
43
+ export function acknowledgeDelivery(database, deliveryToken) {
44
+ Either.match(Schema.decodeUnknownEither(DeliveryToken)(deliveryToken), {
45
+ onLeft: () => {
46
+ throw new StoreSignal("invalid-input");
47
+ },
48
+ onRight: () => undefined,
49
+ });
50
+ return transaction(database, () => {
51
+ const row = database
52
+ .prepare(`SELECT ${deliveryColumns} FROM pending_deliveries
53
+ WHERE delivery_token = ?`)
54
+ .get(deliveryToken);
55
+ if (row === undefined) {
56
+ throw new StoreSignal("not-found");
57
+ }
58
+ if (readPendingDelivery(row).acknowledged) {
59
+ return "existing";
60
+ }
61
+ database
62
+ .prepare(`UPDATE pending_deliveries SET acknowledged = 1
63
+ WHERE delivery_token = ?`)
64
+ .run(deliveryToken);
65
+ return "inserted";
66
+ });
67
+ }
68
+ /**
69
+ * Creates or validates the delivery coupled to one certified record.
70
+ *
71
+ * This function runs inside the record-promotion transaction after the
72
+ * certified marker exists. It suppresses the local author's own post.
73
+ *
74
+ * @param database Exclusively owned endpoint database.
75
+ * @param record Complete record whose certification is already durable.
76
+ * @param delivery Canonical remote message, absent for the local author.
77
+ * @returns Whether the delivery row was inserted or already retained.
78
+ */
79
+ export function retainDeliveryInTransaction(database, record, delivery) {
80
+ const identity = readStoredIdentity(database);
81
+ if (identity === undefined) {
82
+ throw new StoreSignal("not-found");
83
+ }
84
+ if (record.authorAgentId === identity.agentId) {
85
+ if (delivery !== undefined) {
86
+ throw new StoreSignal("conflict");
87
+ }
88
+ return "existing";
89
+ }
90
+ if (delivery === undefined) {
91
+ throw new StoreSignal("invalid-input");
92
+ }
93
+ requireText(delivery.recipientAgentId);
94
+ requireBytes(delivery.canonicalMessage);
95
+ requireEqual(identity.agentId, delivery.recipientAgentId);
96
+ const existing = findRetainedDelivery(database, record.conversationId, record.recordHash);
97
+ if (existing !== undefined) {
98
+ requireEqual(existing.recipientAgentId, delivery.recipientAgentId);
99
+ requireSameBytes(existing.canonicalMessage, delivery.canonicalMessage);
100
+ return "existing";
101
+ }
102
+ const deliveryToken = Schema.decodeUnknownSync(DeliveryToken)(mintDeliveryToken(readDeliveryTokens(database)));
103
+ database
104
+ .prepare(`INSERT INTO pending_deliveries
105
+ (delivery_token, conversation_id, record_hash, recipient_agent_id,
106
+ canonical_message)
107
+ VALUES (?, ?, ?, ?, ?)`)
108
+ .run(deliveryToken, record.conversationId, record.recordHash, delivery.recipientAgentId, copyBytes(delivery.canonicalMessage));
109
+ return "inserted";
110
+ }
111
+ function findRetainedDelivery(database, conversationId, recordHash) {
112
+ const row = database
113
+ .prepare(`SELECT ${deliveryColumns} FROM pending_deliveries
114
+ WHERE conversation_id = ? AND record_hash = ?`)
115
+ .get(conversationId, recordHash);
116
+ return row === undefined ? undefined : readPendingDelivery(row);
117
+ }
118
+ function readDeliveryTokens(database) {
119
+ return new Set(database
120
+ .prepare("SELECT delivery_token FROM pending_deliveries")
121
+ .all()
122
+ .map((row) => readText(row, "delivery_token")));
123
+ }
124
+ //# sourceMappingURL=deliveries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../../src/endpoint/store/deliveries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** @file Durable record-dissemination obligations and exact outbox attachment. */
2
+ import type { DatabaseSync } from "node:sqlite";
3
+ import type { DisseminationObligation, OutboundMessageInput, StoredOutboundMessage, StoreMutation } from "./types.js";
4
+ /**
5
+ * Retains one logical packet requirement inside a record-state transaction.
6
+ *
7
+ * @param database Exclusively owned endpoint database.
8
+ * @param obligation Exact record packet that must reach the durable outbox.
9
+ * @returns Whether the obligation was inserted or already durable.
10
+ */
11
+ export declare function retainDisseminationInTransaction(database: DatabaseSync, obligation: DisseminationObligation): StoreMutation;
12
+ /**
13
+ * Atomically attaches one logical packet requirement to its exact outbox row.
14
+ *
15
+ * @param database Exclusively owned endpoint database.
16
+ * @param obligation Expected durable packet requirement.
17
+ * @param message Complete canonical outer envelope.
18
+ * @returns The current durable envelope under its stable outbox identity.
19
+ */
20
+ export declare function enqueueDisseminationOutbound(database: DatabaseSync, obligation: DisseminationObligation, message: OutboundMessageInput): StoredOutboundMessage;
21
+ /**
22
+ * Reads unattached obligations in their durable insertion order.
23
+ * @param database Exclusively owned endpoint database.
24
+ * @returns Exact obligations that do not yet own an outbox envelope.
25
+ */
26
+ export declare function readPendingDissemination(database: DatabaseSync): readonly DisseminationObligation[];
27
+ //# sourceMappingURL=dissemination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissemination.d.ts","sourceRoot":"","sources":["../../../src/endpoint/store/dissemination.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAEV,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACd,MAAM,YAAY,CAAC;AAWpB;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,uBAAuB,GAClC,aAAa,CAef;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,uBAAuB,EACnC,OAAO,EAAE,oBAAoB,GAC5B,qBAAqB,CA4BvB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,GACrB,SAAS,uBAAuB,EAAE,CAWpC"}
@@ -0,0 +1,139 @@
1
+ /** @file Durable record-dissemination obligations and exact outbox attachment. */
2
+ import { readOptionalText, readText, requireEqual, requireText, StoreSignal, transaction, } from "./database/index.js";
3
+ import { enqueueOutboundInTransaction } from "./outbound.js";
4
+ /**
5
+ * Retains one logical packet requirement inside a record-state transaction.
6
+ *
7
+ * @param database Exclusively owned endpoint database.
8
+ * @param obligation Exact record packet that must reach the durable outbox.
9
+ * @returns Whether the obligation was inserted or already durable.
10
+ */
11
+ export function retainDisseminationInTransaction(database, obligation) {
12
+ validateObligation(obligation);
13
+ requireRecordState(database, obligation);
14
+ const existing = findObligation(database, obligation);
15
+ if (existing !== undefined) {
16
+ return "existing";
17
+ }
18
+ database
19
+ .prepare(`INSERT INTO dissemination_obligations
20
+ (conversation_id, record_hash, packet_kind)
21
+ VALUES (?, ?, ?)`)
22
+ .run(obligation.conversationId, obligation.recordHash, obligation.kind);
23
+ return "inserted";
24
+ }
25
+ /**
26
+ * Atomically attaches one logical packet requirement to its exact outbox row.
27
+ *
28
+ * @param database Exclusively owned endpoint database.
29
+ * @param obligation Expected durable packet requirement.
30
+ * @param message Complete canonical outer envelope.
31
+ * @returns The current durable envelope under its stable outbox identity.
32
+ */
33
+ export function enqueueDisseminationOutbound(database, obligation, message) {
34
+ validateObligation(obligation);
35
+ requireEqual(obligation.conversationId, message.conversationId);
36
+ return transaction(database, () => {
37
+ const retained = requireObligation(database, obligation);
38
+ const outbound = enqueueOutboundInTransaction(database, message);
39
+ if (retained.outboundId !== undefined &&
40
+ retained.outboundId !== outbound.outboundId) {
41
+ throw new StoreSignal("conflict");
42
+ }
43
+ if (retained.outboundId === undefined) {
44
+ database
45
+ .prepare(`UPDATE dissemination_obligations SET outbound_id = ?
46
+ WHERE conversation_id = ? AND record_hash = ? AND packet_kind = ?
47
+ AND outbound_id IS NULL`)
48
+ .run(outbound.outboundId, obligation.conversationId, obligation.recordHash, obligation.kind);
49
+ }
50
+ return outbound;
51
+ });
52
+ }
53
+ /**
54
+ * Reads unattached obligations in their durable insertion order.
55
+ * @param database Exclusively owned endpoint database.
56
+ * @returns Exact obligations that do not yet own an outbox envelope.
57
+ */
58
+ export function readPendingDissemination(database) {
59
+ return Object.freeze(database
60
+ .prepare(`SELECT conversation_id, record_hash, packet_kind
61
+ FROM dissemination_obligations WHERE outbound_id IS NULL
62
+ ORDER BY obligation_sequence`)
63
+ .all()
64
+ .map(readObligation));
65
+ }
66
+ function requireObligation(database, obligation) {
67
+ const retained = findObligation(database, obligation);
68
+ if (retained === undefined) {
69
+ throw new StoreSignal("not-found");
70
+ }
71
+ requireSameObligation(retained.obligation, obligation);
72
+ return retained;
73
+ }
74
+ function findObligation(database, obligation) {
75
+ const row = database
76
+ .prepare(`SELECT conversation_id, record_hash, packet_kind, outbound_id
77
+ FROM dissemination_obligations
78
+ WHERE conversation_id = ? AND record_hash = ? AND packet_kind = ?`)
79
+ .get(obligation.conversationId, obligation.recordHash, obligation.kind);
80
+ return row === undefined ? undefined : readRetainedDissemination(row);
81
+ }
82
+ function readRetainedDissemination(row) {
83
+ const outboundId = readOptionalText(row, "outbound_id");
84
+ return Object.freeze({
85
+ obligation: readObligation(row),
86
+ ...(outboundId === undefined ? {} : { outboundId }),
87
+ });
88
+ }
89
+ function readObligation(row) {
90
+ return Object.freeze({
91
+ conversationId: readText(row, "conversation_id"),
92
+ recordHash: readText(row, "record_hash"),
93
+ kind: readDisseminationKind(row),
94
+ });
95
+ }
96
+ function readDisseminationKind(row) {
97
+ const kind = readText(row, "packet_kind");
98
+ switch (kind) {
99
+ case "action-certified-record":
100
+ case "certified-record":
101
+ return kind;
102
+ default:
103
+ throw new StoreSignal("corrupt");
104
+ }
105
+ }
106
+ function validateObligation(obligation) {
107
+ requireText(obligation.conversationId);
108
+ requireText(obligation.recordHash);
109
+ }
110
+ function requireRecordState(database, obligation) {
111
+ const retained = findRecordState(database, obligation);
112
+ if (retained === undefined) {
113
+ throw new StoreSignal("not-found");
114
+ }
115
+ }
116
+ function findRecordState(database, obligation) {
117
+ switch (obligation.kind) {
118
+ case "action-certified-record":
119
+ return database
120
+ .prepare(`SELECT 1 AS retained FROM staged_records
121
+ WHERE conversation_id = ? AND record_hash = ?`)
122
+ .get(obligation.conversationId, obligation.recordHash);
123
+ case "certified-record":
124
+ return database
125
+ .prepare(`SELECT 1 AS retained FROM certified_records
126
+ WHERE conversation_id = ? AND record_hash = ?`)
127
+ .get(obligation.conversationId, obligation.recordHash);
128
+ default: {
129
+ const exhaustive = obligation.kind;
130
+ return exhaustive;
131
+ }
132
+ }
133
+ }
134
+ function requireSameObligation(left, right) {
135
+ requireEqual(left.conversationId, right.conversationId);
136
+ requireEqual(left.recordHash, right.recordHash);
137
+ requireEqual(left.kind, right.kind);
138
+ }
139
+ //# sourceMappingURL=dissemination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissemination.js","sourceRoot":"","sources":["../../../src/endpoint/store/dissemination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** @file Internal store assembly behind the stable endpoint/store.ts facade. */
2
+ import { Effect, type Scope } from "effect";
3
+ import type { EndpointStore } from "./types.js";
4
+ import { EndpointStoreError } from "./database/index.js";
5
+ /** Closed endpoint-store failures without SQLite implementation details. */
6
+ export { EndpointStoreError };
7
+ /**
8
+ * Opens the one SQLite store owned by a daemon state directory.
9
+ *
10
+ * @param stateDirectory Exclusive persistent state directory.
11
+ * @returns A scoped private endpoint-store capability.
12
+ * @failure EndpointStoreError when the directory or database cannot be owned.
13
+ */
14
+ export declare const openEndpointStore: (stateDirectory: string) => Effect.Effect<EndpointStore, EndpointStoreError, Scope.Scope>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/store/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYhD,OAAO,EAEL,kBAAkB,EAInB,MAAM,qBAAqB,CAAC;AAyB7B,4EAA4E;AAC5E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,mBACZ,MAAM,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAK5D,CAAC"}
@@ -0,0 +1,76 @@
1
+ /** @file Internal store assembly behind the stable endpoint/store.ts facade. */
2
+ import { Effect } from "effect";
3
+ import { applyCatchUpReanchor, bindIdentity, bindPostIntent, completeReanchor, lockGenesisProposal, lockProposal, putConversationFoundation, restartEmptyConversation, stageReanchor, } from "./anchors.js";
4
+ import { closeStoreState, EndpointStoreError, openStoreState, runStoreOperation, } from "./database/index.js";
5
+ import { acknowledgeDelivery, readPendingDeliveries } from "./deliveries.js";
6
+ import { enqueueDisseminationOutbound } from "./dissemination.js";
7
+ import { readStoredConversation, recoverStoredState, releaseStoredContinuation, searchStoredConversations, } from "./management.js";
8
+ import { beginOutbound, completeOutbound, discardOutbound, enqueueOutbound, replaceOutbound, } from "./outbound.js";
9
+ import { applyCatchUpRecord, mergeEvidence, promoteRecord, promoteRecordForDissemination, stageRecord, stageRecordForDissemination, } from "./records.js";
10
+ /** Closed endpoint-store failures without SQLite implementation details. */
11
+ export { EndpointStoreError };
12
+ /**
13
+ * Opens the one SQLite store owned by a daemon state directory.
14
+ *
15
+ * @param stateDirectory Exclusive persistent state directory.
16
+ * @returns A scoped private endpoint-store capability.
17
+ * @failure EndpointStoreError when the directory or database cannot be owned.
18
+ */
19
+ export const openEndpointStore = (stateDirectory) =>
20
+ // eslint-disable-next-line agent-code-guard/acquire-release-requires-scope -- The returned Scope requirement binds SQLite ownership to daemon acquisition.
21
+ Effect.acquireRelease(openStoreState(stateDirectory), closeStoreState).pipe(Effect.map(makeEndpointStore), Effect.withSpan("openEndpointStore"));
22
+ function makeEndpointStore(state) {
23
+ const run = makeStoreRunner(state);
24
+ const store = {
25
+ ...makeHistoryOperations(state, run),
26
+ ...makeTransportOperations(state, run),
27
+ ...makeManagementOperations(state, run),
28
+ };
29
+ return Object.freeze(store);
30
+ }
31
+ function makeStoreRunner(state) {
32
+ return (operation) => runStoreOperation(state, operation);
33
+ }
34
+ function makeHistoryOperations(state, run) {
35
+ return {
36
+ readIdentity: () => run(() => bindIdentity.read(state.database)),
37
+ bindIdentity: (binding) => run(() => bindIdentity.write(state.database, binding)),
38
+ bindPostIntent: (binding) => run(() => bindPostIntent(state.database, binding)),
39
+ putConversationFoundation: (foundation) => run(() => putConversationFoundation(state.database, foundation)),
40
+ lockProposal: (proposal) => run(() => lockProposal(state.database, proposal)),
41
+ lockGenesisProposal: (foundation, proposal) => run(() => lockGenesisProposal(state.database, foundation, proposal)),
42
+ stageRecord: (record) => run(() => stageRecord(state.database, record)),
43
+ stageRecordForDissemination: (record) => run(() => stageRecordForDissemination(state.database, record)),
44
+ mergeEvidence: (evidence) => run(() => mergeEvidence(state.database, evidence)),
45
+ promoteRecord: (record, delivery) => run(() => promoteRecord(state.database, record, delivery)),
46
+ promoteRecordForDissemination: (record, delivery) => run(() => promoteRecordForDissemination(state.database, record, delivery)),
47
+ applyCatchUpRecord: (record, delivery) => run(() => applyCatchUpRecord(state.database, record, delivery)),
48
+ stageReanchor: (reanchor) => run(() => stageReanchor(state.database, reanchor)),
49
+ completeReanchor: (reanchor) => run(() => completeReanchor(state.database, reanchor)),
50
+ applyCatchUpReanchor: (reanchor) => run(() => applyCatchUpReanchor(state.database, reanchor)),
51
+ };
52
+ }
53
+ function makeTransportOperations(state, run) {
54
+ return {
55
+ readPendingDeliveries: () => run(() => readPendingDeliveries(state.database)),
56
+ acknowledgeDelivery: (deliveryToken) => run(() => acknowledgeDelivery(state.database, deliveryToken)),
57
+ enqueueOutbound: (message) => run(() => enqueueOutbound(state.database, message)),
58
+ enqueueDisseminationOutbound: (obligation, message) => run(() => enqueueDisseminationOutbound(state.database, obligation, message)),
59
+ beginOutbound: (outboundId) => run(() => beginOutbound(state.database, outboundId)),
60
+ replaceOutbound: (current, replacement) => run(() => replaceOutbound(state.database, current, replacement)),
61
+ completeOutbound: (outbound) => run(() => completeOutbound(state.database, outbound)),
62
+ discardOutbound: (outbounds) => run(() => discardOutbound(state.database, outbounds)),
63
+ restartEmptyConversation: (restart) => run(() => restartEmptyConversation(state.database, restart)),
64
+ };
65
+ }
66
+ function makeManagementOperations(state, run) {
67
+ return {
68
+ searchConversations: (input = {}) => run(() => searchStoredConversations(state.database, input)),
69
+ readConversation: (request) => run(() => readStoredConversation(state, request)),
70
+ releaseContinuation: (continuation) => run(() => {
71
+ releaseStoredContinuation(state, continuation);
72
+ }),
73
+ recover: () => run(() => recoverStoredState(state.database)),
74
+ };
75
+ }
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/store/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /** @file Recovery and frozen local management reads over certified history. */
2
+ import type { DatabaseSync } from "node:sqlite";
3
+ import type { ConversationPage, EndpointRecovery, HistoryPage } from "./types.js";
4
+ import { type StoreState } from "./database/index.js";
5
+ /**
6
+ * Lists locally certified conversation identifiers in canonical order.
7
+ *
8
+ * @param database Exclusively owned endpoint database.
9
+ * @param input Optional exclusive canonical lower bound.
10
+ * @returns At most fifty identifiers and whether more remain.
11
+ */
12
+ export declare function searchStoredConversations(database: DatabaseSync, input: Readonly<{
13
+ afterConversationId?: string;
14
+ }>): ConversationPage;
15
+ /**
16
+ * Reads or continues one process-local frozen certified-history snapshot.
17
+ *
18
+ * @param state Acquired database and process-local snapshots.
19
+ * @param request New read anchor or opaque continuation.
20
+ * @returns At most fifty complete contiguous records.
21
+ */
22
+ export declare function readStoredConversation(state: StoreState, request: Readonly<{
23
+ conversationId: string;
24
+ afterRecordHash?: string;
25
+ }> | Readonly<{
26
+ continuation: string;
27
+ }>): HistoryPage;
28
+ /**
29
+ * Releases one live continuation without changing durable state.
30
+ *
31
+ * @param state Acquired database and process-local snapshots.
32
+ * @param continuation Opaque process-local continuation to invalidate.
33
+ */
34
+ export declare function releaseStoredContinuation(state: StoreState, continuation: string): void;
35
+ /**
36
+ * Recovers all durable endpoint state needed to resume protocol work.
37
+ *
38
+ * @param database Exclusively owned endpoint database.
39
+ * @returns A detached snapshot of all durable endpoint protocol state.
40
+ */
41
+ export declare function recoverStoredState(database: DatabaseSync): EndpointRecovery;
42
+ //# sourceMappingURL=management.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../../src/endpoint/store/management.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EAIZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAQL,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AA4B7B;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,QAAQ,CAAC;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,gBAAgB,CASlB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,OAAO,EACH,QAAQ,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,GACrC,WAAW,CAIb;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,MAAM,GACnB,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,CA6C3E"}