@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,338 @@
1
+ /** @file Public runtime capability for one configured MoltZap endpoint. */
2
+ import { type Effect, Schema, type Stream } from "effect";
3
+ /** An explicit direct destination using one canonical Registry name. */
4
+ export declare const AgentAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
5
+ /** A validated direct destination. */
6
+ export type AgentAddress = typeof AgentAddress.Type;
7
+ /** A complete fixed-member group address in unsigned ASCII name order. */
8
+ export declare const GroupAddress: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
9
+ /** A validated canonical complete group destination. */
10
+ export type GroupAddress = typeof GroupAddress.Type;
11
+ /** Either accepted destination input, including noncanonical group order. */
12
+ export declare const MessageAddressInput: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
13
+ /** A validated explicit destination input. */
14
+ export type MessageAddressInput = typeof MessageAddressInput.Type;
15
+ /** Opaque identity minted for one addressed-send invocation. */
16
+ export declare const PostId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
17
+ /** A validated author-scoped post identity. */
18
+ export type PostId = typeof PostId.Type;
19
+ /** A value accepted by the closed semantic content boundary. */
20
+ export type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
21
+ readonly [key: string]: JsonValue;
22
+ };
23
+ /** Runtime validation for the closed recursive JSON value. */
24
+ export declare const JsonValue: Schema.Schema<JsonValue>;
25
+ /** One exact semantic part of a message. */
26
+ export declare const ContentPart: Schema.Union<[Schema.Struct<{
27
+ type: Schema.Literal<["text"]>;
28
+ text: Schema.filter<typeof Schema.String>;
29
+ }>, Schema.Struct<{
30
+ type: Schema.Literal<["data"]>;
31
+ value: Schema.Schema<JsonValue, JsonValue, never>;
32
+ }>]>;
33
+ /** A validated semantic message part. */
34
+ export type ContentPart = typeof ContentPart.Type;
35
+ /** Nonempty semantic content whose canonical JSON is at most 32,768 bytes. */
36
+ export declare const Content: Schema.refine<readonly [{
37
+ readonly type: "text";
38
+ readonly text: string;
39
+ } | {
40
+ readonly type: "data";
41
+ readonly value: JsonValue;
42
+ }, ...({
43
+ readonly type: "text";
44
+ readonly text: string;
45
+ } | {
46
+ readonly type: "data";
47
+ readonly value: JsonValue;
48
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
49
+ type: Schema.Literal<["text"]>;
50
+ text: Schema.filter<typeof Schema.String>;
51
+ }>, Schema.Struct<{
52
+ type: Schema.Literal<["data"]>;
53
+ value: Schema.Schema<JsonValue, JsonValue, never>;
54
+ }>]>>>;
55
+ /** Validated nonempty semantic content. */
56
+ export type Content = typeof Content.Type;
57
+ /** Complete semantic input for one addressed send. */
58
+ export declare const SendInput: Schema.Struct<{
59
+ to: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
60
+ content: Schema.refine<readonly [{
61
+ readonly type: "text";
62
+ readonly text: string;
63
+ } | {
64
+ readonly type: "data";
65
+ readonly value: JsonValue;
66
+ }, ...({
67
+ readonly type: "text";
68
+ readonly text: string;
69
+ } | {
70
+ readonly type: "data";
71
+ readonly value: JsonValue;
72
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
73
+ type: Schema.Literal<["text"]>;
74
+ text: Schema.filter<typeof Schema.String>;
75
+ }>, Schema.Struct<{
76
+ type: Schema.Literal<["data"]>;
77
+ value: Schema.Schema<JsonValue, JsonValue, never>;
78
+ }>]>>>;
79
+ }>;
80
+ /** Validated semantic input for one addressed send. */
81
+ export type SendInput = typeof SendInput.Type;
82
+ declare const directMessage: Schema.filter<Schema.Struct<{
83
+ kind: Schema.Literal<["direct"]>;
84
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
85
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
86
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
87
+ content: Schema.refine<readonly [{
88
+ readonly type: "text";
89
+ readonly text: string;
90
+ } | {
91
+ readonly type: "data";
92
+ readonly value: JsonValue;
93
+ }, ...({
94
+ readonly type: "text";
95
+ readonly text: string;
96
+ } | {
97
+ readonly type: "data";
98
+ readonly value: JsonValue;
99
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
100
+ type: Schema.Literal<["text"]>;
101
+ text: Schema.filter<typeof Schema.String>;
102
+ }>, Schema.Struct<{
103
+ type: Schema.Literal<["data"]>;
104
+ value: Schema.Schema<JsonValue, JsonValue, never>;
105
+ }>]>>>;
106
+ }>>;
107
+ declare const groupMessage: Schema.filter<Schema.Struct<{
108
+ kind: Schema.Literal<["group"]>;
109
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
110
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
111
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
112
+ members: Schema.filter<Schema.TupleType<readonly [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">], [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">]>>;
113
+ content: Schema.refine<readonly [{
114
+ readonly type: "text";
115
+ readonly text: string;
116
+ } | {
117
+ readonly type: "data";
118
+ readonly value: JsonValue;
119
+ }, ...({
120
+ readonly type: "text";
121
+ readonly text: string;
122
+ } | {
123
+ readonly type: "data";
124
+ readonly value: JsonValue;
125
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
126
+ type: Schema.Literal<["text"]>;
127
+ text: Schema.filter<typeof Schema.String>;
128
+ }>, Schema.Struct<{
129
+ type: Schema.Literal<["data"]>;
130
+ value: Schema.Schema<JsonValue, JsonValue, never>;
131
+ }>]>>>;
132
+ }>>;
133
+ /** One certified remote-authored direct message. */
134
+ export type DirectMessage = typeof directMessage.Type;
135
+ /** One certified remote-authored fixed-group message. */
136
+ export type GroupMessage = typeof groupMessage.Type;
137
+ /** Exact discriminated inbound message projection. */
138
+ export declare const InboundMessage: Schema.Union<[Schema.filter<Schema.Struct<{
139
+ kind: Schema.Literal<["direct"]>;
140
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
141
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
142
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
143
+ content: Schema.refine<readonly [{
144
+ readonly type: "text";
145
+ readonly text: string;
146
+ } | {
147
+ readonly type: "data";
148
+ readonly value: JsonValue;
149
+ }, ...({
150
+ readonly type: "text";
151
+ readonly text: string;
152
+ } | {
153
+ readonly type: "data";
154
+ readonly value: JsonValue;
155
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
156
+ type: Schema.Literal<["text"]>;
157
+ text: Schema.filter<typeof Schema.String>;
158
+ }>, Schema.Struct<{
159
+ type: Schema.Literal<["data"]>;
160
+ value: Schema.Schema<JsonValue, JsonValue, never>;
161
+ }>]>>>;
162
+ }>>, Schema.filter<Schema.Struct<{
163
+ kind: Schema.Literal<["group"]>;
164
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
165
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
166
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
167
+ members: Schema.filter<Schema.TupleType<readonly [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">], [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">]>>;
168
+ content: Schema.refine<readonly [{
169
+ readonly type: "text";
170
+ readonly text: string;
171
+ } | {
172
+ readonly type: "data";
173
+ readonly value: JsonValue;
174
+ }, ...({
175
+ readonly type: "text";
176
+ readonly text: string;
177
+ } | {
178
+ readonly type: "data";
179
+ readonly value: JsonValue;
180
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
181
+ type: Schema.Literal<["text"]>;
182
+ text: Schema.filter<typeof Schema.String>;
183
+ }>, Schema.Struct<{
184
+ type: Schema.Literal<["data"]>;
185
+ value: Schema.Schema<JsonValue, JsonValue, never>;
186
+ }>]>>>;
187
+ }>>]>;
188
+ /** A validated direct or group inbound message. */
189
+ export type InboundMessage = typeof InboundMessage.Type;
190
+ declare const sendFailure: Schema.Literal<["invalid-address", "unknown-agent", "membership-invalid", "content-invalid", "not-registered", "version-mismatch", "certification-unavailable", "persistence-failed", "network-unavailable"]>;
191
+ type SendFailure = typeof sendFailure.Type;
192
+ /**
193
+ * One line of the daemon's optional history export: a certified inbound
194
+ * delivery, a completed `send` invocation with its outcome, or the one line
195
+ * that says the export stopped. Readers decode the file line by line with
196
+ * this schema rather than copying its shape.
197
+ */
198
+ export declare const HistoryExportRecord: Schema.Union<[Schema.Struct<{
199
+ kind: Schema.Literal<["inbound"]>;
200
+ message: Schema.Union<[Schema.filter<Schema.Struct<{
201
+ kind: Schema.Literal<["direct"]>;
202
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
203
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
204
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
205
+ content: Schema.refine<readonly [{
206
+ readonly type: "text";
207
+ readonly text: string;
208
+ } | {
209
+ readonly type: "data";
210
+ readonly value: JsonValue;
211
+ }, ...({
212
+ readonly type: "text";
213
+ readonly text: string;
214
+ } | {
215
+ readonly type: "data";
216
+ readonly value: JsonValue;
217
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
218
+ type: Schema.Literal<["text"]>;
219
+ text: Schema.filter<typeof Schema.String>;
220
+ }>, Schema.Struct<{
221
+ type: Schema.Literal<["data"]>;
222
+ value: Schema.Schema<JsonValue, JsonValue, never>;
223
+ }>]>>>;
224
+ }>>, Schema.filter<Schema.Struct<{
225
+ kind: Schema.Literal<["group"]>;
226
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
227
+ address: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "GroupAddress">;
228
+ sender: Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">;
229
+ members: Schema.filter<Schema.TupleType<readonly [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">, Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">], [Schema.brand<Schema.filter<Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">>, "AgentAddress">]>>;
230
+ content: Schema.refine<readonly [{
231
+ readonly type: "text";
232
+ readonly text: string;
233
+ } | {
234
+ readonly type: "data";
235
+ readonly value: JsonValue;
236
+ }, ...({
237
+ readonly type: "text";
238
+ readonly text: string;
239
+ } | {
240
+ readonly type: "data";
241
+ readonly value: JsonValue;
242
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
243
+ type: Schema.Literal<["text"]>;
244
+ text: Schema.filter<typeof Schema.String>;
245
+ }>, Schema.Struct<{
246
+ type: Schema.Literal<["data"]>;
247
+ value: Schema.Schema<JsonValue, JsonValue, never>;
248
+ }>]>>>;
249
+ }>>]>;
250
+ at: typeof Schema.DateTimeUtc;
251
+ }>, Schema.Struct<{
252
+ kind: Schema.Literal<["outbound"]>;
253
+ to: Schema.brand<Schema.filter<typeof Schema.String>, "MessageAddressInput">;
254
+ content: Schema.refine<readonly [{
255
+ readonly type: "text";
256
+ readonly text: string;
257
+ } | {
258
+ readonly type: "data";
259
+ readonly value: JsonValue;
260
+ }, ...({
261
+ readonly type: "text";
262
+ readonly text: string;
263
+ } | {
264
+ readonly type: "data";
265
+ readonly value: JsonValue;
266
+ })[]], Schema.NonEmptyArray<Schema.Union<[Schema.Struct<{
267
+ type: Schema.Literal<["text"]>;
268
+ text: Schema.filter<typeof Schema.String>;
269
+ }>, Schema.Struct<{
270
+ type: Schema.Literal<["data"]>;
271
+ value: Schema.Schema<JsonValue, JsonValue, never>;
272
+ }>]>>>;
273
+ outcome: Schema.Union<[Schema.Struct<{
274
+ kind: Schema.Literal<["certified"]>;
275
+ postId: Schema.brand<Schema.filter<typeof Schema.String>, "PostId">;
276
+ }>, Schema.Struct<{
277
+ kind: Schema.Literal<["failed"]>;
278
+ reason: Schema.Literal<["invalid-address", "unknown-agent", "membership-invalid", "content-invalid", "not-registered", "version-mismatch", "certification-unavailable", "persistence-failed", "network-unavailable"]>;
279
+ }>]>;
280
+ at: typeof Schema.DateTimeUtc;
281
+ }>, Schema.Struct<{
282
+ kind: Schema.Literal<["export-failed"]>;
283
+ reason: typeof Schema.String;
284
+ at: typeof Schema.DateTimeUtc;
285
+ }>]>;
286
+ /** A validated line of the daemon's history export. */
287
+ export type HistoryExportRecord = typeof HistoryExportRecord.Type;
288
+ declare const SendError_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 & {
289
+ readonly _tag: "SendError";
290
+ } & Readonly<A>;
291
+ /** An addressed send failed before local certification completed. */
292
+ export declare class SendError extends SendError_base<{
293
+ readonly reason: SendFailure;
294
+ }> {
295
+ get message(): string;
296
+ }
297
+ type ListenFailure = "already-listening" | "incompatible-daemon" | "transport-failed" | "decode-failed";
298
+ declare const ListenError_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 & {
299
+ readonly _tag: "ListenError";
300
+ } & Readonly<A>;
301
+ /** The endpoint's sole inbound subscription failed. */
302
+ export declare class ListenError extends ListenError_base<{
303
+ readonly reason: ListenFailure;
304
+ }> {
305
+ get message(): string;
306
+ }
307
+ type DeliveryAcknowledgeFailure = "unknown-delivery" | "delivery-conflict" | "persistence-failed" | "transport-failed";
308
+ declare const DeliveryAcknowledgeError_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 & {
309
+ readonly _tag: "DeliveryAcknowledgeError";
310
+ } & Readonly<A>;
311
+ /** Transport acknowledgment could not complete for one delivery. */
312
+ export declare class DeliveryAcknowledgeError extends DeliveryAcknowledgeError_base<{
313
+ readonly reason: DeliveryAcknowledgeFailure;
314
+ }> {
315
+ get message(): string;
316
+ }
317
+ type ConnectFailure = "transport-failed" | "decode-failed" | "incompatible-daemon";
318
+ declare const ConnectError_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 & {
319
+ readonly _tag: "ConnectError";
320
+ } & Readonly<A>;
321
+ /** Acquiring the endpoint connection failed. */
322
+ export declare class ConnectError extends ConnectError_base<{
323
+ readonly reason: ConnectFailure;
324
+ }> {
325
+ get message(): string;
326
+ }
327
+ /** One message plus its transport-only acknowledgment. */
328
+ export interface InboundDelivery {
329
+ readonly message: InboundMessage;
330
+ readonly acknowledge: Effect.Effect<void, DeliveryAcknowledgeError>;
331
+ }
332
+ /** Structural runtime capability owned by one scoped endpoint connection. */
333
+ export interface HarnessEndpoint {
334
+ readonly send: (input: SendInput) => Effect.Effect<void, SendError>;
335
+ readonly messages: Stream.Stream<InboundDelivery, ListenError>;
336
+ }
337
+ export {};
338
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ /** @file Public runtime capability for one configured MoltZap endpoint. */
2
+ import { AgentName } from "@moltzap/identity";
3
+ import canonicalize from "canonicalize";
4
+ import { Data, Either, Encoding, Schema, } from "effect";
5
+ /* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Effect Schemas share their domain names with the nominal values they decode. */
6
+ const MAXIMUM_CONTENT_BYTES = 32_768;
7
+ const MAXIMUM_GROUP_MEMBERS = 32;
8
+ const HASH_BYTE_LENGTH = 32;
9
+ const AGENT_ADDRESS_PREFIX = "agent:";
10
+ const GROUP_ADDRESS_PREFIX = "group:";
11
+ const utf8Encoder = new TextEncoder();
12
+ const exactOptions = {
13
+ exact: true,
14
+ onExcessProperty: "error",
15
+ };
16
+ const exactStruct = (fields) => Schema.Struct(fields).annotations({ parseOptions: exactOptions });
17
+ const isAgentName = Schema.is(AgentName);
18
+ function hasWellFormedUnicode(value) {
19
+ for (let index = 0; index < value.length; index += 1) {
20
+ const codeUnit = value.charCodeAt(index);
21
+ if (isTrailingSurrogate(codeUnit)) {
22
+ return false;
23
+ }
24
+ if (!isLeadingSurrogate(codeUnit)) {
25
+ continue;
26
+ }
27
+ index += 1;
28
+ if (!isTrailingSurrogate(value.charCodeAt(index))) {
29
+ return false;
30
+ }
31
+ }
32
+ return true;
33
+ }
34
+ function isLeadingSurrogate(codeUnit) {
35
+ return codeUnit >= 0xd800 && codeUnit <= 0xdbff;
36
+ }
37
+ function isTrailingSurrogate(codeUnit) {
38
+ return codeUnit >= 0xdc00 && codeUnit <= 0xdfff;
39
+ }
40
+ function parseAgentAddress(value) {
41
+ if (!value.startsWith(AGENT_ADDRESS_PREFIX)) {
42
+ return undefined;
43
+ }
44
+ const name = value.slice(AGENT_ADDRESS_PREFIX.length);
45
+ return isAgentName(name) ? name : undefined;
46
+ }
47
+ function isCanonicalGroupAddress(value) {
48
+ const names = parseGroupAddress(value);
49
+ if (names === undefined ||
50
+ names.length < 3 ||
51
+ names.length > MAXIMUM_GROUP_MEMBERS) {
52
+ return false;
53
+ }
54
+ for (let index = 1; index < names.length; index += 1) {
55
+ const previous = names[index - 1];
56
+ const current = names[index];
57
+ if (previous === undefined ||
58
+ current === undefined ||
59
+ compareAscii(previous, current) >= 0) {
60
+ return false;
61
+ }
62
+ }
63
+ return true;
64
+ }
65
+ function parseGroupAddress(value) {
66
+ if (!value.startsWith(GROUP_ADDRESS_PREFIX)) {
67
+ return undefined;
68
+ }
69
+ const names = value.slice(GROUP_ADDRESS_PREFIX.length).split(",");
70
+ return names.length > 0 && names.every((name) => isAgentName(name))
71
+ ? names
72
+ : undefined;
73
+ }
74
+ function compareAscii(left, right) {
75
+ const sharedLength = Math.min(left.length, right.length);
76
+ for (let index = 0; index < sharedLength; index += 1) {
77
+ const difference = left.charCodeAt(index) - right.charCodeAt(index);
78
+ if (difference !== 0) {
79
+ return difference;
80
+ }
81
+ }
82
+ return left.length - right.length;
83
+ }
84
+ const addressInput = Schema.String.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined ||
85
+ parseGroupAddress(value) !== undefined, {
86
+ identifier: "MessageAddressInput",
87
+ description: "An agent address or syntactically valid group input",
88
+ }), Schema.brand("MessageAddressInput"));
89
+ /** An explicit direct destination using one canonical Registry name. */
90
+ export const AgentAddress = addressInput.pipe(Schema.filter((value) => parseAgentAddress(value) !== undefined), Schema.brand("AgentAddress"), Schema.annotations({ identifier: "AgentAddress" }));
91
+ /** A complete fixed-member group address in unsigned ASCII name order. */
92
+ export const GroupAddress = addressInput.pipe(Schema.filter(isCanonicalGroupAddress), Schema.brand("GroupAddress"), Schema.annotations({ identifier: "GroupAddress" }));
93
+ /** Either accepted destination input, including noncanonical group order. */
94
+ export const MessageAddressInput = addressInput;
95
+ function isCanonicalPostId(value) {
96
+ if (!value.startsWith("pst_")) {
97
+ return false;
98
+ }
99
+ return Either.match(Encoding.decodeBase64Url(value.slice(4)), {
100
+ onLeft: () => false,
101
+ onRight: (bytes) => bytes.byteLength === HASH_BYTE_LENGTH &&
102
+ `pst_${Encoding.encodeBase64Url(bytes)}` === value,
103
+ });
104
+ }
105
+ /** Opaque identity minted for one addressed-send invocation. */
106
+ export const PostId = Schema.String.pipe(Schema.filter(isCanonicalPostId, {
107
+ identifier: "PostId",
108
+ description: "Canonical author-scoped post identity",
109
+ }), Schema.brand("PostId"), Schema.annotations({ identifier: "PostId" }));
110
+ const wellFormedString = Schema.String.pipe(Schema.filter(hasWellFormedUnicode, {
111
+ identifier: "WellFormedUnicodeString",
112
+ }));
113
+ /* eslint-enable agent-code-guard/no-nullish-type-aliases -- Restore the absence rule outside JSON values. */
114
+ /** Runtime validation for the closed recursive JSON value. */
115
+ export const JsonValue = Schema.suspend(() => Schema.Union(Schema.Null, Schema.Boolean, Schema.JsonNumber, wellFormedString, Schema.Array(JsonValue), Schema.Record({ key: wellFormedString, value: JsonValue }))).annotations({ identifier: "JsonValue" });
116
+ /** One exact semantic part of a message. */
117
+ export const ContentPart = Schema.Union(exactStruct({ type: Schema.Literal("text"), text: wellFormedString }), exactStruct({ type: Schema.Literal("data"), value: JsonValue })).annotations({ identifier: "ContentPart" });
118
+ function contentFits(content) {
119
+ return Either.match(Either.try(() => canonicalize(content)), {
120
+ onLeft: () => false,
121
+ onRight: (canonical) => canonical !== undefined &&
122
+ utf8Encoder.encode(canonical).byteLength <= MAXIMUM_CONTENT_BYTES,
123
+ });
124
+ }
125
+ const contentStructure = Schema.NonEmptyArray(ContentPart);
126
+ /** Nonempty semantic content whose canonical JSON is at most 32,768 bytes. */
127
+ export const Content = contentStructure.pipe(Schema.filter(contentFits), Schema.annotations({ identifier: "Content" }));
128
+ /** Complete semantic input for one addressed send. */
129
+ export const SendInput = exactStruct({
130
+ to: MessageAddressInput,
131
+ content: Content,
132
+ }).annotations({ identifier: "SendInput" });
133
+ const directMessageStructure = exactStruct({
134
+ kind: Schema.Literal("direct"),
135
+ postId: PostId,
136
+ address: AgentAddress,
137
+ sender: AgentAddress,
138
+ content: Content,
139
+ });
140
+ const directMessage = directMessageStructure.pipe(Schema.filter((message) => message.address === message.sender, {
141
+ identifier: "DirectMessage",
142
+ description: "A direct delivery addressed by its remote sender",
143
+ }));
144
+ const groupMembers = Schema.Tuple([AgentAddress, AgentAddress, AgentAddress], AgentAddress).pipe(Schema.maxItems(MAXIMUM_GROUP_MEMBERS));
145
+ const groupMessageStructure = exactStruct({
146
+ kind: Schema.Literal("group"),
147
+ postId: PostId,
148
+ address: GroupAddress,
149
+ sender: AgentAddress,
150
+ members: groupMembers,
151
+ content: Content,
152
+ });
153
+ const groupMessage = groupMessageStructure.pipe(Schema.filter((message) => {
154
+ const addressNames = parseGroupAddress(message.address);
155
+ return (addressNames !== undefined &&
156
+ addressNames.length === message.members.length &&
157
+ message.members.every((member, index) => parseAgentAddress(member) === addressNames[index]) &&
158
+ message.members.includes(message.sender));
159
+ }, {
160
+ identifier: "GroupMessage",
161
+ description: "A group delivery whose canonical address, members, and sender agree",
162
+ }));
163
+ /** Exact discriminated inbound message projection. */
164
+ export const InboundMessage = Schema.Union(directMessage, groupMessage).annotations({ identifier: "InboundMessage" });
165
+ const sendFailure = Schema.Literal("invalid-address", "unknown-agent", "membership-invalid", "content-invalid", "not-registered", "version-mismatch", "certification-unavailable", "persistence-failed", "network-unavailable");
166
+ const historyExportSendOutcome = Schema.Union(exactStruct({ kind: Schema.Literal("certified"), postId: PostId }), exactStruct({ kind: Schema.Literal("failed"), reason: sendFailure }));
167
+ /**
168
+ * One line of the daemon's optional history export: a certified inbound
169
+ * delivery, a completed `send` invocation with its outcome, or the one line
170
+ * that says the export stopped. Readers decode the file line by line with
171
+ * this schema rather than copying its shape.
172
+ */
173
+ export const HistoryExportRecord = Schema.Union(exactStruct({
174
+ kind: Schema.Literal("inbound"),
175
+ message: InboundMessage,
176
+ at: Schema.DateTimeUtc,
177
+ }), exactStruct({
178
+ kind: Schema.Literal("outbound"),
179
+ to: MessageAddressInput,
180
+ content: Content,
181
+ outcome: historyExportSendOutcome,
182
+ at: Schema.DateTimeUtc,
183
+ }), exactStruct({
184
+ kind: Schema.Literal("export-failed"),
185
+ reason: Schema.String,
186
+ at: Schema.DateTimeUtc,
187
+ })).annotations({ identifier: "HistoryExportRecord" });
188
+ /** An addressed send failed before local certification completed. */
189
+ export class SendError extends Data.TaggedError("SendError") {
190
+ get message() {
191
+ return `send failed: ${this.reason}`;
192
+ }
193
+ }
194
+ /** The endpoint's sole inbound subscription failed. */
195
+ export class ListenError extends Data.TaggedError("ListenError") {
196
+ get message() {
197
+ return `listen failed: ${this.reason}`;
198
+ }
199
+ }
200
+ /** Transport acknowledgment could not complete for one delivery. */
201
+ export class DeliveryAcknowledgeError extends Data.TaggedError("DeliveryAcknowledgeError") {
202
+ get message() {
203
+ return `delivery acknowledgment failed: ${this.reason}`;
204
+ }
205
+ }
206
+ /** Acquiring the endpoint connection failed. */
207
+ export class ConnectError extends Data.TaggedError("ConnectError") {
208
+ get message() {
209
+ return `connect failed: ${this.reason}`;
210
+ }
211
+ }
212
+ /* eslint-enable @typescript-eslint/naming-convention, @typescript-eslint/no-redeclare -- Restore the package naming rules after the Schema/type pairs. */
213
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}