agent-comms 8.6.2 → 8.8.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 (240) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +34 -3
  4. package/dist/account-cli.d.ts +34 -0
  5. package/dist/account-cli.d.ts.map +1 -0
  6. package/dist/account-cli.js +140 -0
  7. package/dist/account-cli.js.map +1 -0
  8. package/dist/account-join-cli.d.ts +17 -0
  9. package/dist/account-join-cli.d.ts.map +1 -0
  10. package/dist/account-join-cli.js +144 -0
  11. package/dist/account-join-cli.js.map +1 -0
  12. package/dist/bridges/mcp/server.d.ts +1 -4
  13. package/dist/bridges/mcp/server.d.ts.map +1 -1
  14. package/dist/bridges/mcp/server.js +1 -1
  15. package/dist/bridges/mcp/server.js.map +1 -1
  16. package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
  17. package/dist/bridges/user/web/dist/sw.js +1 -1
  18. package/dist/cli.d.ts +4 -0
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +24 -1
  21. package/dist/cli.js.map +1 -1
  22. package/dist/core/account-bundle.d.ts +27 -0
  23. package/dist/core/account-bundle.d.ts.map +1 -0
  24. package/dist/core/account-bundle.js +173 -0
  25. package/dist/core/account-bundle.js.map +1 -0
  26. package/dist/core/account-join.d.ts +70 -0
  27. package/dist/core/account-join.d.ts.map +1 -0
  28. package/dist/core/account-join.js +183 -0
  29. package/dist/core/account-join.js.map +1 -0
  30. package/dist/core/account-ledger-crypto.d.ts +28 -0
  31. package/dist/core/account-ledger-crypto.d.ts.map +1 -0
  32. package/dist/core/account-ledger-crypto.js +101 -0
  33. package/dist/core/account-ledger-crypto.js.map +1 -0
  34. package/dist/core/account-ledger-store.d.ts +21 -0
  35. package/dist/core/account-ledger-store.d.ts.map +1 -0
  36. package/dist/core/account-ledger-store.js +34 -0
  37. package/dist/core/account-ledger-store.js.map +1 -0
  38. package/dist/core/account-ledger.d.ts +80 -0
  39. package/dist/core/account-ledger.d.ts.map +1 -0
  40. package/dist/core/account-ledger.js +247 -0
  41. package/dist/core/account-ledger.js.map +1 -0
  42. package/dist/core/agent-registry.d.ts.map +1 -1
  43. package/dist/core/agent-registry.js +2 -0
  44. package/dist/core/agent-registry.js.map +1 -1
  45. package/dist/core/bridge-mesh.d.ts.map +1 -1
  46. package/dist/core/bridge-mesh.js +12 -1
  47. package/dist/core/bridge-mesh.js.map +1 -1
  48. package/dist/core/bridge.d.ts +1 -0
  49. package/dist/core/bridge.d.ts.map +1 -1
  50. package/dist/core/bridge.js +6 -0
  51. package/dist/core/bridge.js.map +1 -1
  52. package/dist/core/data-frame-routing.d.ts +50 -3
  53. package/dist/core/data-frame-routing.d.ts.map +1 -1
  54. package/dist/core/data-frame-routing.js +112 -5
  55. package/dist/core/data-frame-routing.js.map +1 -1
  56. package/dist/core/device-membership.d.ts +8 -8
  57. package/dist/core/device-membership.d.ts.map +1 -1
  58. package/dist/core/device-membership.js +17 -16
  59. package/dist/core/device-membership.js.map +1 -1
  60. package/dist/core/dm-send-delegation.d.ts +4 -4
  61. package/dist/core/dm-send-delegation.d.ts.map +1 -1
  62. package/dist/core/dm-send-delegation.js +2 -3
  63. package/dist/core/dm-send-delegation.js.map +1 -1
  64. package/dist/core/gossip-directory.d.ts +4 -2
  65. package/dist/core/gossip-directory.d.ts.map +1 -1
  66. package/dist/core/gossip-directory.js +4 -5
  67. package/dist/core/gossip-directory.js.map +1 -1
  68. package/dist/core/gossip-extensions.d.ts +2 -0
  69. package/dist/core/gossip-extensions.d.ts.map +1 -1
  70. package/dist/core/gossip-extensions.js +3 -0
  71. package/dist/core/gossip-extensions.js.map +1 -1
  72. package/dist/core/group-proofs.d.ts +15 -6
  73. package/dist/core/group-proofs.d.ts.map +1 -1
  74. package/dist/core/group-proofs.js +73 -18
  75. package/dist/core/group-proofs.js.map +1 -1
  76. package/dist/core/identity-store.d.ts.map +1 -1
  77. package/dist/core/identity-store.js +2 -62
  78. package/dist/core/identity-store.js.map +1 -1
  79. package/dist/core/issuer-grouping.d.ts +52 -0
  80. package/dist/core/issuer-grouping.d.ts.map +1 -0
  81. package/dist/core/{machine-grouping.js → issuer-grouping.js} +33 -33
  82. package/dist/core/issuer-grouping.js.map +1 -0
  83. package/dist/core/issuer-identity-file.d.ts +4 -0
  84. package/dist/core/issuer-identity-file.d.ts.map +1 -1
  85. package/dist/core/issuer-identity-file.js +7 -5
  86. package/dist/core/issuer-identity-file.js.map +1 -1
  87. package/dist/core/ledger-lock.d.ts +12 -0
  88. package/dist/core/ledger-lock.d.ts.map +1 -0
  89. package/dist/core/ledger-lock.js +62 -0
  90. package/dist/core/ledger-lock.js.map +1 -0
  91. package/dist/core/membership-proofs.d.ts +7 -0
  92. package/dist/core/membership-proofs.d.ts.map +1 -1
  93. package/dist/core/membership-proofs.js +26 -1
  94. package/dist/core/membership-proofs.js.map +1 -1
  95. package/dist/core/mesh-store-shared.d.ts +4 -1
  96. package/dist/core/mesh-store-shared.d.ts.map +1 -1
  97. package/dist/core/mesh-store-shared.js.map +1 -1
  98. package/dist/core/mesh-store.d.ts +17 -8
  99. package/dist/core/mesh-store.d.ts.map +1 -1
  100. package/dist/core/mesh-store.js +44 -42
  101. package/dist/core/mesh-store.js.map +1 -1
  102. package/dist/core/naming-actions.d.ts +5 -1
  103. package/dist/core/naming-actions.d.ts.map +1 -1
  104. package/dist/core/naming-actions.js +13 -1
  105. package/dist/core/naming-actions.js.map +1 -1
  106. package/dist/core/naming.d.ts +9 -5
  107. package/dist/core/naming.d.ts.map +1 -1
  108. package/dist/core/naming.js +14 -4
  109. package/dist/core/naming.js.map +1 -1
  110. package/dist/core/peer-versions.d.ts +11 -0
  111. package/dist/core/peer-versions.d.ts.map +1 -1
  112. package/dist/core/peer-versions.js +9 -0
  113. package/dist/core/peer-versions.js.map +1 -1
  114. package/dist/core/pid-lock-file.d.ts +20 -0
  115. package/dist/core/pid-lock-file.d.ts.map +1 -0
  116. package/dist/core/pid-lock-file.js +115 -0
  117. package/dist/core/pid-lock-file.js.map +1 -0
  118. package/dist/core/room-lifecycle.d.ts +2 -2
  119. package/dist/core/room-lifecycle.d.ts.map +1 -1
  120. package/dist/core/room-lifecycle.js +18 -19
  121. package/dist/core/room-lifecycle.js.map +1 -1
  122. package/dist/core/self-name-claim.d.ts +27 -0
  123. package/dist/core/self-name-claim.d.ts.map +1 -0
  124. package/dist/core/{machine-name-claim.js → self-name-claim.js} +7 -8
  125. package/dist/core/self-name-claim.js.map +1 -0
  126. package/dist/core/tool.d.ts.map +1 -1
  127. package/dist/core/tool.js +11 -7
  128. package/dist/core/tool.js.map +1 -1
  129. package/dist/core/transport-queries.d.ts +11 -0
  130. package/dist/core/transport-queries.d.ts.map +1 -0
  131. package/dist/core/transport-queries.js +30 -0
  132. package/dist/core/transport-queries.js.map +1 -0
  133. package/dist/core/types.d.ts +6 -0
  134. package/dist/core/types.d.ts.map +1 -1
  135. package/dist/core/types.js +5 -0
  136. package/dist/core/types.js.map +1 -1
  137. package/dist/core/user-identity.d.ts +28 -18
  138. package/dist/core/user-identity.d.ts.map +1 -1
  139. package/dist/core/user-identity.js +126 -59
  140. package/dist/core/user-identity.js.map +1 -1
  141. package/dist/core/wire-mesh-transport-options.d.ts +11 -2
  142. package/dist/core/wire-mesh-transport-options.d.ts.map +1 -1
  143. package/dist/core/wire-mesh-transport-options.js.map +1 -1
  144. package/dist/core/wire-mesh-transport.d.ts +4 -6
  145. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  146. package/dist/core/wire-mesh-transport.js +16 -20
  147. package/dist/core/wire-mesh-transport.js.map +1 -1
  148. package/dist/test/account-join.integration.test.d.ts +5 -0
  149. package/dist/test/account-join.integration.test.d.ts.map +1 -0
  150. package/dist/test/account-join.integration.test.js +280 -0
  151. package/dist/test/account-join.integration.test.js.map +1 -0
  152. package/dist/test/account-ledger-lock-worker.d.ts +9 -0
  153. package/dist/test/account-ledger-lock-worker.d.ts.map +1 -0
  154. package/dist/test/account-ledger-lock-worker.js +34 -0
  155. package/dist/test/account-ledger-lock-worker.js.map +1 -0
  156. package/dist/test/account-ledger-lock.integration.test.d.ts +5 -0
  157. package/dist/test/account-ledger-lock.integration.test.d.ts.map +1 -0
  158. package/dist/test/account-ledger-lock.integration.test.js +71 -0
  159. package/dist/test/account-ledger-lock.integration.test.js.map +1 -0
  160. package/dist/test/account-ledger-replication.integration.test.d.ts +5 -0
  161. package/dist/test/account-ledger-replication.integration.test.d.ts.map +1 -0
  162. package/dist/test/account-ledger-replication.integration.test.js +145 -0
  163. package/dist/test/account-ledger-replication.integration.test.js.map +1 -0
  164. package/dist/test/account-ledger.unit.test.d.ts +5 -0
  165. package/dist/test/account-ledger.unit.test.d.ts.map +1 -0
  166. package/dist/test/account-ledger.unit.test.js +317 -0
  167. package/dist/test/account-ledger.unit.test.js.map +1 -0
  168. package/dist/test/account-transfer.unit.test.d.ts +5 -0
  169. package/dist/test/account-transfer.unit.test.d.ts.map +1 -0
  170. package/dist/test/account-transfer.unit.test.js +232 -0
  171. package/dist/test/account-transfer.unit.test.js.map +1 -0
  172. package/dist/test/delivery-engine-delivery.unit.test.js +1 -0
  173. package/dist/test/delivery-engine-delivery.unit.test.js.map +1 -1
  174. package/dist/test/delivery-engine-directed-notify.unit.test.js +1 -0
  175. package/dist/test/delivery-engine-directed-notify.unit.test.js.map +1 -1
  176. package/dist/test/delivery-engine-own-agent.unit.test.js +1 -0
  177. package/dist/test/delivery-engine-own-agent.unit.test.js.map +1 -1
  178. package/dist/test/delivery-engine.unit.test.js +1 -0
  179. package/dist/test/delivery-engine.unit.test.js.map +1 -1
  180. package/dist/test/device-membership.unit.test.js +81 -30
  181. package/dist/test/device-membership.unit.test.js.map +1 -1
  182. package/dist/test/dm-send-delegation.unit.test.js +25 -14
  183. package/dist/test/dm-send-delegation.unit.test.js.map +1 -1
  184. package/dist/test/dm-send-principal-delegation.integration.test.js +9 -2
  185. package/dist/test/dm-send-principal-delegation.integration.test.js.map +1 -1
  186. package/dist/test/hidden-line.unit.test.d.ts +5 -0
  187. package/dist/test/hidden-line.unit.test.d.ts.map +1 -0
  188. package/dist/test/hidden-line.unit.test.js +40 -0
  189. package/dist/test/hidden-line.unit.test.js.map +1 -0
  190. package/dist/test/identity-restart.integration.test.js +8 -1
  191. package/dist/test/identity-restart.integration.test.js.map +1 -1
  192. package/dist/test/issuer-grouping.unit.test.d.ts +2 -0
  193. package/dist/test/issuer-grouping.unit.test.d.ts.map +1 -0
  194. package/dist/test/issuer-grouping.unit.test.js +137 -0
  195. package/dist/test/issuer-grouping.unit.test.js.map +1 -0
  196. package/dist/test/mcp-stdout-channel.integration.test.js +2 -2
  197. package/dist/test/mcp-stdout-channel.integration.test.js.map +1 -1
  198. package/dist/test/mesh-smoke.runner.js +2 -1
  199. package/dist/test/mesh-smoke.runner.js.map +1 -1
  200. package/dist/test/naming.integration.test.d.ts +1 -1
  201. package/dist/test/naming.integration.test.js +45 -1
  202. package/dist/test/naming.integration.test.js.map +1 -1
  203. package/dist/test/room-join-admission.integration.test.js +8 -1
  204. package/dist/test/room-join-admission.integration.test.js.map +1 -1
  205. package/dist/test/room-lifecycle-bare-name.unit.test.js +1 -0
  206. package/dist/test/room-lifecycle-bare-name.unit.test.js.map +1 -1
  207. package/dist/test/room-lifecycle-membership.unit.test.js +1 -0
  208. package/dist/test/room-lifecycle-membership.unit.test.js.map +1 -1
  209. package/dist/test/room-lifecycle-remote.unit.test.js +1 -0
  210. package/dist/test/room-lifecycle-remote.unit.test.js.map +1 -1
  211. package/dist/test/room-lifecycle.unit.test.js +1 -0
  212. package/dist/test/room-lifecycle.unit.test.js.map +1 -1
  213. package/dist/test/room-messaging-durable-send.unit.test.js +1 -0
  214. package/dist/test/room-messaging-durable-send.unit.test.js.map +1 -1
  215. package/dist/test/room-messaging.unit.test.js +1 -0
  216. package/dist/test/room-messaging.unit.test.js.map +1 -1
  217. package/dist/test/room-protocol-notify.unit.test.js +1 -0
  218. package/dist/test/room-protocol-notify.unit.test.js.map +1 -1
  219. package/dist/test/room-protocol.helper.d.ts.map +1 -1
  220. package/dist/test/room-protocol.helper.js +1 -0
  221. package/dist/test/room-protocol.helper.js.map +1 -1
  222. package/dist/test/room-send-retry.integration.test.js +8 -1
  223. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  224. package/dist/test/test-transport.d.ts +9 -0
  225. package/dist/test/test-transport.d.ts.map +1 -1
  226. package/dist/test/test-transport.js +14 -5
  227. package/dist/test/test-transport.js.map +1 -1
  228. package/dist/test/user-identity.unit.test.js +92 -99
  229. package/dist/test/user-identity.unit.test.js.map +1 -1
  230. package/package.json +1 -1
  231. package/dist/core/machine-grouping.d.ts +0 -47
  232. package/dist/core/machine-grouping.d.ts.map +0 -1
  233. package/dist/core/machine-grouping.js.map +0 -1
  234. package/dist/core/machine-name-claim.d.ts +0 -22
  235. package/dist/core/machine-name-claim.d.ts.map +0 -1
  236. package/dist/core/machine-name-claim.js.map +0 -1
  237. package/dist/test/machine-grouping.unit.test.d.ts +0 -2
  238. package/dist/test/machine-grouping.unit.test.d.ts.map +0 -1
  239. package/dist/test/machine-grouping.unit.test.js +0 -68
  240. package/dist/test/machine-grouping.unit.test.js.map +0 -1
@@ -1,17 +1,21 @@
1
1
  /**
2
- * This device's membership proofs under both of its grouping issuers, its user principal (agent-comms#266) and its machine (agent-comms#343), and the machine's self display name claim (agent-comms#345), with the checks for other devices' proofs and claims and the machine grouping and names list_agents shows. Split out of MeshStore, which hands it its identity, peer id, transport and error sink.
2
+ * This device's membership proofs under both of its grouping issuers, its user principal (agent-comms#266) and its machine (agent-comms#343), and the self display name claims of both (agent-comms#345 for the machine, agent-comms#359 for the principal), with the checks for other devices' proofs and claims and the machine grouping and names list_agents shows. Split out of MeshStore, which hands it its identity, peer id, transport and error sink.
3
3
  */
4
4
  import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
5
5
  import { MembershipProofs } from "./membership-proofs.js";
6
- import { MachineGrouping } from "./machine-grouping.js";
7
- import { MachineNameClaim } from "./machine-name-claim.js";
6
+ import { IssuerGrouping } from "./issuer-grouping.js";
7
+ import { SelfNameClaim } from "./self-name-claim.js";
8
8
  import { loadMachineDisplayName, saveMachineDisplayName, } from "./machine-identity.js";
9
+ import { readNameClaim } from "./gossip-directory.js";
9
10
  import { verifyNameClaim } from "./name-claim.js";
11
+ import { loadUserDisplayName, saveUserDisplayName } from "./user-identity.js";
10
12
  export class GroupProofs {
11
13
  principal;
12
14
  machine;
13
- grouping;
15
+ machineGrouping;
16
+ principalGrouping;
14
17
  machineName;
18
+ principalName;
15
19
  getIdentity;
16
20
  constructor(deps) {
17
21
  this.getIdentity = deps.getIdentity;
@@ -28,60 +32,108 @@ export class GroupProofs {
28
32
  ...shared,
29
33
  issuerOf: (identity) => identity.machineIdentity,
30
34
  });
31
- this.grouping = new MachineGrouping({
35
+ const grouping = {
32
36
  listKnownDevices: () => deps.requireTransport().listKnownDevices?.() ?? [],
33
37
  identify: async (claim) => this.identify(claim),
34
38
  getPeerId: deps.getPeerId,
35
- getMachineId: () => {
39
+ onError: deps.onError,
40
+ verifyName: async (claim) => {
41
+ const { identity, clock } = deps.getIdentity();
42
+ return verifyNameClaim({
43
+ claim: claim.claim,
44
+ subject: claim.subject,
45
+ identity,
46
+ clock,
47
+ });
48
+ },
49
+ };
50
+ this.machineGrouping = new IssuerGrouping({
51
+ ...grouping,
52
+ field: "machine",
53
+ readNameClaim: (advert) => readNameClaim(advert, "machineName"),
54
+ getOwnIssuerId: () => {
36
55
  const identity = deps.peekIdentity();
37
56
  return identity === undefined
38
57
  ? undefined
39
58
  : deviceIdToHex(identity.machineIdentity.deviceId);
40
59
  },
41
- onError: deps.onError,
42
- verifyName: async ({ claim, subject }) => {
43
- const { identity, clock } = deps.getIdentity();
44
- return verifyNameClaim({ claim, subject, identity, clock });
45
- },
46
- getOwnMachineName: () => {
60
+ getOwnName: () => {
47
61
  const identity = deps.peekIdentity();
48
62
  return identity === undefined
49
63
  ? undefined
50
64
  : loadMachineDisplayName(identity.machineIdentityOptions);
51
65
  },
52
66
  });
53
- this.machineName = new MachineNameClaim({
67
+ this.principalGrouping = new IssuerGrouping({
68
+ ...grouping,
69
+ field: "membership",
70
+ readNameClaim: (advert) => readNameClaim(advert, "principalName"),
71
+ getOwnIssuerId: () => {
72
+ const identity = deps.peekIdentity();
73
+ return identity === undefined
74
+ ? undefined
75
+ : deviceIdToHex(identity.userIdentity.deviceId);
76
+ },
77
+ getOwnName: () => {
78
+ const identity = deps.peekIdentity();
79
+ return identity === undefined
80
+ ? undefined
81
+ : loadUserDisplayName(identity.userIdentityOptions);
82
+ },
83
+ });
84
+ this.machineName = new SelfNameClaim({
54
85
  getIdentity: deps.getIdentity,
86
+ issuerOf: (identity) => identity.machineIdentity,
87
+ loadName: (identity) => loadMachineDisplayName(identity.machineIdentityOptions),
88
+ onError: deps.onError,
89
+ });
90
+ this.principalName = new SelfNameClaim({
91
+ getIdentity: deps.getIdentity,
92
+ issuerOf: (identity) => identity.userIdentity,
93
+ loadName: (identity) => loadUserDisplayName(identity.userIdentityOptions),
55
94
  onError: deps.onError,
56
95
  });
57
96
  }
97
+ /** Whether a gossiped proof shows that deviceHex belongs to the account this store holds, judged against the user principal's own proofs (MembershipProofs.isAccountMember). */
98
+ async isAccountMember(claim) {
99
+ return this.principal.isAccountMember(claim);
100
+ }
58
101
  /** The agent/self advert fields carrying this device's current proofs, each absent until it has first been minted. */
59
102
  advertFields() {
60
103
  const membership = this.principal.current();
61
104
  const machine = this.machine.current();
62
105
  const machineName = this.machineName.current();
106
+ const principalName = this.principalName.current();
63
107
  return {
64
108
  ...(membership !== undefined ? { membership } : {}),
65
109
  ...(machine !== undefined ? { machine } : {}),
66
110
  ...(machineName !== undefined ? { machineName } : {}),
111
+ ...(principalName !== undefined ? { principalName } : {}),
67
112
  };
68
113
  }
69
- /** Starts keeping both proofs fresh; called once the store's identity is attached. */
114
+ /** Starts keeping both proofs and both name claims fresh; called once the store's identity is attached. */
70
115
  start() {
71
116
  this.principal.start();
72
117
  this.machine.start();
73
118
  this.machineName.start();
119
+ this.principalName.start();
74
120
  }
75
121
  stop() {
76
122
  this.principal.stop();
77
123
  this.machine.stop();
78
124
  this.machineName.stop();
125
+ this.principalName.stop();
79
126
  }
80
127
  /** Sets (or, given undefined, clears) this machine's self display name and re-mints its claim now rather than on the next refresh. Throws if the store has no identity yet. */
81
128
  async saveMachineName(name) {
82
129
  saveMachineDisplayName(this.getIdentity().machineIdentityOptions, name);
83
130
  return this.machineName.refresh();
84
131
  }
132
+ /** Sets (or, given undefined, clears) this account's self display name and re-mints its claim now rather than on the next refresh. Throws if the store has no identity yet. */
133
+ async saveUserName(name) {
134
+ saveUserDisplayName(this.getIdentity().userIdentityOptions, name);
135
+ return this.principalName.refresh();
136
+ }
85
137
  /** Whether a gossiped proof shows that issuerHex, a principal or a machine, vouches for deviceHex. */
86
138
  async verify(claim) {
87
139
  return this.principal.verify(claim);
@@ -92,11 +144,14 @@ export class GroupProofs {
92
144
  }
93
145
  /** The machine (hex) of each device this side can place on one, keyed by device id. */
94
146
  async machinesByDevice() {
95
- return this.grouping.machinesByDevice();
147
+ return this.machineGrouping.issuersByDevice();
96
148
  }
97
- /** The self display name of each machine this side can place a device on, keyed by machine id. */
98
- async machineNames() {
99
- return this.grouping.machineNames();
149
+ /** The self display name of each grouping issuer this side can place a device under, machines and user principals together, keyed by issuer id. The two kinds of id never collide, since each is the hash of a different key. */
150
+ async issuerNames() {
151
+ return new Map([
152
+ ...(await this.machineGrouping.issuerNames()),
153
+ ...(await this.principalGrouping.issuerNames()),
154
+ ]);
100
155
  }
101
156
  }
102
157
  //# sourceMappingURL=group-proofs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-proofs.js","sourceRoot":"","sources":["../../src/core/group-proofs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-proofs.js","sourceRoot":"","sources":["../../src/core/group-proofs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmB9E,MAAM,OAAO,WAAW;IACL,SAAS,CAAmB;IAC5B,OAAO,CAAmB;IAC1B,eAAe,CAAiB;IAChC,iBAAiB,CAAiB;IAClC,WAAW,CAAgB;IAC3B,aAAa,CAAgB;IAC7B,WAAW,CAA0B;IAEtD,YAAY,IAA+B;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC;YACpC,GAAG,MAAM;YACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC;YAClC,GAAG,MAAM;YACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe;SACjD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG;YACf,gBAAgB,EAAE,GAAG,EAAE,CACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE;YACpD,QAAQ,EAAE,KAAK,EAAE,KAAqD,EAAE,EAAE,CACxE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,KAAK,EACf,KAAmD,EACnD,EAAE;gBACF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/C,OAAO,eAAe,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ;oBACR,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC;YACxC,GAAG,QAAQ;YACX,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC;YAC/D,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,OAAO,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,OAAO,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC9D,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,cAAc,CAAC;YAC1C,GAAG,QAAQ;YACX,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC;YACjE,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,OAAO,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,OAAO,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACxD,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe;YAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrB,sBAAsB,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY;YAC7C,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACzE,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,gLAAgL;IAChL,KAAK,CAAC,eAAe,CACnB,KAAqD;QAErD,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,sHAAsH;IACtH,YAAY;QAIV,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnD,OAAO;YACL,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,2GAA2G;IAC3G,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,+KAA+K;IAC/K,KAAK,CAAC,eAAe,CAAC,IAAwB;QAC5C,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,+KAA+K;IAC/K,KAAK,CAAC,YAAY,CAAC,IAAwB;QACzC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,MAAM,CACV,KAAwE;QAExE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,qLAAqL;IACrL,KAAK,CAAC,QAAQ,CACZ,KAAqD;QAErD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;IAChD,CAAC;IAED,iOAAiO;IACjO,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,GAAG,CAAC;YACb,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity-store.d.ts","sourceRoot":"","sources":["../../src/core/identity-store.ts"],"names":[],"mappings":"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"}
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;AASlD,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAYD,wgBAAwgB;AACxgB,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM;IACN;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IACtD,MAAM,GAAG,IAAI;IACb,MAAM;CACP,CAAC;AAgBF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,yBAAyB,CAYpC;AAqCD,0EAA0E;AAC1E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,GACrB,yBAAyB,CAgB3B;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,yBAAyB,GACpC,eAAe,CAkBjB;AA0BD,4UAA4U;AAC5U,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,CAIhE;AAeD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,YAAY,CAad;AAkDD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,YAAY,CAId;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAEtE;AA0DD;;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,CAgBN;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CASjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,GACrB,IAAI,CAgBN;AAED,6JAA6J;AAC7J,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,SAAS,EAAE,MAAM,GAChB,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,CAiBN;AAED,4PAA4P;AAC5P,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CASN;AASD,wPAAwP;AACxP,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAWD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,GAC5C,kBAAkB,CAuBpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,EAC7C,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAClC,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,GAC5C,MAAM,CAOR;AAED,4LAA4L;AAC5L,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0mBAA0mB;AAC1mB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAkBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC3B,wBAAwB,CAgC1B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC5B,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GACzC,IAAI,CAQN"}
@@ -10,6 +10,7 @@ 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
12
  import { writeFileAtomic } from "./atomic-file.js";
13
+ import { isPidAlive, readLockPid, releaseLockFile, tryAcquireLock, } from "./pid-lock-file.js";
13
14
  /** Renewal margin is one twelfth of the certificate's total validity period. */
14
15
  const RENEWAL_MARGIN_FRACTION = 12;
15
16
  /** Renew during the final twelfth of the certificate's validity. */
@@ -130,64 +131,6 @@ export function oplogDirFor(slot) {
130
131
  const base = `oplog-${slot.harness}--${slugifyCwd(slot.cwd)}`;
131
132
  return path.join(dir, base);
132
133
  }
133
- function isPidAlive(pid) {
134
- try {
135
- process.kill(pid, 0);
136
- return true;
137
- }
138
- catch {
139
- return false;
140
- }
141
- }
142
- /** Read the PID holding the lock, or undefined when absent or unreadable. */
143
- function readLockPid(lockFile) {
144
- let raw;
145
- try {
146
- raw = fs.readFileSync(lockFile, "utf-8");
147
- }
148
- catch {
149
- return undefined;
150
- }
151
- const pid = Number.parseInt(raw.trim(), 10);
152
- return Number.isInteger(pid) ? pid : undefined;
153
- }
154
- function isEexist(err) {
155
- if (!(err instanceof Error) || !("code" in err))
156
- return false;
157
- return err.code === "EEXIST";
158
- }
159
- /**
160
- * Attempts to atomically claim lockFile for this process via write-temp-then-hardlink: link() is POSIX-guaranteed atomic and exclusive (it fails with EEXIST if the target name already exists), and because the temp file's content is fully written before the link is created, the lock file's content can never be observed incomplete the instant its name exists -- unlike a bare open(O_CREAT|O_EXCL) followed by a separate write(), which leaves a real window where the file exists with zero bytes. Returns the current holder when someone else already holds it (a live different PID blocks the claim; a stale one is taken over here, racing a concurrent taker-over the same way a live holder would -- whichever wins the exclusive link claims it, the loser simply reports the winner's PID once it re-reads the lock).
161
- */
162
- function tryAcquireLock(lockFile) {
163
- const claim = () => {
164
- const tmpFile = `${lockFile}.${String(process.pid)}.tmp`;
165
- fs.writeFileSync(tmpFile, `${String(process.pid)}\n`, "utf-8");
166
- try {
167
- fs.linkSync(tmpFile, lockFile);
168
- return true;
169
- }
170
- catch (err) {
171
- if (!isEexist(err))
172
- throw err;
173
- return false;
174
- }
175
- finally {
176
- fs.rmSync(tmpFile, { force: true });
177
- }
178
- };
179
- if (claim())
180
- return { acquired: true };
181
- const heldBy = readLockPid(lockFile);
182
- if (heldBy !== undefined && heldBy !== process.pid && isPidAlive(heldBy)) {
183
- return { acquired: false, heldBy };
184
- }
185
- // The existing lock is stale (a dead PID, or unreadable) -- take it over.
186
- fs.rmSync(lockFile, { force: true });
187
- if (claim())
188
- return { acquired: true };
189
- return { acquired: false, heldBy: readLockPid(lockFile) };
190
- }
191
134
  function persistIdentity(identityFile, identity) {
192
135
  const stored = {
193
136
  privateKey: identity.privateKey,
@@ -275,10 +218,7 @@ export function loadIdentityForFront(slot) {
275
218
  * Release the slot lock on graceful shutdown. A lock held by another PID (taken over after this process crashed and restarted) is left alone.
276
219
  */
277
220
  export function releaseIdentityLock(slot) {
278
- const { lockFile } = slotPaths(slot);
279
- if (readLockPid(lockFile) === process.pid) {
280
- fs.rmSync(lockFile, { force: true });
281
- }
221
+ releaseLockFile(slotPaths(slot).lockFile);
282
222
  }
283
223
  /** Reads the slot's raw stored identity record, or undefined if the file is missing or unparseable. Used by the room-token functions below to read-modify-write only the roomTokens field, leaving the persisted key material exactly as it is. */
284
224
  function readStoredIdentity(identityFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"identity-store.js","sourceRoot":"","sources":["../../src/core/identity-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-store.js","sourceRoot":"","sources":["../../src/core/identity-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Which grouping issuer each known device belongs to, for one kind of issuer: the machine (agent-comms#343, list_agents' machine-grouped output) or the user principal (agent-comms#266). This device's own issuer is known directly; every other device's is read from the proof of that kind in its gossiped agent/self advert and identified cryptographically (membership-proof.ts's identifyMembershipProofIssuer), so a device is placed under an issuer only when that issuer's key signed a current proof for it. A device with no such proof (a hidden agent, which sends no agent/self advert, or a bridge that predates the proof) has no issuer here.
3
+ *
4
+ * The same pass reads each issuer's self display name claim (agent-comms#345, agent-comms#359) from the adverts of the devices it vouches for, and keeps a name only when the claim is signed by that very issuer's key: the issuer is authentic, the content is its own choice.
5
+ *
6
+ * Grouping is display, not trust: a proof names who vouches for a device id, not that the device gossiping it is that device, so nothing here is used to authorise anything. Identifying a proof is cryptography, so verdicts are remembered per proof text until the proof lapses, and the cache is bounded. For the same reason a failure to identify one proof is reported and leaves that device unplaced rather than failing the listing it feeds.
7
+ */
8
+ import { type MembershipProofField } from "./gossip-directory.js";
9
+ import type { IdentifiedMembershipProof } from "./membership-proof.js";
10
+ import type { NameClaimVerdict } from "./name-claim.js";
11
+ export interface IssuerGroupingDeps {
12
+ /** Which agent/self field carries the proofs of the issuer kind this grouping places devices under. */
13
+ field: MembershipProofField;
14
+ /** The name claim a peer gossiped for this kind of issuer, read from its advert. */
15
+ readNameClaim: (advert: Readonly<Record<string, unknown>>) => string | undefined;
16
+ /** Every device this side has heard gossip from, with its latest advert. */
17
+ listKnownDevices: () => readonly {
18
+ deviceId: string;
19
+ advert: Readonly<Record<string, unknown>>;
20
+ }[];
21
+ /** Identifies which issuer a proof shows vouching for a device (MembershipProofs.identify). Called only once getMachineId answers, so the store's identity is attached. */
22
+ identify: (claim: Readonly<{
23
+ proof: string;
24
+ deviceHex: string;
25
+ }>) => Promise<IdentifiedMembershipProof>;
26
+ /** This device's own id (hex). */
27
+ getPeerId: () => string;
28
+ /** This device's own issuer's id (hex), undefined before the store's identity is attached. */
29
+ getOwnIssuerId: () => string | undefined;
30
+ /** Where a proof that could not be identified at all (identify rejected) is reported. */
31
+ onError: (error: Error) => void;
32
+ /** Verifies a gossiped name claim about subject (name-claim.ts's verifyNameClaim, as this node sees it). */
33
+ verifyName: (claim: Readonly<{
34
+ claim: string;
35
+ subject: string;
36
+ }>) => Promise<NameClaimVerdict>;
37
+ /** This device's own issuer's name, read locally. */
38
+ getOwnName: () => string | undefined;
39
+ }
40
+ export declare class IssuerGrouping {
41
+ private readonly deps;
42
+ private readonly verdicts;
43
+ private readonly names;
44
+ constructor(deps: Readonly<IssuerGroupingDeps>);
45
+ /** The issuer (hex) of each device this side can place under one, keyed by device id: this device's own, and every gossiped device with a current, valid proof of this kind. */
46
+ issuersByDevice(): Promise<Map<string, string>>;
47
+ /** The self display name of each issuer this side can place a device under, keyed by issuer id: this device's own from its file, every other one from a claim its own key signed, gossiped by a device it vouches for. */
48
+ issuerNames(): Promise<Map<string, string>>;
49
+ private nameFor;
50
+ private issuerFor;
51
+ }
52
+ //# sourceMappingURL=issuer-grouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issuer-grouping.d.ts","sourceRoot":"","sources":["../../src/core/issuer-grouping.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,MAAM,WAAW,kBAAkB;IACjC,uGAAuG;IACvG,KAAK,EAAE,oBAAoB,CAAC;IAC5B,oFAAoF;IACpF,aAAa,EAAE,CACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACtC,MAAM,GAAG,SAAS,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,SAAS;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC3C,EAAE,CAAC;IACJ,2KAA2K;IAC3K,QAAQ,EAAE,CACR,KAAK,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,KAClD,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,kCAAkC;IAClC,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzC,yFAAyF;IACzF,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,4GAA4G;IAC5G,UAAU,EAAE,CACV,KAAK,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,KAChD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACtC;AAgBD,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;gBAE1B,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IAE/D,gLAAgL;IAC1K,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBrD,0NAA0N;IACpN,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAiBnC,OAAO;YAmBP,SAAS;CAgCxB"}
@@ -1,58 +1,58 @@
1
1
  /**
2
- * Which machine each listed agent runs on (agent-comms#343), for list_agents' machine-grouped output. This device's own machine is known directly; every other device's is read from the machine proof in its gossiped agent/self advert and identified cryptographically (membership-proof.ts's identifyMembershipProofIssuer), so a device is grouped under a machine only when that machine's key signed a current proof for it. A device with no such proof (a hidden agent, which sends no agent/self advert, or a bridge that predates machine proofs) has no machine here.
2
+ * Which grouping issuer each known device belongs to, for one kind of issuer: the machine (agent-comms#343, list_agents' machine-grouped output) or the user principal (agent-comms#266). This device's own issuer is known directly; every other device's is read from the proof of that kind in its gossiped agent/self advert and identified cryptographically (membership-proof.ts's identifyMembershipProofIssuer), so a device is placed under an issuer only when that issuer's key signed a current proof for it. A device with no such proof (a hidden agent, which sends no agent/self advert, or a bridge that predates the proof) has no issuer here.
3
3
  *
4
- * The same pass reads each machine's self display name claim (agent-comms#345) from the adverts of the devices it vouches for, and keeps a name only when the claim is signed by that very machine's key: the issuer is authentic, the content is the machine's own choice.
4
+ * The same pass reads each issuer's self display name claim (agent-comms#345, agent-comms#359) from the adverts of the devices it vouches for, and keeps a name only when the claim is signed by that very issuer's key: the issuer is authentic, the content is its own choice.
5
5
  *
6
6
  * Grouping is display, not trust: a proof names who vouches for a device id, not that the device gossiping it is that device, so nothing here is used to authorise anything. Identifying a proof is cryptography, so verdicts are remembered per proof text until the proof lapses, and the cache is bounded. For the same reason a failure to identify one proof is reported and leaves that device unplaced rather than failing the listing it feeds.
7
7
  */
8
- import { readMachineNameClaim, readMembershipProof, } from "./gossip-directory.js";
8
+ import { readMembershipProof, } from "./gossip-directory.js";
9
9
  /** The most proofs, and separately the most name claims, whose verdict is remembered. */
10
10
  const VERDICT_CACHE_LIMIT = 1024;
11
- export class MachineGrouping {
11
+ export class IssuerGrouping {
12
12
  deps;
13
13
  verdicts = new Map();
14
14
  names = new Map();
15
15
  constructor(deps) {
16
16
  this.deps = deps;
17
17
  }
18
- /** The machine (hex) of each device this side can place on one, keyed by device id: this device's own, and every gossiped device with a current, valid machine proof. */
19
- async machinesByDevice() {
20
- const machines = new Map();
21
- const own = this.deps.getMachineId();
22
- // Without an identity attached there is no clock or revocation view to identify a proof against, and no own machine either.
18
+ /** The issuer (hex) of each device this side can place under one, keyed by device id: this device's own, and every gossiped device with a current, valid proof of this kind. */
19
+ async issuersByDevice() {
20
+ const issuers = new Map();
21
+ const own = this.deps.getOwnIssuerId();
22
+ // Without an identity attached there is no clock or revocation view to identify a proof against, and no own issuer either.
23
23
  if (own === undefined)
24
- return machines;
25
- machines.set(this.deps.getPeerId(), own);
24
+ return issuers;
25
+ issuers.set(this.deps.getPeerId(), own);
26
26
  for (const { deviceId, advert } of this.deps.listKnownDevices()) {
27
- if (machines.has(deviceId))
27
+ if (issuers.has(deviceId))
28
28
  continue;
29
- const proof = readMembershipProof(advert, "machine");
29
+ const proof = readMembershipProof(advert, this.deps.field);
30
30
  if (proof === undefined)
31
31
  continue;
32
- const machine = await this.machineFor(proof, deviceId);
33
- if (machine !== undefined)
34
- machines.set(deviceId, machine);
32
+ const issuer = await this.issuerFor(proof, deviceId);
33
+ if (issuer !== undefined)
34
+ issuers.set(deviceId, issuer);
35
35
  }
36
- return machines;
36
+ return issuers;
37
37
  }
38
- /** The self display name of each machine this side can place a device on, keyed by machine id: this host's own from its file, every other one from a claim its own key signed, gossiped by a device it vouches for. */
39
- async machineNames() {
38
+ /** The self display name of each issuer this side can place a device under, keyed by issuer id: this device's own from its file, every other one from a claim its own key signed, gossiped by a device it vouches for. */
39
+ async issuerNames() {
40
40
  const names = new Map();
41
- const machines = await this.machinesByDevice();
42
- const own = this.deps.getMachineId();
43
- const ownName = this.deps.getOwnMachineName();
41
+ const issuers = await this.issuersByDevice();
42
+ const own = this.deps.getOwnIssuerId();
43
+ const ownName = this.deps.getOwnName();
44
44
  if (own !== undefined && ownName !== undefined)
45
45
  names.set(own, ownName);
46
46
  for (const { deviceId, advert } of this.deps.listKnownDevices()) {
47
- const machine = machines.get(deviceId);
48
- if (machine === undefined || names.has(machine))
47
+ const issuer = issuers.get(deviceId);
48
+ if (issuer === undefined || names.has(issuer))
49
49
  continue;
50
- const claim = readMachineNameClaim(advert);
50
+ const claim = this.deps.readNameClaim(advert);
51
51
  if (claim === undefined)
52
52
  continue;
53
- const name = await this.nameFor(claim, machine);
53
+ const name = await this.nameFor(claim, issuer);
54
54
  if (name !== undefined)
55
- names.set(machine, name);
55
+ names.set(issuer, name);
56
56
  }
57
57
  return names;
58
58
  }
@@ -67,10 +67,10 @@ export class MachineGrouping {
67
67
  : { subject, name: undefined, until: Number.POSITIVE_INFINITY });
68
68
  return verdict.ok ? verdict.name : undefined;
69
69
  }
70
- async machineFor(proof, deviceHex) {
70
+ async issuerFor(proof, deviceHex) {
71
71
  const cached = this.verdicts.get(proof);
72
72
  if (cached?.deviceHex === deviceHex && cached.until > Date.now()) {
73
- return cached.machine;
73
+ return cached.issuer;
74
74
  }
75
75
  let verdict;
76
76
  try {
@@ -78,14 +78,14 @@ export class MachineGrouping {
78
78
  }
79
79
  catch (err) {
80
80
  // Not remembered: the failure is in this side's own view (a revocation view that threw, say), not a verdict on the proof, so the next listing tries again.
81
- this.deps.onError(new Error(`could not identify the machine proof of ${deviceHex}`, {
81
+ this.deps.onError(new Error(`could not identify the ${this.deps.field} proof of ${deviceHex}`, {
82
82
  cause: err,
83
83
  }));
84
84
  return undefined;
85
85
  }
86
86
  remember(this.verdicts, proof, verdict.ok
87
- ? { deviceHex, machine: verdict.issuerHex, until: verdict.expires }
88
- : { deviceHex, machine: undefined, until: Number.POSITIVE_INFINITY });
87
+ ? { deviceHex, issuer: verdict.issuerHex, until: verdict.expires }
88
+ : { deviceHex, issuer: undefined, until: Number.POSITIVE_INFINITY });
89
89
  return verdict.ok ? verdict.issuerHex : undefined;
90
90
  }
91
91
  }
@@ -99,4 +99,4 @@ function remember(cache, key, verdict) {
99
99
  cache.delete(oldest.value);
100
100
  }
101
101
  }
102
- //# sourceMappingURL=machine-grouping.js.map
102
+ //# sourceMappingURL=issuer-grouping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issuer-grouping.js","sourceRoot":"","sources":["../../src/core/issuer-grouping.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export declare function isStoredIssuerKey(value: unknown): value is StoredIssuer
18
18
  export declare function readIssuerRecord<T>(file: string, guard: (value: unknown) => value is T): T | undefined;
19
19
  /** Replaces the file with record in full, owner-only. Callers read the current record first and spread it, so no field another writer owns is lost. */
20
20
  export declare function writeIssuerRecord(file: string, record: Readonly<StoredIssuerKey>): void;
21
+ /** The identity a stored key record describes: the key, its certificate, and the fingerprint and device-id derived from them. */
22
+ export declare function issuerPeerIdentity(stored: Readonly<StoredIssuerKey>): PeerIdentity;
23
+ /** The key record that persists identity, with a fresh expiry stamp. */
24
+ export declare function issuerKeyRecord(identity: Readonly<PeerIdentity>): StoredIssuerKey;
21
25
  /**
22
26
  * Loads the issuer identity persisted at file, creating it on first use. A record nearing certificate expiry is renewed in place and a missing file is created exclusively. guard is the owning module's check of its full record shape, the same one its own reads use, so a record that loads here is one every later read-modify-write of that module accepts too. A file that exists but fails guard is an error, never regenerated.
23
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"issuer-identity-file.d.ts","sourceRoot":"","sources":["../../src/core/issuer-identity-file.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAWlD,iIAAiI;AACjI,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAa1E;AAiBD,0QAA0Q;AAC1Q,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GACpC,CAAC,GAAG,SAAS,CAGf;AA6BD,uJAAuJ;AACvJ,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAEN;AAwDD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,eAAe,GAClD,YAAY,CASd"}
1
+ {"version":3,"file":"issuer-identity-file.d.ts","sourceRoot":"","sources":["../../src/core/issuer-identity-file.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAWlD,iIAAiI;AACjI,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAa1E;AAiBD,0QAA0Q;AAC1Q,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GACpC,CAAC,GAAG,SAAS,CAGf;AA6BD,uJAAuJ;AACvJ,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAEN;AAED,iIAAiI;AACjI,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,YAAY,CAOd;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,eAAe,CAMjB;AAuCD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,eAAe,GAClD,YAAY,CASd"}