@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
@@ -1,38 +0,0 @@
1
- import { Effect, Scope } from "effect";
2
- import { acquireHarnessMcpHttpServer } from "./harness-mcp-server.js";
3
- import { type ServiceRpcError } from "./service.js";
4
- import type { ServiceConfigError } from "./config.js";
5
- interface MoltzapdOptions {
6
- readonly profileName: string;
7
- readonly port: number;
8
- }
9
- type MoltzapdServer = Effect.Effect.Success<ReturnType<typeof acquireHarnessMcpHttpServer>>;
10
- /**
11
- * Owns one registered agent's service, channel core, network connection, and
12
- * guarded loopback MCP listener for the lifetime of the caller's scope.
13
- *
14
- * ```mermaid
15
- * sequenceDiagram
16
- * participant process as moltzapd
17
- * participant service as MoltZapService
18
- * participant core as MoltZapChannelCore
19
- * participant mcp as MCP listener
20
- *
21
- * process->>service: make(profileName)
22
- * process->>core: construct(service)
23
- * process->>core: install raw turn publisher
24
- * process->>mcp: listen(port)
25
- * process->>core: connect()
26
- * Note over core,mcp: Scope release closes MCP before disconnecting the core
27
- * ```
28
- *
29
- * The caller resolves the profile and port policy. This composition does not
30
- * start the Unix-socket server and does not expose its service or core.
31
- *
32
- * @param options Existing profile name and caller-resolved listener port.
33
- * @returns The scoped loopback HTTP listener.
34
- * @internal
35
- */
36
- export declare const acquireMoltzapd: (options: MoltzapdOptions) => Effect.Effect<MoltzapdServer, Error | ServiceConfigError | ServiceRpcError, Scope.Scope>;
37
- export {};
38
- //# sourceMappingURL=moltzapd.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"moltzapd.d.ts","sourceRoot":"","sources":["../src/moltzapd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA2B,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAMtE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,UAAU,eAAe;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAQD,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CACzC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAC/C,CAAC;AAqCF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,eAAe,YACjB,eAAe,KACvB,MAAM,CAAC,MAAM,CACd,cAAc,EACd,KAAK,GAAG,kBAAkB,GAAG,eAAe,EAC5C,KAAK,CAAC,KAAK,CA8BgC,CAAC"}
package/dist/moltzapd.js DELETED
@@ -1,78 +0,0 @@
1
- import { Effect, ExecutionStrategy, Exit, Scope } from "effect";
2
- import packageJson from "../package.json" with { type: "json" };
3
- import { MoltZapChannelCore } from "./channel-core.js";
4
- import { acquireHarnessMcpHttpServer } from "./harness-mcp-server.js";
5
- import { makeHarnessMcpHttpHandlers } from "./harness-mcp-wire.js";
6
- import { MoltZapService } from "./service.js";
7
- const MCP_IMPLEMENTATION = {
8
- name: "moltzapd",
9
- version: packageJson.version,
10
- };
11
- const makeStatusHandler = (service, core) => () => Effect.succeed({
12
- ...(service.ownAgentId === undefined
13
- ? {}
14
- : { agentId: service.ownAgentId }),
15
- connected: core.isConnected(),
16
- conversations: service.getConversations().length,
17
- });
18
- const acquireCore = (service) =>
19
- // eslint-disable-next-line agent-code-guard/acquire-release-requires-scope -- the process scope owns the sole core and its network connection
20
- Effect.acquireRelease(Effect.sync(() => new MoltZapChannelCore({ service })), (core) => core.disconnect());
21
- const installTurnPublisher = (core, publish) => {
22
- core.onRawInbound((messages) => Effect.sync(() => {
23
- const first = messages[0];
24
- if (first === undefined) {
25
- return;
26
- }
27
- publish({ messages: [first, ...messages.slice(1)] });
28
- }));
29
- };
30
- /**
31
- * Owns one registered agent's service, channel core, network connection, and
32
- * guarded loopback MCP listener for the lifetime of the caller's scope.
33
- *
34
- * ```mermaid
35
- * sequenceDiagram
36
- * participant process as moltzapd
37
- * participant service as MoltZapService
38
- * participant core as MoltZapChannelCore
39
- * participant mcp as MCP listener
40
- *
41
- * process->>service: make(profileName)
42
- * process->>core: construct(service)
43
- * process->>core: install raw turn publisher
44
- * process->>mcp: listen(port)
45
- * process->>core: connect()
46
- * Note over core,mcp: Scope release closes MCP before disconnecting the core
47
- * ```
48
- *
49
- * The caller resolves the profile and port policy. This composition does not
50
- * start the Unix-socket server and does not expose its service or core.
51
- *
52
- * @param options Existing profile name and caller-resolved listener port.
53
- * @returns The scoped loopback HTTP listener.
54
- * @internal
55
- */
56
- export const acquireMoltzapd = (options) => Effect.gen(function* () {
57
- const parentScope = yield* Effect.scope;
58
- const daemonScope = yield* Scope.fork(parentScope, ExecutionStrategy.sequential);
59
- const acquire = Effect.gen(function* () {
60
- const service = yield* MoltZapService.make(options.profileName);
61
- const core = yield* acquireCore(service);
62
- const handlers = makeHarnessMcpHttpHandlers({
63
- implementation: MCP_IMPLEMENTATION,
64
- reply: core.sendReply.bind(core),
65
- status: makeStatusHandler(service, core),
66
- });
67
- installTurnPublisher(core, handlers.active.publish);
68
- const server = yield* acquireHarnessMcpHttpServer({
69
- port: options.port,
70
- registrationHandler: handlers.registration,
71
- harnessHandler: handlers.active,
72
- });
73
- yield* core.connect();
74
- return server;
75
- }).pipe(Scope.extend(daemonScope));
76
- return yield* acquire.pipe(Effect.onExit((exit) => Exit.isSuccess(exit) ? Effect.void : Scope.close(daemonScope, exit)));
77
- }).pipe(Effect.withSpan("acquireMoltzapd"));
78
- //# sourceMappingURL=moltzapd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"moltzapd.js","sourceRoot":"","sources":["../src/moltzapd.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Type canaries for the public notification subscription signatures.
3
- *
4
- * Runtime behavior is covered by `filter-equivalence.test.ts` and
5
- * `snapshot-semantics.test.ts`; this file pins payload narrowing, error
6
- * channels, and the absence of leaked Effect requirements.
7
- */
8
- import { type Effect, Stream } from "effect";
9
- import type { NotConnectedError, NotificationDelivery, NotificationParamsOf, NotificationSubscriberRegistry } from "@moltzap/protocol/rpc";
10
- import type { AnyNotificationDefinition } from "@moltzap/protocol/socket/catalog";
11
- import { messageReceivedNotificationDefinition } from "@moltzap/protocol/message";
12
- import { subscribe, type subscribeAll } from "../stream.js";
13
- type Equal<Left, Right> = [Left, Right] extends [Right, Left] ? true : false;
14
- type Expect<Value extends true> = Value;
15
- type ReceivedParams = NotificationParamsOf<typeof messageReceivedNotificationDefinition>;
16
- type GroupReceived = ReceivedParams & {
17
- readonly message: {
18
- readonly conversationId: string;
19
- };
20
- };
21
- type GroupPredicate = (params: ReceivedParams) => params is GroupReceived;
22
- /**
23
- * Exercise the type-guard overload with concrete protocol types.
24
- * @param registry Notification registry supplied by a connected client.
25
- * @param isGroup Predicate that narrows received messages to group deliveries.
26
- * @returns A stream narrowed to group message deliveries.
27
- */
28
- export declare function subscribeNarrowedCanary(registry: NotificationSubscriberRegistry<NotConnectedError, AnyNotificationDefinition>, isGroup: GroupPredicate): Stream.Stream<GroupReceived, NotConnectedError, never>;
29
- type NarrowedStream = ReturnType<typeof subscribeNarrowedCanary>;
30
- /**
31
- * Exercise Stream consumption against the real subscription return type.
32
- * @param stream Subscription stream to consume.
33
- * @param handler Handler for each decoded notification.
34
- * @returns The Effect produced by consuming the stream.
35
- */
36
- export declare function runSubscriptionCanary(stream: ReturnType<typeof subscribe<AnyNotificationDefinition>>, handler: (notification: NotificationParamsOf<AnyNotificationDefinition>) => Effect.Effect<void>): Effect.Effect<void, NotConnectedError, never>;
37
- type SubscribeStreamShape = Expect<Equal<ReturnType<typeof subscribe<AnyNotificationDefinition>>, Stream.Stream<NotificationParamsOf<AnyNotificationDefinition>, NotConnectedError>>>;
38
- type NarrowedOverloadResolves = Expect<Equal<NarrowedStream, Stream.Stream<GroupReceived, NotConnectedError>>>;
39
- type NarrowedElementIsExact = Expect<Equal<Stream.Stream.Success<NarrowedStream>, GroupReceived>>;
40
- type SubscribeAllStreamShape = Expect<Equal<ReturnType<typeof subscribeAll>, Stream.Stream<NotificationDelivery<AnyNotificationDefinition>, NotConnectedError>>>;
41
- type RunForEachHasNoLeakedRequirements = Expect<Equal<Effect.Effect.Context<ReturnType<typeof runSubscriptionCanary>>, never>>;
42
- type TypedErrorChannelIsExact = Expect<Equal<Stream.Stream.Error<ReturnType<typeof subscribe<AnyNotificationDefinition>>>, NotConnectedError>>;
43
- /** Compile-time assertions for notification subscription contracts. */
44
- export type NotificationSubscriptionCanaries = [
45
- SubscribeStreamShape,
46
- NarrowedOverloadResolves,
47
- NarrowedElementIsExact,
48
- SubscribeAllStreamShape,
49
- RunForEachHasNoLeakedRequirements,
50
- TypedErrorChannelIsExact
51
- ];
52
- export {};
53
- //# sourceMappingURL=subscribe-signatures.types-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe-signatures.types-check.d.ts","sourceRoot":"","sources":["../../../src/notification/__tests__/subscribe-signatures.types-check.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Type canaries for the public notification subscription signatures.
3
- *
4
- * Runtime behavior is covered by `filter-equivalence.test.ts` and
5
- * `snapshot-semantics.test.ts`; this file pins payload narrowing, error
6
- * channels, and the absence of leaked Effect requirements.
7
- */
8
- import { Stream } from "effect";
9
- import { messageReceivedNotificationDefinition } from "@moltzap/protocol/message";
10
- import { subscribe } from "../stream.js";
11
- /**
12
- * Exercise the type-guard overload with concrete protocol types.
13
- * @param registry Notification registry supplied by a connected client.
14
- * @param isGroup Predicate that narrows received messages to group deliveries.
15
- * @returns A stream narrowed to group message deliveries.
16
- */
17
- export function subscribeNarrowedCanary(registry, isGroup) {
18
- return subscribe(registry, messageReceivedNotificationDefinition, isGroup);
19
- }
20
- /**
21
- * Exercise Stream consumption against the real subscription return type.
22
- * @param stream Subscription stream to consume.
23
- * @param handler Handler for each decoded notification.
24
- * @returns The Effect produced by consuming the stream.
25
- */
26
- export function runSubscriptionCanary(stream, handler) {
27
- return Stream.runForEach(stream, handler);
28
- }
29
- //# sourceMappingURL=subscribe-signatures.types-check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe-signatures.types-check.js","sourceRoot":"","sources":["../../../src/notification/__tests__/subscribe-signatures.types-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAe,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQ7C,OAAO,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AAa5D;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAGC,EACD,OAAuB;IAEvB,OAAO,SAAS,CAAC,QAAQ,EAAE,qCAAqC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+D,EAC/D,OAEwB;IAExB,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,41 +0,0 @@
1
- declare const NotificationTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
- readonly _tag: "NotificationTimeoutError";
3
- } & Readonly<A>;
4
- /** Reports notification timeout failures. */
5
- export declare class NotificationTimeoutError extends NotificationTimeoutError_base<{
6
- readonly definition: string;
7
- readonly durationMs: number;
8
- }> {
9
- }
10
- /**
11
- * Why a notification Stream terminated without a `NotificationTimeoutError`:
12
- *
13
- * - `"client-closed"` — `MoltZapWsClient.close()` tore the transport down
14
- * (the registry's `closeAll` fired each subscription's `onClose`).
15
- * - `"stream-completed"` — the Stream source completed normally with no
16
- * further frames pending (graceful end-of-stream, not an error condition).
17
- * - `"transport-disconnected"` — the transport dropped. The current
18
- * subscription is terminal even if its owner later starts a new connection.
19
- */
20
- export type StreamCloseReason = "client-closed" | "stream-completed" | "transport-disconnected";
21
- declare const StreamClosedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
22
- readonly _tag: "StreamClosedError";
23
- } & Readonly<A>;
24
- /** Reports stream closed failures. */
25
- export declare class StreamClosedError extends StreamClosedError_base<{
26
- readonly definition: string;
27
- readonly reason: StreamCloseReason;
28
- }> {
29
- }
30
- /**
31
- * Union of all notification consumer error tags. Catch sites use
32
- * `Effect.catchTags({ NotificationTimeoutError: ..., StreamClosedError: ... })`
33
- * for exhaustive handling, or accept this union in their typed error channel.
34
- *
35
- * NOT a class — Effect's `Data.TaggedError` classes do not inherit from
36
- * a shared `Data.TaggedError` base in a way that preserves `_tag`
37
- * discrimination. The union is the canonical shape.
38
- */
39
- export type NotificationConsumerError = NotificationTimeoutError | StreamClosedError;
40
- export {};
41
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/notification/errors.ts"],"names":[],"mappings":";;;AAkBA,6CAA6C;AAC7C,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,kBAAkB,GAClB,wBAAwB,CAAC;;;;AAE7B,sCAAsC;AACtC,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC,CAAC;CAAG;AAEL;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GACjC,wBAAwB,GACxB,iBAAiB,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Tagged errors for the notification consumption surface.
3
- *
4
- * `Data.TaggedError` classes do NOT compose via class inheritance —
5
- * extending one tagged class from another produces broken `_tag`
6
- * discrimination at runtime. The shared abstraction is therefore a TYPE
7
- * UNION (`NotificationConsumerError`) not a base class. Catch sites that
8
- * want to handle "any notification consumer error" pattern-match on the
9
- * union.
10
- *
11
- * `NotificationTimeoutError` carries the timeout duration so callers can
12
- * log + retry with sane backoff. `StreamClosedError` fires when the
13
- * consumer's Stream completes empty (e.g. The client transitioned to
14
- * terminal closed state before a notification arrived); its `reason`
15
- * discriminant names WHICH close-state ended the Stream.
16
- */
17
- import { Data } from "effect";
18
- /** Reports notification timeout failures. */
19
- export class NotificationTimeoutError extends Data.TaggedError("NotificationTimeoutError") {
20
- }
21
- /** Reports stream closed failures. */
22
- export class StreamClosedError extends Data.TaggedError("StreamClosedError") {
23
- }
24
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/notification/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,6CAA6C;AAC7C,MAAM,OAAO,wBAAyB,SAAQ,IAAI,CAAC,WAAW,CAC5D,0BAA0B,CAI1B;CAAG;AAiBL,sCAAsC;AACtC,MAAM,OAAO,iBAAkB,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAGzE;CAAG"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @file Notification consumer helpers for `@moltzap/client/notification`.
3
- */
4
- /** Re-exports the public API from `./errors.js`. */
5
- export { NotificationTimeoutError, StreamClosedError as NotificationStreamClosedError, type StreamCloseReason, type NotificationConsumerError, } from "./errors.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notification/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oDAAoD;AACpD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,IAAI,6BAA6B,EAClD,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @file Notification consumer helpers for `@moltzap/client/notification`.
3
- */
4
- /** Re-exports the public API from `./errors.js`. */
5
- export { NotificationTimeoutError, StreamClosedError as NotificationStreamClosedError, } from "./errors.js";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notification/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oDAAoD;AACpD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,IAAI,6BAA6B,GAGnD,MAAM,aAAa,CAAC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Stream-returning constructors for `MoltZapAgentClient.subscribe` and
3
- * `MoltZapAgentClient.subscribeAll`.
4
- *
5
- * `Stream.async` cancellation drives the registry-stored `unregister`
6
- * finalizer. The registry's `dispatch` snapshots `subsRef` at iteration
7
- * start, so the snapshot semantic holds by Ref atomicity without a
8
- * per-sub cancelled-flag check.
9
- *
10
- * Stream construction uses `Stream.async&lt;NotificationParamsOf&lt;D>,
11
- * NotConnectedError>` with the registry storing typed callback references — NOT
12
- * `Queue` of `Take` items combined with `Stream.fromQueue`/`Stream.flattenTake`,
13
- * which is racy under `Queue.offer(Take.fail); Queue.shutdown` and does not
14
- * reliably propagate the typed failure to the consumer.
15
- *
16
- * Stream lifecycle:
17
- * 1. `subscribe(def)` returns a Stream value. Pure; no I/O, no scope.
18
- * 2. Materialization opens the `Stream.async` source: `registry.register`
19
- * runs synchronously, callbacks are installed; consumer pulls suspend
20
- * until `emit.single` fires from dispatch.
21
- * 3. Pre-`connect()` consumer pulls suspend inside `Stream.async`'s
22
- * internal queue. No `NotConnectedError` until terminal close.
23
- * 4. A disconnect leaves registry callbacks intact; `subsRef` survives
24
- * until the caller explicitly connects again. **Disconnected-window
25
- * frame loss:** any server-originated notification frame that the
26
- * transport drops while disconnected (between the socket dying and
27
- * the next `hello` completing) is NOT replayed — the Stream API
28
- * has no buffering or gap-fill across the disconnected window, so such
29
- * frames are silently lost to the consumer. Subscriptions resume
30
- * receiving frames after the next explicit connect; there is no error or
31
- * sentinel marking the gap.
32
- * 5. `MoltZapAgentClient.close` invokes `SubscriberRegistry.closeAll`, which
33
- * calls each live `sub.onClose(new NotConnectedError(...))`. Each
34
- * `Stream.async`-backed consumer fails with `NotConnectedError`
35
- * via `emit.fail` deterministically (no Queue/shutdown race).
36
- */
37
- import type { Stream } from "effect";
38
- import { type NotConnectedError, type NotificationDelivery, type NotificationSubscriberRegistry, type NotificationParamsOf } from "@moltzap/protocol/rpc";
39
- import type { AnyNotificationDefinition } from "@moltzap/protocol/socket/catalog";
40
- type ClientNotificationDelivery = NotificationDelivery<AnyNotificationDefinition>;
41
- /**
42
- * Typed-payload subscribe. Returns a Stream of `NotificationParamsOf&lt;D>`
43
- * whose error channel is `NotConnectedError` and whose requirement set is
44
- * `never` (the registry handle is bound at materialization time inside
45
- * `Stream.async`'s register callback, so neither Scope nor any other
46
- * requirement leaks to the consumer).
47
- *
48
- * `refinement` is a typed predicate over the definition's params. When the
49
- * type-guard overload form is used, the Stream's payload narrows to `R`.
50
- * @param registry Value supplied to the operation.
51
- * @param definition Protocol definition to process.
52
- * @param refinement Value supplied to the operation.
53
- * @returns The subscribe result.
54
- */
55
- export declare function subscribe<D extends AnyNotificationDefinition, R extends NotificationParamsOf<D>>(registry: NotificationSubscriberRegistry<NotConnectedError, AnyNotificationDefinition>, definition: D, refinement: (params: NotificationParamsOf<D>) => params is R): Stream.Stream<R, NotConnectedError>;
56
- export declare function subscribe<D extends AnyNotificationDefinition>(registry: NotificationSubscriberRegistry<NotConnectedError, AnyNotificationDefinition>, definition: D, refinement?: (params: NotificationParamsOf<D>) => boolean): Stream.Stream<NotificationParamsOf<D>, NotConnectedError>;
57
- /**
58
- * Broad-union escape hatch. The only intended in-tree consumer is
59
- * `MoltZapService.connect`, which uses this to fan every inbound
60
- * notification through `MoltZapService.handleNotification`. Payload
61
- * narrowing is intentionally lost; callers wanting typed payloads use
62
- * `subscribe(def, refinement?)`.
63
- *
64
- * The registry has no "match all" subscription shape (`subscribe&lt;D>` is
65
- * per-definition). `subscribeAll` instead registers via
66
- * `SubscriberRegistry.registerAll`, whose callbacks the dispatcher hits
67
- * for every inbound frame regardless of definition. Same lifecycle as
68
- * `register(def, …)`, no definition match.
69
- * @param registry Value supplied to the operation.
70
- * @param refinement Value supplied to the operation.
71
- * @returns The subscribe all result.
72
- */
73
- export declare function subscribeAll(registry: NotificationSubscriberRegistry<NotConnectedError, AnyNotificationDefinition>, refinement?: (definition: AnyNotificationDefinition, params: NotificationParamsOf<AnyNotificationDefinition>) => boolean): Stream.Stream<ClientNotificationDelivery, NotConnectedError>;
74
- export {};
75
- //# sourceMappingURL=stream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/notification/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAGzB,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,KAAK,0BAA0B,GAC7B,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,yBAAyB,EACnC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAEjC,QAAQ,EAAE,8BAA8B,CACtC,iBAAiB,EACjB,yBAAyB,CAC1B,EACD,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,GAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACvC,wBAAgB,SAAS,CAAC,CAAC,SAAS,yBAAyB,EAC3D,QAAQ,EAAE,8BAA8B,CACtC,iBAAiB,EACjB,yBAAyB,CAC1B,EACD,UAAU,EAAE,CAAC,EACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,GACxD,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAe7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,8BAA8B,CACtC,iBAAiB,EACjB,yBAAyB,CAC1B,EACD,UAAU,CAAC,EAAE,CACX,UAAU,EAAE,yBAAyB,EACrC,MAAM,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,KACpD,OAAO,GACX,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAO9D"}
@@ -1,30 +0,0 @@
1
- import { notificationSubscribe, notificationSubscribeAll, } from "@moltzap/protocol/rpc";
2
- export function subscribe(registry, definition, refinement) {
3
- if (refinement === undefined) {
4
- return notificationSubscribe(registry, definition);
5
- }
6
- return notificationSubscribe(registry, definition, refinement);
7
- }
8
- /**
9
- * Broad-union escape hatch. The only intended in-tree consumer is
10
- * `MoltZapService.connect`, which uses this to fan every inbound
11
- * notification through `MoltZapService.handleNotification`. Payload
12
- * narrowing is intentionally lost; callers wanting typed payloads use
13
- * `subscribe(def, refinement?)`.
14
- *
15
- * The registry has no "match all" subscription shape (`subscribe&lt;D>` is
16
- * per-definition). `subscribeAll` instead registers via
17
- * `SubscriberRegistry.registerAll`, whose callbacks the dispatcher hits
18
- * for every inbound frame regardless of definition. Same lifecycle as
19
- * `register(def, …)`, no definition match.
20
- * @param registry Value supplied to the operation.
21
- * @param refinement Value supplied to the operation.
22
- * @returns The subscribe all result.
23
- */
24
- export function subscribeAll(registry, refinement) {
25
- if (refinement === undefined) {
26
- return notificationSubscribeAll(registry);
27
- }
28
- return notificationSubscribeAll(registry, (delivery) => refinement(delivery.definition, delivery.params));
29
- }
30
- //# sourceMappingURL=stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/notification/stream.ts"],"names":[],"mappings":"AAqCA,OAAO,EAGL,qBAAqB,EACrB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAuC/B,MAAM,UAAU,SAAS,CACvB,QAGC,EACD,UAAa,EACb,UAAyD;IAEzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAC1B,QAGC,EACD,UAGY;IAEZ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,wBAAwB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrD,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CACjD,CAAC;AACJ,CAAC"}
@@ -1,52 +0,0 @@
1
- /** @file Provides a generic drainer for cursor-paginated list RPCs. */
2
- import type { ClientDefinitionPayload, ClientDefinitionSuccess, ClientRpcDefinition } from "@moltzap/protocol/socket";
3
- import { Effect } from "effect";
4
- declare const NonAdvancingCursorError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
5
- readonly _tag: "NonAdvancingCursorError";
6
- } & Readonly<A>;
7
- /**
8
- * A server that returns a non-advancing `nextCursor` (one already seen)
9
- * would loop the drain forever; fail typed so the caller's `catchAll`
10
- * can degrade gracefully instead of hanging. This is a cycle guard, NOT
11
- * a page cap — a well-behaved server never trips it.
12
- */
13
- export declare class NonAdvancingCursorError extends NonAdvancingCursorError_base<{
14
- readonly method: string;
15
- }> {
16
- get message(): string;
17
- }
18
- /**
19
- * The `sendRpc` shape every drain consumer provides: send one list-RPC
20
- * page, decoding its typed result. Parameterized over the sender's error
21
- * channel `E` so the helper stays decoupled from any one client's error
22
- * union.
23
- */
24
- type ClientDescriptor = ClientRpcDefinition & {
25
- readonly name: string;
26
- };
27
- /** Represents send rpc fn values. */
28
- export type SendRpcFn<E, Definition extends ClientDescriptor> = (definition: Definition, params: ClientDefinitionPayload<Definition>) => Effect.Effect<ClientDefinitionSuccess<Definition>, E>;
29
- /** Configures drain paginated list. */
30
- export interface DrainPaginatedListOptions<E, D extends ClientDescriptor, Row, Cursor extends string> {
31
- readonly sendRpc: SendRpcFn<E, D>;
32
- readonly definition: D;
33
- readonly paramsForCursor: (cursor?: Cursor) => ClientDefinitionPayload<D>;
34
- readonly rowsForPage: (page: ClientDefinitionSuccess<D>) => readonly Row[];
35
- readonly nextCursorForPage: (page: ClientDefinitionSuccess<D>) => Cursor | undefined;
36
- }
37
- /**
38
- * Drain every page of a cursor-paginated list RPC, echoing the opaque
39
- * `nextCursor` back as the next page's `cursor`. Fails with
40
- * {@link NonAdvancingCursorError} if the server returns a cursor it already
41
- * emitted (cycle guard).
42
- * @param root0 Value supplied to the operation.
43
- * @param root0.sendRpc Value supplied to the operation.
44
- * @param root0.definition Value supplied to the operation.
45
- * @param root0.paramsForCursor Value supplied to the operation.
46
- * @param root0.rowsForPage Value supplied to the operation.
47
- * @param root0.nextCursorForPage Value supplied to the operation.
48
- * @returns The drain paginated list result.
49
- */
50
- export declare function drainPaginatedList<E, D extends ClientDescriptor, Row, Cursor extends string>({ sendRpc, definition, paramsForCursor, rowsForPage, nextCursorForPage, }: DrainPaginatedListOptions<E, D, Row, Cursor>): Effect.Effect<readonly Row[], E | NonAdvancingCursorError>;
51
- export {};
52
- //# sourceMappingURL=pagination.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAEtC;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;GAKG;AACH,KAAK,gBAAgB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,qCAAqC;AACrC,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,UAAU,SAAS,gBAAgB,IAAI,CAC9D,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC,KACxC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAE3D,uCAAuC;AACvC,MAAM,WAAW,yBAAyB,CACxC,CAAC,EACD,CAAC,SAAS,gBAAgB,EAC1B,GAAG,EACH,MAAM,SAAS,MAAM;IAErB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,CAAC;IAC3E,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAC7B,MAAM,GAAG,SAAS,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EACD,CAAC,SAAS,gBAAgB,EAC1B,GAAG,EACH,MAAM,SAAS,MAAM,EACrB,EACA,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAC7D,SAAS,GAAG,EAAE,EACd,CAAC,GAAG,uBAAuB,CAC5B,CAwBA"}
@@ -1,51 +0,0 @@
1
- import { Data, Effect } from "effect";
2
- /**
3
- * A server that returns a non-advancing `nextCursor` (one already seen)
4
- * would loop the drain forever; fail typed so the caller's `catchAll`
5
- * can degrade gracefully instead of hanging. This is a cycle guard, NOT
6
- * a page cap — a well-behaved server never trips it.
7
- */
8
- export class NonAdvancingCursorError extends Data.TaggedError("NonAdvancingCursorError") {
9
- get message() {
10
- return `Pagination cursor for ${this.method} did not advance — refusing to loop`;
11
- }
12
- }
13
- /**
14
- * Drain every page of a cursor-paginated list RPC, echoing the opaque
15
- * `nextCursor` back as the next page's `cursor`. Fails with
16
- * {@link NonAdvancingCursorError} if the server returns a cursor it already
17
- * emitted (cycle guard).
18
- * @param root0 Value supplied to the operation.
19
- * @param root0.sendRpc Value supplied to the operation.
20
- * @param root0.definition Value supplied to the operation.
21
- * @param root0.paramsForCursor Value supplied to the operation.
22
- * @param root0.rowsForPage Value supplied to the operation.
23
- * @param root0.nextCursorForPage Value supplied to the operation.
24
- * @returns The drain paginated list result.
25
- */
26
- export function drainPaginatedList({ sendRpc, definition, paramsForCursor, rowsForPage, nextCursorForPage, }) {
27
- return Effect.gen(function* () {
28
- const acc = [];
29
- // Cycle guard, not a page cap: a repeated cursor means the server is
30
- // not advancing, so fail typed rather than loop forever.
31
- const seenCursors = new Set();
32
- let cursor;
33
- let more = true;
34
- while (more) {
35
- const params = paramsForCursor(cursor);
36
- const page = yield* sendRpc(definition, params);
37
- acc.push(...rowsForPage(page));
38
- const nextCursor = nextCursorForPage(page);
39
- if (nextCursor !== undefined && seenCursors.has(nextCursor)) {
40
- return yield* new NonAdvancingCursorError({ method: definition.name });
41
- }
42
- if (nextCursor !== undefined) {
43
- seenCursors.add(nextCursor);
44
- }
45
- cursor = nextCursor;
46
- more = nextCursor !== undefined;
47
- }
48
- return acc;
49
- }).pipe(Effect.withSpan("drainPaginatedList"));
50
- }
51
- //# sourceMappingURL=pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC3D,yBAAyB,CAGzB;IACA,IAAa,OAAO;QAClB,OAAO,yBAAyB,IAAI,CAAC,MAAM,qCAAqC,CAAC;IACnF,CAAC;CACF;AAgCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAKhC,EACA,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,GAC4B;IAI7C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,GAAG,GAAU,EAAE,CAAC;QACtB,qEAAqE;QACrE,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC,CAAC,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;YACpB,IAAI,GAAG,UAAU,KAAK,SAAS,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACjD,CAAC"}