@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,557 +0,0 @@
1
- import { beforeEach, expect, it, vi } from "vitest";
2
- import { Effect } from "effect";
3
- import { AFTER_MARKER_TEXT, DENIED_LEASE_ID, FIRST_TEXT, MARKER_LEASE_ID, OLD_DISCUSSION_TEXT, SECOND_TEXT, STUCK_MESSAGE_LEASE_TIMEOUT_MS, TIME_TO_VOTE_TEXT, agent, buildMessage, conversation, createChannelCoreFixture, createFakeChannelService, customSetup, effectTest, flushDispatchChainEffect, forceResolveAgentNamePath, installAdmission, message, testLeaseId, MoltZapChannelCore, RpcServerError, } from "./channel-core-test-support.js";
4
- let fake;
5
- let core;
6
- beforeEach(() => {
7
- ({ fake, core } = createChannelCoreFixture());
8
- });
9
- const pendingMessageId = (entry) => entry.messageId;
10
- const receivedMessageId = (entry) => entry.id;
11
- const createResumeSlot = () => ({ resume: () => undefined });
12
- const waitForResumeSlot = (slot) => Effect.async((resume) => {
13
- slot.resume = () => resume(Effect.void);
14
- });
15
- const queuedResolveAgentName = (resolvers) => (id) => Effect.async((resume) => {
16
- resolvers.push(() => resume(Effect.succeed(id)));
17
- });
18
- const waitForHandlerBarrier = (handlerBarriers) => Effect.async((resume) => {
19
- handlerBarriers.push(() => resume(Effect.void));
20
- });
21
- function setGroupConversation(fake, conversationId) {
22
- fake.state.setConversation(conversationId, {
23
- type: "group",
24
- participants: [],
25
- });
26
- }
27
- function setAgentNames(fake, names) {
28
- for (const [id, name] of names) {
29
- fake.state.setAgentName(id, name);
30
- }
31
- }
32
- function emitTextMessage(fake, spec) {
33
- fake.emit.message(buildMessage({
34
- id: spec.id,
35
- senderId: spec.senderId,
36
- conversationId: spec.conversationId,
37
- parts: [{ type: "text", text: spec.text }],
38
- }));
39
- }
40
- function emitConv1TextMessage(fake, id, senderId, text) {
41
- emitTextMessage(fake, {
42
- id,
43
- senderId,
44
- conversationId: "conv-1",
45
- text,
46
- });
47
- }
48
- function recordReceivedMessage(received, inbound) {
49
- return Effect.sync(() => {
50
- received.push(inbound);
51
- });
52
- }
53
- function recordReceivedMessageId(received, inbound) {
54
- return Effect.sync(() => {
55
- received.push(inbound.id);
56
- });
57
- }
58
- function installReceivedRecorder(core, received) {
59
- core.onInbound((inbound) => recordReceivedMessage(received, inbound));
60
- }
61
- function installNonStuckMessageIdRecorder(core, received) {
62
- core.onInbound((inbound) => inbound.id === message("msg-stuck")
63
- ? Effect.never
64
- : recordReceivedMessageId(received, inbound));
65
- }
66
- function expectSingleCoalescedMessage(received, expected) {
67
- expect(received).toHaveLength(1);
68
- const first = received[0];
69
- expect(first.id).toBe(message(expected.id));
70
- for (const text of expected.includes) {
71
- expect(first.text).toContain(text);
72
- }
73
- for (const text of expected.excludes ?? []) {
74
- expect(first.text).not.toContain(text);
75
- }
76
- expect(first.coalescedMessages?.map(receivedMessageId)).toEqual(expected.coalescedIds.map(message));
77
- if (expected.dispatchLeaseId !== undefined) {
78
- expect(first.dispatchLeaseId).toBe(expected.dispatchLeaseId);
79
- }
80
- }
81
- function installHoldThenGrantAdmission(fake, pendingSnapshots) {
82
- let calls = 0;
83
- installAdmission(fake, (request) => Effect.sync(() => {
84
- calls += 1;
85
- pendingSnapshots.push(request.pending.map(pendingMessageId));
86
- return calls === 1
87
- ? { _tag: "hold", reason: "not_yet" }
88
- : { _tag: "grant", leaseId: testLeaseId("lease-after-hold") };
89
- }));
90
- return () => calls;
91
- }
92
- function expectHeldDispatchRefresh(received, pendingSnapshots) {
93
- expect(pendingSnapshots).toEqual([
94
- [message("msg-1")],
95
- [message("msg-1"), message("msg-2")],
96
- ]);
97
- expectSingleCoalescedMessage(received, {
98
- id: "msg-1",
99
- includes: [FIRST_TEXT, SECOND_TEXT],
100
- coalescedIds: ["msg-1", "msg-2"],
101
- });
102
- }
103
- function installCrossConversationAdmission(fake, requests) {
104
- installAdmission(fake, (request) => Effect.sync(() => {
105
- requests.push({
106
- messageId: request.message.id,
107
- conversationId: request.conversationId,
108
- pending: request.pending.map(pendingMessageId),
109
- });
110
- if (request.conversationId === conversation("town-square")) {
111
- return { _tag: "hold", reason: "town_square_night" };
112
- }
113
- return { _tag: "grant", leaseId: DENIED_LEASE_ID };
114
- }));
115
- }
116
- function expectCrossConversationAdmissionRequests(requests) {
117
- expect(requests).toEqual([
118
- {
119
- messageId: message("town-night-narration"),
120
- conversationId: conversation("town-square"),
121
- pending: [message("town-night-narration")],
122
- },
123
- {
124
- messageId: message("den-kill-prompt"),
125
- conversationId: conversation("werewolf-den"),
126
- pending: [message("den-kill-prompt"), message("town-night-narration")],
127
- },
128
- ]);
129
- }
130
- function installDelayedGrantAdmission(fake, pendingSnapshots, grant) {
131
- installAdmission(fake, (request) => Effect.gen(function* () {
132
- pendingSnapshots.push(request.pending);
133
- yield* waitForResumeSlot(grant);
134
- return { _tag: "grant", leaseId: testLeaseId("lease-next") };
135
- }));
136
- }
137
- function installDelayedMarkerAdmission(fake, grant) {
138
- installAdmission(fake, () => Effect.gen(function* () {
139
- yield* waitForResumeSlot(grant);
140
- return {
141
- _tag: "grant",
142
- leaseId: MARKER_LEASE_ID,
143
- dispatchMessageId: message("msg-marker"),
144
- };
145
- }));
146
- }
147
- function expectOnePendingSnapshot(pendingSnapshots) {
148
- expect(pendingSnapshots.map((snapshot) => snapshot.map(pendingMessageId))).toEqual([[message("msg-1")]]);
149
- }
150
- function asksOptionalDispatchAdmissionBeforeDeliveringInboundWork() {
151
- return Effect.gen(function* () {
152
- const { fake, received } = customSetup();
153
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
154
- fake.state.setAgentName("agent-alice", "Alice");
155
- const requests = [];
156
- installAdmission(fake, (request) => Effect.sync(() => {
157
- requests.push({
158
- messageId: request.message.id,
159
- attempt: request.attempt,
160
- });
161
- return { _tag: "grant", leaseId: testLeaseId("lease-1") };
162
- }));
163
- fake.emit.message(buildMessage({ id: "msg-1" }));
164
- yield* flushDispatchChainEffect;
165
- expect(requests).toEqual([{ messageId: message("msg-1"), attempt: 0 }]);
166
- expect(received.map((m) => m.id)).toEqual([message("msg-1")]);
167
- });
168
- }
169
- effectTest("asks optional dispatch admission before delivering inbound work", asksOptionalDispatchAdmissionBeforeDeliveringInboundWork);
170
- function reportsAPerConversationObservedLogicalClockToAdmission() {
171
- return Effect.gen(function* () {
172
- const { fake } = customSetup();
173
- const clocks = [];
174
- installAdmission(fake, (request) => Effect.sync(() => {
175
- clocks.push(request.clock);
176
- expect(request.pending[0]?.clock).toEqual(request.clock);
177
- return { _tag: "grant" };
178
- }));
179
- fake.emit.message(buildMessage({
180
- id: "msg-1",
181
- senderId: "agent-alice",
182
- conversationId: "conv-1",
183
- }));
184
- yield* flushDispatchChainEffect;
185
- fake.emit.message(buildMessage({
186
- id: "msg-2",
187
- senderId: "agent-bob",
188
- conversationId: "conv-1",
189
- }));
190
- yield* flushDispatchChainEffect;
191
- expect(clocks).toEqual([
192
- {
193
- domainId: conversation("conv-1"),
194
- epoch: 1,
195
- vector: { [agent("agent-alice")]: 1 },
196
- },
197
- {
198
- domainId: conversation("conv-1"),
199
- epoch: 2,
200
- vector: { [agent("agent-alice")]: 1, [agent("agent-bob")]: 1 },
201
- },
202
- ]);
203
- });
204
- }
205
- effectTest("reports a per-conversation observed logical clock to admission", reportsAPerConversationObservedLogicalClockToAdmission);
206
- function attachesTheActiveDispatchLeaseToRepliesMadeDuringHandlerExecution() {
207
- return Effect.gen(function* () {
208
- const fake = createFakeChannelService({ ownAgentId: "agent-self" });
209
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
210
- fake.state.setAgentName("agent-alice", "Alice");
211
- installAdmission(fake, () => Effect.succeed({
212
- _tag: "grant",
213
- leaseId: testLeaseId("lease-active"),
214
- }));
215
- const core = new MoltZapChannelCore({ service: fake.service });
216
- core.onInbound((msg) => core.sendReply(msg.taskId, msg.conversationId, "reply"));
217
- fake.emit.message(buildMessage({ id: "msg-with-lease" }));
218
- yield* flushDispatchChainEffect;
219
- expect(fake.state.sent).toEqual([
220
- {
221
- taskId: expect.any(String),
222
- convId: conversation("conv-1"),
223
- text: "reply",
224
- dispatchLeaseId: testLeaseId("lease-active"),
225
- },
226
- ]);
227
- });
228
- }
229
- effectTest("attaches the active dispatch lease to replies made during handler execution", attachesTheActiveDispatchLeaseToRepliesMadeDuringHandlerExecution);
230
- function passesTheActiveDispatchLeaseToTheInboundHandlerForAsyncRuntimes() {
231
- return Effect.gen(function* () {
232
- const fake = createFakeChannelService({ ownAgentId: "agent-self" });
233
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
234
- fake.state.setAgentName("agent-alice", "Alice");
235
- installAdmission(fake, () => Effect.succeed({
236
- _tag: "grant",
237
- leaseId: testLeaseId("lease-visible"),
238
- }));
239
- const core = new MoltZapChannelCore({ service: fake.service });
240
- const leases = [];
241
- core.onInbound((msg) => Effect.sync(() => {
242
- leases.push(msg.dispatchLeaseId);
243
- }));
244
- fake.emit.message(buildMessage({ id: "msg-with-visible-lease" }));
245
- yield* flushDispatchChainEffect;
246
- expect(leases).toEqual([testLeaseId("lease-visible")]);
247
- });
248
- }
249
- effectTest("passes the active dispatch lease to the inbound handler for async runtimes", passesTheActiveDispatchLeaseToTheInboundHandlerForAsyncRuntimes);
250
- function preservesServiceBindingForDispatchAdmissionMethods() {
251
- return Effect.gen(function* () {
252
- const { fake, received } = customSetup();
253
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
254
- fake.state.setAgentName("agent-alice", "Alice");
255
- // Counter lives on the service object so the test asserts the
256
- // channel-core admission call site invokes `requestDispatch` with
257
- // the service as `this` (a `.bind(undefined)` would crash).
258
- const boundService = fake.service;
259
- boundService.admissionCalls = 0;
260
- // Replace the install-helper-installed `requestDispatch` with a
261
- // method-form binding that increments via `this.admissionCalls`.
262
- // Channel-core MUST call `service.requestDispatch(...)` (not
263
- // `requestDispatch.call(undefined, ...)`); a missing receiver
264
- // makes `this.admissionCalls += 1` throw on null `this`.
265
- installAdmission(fake, () => Effect.succeed({ _tag: "grant" }));
266
- const installed = fake.service.requestDispatch;
267
- fake.service.requestDispatch = function (request) {
268
- this.admissionCalls += 1;
269
- return installed(request);
270
- };
271
- fake.emit.message(buildMessage({ id: "msg-bound-admission" }));
272
- yield* flushDispatchChainEffect;
273
- expect(boundService.admissionCalls).toBe(1);
274
- expect(received.map((m) => m.id)).toEqual([message("msg-bound-admission")]);
275
- });
276
- }
277
- effectTest("preserves service binding for dispatch admission methods", preservesServiceBindingForDispatchAdmissionMethods);
278
- function dropsDeniedInboundDispatchWorkWithoutCallingTheHandler() {
279
- return Effect.gen(function* () {
280
- const { fake, received } = customSetup();
281
- installAdmission(fake, () => Effect.succeed({
282
- _tag: "deny",
283
- reason: "not this slot",
284
- }));
285
- fake.emit.message(buildMessage({ id: "msg-denied" }));
286
- yield* flushDispatchChainEffect;
287
- expect(received).toHaveLength(0);
288
- });
289
- }
290
- effectTest("drops denied inbound dispatch work without calling the handler", dropsDeniedInboundDispatchWorkWithoutCallingTheHandler);
291
- function holdsHeadOfLineWorkUntilANewInboundMessageRefreshesTheSnapshot() {
292
- return Effect.gen(function* () {
293
- const { fake, received } = customSetup();
294
- setGroupConversation(fake, "conv-1");
295
- setAgentNames(fake, [
296
- ["agent-alice", "Alice"],
297
- ["agent-bob", "Bob"],
298
- ]);
299
- const pendingSnapshots = [];
300
- const admissionCalls = installHoldThenGrantAdmission(fake, pendingSnapshots);
301
- emitConv1TextMessage(fake, "msg-1", "agent-alice", FIRST_TEXT);
302
- yield* flushDispatchChainEffect;
303
- expect(admissionCalls()).toBe(1);
304
- expect(received).toHaveLength(0);
305
- emitConv1TextMessage(fake, "msg-2", "agent-bob", SECOND_TEXT);
306
- yield* flushDispatchChainEffect;
307
- expectHeldDispatchRefresh(received, pendingSnapshots);
308
- });
309
- }
310
- effectTest("holds head-of-line work until a new inbound message refreshes the snapshot", holdsHeadOfLineWorkUntilANewInboundMessageRefreshesTheSnapshot);
311
- function doesNotLetHeldWorkInOneConversationBlockAnotherConversation() {
312
- return Effect.gen(function* () {
313
- const { fake, received } = customSetup();
314
- setGroupConversation(fake, "town-square");
315
- setGroupConversation(fake, "werewolf-den");
316
- fake.state.setAgentName("agent-gm", "GM");
317
- const requests = [];
318
- installCrossConversationAdmission(fake, requests);
319
- emitTextMessage(fake, {
320
- id: "town-night-narration",
321
- senderId: "agent-gm",
322
- conversationId: "town-square",
323
- text: "Night falls.",
324
- });
325
- yield* flushDispatchChainEffect;
326
- emitTextMessage(fake, {
327
- id: "den-kill-prompt",
328
- senderId: "agent-gm",
329
- conversationId: "werewolf-den",
330
- text: "Werewolves, choose a target.",
331
- });
332
- yield* flushDispatchChainEffect;
333
- expectCrossConversationAdmissionRequests(requests);
334
- expect(received.map((m) => m.id)).toEqual([message("den-kill-prompt")]);
335
- expect(received[0].conversationId).toBe(conversation("werewolf-den"));
336
- expect(received[0].dispatchLeaseId).toBe(DENIED_LEASE_ID);
337
- });
338
- }
339
- effectTest("does not let held work in one conversation block another conversation", doesNotLetHeldWorkInOneConversationBlockAnotherConversation);
340
- function purgesHeldAndQueuedDispatchWorkWhenAConversationIsArchived() {
341
- return Effect.gen(function* () {
342
- const { fake, received } = customSetup();
343
- fake.state.setConversation("conv-1", {
344
- type: "group",
345
- participants: [],
346
- });
347
- fake.state.setAgentName("agent-alice", "Alice");
348
- let calls = 0;
349
- installAdmission(fake, () => Effect.sync(() => {
350
- calls += 1;
351
- return { _tag: "hold", reason: "waiting" };
352
- }));
353
- fake.emit.message(buildMessage({ id: "msg-held" }));
354
- yield* flushDispatchChainEffect;
355
- fake.emit.conversationArchived({ conversationId: "conv-1" });
356
- fake.emit.message(buildMessage({ id: "msg-after-archive" }));
357
- yield* flushDispatchChainEffect;
358
- expect(calls).toBe(1);
359
- expect(received).toHaveLength(0);
360
- });
361
- }
362
- effectTest("purges held and queued dispatch work when a conversation is archived", purgesHeldAndQueuedDispatchWorkWhenAConversationIsArchived);
363
- function keepsBlockedAuthorizationHeadOfLineAndCoalescesSameConversationBacklogOnGrant() {
364
- return Effect.gen(function* () {
365
- const { fake, received } = customSetup();
366
- setGroupConversation(fake, "conv-1");
367
- setAgentNames(fake, [
368
- ["agent-alice", "Alice"],
369
- ["agent-bob", "Bob"],
370
- ]);
371
- const pendingSnapshots = [];
372
- const grant = createResumeSlot();
373
- installDelayedGrantAdmission(fake, pendingSnapshots, grant);
374
- emitConv1TextMessage(fake, "msg-1", "agent-alice", FIRST_TEXT);
375
- yield* flushDispatchChainEffect;
376
- expect(received).toHaveLength(0);
377
- emitConv1TextMessage(fake, "msg-2", "agent-bob", SECOND_TEXT);
378
- grant.resume();
379
- yield* flushDispatchChainEffect;
380
- expectOnePendingSnapshot(pendingSnapshots);
381
- expectSingleCoalescedMessage(received, {
382
- id: "msg-1",
383
- includes: [FIRST_TEXT, SECOND_TEXT],
384
- coalescedIds: ["msg-1", "msg-2"],
385
- });
386
- });
387
- }
388
- effectTest("keeps blocked authorization head-of-line and coalesces same-conversation backlog on grant", keepsBlockedAuthorizationHeadOfLineAndCoalescesSameConversationBacklogOnGrant);
389
- function dispatchesAnAdmittedPendingMarkerAndDropsOlderSameConversationWork() {
390
- return Effect.gen(function* () {
391
- const { fake, received } = customSetup();
392
- setGroupConversation(fake, "conv-1");
393
- setAgentNames(fake, [
394
- ["agent-alice", "Alice"],
395
- ["agent-gm", "GM"],
396
- ]);
397
- const grant = createResumeSlot();
398
- installDelayedMarkerAdmission(fake, grant);
399
- emitConv1TextMessage(fake, "msg-old", "agent-alice", OLD_DISCUSSION_TEXT);
400
- yield* flushDispatchChainEffect;
401
- emitConv1TextMessage(fake, "msg-marker", "agent-gm", TIME_TO_VOTE_TEXT);
402
- emitConv1TextMessage(fake, "msg-after", "agent-alice", AFTER_MARKER_TEXT);
403
- grant.resume();
404
- yield* flushDispatchChainEffect;
405
- expectSingleCoalescedMessage(received, {
406
- id: "msg-marker",
407
- includes: [TIME_TO_VOTE_TEXT, AFTER_MARKER_TEXT],
408
- excludes: [OLD_DISCUSSION_TEXT],
409
- coalescedIds: ["msg-marker", "msg-after"],
410
- dispatchLeaseId: MARKER_LEASE_ID,
411
- });
412
- });
413
- }
414
- effectTest("dispatches an admitted pending marker and drops older same-conversation work", dispatchesAnAdmittedPendingMarkerAndDropsOlderSameConversationWork);
415
- function failsClosedWhenDispatchAdmissionErrors() {
416
- return Effect.gen(function* () {
417
- const fake = createFakeChannelService({ ownAgentId: "agent-self" });
418
- const received = [];
419
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
420
- fake.state.setAgentName("agent-alice", "Alice");
421
- const core = new MoltZapChannelCore({
422
- service: fake.service,
423
- });
424
- installReceivedRecorder(core, received);
425
- installAdmission(fake, () => Effect.fail(new RpcServerError({
426
- code: -32603,
427
- message: "admission service unavailable",
428
- })));
429
- fake.emit.message(buildMessage({ id: "msg-fail-closed" }));
430
- yield* flushDispatchChainEffect;
431
- expect(received).toHaveLength(0);
432
- });
433
- }
434
- effectTest("fails closed when dispatch admission errors", failsClosedWhenDispatchAdmissionErrors);
435
- it("fails closed when dispatch admission hangs", () => Effect.runPromise(Effect.gen(function* () {
436
- const fake = createFakeChannelService({ ownAgentId: "agent-self" });
437
- const received = [];
438
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
439
- fake.state.setAgentName("agent-alice", "Alice");
440
- const core = new MoltZapChannelCore({
441
- service: fake.service,
442
- dispatchAdmissionTimeoutMs: 1,
443
- });
444
- installReceivedRecorder(core, received);
445
- installAdmission(fake, () => Effect.never);
446
- fake.emit.message(buildMessage({ id: "msg-timeout-closed" }));
447
- yield* Effect.sleep(10);
448
- yield* flushDispatchChainEffect;
449
- expect(received).toHaveLength(0);
450
- })));
451
- it("continues draining inbound work after a dispatch lease expires", () => Effect.runPromise(Effect.gen(function* () {
452
- const fake = createFakeChannelService({ ownAgentId: "agent-self" });
453
- const received = [];
454
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
455
- fake.state.setAgentName("agent-alice", "Alice");
456
- installAdmission(fake, (request) => Effect.succeed({
457
- _tag: "grant",
458
- leaseId: testLeaseId(`lease-${request.message.id}`),
459
- leaseTimeoutMs: request.message.id === message("msg-stuck")
460
- ? 1
461
- : STUCK_MESSAGE_LEASE_TIMEOUT_MS,
462
- }));
463
- const core = new MoltZapChannelCore({
464
- service: fake.service,
465
- });
466
- installNonStuckMessageIdRecorder(core, received);
467
- fake.emit.message(buildMessage({ id: "msg-stuck" }));
468
- yield* flushDispatchChainEffect;
469
- fake.emit.message(buildMessage({ id: "msg-next" }));
470
- yield* Effect.sleep(10);
471
- yield* flushDispatchChainEffect;
472
- expect(received).toEqual([message("msg-next")]);
473
- })));
474
- function serializesHandlersSoMessageOrderIsPreservedAcrossAsyncResolution() {
475
- return Effect.gen(function* () {
476
- const { fake, received } = customSetup();
477
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
478
- forceResolveAgentNamePath(fake);
479
- // Hold the resolveAgentName promises so we can control timing. The
480
- // fake returns an async-style Effect that resumes once the test calls
481
- // the recorded resolver — this mirrors the pre-Effect Promise flow.
482
- const resolvers = [];
483
- fake.service.resolveAgentName = queuedResolveAgentName(resolvers);
484
- fake.emit.message(buildMessage({ id: "msg-1" }));
485
- fake.emit.message(buildMessage({ id: "msg-2" }));
486
- // Neither has been delivered to the handler yet — first message is
487
- // still awaiting resolveAgentName; second is queued behind it.
488
- yield* flushDispatchChainEffect;
489
- expect(received).toHaveLength(0);
490
- expect(resolvers).toHaveLength(1);
491
- // Resolve the first, chain advances.
492
- resolvers[0]("agent-alice");
493
- yield* flushDispatchChainEffect;
494
- expect(received.map((r) => r.id)).toEqual([message("msg-1")]);
495
- expect(resolvers).toHaveLength(2);
496
- // Resolve the second.
497
- resolvers[1]("agent-bob");
498
- yield* flushDispatchChainEffect;
499
- expect(received.map((r) => r.id)).toEqual([
500
- message("msg-1"),
501
- message("msg-2"),
502
- ]);
503
- });
504
- }
505
- effectTest("serializes handlers so message order is preserved across async resolution", serializesHandlersSoMessageOrderIsPreservedAcrossAsyncResolution);
506
- function awaitsAsyncHandlerFullyBeforeProcessingTheNextMessage() {
507
- return Effect.gen(function* () {
508
- const { fake, core } = customSetup();
509
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
510
- fake.state.setAgentName("agent-alice", "Alice");
511
- const handlerBarriers = [];
512
- const order = [];
513
- core.onInbound((m) => Effect.gen(function* () {
514
- order.push(`enter:${m.id}`);
515
- yield* waitForHandlerBarrier(handlerBarriers);
516
- order.push(`exit:${m.id}`);
517
- }));
518
- fake.emit.message(buildMessage({ id: "msg-1" }));
519
- fake.emit.message(buildMessage({ id: "msg-2" }));
520
- yield* flushDispatchChainEffect;
521
- // Handler started for msg-1, hasn't returned yet. msg-2 has NOT entered.
522
- expect(order).toEqual([`enter:${message("msg-1")}`]);
523
- handlerBarriers[0]();
524
- yield* flushDispatchChainEffect;
525
- // msg-1 fully processed; msg-2 has entered.
526
- expect(order).toEqual([
527
- `enter:${message("msg-1")}`,
528
- `exit:${message("msg-1")}`,
529
- `enter:${message("msg-2")}`,
530
- ]);
531
- handlerBarriers[1]();
532
- yield* flushDispatchChainEffect;
533
- expect(order).toEqual([
534
- `enter:${message("msg-1")}`,
535
- `exit:${message("msg-1")}`,
536
- `enter:${message("msg-2")}`,
537
- `exit:${message("msg-2")}`,
538
- ]);
539
- });
540
- }
541
- effectTest("awaits async handler fully before processing the next message", awaitsAsyncHandlerFullyBeforeProcessingTheNextMessage);
542
- function onInboundReplacesThePreviousHandlerInsteadOfAdding() {
543
- return Effect.gen(function* () {
544
- fake.state.setConversation("conv-1", { type: "dm", participants: [] });
545
- fake.state.setAgentName("agent-alice", "Alice");
546
- const firstHandler = vi.fn();
547
- const secondHandler = vi.fn();
548
- core.onInbound((m) => Effect.sync(() => firstHandler(m)));
549
- core.onInbound((m) => Effect.sync(() => secondHandler(m)));
550
- fake.emit.message(buildMessage());
551
- yield* flushDispatchChainEffect;
552
- expect(firstHandler).not.toHaveBeenCalled();
553
- expect(secondHandler).toHaveBeenCalledOnce();
554
- });
555
- }
556
- effectTest("onInbound replaces the previous handler instead of adding", onInboundReplacesThePreviousHandlerInsteadOfAdding);
557
- //# sourceMappingURL=channel-core-dispatch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-core-dispatch.test.js","sourceRoot":"","sources":["../src/channel-core-dispatch.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=channel-core.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-core.test.d.ts","sourceRoot":"","sources":["../src/channel-core.test.ts"],"names":[],"mappings":""}