agent-comms 8.8.1 → 8.9.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 (72) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +7 -1
  4. package/dist/core/election-sessions.d.ts +2 -0
  5. package/dist/core/election-sessions.d.ts.map +1 -1
  6. package/dist/core/election-sessions.js +4 -0
  7. package/dist/core/election-sessions.js.map +1 -1
  8. package/dist/core/gossip-directory.d.ts +3 -0
  9. package/dist/core/gossip-directory.d.ts.map +1 -1
  10. package/dist/core/gossip-directory.js +11 -2
  11. package/dist/core/gossip-directory.js.map +1 -1
  12. package/dist/core/gossip-extensions.d.ts +3 -0
  13. package/dist/core/gossip-extensions.d.ts.map +1 -1
  14. package/dist/core/gossip-extensions.js +17 -0
  15. package/dist/core/gossip-extensions.js.map +1 -1
  16. package/dist/core/hub-link.d.ts +13 -5
  17. package/dist/core/hub-link.d.ts.map +1 -1
  18. package/dist/core/hub-link.js +28 -6
  19. package/dist/core/hub-link.js.map +1 -1
  20. package/dist/core/hub-session.d.ts +11 -0
  21. package/dist/core/hub-session.d.ts.map +1 -1
  22. package/dist/core/hub-session.js +28 -1
  23. package/dist/core/hub-session.js.map +1 -1
  24. package/dist/core/mesh-store.d.ts +1 -1
  25. package/dist/core/mesh-store.d.ts.map +1 -1
  26. package/dist/core/mesh-store.js +4 -14
  27. package/dist/core/mesh-store.js.map +1 -1
  28. package/dist/core/relay-role.d.ts +61 -0
  29. package/dist/core/relay-role.d.ts.map +1 -0
  30. package/dist/core/relay-role.js +147 -0
  31. package/dist/core/relay-role.js.map +1 -0
  32. package/dist/core/relay-selection.d.ts +35 -0
  33. package/dist/core/relay-selection.d.ts.map +1 -0
  34. package/dist/core/relay-selection.js +80 -0
  35. package/dist/core/relay-selection.js.map +1 -0
  36. package/dist/core/relay-server.d.ts +48 -0
  37. package/dist/core/relay-server.d.ts.map +1 -0
  38. package/dist/core/relay-server.js +181 -0
  39. package/dist/core/relay-server.js.map +1 -0
  40. package/dist/core/relay-uplink.d.ts +22 -0
  41. package/dist/core/relay-uplink.d.ts.map +1 -0
  42. package/dist/core/relay-uplink.js +62 -0
  43. package/dist/core/relay-uplink.js.map +1 -0
  44. package/dist/core/transport.d.ts +4 -0
  45. package/dist/core/transport.d.ts.map +1 -1
  46. package/dist/core/wire-mesh-transport-options.d.ts +2 -0
  47. package/dist/core/wire-mesh-transport-options.d.ts.map +1 -1
  48. package/dist/core/wire-mesh-transport-options.js.map +1 -1
  49. package/dist/core/wire-mesh-transport.d.ts +3 -2
  50. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  51. package/dist/core/wire-mesh-transport.js +23 -20
  52. package/dist/core/wire-mesh-transport.js.map +1 -1
  53. package/dist/core/ws-dial.d.ts +3 -0
  54. package/dist/core/ws-dial.d.ts.map +1 -1
  55. package/dist/core/ws-dial.js +3 -2
  56. package/dist/core/ws-dial.js.map +1 -1
  57. package/dist/test/gossip-directory.unit.test.js +14 -0
  58. package/dist/test/gossip-directory.unit.test.js.map +1 -1
  59. package/dist/test/hub-link.unit.test.js +53 -7
  60. package/dist/test/hub-link.unit.test.js.map +1 -1
  61. package/dist/test/relay-role.integration.test.d.ts +5 -0
  62. package/dist/test/relay-role.integration.test.d.ts.map +1 -0
  63. package/dist/test/relay-role.integration.test.js +134 -0
  64. package/dist/test/relay-role.integration.test.js.map +1 -0
  65. package/dist/test/relay-selection.unit.test.d.ts +5 -0
  66. package/dist/test/relay-selection.unit.test.d.ts.map +1 -0
  67. package/dist/test/relay-selection.unit.test.js +103 -0
  68. package/dist/test/relay-selection.unit.test.js.map +1 -0
  69. package/dist/test/test-transport.d.ts.map +1 -1
  70. package/dist/test/test-transport.js +2 -0
  71. package/dist/test/test-transport.js.map +1 -1
  72. package/package.json +1 -1
@@ -0,0 +1,103 @@
1
+ /**
2
+ * The relay selection policy (agent-comms#342): a relay on this machine, then one on the local network, then any trusted relay-offering device, then the configured public hub, with deny-by-default trust for every offer not from a machine-local peer.
3
+ */
4
+ import { describe, expect, it } from "vitest";
5
+ import { selectRelay } from "../core/relay-selection.js";
6
+ const DEVICE_ID_HEX_LENGTH = 64;
7
+ const PUBLIC_HUB = "wss://mesh.example.com/";
8
+ const OWN = "0".repeat(DEVICE_ID_HEX_LENGTH);
9
+ const MACHINE_PEER = "1".repeat(DEVICE_ID_HEX_LENGTH);
10
+ const LAN_PEER = "2".repeat(DEVICE_ID_HEX_LENGTH);
11
+ const REMOTE_PEER = "3".repeat(DEVICE_ID_HEX_LENGTH);
12
+ const STRANGER = "4".repeat(DEVICE_ID_HEX_LENGTH);
13
+ const machineOffer = {
14
+ deviceHex: MACHINE_PEER,
15
+ addresses: ["ws://127.0.0.1:4100/", "ws://192.168.1.10:4100/"],
16
+ machineLocal: true,
17
+ };
18
+ const lanOffer = {
19
+ deviceHex: LAN_PEER,
20
+ addresses: ["ws://127.0.0.1:4200/", "ws://10.0.0.7:4200/"],
21
+ machineLocal: false,
22
+ };
23
+ const remoteOffer = {
24
+ deviceHex: REMOTE_PEER,
25
+ addresses: ["wss://relay.example.net/"],
26
+ machineLocal: false,
27
+ };
28
+ function select(offers, trusted = [LAN_PEER, REMOTE_PEER]) {
29
+ return selectRelay({
30
+ offers,
31
+ isTrusted: (hex) => trusted.includes(hex),
32
+ ownDeviceHex: OWN,
33
+ publicHubUrl: PUBLIC_HUB,
34
+ });
35
+ }
36
+ describe("selectRelay", () => {
37
+ it("prefers a relay on this machine, over its loopback address", () => {
38
+ expect(select([remoteOffer, lanOffer, machineOffer])).toEqual({
39
+ url: "ws://127.0.0.1:4100/",
40
+ tier: "machine",
41
+ deviceHex: MACHINE_PEER,
42
+ });
43
+ });
44
+ it("falls to a trusted relay on the local network next, over its private address", () => {
45
+ expect(select([remoteOffer, lanOffer])).toEqual({
46
+ url: "ws://10.0.0.7:4200/",
47
+ tier: "lan",
48
+ deviceHex: LAN_PEER,
49
+ });
50
+ });
51
+ it("falls to any trusted relay-offering device next", () => {
52
+ expect(select([remoteOffer])).toEqual({
53
+ url: "wss://relay.example.net/",
54
+ tier: "trusted",
55
+ deviceHex: REMOTE_PEER,
56
+ });
57
+ });
58
+ it("falls back to the configured public hub when no offer qualifies", () => {
59
+ expect(select([])).toEqual({ url: PUBLIC_HUB, tier: "public" });
60
+ });
61
+ it("never uses an offer from an untrusted device, however well placed", () => {
62
+ const strangerOffer = {
63
+ deviceHex: STRANGER,
64
+ addresses: ["ws://192.168.1.99:4300/", "wss://stranger.example.org/"],
65
+ machineLocal: false,
66
+ };
67
+ expect(select([strangerOffer, remoteOffer])).toEqual({
68
+ url: "wss://relay.example.net/",
69
+ tier: "trusted",
70
+ deviceHex: REMOTE_PEER,
71
+ });
72
+ expect(select([strangerOffer])).toEqual({
73
+ url: PUBLIC_HUB,
74
+ tier: "public",
75
+ });
76
+ });
77
+ it("never reaches a device learned through a hub over a loopback address, which would only reach this machine", () => {
78
+ const loopbackOnly = {
79
+ deviceHex: REMOTE_PEER,
80
+ addresses: ["ws://127.0.0.1:4400/"],
81
+ machineLocal: false,
82
+ };
83
+ expect(select([loopbackOnly])).toEqual({ url: PUBLIC_HUB, tier: "public" });
84
+ });
85
+ it("never relays through this store's own offer", () => {
86
+ expect(select([{ ...machineOffer, deviceHex: OWN }])).toEqual({
87
+ url: PUBLIC_HUB,
88
+ tier: "public",
89
+ });
90
+ });
91
+ it("ignores an address that is not a ws:// or wss:// URL", () => {
92
+ expect(select([{ ...remoteOffer, addresses: ["tcp://relay.example.net:9"] }])).toEqual({ url: PUBLIC_HUB, tier: "public" });
93
+ });
94
+ it("breaks a tie within a tier by lowest device-id, so every store hearing the same offers chooses alike", () => {
95
+ const otherLan = {
96
+ deviceHex: "1".repeat(DEVICE_ID_HEX_LENGTH),
97
+ addresses: ["ws://192.168.5.5:4500/"],
98
+ machineLocal: false,
99
+ };
100
+ expect(select([lanOffer, otherLan], [LAN_PEER, otherLan.deviceHex]).deviceHex).toBe(otherLan.deviceHex);
101
+ });
102
+ });
103
+ //# sourceMappingURL=relay-selection.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-selection.unit.test.js","sourceRoot":"","sources":["../../src/test/relay-selection.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-transport.d.ts","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;AAKjc,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,msCAAmsC;AACnsC,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAC1C,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,mBAAmB,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAChE,kKAAkK;IAClK,sBAAsB,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IACtE,4aAA4a;IAC5a,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,GAAG,SAAS,CAAC;IAC9E,6HAA6H;IAC7H,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,kLAAkL;IAClL,WAAW,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1C,yGAAyG;IACzG,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAiFD,msCAAmsC;AACnsC,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED,qcAAqc;AACrc,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAE/D;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,SAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,qKAAqK;AACrK,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAM,GACjD,eAAe,CAiBjB"}
1
+ {"version":3,"file":"test-transport.d.ts","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;AAKjc,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,msCAAmsC;AACnsC,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAC1C,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,mBAAmB,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAChE,kKAAkK;IAClK,sBAAsB,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IACtE,4aAA4a;IAC5a,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,GAAG,SAAS,CAAC;IAC9E,6HAA6H;IAC7H,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,kLAAkL;IAClL,WAAW,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1C,yGAAyG;IACzG,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAmFD,msCAAmsC;AACnsC,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED,qcAAqc;AACrc,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAE/D;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,SAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,qKAAqK;AACrK,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAM,GACjD,eAAe,CAiBjB"}
@@ -50,6 +50,8 @@ async function wireTransportInternal(store, options) {
50
50
  isAccountMember: async (claim) => store.membership.isAccountMember(claim),
51
51
  },
52
52
  gatewayTrust: store.gatewayTrust,
53
+ // A store that comes to serve the relay role (agent-comms#342) serves loopback only, so a test never opens a listener on the local network.
54
+ relayListenHost: "127.0.0.1",
53
55
  });
54
56
  store.setTransport(transport);
55
57
  store.setIdentity({
@@ -1 +1 @@
1
- {"version":3,"file":"test-transport.js","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-transport.js","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-comms",
3
3
  "description": "Cross-harness communication mesh for LLM agents — rooms, DMs, presence, and real-time push delivery over TCP",
4
- "version": "8.8.1",
4
+ "version": "8.9.0",
5
5
  "bin": {
6
6
  "agent-comms": "dist/cli.js"
7
7
  },