@dharma-ai-labs/agent-fabric 0.1.7 → 0.1.10

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.
@@ -1,14 +1,48 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import { execFile } from 'node:child_process';
3
- import { createHash } from 'node:crypto';
4
- import { mkdir, mkdtemp, readFile, realpath, symlink, writeFile } from 'node:fs/promises';
3
+ import { createHash, generateKeyPairSync } from 'node:crypto';
4
+ import { mkdir, mkdtemp, readFile, realpath, symlink, unlink, writeFile } from 'node:fs/promises';
5
5
  import { tmpdir } from 'node:os';
6
6
  import { join } from 'node:path';
7
7
  import test from 'node:test';
8
8
  import { fileURLToPath, pathToFileURL } from 'node:url';
9
9
  import { promisify } from 'node:util';
10
- import { activateAgyPlugin, assertTaskSkillPin, installNativeAgentFabricBootstrap, installRepositoryAgentFabricSkill, isDirectExecution, materializeWorkspacePolicy, materializeInlineSkillFiles, nativeSkillDirectory, rawLocalRetentionDays, relayProcessState, run, taskResponsePreview, taskSkillPinFailureCode, verifyAgentFabricSkillInstallation, } from './index.js';
10
+ import { activateAgyPlugin, assertCapsuleAuthorizedByCurrentPolicy, assertTaskSkillPin, installNativeAgentFabricBootstrap, installRepositoryAgentFabricSkill, isDirectExecution, materializeWorkspacePolicy, applyServerEvidencePolicy, materializeInlineSkillFiles, nativeSkillDirectory, rawLocalRetentionDays, relayProcessState, releaseDailyContentUpload, reserveDailyContentUpload, run, taskResponsePreview, taskSkillPinFailureCode, verifyAgentFabricSkillInstallation, } from './index.js';
11
+ import { canonicalize, signCanonicalObject } from '@dharma-ai-labs/agent-fabric-contracts';
11
12
  const execFileAsync = promisify(execFile);
13
+ function memorySecureStore() {
14
+ const values = new Map();
15
+ return {
16
+ backend: 'linux-secret-service',
17
+ async get(account) { return values.get(account) ?? null; },
18
+ async put(account, value) { values.set(account, value); },
19
+ async delete(account) { values.delete(account); },
20
+ };
21
+ }
22
+ function signedPolicyAuthorization(policy, organizationId = 'org_northstar', workspaceId = 'workspace-northstar') {
23
+ const keys = generateKeyPairSync('ed25519');
24
+ const sourceEvidence = policy.evidence && typeof policy.evidence === 'object' && !Array.isArray(policy.evidence)
25
+ ? policy.evidence : {};
26
+ const signedPolicy = {
27
+ ...policy,
28
+ evidence: {
29
+ ...sourceEvidence,
30
+ maximumExpansionBytes: sourceEvidence.maximumExpansionBytes ?? 100_000,
31
+ excludePaths: sourceEvidence.excludePaths ?? ['**/.env', '**/*.key'],
32
+ pseudonymizeIdentity: true,
33
+ },
34
+ };
35
+ const unsigned = {
36
+ schema: 'dharma.workspace-policy-authorization/v1', organizationId, workspaceId, policy: signedPolicy,
37
+ issuedAt: new Date(Date.now() - 60_000).toISOString(), expiresAt: new Date(Date.now() + 86_400_000).toISOString(),
38
+ keyVersion: 'test-key',
39
+ };
40
+ const publicJwk = keys.publicKey.export({ format: 'jwk' });
41
+ return {
42
+ envelope: { ...unsigned, signature: signCanonicalObject(unsigned, keys.privateKey) },
43
+ publicKeyEd25519: publicJwk.x,
44
+ };
45
+ }
12
46
  test('organization raw evidence retention is validated and defaults explicitly', () => {
13
47
  assert.equal(rawLocalRetentionDays({ retention: {} }), 30);
14
48
  assert.equal(rawLocalRetentionDays({ retention: { rawLocalDays: 7 } }), 7);
@@ -16,7 +50,7 @@ test('organization raw evidence retention is validated and defaults explicitly',
16
50
  assert.throws(() => rawLocalRetentionDays({ retention: { rawLocalDays: 1.5 } }), /between 1 and 3650/);
17
51
  });
18
52
  test('version is parser-safe structured output', async () => {
19
- assert.deepEqual(await run(['version']), { version: '0.1.6' });
53
+ assert.deepEqual(await run(['version']), { version: '0.1.10' });
20
54
  });
21
55
  test('help is successful and direct basic commands keep stdout and stderr clean', async () => {
22
56
  assert.match(String(await run(['--help'])), /^Usage: dharma/);
@@ -40,6 +74,10 @@ test('global npm symlinks still execute the CLI entrypoint', async () => {
40
74
  test('unknown commands fail as usage errors', async () => {
41
75
  await assert.rejects(() => run(['unknown']), /Usage:/);
42
76
  });
77
+ test('documented direct-sync commands enforce their required arguments', async () => {
78
+ await assert.rejects(() => run(['workspace', 'sync', 'workspace-test', '--apply']), /Missing required option --policy-revision/);
79
+ await assert.rejects(() => run(['evidence', 'sync', '--workspace-id', 'workspace-test', '--policy', '.dharma/approved-policy.json']), /Missing required option --file/);
80
+ });
43
81
  test('status reports verified relay state and hides local identifiers by default', async () => {
44
82
  const home = await mkdtemp(join(tmpdir(), 'dharma-cli-status-'));
45
83
  const previous = process.env.DHARMA_HOME;
@@ -52,7 +90,7 @@ test('status reports verified relay state and hides local identifiers by default
52
90
  organizationId: 'org_private', deviceId: 'device_private',
53
91
  }));
54
92
  const status = await run(['status']);
55
- assert.deepEqual(status, { version: '0.1.6', enrolled: true, relay: 'running' });
93
+ assert.deepEqual(status, { version: '0.1.10', enrolled: true, relay: 'running' });
56
94
  const diagnostic = await run(['status', '--verbose']);
57
95
  assert.equal(diagnostic.organizationId, 'org_private');
58
96
  assert.equal(diagnostic.deviceId, 'device_private');
@@ -116,7 +154,7 @@ test('single capture selects an older session exactly and advances a changing se
116
154
  'evidence', 'capture', '--workspace', workspace, '--provider', 'codex', '--source-root', sessions,
117
155
  '--policy', policyPath, '--session-ids-file', allowlist,
118
156
  ]);
119
- assert.equal(first.sessionId, selectedSessionId);
157
+ assert.match(String(first.sessionId), /^sha256:[a-f0-9]{64}$/);
120
158
  assert.equal(first.revision, 1);
121
159
  events.push({ type: 'turn_context', payload: { turn_id: firstTurn, cwd: canonicalWorkspace }, timestamp: '2026-08-12T03:00:00Z' }, { type: 'event_msg', payload: { type: 'agent_message', message: 'older task completed later' }, timestamp: '2026-08-12T03:00:01Z' });
122
160
  await writeFile(source, events.map((value) => JSON.stringify(value)).join('\n'));
@@ -124,7 +162,7 @@ test('single capture selects an older session exactly and advances a changing se
124
162
  'evidence', 'capture', '--workspace', workspace, '--provider', 'codex', '--source-root', sessions,
125
163
  '--policy', policyPath, '--session-ids-file', allowlist,
126
164
  ]);
127
- assert.equal(second.sessionId, selectedSessionId);
165
+ assert.equal(second.sessionId, first.sessionId);
128
166
  assert.equal(second.revision, 2);
129
167
  assert.equal(second.previousRevisionHash, first.capsuleHash);
130
168
  const retry = await run([
@@ -161,6 +199,7 @@ test('repository onboarding skill records scoped API metadata without local path
161
199
  const skill = await readFile(join(workspace, result.skillPath), 'utf8');
162
200
  const connection = await readFile(join(workspace, result.connectionPath), 'utf8');
163
201
  assert.match(skill, /structured, task-bound handoff/);
202
+ assert.match(skill, /local deterministic self-analysis/);
164
203
  assert.match(skill, /dharma skills verify --provider codex --workspace \./);
165
204
  assert.match(skill, /dharma skills verify --provider claude --workspace \./);
166
205
  assert.match(skill, /dharma skills verify --provider agy --workspace \./);
@@ -204,9 +243,266 @@ test('blank-slate onboarding creates a conservative executable workspace policy'
204
243
  assert.deepEqual(generated.policy.tasks.writePaths, ['src/**']);
205
244
  assert.equal(generated.policy.tasks.defaultNetwork, 'deny');
206
245
  assert.equal(generated.policy.skills.automaticPromotionMaxRisk, 'R2');
246
+ assert.deepEqual(generated.policy.evidence.automaticDisclosure, { mode: 'local_analysis' });
207
247
  const persisted = JSON.parse(await readFile(join(workspace, generated.relativePath), 'utf8'));
208
248
  assert.equal(persisted.organizationId, 'org_northstar');
209
249
  });
250
+ test('applies only a server-issued bounded content grant to the local workspace policy', async () => {
251
+ const workspace = await mkdtemp(join(tmpdir(), 'dharma-server-policy-'));
252
+ const secureStore = memorySecureStore();
253
+ const previousHome = process.env.DHARMA_HOME;
254
+ process.env.DHARMA_HOME = workspace;
255
+ await writeFile(join(workspace, 'device.json'), JSON.stringify({
256
+ schema: 'dharma.device-config/v1', hqUrl: 'https://www.dharma-ai.io', organizationId: 'org_northstar',
257
+ deviceId: 'device-test', relayUrl: 'wss://relay.dharma-ai.io',
258
+ }));
259
+ const signed = signedPolicyAuthorization({
260
+ revision: 'agent-fabric-content-11111111-1111-4111-8111-111111111111',
261
+ evidence: {
262
+ automaticDisclosure: { mode: 'customer_authorized_content', consentReceiptId: 'consent_11111111-1111-4111-8111-111111111111', allowedContentClasses: ['native_provider_payload'] },
263
+ maximumCapsuleBytes: 500_000, maximumDailyUploadBytes: 50_000_000,
264
+ },
265
+ });
266
+ const generated = await materializeWorkspacePolicy({
267
+ workspace,
268
+ organizationId: 'org_northstar',
269
+ revision: 'portal-bootstrap',
270
+ serverPolicyAuthorization: signed.envelope,
271
+ serverPublicKeyEd25519: signed.publicKeyEd25519,
272
+ workspaceId: 'workspace-northstar',
273
+ secureStore,
274
+ });
275
+ if (previousHome === undefined)
276
+ delete process.env.DHARMA_HOME;
277
+ else
278
+ process.env.DHARMA_HOME = previousHome;
279
+ assert.equal(generated.policy.revision, 'agent-fabric-content-11111111-1111-4111-8111-111111111111');
280
+ assert.deepEqual(generated.policy.evidence.automaticDisclosure, {
281
+ mode: 'customer_authorized_content',
282
+ consentReceiptId: 'consent_11111111-1111-4111-8111-111111111111',
283
+ allowedContentClasses: ['native_provider_payload'],
284
+ });
285
+ assert.equal(generated.policy.evidence.maximumCapsuleBytes, 500_000);
286
+ assert.equal(generated.policy.tasks.defaultNetwork, 'deny');
287
+ assert.throws(() => applyServerEvidencePolicy(generated.policy, { ...signed.envelope, signature: 'tampered' }, signed.publicKeyEd25519, 'org_northstar', 'workspace-northstar'), /signature is invalid/);
288
+ });
289
+ test('server evidence updates preserve existing workspace command and write authority', async () => {
290
+ const workspace = await mkdtemp(join(tmpdir(), 'dharma-existing-policy-'));
291
+ const secureStore = memorySecureStore();
292
+ const previousHome = process.env.DHARMA_HOME;
293
+ process.env.DHARMA_HOME = workspace;
294
+ await writeFile(join(workspace, 'device.json'), JSON.stringify({
295
+ schema: 'dharma.device-config/v1', hqUrl: 'https://www.dharma-ai.io', organizationId: 'org_northstar',
296
+ deviceId: 'device-test', relayUrl: 'wss://relay.dharma-ai.io',
297
+ }));
298
+ await mkdir(join(workspace, '.dharma'), { recursive: true });
299
+ const initial = await materializeWorkspacePolicy({ workspace, organizationId: 'org_northstar', revision: 'initial' });
300
+ initial.policy.tasks.allowedCommands['customer.check'] = { argv: ['node', '--check', 'src/index.js'], timeoutSeconds: 60 };
301
+ initial.policy.tasks.writePaths = ['customer-src/**'];
302
+ await writeFile(join(workspace, initial.relativePath), JSON.stringify(initial.policy));
303
+ const signed = signedPolicyAuthorization({
304
+ revision: 'agent-fabric-local-analysis-v2',
305
+ evidence: { automaticDisclosure: { mode: 'local_analysis' }, maximumCapsuleBytes: 500_000, maximumDailyUploadBytes: 5_000_000 },
306
+ });
307
+ const updated = await materializeWorkspacePolicy({
308
+ workspace, organizationId: 'org_northstar', revision: 'ignored', serverPolicyAuthorization: signed.envelope,
309
+ serverPublicKeyEd25519: signed.publicKeyEd25519, workspaceId: 'workspace-northstar', secureStore,
310
+ });
311
+ if (previousHome === undefined)
312
+ delete process.env.DHARMA_HOME;
313
+ else
314
+ process.env.DHARMA_HOME = previousHome;
315
+ assert.deepEqual(updated.policy.tasks.allowedCommands['customer.check']?.argv, ['node', '--check', 'src/index.js']);
316
+ assert.deepEqual(updated.policy.tasks.writePaths, ['customer-src/**']);
317
+ });
318
+ test('daily content disclosure ledger is durable, bounded, and idempotent by capsule hash', async () => {
319
+ const previous = process.env.DHARMA_HOME;
320
+ const home = await mkdtemp(join(tmpdir(), 'dharma-content-ledger-'));
321
+ process.env.DHARMA_HOME = home;
322
+ try {
323
+ const secureStore = memorySecureStore();
324
+ await writeFile(join(home, 'device.json'), JSON.stringify({ schema: 'dharma.device-config/v1',
325
+ hqUrl: 'https://www.dharma-ai.io', organizationId: 'org_northstar', deviceId: 'device-ledger', relayUrl: 'wss://relay.dharma-ai.io' }));
326
+ const signed = signedPolicyAuthorization({
327
+ revision: 'content-v1',
328
+ evidence: {
329
+ automaticDisclosure: { mode: 'customer_authorized_content', consentReceiptId: 'consent-ledger', allowedContentClasses: ['native_provider_payload'] },
330
+ maximumCapsuleBytes: 1_000, maximumDailyUploadBytes: 700, maximumExpansionBytes: 100,
331
+ },
332
+ });
333
+ const generated = await materializeWorkspacePolicy({
334
+ workspace: home, organizationId: 'org_northstar', revision: 'content', workspaceId: 'workspace-northstar',
335
+ serverPolicyAuthorization: signed.envelope, serverPublicKeyEd25519: signed.publicKeyEd25519,
336
+ secureStore,
337
+ });
338
+ const policy = generated.policy;
339
+ const signCapsule = (unsigned) => ({
340
+ ...unsigned,
341
+ capsuleHash: `sha256:${createHash('sha256').update(canonicalize(unsigned)).digest('hex')}`,
342
+ });
343
+ const first = signCapsule({ automaticDisclosureMode: 'customer_authorized_content', text: 'x'.repeat(300) });
344
+ const second = signCapsule({ automaticDisclosureMode: 'customer_authorized_content', text: 'y'.repeat(300) });
345
+ await reserveDailyContentUpload(first, policy, secureStore);
346
+ await reserveDailyContentUpload(first, policy, secureStore);
347
+ await assert.rejects(() => reserveDailyContentUpload(second, policy, secureStore), /daily content upload limit/i);
348
+ await releaseDailyContentUpload(first, policy, secureStore);
349
+ await reserveDailyContentUpload(second, policy, secureStore);
350
+ }
351
+ finally {
352
+ if (previous === undefined)
353
+ delete process.env.DHARMA_HOME;
354
+ else
355
+ process.env.DHARMA_HOME = previous;
356
+ }
357
+ });
358
+ test('deleting the advisory local quota ledger does not bypass the authoritative server quota', async () => {
359
+ const previous = process.env.DHARMA_HOME;
360
+ const home = await mkdtemp(join(tmpdir(), 'dharma-content-ledger-delete-'));
361
+ process.env.DHARMA_HOME = home;
362
+ try {
363
+ const secureStore = memorySecureStore();
364
+ await writeFile(join(home, 'device.json'), JSON.stringify({ schema: 'dharma.device-config/v1',
365
+ hqUrl: 'https://www.dharma-ai.io', organizationId: 'org_northstar', deviceId: 'device-delete', relayUrl: 'wss://relay.dharma-ai.io' }));
366
+ const signed = signedPolicyAuthorization({
367
+ revision: 'content-delete-v1',
368
+ evidence: {
369
+ automaticDisclosure: { mode: 'customer_authorized_content', consentReceiptId: 'consent-ledger-delete', allowedContentClasses: ['native_provider_payload'] },
370
+ maximumCapsuleBytes: 1_000, maximumDailyUploadBytes: 700, maximumExpansionBytes: 100,
371
+ },
372
+ });
373
+ const input = {
374
+ workspace: home, organizationId: 'org_northstar', revision: 'content-delete', workspaceId: 'workspace-northstar',
375
+ serverPolicyAuthorization: signed.envelope, serverPublicKeyEd25519: signed.publicKeyEd25519,
376
+ secureStore,
377
+ };
378
+ await materializeWorkspacePolicy(input);
379
+ await unlink(join(home, 'relay', 'evidence-upload-ledger.json'));
380
+ await materializeWorkspacePolicy(input);
381
+ assert.equal(JSON.parse(await readFile(join(home, 'relay', 'evidence-upload-ledger.json'), 'utf8')).totalBytes, 0);
382
+ }
383
+ finally {
384
+ if (previous === undefined)
385
+ delete process.env.DHARMA_HOME;
386
+ else
387
+ process.env.DHARMA_HOME = previous;
388
+ }
389
+ });
390
+ test('queued content must match the current signed consent and policy revision', async () => {
391
+ const base = await materializeWorkspacePolicy({ workspace: await mkdtemp(join(tmpdir(), 'dharma-current-grant-')), organizationId: 'org_northstar', revision: 'local' });
392
+ const signed = signedPolicyAuthorization({
393
+ revision: 'content-v2',
394
+ evidence: {
395
+ automaticDisclosure: { mode: 'customer_authorized_content', consentReceiptId: 'consent-current', allowedContentClasses: ['native_provider_payload'] },
396
+ maximumCapsuleBytes: 1_000, maximumDailyUploadBytes: 1_000, maximumExpansionBytes: 100,
397
+ },
398
+ });
399
+ const policy = applyServerEvidencePolicy(base.policy, signed.envelope, signed.publicKeyEd25519, 'org_northstar', 'workspace-northstar');
400
+ const current = { organizationId: 'org_northstar', workspaceId: 'workspace-northstar', automaticDisclosureMode: 'customer_authorized_content', events: [], redactionReceipt: { disclosureMode: 'customer_authorized_content', policyRevision: 'content-v2', consentReceiptId: 'consent-current' } };
401
+ assert.doesNotThrow(() => assertCapsuleAuthorizedByCurrentPolicy(current, policy));
402
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({ ...current, redactionReceipt: { disclosureMode: 'customer_authorized_content', policyRevision: 'content-v1', consentReceiptId: 'consent-old' } }, policy), /no longer authorized/);
403
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy(current, { ...policy, evidence: { ...policy.evidence, automaticDisclosure: { mode: 'local_analysis' } } }), /invalid|no longer authorized/);
404
+ });
405
+ test('reduced capsules cannot disguise provider content as local analysis', async () => {
406
+ const base = await materializeWorkspacePolicy({ workspace: await mkdtemp(join(tmpdir(), 'dharma-reduced-boundary-')), organizationId: 'org_northstar', revision: 'local' });
407
+ const reduced = {
408
+ organizationId: 'org_northstar', workspaceId: 'workspace-northstar', deviceId: '22222222-2222-4222-8222-222222222222',
409
+ provider: 'codex', sessionId: `sha256:${'a'.repeat(64)}`, taskId: null,
410
+ evidenceMode: base.policy.evidence.defaultMode, status: 'completed',
411
+ coverage: { state: 'observed', admittedSessions: 1, excludedSessions: 0, missingFields: [] },
412
+ automaticDisclosureMode: 'local_analysis', repoState: {}, skillState: {}, validationResults: [], contentIndex: [],
413
+ events: [{
414
+ schema: 'dharma.agent-event/v1', eventId: '33333333-3333-4333-8333-333333333333',
415
+ organizationId: 'org_northstar', deviceId: '22222222-2222-4222-8222-222222222222', workspaceId: 'workspace-northstar',
416
+ provider: 'codex', sessionId: `sha256:${'a'.repeat(64)}`, sequence: 0, occurredAt: '2026-08-12T00:00:00.000Z', kind: 'user_message', coverage: 'observed', contentRefs: [],
417
+ payload: { nativeKind: 'user_message', recordBytes: 10, contentOmitted: true },
418
+ source: { nativeEventId: null, sourceKind: 'user_message', localLocatorId: null }, skillBundleId: null, providerModel: null,
419
+ }],
420
+ localAnalysis: {
421
+ schema: 'dharma.local-trajectory-analysis/v1', analyzer: 'deterministic', recordCount: 1,
422
+ recordBytes: { total: 10, maximum: 10 }, eventKinds: { user_message: 1 },
423
+ toolDiscipline: { calls: 0, results: 0, unmatchedCalls: 0, orphanResults: 0 },
424
+ outcomeSignals: { errorRecords: 0, incomplete: false, coverage: 'observed' }, durationMs: 1,
425
+ semanticReviewRecommended: false, reasonCodes: [],
426
+ },
427
+ redactionReceipt: { disclosureMode: 'local_analysis', policyRevision: base.policy.revision, consentReceiptId: null, disclosedClasses: ['local_deterministic_analysis'], excludedClasses: ['native_provider_payload'], classes: [] },
428
+ };
429
+ assert.doesNotThrow(() => assertCapsuleAuthorizedByCurrentPolicy(reduced, base.policy));
430
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
431
+ ...reduced,
432
+ events: [{
433
+ kind: 'user_message',
434
+ payload: { nativeKind: 'user_message', recordBytes: 10, contentOmitted: true, nativeProviderPayload: 'private prompt' },
435
+ source: { nativeEventId: null, sourceKind: 'user_message' },
436
+ }],
437
+ }, base.policy), /unauthorized provider content/i);
438
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
439
+ ...reduced,
440
+ events: [{
441
+ kind: 'user_message', payload: { nativeKind: 'private prompt', recordBytes: 10, contentOmitted: true },
442
+ source: { nativeEventId: null, sourceKind: 'user_message' },
443
+ }],
444
+ }, base.policy), /unauthorized provider content/i);
445
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
446
+ ...reduced,
447
+ contentIndex: [{ contentId: `sha256:${'a'.repeat(64)}`, kind: 'private prompt', bytes: 10, uploaded: false,
448
+ availableLocally: true, mimeType: 'application/x-ndjson', normalizedPath: null }],
449
+ }, base.policy), /unauthorized content descriptor/i);
450
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
451
+ ...reduced, repoState: { source: 'private code' },
452
+ }, base.policy), /unauthorized auxiliary content/i);
453
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
454
+ ...reduced, localAnalysis: { ...reduced.localAnalysis, reasonCodes: ['secret=customer-token'] },
455
+ }, base.policy), /invalid free-form analysis/i);
456
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
457
+ ...reduced,
458
+ events: [{ ...reduced.events[0], providerModel: 'customer-secret-in-metadata' }],
459
+ }, base.policy), /unauthorized event descriptors/i);
460
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
461
+ ...reduced,
462
+ events: [{ ...reduced.events[0], source: { ...reduced.events[0].source, localLocatorId: 'customer-secret-in-metadata' } }],
463
+ }, base.policy), /unauthorized event descriptors/i);
464
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
465
+ ...reduced, redactionReceipt: { ...reduced.redactionReceipt, classes: ['secret=customer-token'] },
466
+ }, base.policy), /invalid redaction receipt classes/i);
467
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
468
+ ...reduced, coverage: { ...reduced.coverage, missingFields: ['customer-secret-in-metadata'] },
469
+ }, base.policy), /unauthorized identity or policy metadata/i);
470
+ assert.throws(() => assertCapsuleAuthorizedByCurrentPolicy({
471
+ ...reduced, redactionReceipt: { ...reduced.redactionReceipt, disclosedClasses: ['customer-secret-in-metadata'] },
472
+ }, base.policy), /invalid redaction receipt classes/i);
473
+ });
474
+ test('server withdrawal resets a workspace to local analysis without retaining a consent receipt', async () => {
475
+ const workspace = await mkdtemp(join(tmpdir(), 'dharma-local-policy-'));
476
+ const signed = signedPolicyAuthorization({
477
+ revision: 'agent-fabric-local-analysis-v1',
478
+ evidence: { automaticDisclosure: { mode: 'local_analysis' }, maximumCapsuleBytes: 1_048_576, maximumDailyUploadBytes: 50_000_000 },
479
+ });
480
+ const generated = await materializeWorkspacePolicy({
481
+ workspace,
482
+ organizationId: 'org_northstar',
483
+ revision: 'content-policy-old',
484
+ serverPolicyAuthorization: signed.envelope,
485
+ serverPublicKeyEd25519: signed.publicKeyEd25519,
486
+ workspaceId: 'workspace-northstar',
487
+ });
488
+ assert.equal(generated.policy.revision, 'agent-fabric-local-analysis-v1');
489
+ assert.deepEqual(generated.policy.evidence.automaticDisclosure, { mode: 'local_analysis' });
490
+ });
491
+ test('server may withdraw content to metadata-only and dry-run does not mutate the workspace policy', async () => {
492
+ const workspace = await mkdtemp(join(tmpdir(), 'dharma-metadata-policy-'));
493
+ const policyPath = join(workspace, '.dharma', 'approved-policy.json');
494
+ const signed = signedPolicyAuthorization({
495
+ revision: 'agent-fabric-metadata-only-v1',
496
+ evidence: { automaticDisclosure: { mode: 'metadata_only' }, maximumCapsuleBytes: 1_048_576, maximumDailyUploadBytes: 50_000_000 },
497
+ });
498
+ const generated = await materializeWorkspacePolicy({
499
+ workspace, organizationId: 'org_northstar', revision: 'old', serverPolicyAuthorization: signed.envelope,
500
+ serverPublicKeyEd25519: signed.publicKeyEd25519, workspaceId: 'workspace-northstar', dryRun: true,
501
+ });
502
+ assert.equal(generated.applied, false);
503
+ assert.equal(generated.policy.evidence.automaticDisclosure?.mode, 'metadata_only');
504
+ await assert.rejects(() => readFile(policyPath, 'utf8'), /ENOENT/);
505
+ });
210
506
  test('materializes signed inline files without repository credentials and rejects traversal', async () => {
211
507
  const root = await mkdtemp(join(tmpdir(), 'dharma-inline-skill-'));
212
508
  const content = Buffer.from('# Private remediation\n');
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/evidence-request/v2",
4
+ "title": "Evidence Request v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "requestId",
10
+ "organizationId",
11
+ "deviceId",
12
+ "workspaceId",
13
+ "trajectoryId",
14
+ "purpose",
15
+ "selectors",
16
+ "maximumBytes",
17
+ "retentionClass",
18
+ "requestedBy",
19
+ "authorityDecisionId",
20
+ "createdAt",
21
+ "expiresAt",
22
+ "nonce",
23
+ "capsuleRevision",
24
+ "capsuleHash",
25
+ "keyVersion",
26
+ "signature"
27
+ ],
28
+ "properties": {
29
+ "schema": {
30
+ "const": "dharma.evidence-request/v2"
31
+ },
32
+ "requestId": {
33
+ "type": "string",
34
+ "format": "uuid"
35
+ },
36
+ "organizationId": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "deviceId": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "workspaceId": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "trajectoryId": {
49
+ "type": "string",
50
+ "format": "uuid"
51
+ },
52
+ "capsuleRevision": {
53
+ "type": "integer",
54
+ "minimum": 1
55
+ },
56
+ "capsuleHash": {
57
+ "type": "string",
58
+ "pattern": "^sha256:[a-f0-9]{64}$"
59
+ },
60
+ "purpose": {
61
+ "type": "string",
62
+ "enum": [
63
+ "evaluation",
64
+ "remediation_validation",
65
+ "incident_response",
66
+ "customer_review",
67
+ "support"
68
+ ]
69
+ },
70
+ "selectors": {
71
+ "type": "array",
72
+ "minItems": 1,
73
+ "items": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "contentId"
78
+ ],
79
+ "properties": {
80
+ "contentId": {
81
+ "type": "string",
82
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
83
+ },
84
+ "range": {
85
+ "type": [
86
+ "object",
87
+ "null"
88
+ ],
89
+ "additionalProperties": false,
90
+ "properties": {
91
+ "start": {
92
+ "type": "integer",
93
+ "minimum": 0
94
+ },
95
+ "end": {
96
+ "type": "integer",
97
+ "minimum": 0
98
+ }
99
+ }
100
+ },
101
+ "reason": {
102
+ "type": "string"
103
+ }
104
+ }
105
+ }
106
+ },
107
+ "maximumBytes": {
108
+ "type": "integer",
109
+ "minimum": 1
110
+ },
111
+ "retentionClass": {
112
+ "type": "string"
113
+ },
114
+ "requestedBy": {
115
+ "type": "string",
116
+ "minLength": 1
117
+ },
118
+ "authorityDecisionId": {
119
+ "type": "string",
120
+ "minLength": 1
121
+ },
122
+ "createdAt": {
123
+ "type": "string",
124
+ "format": "date-time"
125
+ },
126
+ "expiresAt": {
127
+ "type": "string",
128
+ "format": "date-time"
129
+ },
130
+ "nonce": {
131
+ "type": "string",
132
+ "minLength": 1
133
+ },
134
+ "keyVersion": {
135
+ "type": "string",
136
+ "minLength": 1
137
+ },
138
+ "signature": {
139
+ "type": "string",
140
+ "minLength": 1
141
+ }
142
+ }
143
+ }