@moltzap/client 2026.529.0 → 2026.717.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 +39 -17
  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,232 +0,0 @@
1
- import { beforeEach, expect, it, vi } from "vitest";
2
- import { Effect } from "effect";
3
- import { ALICE_CACHED_NAME, ALICE_RESOLVED_NAME, CAPTION_TEXT, MULTILINE_TEXT, TestInboundHandlerError, agent, buildMessage, conversation, createChannelCoreFixture, customSetup, effectTest, flushDispatchChainEffect, forceResolveAgentNamePath, message, } from "./channel-core-test-support.js";
4
- let fake;
5
- let core;
6
- let inbound;
7
- beforeEach(() => {
8
- ({ fake, core, inbound } = createChannelCoreFixture());
9
- });
10
- function connectDelegatesToServiceAndSetsConnected() {
11
- return Effect.gen(function* () {
12
- expect(core.isConnected()).toBe(false);
13
- yield* core.connect();
14
- expect(fake.state.connectCalls.count).toBe(1);
15
- expect(core.isConnected()).toBe(true);
16
- });
17
- }
18
- effectTest("connect() delegates to service and sets connected", connectDelegatesToServiceAndSetsConnected);
19
- function disconnectClosesTheServiceAndClearsTheConnectedFlag() {
20
- return Effect.gen(function* () {
21
- yield* core.connect();
22
- yield* core.disconnect();
23
- expect(fake.state.closeCalls.count).toBe(1);
24
- expect(core.isConnected()).toBe(false);
25
- });
26
- }
27
- effectTest("disconnect() closes the service and clears the connected flag", disconnectClosesTheServiceAndClearsTheConnectedFlag);
28
- function disconnectEventFromTheServiceClearsTheConnectedFlag() {
29
- return Effect.gen(function* () {
30
- yield* core.connect();
31
- fake.emit.disconnect();
32
- expect(core.isConnected()).toBe(false);
33
- });
34
- }
35
- effectTest("disconnect event from the service clears the connected flag", disconnectEventFromTheServiceClearsTheConnectedFlag);
36
- it("reconnect event from the service sets the connected flag", () => {
37
- fake.emit.reconnect();
38
- expect(core.isConnected()).toBe(true);
39
- });
40
- function onDisconnectHandlersFireOnDisconnectEvent() {
41
- return Effect.gen(function* () {
42
- const spy = vi.fn();
43
- core.onDisconnect(spy);
44
- yield* core.connect();
45
- fake.emit.disconnect();
46
- expect(spy).toHaveBeenCalledOnce();
47
- });
48
- }
49
- effectTest("onDisconnect handlers fire on disconnect event", onDisconnectHandlersFireOnDisconnectEvent);
50
- it("onReconnect handlers fire on reconnect event", () => {
51
- const spy = vi.fn();
52
- core.onReconnect(spy);
53
- fake.emit.reconnect();
54
- expect(spy).toHaveBeenCalledOnce();
55
- });
56
- function mapsAMoltZapMessageToEnrichedInboundMessage() {
57
- return Effect.gen(function* () {
58
- fake.state.setConversation("conv-1", {
59
- type: "dm",
60
- name: "alice-dm",
61
- participants: ["agent:agent-alice", "agent:agent-self"],
62
- });
63
- fake.state.setAgentName("agent-alice", "Alice");
64
- fake.emit.message(buildMessage({
65
- id: "msg-abc",
66
- conversationId: "conv-1",
67
- senderId: "agent-alice",
68
- parts: [{ type: "text", text: "hi there" }],
69
- createdAt: "2026-04-10T13:00:00.000Z",
70
- }));
71
- yield* flushDispatchChainEffect;
72
- expect(inbound).toHaveLength(1);
73
- const enriched = inbound[0];
74
- expect(enriched).toMatchObject({
75
- id: message("msg-abc"),
76
- conversationId: conversation("conv-1"),
77
- sender: { id: agent("agent-alice"), name: "Alice" },
78
- text: "hi there",
79
- isFromMe: false,
80
- createdAt: "2026-04-10T13:00:00.000Z",
81
- });
82
- expect(enriched.conversationMeta).toMatchObject({
83
- type: "dm",
84
- name: "alice-dm",
85
- });
86
- });
87
- }
88
- effectTest("maps a MoltZap Message to EnrichedInboundMessage", mapsAMoltZapMessageToEnrichedInboundMessage);
89
- function resolvesSenderNameFromGetAgentNameCacheWhenPresent() {
90
- return Effect.gen(function* () {
91
- fake.state.setAgentName("agent-alice", ALICE_CACHED_NAME);
92
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
93
- fake.emit.message(buildMessage());
94
- yield* flushDispatchChainEffect;
95
- expect(inbound[0].sender.name).toBe(ALICE_CACHED_NAME);
96
- expect(fake.state.resolveAgentNameCallCount("agent-alice")).toBe(0);
97
- });
98
- }
99
- effectTest("resolves sender name from getAgentName cache when present", resolvesSenderNameFromGetAgentNameCacheWhenPresent);
100
- function fallsBackToResolveAgentNameWhenGetAgentNameReturnsUndefined() {
101
- return Effect.gen(function* () {
102
- const { fake, received } = customSetup();
103
- forceResolveAgentNamePath(fake);
104
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
105
- fake.state.setAgentName("agent-alice", ALICE_RESOLVED_NAME);
106
- fake.emit.message(buildMessage());
107
- yield* flushDispatchChainEffect;
108
- expect(received[0].sender.name).toBe(ALICE_RESOLVED_NAME);
109
- expect(fake.state.resolveAgentNameCallCount("agent-alice")).toBe(1);
110
- });
111
- }
112
- effectTest("falls back to resolveAgentName when getAgentName returns undefined", fallsBackToResolveAgentNameWhenGetAgentNameReturnsUndefined);
113
- function fallsBackToSenderIdWhenBothNameLookupsFail() {
114
- return Effect.gen(function* () {
115
- const { fake, received } = customSetup();
116
- forceResolveAgentNamePath(fake);
117
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
118
- fake.emit.message(buildMessage({ senderId: "agent-unknown" }));
119
- yield* flushDispatchChainEffect;
120
- expect(received[0].sender.name).toBe(agent("agent-unknown"));
121
- });
122
- }
123
- effectTest("falls back to sender.id when both name lookups fail", fallsBackToSenderIdWhenBothNameLookupsFail);
124
- function swallowsResolveAgentNameErrorsAndFallsBackToSenderId() {
125
- return Effect.gen(function* () {
126
- const { fake, received } = customSetup();
127
- forceResolveAgentNamePath(fake);
128
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
129
- fake.state.setResolveAgentNameFailure("agent-broken", new Error("network down"));
130
- fake.emit.message(buildMessage({ senderId: "agent-broken" }));
131
- yield* flushDispatchChainEffect;
132
- expect(received[0].sender.name).toBe(agent("agent-broken"));
133
- });
134
- }
135
- effectTest("swallows resolveAgentName errors and falls back to sender.id", swallowsResolveAgentNameErrorsAndFallsBackToSenderId);
136
- function concatenatesMultiTextPartMessagesWithNewlines() {
137
- return Effect.gen(function* () {
138
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
139
- fake.state.setAgentName("agent-alice", "Alice");
140
- fake.emit.message(buildMessage({
141
- parts: [
142
- { type: "text", text: "line one" },
143
- { type: "text", text: "line two" },
144
- ],
145
- }));
146
- yield* flushDispatchChainEffect;
147
- expect(inbound[0].text).toBe(MULTILINE_TEXT);
148
- });
149
- }
150
- effectTest("concatenates multi-text-part messages with newlines", concatenatesMultiTextPartMessagesWithNewlines);
151
- function ignoresNonTextPartsWhenBuildingText() {
152
- return Effect.gen(function* () {
153
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
154
- fake.state.setAgentName("agent-alice", "Alice");
155
- fake.emit.message(buildMessage({
156
- parts: [
157
- { type: "text", text: CAPTION_TEXT },
158
- { type: "image", url: "https://example.com/pic.png" },
159
- ],
160
- }));
161
- yield* flushDispatchChainEffect;
162
- expect(inbound[0].text).toBe(CAPTION_TEXT);
163
- });
164
- }
165
- effectTest("ignores non-text parts when building text", ignoresNonTextPartsWhenBuildingText);
166
- function setsIsFromMeTrueWhenSenderMatchesOwnAgentId() {
167
- return Effect.gen(function* () {
168
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
169
- fake.emit.message(buildMessage({ senderId: "agent-self" }));
170
- yield* flushDispatchChainEffect;
171
- expect(inbound[0].isFromMe).toBe(true);
172
- });
173
- }
174
- effectTest("sets isFromMe=true when sender matches ownAgentId", setsIsFromMeTrueWhenSenderMatchesOwnAgentId);
175
- function forwardsReplyToIdFromTheMessageFrame() {
176
- return Effect.gen(function* () {
177
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
178
- fake.state.setAgentName("agent-alice", "Alice");
179
- fake.emit.message(buildMessage({ replyToId: "msg-parent-123" }));
180
- yield* flushDispatchChainEffect;
181
- expect(inbound[0].replyToId).toBe(message("msg-parent-123"));
182
- });
183
- }
184
- effectTest("forwards replyToId from the message frame", forwardsReplyToIdFromTheMessageFrame);
185
- function logsFailuresFromTheInboundHandlerSEffectErrorChannelAndKeepsTheConsumerAlive() {
186
- return Effect.gen(function* () {
187
- const { fake, core } = customSetup();
188
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
189
- fake.state.setAgentName("agent-alice", "Alice");
190
- let handlerShouldFail = true;
191
- const received = [];
192
- // Replace the setup's default capture handler with one that can fail.
193
- core.onInbound((m) => Effect.gen(function* () {
194
- if (handlerShouldFail) {
195
- yield* Effect.fail(new TestInboundHandlerError({ message: "handler boom" }));
196
- }
197
- received.push(m);
198
- }));
199
- fake.emit.message(buildMessage({ id: "msg-1" }));
200
- yield* flushDispatchChainEffect;
201
- expect(received).toHaveLength(0);
202
- // Recovery: subsequent message lands cleanly.
203
- handlerShouldFail = false;
204
- fake.emit.message(buildMessage({ id: "msg-2" }));
205
- yield* flushDispatchChainEffect;
206
- expect(received).toHaveLength(1);
207
- expect(received[0].id).toBe(message("msg-2"));
208
- });
209
- }
210
- effectTest("logs failures from the inbound handler's Effect error channel and keeps the consumer alive", logsFailuresFromTheInboundHandlerSEffectErrorChannelAndKeepsTheConsumerAlive);
211
- function logsSynchronousDefectsThrownFromInsideTheHandlerSEffect() {
212
- return Effect.gen(function* () {
213
- const { fake, core } = customSetup();
214
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
215
- fake.state.setAgentName("agent-alice", "Alice");
216
- core.onInbound((_m) => Effect.sync(() => {
217
- throw new Error("sync defect");
218
- }));
219
- fake.emit.message(buildMessage({ id: "msg-1" }));
220
- yield* flushDispatchChainEffect;
221
- // Consumer fiber survives a defect and continues to dispatch later messages.
222
- const next = [];
223
- core.onInbound((m) => Effect.sync(() => {
224
- next.push(m);
225
- }));
226
- fake.emit.message(buildMessage({ id: "msg-2" }));
227
- yield* flushDispatchChainEffect;
228
- expect(next.map((r) => r.id)).toEqual([message("msg-2")]);
229
- });
230
- }
231
- effectTest("logs synchronous defects thrown from inside the handler's Effect", logsSynchronousDefectsThrownFromInsideTheHandlerSEffect);
232
- //# sourceMappingURL=channel-core.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-core.test.js","sourceRoot":"","sources":["../src/channel-core.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli-multi-agent.int.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-multi-agent.int.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/cli-multi-agent.int.test.ts"],"names":[],"mappings":""}
@@ -1,132 +0,0 @@
1
- import { FileSystem, Path } from "@effect/platform";
2
- import { NodeContext } from "@effect/platform-node";
3
- import { it as effectIt } from "@effect/vitest";
4
- import { Effect } from "effect";
5
- import { afterEach, beforeEach, describe, expect, vi } from "vitest";
6
- import { emitNoPersist, parseProfileName, writeProfile, } from "../profile.js";
7
- import { decideTransport, DIRECT_TRANSPORT_KIND, makeTransportLayer, resolveTransportInputs, Transport, } from "../transport.js";
8
- const it = effectIt.scoped;
9
- const CONFIG_FILE_NAME = "config.json";
10
- const ALICE_PROFILE_NAME = "alice";
11
- const MISSING_PROFILE_NAME = "missing-profile";
12
- const ALICE_KEY = "key-alice";
13
- const BOB_KEY = "key-bob";
14
- const SERVER_URL = "wss://multi-agent.example";
15
- const ALICE_AGENT = "alice-agent";
16
- const INVALID_CONFIG_TEXT = "{not valid json}";
17
- const MOLTZAP_DIR_NAME = ".moltzap";
18
- const OPENCLAW_DIR_NAME = ".openclaw";
19
- const withNodeContext = (effect) => effect.pipe(Effect.provide(NodeContext.layer));
20
- const profileRecord = (apiKey, agentName) => ({
21
- apiKey,
22
- agentName,
23
- serverUrl: SERVER_URL,
24
- });
25
- const makeConfigHome = Effect.gen(function* () {
26
- const fileSystem = yield* FileSystem.FileSystem;
27
- const configHome = yield* fileSystem.makeTempDirectoryScoped({
28
- prefix: "moltzap-cli-config-",
29
- });
30
- vi.stubEnv("MOLTZAP_CONFIG_HOME", configHome);
31
- return configHome;
32
- });
33
- const makeHome = Effect.gen(function* () {
34
- const fileSystem = yield* FileSystem.FileSystem;
35
- const home = yield* fileSystem.makeTempDirectoryScoped({
36
- prefix: "moltzap-cli-home-",
37
- });
38
- vi.stubEnv("HOME", home);
39
- return home;
40
- });
41
- function namedProfileResolvesToDirectTransport() {
42
- return withNodeContext(Effect.gen(function* () {
43
- yield* makeConfigHome;
44
- const name = yield* parseProfileName(ALICE_PROFILE_NAME);
45
- yield* writeProfile(name, profileRecord(ALICE_KEY, ALICE_AGENT));
46
- const options = yield* resolveTransportInputs({
47
- profileName: ALICE_PROFILE_NAME,
48
- });
49
- const decision = yield* decideTransport(options);
50
- expect(options.profileKey).toBe(ALICE_KEY);
51
- expect(options.serverUrl).toBe(SERVER_URL);
52
- expect(decision).toEqual({ _tag: "UseDirect", reason: "profile" });
53
- }));
54
- }
55
- function noPersistLeavesConfigTreesUntouched() {
56
- return withNodeContext(Effect.gen(function* () {
57
- const fileSystem = yield* FileSystem.FileSystem;
58
- const path = yield* Path.Path;
59
- const home = yield* makeHome;
60
- const moltzapDir = path.join(home, MOLTZAP_DIR_NAME);
61
- const openclawDir = path.join(home, OPENCLAW_DIR_NAME);
62
- yield* emitNoPersist(profileRecord(ALICE_KEY, ALICE_AGENT));
63
- expect(yield* fileSystem.exists(moltzapDir)).toBe(false);
64
- expect(yield* fileSystem.exists(openclawDir)).toBe(false);
65
- }));
66
- }
67
- function asFlagWinsOverProfileWithoutReadingConfig() {
68
- return withNodeContext(Effect.gen(function* () {
69
- const fileSystem = yield* FileSystem.FileSystem;
70
- const path = yield* Path.Path;
71
- const configHome = yield* makeConfigHome;
72
- yield* fileSystem.writeFileString(path.join(configHome, CONFIG_FILE_NAME), INVALID_CONFIG_TEXT);
73
- vi.stubEnv("MOLTZAP_SERVER_URL", SERVER_URL);
74
- const options = yield* resolveTransportInputs({
75
- impersonateKey: ALICE_KEY,
76
- profileName: MISSING_PROFILE_NAME,
77
- });
78
- const decision = yield* decideTransport(options);
79
- expect(options.impersonateKey).toBe(ALICE_KEY);
80
- expect(options.profileKey).toBeUndefined();
81
- expect(options.serverUrl).toBe(SERVER_URL);
82
- expect(decision).toEqual({ _tag: "UseDirect", reason: "as-flag" });
83
- }));
84
- }
85
- function concurrentAsResolutionsKeepDistinctCredentials() {
86
- return withNodeContext(Effect.gen(function* () {
87
- const [alice, bob] = yield* Effect.all([
88
- resolveTransportInputs({ impersonateKey: ALICE_KEY }),
89
- resolveTransportInputs({ impersonateKey: BOB_KEY }),
90
- ], { concurrency: 2 });
91
- expect(alice.impersonateKey).toBe(ALICE_KEY);
92
- expect(bob.impersonateKey).toBe(BOB_KEY);
93
- expect(alice.impersonateKey).not.toBe(bob.impersonateKey);
94
- }));
95
- }
96
- function asInvocationDoesNotConfigureDaemonProbe() {
97
- return withNodeContext(Effect.gen(function* () {
98
- const options = yield* resolveTransportInputs({
99
- impersonateKey: ALICE_KEY,
100
- });
101
- expect(options.socketPath).toBeUndefined();
102
- expect(options.probeDaemon).toBeUndefined();
103
- expect(yield* decideTransport(options)).toEqual({
104
- _tag: "UseDirect",
105
- reason: "as-flag",
106
- });
107
- }));
108
- }
109
- function resolvedAsLayerProvidesDirectTransport() {
110
- return withNodeContext(Effect.gen(function* () {
111
- const options = yield* resolveTransportInputs({
112
- impersonateKey: BOB_KEY,
113
- });
114
- const kind = yield* Transport.pipe(Effect.map((transport) => transport.kind), Effect.provide(makeTransportLayer(options)));
115
- expect(kind).toBe(DIRECT_TRANSPORT_KIND);
116
- }));
117
- }
118
- describe("multi-agent CLI roster (--as + --profile)", () => {
119
- beforeEach(() => {
120
- vi.unstubAllEnvs();
121
- });
122
- afterEach(() => {
123
- vi.unstubAllEnvs();
124
- });
125
- it("resolves an existing named profile to direct transport credentials", namedProfileResolvesToDirectTransport);
126
- it("--no-persist leaves both config trees untouched", noPersistLeavesConfigTreesUntouched);
127
- it("--as wins over --profile without reading malformed profile config", asFlagWinsOverProfileWithoutReadingConfig);
128
- it("two concurrent --as resolutions preserve distinct agent credentials", concurrentAsResolutionsKeepDistinctCredentials);
129
- it("--as invocation does not configure a singleton daemon probe", asInvocationDoesNotConfigureDaemonProbe);
130
- it("resolved --as transport layer provides the direct transport", resolvedAsLayerProvidesDirectTransport);
131
- });
132
- //# sourceMappingURL=cli-multi-agent.int.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-multi-agent.int.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/cli-multi-agent.int.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Command } from "@effect/cli";
2
- /**
3
- * `moltzap invite` — stub that directs users to the web dashboard. Invites
4
- * are human-only (agents cannot self-invite), so this just prints guidance.
5
- */
6
- export declare const inviteCommand: Command.Command<"invite", never, never, {}>;
7
- //# sourceMappingURL=invite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;GAGG;AACH,eAAO,MAAM,aAAa,6CAWzB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Command } from "@effect/cli";
2
- import { Effect } from "effect";
3
- /**
4
- * `moltzap invite` — stub that directs users to the web dashboard. Invites
5
- * are human-only (agents cannot self-invite), so this just prints guidance.
6
- */
7
- export const inviteCommand = Command.make("invite", {}, () => Effect.sync(() => {
8
- console.log("Invite management is available through the MoltZap web dashboard at https://moltzap.xyz.");
9
- console.log("Agents cannot create invites directly — ask your human owner to create one.");
10
- })).pipe(Command.withDescription("Invite management (human-only via web dashboard)"));
11
- //# sourceMappingURL=invite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../../src/cli/commands/invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CACT,0FAA0F,CAC3F,CAAC;IACF,OAAO,CAAC,GAAG,CACT,6EAA6E,CAC9E,CAAC;AACJ,CAAC,CAAC,CACH,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,kDAAkD,CAAC,CAC5E,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=messages.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/messages.test.ts"],"names":[],"mappings":""}
@@ -1,99 +0,0 @@
1
- /**
2
- * Unit tests for `moltzap messages list` handler. Spec test-coverage floor:
3
- * one success + one RPC-failure path.
4
- */
5
- import { Effect, Exit } from "effect";
6
- import { it as effectIt } from "@effect/vitest";
7
- import { afterEach, beforeEach, describe, expect, vi, } from "vitest";
8
- import { messagesListHandler } from "./messages.js";
9
- import { Transport } from "../transport.js";
10
- import { makeFakeTransport } from "./test-transport.js";
11
- import { MessagesList } from "@moltzap/protocol";
12
- import { conversationId as makeConversationId, taskId as makeTaskId, } from "@moltzap/protocol/testing";
13
- const it = effectIt.effect;
14
- const TASK_ID = makeTaskId("00000000-0000-4000-8000-00000000001a");
15
- const CONVERSATION_ID = makeConversationId("00000000-0000-4000-8000-00000000000c");
16
- const FIRST_MESSAGE_ID = "00000000-0000-4000-8000-00000000000a";
17
- const SECOND_MESSAGE_ID = "00000000-0000-4000-8000-00000000000b";
18
- const SENDER_A = "00000000-0000-4000-8000-0000000000a1";
19
- const SENDER_B = "00000000-0000-4000-8000-0000000000b1";
20
- const FIRST_CREATED_AT = "2026-04-24T00:00:00Z";
21
- const SECOND_CREATED_AT = "2026-04-24T00:00:01Z";
22
- const DEFAULT_LIMIT = 50;
23
- const messagesListSuccess = () => ({
24
- messages: [
25
- {
26
- id: FIRST_MESSAGE_ID,
27
- conversationId: CONVERSATION_ID,
28
- senderId: SENDER_A,
29
- createdAt: FIRST_CREATED_AT,
30
- parts: [{ type: "text", text: "hello" }],
31
- },
32
- {
33
- id: SECOND_MESSAGE_ID,
34
- conversationId: CONVERSATION_ID,
35
- senderId: SENDER_B,
36
- createdAt: SECOND_CREATED_AT,
37
- parts: [{ type: "text", text: "hi" }],
38
- },
39
- ],
40
- hasMore: false,
41
- });
42
- const emptyMessagesList = () => ({
43
- messages: [],
44
- hasMore: false,
45
- });
46
- function transportFailure() {
47
- return new Error("fail");
48
- }
49
- function runMessagesList(transport, limit) {
50
- return messagesListHandler({
51
- taskId: TASK_ID,
52
- conversationId: CONVERSATION_ID,
53
- ...(limit !== undefined ? { limit } : {}),
54
- }).pipe(Effect.provideService(Transport, transport));
55
- }
56
- describe("messages list", () => {
57
- let stdout;
58
- beforeEach(() => {
59
- stdout = vi.spyOn(console, "log").mockImplementation(() => { });
60
- });
61
- afterEach(() => stdout.mockRestore());
62
- it("calls messages/list with { conversationId, limit? } and emits one line per message", () => Effect.gen(function* () {
63
- // Fixture matches the `messages/list` result shape: every required
64
- // `MessageSchema` field is present (including `conversationId`).
65
- // `senderName` is the CLI display fallback the handler reads; it is
66
- // not part of `MessageSchema` itself (see WireMessage in messages.ts).
67
- const { calls, transport } = makeFakeTransport(messagesListSuccess);
68
- yield* runMessagesList(transport, DEFAULT_LIMIT);
69
- expect(calls[0]).toEqual({
70
- method: MessagesList.name,
71
- params: {
72
- taskId: TASK_ID,
73
- conversationId: CONVERSATION_ID,
74
- limit: DEFAULT_LIMIT,
75
- },
76
- });
77
- expect(stdout).toHaveBeenCalledTimes(2);
78
- // Regression #216: first column is `createdAt`, never `undefined`.
79
- // MessageSchema has no `seq` field; the previous output stringified
80
- // `m.seq` as the literal "undefined" in the leading column.
81
- const firstLine = String(stdout.mock.calls[0]?.[0] ?? "");
82
- expect(firstLine.startsWith("undefined\t")).toBe(false);
83
- expect(firstLine).toBe(`${FIRST_CREATED_AT}\t${SENDER_A}\thello`);
84
- }));
85
- it("omits limit when absent", () => Effect.gen(function* () {
86
- const { calls, transport } = makeFakeTransport(emptyMessagesList);
87
- yield* runMessagesList(transport);
88
- expect(calls[0]?.params).toEqual({
89
- taskId: TASK_ID,
90
- conversationId: CONVERSATION_ID,
91
- });
92
- }));
93
- it("surfaces TransportRpcError", () => Effect.gen(function* () {
94
- const { transport } = makeFakeTransport(transportFailure);
95
- const result = yield* Effect.exit(runMessagesList(transport));
96
- expect(Exit.isFailure(result)).toBe(true);
97
- }));
98
- });
99
- //# sourceMappingURL=messages.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.test.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,cAAc,IAAI,kBAAkB,EACpC,MAAM,IAAI,UAAU,GACrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,sCAAsC,CAAC,CAAC;AACnE,MAAM,eAAe,GAAG,kBAAkB,CACxC,sCAAsC,CACvC,CAAC;AACF,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AAChE,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AACjE,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AACxD,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AACxD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AACjD,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,gBAAgB;YACpB,cAAc,EAAE,eAAe;YAC/B,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SAClD;QACD;YACE,EAAE,EAAE,iBAAiB;YACrB,cAAc,EAAE,eAAe;YAC/B,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,iBAAiB;YAC5B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC/C;KACF;IACD,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEH,SAAS,gBAAgB;IACvB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CACtB,SAA4D,EAC5D,KAAc;IAEd,OAAO,mBAAmB,CAAC;QACzB,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,eAAe;QAC/B,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,MAAoB,CAAC;IACzB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtC,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE,CAC5F,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,mEAAmE;QACnE,iEAAiE;QACjE,oEAAoE;QACpE,uEAAuE;QACvE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACpE,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,YAAY,CAAC,IAAI;YACzB,MAAM,EAAE;gBACN,MAAM,EAAE,OAAO;gBACf,cAAc,EAAE,eAAe;gBAC/B,KAAK,EAAE,aAAa;aACrB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,mEAAmE;QACnE,oEAAoE;QACpE,4DAA4D;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,KAAK,QAAQ,SAAS,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE,CACjC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAClE,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,OAAO;YACf,cAAc,EAAE,eAAe;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { Command } from "@effect/cli";
2
- /**
3
- * `moltzap ping` — hit /health on the configured server URL. Exit 0 on
4
- * 2xx, 1 otherwise (message to stderr via the caught Error surface).
5
- */
6
- export declare const pingCommand: Command.Command<"ping", never, never, {}>;
7
- //# sourceMappingURL=ping.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA4CtC;;;GAGG;AACH,eAAO,MAAM,WAAW,2CAcmD,CAAC"}
@@ -1,37 +0,0 @@
1
- import { Command } from "@effect/cli";
2
- import { HttpClient, HttpClientRequest } from "@effect/platform";
3
- import { NodeHttpClient } from "@effect/platform-node";
4
- import { Data, Effect } from "effect";
5
- import { getHttpUrl } from "../config.js";
6
- class PingError extends Data.TaggedError("PingError") {
7
- }
8
- const HTTP_SUCCESS_MIN = 200;
9
- const HTTP_REDIRECT_MIN = 300;
10
- const toPingError = (cause) => cause instanceof PingError
11
- ? cause
12
- : new PingError({
13
- message: cause instanceof Error ? cause.message : String(cause),
14
- cause,
15
- });
16
- const pingEffect = Effect.gen(function* () {
17
- const baseUrl = yield* getHttpUrl;
18
- const client = yield* HttpClient.HttpClient;
19
- const response = yield* client.execute(HttpClientRequest.get(`${baseUrl}/health`));
20
- if (response.status < HTTP_SUCCESS_MIN ||
21
- response.status >= HTTP_REDIRECT_MIN) {
22
- return yield* Effect.fail(new PingError({
23
- message: `Server unreachable: HTTP ${response.status}`,
24
- }));
25
- }
26
- }).pipe(Effect.timeout("5 seconds"), Effect.provide(NodeHttpClient.layer), Effect.mapError(toPingError));
27
- /**
28
- * `moltzap ping` — hit /health on the configured server URL. Exit 0 on
29
- * 2xx, 1 otherwise (message to stderr via the caught Error surface).
30
- */
31
- export const pingCommand = Command.make("ping", {}, () => pingEffect.pipe(Effect.tap(() => Effect.sync(() => {
32
- console.log("Server reachable");
33
- })), Effect.catchAll((err) => Effect.sync(() => {
34
- console.error(`Server unreachable: ${err.message}`);
35
- process.exit(1);
36
- })))).pipe(Command.withDescription("Check if the MoltZap server is reachable"));
37
- //# sourceMappingURL=ping.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/cli/commands/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAGlD;CAAG;AAEL,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,KAAc,EAAa,EAAE,CAChD,KAAK,YAAY,SAAS;IACxB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAI,SAAS,CAAC;QACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACN,CAAC,CAAC;AAET,MAAM,UAAU,GAAmC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACpC,iBAAiB,CAAC,GAAG,CAAC,GAAG,OAAO,SAAS,CAAC,CAC3C,CAAC;IACF,IACE,QAAQ,CAAC,MAAM,GAAG,gBAAgB;QAClC,QAAQ,CAAC,MAAM,IAAI,iBAAiB,EACpC,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,SAAS,CAAC;YACZ,OAAO,EAAE,4BAA4B,QAAQ,CAAC,MAAM,EAAE;SACvD,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CACvD,UAAU,CAAC,IAAI,CACb,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,0CAA0C,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=register.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/register.test.ts"],"names":[],"mappings":""}