@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,471 @@
1
+ /** @file Atomic identity, post-intent, foundation, and Router-anchor transitions. */
2
+ import { copyBytes, readBytes, readOptionalText, readText, requireBytes, requireEqual, requireSameBytes, requireText, StoreSignal, transaction, } from "./database/index.js";
3
+ import { findProposalLock, findStagedReanchor, readStoredIdentity, readStoredPosition, requireSameProposalLock, requireSameReanchor, } from "./rows/index.js";
4
+ const GENESIS_PREDECESSOR = "";
5
+ /** Singleton identity binding operations. */
6
+ export const bindIdentity = Object.freeze({
7
+ read: readStoredIdentity,
8
+ write: writeIdentity,
9
+ });
10
+ /**
11
+ * Durably binds one author-scoped post to its immutable canonical intent.
12
+ *
13
+ * @param database Exclusively owned endpoint database.
14
+ * @param binding Canonical post recovery identity and optional new foundation.
15
+ * @returns Whether the same binding was inserted or already durable.
16
+ */
17
+ export function bindPostIntent(database, binding) {
18
+ const intent = binding.intent;
19
+ requireText(intent.conversationId);
20
+ requireText(intent.membershipHash);
21
+ requireText(intent.authorAgentId);
22
+ requireText(intent.postId);
23
+ requireBytes(intent.canonicalIntent);
24
+ if (intent.completedRecordHash !== undefined) {
25
+ throw new StoreSignal("invalid-input");
26
+ }
27
+ if (binding.kind === "new-conversation") {
28
+ validateFoundation(binding.foundation);
29
+ requireEqual(binding.foundation.conversationId, intent.conversationId);
30
+ requireEqual(binding.foundation.membershipHash, intent.membershipHash);
31
+ }
32
+ return transaction(database, () => {
33
+ const foundation = binding.kind === "new-conversation"
34
+ ? putConversationFoundationInTransaction(database, binding.foundation)
35
+ : requireConversationFoundation(database, intent);
36
+ const postIntent = bindPostIntentInTransaction(database, intent);
37
+ return foundation === "inserted" || postIntent === "inserted"
38
+ ? "inserted"
39
+ : "existing";
40
+ });
41
+ }
42
+ /**
43
+ * Atomically persists the immutable membership and genesis Router anchor.
44
+ *
45
+ * @param database Exclusively owned endpoint database.
46
+ * @param foundation Verified immutable conversation foundation.
47
+ * @returns Whether the same foundation was inserted or already durable.
48
+ */
49
+ export function putConversationFoundation(database, foundation) {
50
+ return transaction(database, () => putConversationFoundationInTransaction(database, foundation));
51
+ }
52
+ /**
53
+ * Commits the first valid Router-ordered action for one predecessor.
54
+ *
55
+ * A caller signs only after this operation succeeds, so an endpoint cannot
56
+ * sign two actions for the same predecessor across crashes or restarts.
57
+ *
58
+ * @param database Exclusively owned endpoint database.
59
+ * @param proposal Verified action core selected in Router order.
60
+ * @returns Whether the lock was inserted or the same lock already existed.
61
+ */
62
+ export function lockProposal(database, proposal) {
63
+ validateProposalLock(proposal);
64
+ return transaction(database, () => lockProposalInTransaction(database, proposal));
65
+ }
66
+ /**
67
+ * Atomically retains a verified GENESIS foundation and its first-candidate lock.
68
+ *
69
+ * @param database Exclusively owned endpoint database.
70
+ * @param foundation Verified immutable membership and Router anchor.
71
+ * @param proposal Verified gap-free GENESIS action selected in Router order.
72
+ * @returns Whether either exact durable component was inserted.
73
+ */
74
+ export function lockGenesisProposal(database, foundation, proposal) {
75
+ validateProposalLock(proposal);
76
+ if (proposal.previousRecordHash !== undefined ||
77
+ proposal.conversationId !== foundation.conversationId) {
78
+ throw new StoreSignal("invalid-input");
79
+ }
80
+ return transaction(database, () => {
81
+ const retainedFoundation = putConversationFoundationInTransaction(database, foundation);
82
+ const retainedProposal = lockProposalInTransaction(database, proposal);
83
+ return retainedFoundation === "inserted" || retainedProposal === "inserted"
84
+ ? "inserted"
85
+ : "existing";
86
+ });
87
+ }
88
+ /**
89
+ * Replaces an uncommitted conversation's Router-instance foundation.
90
+ *
91
+ * The exact old foundation and empty certified head prevent this cleanup from
92
+ * erasing committed history or a concurrently advanced anchor.
93
+ *
94
+ * @param database Exclusively owned endpoint database.
95
+ * @param restart Expected old and verified replacement genesis foundations.
96
+ * @returns The replacement foundation and immutable retained post intents.
97
+ */
98
+ export function restartEmptyConversation(database, restart) {
99
+ validateEmptyConversationRestart(restart);
100
+ return transaction(database, () => {
101
+ requireEmptyConversationPosition(database, restart.expectedFoundation);
102
+ clearIncompleteConversationState(database, restart.expectedFoundation);
103
+ installReplacementFoundation(database, restart.replacementFoundation);
104
+ return Object.freeze({
105
+ foundation: copyFoundation(restart.replacementFoundation),
106
+ postIntents: readConversationPostIntents(database, restart.replacementFoundation.conversationId),
107
+ });
108
+ });
109
+ }
110
+ /**
111
+ * Durably stages at most one re-anchor proposal for one Router-instance scope.
112
+ *
113
+ * @param database Exclusively owned endpoint database.
114
+ * @param reanchor Verified proposal body and stable hash.
115
+ * @returns Whether the same proposal was inserted or already durable.
116
+ */
117
+ export function stageReanchor(database, reanchor) {
118
+ validateStagedReanchor(reanchor);
119
+ return transaction(database, () => stageReanchorInTransaction(database, reanchor));
120
+ }
121
+ /**
122
+ * Atomically makes a staged threshold-complete Router anchor current.
123
+ *
124
+ * @param database Exclusively owned endpoint database.
125
+ * @param reanchor Verified completed re-anchor and threshold evidence.
126
+ * @returns Whether completion advanced the current anchor or was idempotent.
127
+ */
128
+ export function completeReanchor(database, reanchor) {
129
+ validateCompletedReanchor(reanchor);
130
+ return transaction(database, () => completeReanchorInTransaction(database, reanchor));
131
+ }
132
+ /**
133
+ * Atomically stages and completes exactly one verified catch-up anchor item.
134
+ *
135
+ * @param database Exclusively owned endpoint database.
136
+ * @param reanchor One verified completed re-anchor from catch-up.
137
+ * @returns Whether any durable state was added.
138
+ */
139
+ export function applyCatchUpReanchor(database, reanchor) {
140
+ validateCompletedReanchor(reanchor);
141
+ return transaction(database, () => {
142
+ const staged = stageReanchorInTransaction(database, reanchor);
143
+ const completed = completeReanchorInTransaction(database, reanchor);
144
+ return staged === "inserted" || completed === "inserted"
145
+ ? "inserted"
146
+ : "existing";
147
+ });
148
+ }
149
+ function lockProposalInTransaction(database, proposal) {
150
+ const predecessorKey = proposal.previousRecordHash ?? GENESIS_PREDECESSOR;
151
+ const existing = findProposalLock(database, proposal.conversationId, predecessorKey);
152
+ if (existing !== undefined) {
153
+ requireSameProposalLock(existing, proposal);
154
+ return "existing";
155
+ }
156
+ const position = readStoredPosition(database, proposal.conversationId);
157
+ requireEqual(position.headRecordHash, proposal.previousRecordHash);
158
+ database
159
+ .prepare(`INSERT INTO proposal_locks
160
+ (conversation_id, predecessor_key, previous_record_hash,
161
+ action_hash, canonical_action_core)
162
+ VALUES (?, ?, ?, ?, ?)`)
163
+ .run(proposal.conversationId, predecessorKey, proposal.previousRecordHash ?? null, proposal.actionHash, copyBytes(proposal.canonicalActionCore));
164
+ return "inserted";
165
+ }
166
+ function validateProposalLock(proposal) {
167
+ requireText(proposal.conversationId);
168
+ if (proposal.previousRecordHash !== undefined) {
169
+ requireText(proposal.previousRecordHash);
170
+ }
171
+ requireText(proposal.actionHash);
172
+ requireBytes(proposal.canonicalActionCore);
173
+ }
174
+ function writeIdentity(database, binding) {
175
+ requireText(binding.agentId);
176
+ requireBytes(binding.canonicalAgentCard);
177
+ return transaction(database, () => {
178
+ const existing = readStoredIdentity(database);
179
+ if (existing !== undefined) {
180
+ requireEqual(existing.agentId, binding.agentId);
181
+ requireSameBytes(existing.canonicalAgentCard, binding.canonicalAgentCard);
182
+ return "existing";
183
+ }
184
+ database
185
+ .prepare(`INSERT INTO identity_binding
186
+ (singleton, agent_id, canonical_agent_card) VALUES (1, ?, ?)`)
187
+ .run(binding.agentId, copyBytes(binding.canonicalAgentCard));
188
+ return "inserted";
189
+ });
190
+ }
191
+ function bindPostIntentInTransaction(database, intent) {
192
+ const identity = readStoredIdentity(database);
193
+ if (identity === undefined) {
194
+ throw new StoreSignal("not-found");
195
+ }
196
+ requireEqual(identity.agentId, intent.authorAgentId);
197
+ const existing = database
198
+ .prepare(`SELECT conversation_id, membership_hash, canonical_intent
199
+ FROM post_intents WHERE author_agent_id = ? AND post_id = ?`)
200
+ .get(intent.authorAgentId, intent.postId);
201
+ if (existing !== undefined) {
202
+ requireEqual(readText(existing, "conversation_id"), intent.conversationId);
203
+ requireEqual(readText(existing, "membership_hash"), intent.membershipHash);
204
+ requireSameBytes(readBytes(existing, "canonical_intent"), intent.canonicalIntent);
205
+ return "existing";
206
+ }
207
+ database
208
+ .prepare(`INSERT INTO post_intents
209
+ (author_agent_id, post_id, conversation_id, membership_hash,
210
+ canonical_intent)
211
+ VALUES (?, ?, ?, ?, ?)`)
212
+ .run(intent.authorAgentId, intent.postId, intent.conversationId, intent.membershipHash, copyBytes(intent.canonicalIntent));
213
+ return "inserted";
214
+ }
215
+ /**
216
+ * Inserts or validates one complete membership and genesis anchor in an
217
+ * existing transaction.
218
+ *
219
+ * @param database Exclusively owned endpoint database.
220
+ * @param foundation Verified immutable conversation foundation.
221
+ * @returns Whether this transaction inserted the foundation.
222
+ */
223
+ function putConversationFoundationInTransaction(database, foundation) {
224
+ validateFoundation(foundation);
225
+ const existing = readFoundation(database, foundation.conversationId);
226
+ if (existing !== undefined) {
227
+ requireSameFoundation(existing, foundation);
228
+ return "existing";
229
+ }
230
+ insertFoundation(database, foundation);
231
+ return "inserted";
232
+ }
233
+ function requireConversationFoundation(database, intent) {
234
+ const foundation = readFoundation(database, intent.conversationId);
235
+ if (foundation === undefined) {
236
+ throw new StoreSignal("not-found");
237
+ }
238
+ requireEqual(foundation.membershipHash, intent.membershipHash);
239
+ return "existing";
240
+ }
241
+ function requireEmptyConversationPosition(database, expected) {
242
+ const retained = readFoundation(database, expected.conversationId);
243
+ if (retained === undefined) {
244
+ throw new StoreSignal("not-found");
245
+ }
246
+ requireSameFoundation(retained, expected);
247
+ const position = readStoredPosition(database, expected.conversationId);
248
+ requireEqual(position.membershipHash, expected.membershipHash);
249
+ requireEqual(position.currentAnchorHash, expected.anchorHash);
250
+ requireEqual(position.headRecordHash, undefined);
251
+ requireEqual(position.headOrdinal, -1);
252
+ if (database
253
+ .prepare(`SELECT 1 AS retained FROM certified_records
254
+ WHERE conversation_id = ? LIMIT 1`)
255
+ .get(expected.conversationId) !== undefined) {
256
+ throw new StoreSignal("conflict");
257
+ }
258
+ }
259
+ function readFoundation(database, conversationId) {
260
+ const row = database
261
+ .prepare(`SELECT membership.membership_hash, membership.canonical_membership,
262
+ anchor.anchor_hash, anchor.canonical_anchor
263
+ FROM memberships AS membership
264
+ JOIN anchors AS anchor
265
+ ON anchor.conversation_id = membership.conversation_id
266
+ AND anchor.previous_anchor_hash IS NULL
267
+ WHERE membership.conversation_id = ?`)
268
+ .get(conversationId);
269
+ return row === undefined
270
+ ? undefined
271
+ : Object.freeze({
272
+ conversationId,
273
+ membershipHash: readText(row, "membership_hash"),
274
+ canonicalMembership: readBytes(row, "canonical_membership"),
275
+ anchorHash: readText(row, "anchor_hash"),
276
+ canonicalAnchor: readBytes(row, "canonical_anchor"),
277
+ });
278
+ }
279
+ function insertFoundation(database, foundation) {
280
+ database
281
+ .prepare(`INSERT INTO memberships
282
+ (conversation_id, membership_hash, canonical_membership)
283
+ VALUES (?, ?, ?)`)
284
+ .run(foundation.conversationId, foundation.membershipHash, copyBytes(foundation.canonicalMembership));
285
+ database
286
+ .prepare(`INSERT INTO anchors
287
+ (conversation_id, anchor_hash, canonical_anchor) VALUES (?, ?, ?)`)
288
+ .run(foundation.conversationId, foundation.anchorHash, copyBytes(foundation.canonicalAnchor));
289
+ database
290
+ .prepare(`INSERT INTO conversation_state
291
+ (conversation_id, membership_hash, current_anchor_hash, head_ordinal)
292
+ VALUES (?, ?, ?, -1)`)
293
+ .run(foundation.conversationId, foundation.membershipHash, foundation.anchorHash);
294
+ }
295
+ function stageReanchorInTransaction(database, reanchor) {
296
+ const existing = findStagedReanchor(database, reanchor.conversationId, reanchor.anchorHash);
297
+ if (existing !== undefined) {
298
+ requireSameReanchor(existing, reanchor);
299
+ return "existing";
300
+ }
301
+ requireUnclaimedReanchorScope(database, reanchor);
302
+ requireReanchorPosition(database, reanchor);
303
+ insertStagedReanchor(database, reanchor);
304
+ return "inserted";
305
+ }
306
+ function completeReanchorInTransaction(database, reanchor) {
307
+ const staged = findStagedReanchor(database, reanchor.conversationId, reanchor.anchorHash);
308
+ if (staged === undefined) {
309
+ throw new StoreSignal("not-found");
310
+ }
311
+ requireSameReanchor(staged, reanchor);
312
+ if (hasAnchor(database, reanchor.conversationId, reanchor.anchorHash)) {
313
+ return "existing";
314
+ }
315
+ requireReanchorPosition(database, reanchor);
316
+ insertCompletedReanchor(database, reanchor);
317
+ return "inserted";
318
+ }
319
+ function requireUnclaimedReanchorScope(database, reanchor) {
320
+ const scoped = database
321
+ .prepare(`SELECT anchor_hash FROM reanchors
322
+ WHERE conversation_id = ? AND previous_anchor_hash = ?
323
+ AND router_instance_id = ?`)
324
+ .get(reanchor.conversationId, reanchor.previousAnchorHash, reanchor.routerInstanceId);
325
+ if (scoped !== undefined) {
326
+ throw new StoreSignal("conflict");
327
+ }
328
+ }
329
+ function requireReanchorPosition(database, reanchor) {
330
+ const position = readStoredPosition(database, reanchor.conversationId);
331
+ requireEqual(position.currentAnchorHash, reanchor.previousAnchorHash);
332
+ requireEqual(position.headRecordHash, reanchor.selectedRecordHash);
333
+ }
334
+ function insertStagedReanchor(database, reanchor) {
335
+ database
336
+ .prepare(`INSERT INTO reanchors
337
+ (conversation_id, anchor_hash, previous_anchor_hash,
338
+ router_instance_id, selected_record_hash, canonical_body)
339
+ VALUES (?, ?, ?, ?, ?, ?)`)
340
+ .run(reanchor.conversationId, reanchor.anchorHash, reanchor.previousAnchorHash, reanchor.routerInstanceId, reanchor.selectedRecordHash, copyBytes(reanchor.canonicalBody));
341
+ }
342
+ function insertCompletedReanchor(database, reanchor) {
343
+ database
344
+ .prepare(`INSERT INTO anchors
345
+ (conversation_id, anchor_hash, previous_anchor_hash,
346
+ selected_record_hash, canonical_anchor)
347
+ VALUES (?, ?, ?, ?, ?)`)
348
+ .run(reanchor.conversationId, reanchor.anchorHash, reanchor.previousAnchorHash, reanchor.selectedRecordHash, copyBytes(reanchor.canonicalCompletedReanchor));
349
+ database
350
+ .prepare(`UPDATE reanchors SET canonical_completed_reanchor = ?
351
+ WHERE conversation_id = ? AND anchor_hash = ?`)
352
+ .run(copyBytes(reanchor.canonicalCompletedReanchor), reanchor.conversationId, reanchor.anchorHash);
353
+ database
354
+ .prepare(`UPDATE conversation_state SET current_anchor_hash = ?
355
+ WHERE conversation_id = ?`)
356
+ .run(reanchor.anchorHash, reanchor.conversationId);
357
+ }
358
+ function hasAnchor(database, conversationId, anchorHash) {
359
+ return (database
360
+ .prepare(`SELECT 1 AS retained FROM anchors
361
+ WHERE conversation_id = ? AND anchor_hash = ?`)
362
+ .get(conversationId, anchorHash) !== undefined);
363
+ }
364
+ function validateEmptyConversationRestart(restart) {
365
+ validateFoundation(restart.expectedFoundation);
366
+ validateFoundation(restart.replacementFoundation);
367
+ requireEqual(restart.expectedFoundation.conversationId, restart.replacementFoundation.conversationId);
368
+ requireEqual(restart.expectedFoundation.membershipHash, restart.replacementFoundation.membershipHash);
369
+ requireSameBytes(restart.expectedFoundation.canonicalMembership, restart.replacementFoundation.canonicalMembership);
370
+ if (restart.expectedFoundation.anchorHash ===
371
+ restart.replacementFoundation.anchorHash) {
372
+ throw new StoreSignal("invalid-input");
373
+ }
374
+ }
375
+ function validateFoundation(foundation) {
376
+ requireText(foundation.conversationId);
377
+ requireText(foundation.membershipHash);
378
+ requireBytes(foundation.canonicalMembership);
379
+ requireText(foundation.anchorHash);
380
+ requireBytes(foundation.canonicalAnchor);
381
+ }
382
+ function clearIncompleteConversationState(database, expected) {
383
+ const conversationId = expected.conversationId;
384
+ database
385
+ .prepare("DELETE FROM dissemination_obligations WHERE conversation_id = ?")
386
+ .run(conversationId);
387
+ database
388
+ .prepare("DELETE FROM protocol_evidence WHERE conversation_id = ?")
389
+ .run(conversationId);
390
+ database
391
+ .prepare("DELETE FROM proposal_locks WHERE conversation_id = ?")
392
+ .run(conversationId);
393
+ database
394
+ .prepare("DELETE FROM staged_records WHERE conversation_id = ?")
395
+ .run(conversationId);
396
+ database
397
+ .prepare("DELETE FROM reanchors WHERE conversation_id = ?")
398
+ .run(conversationId);
399
+ database
400
+ .prepare(`UPDATE outbound_messages SET disposition = 'discarded'
401
+ WHERE conversation_id = ? AND disposition = 'pending'`)
402
+ .run(conversationId);
403
+ }
404
+ function installReplacementFoundation(database, replacement) {
405
+ const retainedReplacement = database
406
+ .prepare(`SELECT 1 AS retained FROM anchors
407
+ WHERE conversation_id = ? AND anchor_hash = ?`)
408
+ .get(replacement.conversationId, replacement.anchorHash);
409
+ if (retainedReplacement !== undefined) {
410
+ throw new StoreSignal("conflict");
411
+ }
412
+ database
413
+ .prepare(`INSERT INTO anchors
414
+ (conversation_id, anchor_hash, canonical_anchor) VALUES (?, ?, ?)`)
415
+ .run(replacement.conversationId, replacement.anchorHash, copyBytes(replacement.canonicalAnchor));
416
+ database
417
+ .prepare(`UPDATE conversation_state
418
+ SET current_anchor_hash = ?, head_record_hash = NULL, head_ordinal = -1
419
+ WHERE conversation_id = ?`)
420
+ .run(replacement.anchorHash, replacement.conversationId);
421
+ database
422
+ .prepare(`DELETE FROM anchors
423
+ WHERE conversation_id = ? AND anchor_hash <> ?`)
424
+ .run(replacement.conversationId, replacement.anchorHash);
425
+ }
426
+ function readConversationPostIntents(database, conversationId) {
427
+ return Object.freeze(database
428
+ .prepare(`SELECT conversation_id, membership_hash, author_agent_id, post_id,
429
+ canonical_intent, completed_record_hash
430
+ FROM post_intents WHERE conversation_id = ?
431
+ ORDER BY author_agent_id, post_id`)
432
+ .all(conversationId)
433
+ .map((row) => {
434
+ const completedRecordHash = readOptionalText(row, "completed_record_hash");
435
+ return Object.freeze({
436
+ conversationId: readText(row, "conversation_id"),
437
+ membershipHash: readText(row, "membership_hash"),
438
+ authorAgentId: readText(row, "author_agent_id"),
439
+ postId: readText(row, "post_id"),
440
+ canonicalIntent: readBytes(row, "canonical_intent"),
441
+ ...(completedRecordHash === undefined ? {} : { completedRecordHash }),
442
+ });
443
+ }));
444
+ }
445
+ function copyFoundation(foundation) {
446
+ return Object.freeze({
447
+ ...foundation,
448
+ canonicalMembership: copyBytes(foundation.canonicalMembership),
449
+ canonicalAnchor: copyBytes(foundation.canonicalAnchor),
450
+ });
451
+ }
452
+ function validateCompletedReanchor(reanchor) {
453
+ validateStagedReanchor(reanchor);
454
+ requireBytes(reanchor.canonicalCompletedReanchor);
455
+ }
456
+ function validateStagedReanchor(reanchor) {
457
+ requireText(reanchor.conversationId);
458
+ requireText(reanchor.anchorHash);
459
+ requireText(reanchor.previousAnchorHash);
460
+ requireText(reanchor.routerInstanceId);
461
+ requireText(reanchor.selectedRecordHash);
462
+ requireBytes(reanchor.canonicalBody);
463
+ }
464
+ function requireSameFoundation(left, right) {
465
+ requireEqual(left.conversationId, right.conversationId);
466
+ requireEqual(left.membershipHash, right.membershipHash);
467
+ requireSameBytes(left.canonicalMembership, right.canonicalMembership);
468
+ requireEqual(left.anchorHash, right.anchorHash);
469
+ requireSameBytes(left.canonicalAnchor, right.canonicalAnchor);
470
+ }
471
+ //# sourceMappingURL=anchors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchors.js","sourceRoot":"","sources":["../../../src/endpoint/store/anchors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** @file Stable internal boundary for SQLite state and closed value checks. */
2
+ /** SQLite ownership, transaction, and lifecycle primitives. */
3
+ export { closeStoreState, type HistorySnapshot, openStoreState, runStoreOperation, type StoreState, transaction, } from "./schema.js";
4
+ /** Closed failures and exact canonical-value helpers. */
5
+ export { copyBytes, EndpointStoreError, type EndpointStoreFailure, mapStoreFailure, mintContinuation, mintDeliveryToken, readBytes, readInteger, readOptionalBytes, readOptionalText, readText, requireBytes, requireEqual, requireSameBytes, requireText, StoreSignal, validateContinuation, } from "./values.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/store/database/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,+DAA+D;AAC/D,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,yDAAyD;AACzD,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** @file Stable internal boundary for SQLite state and closed value checks. */
2
+ /** SQLite ownership, transaction, and lifecycle primitives. */
3
+ export { closeStoreState, openStoreState, runStoreOperation, transaction, } from "./schema.js";
4
+ /** Closed failures and exact canonical-value helpers. */
5
+ export { copyBytes, EndpointStoreError, mapStoreFailure, mintContinuation, mintDeliveryToken, readBytes, readInteger, readOptionalBytes, readOptionalText, readText, requireBytes, requireEqual, requireSameBytes, requireText, StoreSignal, validateContinuation, } from "./values.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/endpoint/store/database/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,+DAA+D;AAC/D,OAAO,EACL,eAAe,EAEf,cAAc,EACd,iBAAiB,EAEjB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,yDAAyD;AACzD,OAAO,EACL,SAAS,EACT,kBAAkB,EAElB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,44 @@
1
+ /** @file SQLite ownership, exact-version preflight, and closed persistence primitives. */
2
+ import { Effect } from "effect";
3
+ import { DatabaseSync } from "node:sqlite";
4
+ import type { CertifiedRecord } from "../types.js";
5
+ import { type EndpointStoreError } from "./values.js";
6
+ /** One process-local frozen management read. */
7
+ export interface HistorySnapshot {
8
+ readonly records: readonly CertifiedRecord[];
9
+ readonly offset: number;
10
+ }
11
+ /** Exclusive SQLite state retained for one Effect scope. */
12
+ export interface StoreState {
13
+ readonly database: DatabaseSync;
14
+ readonly snapshots: Map<string, HistorySnapshot>;
15
+ closed: boolean;
16
+ }
17
+ /**
18
+ * Acquires and exclusively locks one exact-version endpoint database.
19
+ * @param stateDirectory Exclusive persistent state directory.
20
+ * @returns Acquired database state after integrity and compatibility checks.
21
+ */
22
+ export declare const openStoreState: (stateDirectory: string) => Effect.Effect<StoreState, EndpointStoreError>;
23
+ /**
24
+ * Closes exactly the SQLite and volatile snapshot state in this scope.
25
+ * @param state Acquired database and process-local snapshots.
26
+ * @returns An infallible finalizer effect.
27
+ */
28
+ export declare const closeStoreState: (state: StoreState) => Effect.Effect<void>;
29
+ /**
30
+ * Converts a synchronous store operation into the closed Effect channel.
31
+ * @param state Acquired database and process-local snapshots.
32
+ * @param operation Synchronous operation inside the ownership boundary.
33
+ * @returns The operation in the closed store error channel.
34
+ */
35
+ export declare function runStoreOperation<Value>(state: StoreState, operation: () => Value): Effect.Effect<Value, EndpointStoreError>;
36
+ /**
37
+ * Runs one non-yielding SQLite transaction and preserves its first failure.
38
+ * @param database Exclusively owned endpoint database.
39
+ * @param operation Non-yielding transition to commit atomically.
40
+ * @param mode SQLite write-lock mode.
41
+ * @returns The committed transition result.
42
+ */
43
+ export declare function transaction<Value>(database: DatabaseSync, operation: () => Value, mode?: "IMMEDIATE" | "EXCLUSIVE"): Value;
44
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/store/database/schema.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,aAAa,CAAC;AAErB,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,OAAO,CAAC;CACjB;AAOD;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBACT,MAAM,KACrB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAI3C,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAalE,CAAC;AAEL;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,KAAK,GACrB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAU1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAC/B,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,KAAK,EACtB,IAAI,GAAE,WAAW,GAAG,WAAyB,GAC5C,KAAK,CAeP"}