agent-comms 7.0.0 → 8.0.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -2
- package/dist/bridges/claude-code/channel.d.ts.map +1 -1
- package/dist/bridges/claude-code/channel.js +2 -2
- package/dist/bridges/claude-code/channel.js.map +1 -1
- package/dist/bridges/codex/tool.d.ts.map +1 -1
- package/dist/bridges/codex/tool.js +2 -2
- package/dist/bridges/codex/tool.js.map +1 -1
- package/dist/bridges/mcp/server.d.ts.map +1 -1
- package/dist/bridges/mcp/server.js +2 -2
- package/dist/bridges/mcp/server.js.map +1 -1
- package/dist/bridges/opencode/plugin.js +2 -2
- package/dist/bridges/opencode/plugin.js.map +1 -1
- package/dist/bridges/pi/extension.d.ts.map +1 -1
- package/dist/bridges/pi/extension.js +2 -9
- package/dist/bridges/pi/extension.js.map +1 -1
- package/dist/bridges/user/controller.js +3 -3
- package/dist/bridges/user/controller.js.map +1 -1
- package/dist/bridges/user/web/server.d.ts +5 -11
- package/dist/bridges/user/web/server.d.ts.map +1 -1
- package/dist/bridges/user/web/server.js +15 -14
- package/dist/bridges/user/web/server.js.map +1 -1
- package/dist/bridges/user/web/test/bridge-web-server.integration.test.d.ts +2 -0
- package/dist/bridges/user/web/test/bridge-web-server.integration.test.d.ts.map +1 -0
- package/dist/bridges/user/web/test/bridge-web-server.integration.test.js +47 -0
- package/dist/bridges/user/web/test/bridge-web-server.integration.test.js.map +1 -0
- package/dist/core/mesh-store.d.ts +10 -0
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +19 -4
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/receiver-set.d.ts +15 -0
- package/dist/core/receiver-set.d.ts.map +1 -0
- package/dist/core/receiver-set.js +32 -0
- package/dist/core/receiver-set.js.map +1 -0
- package/dist/core/tool.d.ts +1 -1
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +1 -1
- package/dist/core/tool.js.map +1 -1
- package/dist/test/hub-helpers.d.ts +2 -0
- package/dist/test/hub-helpers.d.ts.map +1 -1
- package/dist/test/hub-helpers.js +19 -0
- package/dist/test/hub-helpers.js.map +1 -1
- package/dist/test/mesh-store-delivery-listeners.integration.test.d.ts +2 -0
- package/dist/test/mesh-store-delivery-listeners.integration.test.d.ts.map +1 -0
- package/dist/test/mesh-store-delivery-listeners.integration.test.js +160 -0
- package/dist/test/mesh-store-delivery-listeners.integration.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MeshStore.addDeliveryListener and addPatchListener (agent-comms#293): several parties share one store's delivery events and state patches, a bridge's own onDelivery handler and the web UI it serves, so serving the UI does not need a second store and neither party can silence the other by assigning last.
|
|
3
|
+
*/
|
|
4
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { MeshStore } from "../core/mesh-store.js";
|
|
6
|
+
import { freeLocalPort, TeardownStack } from "./hub-helpers.js";
|
|
7
|
+
import { wireTestTransport } from "./test-transport.js";
|
|
8
|
+
const cleanups = new TeardownStack();
|
|
9
|
+
afterEach(async () => {
|
|
10
|
+
await cleanups.run();
|
|
11
|
+
});
|
|
12
|
+
async function startStore() {
|
|
13
|
+
const store = new MeshStore({ coordinatorPort: await freeLocalPort() });
|
|
14
|
+
await wireTestTransport(store);
|
|
15
|
+
await store.init();
|
|
16
|
+
cleanups.push(async () => store.shutdown());
|
|
17
|
+
await store.registerAgent({
|
|
18
|
+
name: "listener-test",
|
|
19
|
+
harness: "test",
|
|
20
|
+
cwd: "/test/listeners",
|
|
21
|
+
pid: process.pid,
|
|
22
|
+
visibility: "visible",
|
|
23
|
+
tags: [],
|
|
24
|
+
});
|
|
25
|
+
return store;
|
|
26
|
+
}
|
|
27
|
+
let nextMessage = 0;
|
|
28
|
+
/** A room message that is new to the store every time, so the delivery engine's own de-duplication never swallows it. */
|
|
29
|
+
function freshEvent() {
|
|
30
|
+
nextMessage += 1;
|
|
31
|
+
return {
|
|
32
|
+
type: "room_message",
|
|
33
|
+
message: {
|
|
34
|
+
id: `message-${String(nextMessage)}`,
|
|
35
|
+
from: "someone",
|
|
36
|
+
room: "room",
|
|
37
|
+
content: `hello ${String(nextMessage)}`,
|
|
38
|
+
timestamp: "2026-01-01T00:00:00.000Z",
|
|
39
|
+
readBy: [],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
describe("MeshStore.addDeliveryListener", () => {
|
|
44
|
+
it("gives an event to onDelivery and to every listener", async () => {
|
|
45
|
+
const store = await startStore();
|
|
46
|
+
const handler = vi.fn();
|
|
47
|
+
const first = vi.fn();
|
|
48
|
+
const second = vi.fn();
|
|
49
|
+
store.onDelivery = handler;
|
|
50
|
+
store.addDeliveryListener(first);
|
|
51
|
+
store.addDeliveryListener(second);
|
|
52
|
+
const event = freshEvent();
|
|
53
|
+
await store.deliver(store.peerId, event);
|
|
54
|
+
expect(handler).toHaveBeenCalledWith(store.peerId, event);
|
|
55
|
+
expect(first).toHaveBeenCalledWith(store.peerId, event);
|
|
56
|
+
expect(second).toHaveBeenCalledWith(store.peerId, event);
|
|
57
|
+
});
|
|
58
|
+
it("does not let assigning onDelivery silence a listener, or adding a listener replace onDelivery", async () => {
|
|
59
|
+
const store = await startStore();
|
|
60
|
+
const listener = vi.fn();
|
|
61
|
+
const laterHandler = vi.fn();
|
|
62
|
+
store.addDeliveryListener(listener);
|
|
63
|
+
store.onDelivery = laterHandler;
|
|
64
|
+
await store.deliver(store.peerId, freshEvent());
|
|
65
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
66
|
+
expect(laterHandler).toHaveBeenCalledTimes(1);
|
|
67
|
+
});
|
|
68
|
+
it("delivers to a listener on its own when onDelivery was never set", async () => {
|
|
69
|
+
const store = await startStore();
|
|
70
|
+
const listener = vi.fn();
|
|
71
|
+
store.addDeliveryListener(listener);
|
|
72
|
+
await store.deliver(store.peerId, freshEvent());
|
|
73
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
74
|
+
});
|
|
75
|
+
it("stops giving events to a listener once it unsubscribes", async () => {
|
|
76
|
+
const store = await startStore();
|
|
77
|
+
const listener = vi.fn();
|
|
78
|
+
const unsubscribe = store.addDeliveryListener(listener);
|
|
79
|
+
await store.deliver(store.peerId, freshEvent());
|
|
80
|
+
unsubscribe();
|
|
81
|
+
await store.deliver(store.peerId, freshEvent());
|
|
82
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
83
|
+
});
|
|
84
|
+
it("reports a listener that throws or rejects through onError and still calls the others", async () => {
|
|
85
|
+
const store = await startStore();
|
|
86
|
+
const errors = [];
|
|
87
|
+
store.onError = (error) => {
|
|
88
|
+
errors.push(error);
|
|
89
|
+
};
|
|
90
|
+
const failure = new Error("listener failed");
|
|
91
|
+
const healthy = vi.fn();
|
|
92
|
+
store.addDeliveryListener(() => {
|
|
93
|
+
throw failure;
|
|
94
|
+
});
|
|
95
|
+
store.addDeliveryListener(async () => Promise.reject(failure));
|
|
96
|
+
store.addDeliveryListener(healthy);
|
|
97
|
+
await store.deliver(store.peerId, freshEvent());
|
|
98
|
+
await vi.waitFor(() => {
|
|
99
|
+
expect(errors).toHaveLength(2);
|
|
100
|
+
});
|
|
101
|
+
expect(errors).toEqual([failure, failure]);
|
|
102
|
+
expect(healthy).toHaveBeenCalledTimes(1);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe("MeshStore.addPatchListener", () => {
|
|
106
|
+
/** Registers an agent, which produces at least one state patch on this store. */
|
|
107
|
+
async function produceAPatch(store, name) {
|
|
108
|
+
await store.registerAgent({
|
|
109
|
+
name,
|
|
110
|
+
harness: "test",
|
|
111
|
+
cwd: `/test/${name}`,
|
|
112
|
+
pid: process.pid,
|
|
113
|
+
visibility: "visible",
|
|
114
|
+
tags: [],
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
it("gives a patch to onPatch and to every listener", async () => {
|
|
118
|
+
const store = await startStore();
|
|
119
|
+
const handler = vi.fn();
|
|
120
|
+
const listener = vi.fn();
|
|
121
|
+
store.onPatch = handler;
|
|
122
|
+
store.addPatchListener(listener);
|
|
123
|
+
await produceAPatch(store, "patch-source");
|
|
124
|
+
expect(handler).toHaveBeenCalled();
|
|
125
|
+
expect(listener).toHaveBeenCalled();
|
|
126
|
+
});
|
|
127
|
+
it("delivers to a listener on its own when onPatch was never set, and does not let assigning onPatch silence it", async () => {
|
|
128
|
+
const store = await startStore();
|
|
129
|
+
const listener = vi.fn();
|
|
130
|
+
store.addPatchListener(listener);
|
|
131
|
+
store.onPatch = vi.fn();
|
|
132
|
+
await produceAPatch(store, "patch-source");
|
|
133
|
+
expect(listener).toHaveBeenCalled();
|
|
134
|
+
});
|
|
135
|
+
it("stops giving patches to a listener once it unsubscribes", async () => {
|
|
136
|
+
const store = await startStore();
|
|
137
|
+
const listener = vi.fn();
|
|
138
|
+
const unsubscribe = store.addPatchListener(listener);
|
|
139
|
+
unsubscribe();
|
|
140
|
+
await produceAPatch(store, "patch-source");
|
|
141
|
+
expect(listener).not.toHaveBeenCalled();
|
|
142
|
+
});
|
|
143
|
+
it("reports a listener that throws through onError and still calls the others", async () => {
|
|
144
|
+
const store = await startStore();
|
|
145
|
+
const errors = [];
|
|
146
|
+
store.onError = (error) => {
|
|
147
|
+
errors.push(error);
|
|
148
|
+
};
|
|
149
|
+
const failure = new Error("patch listener failed");
|
|
150
|
+
const healthy = vi.fn();
|
|
151
|
+
store.addPatchListener(() => {
|
|
152
|
+
throw failure;
|
|
153
|
+
});
|
|
154
|
+
store.addPatchListener(healthy);
|
|
155
|
+
await produceAPatch(store, "patch-source");
|
|
156
|
+
expect(errors).toContain(failure);
|
|
157
|
+
expect(healthy).toHaveBeenCalled();
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=mesh-store-delivery-listeners.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-store-delivery-listeners.integration.test.js","sourceRoot":"","sources":["../../src/test/mesh-store-delivery-listeners.integration.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED