agent-comms 2.18.3 → 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 (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 +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"presence-readvertise.integration.test.js","sourceRoot":"","sources":["../../src/test/presence-readvertise.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence-readvertise.integration.test.js","sourceRoot":"","sources":["../../src/test/presence-readvertise.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert/strict";
1
+ import { describe, it, expect } from "vitest";
3
2
  import { randomId } from "../core/random-id.js";
4
3
  describe("randomId", () => {
5
4
  it("returns 16 bytes", () => {
6
5
  const id = randomId();
7
- assert.equal(id.length, 16);
6
+ expect(id.length).toBe(16);
8
7
  });
9
8
  it("returns a different value on each call", () => {
10
9
  const a = randomId();
11
10
  const b = randomId();
12
- assert.notDeepEqual(a, b);
11
+ expect(a).not.toEqual(b);
13
12
  });
14
13
  });
15
14
  //# sourceMappingURL=random-id.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"random-id.test.js","sourceRoot":"","sources":["../../src/test/random-id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"random-id.test.js","sourceRoot":"","sources":["../../src/test/random-id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Unit tests for the room_accept/room_reject/room_pending CommsTool actions -- the human-facing wrapper around MeshStore's own acceptRoomJoin/rejectRoomJoin/listPendingRoomJoins, additive alongside (never replacing) the existing mesh_accept/mesh_reject/mesh_pending connection-level actions.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
- import { describe, it } from "node:test";
4
+ import { describe, it, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
6
  import { CommsTool } from "../core/tool.js";
8
7
  import { buildAction } from "../core/bridge.js";
@@ -35,7 +34,9 @@ describe("room admission CommsTool actions", () => {
35
34
  description: "",
36
35
  });
37
36
  const handler = store.roomVerbHandlers["room.join"];
38
- assert.ok(handler);
37
+ expect(handler).toBeTruthy();
38
+ if (handler === undefined)
39
+ throw new Error("expected a room.join handler to be registered");
39
40
  void handler(fakeJoinRequest(room.id), { id: REQUESTER_ID });
40
41
  const tool = new CommsTool(store);
41
42
  const ctx = {
@@ -45,9 +46,9 @@ describe("room admission CommsTool actions", () => {
45
46
  pid: process.pid,
46
47
  };
47
48
  const pendingResult = await tool.handle(ctx, buildAction({ action: "room_pending" }));
48
- assert.equal(pendingResult.isError, false);
49
- assert.ok(pendingResult.content.includes(room.id));
50
- assert.ok(pendingResult.content.includes(REQUESTER_ID));
49
+ expect(pendingResult.isError).toBe(false);
50
+ expect(pendingResult.content.includes(room.id)).toBeTruthy();
51
+ expect(pendingResult.content.includes(REQUESTER_ID)).toBeTruthy();
51
52
  });
52
53
  it("room_accept grants the pending request", async () => {
53
54
  const store = new MeshStore();
@@ -67,7 +68,9 @@ describe("room admission CommsTool actions", () => {
67
68
  description: "",
68
69
  });
69
70
  const handler = store.roomVerbHandlers["room.join"];
70
- assert.ok(handler);
71
+ expect(handler).toBeTruthy();
72
+ if (handler === undefined)
73
+ throw new Error("expected a room.join handler to be registered");
71
74
  const outcomePromise = handler(fakeJoinRequest(room.id), {
72
75
  id: REQUESTER_ID,
73
76
  });
@@ -83,11 +86,11 @@ describe("room admission CommsTool actions", () => {
83
86
  room: room.id,
84
87
  requesterId: REQUESTER_ID,
85
88
  }));
86
- assert.equal(acceptResult.isError, false);
89
+ expect(acceptResult.isError).toBe(false);
87
90
  const outcome = await outcomePromise;
88
- assert.equal(outcome.result, "ok");
91
+ expect(outcome.result).toBe("ok");
89
92
  const pendingAfter = await tool.handle(ctx, buildAction({ action: "room_pending" }));
90
- assert.equal(pendingAfter.content, "No pending room join requests.");
93
+ expect(pendingAfter.content).toBe("No pending room join requests.");
91
94
  });
92
95
  it("room_reject denies the pending request with an optional reason", async () => {
93
96
  const store = new MeshStore();
@@ -107,7 +110,9 @@ describe("room admission CommsTool actions", () => {
107
110
  description: "",
108
111
  });
109
112
  const handler = store.roomVerbHandlers["room.join"];
110
- assert.ok(handler);
113
+ expect(handler).toBeTruthy();
114
+ if (handler === undefined)
115
+ throw new Error("expected a room.join handler to be registered");
111
116
  const outcomePromise = handler(fakeJoinRequest(room.id), {
112
117
  id: REQUESTER_ID,
113
118
  });
@@ -124,11 +129,11 @@ describe("room admission CommsTool actions", () => {
124
129
  requesterId: REQUESTER_ID,
125
130
  reason: "not now",
126
131
  }));
127
- assert.equal(rejectResult.isError, false);
132
+ expect(rejectResult.isError).toBe(false);
128
133
  const outcome = await outcomePromise;
129
- assert.equal(outcome.result, "error");
134
+ expect(outcome.result).toBe("error");
130
135
  if (outcome.result === "error") {
131
- assert.equal(outcome.message, "not now");
136
+ expect(outcome.message).toBe("not now");
132
137
  }
133
138
  });
134
139
  it("room_accept on a store with no matching pending request reports failure, not a crash", async () => {
@@ -154,7 +159,7 @@ describe("room admission CommsTool actions", () => {
154
159
  room: "not-a-real-room",
155
160
  requesterId: REQUESTER_ID,
156
161
  }));
157
- assert.equal(result.isError, true);
162
+ expect(result.isError).toBe(true);
158
163
  });
159
164
  });
160
165
  //# sourceMappingURL=room-admission-tool-actions.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-admission-tool-actions.test.js","sourceRoot":"","sources":["../../src/test/room-admission-tool-actions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-admission-tool-actions.test.js","sourceRoot":"","sources":["../../src/test/room-admission-tool-actions.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Integration test for destroy-via-revocation (P3.8): destroying a room revokes every member's own room:member grant for real, the same way kicking one member already does, so a fellow member's own independent token verification rejects a former member's message even after the room itself is gone from the owner's own bookkeeping.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
- import { test } from "node:test";
4
+ import { test, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
6
  import { waitFor, wireTestTransport } from "./test-transport.js";
8
7
  let nextPort = 21_410;
@@ -32,7 +31,7 @@ async function joinAndAccept(owner, member, roomId) {
32
31
  owner.acceptRoomJoin(roomId, member.peerId);
33
32
  await joinPromise;
34
33
  }
35
- void test("destroying a room revokes every member's own grant for every peer, not just the owner", async () => {
34
+ test("destroying a room revokes every member's own grant for every peer, not just the owner", async () => {
36
35
  const port = freshPort();
37
36
  const owner = await makeRegisteredStore(port, "owner");
38
37
  const memberA = await makeRegisteredStore(port, "member-a");
@@ -53,7 +52,7 @@ void test("destroying a room revokes every member's own grant for every peer, no
53
52
  await owner.destroyRoom(room.id, owner.peerId);
54
53
  // Settles the revocation-announce destroyRoom just broadcast for every member: B's own drain loop processes it asynchronously off the wire, with no observable side effect from outside B's own store to wait on affirmatively.
55
54
  await new Promise((resolve) => setTimeout(resolve, 300));
56
- await assert.rejects(memberA.sendRoomMessageDirected(room.id, memberB.peerId, "still here?"), /unauthorized/, "B must reject a room.send sent under a grant the owner already revoked by destroying the room");
55
+ await expect(memberA.sendRoomMessageDirected(room.id, memberB.peerId, "still here?"), "B must reject a room.send sent under a grant the owner already revoked by destroying the room").rejects.toThrow(/unauthorized/);
57
56
  }
58
57
  finally {
59
58
  await memberB.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"room-destroy-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-destroy-revocation.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-destroy-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-destroy-revocation.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Integration test for room.invite's real wire-level path (P3.8): the room owner pushes an already-minted room:member grant to a target directly, over a real, wire-authenticated room.invite -- replacing the legacy broadcastPatch/deliverLocallyAndBroadcast fan-out (which reached every mesh-connected peer with a "delivery" patch, not just the intended target) with a directed request the target itself verifies before persisting the token.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
- import { test } from "node:test";
4
+ import { test, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
6
  import { loadRoomTokens } from "../core/identity-store.js";
8
7
  import { waitFor, wireTestTransport } from "./test-transport.js";
@@ -37,7 +36,7 @@ async function makeConnectedPair(port) {
37
36
  await waitFor(() => owner.serialise().agents[target.peerId] !== undefined, "owner sees the target agent");
38
37
  return { owner, target, targetSlot };
39
38
  }
40
- void test("inviting a target delivers a real room_invite carrying the room's own name/description and the inviter's own name/cwd", async () => {
39
+ test("inviting a target delivers a real room_invite carrying the room's own name/description and the inviter's own name/cwd", async () => {
41
40
  const { owner, target, targetSlot } = await makeConnectedPair(freshPort());
42
41
  try {
43
42
  const room = await owner.createRoom({
@@ -53,21 +52,23 @@ void test("inviting a target delivers a real room_invite carrying the room's own
53
52
  await owner.inviteToRoom(room.id, target.peerId, owner.peerId);
54
53
  await waitFor(() => targetDeliveries.some((event) => event.type === "room_invite"), "target receives the invite");
55
54
  const invite = targetDeliveries.find((event) => event.type === "room_invite");
56
- assert.ok(invite);
57
- assert.equal(invite.room, room.id);
58
- assert.equal(invite.roomDescription, "the main room");
59
- assert.equal(invite.from, owner.peerId);
60
- assert.equal(invite.fromName, "owner");
61
- assert.equal(invite.fromCwd, "/test/owner");
55
+ expect(invite).toBeTruthy();
56
+ if (invite === undefined)
57
+ throw new Error("expected a room_invite delivery event");
58
+ expect(invite.room).toBe(room.id);
59
+ expect(invite.roomDescription).toBe("the main room");
60
+ expect(invite.from).toBe(owner.peerId);
61
+ expect(invite.fromName).toBe("owner");
62
+ expect(invite.fromCwd).toBe("/test/owner");
62
63
  // The pushed grant is usable, not just delivered: the target holds a real, persisted room:member token for the room now.
63
- assert.ok(loadRoomTokens(targetSlot)[room.id]);
64
+ expect(loadRoomTokens(targetSlot)[room.id]).toBeTruthy();
64
65
  }
65
66
  finally {
66
67
  await target.shutdown();
67
68
  await owner.shutdown();
68
69
  }
69
70
  });
70
- void test("inviting an unreachable target throws rather than silently dropping the invite", async () => {
71
+ test("inviting an unreachable target throws rather than silently dropping the invite", async () => {
71
72
  const owner = new MeshStore(freshPort());
72
73
  await wireTestTransport(owner);
73
74
  await owner.init();
@@ -87,7 +88,7 @@ void test("inviting an unreachable target throws rather than silently dropping t
87
88
  description: "",
88
89
  });
89
90
  const strangerId = "b".repeat(64);
90
- await assert.rejects(owner.inviteToRoom(room.id, strangerId, owner.peerId), { code: "INVITE_FAILED" });
91
+ await expect(owner.inviteToRoom(room.id, strangerId, owner.peerId)).rejects.toMatchObject({ code: "INVITE_FAILED" });
91
92
  }
92
93
  finally {
93
94
  await owner.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"room-invite-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-invite-directed.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-invite-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-invite-directed.integration.test.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@
6
6
  import * as fs from "node:fs";
7
7
  import * as path from "node:path";
8
8
  import { tmpdir } from "node:os";
9
- import * as assert from "node:assert/strict";
10
- import { describe, it } from "node:test";
9
+ import { describe, it, expect } from "vitest";
11
10
  import { deviceIdFromHex, deviceIdToHex, } from "wire-mesh-core/domain/device-id";
12
11
  import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
13
12
  import { createRevocationView } from "wire-mesh-core/domain/revocation-view";
@@ -49,23 +48,25 @@ describe("handleRoomJoin (owner side)", () => {
49
48
  description: "",
50
49
  });
51
50
  const handler = store.roomVerbHandlers["room.join"];
52
- assert.ok(handler, "expected a registered room.join handler");
51
+ expect(handler, "expected a registered room.join handler").toBeTruthy();
52
+ if (handler === undefined)
53
+ throw new Error("expected a registered room.join handler");
53
54
  const handle = { id: REQUESTER_ID };
54
55
  const { request } = fakeRequest(room.id);
55
56
  const outcomePromise = handler(request, handle);
56
- assert.deepEqual(store.listPendingRoomJoins(), [
57
+ expect(store.listPendingRoomJoins()).toEqual([
57
58
  { roomPath: room.id, requesterId: REQUESTER_ID },
58
59
  ]);
59
60
  store.acceptRoomJoin(room.id, REQUESTER_ID);
60
61
  const outcome = await outcomePromise;
61
- assert.equal(outcome.result, "ok");
62
+ expect(outcome.result).toBe("ok");
62
63
  if (outcome.result !== "ok")
63
64
  return;
64
- assert.deepEqual(store.listPendingRoomJoins(), []);
65
+ expect(store.listPendingRoomJoins()).toEqual([]);
65
66
  const token = outcome["granted-token"];
66
- assert.ok(token !== undefined, "expected a granted-token in the outcome");
67
+ expect(token, "expected a granted-token in the outcome").toBeDefined();
67
68
  const roomAfterJoin = await store.getRoom(room.id);
68
- assert.ok(roomAfterJoin?.members.includes(REQUESTER_ID));
69
+ expect(roomAfterJoin?.members.includes(REQUESTER_ID)).toBeTruthy();
69
70
  });
70
71
  it("denies the request without minting anything on rejection", async () => {
71
72
  const store = new MeshStore();
@@ -85,15 +86,17 @@ describe("handleRoomJoin (owner side)", () => {
85
86
  description: "",
86
87
  });
87
88
  const handler = store.roomVerbHandlers["room.join"];
88
- assert.ok(handler);
89
+ expect(handler).toBeTruthy();
90
+ if (handler === undefined)
91
+ throw new Error("expected a room.join handler to be registered");
89
92
  const handle = { id: REQUESTER_ID };
90
93
  const { request } = fakeRequest(room.id);
91
94
  const outcomePromise = handler(request, handle);
92
95
  store.rejectRoomJoin(room.id, REQUESTER_ID);
93
96
  const outcome = await outcomePromise;
94
- assert.equal(outcome.result, "error");
97
+ expect(outcome.result).toBe("error");
95
98
  const roomAfterReject = await store.getRoom(room.id);
96
- assert.equal(roomAfterReject?.members.includes(REQUESTER_ID), false);
99
+ expect(roomAfterReject?.members.includes(REQUESTER_ID)).toBe(false);
97
100
  });
98
101
  it("refuses a DM path naming neither of its own device as a participant, with no pending entry created", async () => {
99
102
  const store = new MeshStore();
@@ -101,12 +104,14 @@ describe("handleRoomJoin (owner side)", () => {
101
104
  // Neither "c"x64 nor "d"x64 is this store's own peerId, so this DM path names a conversation the store has no part in -- the dm-admission integration tests cover the genuinely-a-participant case end to end.
102
105
  const dmPath = `${deviceIdToHex(deviceIdFromHex("c".repeat(64)))}+${deviceIdToHex(deviceIdFromHex("d".repeat(64)))}`;
103
106
  const handler = store.roomVerbHandlers["room.join"];
104
- assert.ok(handler);
107
+ expect(handler).toBeTruthy();
108
+ if (handler === undefined)
109
+ throw new Error("expected a room.join handler to be registered");
105
110
  const handle = { id: REQUESTER_ID };
106
111
  const { request } = fakeRequest(dmPath);
107
112
  const outcome = await handler(request, handle);
108
- assert.equal(outcome.result, "error");
109
- assert.deepEqual(store.listPendingRoomJoins(), []);
113
+ expect(outcome.result).toBe("error");
114
+ expect(store.listPendingRoomJoins()).toEqual([]);
110
115
  });
111
116
  it("refuses a named room this store doesn't own", async () => {
112
117
  const store = new MeshStore();
@@ -114,12 +119,14 @@ describe("handleRoomJoin (owner side)", () => {
114
119
  const someoneElse = "e".repeat(64);
115
120
  const roomPath = ownerNamedRoomPath(someoneElse, "general");
116
121
  const handler = store.roomVerbHandlers["room.join"];
117
- assert.ok(handler);
122
+ expect(handler).toBeTruthy();
123
+ if (handler === undefined)
124
+ throw new Error("expected a room.join handler to be registered");
118
125
  const handle = { id: REQUESTER_ID };
119
126
  const { request } = fakeRequest(roomPath);
120
127
  const outcome = await handler(request, handle);
121
- assert.equal(outcome.result, "error");
122
- assert.deepEqual(store.listPendingRoomJoins(), []);
128
+ expect(outcome.result).toBe("error");
129
+ expect(store.listPendingRoomJoins()).toEqual([]);
123
130
  });
124
131
  });
125
132
  describe("joinRoom (requester side, remote path)", () => {
@@ -152,7 +159,7 @@ describe("joinRoom (requester side, remote path)", () => {
152
159
  expires: Date.now() + 60_000,
153
160
  delegationsRemaining: 0,
154
161
  });
155
- assert.ok(grantedTokenVerdict.ok, "expected the fixture token to mint successfully");
162
+ expect(grantedTokenVerdict.ok, "expected the fixture token to mint successfully").toBeTruthy();
156
163
  if (!grantedTokenVerdict.ok)
157
164
  return;
158
165
  const grantedToken = grantedTokenVerdict.token;
@@ -173,7 +180,7 @@ describe("joinRoom (requester side, remote path)", () => {
173
180
  broadcastRevocation: async () => { },
174
181
  sendRoomRequest: async (_memberId, command, scope) => {
175
182
  capturedRoomPath = scope.path;
176
- assert.deepEqual(command.params, { verb: "room.join" });
183
+ expect(command.params).toEqual({ verb: "room.join" });
177
184
  return {
178
185
  result: "ok",
179
186
  "granted-token": grantedToken,
@@ -187,13 +194,13 @@ describe("joinRoom (requester side, remote path)", () => {
187
194
  unref: () => { },
188
195
  };
189
196
  store.setTransport(fakeTransport);
190
- assert.equal(await store.getRoom(roomPath), undefined);
197
+ expect(await store.getRoom(roomPath)).toBe(undefined);
191
198
  const joined = await store.joinRoom(roomPath, store.peerId);
192
- assert.equal(joined.id, roomPath);
193
- assert.equal(capturedRoomPath, roomPath);
194
- assert.ok(joined.members.includes(store.peerId));
199
+ expect(joined.id).toBe(roomPath);
200
+ expect(capturedRoomPath).toBe(roomPath);
201
+ expect(joined.members.includes(store.peerId)).toBeTruthy();
195
202
  const tokens = loadRoomTokens(slot);
196
- assert.ok(tokens[roomPath] !== undefined, "expected the granted token to be persisted");
203
+ expect(tokens[roomPath], "expected the granted token to be persisted").toBeDefined();
197
204
  });
198
205
  });
199
206
  //# sourceMappingURL=room-join-admission.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-join-admission.test.js","sourceRoot":"","sources":["../../src/test/room-join-admission.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-join-admission.test.js","sourceRoot":"","sources":["../../src/test/room-join-admission.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@
3
3
  *
4
4
  * Three real peers: owner (mints and later revokes A's grant), A (the member being kicked), and B (a fellow member who never talks to A about the kick directly -- B's own rejection of A's post-kick message is what proves the revocation-announce genuinely propagated over the wire, not merely that owner's own local view updated).
5
5
  */
6
- import * as assert from "node:assert/strict";
7
- import { test } from "node:test";
6
+ import { test, expect } from "vitest";
8
7
  import { MeshStore } from "../core/mesh-store.js";
9
8
  import { waitFor, wireTestTransport } from "./test-transport.js";
10
9
  let nextPort = 21_110;
@@ -35,7 +34,7 @@ async function joinAndAccept(owner, member, roomId) {
35
34
  owner.acceptRoomJoin(roomId, member.peerId);
36
35
  await joinPromise;
37
36
  }
38
- void test("kicking a member revokes their room:member token for every peer, not just the owner", async () => {
37
+ test("kicking a member revokes their room:member token for every peer, not just the owner", async () => {
39
38
  const port = freshPort();
40
39
  const owner = await makeRegisteredStore(port, "owner");
41
40
  const memberA = await makeRegisteredStore(port, "member-a");
@@ -66,9 +65,9 @@ void test("kicking a member revokes their room:member token for every peer, not
66
65
  // Settles the revocation-announce this kick just broadcast: B's own drain loop processes it asynchronously off the wire, with no observable side effect from outside B's own store to wait on affirmatively.
67
66
  await new Promise((resolve) => setTimeout(resolve, 300));
68
67
  // sendRoomMessage (not used here) re-checks this store's own local CRDT room.members list, which the kick's own legacy room_upsert patch has by now also reached A through -- that would mask exactly what this test needs to isolate. sendRoomMessageDirected instead only ever consults A's own persisted bearer token (never revoked by kickFromRoom, which revokes the OWNER's own record of having issued it, not A's own copy), so it genuinely simulates a still-token-holding A trying to reach B directly -- the real scenario a token-side revocation exists to stop, independent of whatever A's own CRDT view happens to already know. B's own handleRoomSend rejects it with "unauthorized" (the announced revocation now verifies as revoked on B's own independent check), which sendRoomMessageDirected surfaces as a thrown error rather than swallowing it the way the fan-out path does.
69
- await assert.rejects(memberA.sendRoomMessageDirected(room.id, memberB.peerId, "after the kick"), /unauthorized/, "B must reject a room.send sent under a token its owner already revoked");
70
- assert.equal(bDeliveries.some((event) => event.type === "room_message" &&
71
- event.message.content === "after the kick"), false, "B must not have delivered a message sent under a revoked token");
68
+ await expect(memberA.sendRoomMessageDirected(room.id, memberB.peerId, "after the kick"), "B must reject a room.send sent under a token its owner already revoked").rejects.toThrow(/unauthorized/);
69
+ expect(bDeliveries.some((event) => event.type === "room_message" &&
70
+ event.message.content === "after the kick"), "B must not have delivered a message sent under a revoked token").toBe(false);
72
71
  }
73
72
  finally {
74
73
  await memberB.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"room-kick-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-kick-revocation.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-kick-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-kick-revocation.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Integration tests for room.leave's real wire-level path (P3.8): a member leaving, or a target declining an invite it never joined, both tell the room's own owner over a real, wire-authenticated room.leave -- the owner revokes the sender's own grant for real (the same revocation machinery kickFromRoom already uses) and notifies accordingly (member_left for a real leave, invite_declined for a decline), rather than each mutating a local Room record nobody else reads.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
- import { test } from "node:test";
4
+ import { test, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
6
  import { loadRoomTokens } from "../core/identity-store.js";
8
7
  import { waitFor, wireTestTransport } from "./test-transport.js";
@@ -33,7 +32,7 @@ async function joinAndAccept(owner, member, roomId) {
33
32
  owner.acceptRoomJoin(roomId, member.peerId);
34
33
  await joinPromise;
35
34
  }
36
- void test("a member leaving revokes its own grant and notifies the other members", async () => {
35
+ test("a member leaving revokes its own grant and notifies the other members", async () => {
37
36
  const port = freshPort();
38
37
  const { store: owner } = await makeRegisteredStore(port, "owner");
39
38
  const { store: memberA, slot: aSlot } = await makeRegisteredStore(port, "member-a");
@@ -56,8 +55,8 @@ void test("a member leaving revokes its own grant and notifies the other members
56
55
  await memberA.leaveRoom(room.id, memberA.peerId);
57
56
  await waitFor(() => ownerDeliveries.some((event) => event.type === "member_left" && event.agent === memberA.peerId), "owner is notified that A left");
58
57
  // A's own local token is gone, and A can no longer act as a member.
59
- assert.equal(loadRoomTokens(aSlot)[room.id], undefined);
60
- await assert.rejects(memberA.sendRoomMessageDirected(room.id, owner.peerId, "still here?"), { code: "NOT_A_MEMBER" });
58
+ expect(loadRoomTokens(aSlot)[room.id]).toBe(undefined);
59
+ await expect(memberA.sendRoomMessageDirected(room.id, owner.peerId, "still here?")).rejects.toMatchObject({ code: "NOT_A_MEMBER" });
61
60
  }
62
61
  finally {
63
62
  await memberB.shutdown();
@@ -65,7 +64,7 @@ void test("a member leaving revokes its own grant and notifies the other members
65
64
  await owner.shutdown();
66
65
  }
67
66
  });
68
- void test("declining an invite before ever joining revokes the pushed grant and notifies the owner", async () => {
67
+ test("declining an invite before ever joining revokes the pushed grant and notifies the owner", async () => {
69
68
  const port = freshPort();
70
69
  const { store: owner } = await makeRegisteredStore(port, "owner");
71
70
  const { store: target, slot: targetSlot } = await makeRegisteredStore(port, "target");
@@ -86,9 +85,11 @@ void test("declining an invite before ever joining revokes the pushed grant and
86
85
  await target.declineInvite(room.id, target.peerId, "not right now");
87
86
  await waitFor(() => ownerDeliveries.some((event) => event.type === "invite_declined" && event.agent === target.peerId), "owner is notified of the decline");
88
87
  const declined = ownerDeliveries.find((event) => event.type === "invite_declined");
89
- assert.ok(declined);
90
- assert.equal(declined.reason, "not right now");
91
- assert.equal(loadRoomTokens(targetSlot)[room.id], undefined);
88
+ expect(declined).toBeTruthy();
89
+ if (declined === undefined)
90
+ throw new Error("expected an invite_declined delivery event");
91
+ expect(declined.reason).toBe("not right now");
92
+ expect(loadRoomTokens(targetSlot)[room.id]).toBe(undefined);
92
93
  }
93
94
  finally {
94
95
  await target.shutdown();