@dharma-ai-labs/agent-fabric 0.2.130 → 0.2.131

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 (71) hide show
  1. package/AGENT_FABRIC_ONBOARDING.md +1 -1
  2. package/README.md +13 -0
  3. package/dist/demoEnrollment.d.ts.map +1 -1
  4. package/dist/demoEnrollment.js +3 -2
  5. package/dist/demoEnrollment.js.map +1 -1
  6. package/dist/demoPackage.d.ts.map +1 -1
  7. package/dist/demoPackage.js +29 -9
  8. package/dist/demoPackage.js.map +1 -1
  9. package/dist/demoPackage.test.js +75 -1
  10. package/dist/demoPackage.test.js.map +1 -1
  11. package/dist/demoStateRename.d.ts +7 -0
  12. package/dist/demoStateRename.d.ts.map +1 -0
  13. package/dist/demoStateRename.js +21 -0
  14. package/dist/demoStateRename.js.map +1 -0
  15. package/dist/demoStateRename.test.d.ts +2 -0
  16. package/dist/demoStateRename.test.d.ts.map +1 -0
  17. package/dist/demoStateRename.test.js +67 -0
  18. package/dist/demoStateRename.test.js.map +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +26 -18
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.test.js +3 -2
  23. package/dist/index.test.js.map +1 -1
  24. package/dist/namedSessionRepositoryState.d.ts +18 -0
  25. package/dist/namedSessionRepositoryState.d.ts.map +1 -1
  26. package/dist/namedSessionRepositoryState.js +18 -0
  27. package/dist/namedSessionRepositoryState.js.map +1 -1
  28. package/dist/namedSessionRepositoryState.test.js +6 -3
  29. package/dist/namedSessionRepositoryState.test.js.map +1 -1
  30. package/dist/namedSessionService.d.ts +1 -0
  31. package/dist/namedSessionService.d.ts.map +1 -1
  32. package/dist/namedSessionService.js +16 -1
  33. package/dist/namedSessionService.js.map +1 -1
  34. package/dist/namedSessionService.test.js +15 -0
  35. package/dist/namedSessionService.test.js.map +1 -1
  36. package/dist/namedSessionTaskExport.d.ts +22 -0
  37. package/dist/namedSessionTaskExport.d.ts.map +1 -0
  38. package/dist/namedSessionTaskExport.js +158 -0
  39. package/dist/namedSessionTaskExport.js.map +1 -0
  40. package/dist/namedSessionTaskExport.test.d.ts +2 -0
  41. package/dist/namedSessionTaskExport.test.d.ts.map +1 -0
  42. package/dist/namedSessionTaskExport.test.js +385 -0
  43. package/dist/namedSessionTaskExport.test.js.map +1 -0
  44. package/dist/namedSessionTaskExportSync.d.ts +57 -0
  45. package/dist/namedSessionTaskExportSync.d.ts.map +1 -0
  46. package/dist/namedSessionTaskExportSync.js +193 -0
  47. package/dist/namedSessionTaskExportSync.js.map +1 -0
  48. package/dist/pidLock.test.js +33 -1
  49. package/dist/pidLock.test.js.map +1 -1
  50. package/dist/relayAutostart.d.ts +5 -3
  51. package/dist/relayAutostart.d.ts.map +1 -1
  52. package/dist/relayAutostart.js +151 -24
  53. package/dist/relayAutostart.js.map +1 -1
  54. package/dist/relayAutostart.test.js +138 -2
  55. package/dist/relayAutostart.test.js.map +1 -1
  56. package/dist/repositoryPackage.d.ts.map +1 -1
  57. package/dist/repositoryPackage.js +18 -2
  58. package/dist/repositoryPackage.js.map +1 -1
  59. package/dist/repositoryPackage.test.js +29 -0
  60. package/dist/repositoryPackage.test.js.map +1 -1
  61. package/dist/repositoryRelaySupervisor.d.ts +1 -1
  62. package/dist/repositoryRelaySupervisor.d.ts.map +1 -1
  63. package/dist/repositoryRelaySupervisor.js +3 -2
  64. package/dist/repositoryRelaySupervisor.js.map +1 -1
  65. package/dist/repositoryRelaySupervisor.test.js +17 -0
  66. package/dist/repositoryRelaySupervisor.test.js.map +1 -1
  67. package/dist/schemas/codex-task-export-upload-receipt.schema.json +24 -0
  68. package/dist/schemas/codex-task-observation.schema.json +6 -1
  69. package/dist/schemas/codex-task-replay-export.schema.json +375 -0
  70. package/dist/schemas/named-session-task-export-outbox.schema.json +29 -0
  71. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedSessionTaskExport.js","sourceRoot":"","sources":["../src/namedSessionTaskExport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=namedSessionTaskExport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedSessionTaskExport.test.d.ts","sourceRoot":"","sources":["../src/namedSessionTaskExport.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,385 @@
1
+ import assert from 'node:assert/strict';
2
+ import { generateKeyPairSync, randomBytes, randomUUID } from 'node:crypto';
3
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import test from 'node:test';
7
+ import { canonicalize, sha256, signCanonicalObject } from '@dharma-ai-labs/agent-fabric-contracts';
8
+ import { verifyServerAuthorizedPolicy } from '@dharma-ai-labs/agent-fabric-policy';
9
+ import { LocalVault } from '@dharma-ai-labs/agent-fabric-local-vault';
10
+ import { prepareNamedSessionTaskExport } from './namedSessionTaskExport.js';
11
+ import { stageNamedSessionTaskExport, syncNamedSessionTaskExports } from './namedSessionTaskExportSync.js';
12
+ import { retainNamedSessionRepositoryState } from './namedSessionRepositoryState.js';
13
+ import { inventoryRepositoryPackage } from './repositoryPackage.js';
14
+ import { initializeRepositoryKnowledge } from './repositoryKnowledge.js';
15
+ function fixture(workspaceRoot = '/home/synthetic/repository') {
16
+ const binding = { schema: 'dharma.local-provider-session-binding/v1',
17
+ organizationId: 'org_synthetic', repositoryBindingId: randomUUID(), workspaceId: randomUUID(),
18
+ endpointId: randomUUID(), membershipId: randomUUID(), deviceId: randomUUID(), bindingId: randomUUID(),
19
+ provider: 'codex', owner: 'dharma_bridge', sessionId: 'synthetic_thread', workspaceRoot,
20
+ createdAt: new Date(Date.now() - 60000).toISOString(), expiresAt: new Date(Date.now() + 60000).toISOString(),
21
+ maximumProviderCostCents: 10 };
22
+ const startedAt = new Date(Date.now() - 1000).toISOString(), closedAt = new Date().toISOString();
23
+ const request = { method: 'turn/start', params: { threadId: binding.sessionId,
24
+ input: [{ type: 'text', text: 'Define a logical job.' }],
25
+ cwd: binding.workspaceRoot, approvalPolicy: 'never', permissions: 'dharma_work' } };
26
+ const events = [{ sequence: 0, receivedAt: closedAt, notification: { method: 'turn/completed',
27
+ params: { threadId: binding.sessionId, turn: { id: 'synthetic_turn', status: 'completed', items: [
28
+ { type: 'agentMessage', text: 'One tenant-scoped job; inspected /home/synthetic/repository/src/jobs.ts.' },
29
+ { type: 'reasoning', summary: ['PROTECTED_REASONING_CANARY'], encryptedContent: 'PROTECTED_CIPHER_CANARY' },
30
+ ] } } } }];
31
+ const capture = { schema: 'dharma.codex-local-work-capture/v2',
32
+ captureId: randomUUID(), organizationId: binding.organizationId, repositoryBindingId: binding.repositoryBindingId,
33
+ workspaceId: binding.workspaceId, endpointId: binding.endpointId, membershipId: binding.membershipId,
34
+ deviceId: binding.deviceId, bindingId: binding.bindingId, workId: 'synthetic_job', provider: 'codex',
35
+ providerThreadId: binding.sessionId, providerTurnId: 'synthetic_turn', startedAt, closedAt,
36
+ workOutcome: 'completed', providerTurnState: 'completed', captureScope: 'turn_request_and_notifications',
37
+ coverage: 'observed', limitations: [], droppedEvents: 0, acceptedLearningObservation: false, executedModel: null,
38
+ request, requestHash: sha256(JSON.stringify(request)), events, eventsHash: sha256(JSON.stringify(events)) };
39
+ const context = { schema: 'dharma.codex-public-context/v1', threadId: binding.sessionId,
40
+ capturedAt: new Date(Date.now() - 2000).toISOString(), configuredModel: 'synthetic-model',
41
+ configuredModelProvider: 'synthetic-provider', configuredReasoningEffort: 'low', executedModel: null,
42
+ replayMode: 'task_level', limitations: ['public_history_only', 'executed_model_unreported'],
43
+ turns: [{ id: 'prior_turn', status: 'completed', items: [{ type: 'agentMessage',
44
+ text: 'Prior task inspected /home/synthetic/repository/README.md.', encryptedContent: 'PROTECTED_HISTORY_CANARY' }] }] };
45
+ const contextBytes = Buffer.from(canonicalize(context));
46
+ const policy = { schema: 'dharma.organization-policy/v2', organizationId: binding.organizationId,
47
+ revision: 'synthetic-policy', evidence: { defaultMode: 'deep', registeredWorkspaceOnly: true,
48
+ automaticDisclosure: { mode: 'customer_authorized_content', consentReceiptId: `consent_${randomUUID()}`,
49
+ allowedContentClasses: ['native_provider_payload'] }, excludePaths: ['private-graders/**', '**/.env'],
50
+ maximumCapsuleBytes: 1048576, maximumDailyUploadBytes: 8388608, maximumExpansionBytes: 1048576,
51
+ pseudonymizeIdentity: true }, tasks: { defaultNetwork: 'deny', defaultGit: 'read_only', allowedCommands: {},
52
+ writePaths: [], requireLocalConfirmationFor: [] }, skills: { automaticInstall: true,
53
+ automaticPromotionMaxRisk: 'R1', canaryPercent: 10 }, retention: {}, budgets: {} };
54
+ const keys = generateKeyPairSync('ed25519');
55
+ const authorize = () => {
56
+ const authorization = { schema: 'dharma.workspace-policy-authorization/v1',
57
+ organizationId: binding.organizationId, workspaceId: binding.workspaceId,
58
+ policy: { revision: policy.revision, evidence: { automaticDisclosure: policy.evidence.automaticDisclosure,
59
+ maximumCapsuleBytes: policy.evidence.maximumCapsuleBytes, maximumDailyUploadBytes: policy.evidence.maximumDailyUploadBytes,
60
+ maximumExpansionBytes: policy.evidence.maximumExpansionBytes, excludePaths: policy.evidence.excludePaths,
61
+ pseudonymizeIdentity: true } }, issuedAt: new Date(Date.now() - 1000).toISOString(),
62
+ expiresAt: new Date(Date.now() + 60000).toISOString(), keyVersion: 'synthetic-policy-key' };
63
+ policy.serverAuthorization = { ...authorization, signature: signCanonicalObject(authorization, keys.privateKey) };
64
+ verifyServerAuthorizedPolicy({ policy, publicKeyEd25519: keys.publicKey.export({ format: 'jwk' }).x,
65
+ organizationId: binding.organizationId, workspaceId: binding.workspaceId });
66
+ };
67
+ authorize();
68
+ return { input: { binding, capture, contextBytes, contextHash: sha256(contextBytes), policy }, context, authorize };
69
+ }
70
+ test('portable export redacts native paths and protected reasoning with distinct byte lineage', async () => {
71
+ const { input } = fixture(), before = JSON.stringify(input.capture);
72
+ const result = await prepareNamedSessionTaskExport(input);
73
+ assert.equal(result.state, 'ready');
74
+ if (result.state !== 'ready')
75
+ throw new Error('Export was not ready');
76
+ const bytes = String(result.bytes);
77
+ assert.ok(bytes.includes('One tenant-scoped job'));
78
+ for (const excluded of ['PROTECTED_', '/home/synthetic'])
79
+ assert.equal(bytes.includes(excluded), false);
80
+ assert.equal(result.exportHash, sha256(bytes));
81
+ assert.notEqual(result.exportHash, sha256(before));
82
+ assert.equal(JSON.stringify(input.capture), before);
83
+ const value = JSON.parse(bytes);
84
+ assert.equal(value.original.captureHash, sha256(before));
85
+ assert.equal(value.original.contextHash, input.contextHash);
86
+ assert.equal(value.coverage, 'redacted_task_level');
87
+ assert.equal(value.acceptedLearningObservation, false);
88
+ });
89
+ test('unverified, expired, mutated and foreign policy scopes cannot authorize export', async () => {
90
+ const f = fixture();
91
+ const mutations = [
92
+ () => ({ ...f.input, policy: structuredClone(f.input.policy) }),
93
+ () => ({ ...f.input, binding: { ...f.input.binding, workspaceId: randomUUID() } }),
94
+ () => ({ ...f.input, binding: { ...f.input.binding, organizationId: 'org_other' } }),
95
+ ];
96
+ for (const input of mutations.map(mutate => mutate()))
97
+ assert.deepEqual(await prepareNamedSessionTaskExport(input), { state: 'not_authorized', code: 'task_export_not_authorized', acceptedLearningObservation: false });
98
+ f.input.policy.serverAuthorization.expiresAt = new Date(Date.now() - 1).toISOString();
99
+ assert.equal((await prepareNamedSessionTaskExport(f.input)).state, 'not_authorized');
100
+ const changed = fixture();
101
+ changed.input.policy.evidence.excludePaths = [];
102
+ assert.equal((await prepareNamedSessionTaskExport(changed.input)).state, 'not_authorized');
103
+ });
104
+ test('foreign, tampered and incomplete native captures are never exported as qualified work', async () => {
105
+ for (const mutate of [
106
+ (f) => { f.input.binding.deviceId = randomUUID(); },
107
+ (f) => { f.input.capture.providerThreadId = 'other_thread'; },
108
+ (f) => { f.input.capture.coverage = 'partial'; },
109
+ (f) => { f.input.capture.eventsHash = `sha256:${'a'.repeat(64)}`; },
110
+ (f) => { if (f.input.capture.schema === 'dharma.codex-local-work-capture/v2')
111
+ f.input.capture.request.params.cwd = '/other/workspace'; },
112
+ ]) {
113
+ const f = fixture();
114
+ mutate(f);
115
+ assert.deepEqual(await prepareNamedSessionTaskExport(f.input), { state: 'blocked', code: 'task_export_capture_invalid', acceptedLearningObservation: false });
116
+ }
117
+ });
118
+ test('retained context hash, thread, time, terminality and executed-model limits are checked', async () => {
119
+ for (const mutate of [
120
+ (context) => { context.threadId = 'other_thread'; },
121
+ (context) => { context.capturedAt = new Date(Date.now() + 10000).toISOString(); },
122
+ (context) => { context.executedModel = 'unverified-model'; },
123
+ (context) => { context.unknownField = 'UNAUTHORIZED_FIELD'; },
124
+ (context) => { context.turns[0].status = 'inProgress'; },
125
+ ]) {
126
+ const f = fixture();
127
+ mutate(f.context);
128
+ f.input.contextBytes = Buffer.from(canonicalize(f.context));
129
+ f.input.contextHash = sha256(f.input.contextBytes);
130
+ assert.equal((await prepareNamedSessionTaskExport(f.input)).state, 'blocked');
131
+ }
132
+ const tampered = fixture();
133
+ tampered.input.contextHash = `sha256:${'a'.repeat(64)}`;
134
+ assert.deepEqual(await prepareNamedSessionTaskExport(tampered.input), { state: 'blocked', code: 'task_export_context_invalid', acceptedLearningObservation: false });
135
+ });
136
+ test('configured excluded history is reported without exporting its content', async () => {
137
+ const f = fixture();
138
+ f.context.turns[0].items[0].text = 'Inspected private-graders/hidden.json: PRIVATE_GRADER_CANARY';
139
+ f.input.contextBytes = Buffer.from(canonicalize(f.context));
140
+ f.input.contextHash = sha256(f.input.contextBytes);
141
+ const result = await prepareNamedSessionTaskExport(f.input);
142
+ assert.deepEqual(result, { state: 'excluded', code: 'task_export_configured_excluded_path', acceptedLearningObservation: false });
143
+ assert.equal(JSON.stringify(result).includes('PRIVATE_GRADER_CANARY'), false);
144
+ });
145
+ test('nested sensitive fields and serialized protected reasoning never reach the export', async () => {
146
+ const f = fixture();
147
+ const item = f.context.turns[0].items[0];
148
+ item.result = { apiKey: 'SECRET_CANARY', credentials: 'CREDENTIAL_CANARY', response: 'Public response' };
149
+ item.arguments = JSON.stringify({ type: 'reasoning', encryptedContent: 'PROTECTED_JSON_CANARY' });
150
+ f.input.contextBytes = Buffer.from(canonicalize(f.context));
151
+ f.input.contextHash = sha256(f.input.contextBytes);
152
+ const result = await prepareNamedSessionTaskExport(f.input);
153
+ assert.equal(result.state, 'ready');
154
+ if (result.state !== 'ready')
155
+ throw new Error('Export was not ready');
156
+ for (const forbidden of ['SECRET_CANARY', 'CREDENTIAL_CANARY', 'PROTECTED_JSON_CANARY']) {
157
+ assert.equal(result.bytes.includes(forbidden), false);
158
+ }
159
+ assert.ok(result.bytes.includes('Public response'));
160
+ });
161
+ test('Windows and UNC paths are redacted using the existing shared disclosure reducer', async () => {
162
+ for (const workspaceRoot of ['C:\\Users\\synthetic\\repository', '\\\\host\\share\\repository']) {
163
+ const f = fixture();
164
+ f.input.binding.workspaceRoot = workspaceRoot;
165
+ if (f.input.capture.schema !== 'dharma.codex-local-work-capture/v2')
166
+ throw new Error('Missing request');
167
+ f.input.capture.request.params.cwd = workspaceRoot;
168
+ f.input.capture.requestHash = sha256(JSON.stringify(f.input.capture.request));
169
+ f.context.turns[0].items[0].text = `Read ${workspaceRoot}\\README.md.`;
170
+ f.input.contextBytes = Buffer.from(canonicalize(f.context));
171
+ f.input.contextHash = sha256(f.input.contextBytes);
172
+ const result = await prepareNamedSessionTaskExport(f.input);
173
+ assert.equal(result.state, 'ready');
174
+ if (result.state !== 'ready')
175
+ throw new Error('Export was not ready');
176
+ assert.equal(result.bytes.includes('Users'), false);
177
+ assert.equal(result.bytes.includes('host'), false);
178
+ }
179
+ });
180
+ test('policy size limits are enforced and repeats preserve one deterministic export hash', async () => {
181
+ const f = fixture();
182
+ assert.deepEqual(await prepareNamedSessionTaskExport(f.input), await prepareNamedSessionTaskExport(f.input));
183
+ f.input.policy.evidence.maximumCapsuleBytes = 1;
184
+ f.authorize();
185
+ assert.deepEqual(await prepareNamedSessionTaskExport(f.input), { state: 'blocked', code: 'task_export_size_or_schema_invalid', acceptedLearningObservation: false });
186
+ });
187
+ async function queuedExportFixture() {
188
+ const root = await mkdtemp(join(tmpdir(), 'task-export-sync-'));
189
+ const key = randomBytes(32), f = fixture(join(root, 'repository'));
190
+ const scope = { organizationId: f.input.binding.organizationId, repositoryBindingId: f.input.binding.repositoryBindingId,
191
+ workspaceId: f.input.binding.workspaceId, endpointId: f.input.binding.endpointId,
192
+ membershipId: f.input.binding.membershipId, deviceId: f.input.binding.deviceId, provider: f.input.binding.provider };
193
+ const vault = await LocalVault.open({ root, masterKey: key });
194
+ vault.saveProviderSessionBinding(f.input.binding);
195
+ const staged = await stageNamedSessionTaskExport(vault, f.input);
196
+ if (staged.exported.state !== 'ready' || !staged.outbox)
197
+ throw new Error('Outbox not ready');
198
+ return { root, key, f, scope, vault, staged, request: { schema: 'dharma.codex-task-export-upload/v1',
199
+ exportBytes: staged.exported.bytes, exportHash: staged.exported.exportHash },
200
+ response: { ok: true, organizationId: scope.organizationId, correlationId: randomUUID(),
201
+ receipt: { id: randomUUID(), status: 'retained', exportHash: staged.exported.exportHash,
202
+ contentExpiresAt: new Date(Date.now() + 86400000).toISOString(), acceptedLearningObservation: false } } };
203
+ }
204
+ test('lost export response reopens encrypted outbox and sends identical bytes without rerunning work', async () => {
205
+ const q = await queuedExportFixture();
206
+ let vault = q.vault, sends = 0;
207
+ const run = () => syncNamedSessionTaskExports({ vault, bindingId: q.f.input.binding.bindingId, identity: q.scope,
208
+ loadPolicy: async () => q.f.input.policy, send: async (body) => {
209
+ assert.deepEqual(body, q.request);
210
+ if (++sends === 1)
211
+ throw new Error('PRIVATE_LOST_RESPONSE_CANARY');
212
+ return { ...q.response, receipt: { ...q.response.receipt, status: 'duplicate' } };
213
+ } });
214
+ try {
215
+ const repeat = await stageNamedSessionTaskExport(vault, q.f.input);
216
+ assert.deepEqual(repeat.outbox, q.staged.outbox);
217
+ assert.equal((await run()).state, 'pending');
218
+ vault.close();
219
+ vault = await LocalVault.open({ root: q.root, masterKey: q.key });
220
+ const recovered = await run();
221
+ assert.equal(recovered.state, 'delivered');
222
+ assert.equal(recovered.pending, 0);
223
+ assert.equal(recovered.delivered, 1);
224
+ assert.equal(recovered.acceptedLearningObservation, false);
225
+ assert.equal(recovered.lastReceipt?.receipt.acceptedLearningObservation, false);
226
+ const receiptHash = sha256(canonicalize(recovered.lastReceipt));
227
+ assert.equal(JSON.parse((await vault.getBlob(receiptHash)).toString()).receipt.id, q.response.receipt.id);
228
+ vault.close();
229
+ vault = await LocalVault.open({ root: q.root, masterKey: q.key });
230
+ const idle = await run();
231
+ assert.equal(idle.state, 'idle');
232
+ assert.equal(sends, 2);
233
+ assert.deepEqual(idle.lastReceipt, recovered.lastReceipt);
234
+ assert.deepEqual(vault.listProviderSessionTaskExports(q.f.input.binding.bindingId, q.scope), []);
235
+ }
236
+ finally {
237
+ vault.close();
238
+ await rm(q.root, { recursive: true, force: true });
239
+ }
240
+ });
241
+ test('export acknowledgement rejects foreign, altered, expired and learning-admission receipts', async () => {
242
+ for (const change of [
243
+ (value) => { value.organizationId = 'org_foreign'; },
244
+ (value) => { value.receipt.exportHash = `sha256:${'0'.repeat(64)}`; },
245
+ (value) => { value.receipt.acceptedLearningObservation = true; },
246
+ (value) => { value.receipt.contentExpiresAt = new Date(Date.now() - 1000).toISOString(); },
247
+ (value) => { value.grant = 'PRIVATE_RESPONSE_CANARY'; },
248
+ ]) {
249
+ const q = await queuedExportFixture();
250
+ try {
251
+ const response = structuredClone(q.response);
252
+ change(response);
253
+ const result = await syncNamedSessionTaskExports({ vault: q.vault, bindingId: q.f.input.binding.bindingId,
254
+ identity: q.scope, loadPolicy: async () => q.f.input.policy, send: async () => response });
255
+ assert.equal(result.code, 'task_export_receipt_invalid');
256
+ assert.equal(result.state, 'blocked');
257
+ assert.equal(result.delivered, 0);
258
+ assert.equal(result.lastReceipt, undefined);
259
+ assert.equal(JSON.stringify(result).includes('PRIVATE_'), false);
260
+ assert.equal(q.vault.listProviderSessionTaskExports(q.f.input.binding.bindingId, q.scope).length, 1);
261
+ }
262
+ finally {
263
+ q.vault.close();
264
+ await rm(q.root, { recursive: true, force: true });
265
+ }
266
+ }
267
+ });
268
+ test('export retries require original consent and current exclusion limits immediately before sending', async () => {
269
+ for (const change of ['revision', 'consent', 'exclusion', 'binding']) {
270
+ const q = await queuedExportFixture();
271
+ let refreshes = 0, sends = 0;
272
+ try {
273
+ const result = await syncNamedSessionTaskExports({ vault: q.vault, bindingId: q.f.input.binding.bindingId,
274
+ identity: q.scope, loadPolicy: async () => {
275
+ if (++refreshes === 2) {
276
+ if (change === 'revision')
277
+ q.f.input.policy.revision = 'new-revision';
278
+ if (change === 'consent')
279
+ q.f.input.policy.evidence.automaticDisclosure.consentReceiptId = `consent_${randomUUID()}`;
280
+ if (change === 'exclusion')
281
+ q.f.input.policy.evidence.excludePaths = ['**/src/**'];
282
+ if (change === 'binding')
283
+ q.vault.revokeProviderSessionBinding(q.f.input.binding.bindingId, q.scope);
284
+ q.f.authorize();
285
+ }
286
+ return q.f.input.policy;
287
+ }, send: async () => { sends++; return q.response; } });
288
+ assert.equal(result.state, 'blocked', change);
289
+ assert.equal(result.delivered, 0);
290
+ assert.equal(sends, 0);
291
+ }
292
+ finally {
293
+ q.vault.close();
294
+ await rm(q.root, { recursive: true, force: true });
295
+ }
296
+ }
297
+ });
298
+ test('empty outbox does not refresh authority or send network requests', async () => {
299
+ const root = await mkdtemp(join(tmpdir(), 'task-export-idle-')), f = fixture(join(root, 'repository'));
300
+ const vault = await LocalVault.open({ root, masterKey: randomBytes(32) });
301
+ try {
302
+ vault.saveProviderSessionBinding(f.input.binding);
303
+ const result = await syncNamedSessionTaskExports({ vault, bindingId: f.input.binding.bindingId, identity: f.input.binding,
304
+ loadPolicy: async () => { throw new Error('must not refresh'); }, send: async () => { throw new Error('must not send'); } });
305
+ assert.equal(result.state, 'idle');
306
+ assert.equal(result.pending, 0);
307
+ }
308
+ finally {
309
+ vault.close();
310
+ await rm(root, { recursive: true, force: true });
311
+ }
312
+ });
313
+ test('expired raw evidence blocks export without recreating content or executing a provider', async () => {
314
+ const q = await queuedExportFixture();
315
+ try {
316
+ const expired = await q.vault.enforceRawEvidenceRetention({ retentionDays: 30, now: new Date(Date.now() + 31 * 86400000) });
317
+ assert.equal(expired.deleted, 1);
318
+ const result = await syncNamedSessionTaskExports({ vault: q.vault, bindingId: q.f.input.binding.bindingId,
319
+ identity: q.scope, loadPolicy: async () => { throw new Error('must not request authority'); },
320
+ send: async () => { throw new Error('must not send'); } });
321
+ assert.equal(result.state, 'blocked');
322
+ assert.equal(result.code, 'task_export_retained_content_unavailable');
323
+ assert.equal(result.delivered, 0);
324
+ assert.equal(result.acceptedLearningObservation, false);
325
+ }
326
+ finally {
327
+ q.vault.close();
328
+ await rm(q.root, { recursive: true, force: true });
329
+ }
330
+ });
331
+ test('repository-state retention keeps raw and portable evidence in separate encrypted blobs', async (t) => {
332
+ const root = await mkdtemp(join(tmpdir(), 'task-portable-retention-'));
333
+ let vault;
334
+ t.after(async () => { vault?.close(); await rm(root, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); });
335
+ vault = await LocalVault.open({ root: join(root, 'vault'), masterKey: randomBytes(32) });
336
+ const f = fixture();
337
+ f.input.binding.workspaceRoot = root;
338
+ if (f.input.capture.schema !== 'dharma.codex-local-work-capture/v2')
339
+ throw new Error('Missing request');
340
+ f.input.capture.request.params.cwd = root;
341
+ f.input.capture.requestHash = sha256(JSON.stringify(f.input.capture.request));
342
+ const { binding } = f.input;
343
+ vault.saveProviderSessionBinding(binding);
344
+ const policy = { action: 'authorize', confirmed: true,
345
+ requestId: randomUUID(), repositoryBindingId: binding.repositoryBindingId, expectedRevision: 0,
346
+ allowedContentClasses: ['approved_outputs', 'repository_content', 'repository_skills'], approvedRepositoryPaths: ['README.md'], approvedOutputFolders: [],
347
+ automaticValidatedPublication: true, retentionDays: 30, maximumFileBytes: 262144, maximumSnapshotBytes: 4194304,
348
+ maximumDailyUploadBytes: 8388608, expiresAt: null };
349
+ const generationId = randomUUID();
350
+ const sourceAuthorization = { schema: 'dharma.repository-source-authorization/v1',
351
+ organizationId: binding.organizationId, workspaceId: binding.workspaceId, repositoryBindingId: binding.repositoryBindingId,
352
+ repositoryAgentId: randomUUID(), revision: 1, generationId, receiptId: `repo_consent_${generationId}`,
353
+ policyRevision: `repository-source-${generationId}`, confirmedAt: new Date().toISOString(),
354
+ policyHash: sha256(canonicalize(policy)), policy };
355
+ const snapshotInput = { workspace: root, organizationId: binding.organizationId, workspaceId: binding.workspaceId,
356
+ repositoryAgentId: sourceAuthorization.repositoryAgentId, repositoryBindingId: binding.repositoryBindingId, sourceAuthorization };
357
+ const skillRoot = join(root, '.agents/skills/dharma-agent-fabric');
358
+ await mkdir(skillRoot, { recursive: true });
359
+ await writeFile(join(skillRoot, '.dharma-agent-fabric.json'), JSON.stringify({ managedBy: 'dharma-agent-fabric', workspaceId: binding.workspaceId }));
360
+ await initializeRepositoryKnowledge(snapshotInput);
361
+ await writeFile(join(root, 'README.md'), 'SYNTHETIC_BEFORE');
362
+ const before = await inventoryRepositoryPackage(snapshotInput);
363
+ await writeFile(join(root, 'README.md'), 'SYNTHETIC_AFTER');
364
+ const after = await inventoryRepositoryPackage(snapshotInput);
365
+ const receipt = await retainNamedSessionRepositoryState({ vault, binding, workId: f.input.capture.workId,
366
+ capture: f.input.capture, before, after, activeBundleId: randomUUID(), activeBundleHash: `sha256:${'a'.repeat(64)}`,
367
+ taskExport: { policy: f.input.policy, contextBytes: f.input.contextBytes, contextHash: f.input.contextHash } });
368
+ assert.equal(receipt.portableExport?.state, 'ready');
369
+ if (receipt.portableExport?.state !== 'ready')
370
+ throw new Error('Portable retention not ready');
371
+ const raw = await vault.getBlob(receipt.captureHash), portable = await vault.getBlob(receipt.portableExport.exportHash);
372
+ assert.ok(raw.toString().includes('PROTECTED_CIPHER_CANARY'));
373
+ assert.equal(portable.toString().includes('PROTECTED_'), false);
374
+ assert.equal(receipt.captureHash, sha256(raw));
375
+ assert.equal(receipt.portableExport.exportHash, sha256(portable));
376
+ assert.notEqual(receipt.captureHash, receipt.portableExport.exportHash);
377
+ assert.equal(receipt.acceptedLearningObservation, false);
378
+ assert.equal(JSON.stringify(receipt).includes('CANARY'), false);
379
+ for (const hash of [receipt.captureHash, receipt.portableExport.exportHash]) {
380
+ const digest = hash.slice(7), encrypted = await readFile(join(root, 'vault/blobs', digest.slice(0, 2), `${digest}.blob`));
381
+ assert.equal(encrypted.includes(Buffer.from('PROTECTED_CIPHER_CANARY')), false);
382
+ assert.equal(encrypted.includes(Buffer.from('One tenant-scoped job')), false);
383
+ }
384
+ });
385
+ //# sourceMappingURL=namedSessionTaskExport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedSessionTaskExport.test.js","sourceRoot":"","sources":["../src/namedSessionTaskExport.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { LocalProviderSessionIdentity, LocalVault } from '@dharma-ai-labs/agent-fabric-local-vault';
2
+ import { type OrganizationPolicy } from '@dharma-ai-labs/agent-fabric-policy';
3
+ import { type NamedSessionTaskExportInput } from './namedSessionTaskExport.js';
4
+ interface UploadReceipt {
5
+ ok: true;
6
+ organizationId: string;
7
+ correlationId: string;
8
+ receipt: {
9
+ id: string;
10
+ status: 'retained' | 'duplicate';
11
+ exportHash: string;
12
+ contentExpiresAt: string;
13
+ acceptedLearningObservation: false;
14
+ };
15
+ }
16
+ export interface NamedSessionTaskExportSyncResult {
17
+ state: 'idle' | 'delivered' | 'pending' | 'blocked';
18
+ pending: number | null;
19
+ delivered: number;
20
+ code?: string;
21
+ lastReceipt?: UploadReceipt;
22
+ acceptedLearningObservation: false;
23
+ }
24
+ export declare function stageNamedSessionTaskExport(vault: LocalVault, input: NamedSessionTaskExportInput): Promise<{
25
+ exported: {
26
+ state: "not_authorized" | "blocked" | "excluded";
27
+ code: string;
28
+ acceptedLearningObservation: false;
29
+ };
30
+ outbox?: undefined;
31
+ } | {
32
+ exported: {
33
+ state: "ready";
34
+ bytes: string;
35
+ exportHash: string;
36
+ acceptedLearningObservation: false;
37
+ };
38
+ outbox: {
39
+ state: "pending";
40
+ workKey: string;
41
+ descriptorHash: string;
42
+ acceptedLearningObservation: false;
43
+ };
44
+ }>;
45
+ export declare function syncNamedSessionTaskExports(input: {
46
+ vault: LocalVault;
47
+ bindingId: string;
48
+ identity: LocalProviderSessionIdentity;
49
+ loadPolicy(): Promise<OrganizationPolicy>;
50
+ send(body: {
51
+ schema: 'dharma.codex-task-export-upload/v1';
52
+ exportBytes: string;
53
+ exportHash: string;
54
+ }): Promise<unknown>;
55
+ }): Promise<NamedSessionTaskExportSyncResult>;
56
+ export {};
57
+ //# sourceMappingURL=namedSessionTaskExportSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedSessionTaskExportSync.d.ts","sourceRoot":"","sources":["../src/namedSessionTaskExportSync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA+B,4BAA4B,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtI,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAG5F,OAAO,EAAiC,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAO9G,UAAU,aAAa;IACrB,EAAE,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IACxD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QACpG,2BAA2B,EAAE,KAAK,CAAA;KAAE,CAAC;CACxC;AACD,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAC/F,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,aAAa,CAAC;IAAC,2BAA2B,EAAE,KAAK,CAAC;CAChF;AAkBD,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;GA0BtG;AAED,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,KAAK,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,4BAA4B,CAAC;IAC7E,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,oCAAoC,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzH,GAAG,OAAO,CAAC,gCAAgC,CAAC,CA6F5C"}