agent-comms 8.11.0 → 8.12.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 (33) 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 +2 -2
  5. package/dist/core/account-join.d.ts +5 -0
  6. package/dist/core/account-join.d.ts.map +1 -1
  7. package/dist/core/account-join.js +3 -3
  8. package/dist/core/account-join.js.map +1 -1
  9. package/dist/core/agent-details.d.ts +67 -0
  10. package/dist/core/agent-details.d.ts.map +1 -0
  11. package/dist/core/agent-details.js +163 -0
  12. package/dist/core/agent-details.js.map +1 -0
  13. package/dist/core/agent-list-format.d.ts +22 -0
  14. package/dist/core/agent-list-format.d.ts.map +1 -0
  15. package/dist/core/agent-list-format.js +54 -0
  16. package/dist/core/agent-list-format.js.map +1 -0
  17. package/dist/core/mesh-store.d.ts +11 -10
  18. package/dist/core/mesh-store.d.ts.map +1 -1
  19. package/dist/core/mesh-store.js +18 -25
  20. package/dist/core/mesh-store.js.map +1 -1
  21. package/dist/core/tool.d.ts +3 -0
  22. package/dist/core/tool.d.ts.map +1 -1
  23. package/dist/core/tool.js +7 -42
  24. package/dist/core/tool.js.map +1 -1
  25. package/dist/test/agent-details-refresh.unit.test.d.ts +5 -0
  26. package/dist/test/agent-details-refresh.unit.test.d.ts.map +1 -0
  27. package/dist/test/agent-details-refresh.unit.test.js +108 -0
  28. package/dist/test/agent-details-refresh.unit.test.js.map +1 -0
  29. package/dist/test/agent-details.unit.test.d.ts +5 -0
  30. package/dist/test/agent-details.unit.test.d.ts.map +1 -0
  31. package/dist/test/agent-details.unit.test.js +86 -0
  32. package/dist/test/agent-details.unit.test.js.map +1 -0
  33. package/package.json +1 -1
@@ -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.12.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.12.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.12.0-blue)](https://github.com/ExaDev/agent-comms/releases/tag/v8.12.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.
@@ -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
 
@@ -16,6 +16,11 @@ import type { MeshTransport } from "./transport.js";
16
16
  import type { ConnectionCode } from "./types.js";
17
17
  /** The request verb an invite's redeemer sends its issuer (params.verb), and the capability verb the manage-command carries only to satisfy manage-command.verb's grammar: the handler checks the invite itself, never a token. */
18
18
  export declare const ACCOUNT_JOIN_VERB = "account.join";
19
+ /** The outcomes sendRoomRequest gives when this side has no route to the device yet, as opposed to an answer from the device. */
20
+ export declare const NO_ROUTE_CODES: ReadonlySet<string>;
21
+ export declare const JOIN_ROUTE_WAIT_MS: number;
22
+ /** Between attempts to reach the issuing device: short against the wait, long enough not to spin. */
23
+ export declare const JOIN_ROUTE_RETRY_MS = 250;
19
24
  /** What became of an invite: answered with the account key, or expired unanswered. */
20
25
  export type AccountInviteOutcome = "redeemed" | "expired";
21
26
  export interface AccountInvite {
@@ -1 +1 @@
1
- {"version":3,"file":"account-join.d.ts","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAOxE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,mOAAmO;AACnO,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAehD,sFAAsF;AACtF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACxC;AAOD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,iBAAiB,CAAC;IACzC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,qFAAqF;IACrF,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,mIAAmI;IACnI,oBAAoB,EAAE,CACpB,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,EACnC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,KAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,iFAAiF;IACjF,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,sGAAsG;IACtG,WAAW,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,kBAAmB,SAAQ,2BAA2B;IACrE,yIAAyI;IACzI,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAoBD,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,2GAA2G;IAC3G,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAE/B,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC;IAE5D,oYAAoY;IAC9X,MAAM,CACV,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAM,GACjE,OAAO,CAAC,aAAa,CAAC;IAgCzB,kQAAkQ;IAClQ,QAAQ,CAAC,iBAAiB,GACxB,SAAS,QAAQ,CAAC,qBAAqB,CAAC,KACvC,OAAO,CAAC,aAAa,CAAC,CAyBvB;IAEF,kGAAkG;IAClG,OAAO,CAAC,YAAY;IASpB,6mBAA6mB;IACvmB,IAAI,CACR,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,EACnC,OAAO,GAAE,QAAQ,CAAC,kBAAkB,CAAM,GACzC,OAAO,CAAC,iBAAiB,CAAC;IAmB7B,oIAAoI;YACtH,WAAW;IAmCzB,4WAA4W;YAC9V,iBAAiB;IA4B/B,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"account-join.d.ts","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"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"}
@@ -20,16 +20,16 @@ import { toIdentityPort } from "./wire-mesh-identity.js";
20
20
  export const ACCOUNT_JOIN_VERB = "account.join";
21
21
  const ACCOUNT_JOIN_CAPABILITY_VERB = "account:join";
22
22
  /** The outcomes sendRoomRequest gives when this side has no route to the device yet, as opposed to an answer from the device. */
23
- const NO_ROUTE_CODES = new Set([
23
+ export const NO_ROUTE_CODES = new Set([
24
24
  "no_route",
25
25
  "not_connected",
26
26
  ]);
27
27
  const MS_PER_SECOND = 1000;
28
28
  /** How long a join waits for a route to the issuing device to come up: a hub dial and its first directory exchange take seconds, so this is generous without leaving a person waiting on an unreachable issuer for long. */
29
29
  const JOIN_ROUTE_WAIT_SECONDS = 30;
30
- const JOIN_ROUTE_WAIT_MS = JOIN_ROUTE_WAIT_SECONDS * MS_PER_SECOND;
30
+ export const JOIN_ROUTE_WAIT_MS = JOIN_ROUTE_WAIT_SECONDS * MS_PER_SECOND;
31
31
  /** Between attempts to reach the issuing device: short against the wait, long enough not to spin. */
32
- const JOIN_ROUTE_RETRY_MS = 250;
32
+ export const JOIN_ROUTE_RETRY_MS = 250;
33
33
  /** The label a join request asks the issuer to keep for the joiner's machine: undefined when it asks for none, "invalid" when it asks for one that is not a usable label for a full machine id (a label with no machine id included). */
34
34
  function joinerPetname(params) {
35
35
  const label = "label" in params ? params.label : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"account-join.js","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-join.js","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The details a trusted remote peer asks for over a session of its own (agent-comms#323): a hub session publishes only an agent's summary, so its working directory, rooms and tags list elsewhere as not shared. A bridge this machine has chosen to trust may ask for them with the agent-comms/agent-details verb, carried over the relay pairing the two already have so the hub relays bytes it cannot read; the answer is the same summary a direct peer reads from the advert.
3
+ */
4
+ import type { ManageOutcome } from "wire-mesh-core/domain/mesh-session";
5
+ import type { RoomVerbHandler } from "./room-router.js";
6
+ import type { MeshTransport } from "./transport.js";
7
+ import type { AgentIdentity } from "./types.js";
8
+ import type { HostedRoomAdvert } from "./gossip-extensions.js";
9
+ /** The params.verb a trusted peer's request is dispatched by, keyed per room-router's own convention like account-join's "account.join". */
10
+ export declare const AGENT_DETAILS_VERB = "agent.details";
11
+ /** The outer manage-command verb the request rides, which only satisfies manage-command.verb's own capability-verb grammar; the receiving side dispatches on AGENT_DETAILS_VERB, never this. */
12
+ export declare const AGENT_DETAILS_CAPABILITY_VERB = "agent:details";
13
+ /** One room as the details answer carries it: the hosted-room facts a direct peer's advert includes, description included. */
14
+ export interface AgentDetailsRoom {
15
+ path: string;
16
+ name: string;
17
+ description: string;
18
+ }
19
+ /** The details a trusted peer gets that a hub session withholds: everything but the summary. */
20
+ export interface AgentDetails {
21
+ cwd: string;
22
+ tags: readonly string[];
23
+ rooms: readonly AgentDetailsRoom[];
24
+ }
25
+ /** What the verb handler needs: this side's own current details (undefined while no agent is registered), and the trust boundary the requester is gated on. */
26
+ export interface AgentDetailsDeps {
27
+ details: () => AgentDetails | undefined;
28
+ isTrusted: (deviceHex: string) => boolean;
29
+ }
30
+ /** Answers the agent.details verb: the full details for a requester this machine trusts by device id, an explicit refusal for anyone else, and no agent yet for a bridge that has not registered. The requester is whoever the transport actually authenticated: the device the end-to-end secure channel named for a relayed request (fromDevice, never an address a hub asserts), or the connection's own authenticated peer for a direct session (the handle's id, which every dispatch path builds from exactly that). */
31
+ export declare function agentDetailsVerbHandler(deps: Readonly<AgentDetailsDeps>): RoomVerbHandler;
32
+ /** Narrows a manage outcome into the AgentDetails it carries: an ok outcome whose every field has the expected shape, and nothing else (a refusal, or an answer from a peer running something else). */
33
+ export declare function parseAgentDetails(outcome: Readonly<ManageOutcome>): AgentDetails | undefined;
34
+ /** The cache of details this side has asked trusted peers for: refreshed whenever a listing triggers a new fetch, and trimmed to the agents the last listing actually showed so a departed agent's entry does not linger. */
35
+ export declare class AgentDetailsCache {
36
+ private readonly entries;
37
+ /** Records (or replaces) the details fetched for one agent. */
38
+ set(agentId: string, details: Readonly<AgentDetails>): void;
39
+ /** The cached details for one agent, if a fetch has completed. */
40
+ get(agentId: string): Readonly<AgentDetails> | undefined;
41
+ /** Drops every entry whose agent the last listing did not include. */
42
+ retain(agentIds: ReadonlySet<string>): void;
43
+ }
44
+ /** This side's own details for a registered agent and its hosted rooms, the verb's answer body. */
45
+ export declare function ownAgentDetailsOf(agent: Readonly<Pick<AgentIdentity, "cwd" | "tags">>, hostedRooms: readonly Readonly<HostedRoomAdvert>[]): AgentDetails;
46
+ /** What the exchange needs from the store: this side's own agent and hosted rooms for answers, the trust boundary both directions gate on, a way to send a request to a peer, and this side's own peer id. */
47
+ export interface AgentDetailsExchangeDeps {
48
+ selfAgent: () => Readonly<Pick<AgentIdentity, "cwd" | "tags">> | undefined;
49
+ hostedRooms: () => readonly Readonly<HostedRoomAdvert>[];
50
+ isTrusted: (deviceHex: string) => boolean;
51
+ requireTransport: () => Readonly<Pick<MeshTransport, "sendRoomRequest">>;
52
+ }
53
+ /** Both halves of agent-comms#323 in one place: the verb a trusted peer's request is answered by, and the background fetch that fills this side's cache from peers this machine trusts. */
54
+ export declare class AgentDetailsExchange {
55
+ private readonly deps;
56
+ private readonly cache;
57
+ /** The registered verb handler, answering from this side's own agent and hosted rooms. */
58
+ readonly handler: RoomVerbHandler;
59
+ constructor(deps: Readonly<AgentDetailsExchangeDeps>);
60
+ /** Asks every trusted remote agent whose details a hub session withholds for them, without waiting: answers land in the cache and show on the next listing, and an unreachable peer simply keeps its not-shared listing. selfPeerId is the asking side's own agent, excluded from the fetches. */
61
+ refresh(agents: readonly Readonly<AgentIdentity>[], selfPeerId: string): void;
62
+ /** The cached details for one remote agent, once its trusted peer has answered. */
63
+ cached(agentId: string): Readonly<AgentDetails> | undefined;
64
+ /** One agent's fetch, retried while no route to it exists yet (a relay pairing takes a moment to come up) and settled by the first real answer either way. */
65
+ private fetch;
66
+ }
67
+ //# sourceMappingURL=agent-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-details.d.ts","sourceRoot":"","sources":["../../src/core/agent-details.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * The details a trusted remote peer asks for over a session of its own (agent-comms#323): a hub session publishes only an agent's summary, so its working directory, rooms and tags list elsewhere as not shared. A bridge this machine has chosen to trust may ask for them with the agent-comms/agent-details verb, carried over the relay pairing the two already have so the hub relays bytes it cannot read; the answer is the same summary a direct peer reads from the advert.
3
+ */
4
+ import { detailsShared } from "./agent-registry.js";
5
+ import { JOIN_ROUTE_RETRY_MS, JOIN_ROUTE_WAIT_MS, NO_ROUTE_CODES, } from "./account-join.js";
6
+ import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
7
+ /** The params.verb a trusted peer's request is dispatched by, keyed per room-router's own convention like account-join's "account.join". */
8
+ export const AGENT_DETAILS_VERB = "agent.details";
9
+ /** The outer manage-command verb the request rides, which only satisfies manage-command.verb's own capability-verb grammar; the receiving side dispatches on AGENT_DETAILS_VERB, never this. */
10
+ export const AGENT_DETAILS_CAPABILITY_VERB = "agent:details";
11
+ /** Answers the agent.details verb: the full details for a requester this machine trusts by device id, an explicit refusal for anyone else, and no agent yet for a bridge that has not registered. The requester is whoever the transport actually authenticated: the device the end-to-end secure channel named for a relayed request (fromDevice, never an address a hub asserts), or the connection's own authenticated peer for a direct session (the handle's id, which every dispatch path builds from exactly that). */
12
+ export function agentDetailsVerbHandler(deps) {
13
+ return async (request, handle) => {
14
+ const requesterHex = request.fromDevice !== undefined
15
+ ? deviceIdToHex(request.fromDevice)
16
+ : handle.id;
17
+ if (!deps.isTrusted(requesterHex)) {
18
+ return { result: "error", code: "untrusted_requester" };
19
+ }
20
+ const details = deps.details();
21
+ if (details === undefined) {
22
+ return { result: "error", code: "no_agent" };
23
+ }
24
+ return {
25
+ result: "ok",
26
+ cwd: details.cwd,
27
+ tags: details.tags,
28
+ rooms: details.rooms,
29
+ };
30
+ };
31
+ }
32
+ /** Narrows an untrusted value into one AgentDetailsRoom. */
33
+ function isAgentDetailsRoom(value) {
34
+ if (typeof value !== "object" || value === null)
35
+ return false;
36
+ if (!("path" in value) || typeof value.path !== "string")
37
+ return false;
38
+ if (!("name" in value) || typeof value.name !== "string")
39
+ return false;
40
+ if (!("description" in value) || typeof value.description !== "string") {
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ /** Narrows a manage outcome into the AgentDetails it carries: an ok outcome whose every field has the expected shape, and nothing else (a refusal, or an answer from a peer running something else). */
46
+ export function parseAgentDetails(outcome) {
47
+ if (outcome.result !== "ok")
48
+ return undefined;
49
+ if (typeof outcome.cwd !== "string")
50
+ return undefined;
51
+ if (!Array.isArray(outcome.tags))
52
+ return undefined;
53
+ if (outcome.tags.some((tag) => typeof tag !== "string"))
54
+ return undefined;
55
+ if (!Array.isArray(outcome.rooms))
56
+ return undefined;
57
+ const rooms = [];
58
+ for (const room of outcome.rooms) {
59
+ if (!isAgentDetailsRoom(room))
60
+ return undefined;
61
+ rooms.push(room);
62
+ }
63
+ return { cwd: outcome.cwd, tags: outcome.tags, rooms };
64
+ }
65
+ /** The cache of details this side has asked trusted peers for: refreshed whenever a listing triggers a new fetch, and trimmed to the agents the last listing actually showed so a departed agent's entry does not linger. */
66
+ export class AgentDetailsCache {
67
+ entries = new Map();
68
+ /** Records (or replaces) the details fetched for one agent. */
69
+ set(agentId, details) {
70
+ this.entries.set(agentId, { ...details, rooms: [...details.rooms] });
71
+ }
72
+ /** The cached details for one agent, if a fetch has completed. */
73
+ get(agentId) {
74
+ return this.entries.get(agentId);
75
+ }
76
+ /** Drops every entry whose agent the last listing did not include. */
77
+ retain(agentIds) {
78
+ for (const agentId of this.entries.keys()) {
79
+ if (!agentIds.has(agentId))
80
+ this.entries.delete(agentId);
81
+ }
82
+ }
83
+ }
84
+ /** This side's own details for a registered agent and its hosted rooms, the verb's answer body. */
85
+ export function ownAgentDetailsOf(agent, hostedRooms) {
86
+ return {
87
+ cwd: agent.cwd,
88
+ tags: agent.tags,
89
+ rooms: hostedRooms.map((room) => ({
90
+ path: room.path,
91
+ name: room.name,
92
+ description: room.description,
93
+ })),
94
+ };
95
+ }
96
+ /** Both halves of agent-comms#323 in one place: the verb a trusted peer's request is answered by, and the background fetch that fills this side's cache from peers this machine trusts. */
97
+ export class AgentDetailsExchange {
98
+ deps;
99
+ cache = new AgentDetailsCache();
100
+ /** The registered verb handler, answering from this side's own agent and hosted rooms. */
101
+ handler;
102
+ constructor(deps) {
103
+ this.deps = deps;
104
+ this.handler = agentDetailsVerbHandler({
105
+ details: () => {
106
+ const agent = deps.selfAgent();
107
+ return agent === undefined
108
+ ? undefined
109
+ : ownAgentDetailsOf(agent, deps.hostedRooms());
110
+ },
111
+ isTrusted: deps.isTrusted,
112
+ });
113
+ }
114
+ /** Asks every trusted remote agent whose details a hub session withholds for them, without waiting: answers land in the cache and show on the next listing, and an unreachable peer simply keeps its not-shared listing. selfPeerId is the asking side's own agent, excluded from the fetches. */
115
+ refresh(agents, selfPeerId) {
116
+ const shown = new Set();
117
+ for (const agent of agents) {
118
+ shown.add(agent.id);
119
+ if (agent.id === selfPeerId)
120
+ continue;
121
+ if (detailsShared(agent))
122
+ continue;
123
+ if (!this.deps.isTrusted(agent.id))
124
+ continue;
125
+ void this.fetch(agent.id);
126
+ }
127
+ this.cache.retain(shown);
128
+ }
129
+ /** The cached details for one remote agent, once its trusted peer has answered. */
130
+ cached(agentId) {
131
+ return this.cache.get(agentId);
132
+ }
133
+ /** One agent's fetch, retried while no route to it exists yet (a relay pairing takes a moment to come up) and settled by the first real answer either way. */
134
+ async fetch(agentId) {
135
+ const deadline = Date.now() + JOIN_ROUTE_WAIT_MS;
136
+ for (;;) {
137
+ let outcome;
138
+ try {
139
+ outcome = await this.deps
140
+ .requireTransport()
141
+ .sendRoomRequest(agentId, { verb: AGENT_DETAILS_VERB, params: { verb: AGENT_DETAILS_VERB } }, { kind: "node" });
142
+ }
143
+ catch {
144
+ // An unreachable peer is routine (it is listed from its last advert); its details stay not shared.
145
+ return;
146
+ }
147
+ const details = parseAgentDetails(outcome);
148
+ if (details !== undefined) {
149
+ this.cache.set(agentId, details);
150
+ return;
151
+ }
152
+ // A pairing still warming answers "timeout" before it answers the verb, so that outcome is retried within the window too: the listing refreshes on every call, and a details fetch is never worth more than the wait.
153
+ const transient = outcome.result === "error" &&
154
+ (NO_ROUTE_CODES.has(outcome.code) || outcome.code === "timeout");
155
+ if (!transient || Date.now() >= deadline)
156
+ return;
157
+ await new Promise((resolve) => {
158
+ setTimeout(resolve, JOIN_ROUTE_RETRY_MS);
159
+ });
160
+ }
161
+ }
162
+ }
163
+ //# sourceMappingURL=agent-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-details.js","sourceRoot":"","sources":["../../src/core/agent-details.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The list_agents listing's formatting, split out of tool.ts to keep that file under the repo's max-lines cap: the table, the per-agent describe block with rooms and versions, and the machine grouping.
3
+ */
4
+ import type { Namer } from "./naming.js";
5
+ import { type VersionReportStore } from "./version-report-actions.js";
6
+ import type { CommsResult } from "./tool.js";
7
+ import type { AgentIdentity } from "./types.js";
8
+ import type { AgentDetailsExchange } from "./agent-details.js";
9
+ /** What the renderer needs beyond the agents themselves: who is asking, their namer, and the store's optional reads (versions, machines, and the agent-details exchange's cache). */
10
+ export interface AgentListFormatStore extends Readonly<Pick<VersionReportStore, "getPeerAgentCommsVersion" | "getPeerWireMeshCoreVersion" | "getPeerCcPeerVersion">> {
11
+ getCcPeerVersion?: (() => string | undefined) | undefined;
12
+ getMachineId?: (() => string | undefined) | undefined;
13
+ listAgentMachines?: (() => Promise<Map<string, string>>) | undefined;
14
+ agentDetailsExchange?: Readonly<Pick<AgentDetailsExchange, "cached">>;
15
+ }
16
+ /** Renders the whole listing. A trusted remote agent's fetched details (agent-comms#323) stand in for the ones a hub session withholds; a fetch that has not come back yet keeps its not-shared listing until the next call. */
17
+ export declare function renderAgentList(agents: readonly Readonly<AgentIdentity>[], opts: Readonly<{
18
+ selfId: string;
19
+ namer: Namer;
20
+ store: Readonly<AgentListFormatStore>;
21
+ }>): Promise<CommsResult>;
22
+ //# sourceMappingURL=agent-list-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-list-format.d.ts","sourceRoot":"","sources":["../../src/core/agent-list-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qLAAqL;AACrL,MAAM,WAAW,oBAAqB,SAAQ,QAAQ,CACpD,IAAI,CACF,kBAAkB,EAChB,0BAA0B,GAC1B,4BAA4B,GAC5B,sBAAsB,CACzB,CACF;IACC,gBAAgB,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;CACvE;AAED,gOAAgO;AAChO,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,QAAQ,CAAC,aAAa,CAAC,EAAE,EAC1C,IAAI,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;CACvC,CAAC,GACD,OAAO,CAAC,WAAW,CAAC,CAyDtB"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * The list_agents listing's formatting, split out of tool.ts to keep that file under the repo's max-lines cap: the table, the per-agent describe block with rooms and versions, and the machine grouping.
3
+ */
4
+ import { detailsShared } from "./agent-registry.js";
5
+ import { groupAgentsByMachine } from "./machine-list-groups.js";
6
+ import { agentTable } from "./agent-table.js";
7
+ import { formatListedAgentVersions, } from "./version-report-actions.js";
8
+ /** Renders the whole listing. A trusted remote agent's fetched details (agent-comms#323) stand in for the ones a hub session withholds; a fetch that has not come back yet keeps its not-shared listing until the next call. */
9
+ export async function renderAgentList(agents, opts) {
10
+ const homedir = process.env.HOME ?? "";
11
+ const abbreviateCwd = (cwd) => homedir && cwd.startsWith(homedir) ? `~${cwd.slice(homedir.length)}` : cwd;
12
+ // The full id is printed in its own column, so the name column carries the names alone.
13
+ const rowOf = (a) => {
14
+ const asked = opts.store.agentDetailsExchange?.cached(a.id);
15
+ const shared = detailsShared(a) || asked !== undefined;
16
+ return {
17
+ id: a.id,
18
+ name: opts.namer(a.id, { selfName: a.name, besideFullId: true }),
19
+ harness: a.harness,
20
+ status: a.status,
21
+ visibility: a.visibility,
22
+ cwd: `${shared ? abbreviateCwd(asked?.cwd ?? a.cwd) : "(not shared)"}${a.id === opts.selfId ? " (you)" : ""}`,
23
+ };
24
+ };
25
+ const table = agentTable(agents.map(rowOf));
26
+ const describe = (a) => {
27
+ const isSelf = a.id === opts.selfId;
28
+ const asked = opts.store.agentDetailsExchange?.cached(a.id);
29
+ const shared = detailsShared(a) || asked !== undefined;
30
+ const roomPaths = asked === undefined ? a.subscribedRooms : asked.rooms.map((r) => r.path);
31
+ const rooms = !shared
32
+ ? "not shared"
33
+ : roomPaths.length > 0
34
+ ? roomPaths.join(", ")
35
+ : "none";
36
+ const versions = formatListedAgentVersions(opts.store, a.id, isSelf, opts.store.getCcPeerVersion);
37
+ return `${table.line(rowOf(a))}\n Rooms: ${rooms}\n Versions: ${versions}`;
38
+ };
39
+ const machines = await opts.store.listAgentMachines?.();
40
+ const groups = groupAgentsByMachine(agents, machines, opts.store.getMachineId?.(), opts.namer);
41
+ const body = groups
42
+ .map((group) => {
43
+ const rows = group.agents.map((a) => ` ${describe(a)}`);
44
+ return group.heading === undefined
45
+ ? rows.join("\n")
46
+ : [` ${group.heading}`, ...rows].join("\n");
47
+ })
48
+ .join("\n");
49
+ return {
50
+ content: `Agents:\n ${table.header}\n${body}`,
51
+ isError: false,
52
+ };
53
+ }
54
+ //# sourceMappingURL=agent-list-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-list-format.js","sourceRoot":"","sources":["../../src/core/agent-list-format.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ import type { RoomVerbHandler } from "./room-router.js";
22
22
  import { type AgentSelfAdvert, type HostedRoomAdvert } from "./gossip-extensions.js";
23
23
  import { AccountJoin } from "./account-join.js";
24
24
  import { LanWebUis } from "./lan-web-uis.js";
25
+ import { AgentDetailsExchange } from "./agent-details.js";
25
26
  import type { MeshStatePatch, SerialisedState } from "./wire-protocol.js";
26
27
  import type { ListenerInfo, MeshGraph, MeshTraceResult, MeshTransport, TransportEvents } from "./transport.js";
27
28
  import type { CommsStore, SendRoomMessageOptions, SentDm, SentRoomMessage } from "./comms-store.js";
@@ -129,17 +130,17 @@ export declare class MeshStore implements CommsStore {
129
130
  /** The account's replicated grant ledger (agent-comms#344) once an identity is attached, for the transport to replicate. */
130
131
  get accountLedger(): AccountLedgerReplica | undefined;
131
132
  /** Every device this side trusts only because a trusted principal or machine vouches for it, with that issuer. */
132
- listVerifiedMembers(): VerifiedMember[];
133
+ readonly listVerifiedMembers: () => VerifiedMember[];
133
134
  /** The machine (hex) of each device this side can place on one, keyed by device id (agent-comms#343): this device's own, and every gossiped device carrying a valid machine proof. Empty before this store's identity is attached. */
134
- listAgentMachines(): Promise<Map<string, string>>;
135
+ readonly listAgentMachines: () => Promise<Map<string, string>>;
135
136
  /** The set identity, or throws if setIdentity() hasn't been called yet -- the single place every identity-using method reads through, mirroring requireTransport() above. */
136
137
  private requireIdentity;
137
138
  init(): Promise<void>;
138
139
  /** Returns the TransportEvents object that bridges should pass to the transport constructor. */
139
140
  get events(): TransportEvents;
140
- /**
141
- * Room verb handlers this store registers with its own WireMeshTransport, keyed by params.verb per room-router.ts's own dispatch discipline.
142
- */
141
+ /** Both halves of the agent-comms/agent-details exchange (agent-comms#323): the verb a trusted peer's request is answered by, and the background fetch filling this side's cache from peers this machine trusts. */
142
+ readonly agentDetailsExchange: AgentDetailsExchange;
143
+ /** Room verb handlers this store registers with its own WireMeshTransport, keyed by params.verb per room-router.ts's own dispatch discipline. */
143
144
  get roomVerbHandlers(): Partial<Record<string, RoomVerbHandler>>;
144
145
  readIdentity(harness: string, cwd: string): Promise<{
145
146
  id: string;
@@ -250,31 +251,31 @@ export declare class MeshStore implements CommsStore {
250
251
  /** Withdraws trust from a remote device-id (hex). A no-op if it was never trusted. */
251
252
  removeTrustedGateway(deviceHex: string): void;
252
253
  /** Every currently trusted remote device-id (hex). */
253
- listTrustedGateways(): string[];
254
+ readonly listTrustedGateways: () => string[];
254
255
  /** Trusts a remote user-principal device-id (hex, agent-comms#187): a peer presenting a token whose delegation chain roots at this principal is trusted via GatewayTrust.isTrustedFor, without its own bare device-id ever needing individual trust. Entirely independent of the bare-device allowlist addTrustedGateway manages. */
255
256
  addTrustedGatewayPrincipal(deviceHex: string): void;
256
257
  /** Withdraws trust from a remote user-principal device-id (hex). A no-op if it was never trusted. */
257
258
  removeTrustedGatewayPrincipal(deviceHex: string): void;
258
259
  /** Every currently trusted remote user-principal device-id (hex). */
259
- listTrustedGatewayPrincipals(): string[];
260
+ readonly listTrustedGatewayPrincipals: () => string[];
260
261
  /** Trusts a remote machine device-id (hex, agent-comms#343): every device whose gossiped proof that machine vouches for becomes reachable without being trusted individually. */
261
262
  addTrustedGatewayMachine(deviceHex: string): void;
262
263
  /** Withdraws trust from a remote machine device-id (hex), and with it every device reachable only through that machine: revoking every bridge that machine key vouches for in one act. A no-op if it was never trusted. */
263
264
  removeTrustedGatewayMachine(deviceHex: string): void;
264
265
  /** Every currently trusted remote machine device-id (hex). */
265
- listTrustedGatewayMachines(): string[];
266
+ readonly listTrustedGatewayMachines: () => string[];
266
267
  /** Generates a fresh single-use ConnectionCode vouching for this store's own device-id (peerId), for the operator to relay to a counterpart out of band. See ConnectionCodeLedger.generate's own doc comment for what options does. */
267
268
  generateConnectionCode(options?: Readonly<GenerateConnectionCodeOptions>): Promise<ConnectionCode>;
268
269
  /** Validates a candidate ConnectionCode (see ConnectionCodeLedger.redeem for the checks performed) and, only once it passes every check, trusts the device-id it vouches for via gatewayTrust.add -- the actual point of this whole bootstrap. A rejected candidate never reaches gatewayTrust at all. */
269
270
  redeemConnectionCode(candidate: Readonly<ConnectionCode>, options?: Readonly<RedeemConnectionCodeOptions>): Promise<RedeemConnectionCodeResult>;
270
271
  addListener(host: string, port: number, policy: string): Promise<string>;
271
272
  removeListener(id: string): Promise<void>;
272
- listListeners(): ListenerInfo[];
273
+ readonly listListeners: () => ListenerInfo[];
273
274
  /** Delegates to the transport's own meshGraph, throwing if the current transport doesn't support it (agent-comms#199) -- CommsTool's own notMeshBacked distinguishes "no MeshStore at all" from this narrower "MeshStore, but a transport without this capability" case by catching the throw, the same way requireTransport's own "no transport set" throw is already handled. */
274
275
  meshGraph(): MeshGraph;
275
276
  /** Delegates to the transport's own meshTrace, same "throw if unsupported" contract as meshGraph above. */
276
277
  meshTrace(target: string, timeoutMs?: number): Promise<MeshTraceResult>;
277
- getNetworkInterfaces(): NetworkInterface[];
278
+ readonly getNetworkInterfaces: () => NetworkInterface[];
278
279
  private readonly peerVersions;
279
280
  /** deviceId's own gossiped agent-comms package version, if this side has heard it advertised. */
280
281
  readonly getPeerAgentCommsVersion: (deviceId: string) => string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-store.d.ts","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-store.d.ts","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"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"}