agent-comms 2.18.3 → 2.19.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 (93) 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/test/bridge.unit.test.js +11 -12
  12. package/dist/core/test/bridge.unit.test.js.map +1 -1
  13. package/dist/core/test/identity.unit.test.js +21 -22
  14. package/dist/core/test/identity.unit.test.js.map +1 -1
  15. package/dist/test/approval.integration.test.js +52 -45
  16. package/dist/test/approval.integration.test.js.map +1 -1
  17. package/dist/test/become-coordinator-actual-port.integration.test.d.ts +0 -2
  18. package/dist/test/become-coordinator-actual-port.integration.test.d.ts.map +1 -1
  19. package/dist/test/become-coordinator-actual-port.integration.test.js +14 -39
  20. package/dist/test/become-coordinator-actual-port.integration.test.js.map +1 -1
  21. package/dist/test/bridge-mesh.test.js +9 -10
  22. package/dist/test/bridge-mesh.test.js.map +1 -1
  23. package/dist/test/broadcast-window.integration.test.js +4 -7
  24. package/dist/test/broadcast-window.integration.test.js.map +1 -1
  25. package/dist/test/coordinator-socket-error.integration.test.js +3 -4
  26. package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
  27. package/dist/test/create-room-mints-owner-grant.test.js +9 -8
  28. package/dist/test/create-room-mints-owner-grant.test.js.map +1 -1
  29. package/dist/test/create-room-name-sanitisation.test.js +6 -7
  30. package/dist/test/create-room-name-sanitisation.test.js.map +1 -1
  31. package/dist/test/dm-admission.integration.test.js +10 -11
  32. package/dist/test/dm-admission.integration.test.js.map +1 -1
  33. package/dist/test/federation.integration.test.js +21 -20
  34. package/dist/test/federation.integration.test.js.map +1 -1
  35. package/dist/test/filestore.test.js +16 -17
  36. package/dist/test/filestore.test.js.map +1 -1
  37. package/dist/test/handshake.test.js +26 -27
  38. package/dist/test/handshake.test.js.map +1 -1
  39. package/dist/test/identity-cert.test.js +3 -4
  40. package/dist/test/identity-cert.test.js.map +1 -1
  41. package/dist/test/identity-device-id.test.js +6 -7
  42. package/dist/test/identity-device-id.test.js.map +1 -1
  43. package/dist/test/identity-restart.integration.test.js +9 -10
  44. package/dist/test/identity-restart.integration.test.js.map +1 -1
  45. package/dist/test/identity-store.test.js +27 -24
  46. package/dist/test/identity-store.test.js.map +1 -1
  47. package/dist/test/listener-policy.integration.test.js +63 -56
  48. package/dist/test/listener-policy.integration.test.js.map +1 -1
  49. package/dist/test/mcp-registry-retry.test.js +10 -11
  50. package/dist/test/mcp-registry-retry.test.js.map +1 -1
  51. package/dist/test/mesh-e2e.integration.test.js +26 -19
  52. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  53. package/dist/test/presence-readvertise.integration.test.js +5 -6
  54. package/dist/test/presence-readvertise.integration.test.js.map +1 -1
  55. package/dist/test/random-id.test.js +3 -4
  56. package/dist/test/random-id.test.js.map +1 -1
  57. package/dist/test/room-admission-tool-actions.test.js +20 -15
  58. package/dist/test/room-admission-tool-actions.test.js.map +1 -1
  59. package/dist/test/room-destroy-revocation.integration.test.js +3 -4
  60. package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
  61. package/dist/test/room-invite-directed.integration.test.js +13 -12
  62. package/dist/test/room-invite-directed.integration.test.js.map +1 -1
  63. package/dist/test/room-join-admission.test.js +31 -24
  64. package/dist/test/room-join-admission.test.js.map +1 -1
  65. package/dist/test/room-kick-revocation.integration.test.js +5 -6
  66. package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
  67. package/dist/test/room-leave-revocation.integration.test.js +10 -9
  68. package/dist/test/room-leave-revocation.integration.test.js.map +1 -1
  69. package/dist/test/room-path.test.js +16 -17
  70. package/dist/test/room-path.test.js.map +1 -1
  71. package/dist/test/room-read-directed.integration.test.js +14 -11
  72. package/dist/test/room-read-directed.integration.test.js.map +1 -1
  73. package/dist/test/room-router.test.js +27 -29
  74. package/dist/test/room-router.test.js.map +1 -1
  75. package/dist/test/room-send-directed.integration.test.js +11 -12
  76. package/dist/test/room-send-directed.integration.test.js.map +1 -1
  77. package/dist/test/room-send-retry-queue.test.js +10 -11
  78. package/dist/test/room-send-retry-queue.test.js.map +1 -1
  79. package/dist/test/room-send-retry.integration.test.js +5 -8
  80. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  81. package/dist/test/room-state-sync.integration.test.js +18 -15
  82. package/dist/test/room-state-sync.integration.test.js.map +1 -1
  83. package/dist/test/room-token-store.test.js +21 -22
  84. package/dist/test/room-token-store.test.js.map +1 -1
  85. package/dist/test/room-token-verification.test.js +19 -20
  86. package/dist/test/room-token-verification.test.js.map +1 -1
  87. package/dist/test/state-sync-convergence.test.js +25 -26
  88. package/dist/test/state-sync-convergence.test.js.map +1 -1
  89. package/dist/test/visibility.integration.test.js +48 -49
  90. package/dist/test/visibility.integration.test.js.map +1 -1
  91. package/dist/test/wire-mesh-identity.test.js +7 -8
  92. package/dist/test/wire-mesh-identity.test.js.map +1 -1
  93. package/package.json +9 -5
@@ -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();
@@ -1 +1 @@
1
- {"version":3,"file":"approval.integration.test.js","sourceRoot":"","sources":["../../src/test/approval.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval.integration.test.js","sourceRoot":"","sources":["../../src/test/approval.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  /**
2
2
  * becomeCoordinator/addListener actual-port regression test (#42) — becomeCoordinator(host, 0) and addListener(host, 0, policy) must report the OS-assigned port they actually bound, not the literal 0 they were called with, on every transport whose listener bookkeeping goes through listListeners().
3
- *
4
- * Run directly with a specific scenario name as an argument, or with none to run every scenario in order.
5
3
  */
6
4
  export {};
7
5
  //# sourceMappingURL=become-coordinator-actual-port.integration.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"become-coordinator-actual-port.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/become-coordinator-actual-port.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"become-coordinator-actual-port.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/become-coordinator-actual-port.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * becomeCoordinator/addListener actual-port regression test (#42) — becomeCoordinator(host, 0) and addListener(host, 0, policy) must report the OS-assigned port they actually bound, not the literal 0 they were called with, on every transport whose listener bookkeeping goes through listListeners().
3
- *
4
- * Run directly with a specific scenario name as an argument, or with none to run every scenario in order.
5
3
  */
6
- import * as assert from "node:assert/strict";
4
+ import { test, expect } from "vitest";
7
5
  import { createTlsTransport } from "wire-mesh-core/adapters/tls-transport";
8
6
  import { acceptMeshSession } from "wire-mesh-core/domain/mesh-session";
9
7
  import { WireMeshTransport, DOMAIN } from "../core/wire-mesh-transport.js";
@@ -42,8 +40,10 @@ async function testBecomeCoordinatorReportsActualPort() {
42
40
  const transport = new WireMeshTransport(noopEvents(), identity);
43
41
  await transport.becomeCoordinator("127.0.0.1", 0);
44
42
  const [listener] = transport.listListeners();
45
- assert.ok(listener);
46
- assert.notStrictEqual(listener.port, 0);
43
+ expect(listener).toBeTruthy();
44
+ if (listener === undefined)
45
+ throw new Error("expected a bound listener");
46
+ expect(listener.port).not.toBe(0);
47
47
  await connectAndClose(listener.port);
48
48
  console.log(` ✓ becomeCoordinator reported and bound the same port (${listener.port})`);
49
49
  await transport.shutdown();
@@ -54,43 +54,18 @@ async function testAddListenerReportsActualPort() {
54
54
  await transport.becomeCoordinator("127.0.0.1", 0);
55
55
  const id = await transport.addListener("127.0.0.1", 0, "observe");
56
56
  const added = transport.listListeners().find((l) => l.id === id);
57
- assert.ok(added);
58
- assert.notStrictEqual(added.port, 0);
57
+ expect(added).toBeTruthy();
58
+ if (added === undefined)
59
+ throw new Error("expected the added listener");
60
+ expect(added.port).not.toBe(0);
59
61
  await connectAndClose(added.port);
60
62
  console.log(` ✓ addListener reported and bound the same port (${added.port})`);
61
63
  await transport.shutdown();
62
64
  }
63
- // ---------------------------------------------------------------------------
64
- // Runner
65
- // ---------------------------------------------------------------------------
66
- const testName = process.argv[2];
67
- const tests = {
68
- "become-coordinator-reports-actual-port": testBecomeCoordinatorReportsActualPort,
69
- "add-listener-reports-actual-port": testAddListenerReportsActualPort,
70
- };
71
- const selected = testName === undefined
72
- ? Object.entries(tests)
73
- : Object.entries(tests).filter(([name]) => name === testName);
74
- if (selected.length === 0) {
75
- console.error(`Unknown test: ${testName}`);
76
- console.error(`Available: ${Object.keys(tests).join(", ")}`);
77
- process.exit(1);
78
- }
79
- async function run() {
80
- for (const [name, fn] of selected) {
81
- console.log(`Running ${name}:`);
82
- await fn();
83
- }
84
- const maxWait = 2000;
85
- const start = Date.now();
86
- while ((process._getActiveHandles?.()?.length ?? 0) > 0 &&
87
- Date.now() - start < maxWait) {
88
- await new Promise((resolve) => setTimeout(resolve, 50));
89
- }
90
- process.exit(0);
91
- }
92
- run().catch((err) => {
93
- console.error(`FAIL [${testName ?? "all"}]:`, err);
94
- process.exit(1);
65
+ test("become-coordinator-reports-actual-port", async () => {
66
+ await testBecomeCoordinatorReportsActualPort();
67
+ });
68
+ test("add-listener-reports-actual-port", async () => {
69
+ await testAddListenerReportsActualPort();
95
70
  });
96
71
  //# sourceMappingURL=become-coordinator-actual-port.integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"become-coordinator-actual-port.integration.test.js","sourceRoot":"","sources":["../../src/test/become-coordinator-actual-port.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"become-coordinator-actual-port.integration.test.js","sourceRoot":"","sources":["../../src/test/become-coordinator-actual-port.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,SAAS,UAAU;IACjB,OAAO;QACL,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;QAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;QAChC,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS;QACnC,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;QAC/B,mBAAmB,EAAE,GAAG,EAAE,CAAC,SAAS;QACpC,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;QAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,mBAAmB,EAAE,GAAG,EAAE,CAAC,SAAS;QACpC,oBAAoB,EAAE,GAAG,EAAE,CAAC,SAAS;QACrC,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAG,kBAAkB,CAAC;QACzC,cAAc,EAAE,cAAc,CAAC,WAAW;QAC1C,aAAa,EAAE,cAAc,CAAC,UAAU;KACzC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,EAAE;QACtE,MAAM;KACP,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,sCAAsC;IACnD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEhE,MAAM,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CACT,2DAA2D,QAAQ,CAAC,IAAI,GAAG,CAC5E,CAAC;IAEF,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,gCAAgC;IAC7C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAElD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CACT,qDAAqD,KAAK,CAAC,IAAI,GAAG,CACnE,CAAC;IAEF,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,sCAAsC,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,gCAAgC,EAAE,CAAC;AAC3C,CAAC,CAAC,CAAC"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * Unit tests for createBridgeMesh -- the shared factory every bridge builds its own MeshStore/WireMeshTransport/CommsTool from, replacing the identical four-line block each of the six bridges used to repeat against TlsTransport directly.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
4
  import * as fs from "node:fs";
6
5
  import { tmpdir } from "node:os";
7
6
  import path from "node:path";
8
- import { test } from "node:test";
7
+ import { test, expect } from "vitest";
9
8
  import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
10
9
  import { createBridgeMesh } from "../core/bridge-mesh.js";
11
10
  import { loadOrCreateIdentity, } from "../core/identity-store.js";
@@ -14,31 +13,31 @@ function tempSlot(harness) {
14
13
  const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-bridge-mesh-test-"));
15
14
  return { harness, cwd: "/tmp/project", dir };
16
15
  }
17
- void test("createBridgeMesh sets peerId to deviceIdToHex(identity.deviceId), not the certificate fingerprint", async () => {
16
+ test("createBridgeMesh sets peerId to deviceIdToHex(identity.deviceId), not the certificate fingerprint", async () => {
18
17
  const slot = tempSlot("test-harness");
19
18
  const identity = loadOrCreateIdentity(slot);
20
19
  const { store } = await createBridgeMesh(slot);
21
20
  try {
22
- assert.strictEqual(store.peerId, deviceIdToHex(Uint8Array.from(identity.deviceId)));
23
- assert.notStrictEqual(store.peerId, identity.fingerprint);
21
+ expect(store.peerId).toBe(deviceIdToHex(Uint8Array.from(identity.deviceId)));
22
+ expect(store.peerId).not.toBe(identity.fingerprint);
24
23
  }
25
24
  finally {
26
25
  await store.shutdown();
27
26
  }
28
27
  });
29
- void test("createBridgeMesh wires a WireMeshTransport", async () => {
28
+ test("createBridgeMesh wires a WireMeshTransport", async () => {
30
29
  const slot = tempSlot("test-harness");
31
30
  const { store } = await createBridgeMesh(slot);
32
31
  try {
33
32
  // init() is the only way to prove the transport is actually usable end to end, which also confirms it's a WireMeshTransport by construction (createBridgeMesh only ever builds one).
34
33
  await store.init();
35
- assert.ok(store.connected);
34
+ expect(store.connected).toBeTruthy();
36
35
  }
37
36
  finally {
38
37
  await store.shutdown();
39
38
  }
40
39
  });
41
- void test("createBridgeMesh passes an explicit coordinatorPort through to MeshStore, forming one shared mesh", async () => {
40
+ test("createBridgeMesh passes an explicit coordinatorPort through to MeshStore, forming one shared mesh", async () => {
42
41
  const slotA = tempSlot("test-harness-a");
43
42
  const slotB = tempSlot("test-harness-b");
44
43
  const port = 20_900 + Math.floor(Math.random() * 100);
@@ -47,8 +46,8 @@ void test("createBridgeMesh passes an explicit coordinatorPort through to MeshSt
47
46
  try {
48
47
  await a.store.init();
49
48
  await b.store.init();
50
- assert.ok(a.store.connected);
51
- assert.ok(b.store.connected);
49
+ expect(a.store.connected).toBeTruthy();
50
+ expect(b.store.connected).toBeTruthy();
52
51
  await a.store.registerAgent({
53
52
  name: "peer-a",
54
53
  harness: "test-harness-a",
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-mesh.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-mesh.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CACrD,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC;AAED,IAAI,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;IACnH,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACvB,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,qLAAqL;QACrL,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;IACnH,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB;YACzB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAC9D,mFAAmF,CACpF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Every production bridge calls registerAgent() immediately after store.init() returns, while the fire-and-forget peer dials are still in flight. Broadcasts landing in that window used to have nowhere to go, so the joining peer stayed invisible in established peers' list_agents until some later patch happened to arrive. The transport now queues broadcasts for dialling peers and flushes them when the connection registers.
5
5
  */
6
- import * as assert from "node:assert/strict";
6
+ import { test, expect } from "vitest";
7
7
  import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
8
8
  import { MeshStore } from "../core/mesh-store.js";
9
9
  import { WireMeshTransport } from "../core/wire-mesh-transport.js";
@@ -24,7 +24,7 @@ async function waitFor(what, check) {
24
24
  return;
25
25
  await sleep(100);
26
26
  }
27
- assert.ok(false, `timed out waiting for ${what}`);
27
+ expect(false, `timed out waiting for ${what}`).toBeTruthy();
28
28
  }
29
29
  async function main() {
30
30
  // A is the coordinator and stays up throughout.
@@ -63,10 +63,7 @@ async function main() {
63
63
  await a.shutdown();
64
64
  console.log("✓ immediate registration is visible without settle delays");
65
65
  }
66
- main().catch((err) => {
67
- console.error("Test failed:", err);
68
- process.exitCode = 1;
69
- // The sequence above keeps mesh handles open when it fails partway; exit explicitly so a failure cannot hang the runner.
70
- process.exit(1);
66
+ test("a broadcast landing while data connections are still dialling reaches the joining peer once the dial completes", async () => {
67
+ await main();
71
68
  });
72
69
  //# sourceMappingURL=broadcast-window.integration.test.js.map