@dharma-ai-labs/agent-fabric 0.2.108 → 0.2.110

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 (57) hide show
  1. package/README.md +41 -0
  2. package/dist/codexBoundSession.d.ts.map +1 -1
  3. package/dist/codexBoundSession.js +2 -0
  4. package/dist/codexBoundSession.js.map +1 -1
  5. package/dist/codexBoundSession.test.js +509 -492
  6. package/dist/codexBoundSession.test.js.map +1 -1
  7. package/dist/codexInboxSession.d.ts +1 -1
  8. package/dist/cooperativeInboxSession.d.ts +1 -1
  9. package/dist/demoEnrollment.d.ts +2 -1
  10. package/dist/demoEnrollment.d.ts.map +1 -1
  11. package/dist/demoEnrollment.js +99 -21
  12. package/dist/demoEnrollment.js.map +1 -1
  13. package/dist/demoEnrollment.test.js +288 -2
  14. package/dist/demoEnrollment.test.js.map +1 -1
  15. package/dist/demoPackage.js +1 -1
  16. package/dist/demoPackage.js.map +1 -1
  17. package/dist/demoSigningTrust.d.ts +24 -0
  18. package/dist/demoSigningTrust.d.ts.map +1 -0
  19. package/dist/demoSigningTrust.js +326 -0
  20. package/dist/demoSigningTrust.js.map +1 -0
  21. package/dist/demoSigningTrust.test.d.ts +2 -0
  22. package/dist/demoSigningTrust.test.d.ts.map +1 -0
  23. package/dist/demoSigningTrust.test.js +445 -0
  24. package/dist/demoSigningTrust.test.js.map +1 -0
  25. package/dist/demoSigningUpgradeProof.d.ts +52 -0
  26. package/dist/demoSigningUpgradeProof.d.ts.map +1 -0
  27. package/dist/demoSigningUpgradeProof.js +137 -0
  28. package/dist/demoSigningUpgradeProof.js.map +1 -0
  29. package/dist/demoSigningUpgradeProof.test.d.ts +2 -0
  30. package/dist/demoSigningUpgradeProof.test.d.ts.map +1 -0
  31. package/dist/demoSigningUpgradeProof.test.js +564 -0
  32. package/dist/demoSigningUpgradeProof.test.js.map +1 -0
  33. package/dist/demoSigningUpgradeSubmission.d.ts +21 -0
  34. package/dist/demoSigningUpgradeSubmission.d.ts.map +1 -0
  35. package/dist/demoSigningUpgradeSubmission.js +178 -0
  36. package/dist/demoSigningUpgradeSubmission.js.map +1 -0
  37. package/dist/demoSupervisor.d.ts.map +1 -1
  38. package/dist/demoSupervisor.js +2 -1
  39. package/dist/demoSupervisor.js.map +1 -1
  40. package/dist/demoSupervisor.test.js +35 -0
  41. package/dist/demoSupervisor.test.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +17 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.test.js +3 -2
  46. package/dist/index.test.js.map +1 -1
  47. package/dist/providerSessionReplyRecovery.d.ts +1 -1
  48. package/dist/schemas/demo-enrollment-approval.schema.json +19 -0
  49. package/dist/schemas/demo-signing-update.schema.json +18 -0
  50. package/dist/schemas/lifecycle-event.schema.json +178 -0
  51. package/dist/schemas/signing-upgrade-context.schema.json +28 -0
  52. package/dist/schemas/signing-upgrade-source.schema.json +32 -0
  53. package/dist/usage.d.ts +1 -1
  54. package/dist/usage.d.ts.map +1 -1
  55. package/dist/usage.js +1 -1
  56. package/dist/usage.js.map +1 -1
  57. package/package.json +5 -4
@@ -43,6 +43,78 @@ function options(stateRoot) {
43
43
  installationId: '40000000-0000-4000-8000-000000000001',
44
44
  stateRoot, maximumWaitMs: 1_000 };
45
45
  }
46
+ test('fresh browser approval replaces expired trust without replacing device identity or resetting its sequence', async (t) => {
47
+ t.mock.timers.enable({ apis: ['Date'], now: new Date('2026-09-27T03:00:00Z') });
48
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-reenroll-'));
49
+ const values = new Map();
50
+ let interruptReplacement = false;
51
+ const store = { backend: 'linux-secret-service',
52
+ async get(account) { return values.get(account) ?? null; },
53
+ async put(account, value) {
54
+ values.set(account, value);
55
+ if (interruptReplacement && /^demo-signing-[0-9a-f]{32}$/.test(account)) {
56
+ interruptReplacement = false;
57
+ throw new Error('interrupted after protected replacement');
58
+ }
59
+ },
60
+ async delete(account) { values.delete(account); } };
61
+ const initial = approvedEnrollment();
62
+ let approved = initial;
63
+ let approvals = 0;
64
+ const sequences = [];
65
+ let devicePublicKey = '';
66
+ const fetcher = async (resource, init) => {
67
+ const url = new URL(String(resource));
68
+ if (url.pathname.endsWith('/enrollments')) {
69
+ devicePublicKey = JSON.parse(String(init?.body)).publicKeyEd25519;
70
+ return new Response(JSON.stringify({ ok: true, status: 'pending', organizationId: orgId,
71
+ repositoryId, deviceCode, expiresAt: new Date(Date.now() + 60_000).toISOString(),
72
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
73
+ }
74
+ if (url.pathname.endsWith('/poll'))
75
+ return new Response(JSON.stringify(approved));
76
+ sequences.push(Number(new Headers(init?.headers).get('x-dharma-sequence')));
77
+ return new Response(JSON.stringify({ ok: true, organizationId: orgId, repositoryId,
78
+ deviceId, normalizedRepository }));
79
+ };
80
+ const connected = await connectDemoDevice(options(stateRoot), { store, fetcher,
81
+ onApprovalRequired: async () => { approvals += 1; } });
82
+ const before = JSON.parse(await readFile(connected.configPath, 'utf8'));
83
+ const originalAnchor = [...values.values()].find(value => value.includes('dharma.demo-signing-anchor/v1'));
84
+ t.mock.timers.tick(48 * 60 * 60_000);
85
+ await assert.rejects(loadDemoSigningTrust(options(stateRoot), { store }), /expired/i);
86
+ const successor = generateKeyPairSync('ed25519');
87
+ const pin = successor.publicKey.export({ format: 'jwk' }).x;
88
+ const issuedAt = new Date(Date.now() - 1_000).toISOString();
89
+ const expiresAt = new Date(Date.now() + 24 * 60 * 60_000).toISOString();
90
+ const body = { ...initial.serverSigningKeyset, generation: 3, signedByKeyVersion: 'successor',
91
+ issuedAt, expiresAt, keys: [...initial.serverSigningKeyset.keys.map(key => ({ ...key, status: 'overlap' })),
92
+ { keyVersion: 'successor', publicKeyEd25519: pin, status: 'active', notBefore: issuedAt, notAfter: expiresAt }] };
93
+ const { signature: _signature, ...unsigned } = body;
94
+ approved = { ...initial, serverPublicKeyEd25519: pin,
95
+ serverSigningKeyset: { ...unsigned, signature: signCanonicalObject(unsigned, successor.privateKey) },
96
+ enrollmentApproval: { schema: 'dharma.demo-enrollment-approval/v1', organizationId: orgId,
97
+ repositoryId, participantId: '20000000-0000-4000-8000-000000000001', deviceId,
98
+ enrollmentId: '50000000-0000-4000-8000-000000000002', publicKeyEd25519: devicePublicKey,
99
+ approvedAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 60_000).toISOString() } };
100
+ interruptReplacement = true;
101
+ await assert.rejects(connectDemoDevice(options(stateRoot), { store, fetcher,
102
+ onApprovalRequired: async () => { approvals += 1; } }), /interrupted after protected replacement/);
103
+ const trusted = await loadDemoSigningTrust(options(stateRoot), { store });
104
+ assert.equal(trusted.publicKey.export({ format: 'jwk' }).x, pin);
105
+ const renewed = await verifyDemoDevice(options(stateRoot), { store, fetcher });
106
+ const after = JSON.parse(await readFile(renewed.configPath, 'utf8'));
107
+ assert.equal(approvals, 2);
108
+ assert.deepEqual(sequences, [1, 2]);
109
+ assert.equal(after.deviceId, before.deviceId);
110
+ assert.equal(after.publicKeyEd25519, before.publicKeyEd25519);
111
+ assert.equal(after.enrolledAt, before.enrolledAt);
112
+ assert.equal(after.nextSequence, 3);
113
+ assert.equal(after.serverPublicKeyEd25519, pin);
114
+ assert.equal(after.serverSigningKeyset.keys[0].notAfter, initial.serverSigningKeyset.keys[0].notAfter);
115
+ assert.ok([...values.values()].includes(originalAnchor), 'old protected trust must survive unchanged');
116
+ assert.doesNotMatch([...values.values()].filter(value => value.includes('demo-signing')).join(''), /grant|privateJwk|privateKey/i);
117
+ });
46
118
  test('Demo enrollment verifies the browser origin, waits for approval and signs a scoped status request', async () => {
47
119
  const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-cli-'));
48
120
  const calls = [];
@@ -82,8 +154,9 @@ test('Demo enrollment verifies the browser origin, waits for approval and signs
82
154
  deviceId, normalizedRepository }), { status: 200 });
83
155
  };
84
156
  const approvals = [];
157
+ const store = memoryStore();
85
158
  const connected = await connectDemoDevice(options(stateRoot), {
86
- store: memoryStore(), fetcher, sleep: async () => { },
159
+ store, fetcher, sleep: async () => { },
87
160
  onApprovalRequired: async (url) => { approvals.push(url); },
88
161
  });
89
162
  assert.equal(connected.stage, 'device_signed_ready');
@@ -96,7 +169,7 @@ test('Demo enrollment verifies the browser origin, waits for approval and signs
96
169
  assert.equal(config.deviceId, deviceId);
97
170
  assert.equal(config.grant, undefined);
98
171
  assert.equal(config.privateKey, undefined);
99
- assert.equal((await loadDemoSigningTrust(options(stateRoot))).deviceId, deviceId);
172
+ assert.equal((await loadDemoSigningTrust(options(stateRoot), { store })).deviceId, deviceId);
100
173
  if (process.platform !== 'win32')
101
174
  assert.equal((await stat(connected.configPath)).mode & 0o777, 0o600);
102
175
  });
@@ -119,6 +192,219 @@ test('Demo enrollment rejects missing and foreign signing anchors before saving
119
192
  await assert.rejects(readFile(scopePath(options(stateRoot), hqUrl)), { code: 'ENOENT' });
120
193
  }
121
194
  });
195
+ test('fresh enrollment during preload protects the successor before status and resumes activation after restart', async () => {
196
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-preload-enrollment-'));
197
+ const scope = options(stateRoot);
198
+ const store = memoryStore();
199
+ const approved = approvedEnrollment();
200
+ const initial = approved.serverSigningKeyset;
201
+ const successor = generateKeyPairSync('ed25519');
202
+ const nextExpiry = new Date(Date.now() + 48 * 60 * 60_000).toISOString();
203
+ const { signature: _signature, ...initialUnsigned } = initial;
204
+ const preloadUnsigned = { ...initialUnsigned, generation: 2, keys: [...initial.keys, {
205
+ keyVersion: 'successor', publicKeyEd25519: successor.publicKey.export({ format: 'jwk' }).x,
206
+ status: 'overlap', notBefore: initial.issuedAt, notAfter: nextExpiry
207
+ }] };
208
+ const preload = { ...preloadUnsigned, signature: signCanonicalObject(preloadUnsigned, signer.privateKey) };
209
+ const activeUnsigned = { ...preloadUnsigned, generation: 3, signedByKeyVersion: 'successor',
210
+ expiresAt: nextExpiry, keys: preload.keys.map(key => ({ ...key,
211
+ status: key.keyVersion === 'successor' ? 'active' : 'overlap' })) };
212
+ const active = { ...activeUnsigned, signature: signCanonicalObject(activeUnsigned, successor.privateKey) };
213
+ const envelope = (keysets) => ({ schema: 'dharma.demo-signing-update/v1',
214
+ organizationId: orgId, repositoryId, deviceId, issuedAt: new Date().toISOString(),
215
+ expiresAt: new Date(Date.now() + 60_000).toISOString(), keysets });
216
+ let activate = false;
217
+ const fetcher = async (resource) => {
218
+ const url = new URL(String(resource));
219
+ if (url.pathname.endsWith('/enrollments'))
220
+ return new Response(JSON.stringify({ ok: true,
221
+ status: 'pending', organizationId: orgId, repositoryId, deviceCode,
222
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
223
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
224
+ if (url.pathname.endsWith('/poll'))
225
+ return new Response(JSON.stringify({ ...approved,
226
+ signingTrustUpdate: envelope([initial, preload]) }));
227
+ assert.equal(url.searchParams.get('signingGeneration'), '2');
228
+ return new Response(JSON.stringify({ ok: true, organizationId: orgId, repositoryId,
229
+ deviceId, normalizedRepository, ...(activate ? { signingTrustUpdate: envelope([preload, active]) } : {}) }));
230
+ };
231
+ const connected = await connectDemoDevice(scope, { store, fetcher });
232
+ assert.equal((await loadDemoSigningTrust(scope, { store })).keyset.generation, 2);
233
+ // The same approved enrollment may be returned on retry; it must not downgrade protected trust.
234
+ await connectDemoDevice(scope, { store, fetcher });
235
+ activate = true;
236
+ await verifyDemoDevice(scope, { store, fetcher });
237
+ const trust = await loadDemoSigningTrust(scope, { store,
238
+ now: new Date(Date.parse(initial.expiresAt) + 1_000) });
239
+ assert.equal(trust.keyset.generation, 3);
240
+ const saved = await readFile(connected.configPath, 'utf8');
241
+ assert.doesNotMatch(saved, /grant|signingTrustUpdate|privateKey|privateJwk/i);
242
+ assert.equal(JSON.parse(saved).serverPublicKeyEd25519, serverPublicKeyEd25519);
243
+ });
244
+ test('fresh enrollment rejects a foreign or corrupt preload before writing a device or requesting signed status', async () => {
245
+ for (const fault of ['foreign', 'corrupt', 'expired', 'unexpected']) {
246
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-preload-reject-'));
247
+ const scope = options(stateRoot);
248
+ const approved = approvedEnrollment();
249
+ const update = { schema: 'dharma.demo-signing-update/v1', organizationId: orgId,
250
+ repositoryId, deviceId, issuedAt: new Date().toISOString(),
251
+ expiresAt: new Date(Date.now() + 60_000).toISOString(), keysets: [approved.serverSigningKeyset],
252
+ ...(fault === 'unexpected' ? { grant: 'must-not-persist' } : {}) };
253
+ if (fault === 'foreign')
254
+ update.deviceId = '30000000-0000-4000-8000-000000000099';
255
+ if (fault === 'expired')
256
+ update.expiresAt = new Date(Date.now() - 1_000).toISOString();
257
+ if (fault === 'corrupt')
258
+ update.keysets = [{ ...approved.serverSigningKeyset, generation: 2, signature: 'invalid' }];
259
+ const fetcher = async (resource) => {
260
+ const pathname = new URL(String(resource)).pathname;
261
+ if (pathname.endsWith('/enrollments'))
262
+ return new Response(JSON.stringify({ ok: true,
263
+ status: 'pending', organizationId: orgId, repositoryId, deviceCode,
264
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
265
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
266
+ assert.ok(pathname.endsWith('/poll'), 'a rejected preload must never dispatch signed status');
267
+ return new Response(JSON.stringify({ ...approved, signingTrustUpdate: update }));
268
+ };
269
+ await assert.rejects(connectDemoDevice(scope, { store: memoryStore(), fetcher }), /Demo signing/);
270
+ await assert.rejects(readFile(scopePath(scope, hqUrl)), { code: 'ENOENT' });
271
+ }
272
+ });
273
+ test('interrupted preload enrollment recovers its protected binding without a second approval or credential file', async () => {
274
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-preload-interrupt-'));
275
+ const scope = options(stateRoot);
276
+ const store = memoryStore();
277
+ const approved = approvedEnrollment();
278
+ const initial = approved.serverSigningKeyset;
279
+ const successor = generateKeyPairSync('ed25519');
280
+ const { signature: _signature, ...body } = initial;
281
+ const unsigned = { ...body, generation: 2, keys: [...initial.keys, { keyVersion: 'successor',
282
+ publicKeyEd25519: successor.publicKey.export({ format: 'jwk' }).x, status: 'overlap',
283
+ notBefore: initial.issuedAt, notAfter: new Date(Date.now() + 48 * 60 * 60_000).toISOString() }] };
284
+ const preload = { ...unsigned, signature: signCanonicalObject(unsigned, signer.privateKey) };
285
+ const fetcher = async (resource) => {
286
+ const url = new URL(String(resource));
287
+ if (url.pathname.endsWith('/enrollments'))
288
+ return new Response(JSON.stringify({ ok: true,
289
+ status: 'approved', organizationId: orgId, repositoryId, deviceCode,
290
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
291
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
292
+ if (url.pathname.endsWith('/poll'))
293
+ return new Response(JSON.stringify({ ...approved, signingTrustUpdate: {
294
+ schema: 'dharma.demo-signing-update/v1', organizationId: orgId, repositoryId, deviceId,
295
+ issuedAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 60_000).toISOString(), keysets: [initial, preload]
296
+ } }));
297
+ assert.equal(url.searchParams.get('signingGeneration'), '2');
298
+ return new Response(JSON.stringify({ ok: true, organizationId: orgId, repositoryId, deviceId, normalizedRepository }));
299
+ };
300
+ const interruptedStore = { ...store, async put(account, value) {
301
+ await store.put(account, value);
302
+ if (account.startsWith('demo-signing-') && JSON.parse(value).serverSigningKeyset.generation === 2) {
303
+ throw new Error('simulated termination after protected write');
304
+ }
305
+ } };
306
+ await assert.rejects(connectDemoDevice(scope, { store: interruptedStore, fetcher }), /simulated termination/);
307
+ const path = scopePath(scope, hqUrl);
308
+ await assert.rejects(readFile(path), { code: 'ENOENT' });
309
+ const pending = JSON.parse(await readFile(`${path}.pending-enrollment.json`, 'utf8'));
310
+ assert.equal(pending.signedReady, false);
311
+ assert.doesNotMatch(JSON.stringify(pending), /grant|privateKey|privateJwk|signingTrustUpdate/i);
312
+ for (const change of [{ organizationId: 'org_foreign' }, { publicKeyEd25519: 'E'.repeat(43) },
313
+ { deviceId: '30000000-0000-4000-8000-000000000099' }, { signedReady: true }, { nextSequence: 2 },
314
+ { grant: 'must-not-persist' }]) {
315
+ const foreign = JSON.stringify({ ...pending, ...change });
316
+ await writeFile(`${path}.pending-enrollment.json`, foreign);
317
+ await assert.rejects(connectDemoDevice(scope, { store, fetcher }), /Pending Demo enrollment/);
318
+ assert.equal(await readFile(`${path}.pending-enrollment.json`, 'utf8'), foreign);
319
+ }
320
+ await writeFile(`${path}.pending-enrollment.json`, JSON.stringify(pending));
321
+ await new Promise(accept => setTimeout(accept, 10));
322
+ const result = await connectDemoDevice(scope, { store, fetcher,
323
+ onApprovalRequired: async () => { assert.fail('an approved interrupted enrollment must not ask for another approval'); } });
324
+ assert.equal(result.stage, 'device_signed_ready');
325
+ assert.equal(JSON.parse(await readFile(path, 'utf8')).enrolledAt, pending.enrolledAt);
326
+ assert.equal((await loadDemoSigningTrust(scope, { store })).keyset.generation, 2);
327
+ await assert.rejects(readFile(`${path}.pending-enrollment.json`), { code: 'ENOENT' });
328
+ });
329
+ test('signed status autonomously accepts a successor and reloads it from protected trust after bootstrap expiry', async () => {
330
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-rotation-'));
331
+ const scope = options(stateRoot);
332
+ const store = memoryStore();
333
+ const approved = approvedEnrollment();
334
+ const initial = approved.serverSigningKeyset;
335
+ const successor = generateKeyPairSync('ed25519');
336
+ const nextExpiry = new Date(Date.now() + 48 * 60 * 60_000).toISOString();
337
+ const preloadBody = { ...initial, generation: 2, keys: [...initial.keys, {
338
+ keyVersion: 'successor', publicKeyEd25519: successor.publicKey.export({ format: 'jwk' }).x,
339
+ status: 'overlap', notBefore: initial.issuedAt, notAfter: nextExpiry
340
+ }] };
341
+ const { signature: _oldSignature, ...preloadUnsigned } = preloadBody;
342
+ const preload = { ...preloadUnsigned, signature: signCanonicalObject(preloadUnsigned, signer.privateKey) };
343
+ const activeUnsigned = { ...preloadUnsigned, generation: 3, signedByKeyVersion: 'successor',
344
+ expiresAt: nextExpiry, keys: preload.keys.map(key => ({ ...key,
345
+ status: key.keyVersion === 'successor' ? 'active' : 'overlap' })) };
346
+ const active = { ...activeUnsigned, signature: signCanonicalObject(activeUnsigned, successor.privateKey) };
347
+ let update;
348
+ const fetcher = async (resource) => {
349
+ const url = new URL(String(resource));
350
+ if (url.pathname.endsWith('/enrollments'))
351
+ return new Response(JSON.stringify({ ok: true,
352
+ status: 'pending', organizationId: orgId, repositoryId, deviceCode,
353
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
354
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
355
+ if (url.pathname.endsWith('/poll'))
356
+ return new Response(JSON.stringify(approved));
357
+ assert.equal(url.searchParams.get('signingGeneration'), '1');
358
+ return new Response(JSON.stringify({ ok: true, organizationId: orgId, repositoryId,
359
+ deviceId, normalizedRepository, ...(update ? { signingTrustUpdate: update } : {}) }));
360
+ };
361
+ const connected = await connectDemoDevice(scope, { store, fetcher });
362
+ update = { schema: 'dharma.demo-signing-update/v1', organizationId: orgId, repositoryId, deviceId,
363
+ issuedAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 60_000).toISOString(),
364
+ keysets: [preload, active] };
365
+ await verifyDemoDevice(scope, { store, fetcher });
366
+ const trusted = await loadDemoSigningTrust(scope, { store,
367
+ now: new Date(Date.parse(initial.expiresAt) + 1_000) });
368
+ assert.equal(trusted.keyset.generation, 3);
369
+ const config = JSON.parse(await readFile(connected.configPath, 'utf8'));
370
+ assert.equal(config.serverPublicKeyEd25519, approved.serverPublicKeyEd25519);
371
+ assert.equal(config.serverSigningKeyset.keys[0].notAfter, initial.keys[0].notAfter);
372
+ assert.equal(config.nextSequence, 3);
373
+ assert.doesNotMatch(JSON.stringify(config), /grant|privateJwk|privateKey/i);
374
+ });
375
+ test('a rejected status trust update preserves the sequence and last verified keyset', async () => {
376
+ const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-rotation-reject-'));
377
+ const scope = options(stateRoot);
378
+ const store = memoryStore();
379
+ const approved = approvedEnrollment();
380
+ let tamper = false;
381
+ const fetcher = async (resource) => {
382
+ const pathname = new URL(String(resource)).pathname;
383
+ if (pathname.endsWith('/enrollments'))
384
+ return new Response(JSON.stringify({ ok: true,
385
+ status: 'pending', organizationId: orgId, repositoryId, deviceCode,
386
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
387
+ verificationUri: `${hqUrl}/demo/fabric/approve?orgId=${orgId}&repositoryId=${repositoryId}&code=${browserCode}` }));
388
+ if (pathname.endsWith('/poll'))
389
+ return new Response(JSON.stringify(approved));
390
+ return new Response(JSON.stringify({ ok: true, organizationId: orgId, repositoryId,
391
+ deviceId, normalizedRepository, ...(tamper ? { signingTrustUpdate: {
392
+ schema: 'dharma.demo-signing-update/v1', organizationId: orgId, repositoryId, deviceId,
393
+ issuedAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 60_000).toISOString(),
394
+ keysets: [{ ...approved.serverSigningKeyset, generation: 2, signature: 'invalid' }]
395
+ } } : {}) }));
396
+ };
397
+ const connected = await connectDemoDevice(scope, { store, fetcher });
398
+ tamper = true;
399
+ await assert.rejects(verifyDemoDevice(scope, { store, fetcher }), /Demo signing/);
400
+ const config = JSON.parse(await readFile(connected.configPath, 'utf8'));
401
+ assert.equal(config.nextSequence, 3);
402
+ assert.equal(config.serverSigningKeyset.generation, 1);
403
+ assert.deepEqual((await loadDemoSigningTrust(scope, { store })).keyset, approved.serverSigningKeyset);
404
+ tamper = false;
405
+ await verifyDemoDevice(scope, { store, fetcher });
406
+ assert.equal(JSON.parse(await readFile(connected.configPath, 'utf8')).nextSequence, 4);
407
+ });
122
408
  test('Demo enrollment recovers from one transient poll failure without restarting enrollment', async () => {
123
409
  const stateRoot = await mkdtemp(resolve(tmpdir(), 'dharma-demo-poll-retry-'));
124
410
  const calls = [];
@@ -1 +1 @@
1
- {"version":3,"file":"demoEnrollment.test.js","sourceRoot":"","sources":["../src/demoEnrollment.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demoEnrollment.test.js","sourceRoot":"","sources":["../src/demoEnrollment.test.ts"],"names":[],"mappings":"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"}
@@ -180,7 +180,7 @@ async function installActiveDemoPackage(input, deps) {
180
180
  || descriptor.releaseId !== published.releaseId) {
181
181
  throw new Error('Active Demo release does not match the current repository authorization.');
182
182
  }
183
- const trust = await loadDemoSigningTrust(scope);
183
+ const trust = await loadDemoSigningTrust(scope, { store: deps.store });
184
184
  const bundle = published.bundle;
185
185
  const { signature, ...unsignedEnvelope } = envelope;
186
186
  const now = Date.now();