agent-comms 3.21.0 → 3.23.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 (86) 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/actions.d.ts +59 -0
  5. package/dist/bridges/user/web/actions.d.ts.map +1 -0
  6. package/dist/bridges/user/web/actions.js +109 -0
  7. package/dist/bridges/user/web/actions.js.map +1 -0
  8. package/dist/bridges/user/web/contract.d.ts +2 -0
  9. package/dist/bridges/user/web/contract.d.ts.map +1 -1
  10. package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
  11. package/dist/bridges/user/web/dist/sw.js +1 -1
  12. package/dist/bridges/user/web/event-publisher.d.ts +30 -0
  13. package/dist/bridges/user/web/event-publisher.d.ts.map +1 -0
  14. package/dist/bridges/user/web/event-publisher.js +84 -0
  15. package/dist/bridges/user/web/event-publisher.js.map +1 -0
  16. package/dist/bridges/user/web/frontend/mesh-worker.d.ts +10 -8
  17. package/dist/bridges/user/web/frontend/mesh-worker.d.ts.map +1 -1
  18. package/dist/bridges/user/web/frontend/mesh-worker.js +143 -90
  19. package/dist/bridges/user/web/frontend/mesh-worker.js.map +1 -1
  20. package/dist/bridges/user/web/router.d.ts +696 -0
  21. package/dist/bridges/user/web/router.d.ts.map +1 -0
  22. package/dist/bridges/user/web/router.js +50 -0
  23. package/dist/bridges/user/web/router.js.map +1 -0
  24. package/dist/bridges/user/web/server.d.ts +3 -0
  25. package/dist/bridges/user/web/server.d.ts.map +1 -1
  26. package/dist/bridges/user/web/server.js +95 -114
  27. package/dist/bridges/user/web/server.js.map +1 -1
  28. package/dist/bridges/user/web/test/orpc-router.integration.test.d.ts +7 -0
  29. package/dist/bridges/user/web/test/orpc-router.integration.test.d.ts.map +1 -0
  30. package/dist/bridges/user/web/test/orpc-router.integration.test.js +214 -0
  31. package/dist/bridges/user/web/test/orpc-router.integration.test.js.map +1 -0
  32. package/dist/core/bridge.d.ts +3 -0
  33. package/dist/core/bridge.d.ts.map +1 -1
  34. package/dist/core/bridge.js +14 -0
  35. package/dist/core/bridge.js.map +1 -1
  36. package/dist/core/data-frame-routing.d.ts +14 -0
  37. package/dist/core/data-frame-routing.d.ts.map +1 -0
  38. package/dist/core/data-frame-routing.js +37 -0
  39. package/dist/core/data-frame-routing.js.map +1 -0
  40. package/dist/core/gossip-directory.d.ts +5 -0
  41. package/dist/core/gossip-directory.d.ts.map +1 -1
  42. package/dist/core/gossip-directory.js +7 -0
  43. package/dist/core/gossip-directory.js.map +1 -1
  44. package/dist/core/hub-session.d.ts +5 -1
  45. package/dist/core/hub-session.d.ts.map +1 -1
  46. package/dist/core/hub-session.js +24 -0
  47. package/dist/core/hub-session.js.map +1 -1
  48. package/dist/core/mesh-graph-trace-tool.d.ts +12 -0
  49. package/dist/core/mesh-graph-trace-tool.d.ts.map +1 -0
  50. package/dist/core/mesh-graph-trace-tool.js +60 -0
  51. package/dist/core/mesh-graph-trace-tool.js.map +1 -0
  52. package/dist/core/mesh-graph.d.ts +14 -0
  53. package/dist/core/mesh-graph.d.ts.map +1 -0
  54. package/dist/core/mesh-graph.js +46 -0
  55. package/dist/core/mesh-graph.js.map +1 -0
  56. package/dist/core/mesh-network-actions.d.ts +28 -0
  57. package/dist/core/mesh-network-actions.d.ts.map +1 -0
  58. package/dist/core/mesh-network-actions.js +143 -0
  59. package/dist/core/mesh-network-actions.js.map +1 -0
  60. package/dist/core/mesh-store.d.ts +5 -1
  61. package/dist/core/mesh-store.d.ts.map +1 -1
  62. package/dist/core/mesh-store.js +16 -0
  63. package/dist/core/mesh-store.js.map +1 -1
  64. package/dist/core/tool.d.ts +3 -10
  65. package/dist/core/tool.d.ts.map +1 -1
  66. package/dist/core/tool.js +15 -147
  67. package/dist/core/tool.js.map +1 -1
  68. package/dist/core/transport.d.ts +35 -0
  69. package/dist/core/transport.d.ts.map +1 -1
  70. package/dist/core/types.d.ts +12 -0
  71. package/dist/core/types.d.ts.map +1 -1
  72. package/dist/core/types.js +6 -0
  73. package/dist/core/types.js.map +1 -1
  74. package/dist/core/wire-mesh-transport.d.ts +7 -2
  75. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  76. package/dist/core/wire-mesh-transport.js +22 -38
  77. package/dist/core/wire-mesh-transport.js.map +1 -1
  78. package/dist/test/mesh-graph-trace-tool.test.d.ts +2 -0
  79. package/dist/test/mesh-graph-trace-tool.test.d.ts.map +1 -0
  80. package/dist/test/mesh-graph-trace-tool.test.js +104 -0
  81. package/dist/test/mesh-graph-trace-tool.test.js.map +1 -0
  82. package/dist/test/mesh-graph-trace.integration.test.d.ts +5 -0
  83. package/dist/test/mesh-graph-trace.integration.test.d.ts.map +1 -0
  84. package/dist/test/mesh-graph-trace.integration.test.js +146 -0
  85. package/dist/test/mesh-graph-trace.integration.test.js.map +1 -0
  86. package/package.json +2 -2
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { acceptMeshSession, } from "wire-mesh-core/domain/mesh-session";
5
5
  import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
6
+ import { tracePath as coreTracePath } from "wire-mesh-core/domain/path-trace";
6
7
  import { extractMessage } from "./room-router.js";
7
8
  import { connectWsUrl } from "./ws-dial.js";
8
9
  import { buildCommand, DOMAIN, FRAME_SCOPE, FRAME_VERB, } from "./wire-mesh-transport.js";
@@ -13,6 +14,8 @@ export class HubSession {
13
14
  session;
14
15
  /** The raw connection underlying `session` -- MeshSession's own sendGossipUpdate only ever advertises this side's own single device, so advertising OTHER (local mesh) devices onto the hub (agent-comms#155's outbound leg) needs a raw gossip frame sent directly, bypassing that per-session single-self-advert limit. */
15
16
  connection;
17
+ /** The URL this side itself dialled to reach the hub -- tracePath's own local.hubAddress (agent-comms#199), the equivalent of wire-mesh-core's own TracePathOptions.localHubAddress. */
18
+ url;
16
19
  hubPeersKnown = new Set();
17
20
  constructor(deps) {
18
21
  this.deps = deps;
@@ -37,6 +40,7 @@ export class HubSession {
37
40
  return;
38
41
  this.session = undefined;
39
42
  this.connection = undefined;
43
+ this.url = undefined;
40
44
  await session.close();
41
45
  }
42
46
  /** The device ids (hex) of peers discovered through the hub's gossiped directory. */
@@ -61,6 +65,7 @@ export class HubSession {
61
65
  }
62
66
  this.session = session;
63
67
  this.connection = connection;
68
+ this.url = url;
64
69
  this.deps.trackForShutdown(session);
65
70
  // Merge the hub's directory (its catch-up arrives as the first session events) and keep refreshing it on every subsequent one. Every trusted remote entry is also surfaced via onDirectory, so the transport can merge it into its own mesh-wide knownDevices (agent-comms#155's remote-directory-merge leg). Filtered to isTrustedForDirectory (agent-comms#156, widened by agent-comms#187's principal allowlist per agent-comms#192) before either hubPeersKnown tracking or onDirectory sees it: an untrusted device's gossiped presence is not merely withheld from listAgents, it is never even recorded as "known" here, so nothing downstream can act on it via any path this class exposes.
66
71
  void (async () => {
@@ -104,6 +109,7 @@ export class HubSession {
104
109
  if (this.session === session) {
105
110
  this.session = undefined;
106
111
  this.connection = undefined;
112
+ this.url = undefined;
107
113
  }
108
114
  }
109
115
  /** Sends one message to a hub-discovered peer through the hub's relay pairing. */
@@ -133,6 +139,24 @@ export class HubSession {
133
139
  }
134
140
  return session.sendManageRequest(command, scope, hexToBytes(peerDeviceHex), token, HUB_ROOM_REQUEST_TIMEOUT_MS);
135
141
  }
142
+ /** Sends path.trace to a specific hub-reachable peer, through the hub's relay-connect/relay-data pairing -- WireMeshTransport.meshTrace's own hub-relayed fallback (agent-comms#199), mirroring sendRoomRequest's own not_connected contract and HUB_ROOM_REQUEST_TIMEOUT_MS default for the identical reason (an unreachable target-device is silently dropped by the hub, not answered with an error). Delegates the actual send/RTT-measurement/response-parsing to wire-mesh-core's own tracePath, reporting this.url (the address this side itself dialled to reach the hub) as local.hubAddress. */
143
+ async tracePath(peerDeviceHex, timeoutMs) {
144
+ const session = this.session;
145
+ if (session === undefined) {
146
+ return {
147
+ rttMs: 0,
148
+ local: { relayed: true },
149
+ outcome: { result: "error", code: "not_connected" },
150
+ };
151
+ }
152
+ return coreTracePath({
153
+ session,
154
+ clock: { now: () => Date.now() },
155
+ targetDevice: hexToBytes(peerDeviceHex),
156
+ timeoutMs: timeoutMs ?? HUB_ROOM_REQUEST_TIMEOUT_MS,
157
+ ...(this.url !== undefined ? { localHubAddress: this.url } : {}),
158
+ });
159
+ }
136
160
  }
137
161
  function hexToBytes(hex) {
138
162
  const bytes = new Uint8Array(new ArrayBuffer(hex.length / 2));
@@ -1 +1 @@
1
- {"version":3,"file":"hub-session.js","sourceRoot":"","sources":["../../src/core/hub-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub-session.js","sourceRoot":"","sources":["../../src/core/hub-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CommsTool's mesh_graph/mesh_trace action handlers (agent-comms#199) -- split out of tool.ts purely to keep that file under the repo's max-lines cap, the same reason gateway-trust-actions.ts/connection-code-tool.ts were split from it. Free functions over MeshOnlyFeatures's own meshGraph/meshTrace methods rather than class methods, since CommsTool owns no state of its own for this concern.
3
+ */
4
+ import type { CommsAction } from "./types.js";
5
+ import type { CommsResult, MeshOnlyFeatures } from "./tool.js";
6
+ /** Reports every known device (nodes) and every self-reported connection edge between them (edges), assembled from the cached gossip directory -- a cheap, possibly-stale snapshot; meshTraceAction below is the live, cache-bust counterpart for one specific device. */
7
+ export declare function meshGraphAction(store: Readonly<Pick<MeshOnlyFeatures, "meshGraph">>): CommsResult;
8
+ /** Sends path.trace to action.target and reports the real end-to-end RTT plus each side's own relayed/hub-address knowledge -- the live counterpart to meshGraphAction's gossiped snapshot. */
9
+ export declare function meshTraceAction(store: Readonly<Pick<MeshOnlyFeatures, "meshTrace">>, action: CommsAction & {
10
+ action: "mesh_trace";
11
+ }): Promise<CommsResult>;
12
+ //# sourceMappingURL=mesh-graph-trace-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-graph-trace-tool.d.ts","sourceRoot":"","sources":["../../src/core/mesh-graph-trace-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAc/D,0QAA0Q;AAC1Q,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,GACnD,WAAW,CAiBb;AAED,+LAA+L;AAC/L,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,EACpD,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAC7C,OAAO,CAAC,WAAW,CAAC,CA+BtB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * CommsTool's mesh_graph/mesh_trace action handlers (agent-comms#199) -- split out of tool.ts purely to keep that file under the repo's max-lines cap, the same reason gateway-trust-actions.ts/connection-code-tool.ts were split from it. Free functions over MeshOnlyFeatures's own meshGraph/meshTrace methods rather than class methods, since CommsTool owns no state of its own for this concern.
3
+ */
4
+ import { tryMeshAction } from "./tool.js";
5
+ /** Column width the "direct"/"relay" edge-kind label is padded to in meshGraphAction's own listing, matching tool.ts's own aligned-column convention for every other tabular action result. */
6
+ const MESH_GRAPH_EDGE_KIND_COLUMN_WIDTH = 6;
7
+ /** Uniform "this bridge isn't backed by a mesh transport" result, mirroring tool.ts's own notMeshBacked for the other MeshOnlyFeatures methods (not exported from there, so re-declared locally the same way gateway-trust-actions.ts's own gatewayTrustUnavailable already does). */
8
+ function meshFeatureUnavailable(action) {
9
+ return {
10
+ isError: true,
11
+ content: `${action} requires a mesh-backed store (this session is running on FileStore)`,
12
+ };
13
+ }
14
+ /** Reports every known device (nodes) and every self-reported connection edge between them (edges), assembled from the cached gossip directory -- a cheap, possibly-stale snapshot; meshTraceAction below is the live, cache-bust counterpart for one specific device. */
15
+ export function meshGraphAction(store) {
16
+ if (!store.meshGraph)
17
+ return meshFeatureUnavailable("mesh_graph");
18
+ const graph = store.meshGraph();
19
+ if (graph.nodes.length === 0)
20
+ return { content: "No known devices in the mesh graph.", isError: false };
21
+ const edgeLines = graph.edges.map((edge) => {
22
+ const via = edge.kind === "relay" && edge.via !== undefined ? ` via ${edge.via}` : "";
23
+ return ` ${edge.kind.padEnd(MESH_GRAPH_EDGE_KIND_COLUMN_WIDTH)} ${edge.from} -> ${edge.to}${via}`;
24
+ });
25
+ const edgesBlock = edgeLines.length > 0 ? edgeLines.join("\n") : " (no edges reported)";
26
+ return {
27
+ content: `Mesh graph:\nNodes (${String(graph.nodes.length)}): ${graph.nodes.join(", ")}\nEdges:\n${edgesBlock}`,
28
+ isError: false,
29
+ };
30
+ }
31
+ /** Sends path.trace to action.target and reports the real end-to-end RTT plus each side's own relayed/hub-address knowledge -- the live counterpart to meshGraphAction's gossiped snapshot. */
32
+ export async function meshTraceAction(store, action) {
33
+ if (!store.meshTrace)
34
+ return meshFeatureUnavailable("mesh_trace");
35
+ return tryMeshAction(`trace ${action.target}`, async () => {
36
+ // Called via `?.()` rather than a `const meshTrace = store.meshTrace` extraction -- the latter would silently drop `this` (WireMeshTransport.meshTrace reads its own private fields), a real bug this exact pattern caught during development. TypeScript can't carry the `if (!store.meshTrace)` guard above across this closure boundary, so `result` is still typed possibly-undefined even though it never actually is at runtime.
37
+ const result = await store.meshTrace?.(action.target, action.timeoutMs);
38
+ if (!result)
39
+ return meshFeatureUnavailable("mesh_trace").content;
40
+ if (result.outcome.result === "error") {
41
+ throw new Error(`${result.outcome.code}${result.outcome.message !== undefined ? `: ${result.outcome.message}` : ""}`);
42
+ }
43
+ const localHub = result.local.hubAddress !== undefined
44
+ ? ` (hub ${result.local.hubAddress})`
45
+ : "";
46
+ const lines = [
47
+ `Trace to ${action.target}:`,
48
+ ` RTT: ${String(result.rttMs)}ms`,
49
+ ` Local: ${result.local.relayed ? "relayed" : "direct"}${localHub}`,
50
+ ];
51
+ if (result.remote) {
52
+ const remoteHub = result.remote.hubAddress !== undefined
53
+ ? ` (hub ${result.remote.hubAddress})`
54
+ : "";
55
+ lines.push(` Remote: ${result.remote.relayed ? "relayed" : "direct"}${remoteHub}`);
56
+ }
57
+ return lines.join("\n");
58
+ });
59
+ }
60
+ //# sourceMappingURL=mesh-graph-trace-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-graph-trace-tool.js","sourceRoot":"","sources":["../../src/core/mesh-graph-trace-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * mesh-graph -- agent-comms#199's own mesh_graph/mesh_trace primitives, split from wire-mesh-transport.ts under the repo's max-lines cap, the same reason gossip-directory.ts/hub-forwarding.ts were each split from their own owning file. computeMeshGraph assembles this side's best-effort view of the mesh's connection graph out of every known device's own self-reported topology/peers gossip extension (wire-mesh#180); traceMeshPath sends the live path.trace verb (wire-mesh#181) to a specific device, direct or via the hub.
3
+ */
4
+ import type { AcceptedMeshSession, IncomingManageRequest, ManageOutcome } from "wire-mesh-core/domain/mesh-session";
5
+ import type { PeerAdvert } from "wire-mesh-core/generated/protocol";
6
+ import type { HubSession } from "./hub-session.js";
7
+ import type { MeshGraph, MeshTraceResult } from "./transport.js";
8
+ /** Assembles this side's own best-effort view of the mesh's connection graph out of knownDevices (WireMeshTransport's own mesh-wide gossip aggregation, the identical map listKnownDevices already reads), converted to DirectoryEntry[] the same way hub-forwarding.ts's own pushHubCatchUp already does for its unrelated purpose. Device-ids are hex-encoded, never raw wire-mesh-core DeviceId bytes, matching listKnownDevices' own precedent. */
9
+ export declare function computeMeshGraph(knownDevices: ReadonlyMap<string, Readonly<PeerAdvert>>): MeshGraph;
10
+ /** Sends path.trace to targetDeviceHex, direct if a local peer session exists for it (peerSessions, WireMeshTransport's own addressing map), else via the hub's own relay pairing when connected to one, else resolving an ordinary not_connected outcome rather than throwing -- WireMeshTransport.sendRoomRequest's own identical direct-or-hub fallback, just for path.trace instead of a room-domain verb. Delegates the actual send/RTT-measurement/response-parsing to wire-mesh-core's own tracePath in the direct branch, and to HubSession.tracePath (which does the identical delegation on the hub's own session) in the relayed branch, so neither this function nor either of those duplicates that logic. */
11
+ export declare function traceMeshPath(peerSessions: ReadonlyMap<string, AcceptedMeshSession>, hub: Readonly<Pick<HubSession, "isConnected" | "tracePath">>, targetDeviceHex: string, timeoutMs?: number): Promise<MeshTraceResult>;
12
+ /** Answers an incoming path.trace (agent-comms#199), registered as this side's own "path.trace" room-router handler (createRoomRouter's handlers are keyed by params.verb regardless of domain, despite the room-flavoured name -- see WireMeshTransport's own constructor for where this is wired in alongside the real room verbs). Omits hubAddress unconditionally: RoomVerbHandler's own (request, handle) signature carries no reference to which raw session/connection the request arrived on, so there is no way to look up "the address this side dialled to reach the hub that relayed it" from here -- buildPathTraceResponse's own hubAddress parameter is optional exactly for a receiver with no address to report, so this is an honest omission, not a workaround. Tracked as agent-comms#216 for a future RoomVerbHandler signature change that would let this report it. */
13
+ export declare function handlePathTraceRequest(request: Readonly<IncomingManageRequest>): Promise<ManageOutcome>;
14
+ //# sourceMappingURL=mesh-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-graph.d.ts","sourceRoot":"","sources":["../../src/core/mesh-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACrB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjE,ubAAub;AACvb,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,GACtD,SAAS,CAgBX;AAED,2rBAA2rB;AAC3rB,wBAAsB,aAAa,CACjC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACtD,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC,EAC5D,eAAe,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAED,+1BAA+1B;AAC/1B,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CAExB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * mesh-graph -- agent-comms#199's own mesh_graph/mesh_trace primitives, split from wire-mesh-transport.ts under the repo's max-lines cap, the same reason gossip-directory.ts/hub-forwarding.ts were each split from their own owning file. computeMeshGraph assembles this side's best-effort view of the mesh's connection graph out of every known device's own self-reported topology/peers gossip extension (wire-mesh#180); traceMeshPath sends the live path.trace verb (wire-mesh#181) to a specific device, direct or via the hub.
3
+ */
4
+ import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
5
+ import { assembleTopologyGraph } from "wire-mesh-core/domain/topology";
6
+ import { buildPathTraceResponse, tracePath, } from "wire-mesh-core/domain/path-trace";
7
+ /** Assembles this side's own best-effort view of the mesh's connection graph out of knownDevices (WireMeshTransport's own mesh-wide gossip aggregation, the identical map listKnownDevices already reads), converted to DirectoryEntry[] the same way hub-forwarding.ts's own pushHubCatchUp already does for its unrelated purpose. Device-ids are hex-encoded, never raw wire-mesh-core DeviceId bytes, matching listKnownDevices' own precedent. */
8
+ export function computeMeshGraph(knownDevices) {
9
+ const directory = [...knownDevices.values()].map((advert) => ({ device: advert.device, advert }));
10
+ const graph = assembleTopologyGraph(directory);
11
+ return {
12
+ nodes: graph.nodes.map(deviceIdToHex),
13
+ edges: graph.edges.map((edge) => ({
14
+ kind: edge.kind,
15
+ from: deviceIdToHex(edge.from),
16
+ to: deviceIdToHex(edge.to),
17
+ ...(edge.kind === "relay" && edge.via !== undefined
18
+ ? { via: deviceIdToHex(edge.via) }
19
+ : {}),
20
+ })),
21
+ };
22
+ }
23
+ /** Sends path.trace to targetDeviceHex, direct if a local peer session exists for it (peerSessions, WireMeshTransport's own addressing map), else via the hub's own relay pairing when connected to one, else resolving an ordinary not_connected outcome rather than throwing -- WireMeshTransport.sendRoomRequest's own identical direct-or-hub fallback, just for path.trace instead of a room-domain verb. Delegates the actual send/RTT-measurement/response-parsing to wire-mesh-core's own tracePath in the direct branch, and to HubSession.tracePath (which does the identical delegation on the hub's own session) in the relayed branch, so neither this function nor either of those duplicates that logic. */
24
+ export async function traceMeshPath(peerSessions, hub, targetDeviceHex, timeoutMs) {
25
+ const directSession = peerSessions.get(targetDeviceHex);
26
+ if (directSession !== undefined) {
27
+ return tracePath({
28
+ session: directSession,
29
+ clock: { now: () => Date.now() },
30
+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
31
+ });
32
+ }
33
+ if (hub.isConnected) {
34
+ return hub.tracePath(targetDeviceHex, timeoutMs);
35
+ }
36
+ return {
37
+ rttMs: 0,
38
+ local: { relayed: false },
39
+ outcome: { result: "error", code: "not_connected" },
40
+ };
41
+ }
42
+ /** Answers an incoming path.trace (agent-comms#199), registered as this side's own "path.trace" room-router handler (createRoomRouter's handlers are keyed by params.verb regardless of domain, despite the room-flavoured name -- see WireMeshTransport's own constructor for where this is wired in alongside the real room verbs). Omits hubAddress unconditionally: RoomVerbHandler's own (request, handle) signature carries no reference to which raw session/connection the request arrived on, so there is no way to look up "the address this side dialled to reach the hub that relayed it" from here -- buildPathTraceResponse's own hubAddress parameter is optional exactly for a receiver with no address to report, so this is an honest omission, not a workaround. Tracked as agent-comms#216 for a future RoomVerbHandler signature change that would let this report it. */
43
+ export async function handlePathTraceRequest(request) {
44
+ return Promise.resolve(buildPathTraceResponse(request));
45
+ }
46
+ //# sourceMappingURL=mesh-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-graph.js","sourceRoot":"","sources":["../../src/core/mesh-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,SAAS,GACV,MAAM,kCAAkC,CAAC;AAW1C,ubAAub;AACvb,MAAM,UAAU,gBAAgB,CAC9B,YAAuD;IAEvD,MAAM,SAAS,GAAqB,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAChE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAChD,CAAC;IACF,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;gBACjD,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAClC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,2rBAA2rB;AAC3rB,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAsD,EACtD,GAA4D,EAC5D,eAAuB,EACvB,SAAkB;IAElB,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;YAChC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IACD,OAAO;QACL,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACzB,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,+1BAA+1B;AAC/1B,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAwC;IAExC,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CommsTool's mesh discovery/advertise/interfaces/listener/visibility action handlers -- split out of tool.ts purely to keep that file under the repo's max-lines cap, the same reason gateway-trust-actions.ts/mesh-graph-trace-tool.ts were split from it. Free functions over an explicit DiscoveryManager/CommsStore pair rather than class methods, since CommsTool owns no state of its own for this concern.
3
+ */
4
+ import type { CommsAction } from "./types.js";
5
+ import type { DiscoveryManager } from "./discovery.js";
6
+ import type { CommsResult, MeshOnlyFeatures } from "./tool.js";
7
+ export declare function meshDiscoverAction(discovery: DiscoveryManager | undefined, action: CommsAction & {
8
+ action: "mesh_discover";
9
+ }): Promise<CommsResult>;
10
+ export declare function meshAdvertiseAction(discovery: DiscoveryManager | undefined, action: CommsAction & {
11
+ action: "mesh_advertise";
12
+ }): Promise<CommsResult>;
13
+ export declare function meshInterfacesAction(store: Readonly<Pick<MeshOnlyFeatures, "getNetworkInterfaces">>): CommsResult;
14
+ export declare function meshUnadvertiseAction(discovery: DiscoveryManager | undefined, action: CommsAction & {
15
+ action: "mesh_unadvertise";
16
+ }): Promise<CommsResult>;
17
+ export declare function meshListenAction(store: Readonly<Pick<MeshOnlyFeatures, "addListener">>, action: CommsAction & {
18
+ action: "mesh_listen";
19
+ }): Promise<CommsResult>;
20
+ export declare function meshUnlistenAction(store: Readonly<Pick<MeshOnlyFeatures, "removeListener">>, action: CommsAction & {
21
+ action: "mesh_unlisten";
22
+ }): Promise<CommsResult>;
23
+ export declare function meshListenersAction(store: Readonly<Pick<MeshOnlyFeatures, "listListeners">>): CommsResult;
24
+ export declare function meshSetVisibilityAction(store: Readonly<Pick<MeshOnlyFeatures, "setVisibility">>, action: CommsAction & {
25
+ action: "mesh_set_visibility";
26
+ }): Promise<CommsResult>;
27
+ export declare function meshGetVisibilityAction(store: Readonly<Pick<MeshOnlyFeatures, "getVisibility">>): CommsResult;
28
+ //# sourceMappingURL=mesh-network-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-network-actions.d.ts","sourceRoot":"","sources":["../../src/core/mesh-network-actions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAa/D,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,gBAAgB,GAAG,SAAS,EACvC,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAChD,OAAO,CAAC,WAAW,CAAC,CAmBtB;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,gBAAgB,GAAG,SAAS,EACvC,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACjD,OAAO,CAAC,WAAW,CAAC,CAkBtB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,GAC9D,WAAW,CAcb;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,gBAAgB,GAAG,SAAS,EACvC,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,GACnD,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,EACtD,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GAC9C,OAAO,CAAC,WAAW,CAAC,CAetB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,EACzD,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAChD,OAAO,CAAC,WAAW,CAAC,CAOtB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,GACvD,WAAW,CAcb;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,EACxD,MAAM,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACtD,OAAO,CAAC,WAAW,CAAC,CActB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,GACvD,WAAW,CAYb"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * CommsTool's mesh discovery/advertise/interfaces/listener/visibility action handlers -- split out of tool.ts purely to keep that file under the repo's max-lines cap, the same reason gateway-trust-actions.ts/mesh-graph-trace-tool.ts were split from it. Free functions over an explicit DiscoveryManager/CommsStore pair rather than class methods, since CommsTool owns no state of its own for this concern.
3
+ */
4
+ import { notMeshBacked, tryMeshAction } from "./tool.js";
5
+ /** Table column widths for the plain-text listing helpers below, matching tool.ts's own aligned-column convention for every other tabular action result. */
6
+ const INTERFACE_NAME_COLUMN_WIDTH = 12;
7
+ const INTERFACE_FAMILY_COLUMN_WIDTH = 4;
8
+ const LISTENER_HOST_COLUMN_WIDTH = 15;
9
+ const LISTENER_PORT_COLUMN_WIDTH = 6;
10
+ const LISTENER_POLICY_COLUMN_WIDTH = 11;
11
+ /** Default port the mesh coordinator listens on when advertising with no explicit port given. */
12
+ const DEFAULT_MESH_COORDINATOR_PORT = 19876;
13
+ export async function meshDiscoverAction(discovery, action) {
14
+ if (!discovery) {
15
+ return {
16
+ content: "Discovery is not available (no backends registered).",
17
+ isError: true,
18
+ };
19
+ }
20
+ const meshes = await discovery.discover(action.method);
21
+ if (meshes.length === 0) {
22
+ return { content: "No meshes discovered.", isError: false };
23
+ }
24
+ const lines = meshes.map((m) => ` ${m.host}:${String(m.port)} ${m.name}${m.agentCount !== undefined ? ` (${String(m.agentCount)} agents)` : ""}`);
25
+ return {
26
+ content: `Discovered meshes:\n${lines.join("\n")}`,
27
+ isError: false,
28
+ };
29
+ }
30
+ export async function meshAdvertiseAction(discovery, action) {
31
+ if (!discovery) {
32
+ return {
33
+ content: "Discovery is not available (no backends registered).",
34
+ isError: true,
35
+ };
36
+ }
37
+ const port = action.port ?? DEFAULT_MESH_COORDINATOR_PORT;
38
+ const opts = {
39
+ name: action.name,
40
+ port,
41
+ };
42
+ if (action.adapter !== undefined)
43
+ opts.adapter = action.adapter;
44
+ const id = await discovery.advertise(action.method, opts);
45
+ return {
46
+ content: `Advertising mesh "${action.name}" on ${action.method} (port ${String(port)}). ID: ${id}`,
47
+ isError: false,
48
+ };
49
+ }
50
+ export function meshInterfacesAction(store) {
51
+ if (!store.getNetworkInterfaces)
52
+ return notMeshBacked("mesh_interfaces");
53
+ const interfaces = store.getNetworkInterfaces();
54
+ if (interfaces.length === 0)
55
+ return { content: "No network interfaces found.", isError: false };
56
+ const lines = interfaces.map((iface) => {
57
+ const internal = iface.internal ? " (internal)" : "";
58
+ return `${iface.name.padEnd(INTERFACE_NAME_COLUMN_WIDTH)} ${iface.family.padEnd(INTERFACE_FAMILY_COLUMN_WIDTH)} ${iface.address}${internal}`;
59
+ });
60
+ return {
61
+ content: `Interfaces:\n${lines.join("\n")}`,
62
+ isError: false,
63
+ };
64
+ }
65
+ export async function meshUnadvertiseAction(discovery, action) {
66
+ if (!discovery) {
67
+ return {
68
+ content: "Discovery is not available (no backends registered).",
69
+ isError: true,
70
+ };
71
+ }
72
+ await discovery.stopAdvertising(action.id);
73
+ return { content: `Stopped advertising ${action.id}.`, isError: false };
74
+ }
75
+ export async function meshListenAction(store, action) {
76
+ const policy = action.policy ?? "full";
77
+ const validPolicies = ["full", "observe", "rooms-only", "gateway"];
78
+ if (!validPolicies.includes(policy)) {
79
+ return {
80
+ content: `Invalid policy "${policy}". Must be one of: ${validPolicies.join(", ")}`,
81
+ isError: true,
82
+ };
83
+ }
84
+ if (!store.addListener)
85
+ return notMeshBacked("mesh_listen");
86
+ const addListener = store.addListener.bind(store);
87
+ return tryMeshAction("add listener", async () => {
88
+ const id = await addListener(action.host, action.port ?? 0, policy);
89
+ return `Listener added: ${id} on ${action.host}${String(action.port ?? "auto")} with policy ${policy}.`;
90
+ });
91
+ }
92
+ export async function meshUnlistenAction(store, action) {
93
+ if (!store.removeListener)
94
+ return notMeshBacked("mesh_unlisten");
95
+ const removeListener = store.removeListener.bind(store);
96
+ return tryMeshAction("remove listener", async () => {
97
+ await removeListener(action.id);
98
+ return `Listener ${action.id} removed.`;
99
+ });
100
+ }
101
+ export function meshListenersAction(store) {
102
+ if (!store.listListeners)
103
+ return notMeshBacked("mesh_listeners");
104
+ const listeners = store.listListeners();
105
+ if (listeners.length === 0)
106
+ return { content: "No listeners (not coordinator).", isError: false };
107
+ const lines = listeners.map((l) => {
108
+ const flag = l.isDefault ? " (default)" : "";
109
+ return `${l.id} ${l.host.padEnd(LISTENER_HOST_COLUMN_WIDTH)} ${String(l.port).padEnd(LISTENER_PORT_COLUMN_WIDTH)} ${l.policy.padEnd(LISTENER_POLICY_COLUMN_WIDTH)}${flag}`;
110
+ });
111
+ return {
112
+ content: `Listeners:\n ID Host Port Policy \n${lines.map((l) => ` ${l}`).join("\n")}`,
113
+ isError: false,
114
+ };
115
+ }
116
+ export async function meshSetVisibilityAction(store, action) {
117
+ if (!store.setVisibility) {
118
+ return {
119
+ content: "Visibility control is not available on this store.",
120
+ isError: true,
121
+ };
122
+ }
123
+ await store.setVisibility(action.visibility, action.adapter);
124
+ const adapter = action.adapter !== undefined ? ` on adapter "${action.adapter}"` : "";
125
+ return {
126
+ content: `Mesh visibility set to "${action.visibility}"${adapter}.`,
127
+ isError: false,
128
+ };
129
+ }
130
+ export function meshGetVisibilityAction(store) {
131
+ if (!store.getVisibility) {
132
+ return {
133
+ content: "Visibility control is not available on this store.",
134
+ isError: true,
135
+ };
136
+ }
137
+ const visibility = store.getVisibility();
138
+ return {
139
+ content: `Mesh visibility: ${visibility}`,
140
+ isError: false,
141
+ };
142
+ }
143
+ //# sourceMappingURL=mesh-network-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-network-actions.js","sourceRoot":"","sources":["../../src/core/mesh-network-actions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,4JAA4J;AAC5J,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,iGAAiG;AACjG,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAuC,EACvC,MAAiD;IAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CACrH,CAAC;IACF,OAAO;QACL,OAAO,EAAE,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAuC,EACvC,MAAkD;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,6BAA6B,CAAC;IAC1D,MAAM,IAAI,GAAqD;QAC7D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI;KACL,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACL,OAAO,EAAE,qBAAqB,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;QAClG,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA+D;IAE/D,IAAI,CAAC,KAAK,CAAC,oBAAoB;QAAE,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAErE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAiC,EAAE,EAAE;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC/I,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC3C,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAuC,EACvC,MAAoD;IAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,EAAE,uBAAuB,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAsD,EACtD,MAA+C;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IACvC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACnE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,mBAAmB,MAAM,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,mBAAmB,EAAE,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,gBAAgB,MAAM,GAAG,CAAC;IAC1G,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAyD,EACzD,MAAiD;IAEjD,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,YAAY,MAAM,CAAC,EAAE,WAAW,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAwD;IAExD,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAyB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9K,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,+DAA+D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/G,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAwD,EACxD,MAAuD;IAEvD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,oDAAoD;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,2BAA2B,MAAM,CAAC,UAAU,IAAI,OAAO,GAAG;QACnE,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwD;IAExD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,oDAAoD;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACzC,OAAO;QACL,OAAO,EAAE,oBAAoB,UAAU,EAAE;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
@@ -17,7 +17,7 @@ import type { DeviceId } from "wire-mesh-core/generated/protocol";
17
17
  import type { RoomVerbHandler } from "./room-router.js";
18
18
  import type { AgentSelfAdvert, HostedRoomAdvert } from "./wire-mesh-transport.js";
19
19
  import type { MeshStatePatch, SerialisedState } from "./wire-protocol.js";
20
- import type { ListenerInfo, MeshTransport, TransportEvents } from "./transport.js";
20
+ import type { ListenerInfo, MeshGraph, MeshTraceResult, MeshTransport, TransportEvents } from "./transport.js";
21
21
  import type { CommsStore } from "./comms-store.js";
22
22
  import type { CapabilityToken } from "wire-mesh-core/generated/protocol";
23
23
  import type { AgentIdentity, AgentStatus, ConnectionCode, DeliveryEvent, DmMessage, MeshVisibility, NetworkInterface, Room, RoomMessage, RoomType, StreamingBehavior, Visibility } from "./types.js";
@@ -214,6 +214,10 @@ export declare class MeshStore implements CommsStore {
214
214
  addListener(host: string, port: number, policy: string): Promise<string>;
215
215
  removeListener(id: string): Promise<void>;
216
216
  listListeners(): ListenerInfo[];
217
+ /** 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. */
218
+ meshGraph(): MeshGraph;
219
+ /** Delegates to the transport's own meshTrace, same "throw if unsupported" contract as meshGraph above. */
220
+ meshTrace(target: string, timeoutMs?: number): Promise<MeshTraceResult>;
217
221
  getNetworkInterfaces(): NetworkInterface[];
218
222
  /** deviceId's own gossiped agent-comms package version, if this side has heard it advertised -- undefined for a device this side has never heard gossip from, or one running a version of agent-comms that predates this feature. */
219
223
  getPeerAgentCommsVersion(deviceId: string): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-store.d.ts","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EACV,cAAc,EAEd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,YAAY,EAEZ,aAAa,EACb,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACX,MAAM,YAAY,CAAC;AAcpB,qBAAa,SAAU,YAAW,UAAU;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;IAC7E,+bAA+b;IAC/b,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAE7D,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAE5B,SAAS,EAAE,gBAAgB,CAAC;IAE5B,qvBAAqvB;IACrvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC,ohBAAohB;IACphB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,gRAAgR;IAChR,IAAI,UAAU,IAAI,WAAW,GAAG,SAAS,CAExC;IAED,6kBAA6kB;IAC7kB,IAAI,WAAW,IAAI,SAAS,gBAAgB,EAAE,CAa7C;IAED,gpBAAgpB;IAChpB,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,CAYjD;IAED,0DAA0D;IAC1D,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED,UAAU,EACN,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACjE,SAAS,CAAC;IAEd,uEAAuE;IACvE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAEvE;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAE9C;;OAEG;IACH,wBAAwB,EACtB,CAAC,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAEjE,8rBAA8rB;IAC9rB,gBAAgB,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAEzD,6DAA6D;IAC7D,SAAS,IAAI,eAAe;gBAW1B,eAAe,GAAE,MAAiC,EAClD,MAAM,GAAE,MAAwB;IAChC,yOAAyO;IACzO,IAAI,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAgJ/B,+IAA+I;IAC/I,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAItD,uQAAuQ;IACvQ,OAAO,CAAC,gBAAgB;IASxB,iNAAiN;IACjN,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI9C,6KAA6K;IAC7K,OAAO,CAAC,eAAe;IAajB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkE3B,gGAAgG;IAChG,IAAI,MAAM,IAAI,eAAe,CAoC5B;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAE/D;IAMK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAIhC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE,aAAa,CAAC,IAAI,EAAE;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAIxD,WAAW,CACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CACZ,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CACvE,GACA,OAAO,CAAC,aAAa,CAAC;IAInB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIzD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,UAAU,CACd,IAAI,EAAE,QAAQ,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,GACD,OAAO,CAAC,IAAI,CAAC;IAIV,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAI9C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIrD,4KAA4K;IACtK,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,ohBAAohB;IAC9gB,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;IAIhB,omBAAomB;IAC9lB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,oBAAoB,SAAI,GACvB,OAAO,CAAC,eAAe,CAAC;IAI3B,gRAAgR;IAC1Q,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAIV,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAIV,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,WAAW,CAAC;IAUjB,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC;IAQnB,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,SAAS,CAAC;IAQf,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQ9D,gHAAgH;IAChH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI5C,wHAAwH;IAClH,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAIhB,+IAA+I;IACzI,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C,2CAA2C;IACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,2CAA2C;IACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,8DAA8D;IAC9D,sBAAsB,IAAI;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE;IAIH,kFAAkF;IAC5E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,oGAAoG;IACpG,oBAAoB,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;IAInE,4CAA4C;IAC5C,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3D,oEAAoE;IACpE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5E,mXAAmX;IACnX,0BAA0B,CACxB,OAAO,EAAE,QAAQ,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,QAAQ,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,GACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAW/D,qGAAqG;IACrG,6BAA6B,IAAI;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,EAAE;IAIH,sFAAsF;IAChF,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,GACD,OAAO,CAAC,IAAI,CAAC;IAOhB,qEAAqE;IAC/D,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAWhB,qEAAqE;IAC/D,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,6CAA6C;IAC7C,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc;IAQ/C,iYAAiY;IACjY,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C,sFAAsF;IACtF,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7C,sDAAsD;IACtD,mBAAmB,IAAI,MAAM,EAAE;IAI/B,qUAAqU;IACrU,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAInD,qGAAqG;IACrG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAItD,qEAAqE;IACrE,4BAA4B,IAAI,MAAM,EAAE;IAQxC,uOAAuO;IACjO,sBAAsB,CAC1B,OAAO,GAAE,QAAQ,CAAC,6BAA6B,CAAM,GACpD,OAAO,CAAC,cAAc,CAAC;IAI1B,0SAA0S;IACpS,oBAAoB,CACxB,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,EACnC,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,OAAO,CAAC,0BAA0B,CAAC;IAUhC,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAYZ,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,IAAI,YAAY,EAAE;IAI/B,oBAAoB,IAAI,gBAAgB,EAAE;IAqB1C,qOAAqO;IACrO,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK9D,6PAA6P;IAC7P,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D,+OAA+O;IAC/O,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQhE,wWAAwW;IAClW,YAAY,CAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBhC"}
1
+ {"version":3,"file":"mesh-store.d.ts","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"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"}
@@ -618,6 +618,22 @@ export class MeshStore {
618
618
  listListeners() {
619
619
  return this.requireTransport().listListeners();
620
620
  }
621
+ /** 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. */
622
+ meshGraph() {
623
+ const graph = this.requireTransport().meshGraph?.();
624
+ if (graph === undefined) {
625
+ throw new CommsError("mesh_graph requires a transport that supports it", "NOT_SUPPORTED");
626
+ }
627
+ return graph;
628
+ }
629
+ /** Delegates to the transport's own meshTrace, same "throw if unsupported" contract as meshGraph above. */
630
+ async meshTrace(target, timeoutMs) {
631
+ const transport = this.requireTransport();
632
+ if (transport.meshTrace === undefined) {
633
+ throw new CommsError("mesh_trace requires a transport that supports it", "NOT_SUPPORTED");
634
+ }
635
+ return transport.meshTrace(target, timeoutMs);
636
+ }
621
637
  getNetworkInterfaces() {
622
638
  const interfaces = os.networkInterfaces();
623
639
  const result = [];