@moltzap/client 2026.529.0 → 2026.718.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 (363) hide show
  1. package/dist/agent-client.d.ts +2 -65
  2. package/dist/agent-client.d.ts.map +1 -1
  3. package/dist/agent-client.js +1 -286
  4. package/dist/agent-client.js.map +1 -1
  5. package/dist/app-client.d.ts +3 -0
  6. package/dist/app-client.d.ts.map +1 -0
  7. package/dist/app-client.js +2 -0
  8. package/dist/app-client.js.map +1 -0
  9. package/dist/auth.d.ts +6 -15
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +12 -16
  12. package/dist/auth.js.map +1 -1
  13. package/dist/channel-base/format-cross-conv.d.ts +10 -15
  14. package/dist/channel-base/format-cross-conv.d.ts.map +1 -1
  15. package/dist/channel-base/format-cross-conv.js +10 -15
  16. package/dist/channel-base/format-cross-conv.js.map +1 -1
  17. package/dist/channel-base/format-group-block.d.ts +8 -10
  18. package/dist/channel-base/format-group-block.d.ts.map +1 -1
  19. package/dist/channel-base/format-group-block.js +8 -10
  20. package/dist/channel-base/format-group-block.js.map +1 -1
  21. package/dist/channel-base/index.d.ts +3 -62
  22. package/dist/channel-base/index.d.ts.map +1 -1
  23. package/dist/channel-base/index.js +2 -65
  24. package/dist/channel-base/index.js.map +1 -1
  25. package/dist/channel-base/lease-guard.d.ts +0 -2
  26. package/dist/channel-base/lease-guard.d.ts.map +1 -1
  27. package/dist/channel-base/lease-guard.js +0 -2
  28. package/dist/channel-base/lease-guard.js.map +1 -1
  29. package/dist/channel-base/lease-store.d.ts +2 -3
  30. package/dist/channel-base/lease-store.d.ts.map +1 -1
  31. package/dist/channel-base/lease-store.js +2 -3
  32. package/dist/channel-base/lease-store.js.map +1 -1
  33. package/dist/channel-base/lease.d.ts +25 -31
  34. package/dist/channel-base/lease.d.ts.map +1 -1
  35. package/dist/channel-base/lease.js +29 -45
  36. package/dist/channel-base/lease.js.map +1 -1
  37. package/dist/channel-core-enrichment.d.ts +1 -1
  38. package/dist/channel-core-enrichment.d.ts.map +1 -1
  39. package/dist/channel-core-test-support.d.ts +17 -11
  40. package/dist/channel-core-test-support.d.ts.map +1 -1
  41. package/dist/channel-core-test-support.js +5 -6
  42. package/dist/channel-core-test-support.js.map +1 -1
  43. package/dist/channel-core.d.ts +24 -29
  44. package/dist/channel-core.d.ts.map +1 -1
  45. package/dist/channel-core.js +18 -42
  46. package/dist/channel-core.js.map +1 -1
  47. package/dist/cli/commands/agents.d.ts +3 -6
  48. package/dist/cli/commands/agents.d.ts.map +1 -1
  49. package/dist/cli/commands/agents.js +14 -50
  50. package/dist/cli/commands/agents.js.map +1 -1
  51. package/dist/cli/commands/contacts.d.ts +5 -6
  52. package/dist/cli/commands/contacts.d.ts.map +1 -1
  53. package/dist/cli/commands/contacts.js +15 -43
  54. package/dist/cli/commands/contacts.js.map +1 -1
  55. package/dist/cli/commands/conversations.d.ts +8 -18
  56. package/dist/cli/commands/conversations.d.ts.map +1 -1
  57. package/dist/cli/commands/conversations.js +14 -65
  58. package/dist/cli/commands/conversations.js.map +1 -1
  59. package/dist/cli/commands/messages.d.ts +13 -35
  60. package/dist/cli/commands/messages.d.ts.map +1 -1
  61. package/dist/cli/commands/messages.js +21 -46
  62. package/dist/cli/commands/messages.js.map +1 -1
  63. package/dist/cli/commands/register.d.ts +10 -12
  64. package/dist/cli/commands/register.d.ts.map +1 -1
  65. package/dist/cli/commands/register.js +47 -133
  66. package/dist/cli/commands/register.js.map +1 -1
  67. package/dist/cli/commands/send.d.ts +23 -36
  68. package/dist/cli/commands/send.d.ts.map +1 -1
  69. package/dist/cli/commands/send.js +25 -72
  70. package/dist/cli/commands/send.js.map +1 -1
  71. package/dist/cli/commands/start.d.ts +10 -124
  72. package/dist/cli/commands/start.d.ts.map +1 -1
  73. package/dist/cli/commands/start.js +28 -510
  74. package/dist/cli/commands/start.js.map +1 -1
  75. package/dist/cli/commands/status.d.ts +1 -1
  76. package/dist/cli/commands/status.d.ts.map +1 -1
  77. package/dist/cli/commands/status.js +8 -9
  78. package/dist/cli/commands/status.js.map +1 -1
  79. package/dist/cli/commands/test-transport.d.ts +12 -5
  80. package/dist/cli/commands/test-transport.d.ts.map +1 -1
  81. package/dist/cli/commands/test-transport.js +15 -15
  82. package/dist/cli/commands/test-transport.js.map +1 -1
  83. package/dist/cli/index.js +13 -40
  84. package/dist/cli/index.js.map +1 -1
  85. package/dist/cli/output.d.ts +4 -0
  86. package/dist/cli/output.d.ts.map +1 -0
  87. package/dist/cli/output.js +9 -0
  88. package/dist/cli/output.js.map +1 -0
  89. package/dist/cli/socket-client.d.ts +7 -14
  90. package/dist/cli/socket-client.d.ts.map +1 -1
  91. package/dist/cli/socket-client.js +15 -38
  92. package/dist/cli/socket-client.js.map +1 -1
  93. package/dist/cli/transport.d.ts +53 -116
  94. package/dist/cli/transport.d.ts.map +1 -1
  95. package/dist/cli/transport.js +45 -295
  96. package/dist/cli/transport.js.map +1 -1
  97. package/dist/config.d.ts +24 -0
  98. package/dist/config.d.ts.map +1 -0
  99. package/dist/config.js +35 -0
  100. package/dist/config.js.map +1 -0
  101. package/dist/config.test-utils.d.ts +13 -0
  102. package/dist/config.test-utils.d.ts.map +1 -0
  103. package/dist/config.test-utils.js +46 -0
  104. package/dist/config.test-utils.js.map +1 -0
  105. package/dist/index.d.ts +3 -8
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +2 -12
  108. package/dist/index.js.map +1 -1
  109. package/dist/local-daemon-rpc.d.ts +259 -8
  110. package/dist/local-daemon-rpc.d.ts.map +1 -1
  111. package/dist/local-daemon-rpc.js +189 -12
  112. package/dist/local-daemon-rpc.js.map +1 -1
  113. package/dist/{runtime/local-history.d.ts → local-history.d.ts} +16 -21
  114. package/dist/local-history.d.ts.map +1 -0
  115. package/dist/{runtime/local-history.js → local-history.js} +16 -21
  116. package/dist/local-history.js.map +1 -0
  117. package/dist/local-paths.d.ts +0 -2
  118. package/dist/local-paths.d.ts.map +1 -1
  119. package/dist/local-paths.js +0 -4
  120. package/dist/local-paths.js.map +1 -1
  121. package/dist/local-socket-server.d.ts +22 -0
  122. package/dist/local-socket-server.d.ts.map +1 -0
  123. package/dist/{runtime/local-socket-server.js → local-socket-server.js} +4 -9
  124. package/dist/local-socket-server.js.map +1 -0
  125. package/dist/message-rendering.d.ts +3 -0
  126. package/dist/message-rendering.d.ts.map +1 -0
  127. package/dist/message-rendering.js +7 -0
  128. package/dist/message-rendering.js.map +1 -0
  129. package/dist/notification/__tests__/{snapshot-semantics.types-check.d.ts → subscribe-signatures.types-check.d.ts} +1 -1
  130. package/dist/notification/__tests__/subscribe-signatures.types-check.d.ts.map +1 -0
  131. package/dist/notification/__tests__/subscribe-signatures.types-check.js +55 -0
  132. package/dist/notification/__tests__/subscribe-signatures.types-check.js.map +1 -0
  133. package/dist/notification/errors.d.ts +18 -6
  134. package/dist/notification/errors.d.ts.map +1 -1
  135. package/dist/notification/errors.js +13 -15
  136. package/dist/notification/errors.js.map +1 -1
  137. package/dist/notification/index.d.ts +5 -0
  138. package/dist/notification/index.d.ts.map +1 -0
  139. package/dist/notification/index.js +5 -0
  140. package/dist/notification/index.js.map +1 -0
  141. package/dist/notification/stream.d.ts +33 -49
  142. package/dist/notification/stream.d.ts.map +1 -1
  143. package/dist/notification/stream.js +33 -76
  144. package/dist/notification/stream.js.map +1 -1
  145. package/dist/pagination.d.ts +20 -10
  146. package/dist/pagination.d.ts.map +1 -1
  147. package/dist/pagination.js +8 -9
  148. package/dist/pagination.js.map +1 -1
  149. package/dist/profile.d.ts +92 -0
  150. package/dist/profile.d.ts.map +1 -0
  151. package/dist/profile.js +149 -0
  152. package/dist/profile.js.map +1 -0
  153. package/dist/refs.d.ts.map +1 -0
  154. package/dist/refs.js.map +1 -0
  155. package/dist/service-archive-purge.d.ts +2 -1
  156. package/dist/service-archive-purge.d.ts.map +1 -1
  157. package/dist/service-archive-purge.js.map +1 -1
  158. package/dist/{runtime/service-helpers.d.ts → service-helpers.d.ts} +5 -11
  159. package/dist/service-helpers.d.ts.map +1 -0
  160. package/dist/{runtime/service-helpers.js → service-helpers.js} +2 -9
  161. package/dist/service-helpers.js.map +1 -0
  162. package/dist/service-local-daemon.d.ts +22 -0
  163. package/dist/service-local-daemon.d.ts.map +1 -0
  164. package/dist/service-local-daemon.js +185 -0
  165. package/dist/service-local-daemon.js.map +1 -0
  166. package/dist/service.d.ts +65 -57
  167. package/dist/service.d.ts.map +1 -1
  168. package/dist/service.js +205 -156
  169. package/dist/service.js.map +1 -1
  170. package/dist/test-utils/channel-service-fixture.d.ts +3 -2
  171. package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
  172. package/dist/test-utils/channel-service-fixture.js.map +1 -1
  173. package/dist/test-utils/fake-service.d.ts +26 -18
  174. package/dist/test-utils/fake-service.d.ts.map +1 -1
  175. package/dist/test-utils/fake-service.js +28 -42
  176. package/dist/test-utils/fake-service.js.map +1 -1
  177. package/dist/test-utils/ids.d.ts +3 -1
  178. package/dist/test-utils/ids.d.ts.map +1 -1
  179. package/dist/test-utils/ids.js.map +1 -1
  180. package/dist/test-utils/index.d.ts +9 -2
  181. package/dist/test-utils/index.d.ts.map +1 -1
  182. package/dist/test-utils/index.js +8 -1
  183. package/dist/test-utils/index.js.map +1 -1
  184. package/dist/test-utils/standalone-provisioning.d.ts +17 -0
  185. package/dist/test-utils/standalone-provisioning.d.ts.map +1 -0
  186. package/dist/test-utils/standalone-provisioning.js +14 -0
  187. package/dist/test-utils/standalone-provisioning.js.map +1 -0
  188. package/dist/tsconfig.tsbuildinfo +1 -0
  189. package/package.json +49 -27
  190. package/dist/auth.test.d.ts +0 -2
  191. package/dist/auth.test.d.ts.map +0 -1
  192. package/dist/auth.test.js +0 -121
  193. package/dist/auth.test.js.map +0 -1
  194. package/dist/channel-core-context.test.d.ts +0 -2
  195. package/dist/channel-core-context.test.d.ts.map +0 -1
  196. package/dist/channel-core-context.test.js +0 -342
  197. package/dist/channel-core-context.test.js.map +0 -1
  198. package/dist/channel-core-dispatch.test.d.ts +0 -2
  199. package/dist/channel-core-dispatch.test.d.ts.map +0 -1
  200. package/dist/channel-core-dispatch.test.js +0 -557
  201. package/dist/channel-core-dispatch.test.js.map +0 -1
  202. package/dist/channel-core.test.d.ts +0 -2
  203. package/dist/channel-core.test.d.ts.map +0 -1
  204. package/dist/channel-core.test.js +0 -232
  205. package/dist/channel-core.test.js.map +0 -1
  206. package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts +0 -2
  207. package/dist/cli/__tests__/cli-multi-agent.int.test.d.ts.map +0 -1
  208. package/dist/cli/__tests__/cli-multi-agent.int.test.js +0 -132
  209. package/dist/cli/__tests__/cli-multi-agent.int.test.js.map +0 -1
  210. package/dist/cli/commands/invite.d.ts +0 -7
  211. package/dist/cli/commands/invite.d.ts.map +0 -1
  212. package/dist/cli/commands/invite.js +0 -11
  213. package/dist/cli/commands/invite.js.map +0 -1
  214. package/dist/cli/commands/messages.test.d.ts +0 -2
  215. package/dist/cli/commands/messages.test.d.ts.map +0 -1
  216. package/dist/cli/commands/messages.test.js +0 -99
  217. package/dist/cli/commands/messages.test.js.map +0 -1
  218. package/dist/cli/commands/ping.d.ts +0 -7
  219. package/dist/cli/commands/ping.d.ts.map +0 -1
  220. package/dist/cli/commands/ping.js +0 -37
  221. package/dist/cli/commands/ping.js.map +0 -1
  222. package/dist/cli/commands/register.test.d.ts +0 -2
  223. package/dist/cli/commands/register.test.d.ts.map +0 -1
  224. package/dist/cli/commands/register.test.js +0 -91
  225. package/dist/cli/commands/register.test.js.map +0 -1
  226. package/dist/cli/commands/send.test.d.ts +0 -2
  227. package/dist/cli/commands/send.test.d.ts.map +0 -1
  228. package/dist/cli/commands/send.test.js +0 -59
  229. package/dist/cli/commands/send.test.js.map +0 -1
  230. package/dist/cli/commands/start.test.d.ts +0 -2
  231. package/dist/cli/commands/start.test.d.ts.map +0 -1
  232. package/dist/cli/commands/start.test.js +0 -624
  233. package/dist/cli/commands/start.test.js.map +0 -1
  234. package/dist/cli/commands/whoami.d.ts +0 -8
  235. package/dist/cli/commands/whoami.d.ts.map +0 -1
  236. package/dist/cli/commands/whoami.js +0 -28
  237. package/dist/cli/commands/whoami.js.map +0 -1
  238. package/dist/cli/config.d.ts +0 -66
  239. package/dist/cli/config.d.ts.map +0 -1
  240. package/dist/cli/config.js +0 -148
  241. package/dist/cli/config.js.map +0 -1
  242. package/dist/cli/config.test.d.ts +0 -2
  243. package/dist/cli/config.test.d.ts.map +0 -1
  244. package/dist/cli/config.test.js +0 -89
  245. package/dist/cli/config.test.js.map +0 -1
  246. package/dist/cli/http-client.d.ts +0 -17
  247. package/dist/cli/http-client.d.ts.map +0 -1
  248. package/dist/cli/http-client.js +0 -38
  249. package/dist/cli/http-client.js.map +0 -1
  250. package/dist/cli/profile.d.ts +0 -126
  251. package/dist/cli/profile.d.ts.map +0 -1
  252. package/dist/cli/profile.js +0 -231
  253. package/dist/cli/profile.js.map +0 -1
  254. package/dist/cli/profile.test.d.ts +0 -2
  255. package/dist/cli/profile.test.d.ts.map +0 -1
  256. package/dist/cli/profile.test.js +0 -369
  257. package/dist/cli/profile.test.js.map +0 -1
  258. package/dist/cli/transport.test.d.ts +0 -2
  259. package/dist/cli/transport.test.d.ts.map +0 -1
  260. package/dist/cli/transport.test.js +0 -312
  261. package/dist/cli/transport.test.js.map +0 -1
  262. package/dist/notification/__tests__/filter-equivalence.test.d.ts +0 -2
  263. package/dist/notification/__tests__/filter-equivalence.test.d.ts.map +0 -1
  264. package/dist/notification/__tests__/filter-equivalence.test.js +0 -123
  265. package/dist/notification/__tests__/filter-equivalence.test.js.map +0 -1
  266. package/dist/notification/__tests__/snapshot-semantics.test.d.ts +0 -2
  267. package/dist/notification/__tests__/snapshot-semantics.test.d.ts.map +0 -1
  268. package/dist/notification/__tests__/snapshot-semantics.test.js +0 -261
  269. package/dist/notification/__tests__/snapshot-semantics.test.js.map +0 -1
  270. package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts.map +0 -1
  271. package/dist/notification/__tests__/snapshot-semantics.types-check.js +0 -62
  272. package/dist/notification/__tests__/snapshot-semantics.types-check.js.map +0 -1
  273. package/dist/pagination.test.d.ts +0 -2
  274. package/dist/pagination.test.d.ts.map +0 -1
  275. package/dist/pagination.test.js +0 -72
  276. package/dist/pagination.test.js.map +0 -1
  277. package/dist/runtime/close-info.d.ts +0 -84
  278. package/dist/runtime/close-info.d.ts.map +0 -1
  279. package/dist/runtime/close-info.js +0 -102
  280. package/dist/runtime/close-info.js.map +0 -1
  281. package/dist/runtime/close-info.test.d.ts +0 -2
  282. package/dist/runtime/close-info.test.d.ts.map +0 -1
  283. package/dist/runtime/close-info.test.js +0 -109
  284. package/dist/runtime/close-info.test.js.map +0 -1
  285. package/dist/runtime/errors.d.ts +0 -11
  286. package/dist/runtime/errors.d.ts.map +0 -1
  287. package/dist/runtime/errors.js +0 -41
  288. package/dist/runtime/errors.js.map +0 -1
  289. package/dist/runtime/errors.test.d.ts +0 -2
  290. package/dist/runtime/errors.test.d.ts.map +0 -1
  291. package/dist/runtime/errors.test.js +0 -79
  292. package/dist/runtime/errors.test.js.map +0 -1
  293. package/dist/runtime/frame.d.ts +0 -8
  294. package/dist/runtime/frame.d.ts.map +0 -1
  295. package/dist/runtime/frame.js +0 -12
  296. package/dist/runtime/frame.js.map +0 -1
  297. package/dist/runtime/frame.test.d.ts +0 -2
  298. package/dist/runtime/frame.test.d.ts.map +0 -1
  299. package/dist/runtime/frame.test.js +0 -59
  300. package/dist/runtime/frame.test.js.map +0 -1
  301. package/dist/runtime/index.d.ts +0 -10
  302. package/dist/runtime/index.d.ts.map +0 -1
  303. package/dist/runtime/index.js +0 -9
  304. package/dist/runtime/index.js.map +0 -1
  305. package/dist/runtime/local-history.d.ts.map +0 -1
  306. package/dist/runtime/local-history.js.map +0 -1
  307. package/dist/runtime/local-service-commands.d.ts +0 -26
  308. package/dist/runtime/local-service-commands.d.ts.map +0 -1
  309. package/dist/runtime/local-service-commands.js +0 -29
  310. package/dist/runtime/local-service-commands.js.map +0 -1
  311. package/dist/runtime/local-socket-server.d.ts +0 -20
  312. package/dist/runtime/local-socket-server.d.ts.map +0 -1
  313. package/dist/runtime/local-socket-server.js.map +0 -1
  314. package/dist/runtime/refs.d.ts.map +0 -1
  315. package/dist/runtime/refs.js.map +0 -1
  316. package/dist/runtime/runtime.test.d.ts +0 -2
  317. package/dist/runtime/runtime.test.d.ts.map +0 -1
  318. package/dist/runtime/runtime.test.js +0 -37
  319. package/dist/runtime/runtime.test.js.map +0 -1
  320. package/dist/runtime/service-helpers.d.ts.map +0 -1
  321. package/dist/runtime/service-helpers.js.map +0 -1
  322. package/dist/runtime/service-teardown.d.ts +0 -5
  323. package/dist/runtime/service-teardown.d.ts.map +0 -1
  324. package/dist/runtime/service-teardown.js +0 -36
  325. package/dist/runtime/service-teardown.js.map +0 -1
  326. package/dist/runtime/service-teardown.test.d.ts +0 -2
  327. package/dist/runtime/service-teardown.test.d.ts.map +0 -1
  328. package/dist/runtime/service-teardown.test.js +0 -80
  329. package/dist/runtime/service-teardown.test.js.map +0 -1
  330. package/dist/runtime/subscribers.d.ts +0 -152
  331. package/dist/runtime/subscribers.d.ts.map +0 -1
  332. package/dist/runtime/subscribers.js +0 -222
  333. package/dist/runtime/subscribers.js.map +0 -1
  334. package/dist/service-socket-path.test.d.ts +0 -2
  335. package/dist/service-socket-path.test.d.ts.map +0 -1
  336. package/dist/service-socket-path.test.js +0 -87
  337. package/dist/service-socket-path.test.js.map +0 -1
  338. package/dist/service.test.d.ts +0 -2
  339. package/dist/service.test.d.ts.map +0 -1
  340. package/dist/service.test.js +0 -796
  341. package/dist/service.test.js.map +0 -1
  342. package/dist/test/index.d.ts +0 -47
  343. package/dist/test/index.d.ts.map +0 -1
  344. package/dist/test/index.js +0 -39
  345. package/dist/test/index.js.map +0 -1
  346. package/dist/test-utils/conformance-adapter.d.ts +0 -40
  347. package/dist/test-utils/conformance-adapter.d.ts.map +0 -1
  348. package/dist/test-utils/conformance-adapter.js +0 -250
  349. package/dist/test-utils/conformance-adapter.js.map +0 -1
  350. package/dist/tm-client-test-support.d.ts +0 -184
  351. package/dist/tm-client-test-support.d.ts.map +0 -1
  352. package/dist/tm-client-test-support.js +0 -466
  353. package/dist/tm-client-test-support.js.map +0 -1
  354. package/dist/tm-client.d.ts +0 -269
  355. package/dist/tm-client.d.ts.map +0 -1
  356. package/dist/tm-client.js +0 -518
  357. package/dist/tm-client.js.map +0 -1
  358. package/dist/tm-client.test.d.ts +0 -2
  359. package/dist/tm-client.test.d.ts.map +0 -1
  360. package/dist/tm-client.test.js +0 -490
  361. package/dist/tm-client.test.js.map +0 -1
  362. /package/dist/{runtime/refs.d.ts → refs.d.ts} +0 -0
  363. /package/dist/{runtime/refs.js → refs.js} +0 -0
@@ -1,66 +1,3 @@
1
- import { Effect, Stream } from "effect";
2
- import { Connect, NotConnectedError, RpcTimeoutError, type AnyNotificationDefinition, type DecodedNotification, type NotificationParamsOf, type ParamsOf, type ResultOf, type RpcCallError, type RpcDefinition } from "@moltzap/protocol";
3
- import { type CloseInfo } from "./runtime/close-info.js";
4
- export type { CloseInfo };
5
- export interface RpcCallOptions {
6
- readonly timeoutMs?: number;
7
- }
8
- type ConnectError = RpcCallError | RpcTimeoutError;
9
- type ConnectResult = ResultOf<typeof Connect>;
10
- export interface AgentClientOptions {
11
- serverUrl: string;
12
- agentKey: string;
13
- onDisconnect?: (close: CloseInfo) => void;
14
- onReconnect?: (helloOk: ConnectResult) => void;
15
- }
16
- /**
17
- * MoltZap agent client — outbound RPC only, no TM-callback inbound
18
- * dispatch. `request` is narrowed to `AnyAgentClientRpcDefinition`; TM-only
19
- * methods are unreachable at compile time (Spec D3 R11/R13).
20
- */
21
- export declare class MoltZapAgentClient {
22
- private readonly options;
23
- private readonly stateRef;
24
- private readonly malformedRef;
25
- private readonly runtime;
26
- private readonly subscribers;
27
- private closed;
28
- private reconnectFiber;
29
- private _helloOk;
30
- constructor(options: AgentClientOptions);
31
- get helloOk(): ConnectResult | null;
32
- connect(): Effect.Effect<ConnectResult, ConnectError>;
33
- /**
34
- * Outbound RPC. The compile-time constraint accepts any
35
- * `RpcDefinition` so generic forwarders (service.sendRpc, CLI
36
- * transport) can pass through without per-method narrowing; the R11
37
- * agent-client catalog narrowing applies at runtime inside
38
- * `AgentClientConnection` and rejects TM-only methods.
39
- */
40
- sendRpc<D extends RpcDefinition<string, any, any>>(definition: D, params: ParamsOf<D>, opts?: RpcCallOptions): Effect.Effect<ResultOf<D>, ConnectError>;
41
- subscribe<D extends AnyNotificationDefinition>(definition: D, refinement?: (params: NotificationParamsOf<D>) => boolean): Stream.Stream<DecodedNotification<D>, NotConnectedError, never>;
42
- subscribe<D extends AnyNotificationDefinition, R extends NotificationParamsOf<D>>(definition: D, refinement: (params: NotificationParamsOf<D>) => params is R): Stream.Stream<DecodedNotification<D, R>, NotConnectedError, never>;
43
- subscribeAll(refinement?: (notification: DecodedNotification<AnyNotificationDefinition>) => boolean): Stream.Stream<DecodedNotification<AnyNotificationDefinition>, NotConnectedError, never>;
44
- close(): Effect.Effect<void, never>;
45
- disconnect(): Effect.Effect<void, never>;
46
- private disconnectSync;
47
- private notifyDisconnect;
48
- private connectEffect;
49
- private webSocketUrl;
50
- private openSocket;
51
- private readerEffect;
52
- private handleReaderExit;
53
- private publishConnectionState;
54
- private awaitConnectAuth;
55
- private sendRpcEffect;
56
- private recordMalformedFrame;
57
- private handleDecodedResponse;
58
- private handleDecodedServerRequest;
59
- private handleDecodedNotification;
60
- private handleDecodedFrame;
61
- private handleIncoming;
62
- private failConnectionPending;
63
- private failAllPending;
64
- private scheduleReconnect;
65
- }
1
+ export { MoltZapAgentClient } from "@moltzap/protocol/socket";
2
+ export type { AgentClientOptions, RpcCallOptions, } from "@moltzap/protocol/socket";
66
3
  //# sourceMappingURL=agent-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,MAAM,EAQN,MAAM,EACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAEL,OAAO,EACP,iBAAiB,EACjB,eAAe,EAGf,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE3E,YAAY,EAAE,SAAS,EAAE,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,YAAY,GAAG,YAAY,GAAG,eAAe,CAAC;AAmBnD,KAAK,aAAa,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AAqC9C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAYjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,QAAQ,CAA8B;gBAEjB,OAAO,EAAE,kBAAkB;IASxD,IAAI,OAAO,IAAI,aAAa,GAAG,IAAI,CAElC;IAED,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC;IAOrD;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/C,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;IAK3C,SAAS,CAAC,CAAC,SAAS,yBAAyB,EAC3C,UAAU,EAAE,CAAC,EACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,GACxD,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC;IAClE,SAAS,CACP,CAAC,SAAS,yBAAyB,EACnC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAEjC,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,GAC3D,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC;IASrE,YAAY,CAEV,UAAU,CAAC,EAAE,CACX,YAAY,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,KACzD,OAAO,GACX,MAAM,CAAC,MAAM,CACd,mBAAmB,CAAC,yBAAyB,CAAC,EAC9C,iBAAiB,EACjB,KAAK,CACN;IAID,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAkCnC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAIxC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB;CAiD1B"}
1
+ {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,0BAA0B,CAAC"}
@@ -1,287 +1,2 @@
1
- import * as Socket from "@effect/platform/Socket";
2
- import * as NodeSocket from "@effect/platform-node/NodeSocket";
3
- import { Data, Deferred, Duration, Either, Effect, Exit, Fiber, ManagedRuntime, Option, Ref, Schedule, Scope, Stream, } from "effect";
4
- import { PROTOCOL_VERSION, Connect, NotConnectedError, RpcTimeoutError, makeAgentClientConnection, } from "@moltzap/protocol";
5
- import { decodeFrames } from "./runtime/frame.js";
6
- import { makeSubscriberRegistry, } from "./runtime/subscribers.js";
7
- import { subscribe as subscribeStream, subscribeAll as subscribeAllStream, } from "./notification/stream.js";
8
- import { extractCloseInfo } from "./runtime/close-info.js";
9
- /** Default per-RPC timeout. */
10
- const RPC_TIMEOUT_MS = 30_000;
11
- const BASE_RECONNECT_DELAY_MS = 1000;
12
- const MAX_RECONNECT_DELAY_MS = 30_000;
13
- const RECONNECT_BACKOFF_FACTOR = 2;
14
- const NORMAL_CLOSE_CODE = 1000;
15
- const WEB_SOCKET_OPEN_TIMEOUT_SECONDS = 10;
16
- const MALFORMED_FRAME_PREVIEW_CHARS = 200;
17
- const MALFORMED_LOG_EVERY = 50;
18
- const shouldLogMalformedFrame = (count) => count === 1 || count % MALFORMED_LOG_EVERY === 0;
19
- const MSG_NOT_CONNECTED = "WebSocket not connected";
20
- const UTF8_DECODER = new TextDecoder("utf-8");
21
- const makeNotConnectedError = () => new NotConnectedError({ message: MSG_NOT_CONNECTED });
22
- class ReconnectAttemptFailedError extends Data.TaggedError("ReconnectAttemptFailedError") {
23
- }
24
- /**
25
- * MoltZap agent client — outbound RPC only, no TM-callback inbound
26
- * dispatch. `request` is narrowed to `AnyAgentClientRpcDefinition`; TM-only
27
- * methods are unreachable at compile time (Spec D3 R11/R13).
28
- */
29
- export class MoltZapAgentClient {
30
- options;
31
- stateRef;
32
- malformedRef;
33
- runtime;
34
- subscribers;
35
- closed = false;
36
- reconnectFiber = null;
37
- _helloOk = null;
38
- constructor(options) {
39
- this.options = options;
40
- this.runtime = ManagedRuntime.make(NodeSocket.layerWebSocketConstructor);
41
- this.stateRef = this.runtime.runSync(Ref.make(Option.none()));
42
- this.malformedRef = this.runtime.runSync(Ref.make(0));
43
- this.subscribers = this.runtime.runSync(makeSubscriberRegistry());
44
- }
45
- get helloOk() {
46
- return this._helloOk;
47
- }
48
- connect() {
49
- return this.runtime.runtimeEffect.pipe(Effect.flatMap(() => this.connectEffect()), Effect.provide(this.runtime));
50
- }
51
- /**
52
- * Outbound RPC. The compile-time constraint accepts any
53
- * `RpcDefinition` so generic forwarders (service.sendRpc, CLI
54
- * transport) can pass through without per-method narrowing; the R11
55
- * agent-client catalog narrowing applies at runtime inside
56
- * `AgentClientConnection` and rejects TM-only methods.
57
- */
58
- sendRpc(definition, params, opts) {
59
- const timeoutMs = opts?.timeoutMs ?? RPC_TIMEOUT_MS;
60
- return this.sendRpcEffect(definition, params, timeoutMs);
61
- }
62
- subscribe(definition,
63
- // eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
64
- refinement) {
65
- return subscribeStream(this.subscribers, definition, refinement);
66
- }
67
- subscribeAll(
68
- // eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
69
- refinement) {
70
- return subscribeAllStream(this.subscribers, refinement);
71
- }
72
- close() {
73
- return Effect.gen(this, function* () {
74
- if (this.closed)
75
- return;
76
- const hasCompletedHandshake = this._helloOk !== null;
77
- this.closed = true;
78
- this._helloOk = null;
79
- if (this.reconnectFiber !== null) {
80
- const f = this.reconnectFiber;
81
- this.reconnectFiber = null;
82
- yield* Effect.forkDaemon(Fiber.interrupt(f));
83
- }
84
- yield* this.failAllPending(MSG_NOT_CONNECTED);
85
- yield* this.subscribers.closeAll;
86
- const state = yield* Ref.getAndSet(this.stateRef, Option.none());
87
- if (Option.isSome(state)) {
88
- if (hasCompletedHandshake) {
89
- yield* state.value
90
- .write(new Socket.CloseEvent(NORMAL_CLOSE_CODE, "normal"))
91
- .pipe(Effect.orDie);
92
- yield* Scope.close(state.value.scope, Exit.void);
93
- }
94
- else {
95
- this.runtime.runFork(Scope.close(state.value.scope, Exit.void));
96
- }
97
- }
98
- }).pipe(Effect.asVoid, Effect.ensuring(Effect.sync(() => {
99
- this.runtime.dispose();
100
- })));
101
- }
102
- disconnect() {
103
- return Effect.sync(() => this.disconnectSync());
104
- }
105
- disconnectSync() {
106
- const state = this.runtime.runSync(Ref.get(this.stateRef));
107
- if (Option.isNone(state))
108
- return;
109
- this.runtime.runSync(Ref.set(this.stateRef, Option.none()));
110
- this.runtime.runFork(this.failConnectionPending(state.value));
111
- this.runtime.runFork(Fiber.interrupt(state.value.readerFiber));
112
- this.runtime.runFork(Scope.close(state.value.scope, Exit.void));
113
- }
114
- notifyDisconnect(close) {
115
- return Effect.gen(this, function* () {
116
- try {
117
- this.options.onDisconnect?.(close);
118
- }
119
- catch (err) {
120
- yield* Effect.logWarning("onDisconnect handler threw", err);
121
- }
122
- });
123
- }
124
- connectEffect() {
125
- return Effect.gen(this, function* () {
126
- const url = this.webSocketUrl();
127
- const scope = yield* Scope.make();
128
- const socket = yield* this.openSocket(url, scope);
129
- const write = yield* Scope.extend(socket.writer, scope);
130
- const agentConn = yield* Scope.extend(makeAgentClientConnection({
131
- id: "agent-client",
132
- handlers: {},
133
- write: (raw) => write(raw),
134
- idPrefix: "rpc",
135
- }), scope);
136
- const handshakeSettled = yield* Deferred.make();
137
- const readerFiber = this.runtime.runFork(this.readerEffect(socket, handshakeSettled));
138
- yield* this.publishConnectionState({
139
- write,
140
- readerFiber,
141
- scope,
142
- agentConn,
143
- handshakeSettled,
144
- });
145
- return yield* this.awaitConnectAuth(handshakeSettled);
146
- });
147
- }
148
- webSocketUrl() {
149
- return this.options.serverUrl.replace(/^http/, "ws") + "/ws";
150
- }
151
- openSocket(url, scope) {
152
- const openTimeout = Duration.seconds(WEB_SOCKET_OPEN_TIMEOUT_SECONDS);
153
- return Scope.extend(Socket.makeWebSocket(url, { openTimeout }), scope).pipe(Effect.timeoutFail({
154
- duration: openTimeout,
155
- onTimeout: makeNotConnectedError,
156
- }), Effect.catchAllCause((cause) => Effect.zipRight(Effect.logWarning("WebSocket open failed", cause), Effect.sync(() => {
157
- this.runtime.runFork(Scope.close(scope, Exit.void));
158
- }).pipe(Effect.zipRight(Effect.fail(makeNotConnectedError()))))));
159
- }
160
- readerEffect(socket, handshakeSettled) {
161
- return socket
162
- .runRaw((data) => this.handleIncoming(typeof data === "string" ? data : UTF8_DECODER.decode(data)))
163
- .pipe(Effect.onExit((exit) => this.handleReaderExit(exit, handshakeSettled)));
164
- }
165
- handleReaderExit(exit, handshakeSettled) {
166
- return Effect.gen(this, function* () {
167
- if (Exit.isFailure(exit)) {
168
- yield* Effect.logWarning("WebSocket error", exit.cause);
169
- }
170
- this._helloOk = null;
171
- yield* this.failAllPending(MSG_NOT_CONNECTED);
172
- yield* Deferred.fail(handshakeSettled, makeNotConnectedError()).pipe(Effect.ignore);
173
- yield* Ref.set(this.stateRef, Option.none());
174
- yield* this.notifyDisconnect(extractCloseInfo(exit));
175
- if (!this.closed)
176
- this.scheduleReconnect();
177
- });
178
- }
179
- publishConnectionState(state) {
180
- return Ref.set(this.stateRef, Option.some(state));
181
- }
182
- awaitConnectAuth(handshakeSettled) {
183
- const authEffect = this.sendRpc(Connect, {
184
- agentKey: this.options.agentKey,
185
- minProtocol: PROTOCOL_VERSION,
186
- maxProtocol: PROTOCOL_VERSION,
187
- });
188
- return Effect.raceFirst(authEffect, Deferred.await(handshakeSettled)).pipe(Effect.tap((value) => Effect.sync(() => {
189
- this._helloOk = value;
190
- })));
191
- }
192
- sendRpcEffect(definition, params, timeoutMs) {
193
- return Effect.gen(this, function* () {
194
- const state = yield* Ref.get(this.stateRef);
195
- if (Option.isNone(state)) {
196
- return yield* Effect.fail(makeNotConnectedError());
197
- }
198
- const call = state.value.agentConn.call;
199
- return yield* call(definition, params).pipe(Effect.timeoutFail({
200
- duration: `${timeoutMs} millis`,
201
- onTimeout: () => new RpcTimeoutError({ method: definition.name, timeoutMs }),
202
- }));
203
- });
204
- }
205
- recordMalformedFrame(err) {
206
- return Effect.gen(this, function* () {
207
- const count = yield* Ref.updateAndGet(this.malformedRef, (n) => n + 1);
208
- if (shouldLogMalformedFrame(count)) {
209
- yield* Effect.logWarning(`Malformed frame (#${count})`).pipe(Effect.annotateLogs({
210
- rawPreview: err.raw.slice(0, MALFORMED_FRAME_PREVIEW_CHARS),
211
- }));
212
- }
213
- return null;
214
- });
215
- }
216
- handleDecodedResponse(decoded) {
217
- return Effect.gen(this, function* () {
218
- const state = yield* Ref.get(this.stateRef);
219
- if (Option.isNone(state))
220
- return;
221
- yield* state.value.agentConn.resolve(decoded.frame).pipe(Effect.asVoid);
222
- });
223
- }
224
- // Agent clients receive no inbound RPC; if a malicious or stray
225
- // ServerRequest arrives, log + drop.
226
- handleDecodedServerRequest(decoded) {
227
- return Effect.logWarning("AgentClient received unexpected ServerRequest").pipe(Effect.annotateLogs({ method: decoded.frame.method }));
228
- }
229
- handleDecodedNotification(decoded) {
230
- return this.subscribers.dispatch(decoded);
231
- }
232
- handleDecodedFrame(decoded) {
233
- switch (decoded._tag) {
234
- case "ResponseSuccess":
235
- case "ResponseError":
236
- return this.handleDecodedResponse(decoded);
237
- case "ServerRequest":
238
- return this.handleDecodedServerRequest(decoded);
239
- case "Notification":
240
- return this.handleDecodedNotification(decoded);
241
- }
242
- }
243
- handleIncoming(raw) {
244
- return Effect.gen(this, function* () {
245
- const decodedFrames = yield* decodeFrames(raw).pipe(Effect.catchTag("MalformedFrameError", (err) => this.recordMalformedFrame(err)));
246
- if (decodedFrames === null)
247
- return;
248
- for (const decoded of decodedFrames) {
249
- yield* this.handleDecodedFrame(decoded);
250
- }
251
- });
252
- }
253
- failConnectionPending(state) {
254
- return state.agentConn.failAllPending(new NotConnectedError({ message: MSG_NOT_CONNECTED }));
255
- }
256
- failAllPending(message) {
257
- return Effect.gen(this, function* () {
258
- const state = yield* Ref.get(this.stateRef);
259
- if (Option.isNone(state))
260
- return;
261
- yield* state.value.agentConn.failAllPending(new NotConnectedError({ message }));
262
- });
263
- }
264
- scheduleReconnect() {
265
- if (this.closed || this.reconnectFiber !== null)
266
- return;
267
- const attempt = this.connectEffect().pipe(Effect.tap((helloOk) => Effect.gen(this, function* () {
268
- try {
269
- this.options.onReconnect?.(helloOk);
270
- }
271
- catch (err) {
272
- yield* Effect.logWarning("onReconnect handler threw", err);
273
- }
274
- })), Effect.either, Effect.flatMap(Either.match({
275
- onLeft: () => Effect.fail(new ReconnectAttemptFailedError({
276
- reason: "reconnect attempt failed",
277
- })),
278
- onRight: (value) => Effect.succeed(value),
279
- })));
280
- const backoff = Schedule.exponential(Duration.millis(BASE_RECONNECT_DELAY_MS), RECONNECT_BACKOFF_FACTOR).pipe(Schedule.either(Schedule.spaced(Duration.millis(MAX_RECONNECT_DELAY_MS))), Schedule.jittered);
281
- const loop = attempt.pipe(Effect.retry(backoff), Effect.asVoid, Effect.catchAll(() => Effect.void), Effect.ensuring(Effect.sync(() => {
282
- this.reconnectFiber = null;
283
- })), Effect.provide(NodeSocket.layerWebSocketConstructor));
284
- this.reconnectFiber = this.runtime.runFork(loop);
285
- }
286
- }
1
+ export { MoltZapAgentClient } from "@moltzap/protocol/socket";
287
2
  //# sourceMappingURL=agent-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { MoltZapAppClient } from "@moltzap/protocol/socket";
2
+ export type { AppCallbackContext, AppClientOptions, RpcCallOptions, } from "@moltzap/protocol/socket";
3
+ //# sourceMappingURL=app-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-client.d.ts","sourceRoot":"","sources":["../src/app-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACf,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MoltZapAppClient } from "@moltzap/protocol/socket";
2
+ //# sourceMappingURL=app-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-client.js","sourceRoot":"","sources":["../src/app-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/auth.d.ts CHANGED
@@ -1,23 +1,15 @@
1
1
  import { Effect } from "effect";
2
+ import { Register } from "@moltzap/protocol/identity";
3
+ import type { ResultOf } from "@moltzap/protocol/rpc";
2
4
  /**
3
5
  * HTTP response from the agent registration endpoints
4
- * (`/api/v1/auth/register` and `/api/v1/admin/register-agent`).
6
+ * (`/api/v1/auth/register`).
5
7
  */
6
- export interface RegisterResponse {
7
- agentId: string;
8
- apiKey: string;
9
- claimUrl: string;
10
- claimToken: string;
11
- }
8
+ export type RegisterResponse = ResultOf<typeof Register>;
12
9
  /** Options for {@link registerAgent}. */
13
10
  export interface RegisterAgentOptions {
14
11
  description?: string;
15
12
  inviteCode?: string;
16
- /**
17
- * When set, registers via the secret-gated admin endpoint and pre-claims
18
- * the agent for this user. See {@link registerAgent}.
19
- */
20
- ownerUserId?: string;
21
13
  }
22
14
  declare const RegisterAgentError_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 & {
23
15
  readonly _tag: "RegisterAgentError";
@@ -32,9 +24,8 @@ export declare class RegisterAgentError extends RegisterAgentError_base<{
32
24
  * endpoints — the WebSocket dance is `MoltZapAgentClient`'s job; this just
33
25
  * returns the credentials the caller feeds it as `agentKey` at construction.
34
26
  *
35
- * Routes to `/api/v1/admin/register-agent` when `ownerUserId` is provided
36
- * (admin path pre-claims the agent for the given owner); otherwise routes
37
- * to the public `/api/v1/auth/register` endpoint.
27
+ * Uses the public `/api/v1/auth/register` endpoint. Server boot policy owns
28
+ * the registered agent immediately and returns the credential once.
38
29
  */
39
30
  export declare const registerAgent: (baseUrl: string, name: string, opts?: RegisterAgentOptions) => Effect.Effect<RegisterResponse, RegisterAgentError>;
40
31
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAQ,MAAM,EAAU,MAAM,QAAQ,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;AAOD,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAOL;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,MAAM,MAAM,EACZ,OAAM,oBAAyB,KAC9B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAgBlD,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAQ,MAAM,EAAkB,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEzD,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;;AASD,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAOL;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,MAAM,MAAM,EACZ,OAAM,oBAAyB,KAC9B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAgBlD,CAAC"}
package/dist/auth.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import { HttpClient, HttpClientRequest, HttpClientResponse, } from "@effect/platform";
2
2
  import { NodeHttpClient } from "@effect/platform-node";
3
- import { Data, Effect, Either } from "effect";
3
+ import { Data, Effect, Either, Schema } from "effect";
4
+ import { Register } from "@moltzap/protocol/identity";
4
5
  const PUBLIC_PATH = "/api/v1/auth/register";
5
- const ADMIN_PATH = "/api/v1/admin/register-agent";
6
6
  const HTTP_SUCCESS_STATUS_MIN = 200;
7
7
  const HTTP_REDIRECT_STATUS_MIN = 300;
8
+ const decodeRegisterBody = Schema.decodeUnknown(Register.paramsSchema);
9
+ const encodeRegisterBody = Schema.encode(Register.paramsSchema);
10
+ const decodeRegisterResult = Schema.decodeUnknown(Register.resultSchema);
8
11
  export class RegisterAgentError extends Data.TaggedError("RegisterAgentError") {
9
12
  }
10
13
  const registerAgentError = (message, cause) => new RegisterAgentError({ message, cause });
@@ -13,9 +16,8 @@ const registerAgentError = (message, cause) => new RegisterAgentError({ message,
13
16
  * endpoints — the WebSocket dance is `MoltZapAgentClient`'s job; this just
14
17
  * returns the credentials the caller feeds it as `agentKey` at construction.
15
18
  *
16
- * Routes to `/api/v1/admin/register-agent` when `ownerUserId` is provided
17
- * (admin path pre-claims the agent for the given owner); otherwise routes
18
- * to the public `/api/v1/auth/register` endpoint.
19
+ * Uses the public `/api/v1/auth/register` endpoint. Server boot policy owns
20
+ * the registered agent immediately and returns the credential once.
19
21
  */
20
22
  export const registerAgent = (baseUrl, name, opts = {}) => registerAgentRequest(baseUrl, name, opts).pipe(Effect.provide(NodeHttpClient.layer), Effect.either, Effect.flatMap(Either.match({
21
23
  onLeft: (cause) => Effect.fail(cause instanceof RegisterAgentError
@@ -26,8 +28,8 @@ export const registerAgent = (baseUrl, name, opts = {}) => registerAgentRequest(
26
28
  function registerAgentRequest(baseUrl, name, opts) {
27
29
  return Effect.gen(function* () {
28
30
  const client = yield* HttpClient.HttpClient;
29
- const body = registerAgentBody(name, opts);
30
- const request = registerHttpRequest(baseUrl, registerPath(opts), body);
31
+ const body = yield* registerAgentBody(name, opts);
32
+ const request = registerHttpRequest(baseUrl, PUBLIC_PATH, body);
31
33
  const response = yield* client
32
34
  .execute(request)
33
35
  .pipe(Effect.mapError((cause) => registerAgentError("Register request failed", cause)));
@@ -37,19 +39,13 @@ function registerAgentRequest(baseUrl, name, opts) {
37
39
  });
38
40
  }
39
41
  function registerAgentBody(name, opts) {
40
- return {
42
+ return decodeRegisterBody({
41
43
  name,
42
44
  ...(opts?.description !== undefined
43
45
  ? { description: opts.description }
44
46
  : {}),
45
47
  ...(opts?.inviteCode !== undefined ? { inviteCode: opts.inviteCode } : {}),
46
- ...(opts?.ownerUserId !== undefined
47
- ? { ownerUserId: opts.ownerUserId }
48
- : {}),
49
- };
50
- }
51
- function registerPath(opts) {
52
- return opts?.ownerUserId ? ADMIN_PATH : PUBLIC_PATH;
48
+ }).pipe(Effect.flatMap(encodeRegisterBody), Effect.mapError((cause) => registerAgentError("Register request body decode failed", cause)));
53
49
  }
54
50
  function registerHttpRequest(baseUrl, path, body) {
55
51
  return HttpClientRequest.post(`${baseUrl}${path}`).pipe(HttpClientRequest.setHeader("Content-Type", "application/json"), HttpClientRequest.bodyUnsafeJson(body));
@@ -72,7 +68,7 @@ function decodeResponseText(response) {
72
68
  function decodeRegisterResponse(response) {
73
69
  return response.json.pipe(Effect.either, Effect.flatMap(Either.match({
74
70
  onLeft: (cause) => Effect.fail(registerAgentError("Register response decode failed", cause)),
75
- onRight: (value) => Effect.succeed(value),
71
+ onRight: (value) => decodeRegisterResult(value).pipe(Effect.mapError((cause) => registerAgentError("Register response decode failed", cause))),
76
72
  })));
77
73
  }
78
74
  //# sourceMappingURL=auth.js.map
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,9 @@
3
3
  * formatter parameterized by markup variant or per-channel formatter
4
4
  * callback.
5
5
  *
6
- * Replaces:
7
- * - `packages/openclaw-channel/src/format-cross-conv.ts → formatCrossConvOpenClaw`
8
- * (markup variant: `"json-header"`)
9
- * - `packages/nanoclaw-channel/src/channels/moltzap.ts → formatCrossConvNanoclaw`
10
- * (markup variant: `"xml-system-reminder"`)
11
- *
12
- * Behavioral parity is locked via the golden-snapshot fixtures captured
13
- * pre-refactor — see arch sub-issue #605 §3.5 and §4.6.
6
+ * Used by the openclaw channel (markup variant `"json-header"`) and the
7
+ * nanoclaw channel (markup variant `"xml-system-reminder"`). Behavioral
8
+ * parity across both is locked via golden-snapshot fixtures.
14
9
  */
15
10
  import { type CrossConvMessage } from "../service.js";
16
11
  export type { CrossConvMessage };
@@ -22,13 +17,13 @@ export type CrossConvFormatter = (messages: readonly CrossConvMessage[], opts: {
22
17
  * Returns the formatted block, or `null` when `messages` is empty.
23
18
  *
24
19
  * Markup variants:
25
- * - `"json-header"`: byte-identical to the pre-refactor openclaw output.
26
- * Header is `"Messages (untrusted metadata):"` followed by a ` ```json `
27
- * fenced JSON array.
28
- * - `"xml-system-reminder"`: byte-identical to the pre-refactor nanoclaw
29
- * output. `&lt;messages&gt;` wrapper around `&lt;message&gt;` entries with
30
- * `sender`/`conversation`/`time` attributes; sender/conv/time/text all
31
- * run through `sanitizeForSystemReminder`.
20
+ * - `"json-header"`: openclaw output. Header is
21
+ * `"Messages (untrusted metadata):"` followed by a ` ```json ` fenced
22
+ * JSON array.
23
+ * - `"xml-system-reminder"`: nanoclaw output. `&lt;messages&gt;` wrapper
24
+ * around `&lt;message&gt;` entries with `sender`/`conversation`/`time`
25
+ * attributes; sender/conv/time/text all run through
26
+ * `sanitizeForSystemReminder`.
32
27
  *
33
28
  * Or pass a custom `formatter` callback — channel-base owns the empty-check
34
29
  * + ownAgentId disambiguation; the callback owns the markup.
@@ -1 +1 @@
1
- {"version":3,"file":"format-cross-conv.d.ts","sourceRoot":"","sources":["../../src/channel-base/format-cross-conv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,qBAAqB,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,KAClC,MAAM,CAAC;AAmDZ;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,IAAI,EACA;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;CAAE,GAC1E,MAAM,GAAG,IAAI,CAWf"}
1
+ {"version":3,"file":"format-cross-conv.d.ts","sourceRoot":"","sources":["../../src/channel-base/format-cross-conv.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,qBAAqB,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,KAClC,MAAM,CAAC;AAmDZ;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,IAAI,EACA;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;CAAE,GAC1E,MAAM,GAAG,IAAI,CAWf"}
@@ -3,14 +3,9 @@
3
3
  * formatter parameterized by markup variant or per-channel formatter
4
4
  * callback.
5
5
  *
6
- * Replaces:
7
- * - `packages/openclaw-channel/src/format-cross-conv.ts → formatCrossConvOpenClaw`
8
- * (markup variant: `"json-header"`)
9
- * - `packages/nanoclaw-channel/src/channels/moltzap.ts → formatCrossConvNanoclaw`
10
- * (markup variant: `"xml-system-reminder"`)
11
- *
12
- * Behavioral parity is locked via the golden-snapshot fixtures captured
13
- * pre-refactor — see arch sub-issue #605 §3.5 and §4.6.
6
+ * Used by the openclaw channel (markup variant `"json-header"`) and the
7
+ * nanoclaw channel (markup variant `"xml-system-reminder"`). Behavioral
8
+ * parity across both is locked via golden-snapshot fixtures.
14
9
  */
15
10
  import { sanitizeForSystemReminder, } from "../service.js";
16
11
  const CROSS_CONV_HEADER_JSON = "Messages (untrusted metadata):";
@@ -42,13 +37,13 @@ function formatXmlSystemReminder(messages, opts) {
42
37
  * Returns the formatted block, or `null` when `messages` is empty.
43
38
  *
44
39
  * Markup variants:
45
- * - `"json-header"`: byte-identical to the pre-refactor openclaw output.
46
- * Header is `"Messages (untrusted metadata):"` followed by a ` ```json `
47
- * fenced JSON array.
48
- * - `"xml-system-reminder"`: byte-identical to the pre-refactor nanoclaw
49
- * output. `&lt;messages&gt;` wrapper around `&lt;message&gt;` entries with
50
- * `sender`/`conversation`/`time` attributes; sender/conv/time/text all
51
- * run through `sanitizeForSystemReminder`.
40
+ * - `"json-header"`: openclaw output. Header is
41
+ * `"Messages (untrusted metadata):"` followed by a ` ```json ` fenced
42
+ * JSON array.
43
+ * - `"xml-system-reminder"`: nanoclaw output. `&lt;messages&gt;` wrapper
44
+ * around `&lt;message&gt;` entries with `sender`/`conversation`/`time`
45
+ * attributes; sender/conv/time/text all run through
46
+ * `sanitizeForSystemReminder`.
52
47
  *
53
48
  * Or pass a custom `formatter` callback — channel-base owns the empty-check
54
49
  * + ownAgentId disambiguation; the callback owns the markup.