agent-comms 2.21.6 → 2.21.7

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 (283) 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/claude-code/channel.d.ts.map +1 -1
  5. package/dist/bridges/claude-code/channel.js +8 -4
  6. package/dist/bridges/claude-code/channel.js.map +1 -1
  7. package/dist/bridges/codex/tool.d.ts.map +1 -1
  8. package/dist/bridges/codex/tool.js +5 -3
  9. package/dist/bridges/codex/tool.js.map +1 -1
  10. package/dist/bridges/mcp/{index.d.ts → server.d.ts} +1 -1
  11. package/dist/bridges/mcp/server.d.ts.map +1 -0
  12. package/dist/bridges/mcp/{index.js → server.js} +6 -4
  13. package/dist/bridges/mcp/server.js.map +1 -0
  14. package/dist/bridges/opencode/plugin.d.ts.map +1 -1
  15. package/dist/bridges/opencode/plugin.js +3 -1
  16. package/dist/bridges/opencode/plugin.js.map +1 -1
  17. package/dist/bridges/pi/{index.d.ts → extension.d.ts} +1 -1
  18. package/dist/bridges/pi/extension.d.ts.map +1 -0
  19. package/dist/bridges/pi/{index.js → extension.js} +12 -11
  20. package/dist/bridges/pi/extension.js.map +1 -0
  21. package/dist/bridges/{index.d.ts → registry.d.ts} +1 -1
  22. package/dist/bridges/registry.d.ts.map +1 -0
  23. package/dist/bridges/{index.js → registry.js} +2 -2
  24. package/dist/bridges/registry.js.map +1 -0
  25. package/dist/bridges/user/cli.d.ts +1 -1
  26. package/dist/bridges/user/cli.d.ts.map +1 -1
  27. package/dist/bridges/user/cli.js +3 -3
  28. package/dist/bridges/user/cli.js.map +1 -1
  29. package/dist/bridges/user/controller.d.ts +4 -4
  30. package/dist/bridges/user/controller.d.ts.map +1 -1
  31. package/dist/bridges/user/controller.js +4 -4
  32. package/dist/bridges/user/controller.js.map +1 -1
  33. package/dist/bridges/user/tui.js +13 -9
  34. package/dist/bridges/user/tui.js.map +1 -1
  35. package/dist/bridges/user/web/dist/bundle.js +2 -2
  36. package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
  37. package/dist/bridges/user/web/dist/sw.js +1 -1
  38. package/dist/bridges/user/web/frontend/api.d.ts +1 -1
  39. package/dist/bridges/user/web/frontend/api.d.ts.map +1 -1
  40. package/dist/bridges/user/web/frontend/api.js +7 -2
  41. package/dist/bridges/user/web/frontend/api.js.map +1 -1
  42. package/dist/bridges/user/web/frontend/components/App.d.ts +3 -3
  43. package/dist/bridges/user/web/frontend/components/App.d.ts.map +1 -1
  44. package/dist/bridges/user/web/frontend/components/ChatArea.d.ts +1 -1
  45. package/dist/bridges/user/web/frontend/components/ChatArea.d.ts.map +1 -1
  46. package/dist/bridges/user/web/frontend/components/ChatArea.js +3 -2
  47. package/dist/bridges/user/web/frontend/components/ChatArea.js.map +1 -1
  48. package/dist/bridges/user/web/frontend/components/MessageList.d.ts +2 -2
  49. package/dist/bridges/user/web/frontend/components/MessageList.d.ts.map +1 -1
  50. package/dist/bridges/user/web/frontend/components/MessageList.js +1 -1
  51. package/dist/bridges/user/web/frontend/components/MessageList.js.map +1 -1
  52. package/dist/bridges/user/web/frontend/components/ProjectTree.js +1 -1
  53. package/dist/bridges/user/web/frontend/components/ProjectTree.js.map +1 -1
  54. package/dist/bridges/user/web/frontend/components/Sidebar.d.ts +2 -2
  55. package/dist/bridges/user/web/frontend/components/Sidebar.d.ts.map +1 -1
  56. package/dist/bridges/user/web/frontend/dom.d.ts +0 -3
  57. package/dist/bridges/user/web/frontend/dom.d.ts.map +1 -1
  58. package/dist/bridges/user/web/frontend/dom.js +4 -2
  59. package/dist/bridges/user/web/frontend/dom.js.map +1 -1
  60. package/dist/bridges/user/web/frontend/input.js +13 -7
  61. package/dist/bridges/user/web/frontend/input.js.map +1 -1
  62. package/dist/bridges/user/web/frontend/main.js +4 -2
  63. package/dist/bridges/user/web/frontend/main.js.map +1 -1
  64. package/dist/bridges/user/web/frontend/mesh-client.d.ts.map +1 -1
  65. package/dist/bridges/user/web/frontend/mesh-client.js +23 -10
  66. package/dist/bridges/user/web/frontend/mesh-client.js.map +1 -1
  67. package/dist/bridges/user/web/frontend/mesh-worker.js +6 -4
  68. package/dist/bridges/user/web/frontend/mesh-worker.js.map +1 -1
  69. package/dist/bridges/user/web/frontend/messages.d.ts.map +1 -1
  70. package/dist/bridges/user/web/frontend/messages.js +2 -0
  71. package/dist/bridges/user/web/frontend/messages.js.map +1 -1
  72. package/dist/bridges/user/web/frontend/project-tree.d.ts +1 -1
  73. package/dist/bridges/user/web/frontend/project-tree.d.ts.map +1 -1
  74. package/dist/bridges/user/web/frontend/project-tree.js.map +1 -1
  75. package/dist/bridges/user/web/frontend/state.d.ts +7 -7
  76. package/dist/bridges/user/web/frontend/state.d.ts.map +1 -1
  77. package/dist/bridges/user/web/frontend/state.js.map +1 -1
  78. package/dist/bridges/user/web/frontend/sw.js +23 -17
  79. package/dist/bridges/user/web/frontend/sw.js.map +1 -1
  80. package/dist/bridges/user/web/frontend/url-sync.d.ts +3 -3
  81. package/dist/bridges/user/web/frontend/url-sync.d.ts.map +1 -1
  82. package/dist/bridges/user/web/frontend/url-sync.js +7 -5
  83. package/dist/bridges/user/web/frontend/url-sync.js.map +1 -1
  84. package/dist/bridges/user/web/generated-html.js +1 -1
  85. package/dist/bridges/user/web/port-discovery.d.ts.map +1 -1
  86. package/dist/bridges/user/web/port-discovery.js +1 -1
  87. package/dist/bridges/user/web/port-discovery.js.map +1 -1
  88. package/dist/bridges/user/web/server.d.ts.map +1 -1
  89. package/dist/bridges/user/web/server.js +47 -23
  90. package/dist/bridges/user/web/server.js.map +1 -1
  91. package/dist/bridges/user/web/test/port-discovery.unit.test.js +46 -20
  92. package/dist/bridges/user/web/test/port-discovery.unit.test.js.map +1 -1
  93. package/dist/bridges/user/web/test/web-server.integration.test.js +27 -9
  94. package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -1
  95. package/dist/cli.d.ts +1 -1
  96. package/dist/cli.js +9 -7
  97. package/dist/cli.js.map +1 -1
  98. package/dist/core/agent-registry.js +5 -5
  99. package/dist/core/agent-registry.js.map +1 -1
  100. package/dist/core/bridge.d.ts +2 -2
  101. package/dist/core/bridge.d.ts.map +1 -1
  102. package/dist/core/bridge.js +7 -1
  103. package/dist/core/bridge.js.map +1 -1
  104. package/dist/core/comms-store.d.ts +24 -24
  105. package/dist/core/comms-store.d.ts.map +1 -1
  106. package/dist/core/connection-approval.d.ts +4 -7
  107. package/dist/core/connection-approval.d.ts.map +1 -1
  108. package/dist/core/connection-approval.js +3 -6
  109. package/dist/core/connection-approval.js.map +1 -1
  110. package/dist/core/delivery-engine.d.ts +1 -1
  111. package/dist/core/delivery-engine.d.ts.map +1 -1
  112. package/dist/core/delivery-engine.js +8 -6
  113. package/dist/core/delivery-engine.js.map +1 -1
  114. package/dist/core/discovery-mdns.d.ts +3 -1
  115. package/dist/core/discovery-mdns.d.ts.map +1 -1
  116. package/dist/core/discovery-mdns.js +17 -10
  117. package/dist/core/discovery-mdns.js.map +1 -1
  118. package/dist/core/discovery-tailscale.d.ts +1 -1
  119. package/dist/core/discovery-tailscale.d.ts.map +1 -1
  120. package/dist/core/discovery-tailscale.js +25 -13
  121. package/dist/core/discovery-tailscale.js.map +1 -1
  122. package/dist/core/discovery.d.ts +10 -10
  123. package/dist/core/discovery.d.ts.map +1 -1
  124. package/dist/core/discovery.js +6 -8
  125. package/dist/core/discovery.js.map +1 -1
  126. package/dist/core/federation-bridge.d.ts +1 -1
  127. package/dist/core/federation-bridge.d.ts.map +1 -1
  128. package/dist/core/federation-bridge.js +4 -4
  129. package/dist/core/federation-bridge.js.map +1 -1
  130. package/dist/core/federation.d.ts +16 -16
  131. package/dist/core/federation.d.ts.map +1 -1
  132. package/dist/core/federation.js +33 -14
  133. package/dist/core/federation.js.map +1 -1
  134. package/dist/core/handshake.d.ts +10 -10
  135. package/dist/core/handshake.d.ts.map +1 -1
  136. package/dist/core/handshake.js +9 -4
  137. package/dist/core/handshake.js.map +1 -1
  138. package/dist/core/identity-store.d.ts +8 -8
  139. package/dist/core/identity-store.d.ts.map +1 -1
  140. package/dist/core/identity-store.js +7 -3
  141. package/dist/core/identity-store.js.map +1 -1
  142. package/dist/core/identity.d.ts.map +1 -1
  143. package/dist/core/identity.js +111 -42
  144. package/dist/core/identity.js.map +1 -1
  145. package/dist/core/index.d.ts +1 -1
  146. package/dist/core/index.d.ts.map +1 -1
  147. package/dist/core/mcp-registry-retry.d.ts.map +1 -1
  148. package/dist/core/mcp-registry-retry.js +4 -1
  149. package/dist/core/mcp-registry-retry.js.map +1 -1
  150. package/dist/core/mesh-store-shared.d.ts +2 -5
  151. package/dist/core/mesh-store-shared.d.ts.map +1 -1
  152. package/dist/core/mesh-store-shared.js +21 -5
  153. package/dist/core/mesh-store-shared.js.map +1 -1
  154. package/dist/core/mesh-store.d.ts +3 -4
  155. package/dist/core/mesh-store.d.ts.map +1 -1
  156. package/dist/core/mesh-store.js +12 -10
  157. package/dist/core/mesh-store.js.map +1 -1
  158. package/dist/core/peer-lifecycle.d.ts +9 -9
  159. package/dist/core/peer-lifecycle.d.ts.map +1 -1
  160. package/dist/core/peer-lifecycle.js.map +1 -1
  161. package/dist/core/push-manager.d.ts +1 -2
  162. package/dist/core/push-manager.d.ts.map +1 -1
  163. package/dist/core/push-manager.js.map +1 -1
  164. package/dist/core/random-id.d.ts +1 -1
  165. package/dist/core/random-id.d.ts.map +1 -1
  166. package/dist/core/random-id.js +4 -2
  167. package/dist/core/random-id.js.map +1 -1
  168. package/dist/core/room-lifecycle.d.ts +2 -2
  169. package/dist/core/room-lifecycle.d.ts.map +1 -1
  170. package/dist/core/room-lifecycle.js +4 -3
  171. package/dist/core/room-lifecycle.js.map +1 -1
  172. package/dist/core/room-messaging.d.ts +1 -1
  173. package/dist/core/room-messaging.d.ts.map +1 -1
  174. package/dist/core/room-messaging.js +2 -2
  175. package/dist/core/room-messaging.js.map +1 -1
  176. package/dist/core/room-protocol.d.ts +1 -1
  177. package/dist/core/room-protocol.d.ts.map +1 -1
  178. package/dist/core/room-protocol.js +6 -6
  179. package/dist/core/room-protocol.js.map +1 -1
  180. package/dist/core/room-router.d.ts +3 -3
  181. package/dist/core/room-router.d.ts.map +1 -1
  182. package/dist/core/room-router.js +19 -1
  183. package/dist/core/room-router.js.map +1 -1
  184. package/dist/core/stale-agent-checker.d.ts.map +1 -1
  185. package/dist/core/stale-agent-checker.js +4 -1
  186. package/dist/core/stale-agent-checker.js.map +1 -1
  187. package/dist/core/store.d.ts +2 -2
  188. package/dist/core/store.d.ts.map +1 -1
  189. package/dist/core/store.js +16 -9
  190. package/dist/core/store.js.map +1 -1
  191. package/dist/core/test/identity.unit.test.js +42 -9
  192. package/dist/core/test/identity.unit.test.js.map +1 -1
  193. package/dist/core/tool.d.ts +23 -23
  194. package/dist/core/tool.d.ts.map +1 -1
  195. package/dist/core/tool.js +115 -174
  196. package/dist/core/tool.js.map +1 -1
  197. package/dist/core/transport.d.ts +42 -65
  198. package/dist/core/transport.d.ts.map +1 -1
  199. package/dist/core/types.d.ts +52 -46
  200. package/dist/core/types.d.ts.map +1 -1
  201. package/dist/core/types.js +42 -25
  202. package/dist/core/types.js.map +1 -1
  203. package/dist/core/vapid.d.ts.map +1 -1
  204. package/dist/core/vapid.js +6 -2
  205. package/dist/core/vapid.js.map +1 -1
  206. package/dist/core/web-push.d.ts +2 -2
  207. package/dist/core/web-push.d.ts.map +1 -1
  208. package/dist/core/web-push.js +29 -11
  209. package/dist/core/web-push.js.map +1 -1
  210. package/dist/core/wire-mesh-transport.d.ts +10 -10
  211. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  212. package/dist/core/wire-mesh-transport.js +7 -5
  213. package/dist/core/wire-mesh-transport.js.map +1 -1
  214. package/dist/test/approval.integration.test.js +25 -14
  215. package/dist/test/approval.integration.test.js.map +1 -1
  216. package/dist/test/bridge-mesh.test.js +6 -1
  217. package/dist/test/bridge-mesh.test.js.map +1 -1
  218. package/dist/test/broadcast-window.integration.test.js +7 -3
  219. package/dist/test/broadcast-window.integration.test.js.map +1 -1
  220. package/dist/test/coordinator-socket-error.integration.test.js +5 -1
  221. package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
  222. package/dist/test/delivery-receipt.helper.js +56 -33
  223. package/dist/test/delivery-receipt.helper.js.map +1 -1
  224. package/dist/test/federation.integration.test.js +33 -14
  225. package/dist/test/federation.integration.test.js.map +1 -1
  226. package/dist/test/handshake.test.js +23 -7
  227. package/dist/test/handshake.test.js.map +1 -1
  228. package/dist/test/identity-restart.integration.test.js +15 -7
  229. package/dist/test/identity-restart.integration.test.js.map +1 -1
  230. package/dist/test/identity-store.test.js +14 -6
  231. package/dist/test/identity-store.test.js.map +1 -1
  232. package/dist/test/listener-policy.integration.test.js +3 -2
  233. package/dist/test/listener-policy.integration.test.js.map +1 -1
  234. package/dist/test/mcp-registry-retry.test.js +14 -3
  235. package/dist/test/mcp-registry-retry.test.js.map +1 -1
  236. package/dist/test/mesh-e2e.integration.test.js +27 -10
  237. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  238. package/dist/test/mesh-smoke.runner.js +1 -1
  239. package/dist/test/mesh-smoke.runner.js.map +1 -1
  240. package/dist/test/presence-readvertise.integration.test.d.ts +1 -1
  241. package/dist/test/presence-readvertise.integration.test.js +5 -2
  242. package/dist/test/presence-readvertise.integration.test.js.map +1 -1
  243. package/dist/test/random-id.test.js +3 -1
  244. package/dist/test/random-id.test.js.map +1 -1
  245. package/dist/test/room-admission-tool-actions.test.js +2 -1
  246. package/dist/test/room-admission-tool-actions.test.js.map +1 -1
  247. package/dist/test/room-destroy-revocation.integration.test.js +4 -1
  248. package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
  249. package/dist/test/room-invite-directed.integration.test.js +2 -1
  250. package/dist/test/room-invite-directed.integration.test.js.map +1 -1
  251. package/dist/test/room-join-admission.test.js +7 -5
  252. package/dist/test/room-join-admission.test.js.map +1 -1
  253. package/dist/test/room-kick-revocation.integration.test.js +5 -1
  254. package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
  255. package/dist/test/room-path.test.js +3 -2
  256. package/dist/test/room-path.test.js.map +1 -1
  257. package/dist/test/room-read-directed.integration.test.js +6 -2
  258. package/dist/test/room-read-directed.integration.test.js.map +1 -1
  259. package/dist/test/room-router.test.js +3 -1
  260. package/dist/test/room-router.test.js.map +1 -1
  261. package/dist/test/room-send-directed.integration.test.js +2 -1
  262. package/dist/test/room-send-directed.integration.test.js.map +1 -1
  263. package/dist/test/room-send-retry-queue.test.js +6 -2
  264. package/dist/test/room-send-retry-queue.test.js.map +1 -1
  265. package/dist/test/room-send-retry.integration.test.js +21 -7
  266. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  267. package/dist/test/room-token-store.test.js +30 -7
  268. package/dist/test/room-token-store.test.js.map +1 -1
  269. package/dist/test/state-sync-convergence.test.js +2 -1
  270. package/dist/test/state-sync-convergence.test.js.map +1 -1
  271. package/dist/test/test-transport.d.ts +1 -1
  272. package/dist/test/test-transport.d.ts.map +1 -1
  273. package/dist/test/test-transport.js +7 -3
  274. package/dist/test/test-transport.js.map +1 -1
  275. package/dist/test/wire-mesh-transport.test.js +41 -27
  276. package/dist/test/wire-mesh-transport.test.js.map +1 -1
  277. package/package.json +4 -3
  278. package/dist/bridges/index.d.ts.map +0 -1
  279. package/dist/bridges/index.js.map +0 -1
  280. package/dist/bridges/mcp/index.d.ts.map +0 -1
  281. package/dist/bridges/mcp/index.js.map +0 -1
  282. package/dist/bridges/pi/index.d.ts.map +0 -1
  283. package/dist/bridges/pi/index.js.map +0 -1
@@ -38,7 +38,7 @@ export class FederationBridge {
38
38
  /** Called when a message arrives for a federated room -- stores it locally and delivers to all local room members. */
39
39
  async onRoomMessage(roomId, message) {
40
40
  const room = this.deps.rooms.get(roomId);
41
- if (!room?.federated)
41
+ if (room?.federated !== true)
42
42
  return;
43
43
  const arr = this.deps.messages.get(roomId) ?? [];
44
44
  arr.push(message);
@@ -53,7 +53,7 @@ export class FederationBridge {
53
53
  /** Called when a remote agent joins a federated room -- creates a shadow `fed:`-prefixed member and notifies local members. */
54
54
  async onRoomJoin(roomId, agentId, _agentName) {
55
55
  const room = this.deps.rooms.get(roomId);
56
- if (!room?.federated)
56
+ if (room?.federated !== true)
57
57
  return;
58
58
  const remoteId = `fed:${agentId}`;
59
59
  if (!room.members.includes(remoteId)) {
@@ -71,7 +71,7 @@ export class FederationBridge {
71
71
  /** Called when a remote agent leaves a federated room. */
72
72
  async onRoomLeave(roomId, agentId) {
73
73
  const room = this.deps.rooms.get(roomId);
74
- if (!room?.federated)
74
+ if (room?.federated !== true)
75
75
  return;
76
76
  const remoteId = `fed:${agentId}`;
77
77
  this.deps.deliveryEngine.bump(room);
@@ -102,7 +102,7 @@ export class FederationBridge {
102
102
  getFederatedRoomMemberships() {
103
103
  const result = new Map();
104
104
  for (const [roomId, room] of this.deps.rooms) {
105
- if (room.federated) {
105
+ if (room.federated === true) {
106
106
  const localMembers = room.members.filter((m) => !m.startsWith("fed:"));
107
107
  result.set(roomId, localMembers);
108
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"federation-bridge.js","sourceRoot":"","sources":["../../src/core/federation-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation-bridge.js","sourceRoot":"","sources":["../../src/core/federation-bridge.ts"],"names":[],"mappings":"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"}
@@ -31,35 +31,35 @@ export interface FedLink {
31
31
  /** Callbacks the FederationManager uses to interact with local mesh state. */
32
32
  export interface FedCallbacks {
33
33
  /** Called when a remote agent becomes visible over a federation link. */
34
- onAgentVisible(agent: AgentIdentity): Promise<void>;
34
+ onAgentVisible: (agent: AgentIdentity) => Promise<void>;
35
35
  /** Called when a remote agent goes offline/disappears. */
36
- onAgentGone(agentId: string): Promise<void>;
36
+ onAgentGone: (agentId: string) => Promise<void>;
37
37
  /** Called when a message arrives for a federated room. */
38
- onRoomMessage(roomId: string, message: RoomMessage): Promise<void>;
38
+ onRoomMessage: (roomId: string, message: RoomMessage) => Promise<void>;
39
39
  /** Called when a remote agent joins a federated room. */
40
- onRoomJoin(roomId: string, agentId: string, agentName: string): Promise<void>;
40
+ onRoomJoin: (roomId: string, agentId: string, agentName: string) => Promise<void>;
41
41
  /** Called when a remote agent leaves a federated room. */
42
- onRoomLeave(roomId: string, agentId: string): Promise<void>;
42
+ onRoomLeave: (roomId: string, agentId: string) => Promise<void>;
43
43
  /** Get all visible agents in the local mesh (for syncing to new links). */
44
- getVisibleAgents(): AgentIdentity[];
44
+ getVisibleAgents: () => AgentIdentity[];
45
45
  /** Get all federated rooms and their member lists (for syncing to new links). */
46
- getFederatedRoomMemberships(): Map<string, string[]>;
46
+ getFederatedRoomMemberships: () => Map<string, string[]>;
47
47
  }
48
48
  export declare class FederationManager {
49
- private links;
50
- private identity;
51
- private meshId;
52
- private meshName;
53
- private callbacks;
54
- private pingTimers;
49
+ private readonly links;
50
+ private readonly identity;
51
+ private readonly meshId;
52
+ private readonly meshName;
53
+ private readonly callbacks;
54
+ private readonly pingTimers;
55
55
  private shutDown;
56
- private pendingPongs;
56
+ private readonly pendingPongs;
57
57
  /**
58
58
  * Certificate fingerprints this instance will federate with, inbound or outbound. Empty by default — federation trusts nobody until an operator explicitly pins a remote mesh's fingerprint, the same no-CA, pin-the-key trust model ordinary peer connections already use.
59
59
  */
60
- private trustedFingerprints;
60
+ private readonly trustedFingerprints;
61
61
  private listener;
62
- constructor(meshId: string, meshName: string, callbacks: FedCallbacks);
62
+ constructor(meshId: string, meshName: string, callbacks: Readonly<FedCallbacks>);
63
63
  /** The TLS identity used for federation connections. */
64
64
  get tlsIdentity(): PeerIdentity;
65
65
  /** Pin a remote mesh's certificate fingerprint as trusted for federation. */
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/core/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/core/federation.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,14 @@ import { fingerprintDer, generateIdentity } from "./identity.js";
20
20
  const FED_PING_INTERVAL_MS = 30_000;
21
21
  const FED_PING_TIMEOUT_MS = 10_000;
22
22
  const FED_VERSION = "1.0.0";
23
+ /** Length (in bytes of entropy) of a locally-assigned federation link ID. */
24
+ const FED_LINK_ID_LENGTH = 8;
25
+ /** How long to wait for the remote side to complete the fed_handshake/fed_ack exchange before giving up. */
26
+ const FED_HANDSHAKE_TIMEOUT_MS = 5000;
27
+ /** How long to wait for the underlying TLS socket itself to connect before giving up. */
28
+ const FED_CONNECT_TIMEOUT_MS = 5000;
29
+ /** How often {@link FederationManager.waitForHandshake} polls link readiness. */
30
+ const FED_HANDSHAKE_POLL_INTERVAL_MS = 50;
23
31
  // ---------------------------------------------------------------------------
24
32
  // FederationManager
25
33
  // ---------------------------------------------------------------------------
@@ -91,7 +99,7 @@ export class FederationManager {
91
99
  async connect(host, port, name) {
92
100
  if (this.shutDown)
93
101
  throw new Error("FederationManager is shut down");
94
- const linkId = nanoid(8);
102
+ const linkId = nanoid(FED_LINK_ID_LENGTH);
95
103
  const socket = await this.tlsConnect(host, port);
96
104
  if (this.verifyPeerOrDestroy(socket) === undefined) {
97
105
  throw new Error(`Federation connection to ${host}:${String(port)} rejected: ` +
@@ -118,7 +126,7 @@ export class FederationManager {
118
126
  // Wire up incoming message handling
119
127
  this.wireSocket(linkId, socket);
120
128
  // Wait for fed_ack (with timeout)
121
- await this.waitForHandshake(linkId, 5000);
129
+ await this.waitForHandshake(linkId, FED_HANDSHAKE_TIMEOUT_MS);
122
130
  return linkId;
123
131
  }
124
132
  // -----------------------------------------------------------------------
@@ -137,7 +145,7 @@ export class FederationManager {
137
145
  throw new Error("Inbound federation connection rejected: the presented certificate " +
138
146
  "is not in the trusted-fingerprint allowlist.");
139
147
  }
140
- const linkId = nanoid(8);
148
+ const linkId = nanoid(FED_LINK_ID_LENGTH);
141
149
  const link = {
142
150
  id: linkId,
143
151
  remoteMeshId: "",
@@ -149,14 +157,14 @@ export class FederationManager {
149
157
  this.links.set(linkId, link);
150
158
  this.wireSocket(linkId, socket);
151
159
  // Wait for the remote side's handshake
152
- await this.waitForHandshake(linkId, 5000);
160
+ await this.waitForHandshake(linkId, FED_HANDSHAKE_TIMEOUT_MS);
153
161
  return linkId;
154
162
  }
155
163
  // -----------------------------------------------------------------------
156
164
  // Link management
157
165
  // -----------------------------------------------------------------------
158
166
  /** Disconnect a specific federation link. */
159
- disconnect(linkId) {
167
+ async disconnect(linkId) {
160
168
  const link = this.links.get(linkId);
161
169
  if (!link)
162
170
  return Promise.resolve();
@@ -212,7 +220,7 @@ export class FederationManager {
212
220
  *
213
221
  * Previously nothing in the shipped product called `handleInbound()` at all: it existed only as a function the integration test invoked directly against a hand-rolled `tls.createServer`. This is that server, promoted to real code.
214
222
  */
215
- listen(host, port) {
223
+ async listen(host, port) {
216
224
  if (this.listener) {
217
225
  throw new Error("FederationManager is already listening");
218
226
  }
@@ -236,7 +244,7 @@ export class FederationManager {
236
244
  });
237
245
  }
238
246
  /** Stop accepting new inbound federation connections. Existing links are unaffected. */
239
- stopListening() {
247
+ async stopListening() {
240
248
  const server = this.listener;
241
249
  if (!server)
242
250
  return Promise.resolve();
@@ -260,7 +268,7 @@ export class FederationManager {
260
268
  // -----------------------------------------------------------------------
261
269
  // Internal — TLS connection
262
270
  // -----------------------------------------------------------------------
263
- tlsConnect(host, port) {
271
+ async tlsConnect(host, port) {
264
272
  return new Promise((resolve, reject) => {
265
273
  const socket = tls.connect({
266
274
  key: this.identity.privateKey,
@@ -275,7 +283,7 @@ export class FederationManager {
275
283
  const timer = setTimeout(() => {
276
284
  socket.destroy();
277
285
  reject(new Error(`Federation connection timeout to ${host}:${String(port)}`));
278
- }, 5000);
286
+ }, FED_CONNECT_TIMEOUT_MS);
279
287
  socket.on("error", (err) => {
280
288
  clearTimeout(timer);
281
289
  reject(err);
@@ -372,6 +380,17 @@ export class FederationManager {
372
380
  }
373
381
  break;
374
382
  }
383
+ case "state_sync":
384
+ case "state_update":
385
+ case "introduce":
386
+ case "connect_request":
387
+ case "peer_list":
388
+ case "peer_joined":
389
+ case "peer_left":
390
+ case "become_coordinator": {
391
+ // Local-mesh-only message kinds — never sent over a federation link; ignore rather than throw so an unexpected wire message can't tear down the link.
392
+ break;
393
+ }
375
394
  }
376
395
  }
377
396
  // -----------------------------------------------------------------------
@@ -383,7 +402,7 @@ export class FederationManager {
383
402
  */
384
403
  async syncStateToLink(linkId) {
385
404
  const link = this.links.get(linkId);
386
- if (!link?.ready)
405
+ if (link?.ready !== true)
387
406
  return;
388
407
  // Sync visible agents
389
408
  const agents = this.callbacks.getVisibleAgents();
@@ -412,12 +431,12 @@ export class FederationManager {
412
431
  // -----------------------------------------------------------------------
413
432
  // Internal — handshake waiting
414
433
  // -----------------------------------------------------------------------
415
- waitForHandshake(linkId, timeoutMs) {
434
+ async waitForHandshake(linkId, timeoutMs) {
416
435
  return new Promise((resolve, reject) => {
417
436
  const startTime = Date.now();
418
437
  const check = () => {
419
438
  const link = this.links.get(linkId);
420
- if (link?.ready) {
439
+ if (link?.ready === true) {
421
440
  resolve();
422
441
  return;
423
442
  }
@@ -426,7 +445,7 @@ export class FederationManager {
426
445
  reject(new Error(`Federation handshake timeout for link ${linkId}`));
427
446
  return;
428
447
  }
429
- setTimeout(check, 50);
448
+ setTimeout(check, FED_HANDSHAKE_POLL_INTERVAL_MS);
430
449
  };
431
450
  check();
432
451
  });
@@ -444,7 +463,7 @@ export class FederationManager {
444
463
  }
445
464
  async sendPing(linkId) {
446
465
  const link = this.links.get(linkId);
447
- if (!link?.ready)
466
+ if (link?.ready !== true)
448
467
  return;
449
468
  const msg = { method: "fed_ping" };
450
469
  await this.writeToSocket(link.socket, msg);
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/core/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/core/federation.ts"],"names":[],"mappings":"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"}
@@ -36,12 +36,12 @@ export type HandshakeOutcome = {
36
36
  reason: string;
37
37
  };
38
38
  /**
39
- * Per-connection gate fed the incoming byte stream. Consumes the (optional) leading handshake frame and classifies the connection: negotiated (a version was agreed — for a server, the caller replies with `encodeHandshakeFrame()`), legacy (first byte was '{' — a pre-handshake peer, proceed exactly as before), or refused (a handshake we cannot speak: destroy the connection loudly rather than desync — the #31 enforcement point). After the first classification every subsequent feed passes the bytes through unchanged.
39
+ * Per-connection gate fed the incoming byte stream. Consumes the (optional) leading handshake frame and classifies the connection: negotiated (a version was agreed — for a server, the caller replies with `encodeHandshakeFrame()`), legacy (first byte was the JSON object-start byte — a pre-handshake peer, proceed exactly as before), or refused (a handshake we cannot speak: destroy the connection loudly rather than desync — the #31 enforcement point). After the first classification every subsequent feed passes the bytes through unchanged.
40
40
  */
41
41
  export declare class ConnectionHandshake {
42
42
  private readonly role;
43
43
  private decided;
44
- private pending;
44
+ private readonly pending;
45
45
  private pendingLength;
46
46
  constructor(role: "client" | "server");
47
47
  feed(data: Buffer): HandshakeOutcome;
@@ -52,9 +52,9 @@ export declare class ConnectionHandshake {
52
52
  }
53
53
  /** The slice of the Node socket surface the handshake needs — satisfied by net.Socket and tls.TLSSocket alike. */
54
54
  export interface HandshakeSocket {
55
- write(data: Uint8Array | string): unknown;
56
- destroy(): void;
57
- on(event: "data", listener: (data: Buffer) => void): unknown;
55
+ write: (data: Uint8Array | string) => unknown;
56
+ destroy: () => void;
57
+ on: (event: "data", listener: (data: Buffer) => void) => unknown;
58
58
  }
59
59
  /**
60
60
  * Wires a connection's handshake: a client sends its frame immediately (and
@@ -65,7 +65,7 @@ export interface HandshakeSocket {
65
65
  * destroys the connection and reports the reason — the loud #31 refusal
66
66
  * replacing silent desync.
67
67
  */
68
- export declare function attachSocketHandshake(socket: HandshakeSocket, role: "client" | "server", onPayload: (data: Buffer) => void, onError?: (error: Error) => void): void;
68
+ export declare function attachSocketHandshake(socket: Readonly<HandshakeSocket>, role: "client" | "server", onPayload: (data: Buffer) => void, onError?: (error: Error) => void): void;
69
69
  /**
70
70
  * Gate for a WebSocket connection, where every message is already framed: a
71
71
  * binary first message is the peer's handshake frame (reply in kind via
@@ -85,9 +85,9 @@ export declare class WsHandshakeGate {
85
85
  }
86
86
  /** The slice of the WebSocket surface the handshake needs. */
87
87
  export interface HandshakeWs {
88
- send(data: string | Uint8Array): unknown;
89
- terminate(): void;
90
- on(event: "message", listener: (raw: unknown, isBinary: boolean) => void): unknown;
88
+ send: (data: string | Uint8Array) => unknown;
89
+ terminate: () => void;
90
+ on: (event: "message", listener: (raw: unknown, isBinary: boolean) => void) => unknown;
91
91
  }
92
92
  /**
93
93
  * Wires a WebSocket connection's handshake: a client sends its frame as a
@@ -96,6 +96,6 @@ export interface HandshakeWs {
96
96
  * messages flow to `onText` unchanged; a refused handshake terminates the
97
97
  * connection and reports the reason.
98
98
  */
99
- export declare function attachWsHandshake(ws: HandshakeWs, role: "client" | "server", onText: (raw: unknown) => void, onError?: (error: Error) => void): void;
99
+ export declare function attachWsHandshake(ws: Readonly<HandshakeWs>, role: "client" | "server", onText: (raw: unknown) => void, onError?: (error: Error) => void): void;
100
100
  export {};
101
101
  //# sourceMappingURL=handshake.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/core/handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/core/handshake.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,16 @@ export const MESH_PROTOCOL_VERSION = 1;
15
15
  export const AGENT_COMMS_DOMAIN = "dev.exadev.agent-comms/mesh";
16
16
  /** Handshake frames are tiny; anything larger than this is not a frame, it is garbage. */
17
17
  const MAX_HANDSHAKE_BYTES = 1024;
18
- /** CBOR map head byte range (0xa0–0xbf); JSON always starts with '{' (0x7b). */
18
+ /** CBOR map head first byte, inclusive. */
19
+ const CBOR_MAP_HEAD_MIN = 0xa0;
20
+ /** CBOR map head last byte, inclusive. */
21
+ const CBOR_MAP_HEAD_MAX = 0xbf;
22
+ /** CBOR map head byte range (0xa0-0xbf); JSON always starts with the byte 0x7b. */
19
23
  function isCborMapHead(byte) {
20
- return byte >= 0xa0 && byte <= 0xbf;
24
+ return byte >= CBOR_MAP_HEAD_MIN && byte <= CBOR_MAP_HEAD_MAX;
21
25
  }
22
26
  const JSON_OBJECT_START = 0x7b; // '{'
27
+ const HEX_RADIX = 16;
23
28
  /**
24
29
  * Narrow structural check for a received handshake frame.
25
30
  *
@@ -52,7 +57,7 @@ export function negotiateMeshProtocol(remote) {
52
57
  return negotiate(localFrame(), remote);
53
58
  }
54
59
  /**
55
- * Per-connection gate fed the incoming byte stream. Consumes the (optional) leading handshake frame and classifies the connection: negotiated (a version was agreed — for a server, the caller replies with `encodeHandshakeFrame()`), legacy (first byte was '{' — a pre-handshake peer, proceed exactly as before), or refused (a handshake we cannot speak: destroy the connection loudly rather than desync — the #31 enforcement point). After the first classification every subsequent feed passes the bytes through unchanged.
60
+ * Per-connection gate fed the incoming byte stream. Consumes the (optional) leading handshake frame and classifies the connection: negotiated (a version was agreed — for a server, the caller replies with `encodeHandshakeFrame()`), legacy (first byte was the JSON object-start byte — a pre-handshake peer, proceed exactly as before), or refused (a handshake we cannot speak: destroy the connection loudly rather than desync — the #31 enforcement point). After the first classification every subsequent feed passes the bytes through unchanged.
56
61
  */
57
62
  export class ConnectionHandshake {
58
63
  role;
@@ -86,7 +91,7 @@ export class ConnectionHandshake {
86
91
  if (!isCborMapHead(first)) {
87
92
  return {
88
93
  kind: "refused",
89
- reason: `unexpected first byte 0x${first.toString(16)} — not a handshake frame or JSON message`,
94
+ reason: `unexpected first byte 0x${first.toString(HEX_RADIX)} — not a handshake frame or JSON message`,
90
95
  };
91
96
  }
92
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/core/handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/core/handshake.ts"],"names":[],"mappings":"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"}
@@ -17,29 +17,29 @@ export interface IdentitySlot {
17
17
  /**
18
18
  * Load the persisted identity for the slot, creating it on first use, and take the slot lock. Returns an ephemeral identity when the slot is already held by another live process.
19
19
  */
20
- export declare function loadOrCreateIdentity(slot: IdentitySlot): PeerIdentity;
20
+ export declare function loadOrCreateIdentity(slot: Readonly<IdentitySlot>): PeerIdentity;
21
21
  /**
22
22
  * Release the slot lock on graceful shutdown. A lock held by another PID (taken over after this process crashed and restarted) is left alone.
23
23
  */
24
- export declare function releaseIdentityLock(slot: IdentitySlot): void;
24
+ export declare function releaseIdentityLock(slot: Readonly<IdentitySlot>): void;
25
25
  /**
26
26
  * Every room-membership capability token persisted for this slot, keyed by room path. Empty if the slot has never had one saved (or the identity file doesn't exist yet -- call loadOrCreateIdentity first).
27
27
  */
28
- export declare function loadRoomTokens(slot: IdentitySlot): Record<string, CapabilityToken>;
28
+ export declare function loadRoomTokens(slot: Readonly<IdentitySlot>): Record<string, CapabilityToken>;
29
29
  /**
30
30
  * Persists a capability token for the given room path, surviving a restart the same way the identity it was minted against does. Overwrites any token already saved for that room; leaves every other room's token and the identity's own key material untouched.
31
31
  */
32
- export declare function saveRoomToken(slot: IdentitySlot, roomPath: string, token: CapabilityToken): void;
32
+ export declare function saveRoomToken(slot: Readonly<IdentitySlot>, roomPath: string, token: CapabilityToken): void;
33
33
  /** Removes the persisted token for one room path, if any. A no-op if none was saved for that path. */
34
- export declare function deleteRoomToken(slot: IdentitySlot, roomPath: string): void;
34
+ export declare function deleteRoomToken(slot: Readonly<IdentitySlot>, roomPath: string): void;
35
35
  /**
36
36
  * The token-id this identity itself minted for the given member's room:member grant, or undefined if none is on record (the slot has never admitted this member, or the record predates this bookkeeping). A room owner consults this to revoke a specific member's own grant later -- a token-id, unlike the token itself, is never presented on the wire and so is never obtainable except from this identity's own memory of having minted it.
37
37
  */
38
- export declare function loadIssuedRoomGrant(slot: IdentitySlot, roomPath: string, memberDeviceHex: string): Uint8Array<ArrayBuffer> | undefined;
38
+ export declare function loadIssuedRoomGrant(slot: Readonly<IdentitySlot>, roomPath: string, memberDeviceHex: string): Uint8Array<ArrayBuffer> | undefined;
39
39
  /**
40
40
  * Records the token-id of a room:member grant this identity has just minted for memberDeviceHex in roomPath, surviving a restart the same way roomTokens does. Overwrites any earlier record for the same (roomPath, member) pair -- a fresh join/invite always supersedes the grant it replaces, so only the current token-id is ever worth revoking.
41
41
  */
42
- export declare function saveIssuedRoomGrant(slot: IdentitySlot, roomPath: string, memberDeviceHex: string, tokenId: Uint8Array): void;
42
+ export declare function saveIssuedRoomGrant(slot: Readonly<IdentitySlot>, roomPath: string, memberDeviceHex: string, tokenId: Uint8Array): void;
43
43
  /** Removes the recorded token-id for one (roomPath, member) grant, if any -- called once a kick has revoked it, so a later re-join mints and records a genuinely fresh one rather than leaving a stale entry alongside it. A no-op if none was recorded. */
44
- export declare function deleteIssuedRoomGrant(slot: IdentitySlot, roomPath: string, memberDeviceHex: string): void;
44
+ export declare function deleteIssuedRoomGrant(slot: Readonly<IdentitySlot>, roomPath: string, memberDeviceHex: string): void;
45
45
  //# sourceMappingURL=identity-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-store.d.ts","sourceRoot":"","sources":["../../src/core/identity-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAkKD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAgBrE;AAkDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAK5D;AAuBD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,GACjB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CASjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,GACrB,IAAI,CAaN;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQ1E;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAQrC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,UAAU,GAClB,IAAI,CAcN;AAED,4PAA4P;AAC5P,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CASN"}
1
+ {"version":3,"file":"identity-store.d.ts","sourceRoot":"","sources":["../../src/core/identity-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAwKD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,YAAY,CAgBd;AAkDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAKtE;AAuBD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CASjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,GACrB,IAAI,CAaN;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,IAAI,CAUN;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAQrC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,UAAU,GAClB,IAAI,CAcN;AAED,4PAA4P;AAC5P,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CASN"}
@@ -9,10 +9,14 @@ import * as fs from "node:fs";
9
9
  import * as os from "node:os";
10
10
  import * as path from "node:path";
11
11
  import { generateIdentity, certifyKeyPair, getCertificateFingerprint, deriveDeviceId, CERTIFICATE_VALIDITY_MS, } from "./identity.js";
12
+ /** Renewal margin is one twelfth of the certificate's total validity period. */
13
+ const RENEWAL_MARGIN_FRACTION = 12;
12
14
  /** Renew during the final twelfth of the certificate's validity. */
13
- const RENEWAL_MARGIN_MS = CERTIFICATE_VALIDITY_MS / 12;
15
+ const RENEWAL_MARGIN_MS = CERTIFICATE_VALIDITY_MS / RENEWAL_MARGIN_FRACTION;
16
+ /** A COSE_Sign1 tuple always has exactly 4 elements: protected header, unprotected header, payload, signature. */
17
+ const COSE_SIGN1_TUPLE_LENGTH = 4;
14
18
  function isSerializedCapabilityToken(value) {
15
- if (!Array.isArray(value) || value.length !== 4)
19
+ if (!Array.isArray(value) || value.length !== COSE_SIGN1_TUPLE_LENGTH)
16
20
  return false;
17
21
  const protectedHeader = value[0];
18
22
  const unprotectedHeader = value[1];
@@ -256,7 +260,7 @@ export function deleteRoomToken(slot, roomPath) {
256
260
  const stored = readStoredIdentity(identityFile);
257
261
  if (stored?.roomTokens === undefined)
258
262
  return;
259
- const roomTokens = Object.fromEntries(Object.entries(stored.roomTokens).filter(([path]) => path !== roomPath));
263
+ const roomTokens = Object.fromEntries(Object.entries(stored.roomTokens).filter(([storedRoomPath]) => storedRoomPath !== roomPath));
260
264
  writeStoredIdentity(identityFile, { ...stored, roomTokens });
261
265
  }
262
266
  function issuedGrantKey(roomPath, memberDeviceHex) {