agent-comms 8.11.0 → 8.13.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 (45) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/LICENSE +21 -0
  4. package/README.md +3 -3
  5. package/dist/bridges/user/web/dist/bundle.js +1 -1
  6. package/dist/bridges/user/web/dist/sw.js +1 -1
  7. package/dist/core/account-join.d.ts +5 -0
  8. package/dist/core/account-join.d.ts.map +1 -1
  9. package/dist/core/account-join.js +3 -3
  10. package/dist/core/account-join.js.map +1 -1
  11. package/dist/core/agent-details.d.ts +67 -0
  12. package/dist/core/agent-details.d.ts.map +1 -0
  13. package/dist/core/agent-details.js +163 -0
  14. package/dist/core/agent-details.js.map +1 -0
  15. package/dist/core/agent-list-format.d.ts +22 -0
  16. package/dist/core/agent-list-format.d.ts.map +1 -0
  17. package/dist/core/agent-list-format.js +54 -0
  18. package/dist/core/agent-list-format.js.map +1 -0
  19. package/dist/core/bridge-mesh.d.ts +1 -1
  20. package/dist/core/bridge-mesh.d.ts.map +1 -1
  21. package/dist/core/bridge-mesh.js +2 -2
  22. package/dist/core/bridge-mesh.js.map +1 -1
  23. package/dist/core/mesh-store-shared.d.ts +9 -1
  24. package/dist/core/mesh-store-shared.d.ts.map +1 -1
  25. package/dist/core/mesh-store-shared.js +24 -1
  26. package/dist/core/mesh-store-shared.js.map +1 -1
  27. package/dist/core/mesh-store.d.ts +11 -10
  28. package/dist/core/mesh-store.d.ts.map +1 -1
  29. package/dist/core/mesh-store.js +18 -25
  30. package/dist/core/mesh-store.js.map +1 -1
  31. package/dist/core/tool.d.ts +3 -0
  32. package/dist/core/tool.d.ts.map +1 -1
  33. package/dist/core/tool.js +7 -42
  34. package/dist/core/tool.js.map +1 -1
  35. package/dist/test/agent-details-refresh.unit.test.d.ts +5 -0
  36. package/dist/test/agent-details-refresh.unit.test.d.ts.map +1 -0
  37. package/dist/test/agent-details-refresh.unit.test.js +108 -0
  38. package/dist/test/agent-details-refresh.unit.test.js.map +1 -0
  39. package/dist/test/agent-details.unit.test.d.ts +5 -0
  40. package/dist/test/agent-details.unit.test.d.ts.map +1 -0
  41. package/dist/test/agent-details.unit.test.js +86 -0
  42. package/dist/test/agent-details.unit.test.js.map +1 -0
  43. package/dist/test/mesh-store-shared.unit.test.js +19 -1
  44. package/dist/test/mesh-store-shared.unit.test.js.map +1 -1
  45. package/package.json +4 -4
@@ -15,7 +15,7 @@
15
15
  "source": "url",
16
16
  "url": "https://github.com/ExaDev/agent-comms.git"
17
17
  },
18
- "version": "8.11.0"
18
+ "version": "8.13.0"
19
19
  }
20
20
  ]
21
21
  }
@@ -18,5 +18,5 @@
18
18
  },
19
19
  "name": "agent-comms",
20
20
  "repository": "https://github.com/ExaDev/agent-comms",
21
- "version": "8.11.0"
21
+ "version": "8.13.0"
22
22
  }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ExaDev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![GitHub](https://img.shields.io/badge/GitHub-181717?logo=github&logoColor=white)](https://github.com/ExaDev/agent-comms)
4
4
  [![npm](https://img.shields.io/badge/npm-CB3837?logo=npm&logoColor=white)](https://www.npmjs.com/package/agent-comms)
5
- [![version](https://img.shields.io/badge/version-8.11.0-blue)](https://github.com/ExaDev/agent-comms/releases/tag/v8.11.0)
5
+ [![version](https://img.shields.io/badge/version-8.13.0-blue)](https://github.com/ExaDev/agent-comms/releases/tag/v8.13.0)
6
6
  [![CI](https://img.shields.io/github/actions/workflow/status/ExaDev/agent-comms/ci.yml?branch=main)](https://github.com/ExaDev/agent-comms/actions)
7
7
 
8
8
  Cross-harness communication mesh for LLM agents: rooms, DMs, presence, and visibility over TCP with zero filesystem dependencies.
@@ -453,7 +453,7 @@ Every bridge answers SIGTERM, SIGINT and SIGHUP by marking its own agent offline
453
453
 
454
454
  ## Gateway trust and connection codes
455
455
 
456
- Every store holds its own session on the relay hub (`wss://mesh.exadev.io/` by default), each Claude Code session the default cc-peer front handles included, and dials it again with a growing delay whenever the hub drops it. Being reachable from another machine therefore does not depend on which store holds the local coordinator role, and a coordinator handover leaves every other store's hub session alone. A store holds a session only while it has an agent that is not a ghost and its machine trusts at least one remote device, principal or machine, so before that nothing of it reaches the hub, not even its device id. A visible agent advertises itself, its presence and its hosted rooms; a hidden agent advertises only its device id, which is what lets it be reached by that id.
456
+ Every store holds its own session on the relay hub (`wss://mesh.exadev.io/` by default; set `AGENT_COMMS_HUB_URL` to a `ws://` or `wss://` URL to use a self-hosted one instead, such as a node started with `npx wire-mesh`), each Claude Code session the default cc-peer front handles included, and dials it again with a growing delay whenever the hub drops it. Being reachable from another machine therefore does not depend on which store holds the local coordinator role, and a coordinator handover leaves every other store's hub session alone. A store holds a session only while it has an agent that is not a ghost and its machine trusts at least one remote device, principal or machine, so before that nothing of it reaches the hub, not even its device id. A visible agent advertises itself, its presence and its hosted rooms; a hidden agent advertises only its device id, which is what lets it be reached by that id.
457
457
 
458
458
  The hub is a set rather than one address. A store holds its one hub session over the relay it ranks highest: a relay served on its own machine, then a relay on the local network offered by a trusted device, then any trusted device offering relay service, then the configured hub as the fallback. A direct connection to a device always beats every relay, since a request to a directly connected device never touches the hub session at all. A relay whose dial fails, or which drops the session, is passed over for about a minute before it is tried again.
459
459
 
@@ -461,7 +461,7 @@ The store holding its machine's elected coordinator role serves the relay role w
461
461
 
462
462
  The relay takes the connection of its own hub session as its uplink and fronts its clients over it, so a store behind its machine's relay stays reachable by devices that reach it only through the configured hub, and can reach them, each end seen under its own device-id rather than the relay's. An advert for one of the relay's own clients that comes back round through the hub never displaces the client's registration, and a device that has only just moved onto the relay is routable once its first advert has been accepted, which can take until its next gossip.
463
463
 
464
- A device known only through the hub, not directly connected to this mesh, is reported at whatever presence its last gossiped advert carried. Nothing tells the rest of the mesh when such a device disconnects, so `list_agents` stops trusting a stale advert and reports the device offline once it has gone unrefreshed for a few re-advertise intervals, rather than showing it active indefinitely.
464
+ A device known only through the hub, not directly connected to this mesh, is reported at whatever presence its last gossiped advert carried. Its working directory, rooms and tags list as not shared, since the hub session carries only the summary; a bridge this machine has chosen to trust is asked for them directly, over the end-to-end session the two already have, and `list_agents` shows what came back from the next listing on. The ask is refused unless the answering bridge also trusts the asker, so the details never travel to a device the operator has not pinned. Nothing tells the rest of the mesh when such a device disconnects, so `list_agents` stops trusting a stale advert and reports the device offline once it has gone unrefreshed for a few re-advertise intervals, rather than showing it active indefinitely.
465
465
 
466
466
  Two devices on different machines can only relay traffic through each other's hub once each side explicitly trusts the other's device-id — a deny-by-default, pin-the-key model with no directory lookup, deliberately mirroring how an ordinary peer connection is already pinned.
467
467