agent-comms 3.6.0 → 3.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 (92) 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/core/bridge-mesh.d.ts +4 -2
  5. package/dist/core/bridge-mesh.d.ts.map +1 -1
  6. package/dist/core/bridge-mesh.js +13 -4
  7. package/dist/core/bridge-mesh.js.map +1 -1
  8. package/dist/core/capability-bubble-up.d.ts +69 -0
  9. package/dist/core/capability-bubble-up.d.ts.map +1 -0
  10. package/dist/core/capability-bubble-up.js +138 -0
  11. package/dist/core/capability-bubble-up.js.map +1 -0
  12. package/dist/core/delegation-policy.d.ts +20 -0
  13. package/dist/core/delegation-policy.d.ts.map +1 -0
  14. package/dist/core/delegation-policy.js +10 -0
  15. package/dist/core/delegation-policy.js.map +1 -0
  16. package/dist/core/device-membership-verification.d.ts +28 -0
  17. package/dist/core/device-membership-verification.d.ts.map +1 -0
  18. package/dist/core/device-membership-verification.js +43 -0
  19. package/dist/core/device-membership-verification.js.map +1 -0
  20. package/dist/core/device-membership.d.ts +42 -0
  21. package/dist/core/device-membership.d.ts.map +1 -0
  22. package/dist/core/device-membership.js +53 -0
  23. package/dist/core/device-membership.js.map +1 -0
  24. package/dist/core/identity-store.d.ts +10 -0
  25. package/dist/core/identity-store.d.ts.map +1 -1
  26. package/dist/core/identity-store.js +44 -0
  27. package/dist/core/identity-store.js.map +1 -1
  28. package/dist/core/package-version.d.ts +6 -0
  29. package/dist/core/package-version.d.ts.map +1 -0
  30. package/dist/core/package-version.js +28 -0
  31. package/dist/core/package-version.js.map +1 -0
  32. package/dist/core/room-lifecycle.d.ts.map +1 -1
  33. package/dist/core/room-lifecycle.js +5 -4
  34. package/dist/core/room-lifecycle.js.map +1 -1
  35. package/dist/core/room-protocol.d.ts.map +1 -1
  36. package/dist/core/room-protocol.js +4 -3
  37. package/dist/core/room-protocol.js.map +1 -1
  38. package/dist/core/room-token-verification.d.ts +3 -0
  39. package/dist/core/room-token-verification.d.ts.map +1 -1
  40. package/dist/core/room-token-verification.js +4 -0
  41. package/dist/core/room-token-verification.js.map +1 -1
  42. package/dist/core/test/package-version.unit.test.d.ts +5 -0
  43. package/dist/core/test/package-version.unit.test.d.ts.map +1 -0
  44. package/dist/core/test/package-version.unit.test.js +30 -0
  45. package/dist/core/test/package-version.unit.test.js.map +1 -0
  46. package/dist/core/test/version-check.unit.test.d.ts +5 -0
  47. package/dist/core/test/version-check.unit.test.d.ts.map +1 -0
  48. package/dist/core/test/version-check.unit.test.js +176 -0
  49. package/dist/core/test/version-check.unit.test.js.map +1 -0
  50. package/dist/core/tool.d.ts +7 -1
  51. package/dist/core/tool.d.ts.map +1 -1
  52. package/dist/core/tool.js +34 -11
  53. package/dist/core/tool.js.map +1 -1
  54. package/dist/core/user-identity.d.ts +10 -0
  55. package/dist/core/user-identity.d.ts.map +1 -1
  56. package/dist/core/user-identity.js +60 -8
  57. package/dist/core/user-identity.js.map +1 -1
  58. package/dist/core/version-check.d.ts +36 -0
  59. package/dist/core/version-check.d.ts.map +1 -0
  60. package/dist/core/version-check.js +118 -0
  61. package/dist/core/version-check.js.map +1 -0
  62. package/dist/test/bridge-mesh-version-drift.test.d.ts +7 -0
  63. package/dist/test/bridge-mesh-version-drift.test.d.ts.map +1 -0
  64. package/dist/test/bridge-mesh-version-drift.test.js +98 -0
  65. package/dist/test/bridge-mesh-version-drift.test.js.map +1 -0
  66. package/dist/test/capability-bubble-up.test.d.ts +2 -0
  67. package/dist/test/capability-bubble-up.test.d.ts.map +1 -0
  68. package/dist/test/capability-bubble-up.test.js +350 -0
  69. package/dist/test/capability-bubble-up.test.js.map +1 -0
  70. package/dist/test/delegation-policy.test.d.ts +5 -0
  71. package/dist/test/delegation-policy.test.d.ts.map +1 -0
  72. package/dist/test/delegation-policy.test.js +52 -0
  73. package/dist/test/delegation-policy.test.js.map +1 -0
  74. package/dist/test/device-membership-verification.test.d.ts +2 -0
  75. package/dist/test/device-membership-verification.test.d.ts.map +1 -0
  76. package/dist/test/device-membership-verification.test.js +214 -0
  77. package/dist/test/device-membership-verification.test.js.map +1 -0
  78. package/dist/test/device-membership.test.d.ts +2 -0
  79. package/dist/test/device-membership.test.d.ts.map +1 -0
  80. package/dist/test/device-membership.test.js +201 -0
  81. package/dist/test/device-membership.test.js.map +1 -0
  82. package/dist/test/identity-store.test.js +76 -1
  83. package/dist/test/identity-store.test.js.map +1 -1
  84. package/dist/test/room-lifecycle.test.js +24 -1
  85. package/dist/test/room-lifecycle.test.js.map +1 -1
  86. package/dist/test/tool-version-reporting.test.d.ts +5 -0
  87. package/dist/test/tool-version-reporting.test.d.ts.map +1 -0
  88. package/dist/test/tool-version-reporting.test.js +67 -0
  89. package/dist/test/tool-version-reporting.test.js.map +1 -0
  90. package/dist/test/user-identity.test.js +54 -1
  91. package/dist/test/user-identity.test.js.map +1 -1
  92. package/package.json +1 -1
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Unit tests for version-check.ts — isNewerVersion, fetchLatestPublishedVersion, VersionDriftChecker.
3
+ */
4
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
5
+ import { isNewerVersion, fetchLatestPublishedVersion, VersionDriftChecker, DEFAULT_CHECK_INTERVAL_MS, } from "../version-check.js";
6
+ const TEST_INTERVAL_MS = 1000;
7
+ const MS_PER_SECOND = 1000;
8
+ const SECONDS_PER_MINUTE = 60;
9
+ const MINUTES_PER_HOUR = 60;
10
+ const ONE_HOUR_MS = MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;
11
+ const REGISTRY_DOWN_RETRY_CALL_COUNT = 1;
12
+ const STOPPED_CHECKER_ADVANCE_INTERVAL_COUNT = 5;
13
+ const STOPPED_CHECKER_ADVANCE_MS = TEST_INTERVAL_MS * STOPPED_CHECKER_ADVANCE_INTERVAL_COUNT;
14
+ const THIRD_INTERVAL_CHECK_CALL_COUNT = 3;
15
+ describe("isNewerVersion", () => {
16
+ it("is true when the latest major is greater", () => {
17
+ expect(isNewerVersion("1.2.3", "2.0.0")).toBe(true);
18
+ });
19
+ it("is true when major is equal but the latest minor is greater", () => {
20
+ expect(isNewerVersion("1.2.3", "1.3.0")).toBe(true);
21
+ });
22
+ it("is true when major and minor are equal but the latest patch is greater", () => {
23
+ expect(isNewerVersion("1.2.3", "1.2.4")).toBe(true);
24
+ });
25
+ it("is false when the versions are identical", () => {
26
+ expect(isNewerVersion("1.2.3", "1.2.3")).toBe(false);
27
+ });
28
+ it("is false when the current version is already ahead", () => {
29
+ expect(isNewerVersion("2.0.0", "1.9.9")).toBe(false);
30
+ });
31
+ it("is false when either version does not parse as a plain x.y.z version", () => {
32
+ expect(isNewerVersion("1.2.3", "not-a-version")).toBe(false);
33
+ expect(isNewerVersion("not-a-version", "1.2.3")).toBe(false);
34
+ expect(isNewerVersion("1.2", "1.3.0")).toBe(false);
35
+ });
36
+ it("compares only the numeric core, ignoring a prerelease or build suffix", () => {
37
+ expect(isNewerVersion("1.2.3", "1.2.4-beta.1")).toBe(true);
38
+ expect(isNewerVersion("1.2.3+build5", "1.2.4")).toBe(true);
39
+ });
40
+ });
41
+ describe("fetchLatestPublishedVersion", () => {
42
+ it("returns the version from a successful registry response", async () => {
43
+ const fakeFetch = vi.fn(async () => Promise.resolve(new Response(JSON.stringify({ version: "9.9.9" }), { status: 200 })));
44
+ const version = await fetchLatestPublishedVersion("https://example.invalid/agent-comms/latest", fakeFetch);
45
+ expect(version).toBe("9.9.9");
46
+ });
47
+ it("fails soft (returns undefined) when the fetch rejects, e.g. offline", async () => {
48
+ const fakeFetch = vi.fn(async () => Promise.reject(new Error("network unreachable")));
49
+ const version = await fetchLatestPublishedVersion("https://example.invalid/agent-comms/latest", fakeFetch);
50
+ expect(version).toBeUndefined();
51
+ });
52
+ it("fails soft when the registry responds with a non-2xx status", async () => {
53
+ const fakeFetch = vi.fn(async () => Promise.resolve(new Response("not found", { status: 404 })));
54
+ const version = await fetchLatestPublishedVersion("https://example.invalid/agent-comms/latest", fakeFetch);
55
+ expect(version).toBeUndefined();
56
+ });
57
+ it("fails soft when the response body has no version field", async () => {
58
+ const fakeFetch = vi.fn(async () => Promise.resolve(new Response(JSON.stringify({ notVersion: "x" }), { status: 200 })));
59
+ const version = await fetchLatestPublishedVersion("https://example.invalid/agent-comms/latest", fakeFetch);
60
+ expect(version).toBeUndefined();
61
+ });
62
+ it("fails soft when the response body is not valid JSON", async () => {
63
+ const fakeFetch = vi.fn(async () => Promise.resolve(new Response("not json", { status: 200 })));
64
+ const version = await fetchLatestPublishedVersion("https://example.invalid/agent-comms/latest", fakeFetch);
65
+ expect(version).toBeUndefined();
66
+ });
67
+ });
68
+ describe("VersionDriftChecker", () => {
69
+ beforeEach(() => {
70
+ vi.useFakeTimers();
71
+ });
72
+ afterEach(() => {
73
+ vi.useRealTimers();
74
+ });
75
+ it("has no known newer version before start() has run", () => {
76
+ const checker = new VersionDriftChecker({
77
+ currentVersion: "1.0.0",
78
+ fetchLatestVersion: async () => Promise.resolve("2.0.0"),
79
+ });
80
+ expect(checker.getNewerVersionIfAny()).toBeUndefined();
81
+ });
82
+ it("surfaces a newer version discovered by the immediate start() check", async () => {
83
+ const checker = new VersionDriftChecker({
84
+ currentVersion: "1.0.0",
85
+ fetchLatestVersion: async () => Promise.resolve("1.1.0"),
86
+ });
87
+ checker.start();
88
+ await vi.waitFor(() => {
89
+ expect(checker.getNewerVersionIfAny()).toBe("1.1.0");
90
+ });
91
+ checker.stop();
92
+ });
93
+ it("reports no drift when the fetched latest is not newer than the running version", async () => {
94
+ const checker = new VersionDriftChecker({
95
+ currentVersion: "2.0.0",
96
+ fetchLatestVersion: async () => Promise.resolve("1.9.0"),
97
+ });
98
+ checker.start();
99
+ await vi.waitFor(() => {
100
+ expect(checker.getNewerVersionIfAny()).toBeUndefined();
101
+ });
102
+ checker.stop();
103
+ });
104
+ it("keeps the previously cached result when a later check fails", async () => {
105
+ let callCount = 0;
106
+ const checker = new VersionDriftChecker({
107
+ currentVersion: "1.0.0",
108
+ intervalMs: TEST_INTERVAL_MS,
109
+ fetchLatestVersion: async () => {
110
+ callCount += 1;
111
+ if (callCount === REGISTRY_DOWN_RETRY_CALL_COUNT)
112
+ return Promise.resolve("1.1.0");
113
+ return Promise.reject(new Error("registry down"));
114
+ },
115
+ });
116
+ checker.start();
117
+ await vi.waitFor(() => {
118
+ expect(checker.getNewerVersionIfAny()).toBe("1.1.0");
119
+ });
120
+ await vi.advanceTimersByTimeAsync(TEST_INTERVAL_MS);
121
+ expect(checker.getNewerVersionIfAny()).toBe("1.1.0");
122
+ checker.stop();
123
+ });
124
+ it("re-checks on the configured interval", async () => {
125
+ const fetchLatestVersion = vi.fn(async () => Promise.resolve("1.0.0"));
126
+ const checker = new VersionDriftChecker({
127
+ currentVersion: "1.0.0",
128
+ intervalMs: TEST_INTERVAL_MS,
129
+ fetchLatestVersion,
130
+ });
131
+ checker.start();
132
+ await vi.waitFor(() => {
133
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(1);
134
+ });
135
+ await vi.advanceTimersByTimeAsync(TEST_INTERVAL_MS);
136
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(2);
137
+ await vi.advanceTimersByTimeAsync(TEST_INTERVAL_MS);
138
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(THIRD_INTERVAL_CHECK_CALL_COUNT);
139
+ checker.stop();
140
+ });
141
+ it("stop() prevents further checks", async () => {
142
+ const fetchLatestVersion = vi.fn(async () => Promise.resolve("1.0.0"));
143
+ const checker = new VersionDriftChecker({
144
+ currentVersion: "1.0.0",
145
+ intervalMs: TEST_INTERVAL_MS,
146
+ fetchLatestVersion,
147
+ });
148
+ checker.start();
149
+ await vi.waitFor(() => {
150
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(1);
151
+ });
152
+ checker.stop();
153
+ await vi.advanceTimersByTimeAsync(STOPPED_CHECKER_ADVANCE_MS);
154
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(1);
155
+ });
156
+ it("start() is a no-op when already started", async () => {
157
+ const fetchLatestVersion = vi.fn(async () => Promise.resolve("1.0.0"));
158
+ const checker = new VersionDriftChecker({
159
+ currentVersion: "1.0.0",
160
+ intervalMs: TEST_INTERVAL_MS,
161
+ fetchLatestVersion,
162
+ });
163
+ checker.start();
164
+ checker.start();
165
+ await vi.waitFor(() => {
166
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(1);
167
+ });
168
+ await vi.advanceTimersByTimeAsync(TEST_INTERVAL_MS);
169
+ expect(fetchLatestVersion).toHaveBeenCalledTimes(2);
170
+ checker.stop();
171
+ });
172
+ it("defaults to a multi-hour interval when none is given", () => {
173
+ expect(DEFAULT_CHECK_INTERVAL_MS).toBeGreaterThanOrEqual(ONE_HOUR_MS);
174
+ });
175
+ });
176
+ //# sourceMappingURL=version-check.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.unit.test.js","sourceRoot":"","sources":["../../../src/core/test/version-check.unit.test.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,13 @@ export interface MeshOnlyFeatures {
51
51
  export declare class CommsTool {
52
52
  private readonly store;
53
53
  private readonly discovery?;
54
- constructor(store: CommsStore & MeshOnlyFeatures, discovery?: DiscoveryManager | undefined);
54
+ /** Returns the newest npm release known to be available, or undefined when none is known (no checker wired up, no successful check yet, or this bridge is already current). Wired at bridge construction time by a VersionDriftChecker (see version-check.ts) -- optional so every existing call site, and every test that has no interest in drift reporting, is unaffected. */
55
+ private readonly getNewerVersionIfAny?;
56
+ constructor(store: CommsStore & MeshOnlyFeatures, discovery?: DiscoveryManager | undefined,
57
+ /** Returns the newest npm release known to be available, or undefined when none is known (no checker wired up, no successful check yet, or this bridge is already current). Wired at bridge construction time by a VersionDriftChecker (see version-check.ts) -- optional so every existing call site, and every test that has no interest in drift reporting, is unaffected. */
58
+ getNewerVersionIfAny?: (() => string | undefined) | undefined);
59
+ /** The "Update available: ..." line appended to whoami/update output when a newer release is known, or undefined when there's nothing to report. */
60
+ private formatUpdateAvailableLine;
55
61
  handle(ctx: Readonly<CommsContext>, action: CommsAction): Promise<CommsResult>;
56
62
  private register;
57
63
  private update;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
package/dist/core/tool.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * 3. Return the result string to the LLM
8
8
  */
9
9
  import { CommsError } from "./store.js";
10
+ import { getOwnPackageVersion } from "./package-version.js";
10
11
  /** Table column widths for the plain-text listing helpers below, chosen to line up with the existing aligned output. */
11
12
  const ROOM_TYPE_COLUMN_WIDTH = 7;
12
13
  const AGENT_NAME_COLUMN_WIDTH = 25;
@@ -59,9 +60,20 @@ function trySyncAction(verb, action) {
59
60
  export class CommsTool {
60
61
  store;
61
62
  discovery;
62
- constructor(store, discovery) {
63
+ getNewerVersionIfAny;
64
+ constructor(store, discovery,
65
+ /** Returns the newest npm release known to be available, or undefined when none is known (no checker wired up, no successful check yet, or this bridge is already current). Wired at bridge construction time by a VersionDriftChecker (see version-check.ts) -- optional so every existing call site, and every test that has no interest in drift reporting, is unaffected. */
66
+ getNewerVersionIfAny) {
63
67
  this.store = store;
64
68
  this.discovery = discovery;
69
+ this.getNewerVersionIfAny = getNewerVersionIfAny;
70
+ }
71
+ /** The "Update available: ..." line appended to whoami/update output when a newer release is known, or undefined when there's nothing to report. */
72
+ formatUpdateAvailableLine() {
73
+ const newerVersion = this.getNewerVersionIfAny?.();
74
+ if (newerVersion === undefined)
75
+ return undefined;
76
+ return `Update available: ${newerVersion} (running ${getOwnPackageVersion()})`;
65
77
  }
66
78
  async handle(ctx, action) {
67
79
  try {
@@ -173,8 +185,14 @@ export class CommsTool {
173
185
  if (action.tags !== undefined)
174
186
  patch.tags = action.tags;
175
187
  const agent = await this.store.updateAgent(ctx.agentId, patch);
188
+ const lines = [
189
+ `Updated: name=${agent.name}, visibility=${agent.visibility}, status=${agent.status}, version=${getOwnPackageVersion()}`,
190
+ ];
191
+ const updateAvailable = this.formatUpdateAvailableLine();
192
+ if (updateAvailable !== undefined)
193
+ lines.push(updateAvailable);
176
194
  return {
177
- content: `Updated: name=${agent.name}, visibility=${agent.visibility}, status=${agent.status}`,
195
+ content: lines.join("\n"),
178
196
  isError: false,
179
197
  };
180
198
  }
@@ -182,16 +200,21 @@ export class CommsTool {
182
200
  const agent = await this.store.getAgent(ctx.agentId);
183
201
  if (!agent)
184
202
  return { content: "Not registered.", isError: true };
203
+ const lines = [
204
+ `ID: ${agent.id}`,
205
+ `Name: ${agent.name}`,
206
+ `Harness: ${agent.harness}`,
207
+ `Visibility: ${agent.visibility}`,
208
+ `Status: ${agent.status}`,
209
+ `Version: ${getOwnPackageVersion()}`,
210
+ `Tags: ${agent.tags.join(", ") || "(none)"}`,
211
+ `Rooms: ${agent.subscribedRooms.join(", ") || "(none)"}`,
212
+ ];
213
+ const updateAvailable = this.formatUpdateAvailableLine();
214
+ if (updateAvailable !== undefined)
215
+ lines.push(updateAvailable);
185
216
  return {
186
- content: [
187
- `ID: ${agent.id}`,
188
- `Name: ${agent.name}`,
189
- `Harness: ${agent.harness}`,
190
- `Visibility: ${agent.visibility}`,
191
- `Status: ${agent.status}`,
192
- `Tags: ${agent.tags.join(", ") || "(none)"}`,
193
- `Rooms: ${agent.subscribedRooms.join(", ") || "(none)"}`,
194
- ].join("\n"),
217
+ content: lines.join("\n"),
195
218
  isError: false,
196
219
  };
197
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,14 @@ export interface UserIdentityOptions {
14
14
  * Creation races against a concurrent caller (another bridge process starting at the same moment) by attempting an exclusive ("wx") file create: whichever process's create wins persists its own freshly generated identity, and the loser detects EEXIST and re-reads the winner's file instead of overwriting it. A corrupt file skips the exclusive path entirely -- there is no genuine key material in it worth protecting from a race, so it is overwritten directly, the same treatment identity-store.ts's own loadStoredIdentity/createIdentity pairing gives a corrupt slot file.
15
15
  */
16
16
  export declare function loadOrCreateUserIdentity(options?: Readonly<UserIdentityOptions>): PeerIdentity;
17
+ /**
18
+ * The token-id this principal itself minted for the given device's own group:member grant (agent-comms#161), or undefined if none is on record (this principal has never admitted this device, or the record predates this bookkeeping). The principal consults this to revoke a specific device's own membership later -- a token-id, unlike the token itself, is never presented on the wire and so is never obtainable except from this principal's own memory of having minted it. Mirrors identity-store.ts's own loadIssuedRoomGrant.
19
+ */
20
+ export declare function loadIssuedDeviceGrant(options: Readonly<UserIdentityOptions> | undefined, deviceHex: string): Uint8Array<ArrayBuffer> | undefined;
21
+ /**
22
+ * Records the token-id of a group:member grant this principal has just minted for deviceHex, surviving a restart the same way the principal's own key material does. Overwrites any earlier record for the same device -- a fresh admission always supersedes the grant it replaces, so only the current token-id is ever worth revoking. Mirrors identity-store.ts's own saveIssuedRoomGrant.
23
+ */
24
+ export declare function saveIssuedDeviceGrant(options: Readonly<UserIdentityOptions> | undefined, deviceHex: string, tokenId: Uint8Array): void;
25
+ /** Removes the recorded token-id for one device's own grant, if any -- called once a removal has revoked it, so a later re-admission mints and records a genuinely fresh one rather than leaving a stale entry alongside it. A no-op if none was recorded. Mirrors identity-store.ts's own deleteIssuedRoomGrant. */
26
+ export declare function deleteIssuedDeviceGrant(options: Readonly<UserIdentityOptions> | undefined, deviceHex: string): void;
17
27
  //# sourceMappingURL=user-identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-identity.d.ts","sourceRoot":"","sources":["../../src/core/user-identity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,MAAM,WAAW,mBAAmB;IAClC,0IAA0I;IAC1I,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqHD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACtC,YAAY,CAWd"}
1
+ {"version":3,"file":"user-identity.d.ts","sourceRoot":"","sources":["../../src/core/user-identity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,MAAM,WAAW,mBAAmB;IAClC,0IAA0I;IAC1I,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA6ID;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACtC,YAAY,CAWd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAClD,SAAS,EAAE,MAAM,GAChB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAOrC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAClD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,GAClB,IAAI,CAaN;AAED,qTAAqT;AACrT,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAClD,SAAS,EAAE,MAAM,GAChB,IAAI,CAQN"}
@@ -17,9 +17,18 @@ function isStoredUserIdentity(value) {
17
17
  !("certificate" in value) ||
18
18
  !("expiresAt" in value))
19
19
  return false;
20
- return (typeof value.privateKey === "string" &&
21
- typeof value.certificate === "string" &&
22
- typeof value.expiresAt === "string");
20
+ if (typeof value.privateKey !== "string" ||
21
+ typeof value.certificate !== "string" ||
22
+ typeof value.expiresAt !== "string")
23
+ return false;
24
+ if ("issuedDeviceGrants" in value) {
25
+ const { issuedDeviceGrants } = value;
26
+ if (typeof issuedDeviceGrants !== "object" || issuedDeviceGrants === null)
27
+ return false;
28
+ if (!Object.values(issuedDeviceGrants).every((v) => typeof v === "string"))
29
+ return false;
30
+ }
31
+ return true;
23
32
  }
24
33
  /** Narrows a caught value to Node's own errno-carrying Error subtype, so a specific error code (e.g. ENOENT, EEXIST) can be checked without an `as` assertion. */
25
34
  function isErrnoException(value) {
@@ -47,6 +56,17 @@ function persistedRecord(identity) {
47
56
  function serializeRecord(stored) {
48
57
  return `${JSON.stringify(stored, null, 2)}\n`;
49
58
  }
59
+ function writeStoredUserIdentity(file, stored) {
60
+ fs.writeFileSync(file, serializeRecord(stored), {
61
+ encoding: "utf-8",
62
+ mode: 0o600,
63
+ });
64
+ }
65
+ /** Reads this principal's raw stored record, or undefined if the file is missing or unparseable. Used by the issued-device-grant functions below to read-modify-write only the issuedDeviceGrants field, leaving the persisted key material exactly as it is. */
66
+ function readStoredUserIdentity(file) {
67
+ const raw = readRawFile(file);
68
+ return raw === undefined ? undefined : parseStoredUserIdentity(raw);
69
+ }
50
70
  /** Reads the file's raw contents, or undefined if it does not exist yet. Any other filesystem error (permissions, a directory in its place) is surfaced rather than silently treated as "absent", per this codebase's fail-loudly convention. */
51
71
  function readRawFile(file) {
52
72
  try {
@@ -69,7 +89,7 @@ function parseStoredUserIdentity(raw) {
69
89
  return isStoredUserIdentity(parsed) ? parsed : undefined;
70
90
  }
71
91
  /**
72
- * Renews a stored identity nearing certificate expiry by re-certifying its existing key pair (preserving device-id) rather than replacing it -- see identity.ts's own certifyKeyPair doc comment for why generating a fresh key pair here would be wrong. Returns the existing identity unchanged when it is not yet near expiry.
92
+ * Renews a stored identity nearing certificate expiry by re-certifying its existing key pair (preserving device-id) rather than replacing it -- see identity.ts's own certifyKeyPair doc comment for why generating a fresh key pair here would be wrong. Returns the existing identity unchanged when it is not yet near expiry. A plain persistedRecord() write here would silently drop this principal's own issuedDeviceGrants (it always builds a bare privateKey/certificate/expiresAt record with nothing else) -- spreading `stored` first preserves every other field on renewal, the same fix identity-store.ts's own loadStoredIdentity/writeStoredIdentity pairing already applies for roomTokens/issuedGrants.
73
93
  */
74
94
  function renewIfNeeded(file, stored) {
75
95
  const expiresAt = Date.parse(stored.expiresAt);
@@ -77,10 +97,7 @@ function renewIfNeeded(file, stored) {
77
97
  if (!needsRenewal)
78
98
  return toPeerIdentity(stored);
79
99
  const renewed = certifyKeyPair(stored.privateKey);
80
- fs.writeFileSync(file, serializeRecord(persistedRecord(renewed)), {
81
- encoding: "utf-8",
82
- mode: 0o600,
83
- });
100
+ writeStoredUserIdentity(file, { ...stored, ...persistedRecord(renewed) });
84
101
  return renewed;
85
102
  }
86
103
  /**
@@ -122,4 +139,39 @@ export function loadOrCreateUserIdentity(options) {
122
139
  return createUserIdentity(file, false);
123
140
  return renewIfNeeded(file, stored);
124
141
  }
142
+ /**
143
+ * The token-id this principal itself minted for the given device's own group:member grant (agent-comms#161), or undefined if none is on record (this principal has never admitted this device, or the record predates this bookkeeping). The principal consults this to revoke a specific device's own membership later -- a token-id, unlike the token itself, is never presented on the wire and so is never obtainable except from this principal's own memory of having minted it. Mirrors identity-store.ts's own loadIssuedRoomGrant.
144
+ */
145
+ export function loadIssuedDeviceGrant(options, deviceHex) {
146
+ const file = userIdentityFile(options);
147
+ const stored = readStoredUserIdentity(file);
148
+ const encoded = stored?.issuedDeviceGrants?.[deviceHex];
149
+ return encoded === undefined
150
+ ? undefined
151
+ : Uint8Array.from(Buffer.from(encoded, "base64"));
152
+ }
153
+ /**
154
+ * Records the token-id of a group:member grant this principal has just minted for deviceHex, surviving a restart the same way the principal's own key material does. Overwrites any earlier record for the same device -- a fresh admission always supersedes the grant it replaces, so only the current token-id is ever worth revoking. Mirrors identity-store.ts's own saveIssuedRoomGrant.
155
+ */
156
+ export function saveIssuedDeviceGrant(options, deviceHex, tokenId) {
157
+ const file = userIdentityFile(options);
158
+ const stored = readStoredUserIdentity(file);
159
+ if (stored === undefined) {
160
+ throw new Error(`no user identity persisted yet -- call loadOrCreateUserIdentity first (${file})`);
161
+ }
162
+ const issuedDeviceGrants = {
163
+ ...stored.issuedDeviceGrants,
164
+ [deviceHex]: Buffer.from(tokenId).toString("base64"),
165
+ };
166
+ writeStoredUserIdentity(file, { ...stored, issuedDeviceGrants });
167
+ }
168
+ /** Removes the recorded token-id for one device's own grant, if any -- called once a removal has revoked it, so a later re-admission mints and records a genuinely fresh one rather than leaving a stale entry alongside it. A no-op if none was recorded. Mirrors identity-store.ts's own deleteIssuedRoomGrant. */
169
+ export function deleteIssuedDeviceGrant(options, deviceHex) {
170
+ const file = userIdentityFile(options);
171
+ const stored = readStoredUserIdentity(file);
172
+ if (stored?.issuedDeviceGrants === undefined)
173
+ return;
174
+ const issuedDeviceGrants = Object.fromEntries(Object.entries(stored.issuedDeviceGrants).filter(([k]) => k !== deviceHex));
175
+ writeStoredUserIdentity(file, { ...stored, issuedDeviceGrants });
176
+ }
125
177
  //# sourceMappingURL=user-identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-identity.js","sourceRoot":"","sources":["../../src/core/user-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-identity.js","sourceRoot":"","sources":["../../src/core/user-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Detects when a newer agent-comms release exists on npm than the one currently running -- see issue #166. A stale checkout (e.g. a manually pulled git checkout left behind while npm moves on) surfaces its own drift via CommsTool's whoami/update output (see tool.ts) rather than silently splitting mesh generations. Every failure mode (offline, registry down, timeout, malformed response) is swallowed here: a bridge with no network access behaves exactly as if no newer release were known, never as an error.
3
+ */
4
+ /** Minimal shape of a fetch() call, injectable so tests never need a real network round trip or a global fetch stub. */
5
+ export type FetchLike = (input: string, init?: Readonly<RequestInit>) => Promise<Response>;
6
+ /** How often VersionDriftChecker re-checks npm once started. Deliberately slow: this is a background courtesy warning that piggybacks on whoami/update output (see tool.ts), not a thing any caller waits on, so there's no benefit to checking more often than a bridge process is likely to stay running for. */
7
+ export declare const DEFAULT_CHECK_INTERVAL_MS: number;
8
+ /** Fetches the "latest" dist-tag version currently published to npm, or undefined on any failure (offline, timeout, non-2xx, malformed body) -- callers never need their own try/catch around this. */
9
+ export declare function fetchLatestPublishedVersion(registryUrl?: string, fetchImpl?: FetchLike): Promise<string | undefined>;
10
+ /** True when latest is a strictly greater release than current, by major.minor.patch precedence. Returns false for either string that doesn't parse as a plain x.y.z version -- a malformed comparison has no safe "yes, warn" answer. */
11
+ export declare function isNewerVersion(current: string, latest: string): boolean;
12
+ export interface VersionDriftCheckerOptions {
13
+ currentVersion: string;
14
+ intervalMs?: number;
15
+ fetchLatestVersion?: () => Promise<string | undefined>;
16
+ }
17
+ /**
18
+ * Periodically (and once immediately on start()) compares the running version against npm's published "latest" dist-tag, caching the most recent successful lookup so CommsTool's whoami/update output can surface a "newer release available" note without either of them ever waiting on a network call. A failed check leaves the previously cached result untouched -- see this file's own header for why a failure is never surfaced as an error.
19
+ */
20
+ export declare class VersionDriftChecker {
21
+ private readonly currentVersion;
22
+ private readonly intervalMs;
23
+ private readonly fetchLatestVersion;
24
+ private latestKnownVersion;
25
+ private timer;
26
+ constructor(options: Readonly<VersionDriftCheckerOptions>);
27
+ /** Runs one check immediately (fire-and-forget -- start() itself never waits on the network) and schedules a recurring check every intervalMs. The interval is unref'd so it can never keep a bridge process alive on its own. No-op if already started. */
28
+ start(): void;
29
+ /** Stops the recurring check, if running. Safe to call even if start() was never called. */
30
+ stop(): void;
31
+ /** The most recently observed newer release, or undefined when none is known -- either no successful check has completed yet, or the running version is already current (or ahead). */
32
+ getNewerVersionIfAny(): string | undefined;
33
+ /** Runs a single check, tolerating a rejection from a caller-supplied fetchLatestVersion as well as the soft-failure (undefined) contract fetchLatestPublishedVersion's own default already guarantees -- start()'s own fire-and-forget call, and the recurring interval callback, both rely on this never throwing regardless of which fetch implementation is wired in. */
34
+ private check;
35
+ }
36
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wHAAwH;AACxH,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KACzB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAavB,mTAAmT;AACnT,eAAO,MAAM,yBAAyB,QACwC,CAAC;AAc/E,uMAAuM;AACvM,wBAAsB,2BAA2B,CAC/C,WAAW,GAAE,MAAwC,EACrD,SAAS,GAAE,SAAiB,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAqBD,0OAA0O;AAC1O,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CASvE;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IACvE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,KAAK,CAA6C;gBAE9C,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC;IAOzD,4PAA4P;IAC5P,KAAK,IAAI,IAAI;IASb,4FAA4F;IAC5F,IAAI,IAAI,IAAI;IAOZ,uLAAuL;IACvL,oBAAoB,IAAI,MAAM,GAAG,SAAS;IAO1C,6WAA6W;YAC/V,KAAK;CAQpB"}