agent-comms 2.18.2 → 2.18.4

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 (100) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/dist/bridges/user/web/dist/bundle.js +1 -1
  5. package/dist/bridges/user/web/frontend/project-tree.js +3 -3
  6. package/dist/bridges/user/web/frontend/project-tree.js.map +1 -1
  7. package/dist/bridges/user/web/test/port-discovery.unit.test.js +10 -11
  8. package/dist/bridges/user/web/test/port-discovery.unit.test.js.map +1 -1
  9. package/dist/bridges/user/web/test/web-server.integration.test.js +12 -13
  10. package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -1
  11. package/dist/core/identity-store.d.ts.map +1 -1
  12. package/dist/core/identity-store.js +16 -5
  13. package/dist/core/identity-store.js.map +1 -1
  14. package/dist/core/identity.d.ts +6 -5
  15. package/dist/core/identity.d.ts.map +1 -1
  16. package/dist/core/identity.js +13 -11
  17. package/dist/core/identity.js.map +1 -1
  18. package/dist/core/test/bridge.unit.test.js +11 -12
  19. package/dist/core/test/bridge.unit.test.js.map +1 -1
  20. package/dist/core/test/identity.unit.test.js +21 -22
  21. package/dist/core/test/identity.unit.test.js.map +1 -1
  22. package/dist/test/approval.integration.test.js +52 -45
  23. package/dist/test/approval.integration.test.js.map +1 -1
  24. package/dist/test/become-coordinator-actual-port.integration.test.d.ts +0 -2
  25. package/dist/test/become-coordinator-actual-port.integration.test.d.ts.map +1 -1
  26. package/dist/test/become-coordinator-actual-port.integration.test.js +14 -39
  27. package/dist/test/become-coordinator-actual-port.integration.test.js.map +1 -1
  28. package/dist/test/bridge-mesh.test.js +9 -10
  29. package/dist/test/bridge-mesh.test.js.map +1 -1
  30. package/dist/test/broadcast-window.integration.test.js +4 -7
  31. package/dist/test/broadcast-window.integration.test.js.map +1 -1
  32. package/dist/test/coordinator-socket-error.integration.test.js +3 -4
  33. package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
  34. package/dist/test/create-room-mints-owner-grant.test.js +9 -8
  35. package/dist/test/create-room-mints-owner-grant.test.js.map +1 -1
  36. package/dist/test/create-room-name-sanitisation.test.js +6 -7
  37. package/dist/test/create-room-name-sanitisation.test.js.map +1 -1
  38. package/dist/test/dm-admission.integration.test.js +10 -11
  39. package/dist/test/dm-admission.integration.test.js.map +1 -1
  40. package/dist/test/federation.integration.test.js +21 -20
  41. package/dist/test/federation.integration.test.js.map +1 -1
  42. package/dist/test/filestore.test.js +16 -17
  43. package/dist/test/filestore.test.js.map +1 -1
  44. package/dist/test/handshake.test.js +26 -27
  45. package/dist/test/handshake.test.js.map +1 -1
  46. package/dist/test/identity-cert.test.js +3 -4
  47. package/dist/test/identity-cert.test.js.map +1 -1
  48. package/dist/test/identity-device-id.test.js +6 -7
  49. package/dist/test/identity-device-id.test.js.map +1 -1
  50. package/dist/test/identity-restart.integration.test.js +9 -10
  51. package/dist/test/identity-restart.integration.test.js.map +1 -1
  52. package/dist/test/identity-store.test.js +36 -21
  53. package/dist/test/identity-store.test.js.map +1 -1
  54. package/dist/test/listener-policy.integration.test.js +63 -56
  55. package/dist/test/listener-policy.integration.test.js.map +1 -1
  56. package/dist/test/mcp-registry-retry.test.js +10 -11
  57. package/dist/test/mcp-registry-retry.test.js.map +1 -1
  58. package/dist/test/mesh-e2e.integration.test.js +26 -19
  59. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  60. package/dist/test/presence-readvertise.integration.test.js +5 -6
  61. package/dist/test/presence-readvertise.integration.test.js.map +1 -1
  62. package/dist/test/random-id.test.js +3 -4
  63. package/dist/test/random-id.test.js.map +1 -1
  64. package/dist/test/room-admission-tool-actions.test.js +20 -15
  65. package/dist/test/room-admission-tool-actions.test.js.map +1 -1
  66. package/dist/test/room-destroy-revocation.integration.test.js +3 -4
  67. package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
  68. package/dist/test/room-invite-directed.integration.test.js +13 -12
  69. package/dist/test/room-invite-directed.integration.test.js.map +1 -1
  70. package/dist/test/room-join-admission.test.js +31 -24
  71. package/dist/test/room-join-admission.test.js.map +1 -1
  72. package/dist/test/room-kick-revocation.integration.test.js +5 -6
  73. package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
  74. package/dist/test/room-leave-revocation.integration.test.js +10 -9
  75. package/dist/test/room-leave-revocation.integration.test.js.map +1 -1
  76. package/dist/test/room-path.test.js +16 -17
  77. package/dist/test/room-path.test.js.map +1 -1
  78. package/dist/test/room-read-directed.integration.test.js +14 -11
  79. package/dist/test/room-read-directed.integration.test.js.map +1 -1
  80. package/dist/test/room-router.test.js +27 -29
  81. package/dist/test/room-router.test.js.map +1 -1
  82. package/dist/test/room-send-directed.integration.test.js +11 -12
  83. package/dist/test/room-send-directed.integration.test.js.map +1 -1
  84. package/dist/test/room-send-retry-queue.test.js +10 -11
  85. package/dist/test/room-send-retry-queue.test.js.map +1 -1
  86. package/dist/test/room-send-retry.integration.test.js +5 -8
  87. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  88. package/dist/test/room-state-sync.integration.test.js +18 -15
  89. package/dist/test/room-state-sync.integration.test.js.map +1 -1
  90. package/dist/test/room-token-store.test.js +21 -22
  91. package/dist/test/room-token-store.test.js.map +1 -1
  92. package/dist/test/room-token-verification.test.js +19 -20
  93. package/dist/test/room-token-verification.test.js.map +1 -1
  94. package/dist/test/state-sync-convergence.test.js +25 -26
  95. package/dist/test/state-sync-convergence.test.js.map +1 -1
  96. package/dist/test/visibility.integration.test.js +48 -49
  97. package/dist/test/visibility.integration.test.js.map +1 -1
  98. package/dist/test/wire-mesh-identity.test.js +7 -8
  99. package/dist/test/wire-mesh-identity.test.js.map +1 -1
  100. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/core/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/core/identity.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Unit tests for bridge.ts — formatDeliveryEvent.
3
3
  */
4
- import { describe, it } from "node:test";
5
- import assert from "node:assert/strict";
4
+ import { describe, it, expect } from "vitest";
6
5
  import { formatDeliveryEvent, isActionableEvent } from "../bridge.js";
7
6
  describe("formatDeliveryEvent", () => {
8
7
  it("formats name_changed event", () => {
@@ -13,7 +12,7 @@ describe("formatDeliveryEvent", () => {
13
12
  newName: "Bob",
14
13
  };
15
14
  const result = formatDeliveryEvent(event);
16
- assert.strictEqual(result, "Alice is now known as Bob");
15
+ expect(result).toBe("Alice is now known as Bob");
17
16
  });
18
17
  it("formats room_message", () => {
19
18
  const event = {
@@ -28,7 +27,7 @@ describe("formatDeliveryEvent", () => {
28
27
  },
29
28
  };
30
29
  const result = formatDeliveryEvent(event);
31
- assert.strictEqual(result, "[r1] a1: hello");
30
+ expect(result).toBe("[r1] a1: hello");
32
31
  });
33
32
  it("formats member_status", () => {
34
33
  const event = {
@@ -38,7 +37,7 @@ describe("formatDeliveryEvent", () => {
38
37
  status: "busy",
39
38
  };
40
39
  const result = formatDeliveryEvent(event);
41
- assert.strictEqual(result, "a1 is now busy in r1");
40
+ expect(result).toBe("a1 is now busy in r1");
42
41
  });
43
42
  });
44
43
  describe("isActionableEvent", () => {
@@ -54,7 +53,7 @@ describe("isActionableEvent", () => {
54
53
  readBy: [],
55
54
  },
56
55
  };
57
- assert.strictEqual(isActionableEvent(event), true);
56
+ expect(isActionableEvent(event)).toBe(true);
58
57
  });
59
58
  it("classifies dm as actionable", () => {
60
59
  const event = {
@@ -68,7 +67,7 @@ describe("isActionableEvent", () => {
68
67
  readBy: [],
69
68
  },
70
69
  };
71
- assert.strictEqual(isActionableEvent(event), true);
70
+ expect(isActionableEvent(event)).toBe(true);
72
71
  });
73
72
  it("classifies room_invite as actionable", () => {
74
73
  const event = {
@@ -79,7 +78,7 @@ describe("isActionableEvent", () => {
79
78
  fromName: "Alice",
80
79
  fromCwd: "/home",
81
80
  };
82
- assert.strictEqual(isActionableEvent(event), true);
81
+ expect(isActionableEvent(event)).toBe(true);
83
82
  });
84
83
  it("classifies member_joined as informational", () => {
85
84
  const event = {
@@ -87,7 +86,7 @@ describe("isActionableEvent", () => {
87
86
  room: "r1",
88
87
  agent: "a1",
89
88
  };
90
- assert.strictEqual(isActionableEvent(event), false);
89
+ expect(isActionableEvent(event)).toBe(false);
91
90
  });
92
91
  it("classifies member_status as informational", () => {
93
92
  const event = {
@@ -96,7 +95,7 @@ describe("isActionableEvent", () => {
96
95
  agent: "a1",
97
96
  status: "offline",
98
97
  };
99
- assert.strictEqual(isActionableEvent(event), false);
98
+ expect(isActionableEvent(event)).toBe(false);
100
99
  });
101
100
  it("classifies name_changed as informational", () => {
102
101
  const event = {
@@ -105,7 +104,7 @@ describe("isActionableEvent", () => {
105
104
  oldName: "Alice",
106
105
  newName: "Bob",
107
106
  };
108
- assert.strictEqual(isActionableEvent(event), false);
107
+ expect(isActionableEvent(event)).toBe(false);
109
108
  });
110
109
  it("classifies delivery_status as informational", () => {
111
110
  const event = {
@@ -114,7 +113,7 @@ describe("isActionableEvent", () => {
114
113
  agent: "a1",
115
114
  status: "delivered",
116
115
  };
117
- assert.strictEqual(isActionableEvent(event), false);
116
+ expect(isActionableEvent(event)).toBe(false);
118
117
  });
119
118
  });
120
119
  //# sourceMappingURL=bridge.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.unit.test.js","sourceRoot":"","sources":["../../../src/core/test/bridge.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.unit.test.js","sourceRoot":"","sources":["../../../src/core/test/bridge.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,70 +1,69 @@
1
1
  /**
2
2
  * Unit tests for identity.ts — cryptographic identity generation.
3
3
  */
4
- import { describe, it } from "node:test";
5
- import assert from "node:assert/strict";
4
+ import { describe, it, expect } from "vitest";
6
5
  import { X509Certificate } from "node:crypto";
7
6
  import { generateIdentity, getCertificateFingerprint } from "../identity.js";
8
7
  describe("generateIdentity", () => {
9
8
  it("returns a valid PeerIdentity with all required fields", () => {
10
9
  const identity = generateIdentity();
11
- assert.ok(identity.privateKey, "private key should be present");
12
- assert.ok(identity.certificate, "certificate should be present");
13
- assert.ok(identity.fingerprint, "fingerprint should be present");
10
+ expect(identity.privateKey, "private key should be present").toBeTruthy();
11
+ expect(identity.certificate, "certificate should be present").toBeTruthy();
12
+ expect(identity.fingerprint, "fingerprint should be present").toBeTruthy();
14
13
  });
15
14
  it("produces a valid PEM-encoded private key", () => {
16
15
  const { privateKey } = generateIdentity();
17
- assert.match(privateKey, /^-----BEGIN PRIVATE KEY-----/, "private key should start with PEM header");
18
- assert.match(privateKey, /-----END PRIVATE KEY-----\n?$/, "private key should end with PEM footer");
16
+ expect(privateKey, "private key should start with PEM header").toMatch(/^-----BEGIN PRIVATE KEY-----/);
17
+ expect(privateKey, "private key should end with PEM footer").toMatch(/-----END PRIVATE KEY-----\n?$/);
19
18
  });
20
19
  it("produces a valid PEM-encoded certificate", () => {
21
20
  const { certificate } = generateIdentity();
22
- assert.match(certificate, /^-----BEGIN CERTIFICATE-----/, "certificate should start with PEM header");
23
- assert.match(certificate, /-----END CERTIFICATE-----\n?$/, "certificate should end with PEM footer");
21
+ expect(certificate, "certificate should start with PEM header").toMatch(/^-----BEGIN CERTIFICATE-----/);
22
+ expect(certificate, "certificate should end with PEM footer").toMatch(/-----END CERTIFICATE-----\n?$/);
24
23
  });
25
24
  it("produces a fingerprint that is a 95-character SHA-256 hex string with colons", () => {
26
25
  const { fingerprint } = generateIdentity();
27
26
  // SHA-256 = 32 bytes = 64 hex chars + 31 colons = 95 chars
28
- assert.strictEqual(fingerprint.length, 95);
29
- assert.match(fingerprint, /^[0-9A-F]{2}(:[0-9A-F]{2}){31}$/, "fingerprint should be hex pairs separated by colons");
27
+ expect(fingerprint.length).toBe(95);
28
+ expect(fingerprint, "fingerprint should be hex pairs separated by colons").toMatch(/^[0-9A-F]{2}(:[0-9A-F]{2}){31}$/);
30
29
  });
31
30
  it("produces a fingerprint that matches Node's own X509Certificate.fingerprint256", () => {
32
31
  const { certificate, fingerprint } = generateIdentity();
33
32
  const x509 = new X509Certificate(certificate);
34
- assert.strictEqual(fingerprint, x509.fingerprint256);
33
+ expect(fingerprint).toBe(x509.fingerprint256);
35
34
  });
36
35
  it("produces a certificate that is valid and self-signed", () => {
37
36
  const { certificate } = generateIdentity();
38
37
  const x509 = new X509Certificate(certificate);
39
- assert.strictEqual(x509.subject, "CN=agent-comms");
40
- assert.strictEqual(x509.issuer, "CN=agent-comms");
41
- assert.ok(x509.verify(x509.publicKey), "certificate should verify against its own public key");
38
+ expect(x509.subject).toBe("CN=agent-comms");
39
+ expect(x509.issuer).toBe("CN=agent-comms");
40
+ expect(x509.verify(x509.publicKey), "certificate should verify against its own public key").toBeTruthy();
42
41
  });
43
42
  it("includes localhost and 127.0.0.1 in Subject Alternative Names", () => {
44
43
  const { certificate } = generateIdentity();
45
44
  const x509 = new X509Certificate(certificate);
46
- assert.ok(x509.checkHost("localhost"), "should match DNS:localhost");
47
- assert.ok(x509.checkIP("127.0.0.1"), "should match IP:127.0.0.1");
45
+ expect(x509.checkHost("localhost"), "should match DNS:localhost").toBeTruthy();
46
+ expect(x509.checkIP("127.0.0.1"), "should match IP:127.0.0.1").toBeTruthy();
48
47
  });
49
48
  it("produces different fingerprints on successive calls (different keypairs)", () => {
50
49
  const a = generateIdentity();
51
50
  const b = generateIdentity();
52
- assert.notStrictEqual(a.fingerprint, b.fingerprint);
53
- assert.notStrictEqual(a.privateKey, b.privateKey);
54
- assert.notStrictEqual(a.certificate, b.certificate);
51
+ expect(a.fingerprint).not.toBe(b.fingerprint);
52
+ expect(a.privateKey).not.toBe(b.privateKey);
53
+ expect(a.certificate).not.toBe(b.certificate);
55
54
  });
56
55
  });
57
56
  describe("getCertificateFingerprint", () => {
58
57
  it("is deterministic — same cert always produces same fingerprint", () => {
59
58
  const { certificate, fingerprint } = generateIdentity();
60
59
  const recomputed = getCertificateFingerprint(certificate);
61
- assert.strictEqual(recomputed, fingerprint);
60
+ expect(recomputed).toBe(fingerprint);
62
61
  });
63
62
  it("produces the same result when called multiple times", () => {
64
63
  const { certificate } = generateIdentity();
65
64
  const first = getCertificateFingerprint(certificate);
66
65
  const second = getCertificateFingerprint(certificate);
67
- assert.strictEqual(first, second);
66
+ expect(first).toBe(second);
68
67
  });
69
68
  });
70
69
  //# sourceMappingURL=identity.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.unit.test.js","sourceRoot":"","sources":["../../../src/core/test/identity.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.unit.test.js","sourceRoot":"","sources":["../../../src/core/test/identity.unit.test.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@
6
6
  * established or torn down accordingly.
7
7
  */
8
8
  import * as net from "node:net";
9
- import * as assert from "node:assert/strict";
10
- import { test, describe } from "node:test";
9
+ import { test, describe, expect } from "vitest";
11
10
  import { createTlsTransport } from "wire-mesh-core/adapters/tls-transport";
12
11
  import { acceptMeshSession } from "wire-mesh-core/domain/mesh-session";
13
12
  import { MeshStore } from "../core/mesh-store.js";
@@ -37,7 +36,7 @@ function sleep(ms) {
37
36
  return new Promise((resolve) => setTimeout(resolve, ms));
38
37
  }
39
38
  describe("connection approval", () => {
40
- void test("coordinator receives connection_request from connecting peer", async () => {
39
+ test("coordinator receives connection_request from connecting peer", async () => {
41
40
  const portA = await uniquePort();
42
41
  const portB = await uniquePort();
43
42
  // Set up coordinator (store A)
@@ -77,19 +76,19 @@ describe("connection approval", () => {
77
76
  // Wait for the coordinator to receive the request
78
77
  await waitFor(() => receivedRequests.length === 1, "coordinator receives the connection request");
79
78
  // Coordinator should have received a connection_request event
80
- assert.equal(receivedRequests.length, 1, "Coordinator should receive exactly one connection request");
79
+ expect(receivedRequests.length, "Coordinator should receive exactly one connection request").toBe(1);
81
80
  const request = receivedRequests[0];
82
- assert.equal(request?.type, "connection_request");
83
- assert.ok(request?.connectionId, "Request should have a connectionId");
84
- assert.equal(request?.peerId, storeB.peerId, "Request should contain connector's peer ID");
85
- assert.equal(request?.name, "connector", "Request should contain connector's name");
81
+ expect(request?.type).toBe("connection_request");
82
+ expect(request?.connectionId, "Request should have a connectionId").toBeTruthy();
83
+ expect(request?.peerId, "Request should contain connector's peer ID").toBe(storeB.peerId);
84
+ expect(request?.name, "Request should contain connector's name").toBe("connector");
86
85
  }
87
86
  finally {
88
87
  await storeB.shutdown();
89
88
  await storeA.shutdown();
90
89
  }
91
90
  });
92
- void test("accept establishes the peer connection", async () => {
91
+ test("accept establishes the peer connection", async () => {
93
92
  const portA = await uniquePort();
94
93
  const portB = await uniquePort();
95
94
  const storeA = new MeshStore(portA);
@@ -125,7 +124,9 @@ describe("connection approval", () => {
125
124
  storeB.connectToRemote("127.0.0.1", portA);
126
125
  await waitFor(() => receivedRequests.length === 1, "coordinator receives the connection request");
127
126
  const request = receivedRequests[0];
128
- assert.ok(request?.connectionId);
127
+ expect(request?.connectionId).toBeTruthy();
128
+ if (request === undefined)
129
+ throw new Error("expected a pending connection request");
129
130
  // Accept the connection
130
131
  await storeA.acceptConnection(request.connectionId);
131
132
  // State sync (peer_list -> connectToPeer -> state_sync -> handlePeerConnected) is a real TLS round trip, not instantaneous -- poll rather than assume any fixed delay is enough under a loaded CI runner.
@@ -133,15 +134,15 @@ describe("connection approval", () => {
133
134
  await waitFor(() => storeB.serialise().agents[storeA.peerId] !== undefined, "connector sees the coordinator agent");
134
135
  const agentsA = await storeA.listAgents(storeA.peerId);
135
136
  const agentsB = await storeB.listAgents(storeB.peerId);
136
- assert.ok(agentsA.some((a) => a.id === storeB.peerId), "Coordinator should see the connector agent");
137
- assert.ok(agentsB.some((a) => a.id === storeA.peerId), "Connector should see the coordinator agent");
137
+ expect(agentsA.some((a) => a.id === storeB.peerId), "Coordinator should see the connector agent").toBeTruthy();
138
+ expect(agentsB.some((a) => a.id === storeA.peerId), "Connector should see the coordinator agent").toBeTruthy();
138
139
  }
139
140
  finally {
140
141
  await storeB.shutdown();
141
142
  await storeA.shutdown();
142
143
  }
143
144
  });
144
- void test("reject closes with reason", async () => {
145
+ test("reject closes with reason", async () => {
145
146
  const portA = await uniquePort();
146
147
  const portB = await uniquePort();
147
148
  const storeA = new MeshStore(portA);
@@ -176,23 +177,25 @@ describe("connection approval", () => {
176
177
  });
177
178
  storeB.connectToRemote("127.0.0.1", portA);
178
179
  await waitFor(() => receivedRequests.length === 1, "coordinator receives the connection request");
179
- assert.equal(receivedRequests.length, 1, "Coordinator should receive a connection request");
180
+ expect(receivedRequests.length, "Coordinator should receive a connection request").toBe(1);
180
181
  const request = receivedRequests[0];
181
- assert.ok(request?.connectionId);
182
+ expect(request?.connectionId).toBeTruthy();
183
+ if (request === undefined)
184
+ throw new Error("expected a pending connection request");
182
185
  // Reject the connection
183
186
  await storeA.rejectConnection(request.connectionId, "unauthorised");
184
187
  // Give the rejection time to propagate -- there is no positive event to poll for here (the assertion below proves an absence), so a fixed wait is the right shape, unlike the accept-flow tests above.
185
188
  await sleep(200);
186
189
  // Verify the coordinator no longer sees the connector agent
187
190
  const agentsA = await storeA.listAgents(storeA.peerId);
188
- assert.ok(!agentsA.some((a) => a.id === storeB.peerId), "Rejected peer should not appear in agent list");
191
+ expect(!agentsA.some((a) => a.id === storeB.peerId), "Rejected peer should not appear in agent list").toBeTruthy();
189
192
  }
190
193
  finally {
191
194
  await storeB.shutdown();
192
195
  await storeA.shutdown();
193
196
  }
194
197
  });
195
- void test("connect_request expires and is auto-rejected if left unanswered past the configured timeout", async () => {
198
+ test("connect_request expires and is auto-rejected if left unanswered past the configured timeout", async () => {
196
199
  const portA = await uniquePort();
197
200
  const portB = await uniquePort();
198
201
  const SHORT_PENDING_CONNECTION_TIMEOUT_MS = 300;
@@ -229,20 +232,22 @@ describe("connection approval", () => {
229
232
  storeB.connectToRemote("127.0.0.1", portA);
230
233
  await waitFor(() => receivedRequests.length === 1, "coordinator receives the connection request");
231
234
  const request = receivedRequests[0];
232
- assert.ok(request?.connectionId);
235
+ expect(request?.connectionId).toBeTruthy();
236
+ if (request === undefined)
237
+ throw new Error("expected a pending connection request");
233
238
  // No accept/reject call at all -- wait past the configured timeout with the request left untouched.
234
239
  await sleep(SHORT_PENDING_CONNECTION_TIMEOUT_MS + 500);
235
240
  // The strongest available proof the entry actually expired (not merely "still pending, not yet an agent," which would be equally true before any decision): acceptConnection on an expired request must fail exactly the way it fails for any other unknown handle, since expirePendingConnection has already deleted it.
236
- await assert.rejects(() => storeA.acceptConnection(request.connectionId), /No pending connection/, "An expired connect_request should no longer be acceptable");
241
+ await expect(storeA.acceptConnection(request.connectionId), "An expired connect_request should no longer be acceptable").rejects.toThrow(/No pending connection/);
237
242
  const agentsA = await storeA.listAgents(storeA.peerId);
238
- assert.ok(!agentsA.some((a) => a.id === storeB.peerId), "An expired, auto-rejected peer should not appear in agent list");
243
+ expect(!agentsA.some((a) => a.id === storeB.peerId), "An expired, auto-rejected peer should not appear in agent list").toBeTruthy();
239
244
  }
240
245
  finally {
241
246
  await storeB.shutdown();
242
247
  await storeA.shutdown();
243
248
  }
244
249
  });
245
- void test("mesh_pending lists pending connections", async () => {
250
+ test("mesh_pending lists pending connections", async () => {
246
251
  const portA = await uniquePort();
247
252
  const portB = await uniquePort();
248
253
  const storeA = new MeshStore(portA);
@@ -272,18 +277,20 @@ describe("connection approval", () => {
272
277
  });
273
278
  // No pending connections initially
274
279
  let pending = storeA.listPendingConnections();
275
- assert.equal(pending.length, 0, "Should have no pending connections initially");
280
+ expect(pending.length, "Should have no pending connections initially").toBe(0);
276
281
  // Initiate connection request
277
282
  storeB.connectToRemote("127.0.0.1", portA);
278
283
  await waitFor(() => storeA.listPendingConnections().length === 1, "coordinator sees the pending connection");
279
284
  // Should now have one pending connection
280
285
  pending = storeA.listPendingConnections();
281
- assert.equal(pending.length, 1, "Should have one pending connection");
282
- assert.equal(pending[0]?.name, "connector", "Pending connection should show connector name");
283
- assert.equal(pending[0]?.peerId, storeB.peerId, "Pending connection should show connector peer ID");
286
+ expect(pending.length, "Should have one pending connection").toBe(1);
287
+ expect(pending[0]?.name, "Pending connection should show connector name").toBe("connector");
288
+ expect(pending[0]?.peerId, "Pending connection should show connector peer ID").toBe(storeB.peerId);
284
289
  // Accept to clean up
285
290
  const connectionId = pending[0]?.connectionId;
286
- assert.ok(connectionId);
291
+ expect(connectionId).toBeTruthy();
292
+ if (connectionId === undefined)
293
+ throw new Error("expected a connection id");
287
294
  await storeA.acceptConnection(connectionId);
288
295
  // No more pending connections after acceptance
289
296
  await waitFor(() => storeA.listPendingConnections().length === 0, "pending connection is cleared after accept");
@@ -295,7 +302,7 @@ describe("connection approval", () => {
295
302
  await storeA.shutdown();
296
303
  }
297
304
  });
298
- void test("tool handles mesh_connect/mesh_accept/mesh_reject/mesh_pending actions", async () => {
305
+ test("tool handles mesh_connect/mesh_accept/mesh_reject/mesh_pending actions", async () => {
299
306
  const portA = await uniquePort();
300
307
  const portB = await uniquePort();
301
308
  const storeA = new MeshStore(portA);
@@ -335,8 +342,8 @@ describe("connection approval", () => {
335
342
  await sleep(200);
336
343
  // Verify coordinator is listening
337
344
  const listeners = storeA.listListeners();
338
- assert.ok(listeners.length > 0, `Coordinator should have listeners, got ${listeners.length}`);
339
- assert.equal(listeners[0]?.port, portA, `Coordinator should be on port ${portA}`);
345
+ expect(listeners.length > 0, `Coordinator should have listeners, got ${listeners.length}`).toBeTruthy();
346
+ expect(listeners[0]?.port, `Coordinator should be on port ${portA}`).toBe(portA);
340
347
  // B initiates the connection via the tool
341
348
  const connectResult = await toolB.handle({
342
349
  agentId: storeB.peerId,
@@ -344,7 +351,7 @@ describe("connection approval", () => {
344
351
  cwd: "/test/b",
345
352
  pid: process.pid,
346
353
  }, connectAction);
347
- assert.ok(!connectResult.isError, `mesh_connect should succeed: ${connectResult.content}`);
354
+ expect(!connectResult.isError, `mesh_connect should succeed: ${connectResult.content}`).toBeTruthy();
348
355
  await waitFor(() => storeA.listPendingConnections().length === 1, "coordinator sees the pending connection");
349
356
  // A checks pending connections via the tool
350
357
  const pendingAction = buildAction({ action: "mesh_pending" });
@@ -354,13 +361,13 @@ describe("connection approval", () => {
354
361
  cwd: "/test/a",
355
362
  pid: process.pid,
356
363
  }, pendingAction);
357
- assert.ok(!pendingResult.isError, `mesh_pending should succeed: ${pendingResult.content}`);
358
- assert.ok(pendingResult.content.includes("connector"), "Pending list should show connector name");
364
+ expect(!pendingResult.isError, `mesh_pending should succeed: ${pendingResult.content}`).toBeTruthy();
365
+ expect(pendingResult.content.includes("connector"), "Pending list should show connector name").toBeTruthy();
359
366
  // Extract connectionId from the pending connections list
360
367
  const pendingConns = storeA.listPendingConnections();
361
- assert.equal(pendingConns.length, 1, "Should have one pending connection");
368
+ expect(pendingConns.length, "Should have one pending connection").toBe(1);
362
369
  const connectionId = pendingConns[0]?.connectionId;
363
- assert.ok(connectionId);
370
+ expect(connectionId).toBeTruthy();
364
371
  // A accepts the connection via the tool
365
372
  const acceptAction = buildAction({
366
373
  action: "mesh_accept",
@@ -372,22 +379,22 @@ describe("connection approval", () => {
372
379
  cwd: "/test/a",
373
380
  pid: process.pid,
374
381
  }, acceptAction);
375
- assert.ok(!acceptResult.isError, `mesh_accept should succeed: ${acceptResult.content}`);
382
+ expect(!acceptResult.isError, `mesh_accept should succeed: ${acceptResult.content}`).toBeTruthy();
376
383
  // State sync is a real TLS round trip, not instantaneous -- poll rather than assume any fixed delay is enough under a loaded CI runner.
377
384
  await waitFor(() => storeA.serialise().agents[storeB.peerId] !== undefined, "A sees B after accept");
378
385
  await waitFor(() => storeB.serialise().agents[storeA.peerId] !== undefined, "B sees A after accept");
379
386
  // Verify both see each other
380
387
  const agentsA = await storeA.listAgents(storeA.peerId);
381
388
  const agentsB = await storeB.listAgents(storeB.peerId);
382
- assert.ok(agentsA.some((a) => a.id === storeB.peerId), "A should see B after accept");
383
- assert.ok(agentsB.some((a) => a.id === storeA.peerId), "B should see A after accept");
389
+ expect(agentsA.some((a) => a.id === storeB.peerId), "A should see B after accept").toBeTruthy();
390
+ expect(agentsB.some((a) => a.id === storeA.peerId), "B should see A after accept").toBeTruthy();
384
391
  }
385
392
  finally {
386
393
  await storeB.shutdown();
387
394
  await storeA.shutdown();
388
395
  }
389
396
  });
390
- void test("tool mesh_reject returns error message", async () => {
397
+ test("tool mesh_reject returns error message", async () => {
391
398
  const portA = await uniquePort();
392
399
  const portB = await uniquePort();
393
400
  const storeA = new MeshStore(portA);
@@ -421,7 +428,7 @@ describe("connection approval", () => {
421
428
  await waitFor(() => storeA.listPendingConnections().length === 1, "coordinator sees the pending connection");
422
429
  const pendingConns = storeA.listPendingConnections();
423
430
  const connectionId = pendingConns[0]?.connectionId;
424
- assert.ok(connectionId);
431
+ expect(connectionId).toBeTruthy();
425
432
  // A rejects via the tool
426
433
  const rejectAction = buildAction({
427
434
  action: "mesh_reject",
@@ -434,18 +441,18 @@ describe("connection approval", () => {
434
441
  cwd: "/test/a",
435
442
  pid: process.pid,
436
443
  }, rejectAction);
437
- assert.ok(!rejectResult.isError, `mesh_reject should succeed: ${rejectResult.content}`);
438
- assert.ok(rejectResult.content.includes("not allowed"), "Result should include the reason");
444
+ expect(!rejectResult.isError, `mesh_reject should succeed: ${rejectResult.content}`).toBeTruthy();
445
+ expect(rejectResult.content.includes("not allowed"), "Result should include the reason").toBeTruthy();
439
446
  // Verify rejection took effect
440
447
  const pending = storeA.listPendingConnections();
441
- assert.equal(pending.length, 0, "No pending connections after reject");
448
+ expect(pending.length, "No pending connections after reject").toBe(0);
442
449
  }
443
450
  finally {
444
451
  await storeB.shutdown();
445
452
  await storeA.shutdown();
446
453
  }
447
454
  });
448
- void test("a message other than introduce/connect_request from an unapproved connection is refused, not routed", async () => {
455
+ test("a message other than introduce/connect_request from an unapproved connection is refused, not routed", async () => {
449
456
  const portA = await uniquePort();
450
457
  const storeA = new MeshStore(portA);
451
458
  await wireTestTransport(storeA);
@@ -485,8 +492,8 @@ describe("connection approval", () => {
485
492
  method: "state_update",
486
493
  patch: { type: "agent_upsert", agent: forgedAgent },
487
494
  }), FRAME_SCOPE);
488
- assert.equal(outcome.result, "error", "an unapproved connection's message must be refused, not routed");
489
- assert.equal(storeA.serialise().agents[forgedAgent.id], undefined, "a forged state_update from an unapproved connection must never reach mesh-store's own state");
495
+ expect(outcome.result, "an unapproved connection's message must be refused, not routed").toBe("error");
496
+ expect(storeA.serialise().agents[forgedAgent.id], "a forged state_update from an unapproved connection must never reach mesh-store's own state").toBe(undefined);
490
497
  }
491
498
  finally {
492
499
  await storeA.shutdown();