agent-comms 8.4.1 → 8.6.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 (294) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +33 -3
  4. package/dist/bridges/cc-peer/front-runtime.d.ts.map +1 -1
  5. package/dist/bridges/cc-peer/front-runtime.js +4 -2
  6. package/dist/bridges/cc-peer/front-runtime.js.map +1 -1
  7. package/dist/bridges/user/controller.d.ts.map +1 -1
  8. package/dist/bridges/user/controller.js +4 -1
  9. package/dist/bridges/user/controller.js.map +1 -1
  10. package/dist/bridges/user/web/contract.d.ts +12 -0
  11. package/dist/bridges/user/web/contract.d.ts.map +1 -1
  12. package/dist/bridges/user/web/contract.js +9 -0
  13. package/dist/bridges/user/web/contract.js.map +1 -1
  14. package/dist/bridges/user/web/dist/bundle.js +1 -1
  15. package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
  16. package/dist/bridges/user/web/dist/sw.js +1 -1
  17. package/dist/bridges/user/web/frontend/components/MeshGraphView.d.ts +3 -1
  18. package/dist/bridges/user/web/frontend/components/MeshGraphView.d.ts.map +1 -1
  19. package/dist/bridges/user/web/frontend/components/MeshGraphView.js +2 -4
  20. package/dist/bridges/user/web/frontend/components/MeshGraphView.js.map +1 -1
  21. package/dist/bridges/user/web/frontend/components/MeshPanel.d.ts +1 -1
  22. package/dist/bridges/user/web/frontend/components/MeshPanel.d.ts.map +1 -1
  23. package/dist/bridges/user/web/frontend/components/MeshPanel.js +6 -1
  24. package/dist/bridges/user/web/frontend/components/MeshPanel.js.map +1 -1
  25. package/dist/bridges/user/web/frontend/components/MeshTraceView.d.ts +3 -1
  26. package/dist/bridges/user/web/frontend/components/MeshTraceView.d.ts.map +1 -1
  27. package/dist/bridges/user/web/frontend/components/MeshTraceView.js +2 -4
  28. package/dist/bridges/user/web/frontend/components/MeshTraceView.js.map +1 -1
  29. package/dist/bridges/user/web/frontend/main.js +6 -13
  30. package/dist/bridges/user/web/frontend/main.js.map +1 -1
  31. package/dist/bridges/user/web/frontend/mesh-client.d.ts +2 -0
  32. package/dist/bridges/user/web/frontend/mesh-client.d.ts.map +1 -1
  33. package/dist/bridges/user/web/frontend/mesh-client.js +1 -0
  34. package/dist/bridges/user/web/frontend/mesh-client.js.map +1 -1
  35. package/dist/bridges/user/web/frontend/mesh-invalidation.d.ts +11 -0
  36. package/dist/bridges/user/web/frontend/mesh-invalidation.d.ts.map +1 -0
  37. package/dist/bridges/user/web/frontend/mesh-invalidation.js +26 -0
  38. package/dist/bridges/user/web/frontend/mesh-invalidation.js.map +1 -0
  39. package/dist/bridges/user/web/frontend/mesh-worker.d.ts.map +1 -1
  40. package/dist/bridges/user/web/frontend/mesh-worker.js +1 -0
  41. package/dist/bridges/user/web/frontend/mesh-worker.js.map +1 -1
  42. package/dist/bridges/user/web/frontend/tab-contract.d.ts +5 -0
  43. package/dist/bridges/user/web/frontend/tab-contract.d.ts.map +1 -1
  44. package/dist/bridges/user/web/reads.d.ts +3 -0
  45. package/dist/bridges/user/web/reads.d.ts.map +1 -1
  46. package/dist/bridges/user/web/reads.js +4 -0
  47. package/dist/bridges/user/web/reads.js.map +1 -1
  48. package/dist/bridges/user/web/router.d.ts +5 -0
  49. package/dist/bridges/user/web/router.d.ts.map +1 -1
  50. package/dist/bridges/user/web/router.js +2 -1
  51. package/dist/bridges/user/web/router.js.map +1 -1
  52. package/dist/core/agent-registry.d.ts.map +1 -1
  53. package/dist/core/agent-registry.js +20 -6
  54. package/dist/core/agent-registry.js.map +1 -1
  55. package/dist/core/agent-table.d.ts +18 -0
  56. package/dist/core/agent-table.d.ts.map +1 -0
  57. package/dist/core/agent-table.js +38 -0
  58. package/dist/core/agent-table.js.map +1 -0
  59. package/dist/core/atomic-file.d.ts +12 -0
  60. package/dist/core/atomic-file.d.ts.map +1 -0
  61. package/dist/core/atomic-file.js +37 -0
  62. package/dist/core/atomic-file.js.map +1 -0
  63. package/dist/core/bridge-mesh.d.ts.map +1 -1
  64. package/dist/core/bridge-mesh.js +7 -0
  65. package/dist/core/bridge-mesh.js.map +1 -1
  66. package/dist/core/bridge.d.ts +5 -0
  67. package/dist/core/bridge.d.ts.map +1 -1
  68. package/dist/core/bridge.js +26 -1
  69. package/dist/core/bridge.js.map +1 -1
  70. package/dist/core/delivery-engine.d.ts.map +1 -1
  71. package/dist/core/delivery-engine.js +4 -0
  72. package/dist/core/delivery-engine.js.map +1 -1
  73. package/dist/core/device-membership-verification.d.ts +23 -9
  74. package/dist/core/device-membership-verification.d.ts.map +1 -1
  75. package/dist/core/device-membership-verification.js +38 -11
  76. package/dist/core/device-membership-verification.js.map +1 -1
  77. package/dist/core/device-membership.d.ts +12 -3
  78. package/dist/core/device-membership.d.ts.map +1 -1
  79. package/dist/core/device-membership.js +10 -7
  80. package/dist/core/device-membership.js.map +1 -1
  81. package/dist/core/directory-admission.d.ts +5 -3
  82. package/dist/core/directory-admission.d.ts.map +1 -1
  83. package/dist/core/directory-admission.js +55 -32
  84. package/dist/core/directory-admission.js.map +1 -1
  85. package/dist/core/display-name.d.ts +29 -0
  86. package/dist/core/display-name.d.ts.map +1 -0
  87. package/dist/core/display-name.js +57 -0
  88. package/dist/core/display-name.js.map +1 -0
  89. package/dist/core/gateway-trust-actions.d.ts +7 -9
  90. package/dist/core/gateway-trust-actions.d.ts.map +1 -1
  91. package/dist/core/gateway-trust-actions.js +82 -16
  92. package/dist/core/gateway-trust-actions.js.map +1 -1
  93. package/dist/core/gateway-trust.d.ts +38 -17
  94. package/dist/core/gateway-trust.d.ts.map +1 -1
  95. package/dist/core/gateway-trust.js +86 -37
  96. package/dist/core/gateway-trust.js.map +1 -1
  97. package/dist/core/gossip-directory.d.ts +25 -3
  98. package/dist/core/gossip-directory.d.ts.map +1 -1
  99. package/dist/core/gossip-directory.js +53 -5
  100. package/dist/core/gossip-directory.js.map +1 -1
  101. package/dist/core/gossip-extensions.d.ts +4 -0
  102. package/dist/core/gossip-extensions.d.ts.map +1 -1
  103. package/dist/core/gossip-extensions.js +4 -0
  104. package/dist/core/gossip-extensions.js.map +1 -1
  105. package/dist/core/group-proofs.d.ts +49 -0
  106. package/dist/core/group-proofs.d.ts.map +1 -0
  107. package/dist/core/group-proofs.js +102 -0
  108. package/dist/core/group-proofs.js.map +1 -0
  109. package/dist/core/identity-store.d.ts +5 -4
  110. package/dist/core/identity-store.d.ts.map +1 -1
  111. package/dist/core/identity-store.js +13 -16
  112. package/dist/core/identity-store.js.map +1 -1
  113. package/dist/core/issuer-identity-file.d.ts +25 -0
  114. package/dist/core/issuer-identity-file.d.ts.map +1 -0
  115. package/dist/core/issuer-identity-file.js +124 -0
  116. package/dist/core/issuer-identity-file.js.map +1 -0
  117. package/dist/core/machine-grouping.d.ts +47 -0
  118. package/dist/core/machine-grouping.d.ts.map +1 -0
  119. package/dist/core/machine-grouping.js +102 -0
  120. package/dist/core/machine-grouping.js.map +1 -0
  121. package/dist/core/machine-identity.d.ts +19 -0
  122. package/dist/core/machine-identity.d.ts.map +1 -0
  123. package/dist/core/machine-identity.js +42 -0
  124. package/dist/core/machine-identity.js.map +1 -0
  125. package/dist/core/machine-list-groups.d.ts +13 -0
  126. package/dist/core/machine-list-groups.d.ts.map +1 -0
  127. package/dist/core/machine-list-groups.js +41 -0
  128. package/dist/core/machine-list-groups.js.map +1 -0
  129. package/dist/core/machine-name-claim.d.ts +22 -0
  130. package/dist/core/machine-name-claim.d.ts.map +1 -0
  131. package/dist/core/machine-name-claim.js +52 -0
  132. package/dist/core/machine-name-claim.js.map +1 -0
  133. package/dist/core/membership-proof.d.ts +20 -9
  134. package/dist/core/membership-proof.d.ts.map +1 -1
  135. package/dist/core/membership-proof.js +41 -15
  136. package/dist/core/membership-proof.js.map +1 -1
  137. package/dist/core/membership-proofs.d.ts +16 -8
  138. package/dist/core/membership-proofs.d.ts.map +1 -1
  139. package/dist/core/membership-proofs.js +24 -12
  140. package/dist/core/membership-proofs.js.map +1 -1
  141. package/dist/core/mesh-graph-trace-tool.d.ts +3 -2
  142. package/dist/core/mesh-graph-trace-tool.d.ts.map +1 -1
  143. package/dist/core/mesh-graph-trace-tool.js +8 -5
  144. package/dist/core/mesh-graph-trace-tool.js.map +1 -1
  145. package/dist/core/mesh-store-shared.d.ts +4 -1
  146. package/dist/core/mesh-store-shared.d.ts.map +1 -1
  147. package/dist/core/mesh-store-shared.js.map +1 -1
  148. package/dist/core/mesh-store.d.ts +20 -10
  149. package/dist/core/mesh-store.d.ts.map +1 -1
  150. package/dist/core/mesh-store.js +45 -38
  151. package/dist/core/mesh-store.js.map +1 -1
  152. package/dist/core/name-claim.d.ts +38 -0
  153. package/dist/core/name-claim.d.ts.map +1 -0
  154. package/dist/core/name-claim.js +93 -0
  155. package/dist/core/name-claim.js.map +1 -0
  156. package/dist/core/naming-actions.d.ts +21 -0
  157. package/dist/core/naming-actions.d.ts.map +1 -0
  158. package/dist/core/naming-actions.js +58 -0
  159. package/dist/core/naming-actions.js.map +1 -0
  160. package/dist/core/naming.d.ts +50 -0
  161. package/dist/core/naming.d.ts.map +1 -0
  162. package/dist/core/naming.js +81 -0
  163. package/dist/core/naming.js.map +1 -0
  164. package/dist/core/network-interfaces.d.ts +7 -0
  165. package/dist/core/network-interfaces.d.ts.map +1 -0
  166. package/dist/core/network-interfaces.js +23 -0
  167. package/dist/core/network-interfaces.js.map +1 -0
  168. package/dist/core/peer-versions.d.ts +6 -0
  169. package/dist/core/peer-versions.d.ts.map +1 -1
  170. package/dist/core/peer-versions.js +17 -0
  171. package/dist/core/peer-versions.js.map +1 -1
  172. package/dist/core/petnames.d.ts +22 -0
  173. package/dist/core/petnames.d.ts.map +1 -0
  174. package/dist/core/petnames.js +102 -0
  175. package/dist/core/petnames.js.map +1 -0
  176. package/dist/core/room-path.d.ts +2 -0
  177. package/dist/core/room-path.d.ts.map +1 -1
  178. package/dist/core/room-path.js +5 -1
  179. package/dist/core/room-path.js.map +1 -1
  180. package/dist/core/store.d.ts +4 -0
  181. package/dist/core/store.d.ts.map +1 -1
  182. package/dist/core/store.js +19 -2
  183. package/dist/core/store.js.map +1 -1
  184. package/dist/core/tool.d.ts +16 -5
  185. package/dist/core/tool.d.ts.map +1 -1
  186. package/dist/core/tool.js +59 -13
  187. package/dist/core/tool.js.map +1 -1
  188. package/dist/core/types.d.ts +28 -0
  189. package/dist/core/types.d.ts.map +1 -1
  190. package/dist/core/types.js +18 -0
  191. package/dist/core/types.js.map +1 -1
  192. package/dist/core/user-identity.d.ts +4 -6
  193. package/dist/core/user-identity.d.ts.map +1 -1
  194. package/dist/core/user-identity.js +9 -113
  195. package/dist/core/user-identity.js.map +1 -1
  196. package/dist/core/wire-mesh-transport-options.d.ts +2 -2
  197. package/dist/core/wire-mesh-transport-options.d.ts.map +1 -1
  198. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  199. package/dist/core/wire-mesh-transport.js +7 -7
  200. package/dist/core/wire-mesh-transport.js.map +1 -1
  201. package/dist/test/agent-table.unit.test.d.ts +5 -0
  202. package/dist/test/agent-table.unit.test.d.ts.map +1 -0
  203. package/dist/test/agent-table.unit.test.js +53 -0
  204. package/dist/test/agent-table.unit.test.js.map +1 -0
  205. package/dist/test/delivery-engine-delivery.unit.test.js +2 -0
  206. package/dist/test/delivery-engine-delivery.unit.test.js.map +1 -1
  207. package/dist/test/delivery-engine-directed-notify.unit.test.js +2 -0
  208. package/dist/test/delivery-engine-directed-notify.unit.test.js.map +1 -1
  209. package/dist/test/delivery-engine-own-agent.unit.test.js +2 -0
  210. package/dist/test/delivery-engine-own-agent.unit.test.js.map +1 -1
  211. package/dist/test/delivery-engine.unit.test.js +2 -0
  212. package/dist/test/delivery-engine.unit.test.js.map +1 -1
  213. package/dist/test/device-membership-verification.unit.test.js +25 -25
  214. package/dist/test/device-membership-verification.unit.test.js.map +1 -1
  215. package/dist/test/device-membership.unit.test.js +6 -6
  216. package/dist/test/device-membership.unit.test.js.map +1 -1
  217. package/dist/test/directory-admission.unit.test.js +103 -7
  218. package/dist/test/directory-admission.unit.test.js.map +1 -1
  219. package/dist/test/display-name.unit.test.d.ts +5 -0
  220. package/dist/test/display-name.unit.test.d.ts.map +1 -0
  221. package/dist/test/display-name.unit.test.js +65 -0
  222. package/dist/test/display-name.unit.test.js.map +1 -0
  223. package/dist/test/gateway-trust-tool.integration.test.js +117 -4
  224. package/dist/test/gateway-trust-tool.integration.test.js.map +1 -1
  225. package/dist/test/gateway-trust.unit.test.js +62 -13
  226. package/dist/test/gateway-trust.unit.test.js.map +1 -1
  227. package/dist/test/gossip-directory.unit.test.js +14 -1
  228. package/dist/test/gossip-directory.unit.test.js.map +1 -1
  229. package/dist/test/hub-exposure.integration.test.js +1 -1
  230. package/dist/test/hub-exposure.integration.test.js.map +1 -1
  231. package/dist/test/identity-restart.integration.test.js +3 -0
  232. package/dist/test/identity-restart.integration.test.js.map +1 -1
  233. package/dist/test/identity-store.integration.test.js +64 -14
  234. package/dist/test/identity-store.integration.test.js.map +1 -1
  235. package/dist/test/machine-grouping.unit.test.d.ts +2 -0
  236. package/dist/test/machine-grouping.unit.test.d.ts.map +1 -0
  237. package/dist/test/machine-grouping.unit.test.js +68 -0
  238. package/dist/test/machine-grouping.unit.test.js.map +1 -0
  239. package/dist/test/machine-identity.unit.test.d.ts +5 -0
  240. package/dist/test/machine-identity.unit.test.d.ts.map +1 -0
  241. package/dist/test/machine-identity.unit.test.js +80 -0
  242. package/dist/test/machine-identity.unit.test.js.map +1 -0
  243. package/dist/test/machine-list-groups.unit.test.d.ts +5 -0
  244. package/dist/test/machine-list-groups.unit.test.d.ts.map +1 -0
  245. package/dist/test/machine-list-groups.unit.test.js +61 -0
  246. package/dist/test/machine-list-groups.unit.test.js.map +1 -0
  247. package/dist/test/machine-membership-trust.integration.test.d.ts +5 -0
  248. package/dist/test/machine-membership-trust.integration.test.d.ts.map +1 -0
  249. package/dist/test/machine-membership-trust.integration.test.js +152 -0
  250. package/dist/test/machine-membership-trust.integration.test.js.map +1 -0
  251. package/dist/test/membership-proof.unit.test.js +105 -13
  252. package/dist/test/membership-proof.unit.test.js.map +1 -1
  253. package/dist/test/name-claim.unit.test.d.ts +5 -0
  254. package/dist/test/name-claim.unit.test.d.ts.map +1 -0
  255. package/dist/test/name-claim.unit.test.js +135 -0
  256. package/dist/test/name-claim.unit.test.js.map +1 -0
  257. package/dist/test/naming.integration.test.d.ts +5 -0
  258. package/dist/test/naming.integration.test.d.ts.map +1 -0
  259. package/dist/test/naming.integration.test.js +188 -0
  260. package/dist/test/naming.integration.test.js.map +1 -0
  261. package/dist/test/petnames.unit.test.d.ts +5 -0
  262. package/dist/test/petnames.unit.test.d.ts.map +1 -0
  263. package/dist/test/petnames.unit.test.js +94 -0
  264. package/dist/test/petnames.unit.test.js.map +1 -0
  265. package/dist/test/principal-membership-trust.integration.test.js +2 -1
  266. package/dist/test/principal-membership-trust.integration.test.js.map +1 -1
  267. package/dist/test/room-join-admission.integration.test.js +3 -0
  268. package/dist/test/room-join-admission.integration.test.js.map +1 -1
  269. package/dist/test/room-lifecycle-bare-name.unit.test.js +2 -0
  270. package/dist/test/room-lifecycle-bare-name.unit.test.js.map +1 -1
  271. package/dist/test/room-lifecycle-membership.unit.test.js +2 -0
  272. package/dist/test/room-lifecycle-membership.unit.test.js.map +1 -1
  273. package/dist/test/room-lifecycle-remote.unit.test.js +2 -0
  274. package/dist/test/room-lifecycle-remote.unit.test.js.map +1 -1
  275. package/dist/test/room-lifecycle.unit.test.js +2 -0
  276. package/dist/test/room-lifecycle.unit.test.js.map +1 -1
  277. package/dist/test/room-messaging-durable-send.unit.test.js +2 -0
  278. package/dist/test/room-messaging-durable-send.unit.test.js.map +1 -1
  279. package/dist/test/room-messaging.unit.test.js +2 -0
  280. package/dist/test/room-messaging.unit.test.js.map +1 -1
  281. package/dist/test/room-protocol-notify.unit.test.js +2 -0
  282. package/dist/test/room-protocol-notify.unit.test.js.map +1 -1
  283. package/dist/test/room-protocol.helper.d.ts.map +1 -1
  284. package/dist/test/room-protocol.helper.js +2 -0
  285. package/dist/test/room-protocol.helper.js.map +1 -1
  286. package/dist/test/room-send-retry.integration.test.js +3 -0
  287. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  288. package/dist/test/test-transport.d.ts +3 -0
  289. package/dist/test/test-transport.d.ts.map +1 -1
  290. package/dist/test/test-transport.js +8 -1
  291. package/dist/test/test-transport.js.map +1 -1
  292. package/dist/test/user-identity.unit.test.js +40 -14
  293. package/dist/test/user-identity.unit.test.js.map +1 -1
  294. package/package.json +1 -1
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Petnames (agent-comms#345): the viewer's own labels for device-ids, the third naming tier beside a subject's self-asserted name and the short id. A petname lives only in the viewer's own storage and is never gossiped, never put in an advert and never sent to a peer, which is why it needs no trust decision and has no collision problem: it is nobody's claim but yours.
3
+ *
4
+ * Constructed with an identity location, the map is one JSON file per identity directory (~/.agent-comms/petnames.json by default), shared by every bridge the viewer runs on the machine, like the gateway trust file, and read afresh on every call, so a label set in one bridge is seen by the others at once. Without a location it is in memory only, which is what most tests use.
5
+ */
6
+ import * as fs from "node:fs";
7
+ import * as os from "node:os";
8
+ import * as path from "node:path";
9
+ import { writeFileAtomic } from "./atomic-file.js";
10
+ import { parseDisplayName } from "./display-name.js";
11
+ import { isDeviceIdHex } from "./room-path.js";
12
+ import { CommsError, requireDisplayName } from "./store.js";
13
+ /** Owner-only read and write: what a person calls their contacts is theirs. */
14
+ const PETNAMES_FILE_MODE = 0o600;
15
+ /** Owner-only directory, matching identity-store.ts's own base directory. */
16
+ const PETNAMES_DIR_MODE = 0o700;
17
+ /** Narrows a caught value to Node's own errno-carrying Error subtype, so ENOENT can be told apart from every other read failure without an `as` assertion. */
18
+ function isErrnoException(value) {
19
+ return value instanceof Error && "code" in value;
20
+ }
21
+ /** The labels in a parsed petnames file: every entry keyed by a full device-id whose label parseDisplayName accepts, stored as it returns it. Any other entry (a hand-edited typo, a damaged value) is left out on its own, so it never costs the valid labels beside it. Throws when the file's top level is not a JSON object, since then no entry in it can be read at all. */
22
+ function labelsIn(file, parsed) {
23
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
24
+ throw new Error(`${file} does not hold a JSON object of petnames`);
25
+ }
26
+ const labels = new Map();
27
+ for (const [device, raw] of Object.entries(parsed)) {
28
+ if (!isDeviceIdHex(device) || typeof raw !== "string")
29
+ continue;
30
+ const label = parseDisplayName(raw);
31
+ if (label !== undefined)
32
+ labels.set(device, label);
33
+ }
34
+ return labels;
35
+ }
36
+ export class Petnames {
37
+ file;
38
+ memory = new Map();
39
+ constructor(location) {
40
+ this.file =
41
+ location === undefined
42
+ ? undefined
43
+ : path.join(location.dir ?? path.join(os.homedir(), ".agent-comms"), "petnames.json");
44
+ }
45
+ /** Every label the viewer has set, keyed by lowercase device-id. A missing file means nothing is labelled yet. An entry that is not a usable label for a full device-id is left out (labelsIn). Throws when the file exists but cannot be read or is not a JSON object, rather than treating it as empty, since the next set or clear would then write that empty map over every label in it. */
46
+ list() {
47
+ if (this.file === undefined)
48
+ return new Map(this.memory);
49
+ let raw;
50
+ try {
51
+ raw = fs.readFileSync(this.file, "utf-8");
52
+ }
53
+ catch (err) {
54
+ if (isErrnoException(err) && err.code === "ENOENT")
55
+ return new Map();
56
+ throw err;
57
+ }
58
+ let parsed;
59
+ try {
60
+ parsed = JSON.parse(raw);
61
+ }
62
+ catch (err) {
63
+ throw new Error(`${this.file} is not valid JSON`, { cause: err });
64
+ }
65
+ return labelsIn(this.file, parsed);
66
+ }
67
+ /** Labels deviceHex (a full device-id, hex, case-insensitive) as name, replacing any earlier label. Throws INVALID_DEVICE for anything but a full device-id, since a label keyed by a typo or a short id would apply to nothing, and INVALID_NAME for a name parseDisplayName refuses. Returns the label as stored. */
68
+ set(deviceHex, name) {
69
+ const device = deviceHex.toLowerCase();
70
+ if (!isDeviceIdHex(device)) {
71
+ throw new CommsError(`${JSON.stringify(deviceHex)} is not a device-id: pass the full 64-character hex id.`, "INVALID_DEVICE");
72
+ }
73
+ const label = requireDisplayName(name, "A petname");
74
+ const labels = this.list();
75
+ labels.set(device, label);
76
+ this.save(labels);
77
+ return label;
78
+ }
79
+ /** Removes deviceHex's label. Returns whether there was one. */
80
+ clear(deviceHex) {
81
+ const labels = this.list();
82
+ const removed = labels.delete(deviceHex.toLowerCase());
83
+ if (removed)
84
+ this.save(labels);
85
+ return removed;
86
+ }
87
+ save(labels) {
88
+ if (this.file === undefined) {
89
+ this.memory.clear();
90
+ for (const [device, label] of labels)
91
+ this.memory.set(device, label);
92
+ return;
93
+ }
94
+ fs.mkdirSync(path.dirname(this.file), {
95
+ recursive: true,
96
+ mode: PETNAMES_DIR_MODE,
97
+ });
98
+ // Atomic, so a bridge reading concurrently sees the old map or the new one, never a partial file.
99
+ writeFileAtomic(this.file, `${JSON.stringify(Object.fromEntries(labels), null, 2)}\n`, PETNAMES_FILE_MODE);
100
+ }
101
+ }
102
+ //# sourceMappingURL=petnames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"petnames.js","sourceRoot":"","sources":["../../src/core/petnames.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Room paths — the naming and parsing convention core/room's device-keyed membership uses, mirroring wire-mesh spec/room.cddl exactly: an owner-named room is `<owner-hex>/<local-name>`, trust rooted at the owner named in the path; a DM is the bytewise-ascending sorted pair `<lower-hex>+<higher-hex>`, trust rooted at the verifier itself rather than either named party (see room.cddl's own comments for why that asymmetry is load-bearing, not incidental).
3
3
  */
4
+ /** Whether value is a full device-id in its canonical text form: 64 lowercase hex characters. */
5
+ export declare function isDeviceIdHex(value: string): boolean;
4
6
  /** `<owner-hex>/<local-name>`. localName must already satisfy [A-Za-z0-9_-]+ -- run an untrusted name through slugRoomName first. */
5
7
  export declare function ownerNamedRoomPath(owner: string, localName: string): string;
6
8
  /** `<lower-hex>+<higher-hex>`, the bytewise-ascending sorted pair. Refuses a==b outright: a path naming the same device twice is not a valid DM path at all, and self-DM is a purely local scratchpad note that needs no path (see mesh-store.ts's own sendDm). */
@@ -1 +1 @@
1
- {"version":3,"file":"room-path.d.ts","sourceRoot":"","sources":["../../src/core/room-path.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ3E;AAED,mQAAmQ;AACnQ,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEnD,qIAAqI;AACrI,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAyB1D;AAED,iNAAiN;AACjN,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjD"}
1
+ {"version":3,"file":"room-path.d.ts","sourceRoot":"","sources":["../../src/core/room-path.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAUD,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ3E;AAED,mQAAmQ;AACnQ,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEnD,qIAAqI;AACrI,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAyB1D;AAED,iNAAiN;AACjN,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjD"}
@@ -4,8 +4,12 @@
4
4
  const DEVICE_ID_HEX_PATTERN = /^[0-9a-f]{64}$/;
5
5
  const LOCAL_NAME_PATTERN = /^[A-Za-z0-9_-]+$/;
6
6
  const SLUG_INVALID_RUN = /[^A-Za-z0-9_-]+/g;
7
+ /** Whether value is a full device-id in its canonical text form: 64 lowercase hex characters. */
8
+ export function isDeviceIdHex(value) {
9
+ return DEVICE_ID_HEX_PATTERN.test(value);
10
+ }
7
11
  function assertDeviceIdHex(value, label) {
8
- if (!DEVICE_ID_HEX_PATTERN.test(value)) {
12
+ if (!isDeviceIdHex(value)) {
9
13
  throw new Error(`expected ${label} to be a 64-character lowercase hex device-id, got ${JSON.stringify(value)}`);
10
14
  }
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"room-path.js","sourceRoot":"","sources":["../../src/core/room-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-path.js","sourceRoot":"","sources":["../../src/core/room-path.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export declare class CommsError extends Error {
11
11
  readonly code: string;
12
12
  constructor(message: string, code: string);
13
13
  }
14
+ /** raw as parseDisplayName (display-name.ts) stores it. Throws INVALID_NAME, naming what was being named (for example "A petname"), when parseDisplayName refuses it: every place that accepts a name from this end (a petname, this machine's name, an agent's registered name) refuses an unusable one the same way. Lives here beside CommsError because display-name.ts is also bundled for the browser and so depends on nothing. */
15
+ export declare function requireDisplayName(raw: string, what: string): string;
16
+ /** An agent's registered name is its self-asserted name (display-name.ts), so it is held to the same rules as it is registered or changed: requireDisplayName for "An agent name". */
17
+ export declare function requireAgentName(raw: string): string;
14
18
  export declare class FileStore implements CommsStore {
15
19
  readonly root: string;
16
20
  constructor(root?: string);
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Every operation is a file read/write — no server process needed.
6
6
  * JSON.parse boundaries use Zod schemas for type-safe parsing.
7
7
  */
8
+ import { MAX_DISPLAY_NAME_LENGTH, parseDisplayName } from "./display-name.js";
8
9
  import * as fs from "node:fs/promises";
9
10
  import * as os from "node:os";
10
11
  import * as path from "node:path";
@@ -29,6 +30,18 @@ export class CommsError extends Error {
29
30
  this.name = "CommsError";
30
31
  }
31
32
  }
33
+ /** raw as parseDisplayName (display-name.ts) stores it. Throws INVALID_NAME, naming what was being named (for example "A petname"), when parseDisplayName refuses it: every place that accepts a name from this end (a petname, this machine's name, an agent's registered name) refuses an unusable one the same way. Lives here beside CommsError because display-name.ts is also bundled for the browser and so depends on nothing. */
34
+ export function requireDisplayName(raw, what) {
35
+ const name = parseDisplayName(raw);
36
+ if (name === undefined) {
37
+ throw new CommsError(`${what} must be non-empty, at most ${String(MAX_DISPLAY_NAME_LENGTH)} characters, and free of control characters.`, "INVALID_NAME");
38
+ }
39
+ return name;
40
+ }
41
+ /** An agent's registered name is its self-asserted name (display-name.ts), so it is held to the same rules as it is registered or changed: requireDisplayName for "An agent name". */
42
+ export function requireAgentName(raw) {
43
+ return requireDisplayName(raw, "An agent name");
44
+ }
32
45
  // ---------------------------------------------------------------------------
33
46
  // FileStore
34
47
  // ---------------------------------------------------------------------------
@@ -97,10 +110,11 @@ export class FileStore {
97
110
  // Agent registry
98
111
  // -------------------------------------------------------------------------
99
112
  async registerAgent(opts) {
113
+ const name = requireAgentName(opts.name);
100
114
  const existing = await this.readIdentity(opts.harness, opts.cwd);
101
115
  if (existing) {
102
116
  return this.updateAgent(existing.id, {
103
- name: opts.name,
117
+ name,
104
118
  visibility: opts.visibility,
105
119
  tags: opts.tags,
106
120
  status: "active",
@@ -111,7 +125,7 @@ export class FileStore {
111
125
  const agent = {
112
126
  id,
113
127
  version: 1,
114
- name: opts.name,
128
+ name,
115
129
  harness: opts.harness,
116
130
  cwd: opts.cwd,
117
131
  pid: opts.pid,
@@ -140,6 +154,9 @@ export class FileStore {
140
154
  const updated = {
141
155
  ...agent,
142
156
  ...patch,
157
+ ...(patch.name === undefined
158
+ ? {}
159
+ : { name: requireAgentName(patch.name) }),
143
160
  version: agent.version + 1,
144
161
  };
145
162
  await this.writeJsonFile(this.agentPath(id), updated);
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@
6
6
  * 2. Call handleAction(action)
7
7
  * 3. Return the result string to the LLM
8
8
  */
9
+ import { type Naming } from "./naming.js";
10
+ import type { VerifiedMember } from "./gateway-trust.js";
9
11
  import type { AgentId, AgentIdentity, CommsAction, ConnectionCode, MeshVisibility, NetworkInterface } from "./types.js";
10
12
  import type { ListenerInfo, MeshGraph, MeshTraceResult } from "./transport.js";
11
13
  import type { CommsStore } from "./comms-store.js";
@@ -83,15 +85,19 @@ export interface MeshOnlyFeatures {
83
85
  presentDmGrant?: (counterpart: string, grant: CapabilityToken) => Promise<void>;
84
86
  /** This user's own principal id (hex), or undefined before this store's identity is attached. */
85
87
  getUserPrincipalId?: () => string | undefined;
88
+ /** This host's own machine id (hex, agent-comms#343), or undefined before this store's identity is attached. */
89
+ getMachineId?: () => string | undefined;
90
+ /** The machine (hex) of each device this side can place on one, keyed by device id. */
91
+ listAgentMachines?: () => Promise<Map<string, string>>;
92
+ addTrustedGatewayMachine?: (deviceHex: string) => void;
93
+ removeTrustedGatewayMachine?: (deviceHex: string) => void;
94
+ listTrustedGatewayMachines?: () => string[];
86
95
  /** Withdraws the dm:send grant issued for bearerId. */
87
96
  revokeAgentDmAccess?: (bearerId: string) => Promise<void>;
88
97
  removeTrustedGatewayPrincipal?: (deviceHex: string) => void;
89
98
  listTrustedGatewayPrincipals?: () => string[];
90
- /** Devices trusted only because a trusted principal vouches for them (a verified membership proof), with that principal. */
91
- listVerifiedMembers?: () => {
92
- device: string;
93
- principal: string;
94
- }[];
99
+ /** Devices trusted only because a trusted principal or machine vouches for them (a verified membership proof), with that issuer. */
100
+ listVerifiedMembers?: () => VerifiedMember[];
95
101
  /** deviceId's own gossiped agent-comms package version, cached from whatever it last advertised -- undefined for a device this side has never heard gossip from, or one running a version that predates agent-comms#198. */
96
102
  getPeerAgentCommsVersion?: (deviceId: string) => string | undefined;
97
103
  /** deviceId's own gossiped cc-peer package version, present only while that device is actually fronting a cc-peer session or running the one-shot `bridge cc-peer` command. */
@@ -117,6 +123,8 @@ export declare function tryMeshAction(verb: string, action: () => Promise<string
117
123
  export interface CommsToolOptions {
118
124
  /** Backs the mesh_discover / mesh_advertise / mesh_unadvertise actions. Undefined means this bridge wires no discovery. */
119
125
  readonly discovery?: DiscoveryManager;
126
+ /** Backs the petname and machine_name actions and the names every listing shows (agent-comms#345). Undefined means this bridge wires no naming, and listings show only what each subject asserts and the short id. */
127
+ readonly naming?: Naming;
120
128
  /** Returns the newest npm release known to be available, or undefined when none is known (no checker wired up, no successful check yet, or this bridge is already current). Wired at bridge construction time by a VersionDriftChecker (see version-check.ts) -- optional so every call site, and every test that has no interest in drift reporting, is unaffected. */
121
129
  readonly getNewerVersionIfAny?: () => string | undefined;
122
130
  /** Fetches a signer's armored PGP public key by fingerprint, used by gateway_redeem_connection_code when the caller supplies a fingerprint but not the key text itself. Defaults to the real keys.openpgp.org lookup (pgp-keyserver.ts); a test that would otherwise trigger real network I/O injects a fake resolver instead, the same reasoning bridge-mesh.ts's own fetchLatestVersion override already establishes for getNewerVersionIfAny above. */
@@ -127,6 +135,7 @@ export declare class CommsTool {
127
135
  /** Reports this bridge's own web UI address for the web_url action. Assignable post-construction, mirroring MeshStore's own onDelivery/onCoordinatorRoleChanged hooks, because the underlying web server handle isn't known until after this bridge's own tryStartBridgeWebServer() call -- which every real bridge makes after building its CommsTool, not before. Undefined (the default) means this bridge never wires web UI reporting. */
128
136
  getWebUrlStatus?: () => WebUrlStatus;
129
137
  private readonly discovery;
138
+ private readonly naming;
130
139
  private readonly getNewerVersionIfAny;
131
140
  private readonly fetchPgpPublicKeyByFingerprintImpl;
132
141
  constructor(store: CommsStore & MeshOnlyFeatures, options?: Readonly<CommsToolOptions>);
@@ -135,6 +144,8 @@ export declare class CommsTool {
135
144
  handle(ctx: Readonly<CommsContext>, action: CommsAction): Promise<CommsResult>;
136
145
  private register;
137
146
  private update;
147
+ /** The namer for ctx's view: petnames and known self names when naming is wired, otherwise only what each caller passes. */
148
+ private namerFor;
138
149
  private whoami;
139
150
  private webUrl;
140
151
  private createRoom;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
package/dist/core/tool.js CHANGED
@@ -7,6 +7,11 @@
7
7
  * 3. Return the result string to the LLM
8
8
  */
9
9
  import { detailsShared } from "./agent-registry.js";
10
+ import { groupAgentsByMachine } from "./machine-list-groups.js";
11
+ import { plainNamer } from "./naming.js";
12
+ import { agentTable } from "./agent-table.js";
13
+ import { machineName, petnameClear, petnameList, petnameSet, } from "./naming-actions.js";
14
+ import { shortId } from "./display-name.js";
10
15
  import { CommsError } from "./store.js";
11
16
  import { getOwnPackageVersion } from "./package-version.js";
12
17
  import { describeDeliveryFor } from "./send-outcome.js";
@@ -19,10 +24,6 @@ import { meshGraphAction, meshTraceAction } from "./mesh-graph-trace-tool.js";
19
24
  import { meshDiscoverAction, meshAdvertiseAction, meshInterfacesAction, meshUnadvertiseAction, meshListenAction, meshUnlistenAction, meshListenersAction, meshSetVisibilityAction, meshGetVisibilityAction, } from "./mesh-network-actions.js";
20
25
  /** Table column widths for the plain-text listing helpers below, chosen to line up with the existing aligned output. */
21
26
  const ROOM_TYPE_COLUMN_WIDTH = 7;
22
- const AGENT_NAME_COLUMN_WIDTH = 25;
23
- const AGENT_HARNESS_COLUMN_WIDTH = 12;
24
- const AGENT_STATUS_COLUMN_WIDTH = 7;
25
- const AGENT_VISIBILITY_COLUMN_WIDTH = 9;
26
27
  /** Start/end indices into an ISO-8601 timestamp string ("YYYY-MM-DDTHH:MM:SS.sssZ") that slice out the "HH:MM:SS" portion. */
27
28
  const ISO_TIME_START_INDEX = 11;
28
29
  const ISO_TIME_END_INDEX = 19;
@@ -64,12 +65,14 @@ export class CommsTool {
64
65
  /** Reports this bridge's own web UI address for the web_url action. Assignable post-construction, mirroring MeshStore's own onDelivery/onCoordinatorRoleChanged hooks, because the underlying web server handle isn't known until after this bridge's own tryStartBridgeWebServer() call -- which every real bridge makes after building its CommsTool, not before. Undefined (the default) means this bridge never wires web UI reporting. */
65
66
  getWebUrlStatus;
66
67
  discovery;
68
+ naming;
67
69
  getNewerVersionIfAny;
68
70
  fetchPgpPublicKeyByFingerprintImpl;
69
71
  constructor(store, options) {
70
72
  this.store = store;
71
- const { discovery, getNewerVersionIfAny, fetchPgpPublicKeyByFingerprintImpl = fetchPgpPublicKeyByFingerprint, } = options ?? {};
73
+ const { discovery, naming, getNewerVersionIfAny, fetchPgpPublicKeyByFingerprintImpl = fetchPgpPublicKeyByFingerprint, } = options ?? {};
72
74
  this.discovery = discovery;
75
+ this.naming = naming;
73
76
  this.getNewerVersionIfAny = getNewerVersionIfAny;
74
77
  this.fetchPgpPublicKeyByFingerprintImpl =
75
78
  fetchPgpPublicKeyByFingerprintImpl;
@@ -155,7 +158,7 @@ export class CommsTool {
155
158
  case "mesh_get_visibility":
156
159
  return meshGetVisibilityAction(this.store);
157
160
  case "mesh_graph":
158
- return meshGraphAction(this.store);
161
+ return meshGraphAction(this.store, await this.namerFor(ctx));
159
162
  case "mesh_trace":
160
163
  return await meshTraceAction(this.store, action);
161
164
  case "gateway_trust":
@@ -163,7 +166,15 @@ export class CommsTool {
163
166
  case "gateway_untrust":
164
167
  return gatewayUntrust(this.store, action);
165
168
  case "gateway_list_trusted":
166
- return gatewayListTrusted(this.store);
169
+ return gatewayListTrusted(this.store, await this.namerFor(ctx));
170
+ case "petname_set":
171
+ return petnameSet(this.naming, action);
172
+ case "petname_clear":
173
+ return petnameClear(this.naming, action);
174
+ case "petname_list":
175
+ return petnameList(this.naming, await this.namerFor(ctx));
176
+ case "machine_name":
177
+ return await machineName(this.naming, action);
167
178
  case "dm_admit":
168
179
  return await dmAdmit(this.store, action, ctx.agentId);
169
180
  case "dm_use_grant":
@@ -232,14 +243,23 @@ export class CommsTool {
232
243
  isError: false,
233
244
  };
234
245
  }
246
+ /** The namer for ctx's view: petnames and known self names when naming is wired, otherwise only what each caller passes. */
247
+ async namerFor(ctx) {
248
+ return this.naming === undefined
249
+ ? plainNamer
250
+ : this.naming.namer(ctx.agentId);
251
+ }
235
252
  async whoami(ctx) {
236
253
  const agent = await this.store.getAgent(ctx.agentId);
237
254
  if (!agent)
238
255
  return { content: "Not registered.", isError: true };
239
256
  const principal = this.store.getUserPrincipalId?.();
257
+ const machine = this.store.getMachineId?.();
240
258
  const lines = [
241
259
  `ID: ${agent.id}`,
242
260
  ...(principal !== undefined ? [`Principal: ${principal}`] : []),
261
+ ...(machine !== undefined ? [`Machine: ${machine}`] : []),
262
+ ...machineNameLine(machine, await this.namerFor(ctx)),
243
263
  `Name: ${agent.name}`,
244
264
  `Harness: ${agent.harness}`,
245
265
  `Visibility: ${agent.visibility}`,
@@ -349,21 +369,40 @@ export class CommsTool {
349
369
  const abbreviateCwd = (cwd) => homedir && cwd.startsWith(homedir)
350
370
  ? `~${cwd.slice(homedir.length)}`
351
371
  : cwd;
352
- const lines = agents.map((a) => {
372
+ const namer = await this.namerFor(ctx);
373
+ // The full id is printed in its own column, so the name column carries the names alone.
374
+ const rowOf = (a) => ({
375
+ id: a.id,
376
+ name: namer(a.id, { selfName: a.name, besideFullId: true }),
377
+ harness: a.harness,
378
+ status: a.status,
379
+ visibility: a.visibility,
380
+ cwd: `${detailsShared(a) ? abbreviateCwd(a.cwd) : "(not shared)"}${a.id === ctx.agentId ? " (you)" : ""}`,
381
+ });
382
+ const table = agentTable(agents.map(rowOf));
383
+ const describe = (a) => {
353
384
  const isSelf = a.id === ctx.agentId;
354
- const self = isSelf ? " (you)" : "";
355
385
  const shared = detailsShared(a);
356
- const cwd = shared ? abbreviateCwd(a.cwd) : "(not shared)";
357
386
  const rooms = !shared
358
387
  ? "not shared"
359
388
  : a.subscribedRooms.length > 0
360
389
  ? a.subscribedRooms.join(", ")
361
390
  : "none";
362
391
  const versions = formatListedAgentVersions(this.store, a.id, isSelf, this.store.getCcPeerVersion);
363
- return `${a.id} ${a.name.padEnd(AGENT_NAME_COLUMN_WIDTH)} ${a.harness.padEnd(AGENT_HARNESS_COLUMN_WIDTH)} ${a.status.padEnd(AGENT_STATUS_COLUMN_WIDTH)} ${a.visibility.padEnd(AGENT_VISIBILITY_COLUMN_WIDTH)} ${cwd}${self}\n Rooms: ${rooms}\n Versions: ${versions}`;
364
- });
392
+ return `${table.line(rowOf(a))}\n Rooms: ${rooms}\n Versions: ${versions}`;
393
+ };
394
+ const machines = await this.store.listAgentMachines?.();
395
+ const groups = groupAgentsByMachine(agents, machines, this.store.getMachineId?.(), namer);
396
+ const body = groups
397
+ .map((group) => {
398
+ const rows = group.agents.map((a) => ` ${describe(a)}`);
399
+ return group.heading === undefined
400
+ ? rows.join("\n")
401
+ : [` ${group.heading}`, ...rows].join("\n");
402
+ })
403
+ .join("\n");
365
404
  return {
366
- content: `Agents:\n ID Name Harness Status Visibility CWD\n${lines.map((l) => ` ${l}`).join("\n")}`,
405
+ content: `Agents:\n ${table.header}\n${body}`,
367
406
  isError: false,
368
407
  };
369
408
  }
@@ -514,4 +553,11 @@ export class CommsTool {
514
553
  };
515
554
  }
516
555
  }
556
+ /** whoami's "Machine name:" line: this machine by the display convention, only when it has a name, since the Machine line above already shows its id. */
557
+ function machineNameLine(machine, namer) {
558
+ if (machine === undefined)
559
+ return [];
560
+ const named = namer(machine);
561
+ return named === shortId(machine) ? [] : [`Machine name: ${named}`];
562
+ }
517
563
  //# sourceMappingURL=tool.js.map