@dharma-ai-labs/agent-fabric 0.2.49 → 0.2.50

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 (198) hide show
  1. package/dist/index.d.ts +88 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +826 -175
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.test.js +2 -2
  6. package/dist/repositoryCandidateSync.d.ts +55 -0
  7. package/dist/repositoryCandidateSync.d.ts.map +1 -0
  8. package/dist/repositoryCandidateSync.js +177 -0
  9. package/dist/repositoryCandidateSync.js.map +1 -0
  10. package/dist/repositoryCandidateSync.test.d.ts +2 -0
  11. package/dist/repositoryCandidateSync.test.d.ts.map +1 -0
  12. package/dist/repositoryCandidateSync.test.js +141 -0
  13. package/dist/repositoryCandidateSync.test.js.map +1 -0
  14. package/dist/repositoryInstalledKnowledge.d.ts +13 -0
  15. package/dist/repositoryInstalledKnowledge.d.ts.map +1 -0
  16. package/dist/repositoryInstalledKnowledge.js +25 -0
  17. package/dist/repositoryInstalledKnowledge.js.map +1 -0
  18. package/dist/repositoryInstallerFiles.d.ts +6 -0
  19. package/dist/repositoryInstallerFiles.d.ts.map +1 -0
  20. package/dist/repositoryInstallerFiles.js +113 -0
  21. package/dist/repositoryInstallerFiles.js.map +1 -0
  22. package/dist/repositoryKnowledge.d.ts +119 -0
  23. package/dist/repositoryKnowledge.d.ts.map +1 -0
  24. package/dist/repositoryKnowledge.js +462 -0
  25. package/dist/repositoryKnowledge.js.map +1 -0
  26. package/dist/repositoryKnowledge.test.d.ts +2 -0
  27. package/dist/repositoryKnowledge.test.d.ts.map +1 -0
  28. package/dist/repositoryKnowledge.test.js +245 -0
  29. package/dist/repositoryKnowledge.test.js.map +1 -0
  30. package/dist/repositoryKnowledgeRetention.test.d.ts +2 -0
  31. package/dist/repositoryKnowledgeRetention.test.d.ts.map +1 -0
  32. package/dist/repositoryKnowledgeRetention.test.js +386 -0
  33. package/dist/repositoryKnowledgeRetention.test.js.map +1 -0
  34. package/dist/repositoryOnboardingCaller.test.d.ts +2 -0
  35. package/dist/repositoryOnboardingCaller.test.d.ts.map +1 -0
  36. package/dist/repositoryOnboardingCaller.test.js +197 -0
  37. package/dist/repositoryOnboardingCaller.test.js.map +1 -0
  38. package/dist/repositoryOnboardingFlow.test.d.ts +2 -0
  39. package/dist/repositoryOnboardingFlow.test.d.ts.map +1 -0
  40. package/dist/repositoryOnboardingFlow.test.js +47 -0
  41. package/dist/repositoryOnboardingFlow.test.js.map +1 -0
  42. package/dist/repositoryPackage.d.ts +115 -0
  43. package/dist/repositoryPackage.d.ts.map +1 -0
  44. package/dist/repositoryPackage.js +1095 -0
  45. package/dist/repositoryPackage.js.map +1 -0
  46. package/dist/repositoryPackage.test.d.ts +2 -0
  47. package/dist/repositoryPackage.test.d.ts.map +1 -0
  48. package/dist/repositoryPackage.test.js +709 -0
  49. package/dist/repositoryPackage.test.js.map +1 -0
  50. package/dist/repositoryPackageDelivery.d.ts +29 -0
  51. package/dist/repositoryPackageDelivery.d.ts.map +1 -0
  52. package/dist/repositoryPackageDelivery.js +140 -0
  53. package/dist/repositoryPackageDelivery.js.map +1 -0
  54. package/dist/repositoryPackageDelivery.test.d.ts +2 -0
  55. package/dist/repositoryPackageDelivery.test.d.ts.map +1 -0
  56. package/dist/repositoryPackageDelivery.test.js +787 -0
  57. package/dist/repositoryPackageDelivery.test.js.map +1 -0
  58. package/dist/repositoryPackageDeliveryCaller.test.d.ts +2 -0
  59. package/dist/repositoryPackageDeliveryCaller.test.d.ts.map +1 -0
  60. package/dist/repositoryPackageDeliveryCaller.test.js +18 -0
  61. package/dist/repositoryPackageDeliveryCaller.test.js.map +1 -0
  62. package/dist/repositoryPackageDeliveryPreflight.test.d.ts +2 -0
  63. package/dist/repositoryPackageDeliveryPreflight.test.d.ts.map +1 -0
  64. package/dist/repositoryPackageDeliveryPreflight.test.js +29 -0
  65. package/dist/repositoryPackageDeliveryPreflight.test.js.map +1 -0
  66. package/dist/repositoryPackageTransfer.d.ts +85 -0
  67. package/dist/repositoryPackageTransfer.d.ts.map +1 -0
  68. package/dist/repositoryPackageTransfer.js +233 -0
  69. package/dist/repositoryPackageTransfer.js.map +1 -0
  70. package/dist/repositoryPackageTransfer.test.d.ts +2 -0
  71. package/dist/repositoryPackageTransfer.test.d.ts.map +1 -0
  72. package/dist/repositoryPackageTransfer.test.js +173 -0
  73. package/dist/repositoryPackageTransfer.test.js.map +1 -0
  74. package/dist/repositoryPackageTransferV2.test.d.ts +2 -0
  75. package/dist/repositoryPackageTransferV2.test.d.ts.map +1 -0
  76. package/dist/repositoryPackageTransferV2.test.js +549 -0
  77. package/dist/repositoryPackageTransferV2.test.js.map +1 -0
  78. package/dist/repositoryPackageTransferV2Schema.test.d.ts +2 -0
  79. package/dist/repositoryPackageTransferV2Schema.test.d.ts.map +1 -0
  80. package/dist/repositoryPackageTransferV2Schema.test.js +48 -0
  81. package/dist/repositoryPackageTransferV2Schema.test.js.map +1 -0
  82. package/dist/repositoryReleaseMetadata.d.ts +37 -0
  83. package/dist/repositoryReleaseMetadata.d.ts.map +1 -0
  84. package/dist/repositoryReleaseMetadata.js +251 -0
  85. package/dist/repositoryReleaseMetadata.js.map +1 -0
  86. package/dist/repositoryReleaseMetadata.test.d.ts +2 -0
  87. package/dist/repositoryReleaseMetadata.test.d.ts.map +1 -0
  88. package/dist/repositoryReleaseMetadata.test.js +297 -0
  89. package/dist/repositoryReleaseMetadata.test.js.map +1 -0
  90. package/dist/repositoryRoleDerivation.d.ts +11 -0
  91. package/dist/repositoryRoleDerivation.d.ts.map +1 -0
  92. package/dist/repositoryRoleDerivation.js +59 -0
  93. package/dist/repositoryRoleDerivation.js.map +1 -0
  94. package/dist/repositoryRoleDerivation.test.d.ts +2 -0
  95. package/dist/repositoryRoleDerivation.test.d.ts.map +1 -0
  96. package/dist/repositoryRoleDerivation.test.js +33 -0
  97. package/dist/repositoryRoleDerivation.test.js.map +1 -0
  98. package/dist/repositoryRoleMetadata.d.ts +63 -0
  99. package/dist/repositoryRoleMetadata.d.ts.map +1 -0
  100. package/dist/repositoryRoleMetadata.js +203 -0
  101. package/dist/repositoryRoleMetadata.js.map +1 -0
  102. package/dist/repositoryRoleMetadata.test.d.ts +2 -0
  103. package/dist/repositoryRoleMetadata.test.d.ts.map +1 -0
  104. package/dist/repositoryRoleMetadata.test.js +296 -0
  105. package/dist/repositoryRoleMetadata.test.js.map +1 -0
  106. package/dist/repositoryRoleQuestion.d.ts +36 -0
  107. package/dist/repositoryRoleQuestion.d.ts.map +1 -0
  108. package/dist/repositoryRoleQuestion.js +68 -0
  109. package/dist/repositoryRoleQuestion.js.map +1 -0
  110. package/dist/repositoryRoleQuestion.test.d.ts +2 -0
  111. package/dist/repositoryRoleQuestion.test.d.ts.map +1 -0
  112. package/dist/repositoryRoleQuestion.test.js +66 -0
  113. package/dist/repositoryRoleQuestion.test.js.map +1 -0
  114. package/dist/repositorySourceAuthorization.d.ts +43 -0
  115. package/dist/repositorySourceAuthorization.d.ts.map +1 -0
  116. package/dist/repositorySourceAuthorization.js +164 -0
  117. package/dist/repositorySourceAuthorization.js.map +1 -0
  118. package/dist/repositorySourceCapture.test.d.ts +2 -0
  119. package/dist/repositorySourceCapture.test.d.ts.map +1 -0
  120. package/dist/repositorySourceCapture.test.js +303 -0
  121. package/dist/repositorySourceCapture.test.js.map +1 -0
  122. package/dist/repositorySourceSync.d.ts +54 -0
  123. package/dist/repositorySourceSync.d.ts.map +1 -0
  124. package/dist/repositorySourceSync.js +88 -0
  125. package/dist/repositorySourceSync.js.map +1 -0
  126. package/dist/repositorySourceSync.test.d.ts +2 -0
  127. package/dist/repositorySourceSync.test.d.ts.map +1 -0
  128. package/dist/repositorySourceSync.test.js +218 -0
  129. package/dist/repositorySourceSync.test.js.map +1 -0
  130. package/dist/schemas/repository-knowledge-retention-v1.schema.json +26 -0
  131. package/dist/schemas/repository-knowledge-v2.schema.json +74 -0
  132. package/dist/schemas/repository-knowledge.schema.json +63 -0
  133. package/dist/schemas/repository-package-chunk-v2.schema.json +15 -0
  134. package/dist/schemas/repository-package-chunk.schema.json +18 -0
  135. package/dist/schemas/repository-package-delivery-v1.schema.json +51 -0
  136. package/dist/schemas/repository-package-envelope-v1.schema.json +16 -0
  137. package/dist/schemas/repository-package-transfer-v2.schema.json +36 -0
  138. package/dist/schemas/repository-package-transfer.schema.json +34 -0
  139. package/dist/schemas/repository-package-v2.schema.json +491 -0
  140. package/dist/schemas/repository-package-v3.schema.json +36 -0
  141. package/dist/schemas/repository-package.schema.json +94 -0
  142. package/dist/schemas/repository-release-manifest.schema.json +34 -0
  143. package/dist/schemas/repository-role-metadata.schema.json +82 -0
  144. package/dist/schemas/skill-preparation-pointer-v1.schema.json +28 -0
  145. package/dist/schemas/skill-preparation-v1.schema.json +32 -0
  146. package/dist/skillPollResponse.test.d.ts +2 -0
  147. package/dist/skillPollResponse.test.d.ts.map +1 -0
  148. package/dist/skillPollResponse.test.js +37 -0
  149. package/dist/skillPollResponse.test.js.map +1 -0
  150. package/dist/skillPreparation.test.d.ts +2 -0
  151. package/dist/skillPreparation.test.d.ts.map +1 -0
  152. package/dist/skillPreparation.test.js +163 -0
  153. package/dist/skillPreparation.test.js.map +1 -0
  154. package/dist/skillPreparationCache.d.ts +34 -0
  155. package/dist/skillPreparationCache.d.ts.map +1 -0
  156. package/dist/skillPreparationCache.js +371 -0
  157. package/dist/skillPreparationCache.js.map +1 -0
  158. package/dist/skillPreparationCache.test.d.ts +2 -0
  159. package/dist/skillPreparationCache.test.d.ts.map +1 -0
  160. package/dist/skillPreparationCache.test.js +316 -0
  161. package/dist/skillPreparationCache.test.js.map +1 -0
  162. package/dist/skillPreparationCaller.test.d.ts +2 -0
  163. package/dist/skillPreparationCaller.test.d.ts.map +1 -0
  164. package/dist/skillPreparationCaller.test.js +32 -0
  165. package/dist/skillPreparationCaller.test.js.map +1 -0
  166. package/dist/skillPreparationPump.d.ts +11 -0
  167. package/dist/skillPreparationPump.d.ts.map +1 -0
  168. package/dist/skillPreparationPump.js +41 -0
  169. package/dist/skillPreparationPump.js.map +1 -0
  170. package/dist/skillPreparationPump.test.d.ts +2 -0
  171. package/dist/skillPreparationPump.test.d.ts.map +1 -0
  172. package/dist/skillPreparationPump.test.js +87 -0
  173. package/dist/skillPreparationPump.test.js.map +1 -0
  174. package/dist/skillPreparationRecord.d.ts +2 -0
  175. package/dist/skillPreparationRecord.d.ts.map +1 -0
  176. package/dist/skillPreparationRecord.js +36 -0
  177. package/dist/skillPreparationRecord.js.map +1 -0
  178. package/dist/skillPreparationTransaction.d.ts +13 -0
  179. package/dist/skillPreparationTransaction.d.ts.map +1 -0
  180. package/dist/skillPreparationTransaction.js +236 -0
  181. package/dist/skillPreparationTransaction.js.map +1 -0
  182. package/dist/skillPreparationTransaction.test.d.ts +2 -0
  183. package/dist/skillPreparationTransaction.test.d.ts.map +1 -0
  184. package/dist/skillPreparationTransaction.test.js +181 -0
  185. package/dist/skillPreparationTransaction.test.js.map +1 -0
  186. package/dist/skillSyncPolicy.test.d.ts +2 -0
  187. package/dist/skillSyncPolicy.test.d.ts.map +1 -0
  188. package/dist/skillSyncPolicy.test.js +156 -0
  189. package/dist/skillSyncPolicy.test.js.map +1 -0
  190. package/dist/usage.d.ts +1 -1
  191. package/dist/usage.d.ts.map +1 -1
  192. package/dist/usage.js +1 -1
  193. package/dist/usage.js.map +1 -1
  194. package/dist/windowsProcessPortability.test.d.ts +2 -0
  195. package/dist/windowsProcessPortability.test.d.ts.map +1 -0
  196. package/dist/windowsProcessPortability.test.js +14 -0
  197. package/dist/windowsProcessPortability.test.js.map +1 -0
  198. package/package.json +7 -4
@@ -0,0 +1,386 @@
1
+ import assert from 'node:assert/strict';
2
+ import { createHash, generateKeyPairSync, randomUUID } from 'node:crypto';
3
+ import { mkdir, mkdtemp, readFile, rename, rm, symlink, unlink, writeFile } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { dirname, resolve } from 'node:path';
6
+ import test from 'node:test';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { canonicalize, signCanonicalObject, validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
9
+ import { calculateBundleHash, contentHash, installSkillBundle, readVerifiedRepositoryKnowledge } from '@dharma-ai-labs/agent-fabric-skill-manager';
10
+ import * as knowledge from './repositoryKnowledge.js';
11
+ import { inventoryRepositoryPackage, serializeRepositoryPackageSnapshot, writeRepositoryPackageSnapshot } from './repositoryPackage.js';
12
+ import { RepositorySourceWatcher, scanRepositorySourceChanges } from './repositorySourceSync.js';
13
+ import { selectInstalledRepositoryKnowledge } from './repositoryInstalledKnowledge.js';
14
+ const ROOT = '.agents/skills/dharma-agent-fabric';
15
+ const CATALOG = `${ROOT}/knowledge/CATALOG.json`, MANIFEST = `${ROOT}/MANIFEST.json`;
16
+ const digest = (value) => `sha256:${createHash('sha256').update(value).digest('hex')}`;
17
+ const H = digest('synthetic source fixture');
18
+ const scope = { organizationId: 'org_retention_fixture', workspaceId: '056b63dc-ebed-48ed-85d8-02c72f623ea8',
19
+ repositoryBindingId: '73a95988-fd64-41ba-a0b9-6c8867d03788', repositoryAgentId: '57f61652-a5eb-46e4-930c-9478cd4a9c31' };
20
+ function authorization() {
21
+ const generationId = '1a731db0-d1bb-469c-8ffd-e1f10bece914';
22
+ const policy = { action: 'authorize', confirmed: true, requestId: '5ff2ee1b-6cb3-459e-a977-ea99c757bf30',
23
+ repositoryBindingId: scope.repositoryBindingId, expectedRevision: 0,
24
+ allowedContentClasses: ['approved_outputs', 'repository_content', 'repository_skills'],
25
+ approvedRepositoryPaths: ['README.md', 'docs'], approvedOutputFolders: ['output/approved'], automaticValidatedPublication: true,
26
+ retentionDays: 30, maximumFileBytes: 262144, maximumSnapshotBytes: 4194304, maximumDailyUploadBytes: 8388608, expiresAt: null };
27
+ return { schema: 'dharma.repository-source-authorization/v1', ...scope, revision: 1, generationId,
28
+ receiptId: `repo_consent_${generationId}`, policyRevision: `repository-source-${generationId}`,
29
+ policyHash: digest(canonicalize(policy)), confirmedAt: '2020-01-01T00:00:00+00:00', policy };
30
+ }
31
+ function readSource(input) {
32
+ return knowledge
33
+ .readRepositoryKnowledgeSource(input);
34
+ }
35
+ function rehash(snapshot) {
36
+ const { snapshotHash: _hash, snapshotId: _id, ...base } = snapshot.manifest;
37
+ const snapshotHash = digest(canonicalize(base));
38
+ return { ...snapshot, manifest: { ...base, snapshotHash, snapshotId: `repository-package-${snapshotHash.slice(7)}` } };
39
+ }
40
+ async function fixture(t) {
41
+ const workspace = await mkdtemp(resolve(tmpdir(), 'repository-knowledge-retention-'));
42
+ t.after(() => rm(workspace, { recursive: true, force: true }));
43
+ const put = async (path, content) => {
44
+ await mkdir(dirname(resolve(workspace, path)), { recursive: true });
45
+ if (path === CATALOG) {
46
+ await writeFile(resolve(workspace, `${CATALOG}.pending`), content);
47
+ await rename(resolve(workspace, `${CATALOG}.pending`), resolve(workspace, CATALOG));
48
+ }
49
+ else
50
+ await writeFile(resolve(workspace, path), content);
51
+ };
52
+ await put(`${ROOT}/.dharma-agent-fabric.json`, JSON.stringify({ managedBy: 'dharma-agent-fabric', workspaceId: scope.workspaceId }));
53
+ const initial = await knowledge.initializeRepositoryKnowledge({ ...scope, workspace, now: new Date('2026-09-17T00:00:00Z') });
54
+ const initialCatalogBytes = await readFile(resolve(workspace, CATALOG));
55
+ const conceptId = `concept_${digest(canonicalize({ schema: 'dharma.repository-concept-identity/v1',
56
+ organizationId: scope.organizationId, repositoryAgentId: scope.repositoryAgentId, name: 'tenant boundary' })).slice(7)}`;
57
+ const catalog = { schema: 'dharma.repository-knowledge/v2', managedBy: 'dharma-agent-fabric',
58
+ organizationId: scope.organizationId, repositoryAgentId: scope.repositoryAgentId, knowledgeBaseId: initial.catalog.knowledgeBaseId,
59
+ generation: 2, authority: 'requires_verified_release', policyHash: H, sourceSnapshotHash: H,
60
+ sourceLocalCatalogHash: initial.catalog.catalogHash, projectionHash: H,
61
+ repoAtlas: { associationId: 'decb788c-f9f5-45e6-934c-0d3f0d796ec6', knowledgeBaseId: initial.catalog.knowledgeBaseId,
62
+ organizationId: scope.organizationId, repositoryAgentId: scope.repositoryAgentId, basis: 'semantic_analysis',
63
+ sourceWindowIds: ['acbe76d4-e2cd-4b4d-ae0f-d8dd3a92de21'], analysisHash: H },
64
+ concepts: [{ conceptId, canonicalName: 'Tenant boundary', aliases: ['Organization scope'],
65
+ definition: 'Customer identity is organization-scoped.',
66
+ sources: [{ sourceId: '7abe76d4-e2cd-4b4d-ae0f-d8dd3a92de21', sourceHash: H, firstLine: 1, lastLine: 1,
67
+ quote: 'Customer identity is organization-scoped.' }] }],
68
+ unresolved: [{ proposalHash: H, reason: 'conflicting_definition', conceptId }] };
69
+ const catalogBytes = Buffer.from(`${canonicalize(catalog)}\n`);
70
+ const manifest = { schema: 'dharma.repository-release-manifest/v1', organizationId: scope.organizationId,
71
+ repositoryAgentId: scope.repositoryAgentId, generation: 2, authority: 'requires_verified_release', sourceManifestHash: H,
72
+ sourceSnapshotHash: H, policyHash: H, knowledgeBaseId: initial.catalog.knowledgeBaseId,
73
+ atlasAssociationId: catalog.repoAtlas.associationId, sourceSkills: [],
74
+ files: [{ path: `${ROOT}/SKILL.md`, sha256: digest('# Shared skill\n'), sizeBytes: Buffer.byteLength('# Shared skill\n'), role: 'skill' },
75
+ { path: CATALOG, sha256: digest(catalogBytes), sizeBytes: catalogBytes.length, role: 'knowledge' },
76
+ { path: '.dharma/onboarding-prompt.md', sha256: digest('Prompt\n'), sizeBytes: 7, role: 'onboarding_prompt' }] };
77
+ const manifestBytes = Buffer.from(`${canonicalize(manifest)}\n`);
78
+ await put('README.md', '# Shared repository');
79
+ await put('skills/review/SKILL.md', '# Review');
80
+ await put(`${ROOT}/SKILL.md`, '# Shared skill\n');
81
+ await put(CATALOG, catalogBytes);
82
+ await put(MANIFEST, manifestBytes);
83
+ return { workspace, put, catalog, catalogBytes, initialCatalogBytes, manifest, manifestBytes, input: { ...scope, workspace, sourceAuthorization: authorization() } };
84
+ }
85
+ test('governed inventory retains populated delivered v2 knowledge without relabeling it as unsigned v1', async (t) => {
86
+ const f = await fixture(t);
87
+ const snapshot = await inventoryRepositoryPackage(f.input);
88
+ assert.equal(snapshot.manifest.schema, 'dharma.repository-package/v3');
89
+ const mapping = snapshot.manifest.knowledge;
90
+ assert.equal(mapping.authority, 'unverified_prior_release_reference');
91
+ assert.equal(mapping.atlasAssociation, 'requires_verified_release');
92
+ assert.equal(mapping.catalogHash, digest(f.catalogBytes));
93
+ const blobs = new Map(snapshot.blobs.map(blob => [blob.sha256, Buffer.from(blob.contentBase64, 'base64')]));
94
+ for (const [path, bytes] of [[CATALOG, f.catalogBytes], [MANIFEST, f.manifestBytes]]) {
95
+ const file = snapshot.manifest.files.find(file => file.path === path);
96
+ assert.ok(file);
97
+ assert.equal(file.role, 'knowledge');
98
+ assert.deepEqual(blobs.get(file.sha256), bytes);
99
+ }
100
+ const serialized = serializeRepositoryPackageSnapshot(snapshot);
101
+ const schema = await validateContract(fileURLToPath(new URL('./schemas/', import.meta.url)), 'https://schemas.dharma-ai.io/repository-package/v3', snapshot.manifest);
102
+ assert.equal(schema.ok, true, schema.ok ? '' : JSON.stringify(schema.errors));
103
+ assert.ok(!serialized.includes('serverReleaseId'));
104
+ const persisted = await writeRepositoryPackageSnapshot({ workspace: f.workspace, snapshot, candidateOnly: true });
105
+ assert.equal(persisted.disposition, 'candidate_only');
106
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
107
+ assert.deepEqual(await readFile(resolve(f.workspace, MANIFEST)), f.manifestBytes);
108
+ });
109
+ test('source reader returns delivered knowledge as an observation with exact bytes and no invented release identity', async (t) => {
110
+ const f = await fixture(t);
111
+ const observed = await readSource(f.input);
112
+ assert.ok(observed);
113
+ assert.equal(observed.kind, 'delivered_v2_requires_verified_release');
114
+ assert.deepEqual(observed.catalog, f.catalog);
115
+ assert.deepEqual(observed.catalogBytes, f.catalogBytes);
116
+ assert.deepEqual(observed.manifestBytes, f.manifestBytes);
117
+ assert.equal(observed.reference?.generation, 2);
118
+ assert.equal(observed.reference?.catalogHash, digest(f.catalogBytes));
119
+ assert.equal(observed.reference?.manifestHash, digest(f.manifestBytes));
120
+ assert.equal(observed.reference?.repositoryBindingId, scope.repositoryBindingId);
121
+ assert.equal(observed.reference?.authority, 'unverified_prior_release_reference');
122
+ assert.equal(Object.hasOwn(observed.reference, 'releaseId'), false);
123
+ assert.equal(Object.hasOwn(observed.reference, 'bundleId'), false);
124
+ });
125
+ test('v1 reader and local initialization remain unsigned and fail closed instead of clearing delivered knowledge', async (t) => {
126
+ const f = await fixture(t);
127
+ await assert.rejects(knowledge.initializeRepositoryKnowledge(f.input), /knowledge/);
128
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
129
+ await assert.rejects(knowledge.readRepositoryKnowledge(f.input), /knowledge/);
130
+ const other = await fixture(t);
131
+ await unlink(resolve(other.workspace, CATALOG));
132
+ await unlink(resolve(other.workspace, MANIFEST));
133
+ await knowledge.initializeRepositoryKnowledge(other.input);
134
+ const observed = await readSource(other.input);
135
+ assert.equal(observed?.kind, 'local_v1_unsigned');
136
+ assert.equal(observed?.reference, undefined);
137
+ });
138
+ for (const mode of ['foreign_catalog', 'foreign_manifest', 'generation', 'policy', 'snapshot', 'atlas', 'catalog_hash', 'catalog_size', 'missing_manifest']) {
139
+ test(`delivered knowledge retention rejects ${mode} without modifying the existing catalog`, async (t) => {
140
+ const f = await fixture(t);
141
+ if (mode === 'foreign_catalog')
142
+ f.catalog.organizationId = 'org_other';
143
+ else if (mode === 'foreign_manifest')
144
+ f.manifest.repositoryAgentId = 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa';
145
+ else if (mode === 'generation')
146
+ f.manifest.generation = 3;
147
+ else if (mode === 'policy')
148
+ f.manifest.policyHash = digest('other policy');
149
+ else if (mode === 'snapshot')
150
+ f.manifest.sourceSnapshotHash = digest('other snapshot');
151
+ else if (mode === 'atlas')
152
+ f.manifest.atlasAssociationId = 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa';
153
+ else if (mode === 'catalog_hash')
154
+ f.manifest.files.find(file => file.path === CATALOG).sha256 = digest('other catalog');
155
+ else if (mode === 'catalog_size')
156
+ f.manifest.files.find(file => file.path === CATALOG).sizeBytes++;
157
+ const before = Buffer.from(`${canonicalize(f.catalog)}\n`);
158
+ await f.put(CATALOG, before);
159
+ if (mode === 'missing_manifest')
160
+ await unlink(resolve(f.workspace, MANIFEST));
161
+ else
162
+ await f.put(MANIFEST, `${canonicalize(f.manifest)}\n`);
163
+ await assert.rejects(inventoryRepositoryPackage(f.input), /knowledge|retention|release|scope/i);
164
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), before);
165
+ });
166
+ }
167
+ test('autonomous source scan retains delivered concepts and conflicts while collecting an approved report edit', async (t) => {
168
+ const f = await fixture(t);
169
+ await f.put('output/approved/report.md', 'An authorized new observation.');
170
+ const a = authorization();
171
+ const transport = { signedGet: async () => ({ ok: true, organizationId: scope.organizationId,
172
+ policy: { organizationId: scope.organizationId, repositoryBindingId: scope.repositoryBindingId, repositoryAgentId: scope.repositoryAgentId,
173
+ current: { active: true, reason: 'authorized', ...a } } }) };
174
+ const watcher = new RepositorySourceWatcher(1000);
175
+ let now = 0;
176
+ const input = { ...f.input, transport, watcher, monotonicNow: () => now };
177
+ assert.equal((await scanRepositorySourceChanges(input)).state, 'debouncing');
178
+ now = 1000;
179
+ const result = await scanRepositorySourceChanges(input);
180
+ assert.equal(result.state, 'local_candidate_collected');
181
+ assert.equal(result.sharedAuthority, 'pending');
182
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
183
+ assert.deepEqual(await readFile(resolve(f.workspace, MANIFEST)), f.manifestBytes);
184
+ now = 2000;
185
+ assert.equal((await scanRepositorySourceChanges(input)).state, 'unchanged');
186
+ });
187
+ test('retained knowledge cannot be collected through a symlinked catalog or without governed repository identity', async (t) => {
188
+ const f = await fixture(t), other = await fixture(t);
189
+ await unlink(resolve(f.workspace, CATALOG));
190
+ await symlink(resolve(other.workspace, CATALOG), resolve(f.workspace, CATALOG));
191
+ await assert.rejects(inventoryRepositoryPackage(f.input), /symlink/);
192
+ await assert.rejects(inventoryRepositoryPackage({ ...other.input, sourceAuthorization: undefined }), /governed|authorization|retention|knowledge/i);
193
+ assert.deepEqual(await readFile(resolve(other.workspace, CATALOG)), other.catalogBytes);
194
+ });
195
+ for (const mode of ['binding', 'generation', 'catalog_hash', 'manifest_hash', 'catalog_size', 'authority', 'downgrade', 'missing_knowledge', 'missing_reference']) {
196
+ test(`serializer rejects self-rehashed retained reference ${mode} without implying signed authority`, async (t) => {
197
+ const f = await fixture(t);
198
+ const snapshot = await inventoryRepositoryPackage(f.input);
199
+ assert.equal(snapshot.manifest.schema, 'dharma.repository-package/v3');
200
+ const mutated = structuredClone(snapshot);
201
+ const mapping = mutated.manifest.knowledge;
202
+ const reference = mapping.priorRelease;
203
+ if (mode === 'binding')
204
+ reference.repositoryBindingId = 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa';
205
+ else if (mode === 'generation')
206
+ reference.generation = 3;
207
+ else if (mode === 'catalog_hash')
208
+ reference.catalogHash = digest('foreign catalog');
209
+ else if (mode === 'manifest_hash')
210
+ reference.manifestHash = digest('foreign manifest');
211
+ else if (mode === 'catalog_size')
212
+ reference.catalogSizeBytes = Number(reference.catalogSizeBytes) + 1;
213
+ else if (mode === 'authority')
214
+ mapping.authority = 'requires_verified_release';
215
+ else if (mode === 'downgrade')
216
+ mutated.manifest.schema = 'dharma.repository-package/v2';
217
+ else if (mode === 'missing_reference')
218
+ delete mapping.priorRelease;
219
+ else
220
+ delete mutated.manifest.knowledge;
221
+ assert.throws(() => serializeRepositoryPackageSnapshot(rehash(mutated)), /knowledge|retention|integrity|scope/i);
222
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
223
+ });
224
+ }
225
+ test('retention schema and opaque catalog parsing reject injected release IDs, unknown fields and oversized bytes', async (t) => {
226
+ const f = await fixture(t);
227
+ const observed = await readSource(f.input);
228
+ assert.ok(observed?.reference);
229
+ const validate = knowledge.validateRepositoryKnowledgeRetention;
230
+ assert.throws(() => validate({ identity: scope, catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes,
231
+ reference: { ...observed.reference, releaseId: 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa' } }), /retention/);
232
+ await f.put(CATALOG, `${canonicalize({ ...f.catalog, arbitraryAuthority: 'trusted' })}\n`);
233
+ await assert.rejects(readSource(f.input), /schema/);
234
+ await f.put(CATALOG, Buffer.alloc(262145, 'x'));
235
+ await assert.rejects(readSource(f.input), /limit/);
236
+ });
237
+ test('serializer counts every file instance toward total budgets even when content blobs are deduplicated', async (t) => {
238
+ const f = await fixture(t);
239
+ const snapshot = await inventoryRepositoryPackage(f.input);
240
+ const content = Buffer.alloc(65536, 'x'), sha256 = digest(content);
241
+ snapshot.blobs.push({ sha256, contentBase64: content.toString('base64') });
242
+ for (let n = 0; n < 65; n++)
243
+ snapshot.manifest.files.push({ path: `docs/copy-${n}.md`, role: 'repository_content', sha256, sizeBytes: content.length });
244
+ const a = snapshot.manifest.sourceAuthorization;
245
+ snapshot.manifest.sourceFingerprint = digest(canonicalize({ organizationId: snapshot.manifest.organizationId,
246
+ repositoryBindingId: a.repositoryBindingId, repositoryAgentId: a.repositoryAgentId,
247
+ generationId: a.generationId, policyHash: a.policyHash,
248
+ files: snapshot.manifest.files.filter(file => file.role !== 'knowledge'), skills: snapshot.manifest.skills }));
249
+ assert.throws(() => serializeRepositoryPackageSnapshot(rehash(snapshot)), /byte limit/);
250
+ });
251
+ test('locally edited canonical knowledge remains an unverified retention claim rather than an approved update', async (t) => {
252
+ const f = await fixture(t);
253
+ f.catalog.concepts[0].definition = 'A changed local definition that requires trusted server resolution.';
254
+ const edited = Buffer.from(`${canonicalize(f.catalog)}\n`);
255
+ const entry = f.manifest.files.find(file => file.path === CATALOG);
256
+ entry.sha256 = digest(edited);
257
+ entry.sizeBytes = edited.length;
258
+ await f.put(CATALOG, edited);
259
+ await f.put(MANIFEST, `${canonicalize(f.manifest)}\n`);
260
+ const snapshot = await inventoryRepositoryPackage(f.input);
261
+ assert.equal(snapshot.manifest.authority, 'local_inventory_not_signed');
262
+ assert.equal(snapshot.manifest.knowledge?.authority, 'unverified_prior_release_reference');
263
+ const collected = await writeRepositoryPackageSnapshot({ workspace: f.workspace, snapshot });
264
+ assert.equal(collected.disposition, 'candidate_only');
265
+ assert.equal(collected.managedCopiesPath, null);
266
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), edited);
267
+ });
268
+ test('installed-provider ownership marker is scoped without inventing a release ID from its bundle', async (t) => {
269
+ const f = await fixture(t);
270
+ await f.put(`${ROOT}/.dharma-agent-fabric.json`, JSON.stringify({ bundleId: 'fe8cf113-3c95-4baf-a7b9-941a2d1f5bb2',
271
+ skillId: 'repository-agent-fabric-package', workspaceId: scope.workspaceId }));
272
+ const observed = await readSource(f.input);
273
+ assert.ok(observed?.reference);
274
+ assert.equal(Object.hasOwn(observed.reference, 'bundleId'), false);
275
+ await f.put(`${ROOT}/.dharma-agent-fabric.json`, JSON.stringify({ bundleId: 'fe8cf113-3c95-4baf-a7b9-941a2d1f5bb2',
276
+ skillId: 'repository-agent-fabric-package', workspaceId: 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa' }));
277
+ await assert.rejects(readSource(f.input), /Unmanaged/);
278
+ });
279
+ test('actual public native installation supplies populated knowledge to governed work-repository inventory', async (t) => {
280
+ const f = await fixture(t), native = await mkdtemp(resolve(tmpdir(), 'repository-knowledge-native-'));
281
+ t.after(() => rm(native, { recursive: true, force: true }));
282
+ const server = generateKeyPairSync('ed25519'), device = generateKeyPairSync('ed25519'), deviceId = randomUUID();
283
+ const unsigned = { schema: 'dharma.skill-bundle/v2', bundleId: randomUUID(), organizationId: scope.organizationId,
284
+ version: '2', operation: 'install', skills: [{ skillId: 'dharma-agent-fabric', version: '2',
285
+ repository: 'https://github.com/synthetic/control.git', commit: 'b'.repeat(40), path: ROOT,
286
+ contentHash: await contentHash(resolve(f.workspace, ROOT)) }], riskClass: 'R2',
287
+ targetSelectors: { organizationAgentIds: [scope.repositoryAgentId], deviceIds: [deviceId], workspaceIds: [scope.workspaceId], providers: ['codex'] },
288
+ activationPolicy: 'next_session', rollbackBundleId: null, evaluationReceiptId: 'synthetic-not-live-evaluation',
289
+ createdAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 3600000).toISOString() };
290
+ const bundleHash = calculateBundleHash(unsigned), bundle = { ...unsigned, bundleHash, signature: signCanonicalObject({ ...unsigned, bundleHash }, server.privateKey) };
291
+ const receipt = await installSkillBundle({ bundle, sourceDirectory: f.workspace, nativeSkillDirectory: native,
292
+ policy: { organizationId: scope.organizationId, skills: { automaticInstall: true } },
293
+ serverPublicKey: server.publicKey, devicePrivateKey: device.privateKey, deviceId, organizationAgentId: scope.repositoryAgentId,
294
+ workspaceId: scope.workspaceId, provider: 'codex' });
295
+ await f.put(CATALOG, f.initialCatalogBytes);
296
+ const observed = await readVerifiedRepositoryKnowledge({ nativeSkillDirectory: native, organizationId: scope.organizationId,
297
+ organizationAgentId: scope.repositoryAgentId, workspaceId: scope.workspaceId, deviceId, provider: 'codex',
298
+ serverPublicKey: server.publicKey, devicePublicKey: device.publicKey, expectedReceiptHash: receipt.receiptHash });
299
+ assert.ok(observed);
300
+ const inventoryInput = { ...f.input, retainedKnowledge: observed };
301
+ const snapshot = await inventoryRepositoryPackage(inventoryInput);
302
+ assert.equal(snapshot.manifest.schema, 'dharma.repository-package/v3');
303
+ const catalogFile = snapshot.manifest.files.find(file => file.path === CATALOG);
304
+ assert.deepEqual(Buffer.from(snapshot.blobs.find(blob => blob.sha256 === catalogFile.sha256).contentBase64, 'base64'), f.catalogBytes);
305
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.initialCatalogBytes);
306
+ });
307
+ test('autonomous scan resolves receipt-pinned knowledge and rechecks it before candidate persistence', async (t) => {
308
+ const f = await fixture(t);
309
+ await f.put(CATALOG, f.initialCatalogBytes);
310
+ const a = authorization(), watcher = new RepositorySourceWatcher(1000);
311
+ const transport = { signedGet: async () => ({ ok: true, organizationId: scope.organizationId,
312
+ policy: { organizationId: scope.organizationId, repositoryBindingId: scope.repositoryBindingId, repositoryAgentId: scope.repositoryAgentId,
313
+ current: { active: true, reason: 'authorized', ...a } } }) };
314
+ let now = 0, calls = 0;
315
+ const input = { ...f.input, transport, watcher, monotonicNow: () => now,
316
+ loadRetainedKnowledge: async () => { calls++; return { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes }; } };
317
+ assert.equal((await scanRepositorySourceChanges(input)).state, 'debouncing');
318
+ now = 1000;
319
+ const result = await scanRepositorySourceChanges(input);
320
+ assert.equal(result.state, 'local_candidate_collected');
321
+ assert.equal(calls, 3);
322
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.initialCatalogBytes);
323
+ });
324
+ test('autonomous scan blocks when the verified retained release changes during collection', async (t) => {
325
+ const f = await fixture(t), a = authorization(), watcher = new RepositorySourceWatcher(1000);
326
+ const transport = { signedGet: async () => ({ ok: true, organizationId: scope.organizationId,
327
+ policy: { organizationId: scope.organizationId, repositoryBindingId: scope.repositoryBindingId, repositoryAgentId: scope.repositoryAgentId,
328
+ current: { active: true, reason: 'authorized', ...a } } }) };
329
+ let now = 0, calls = 0;
330
+ const input = { ...f.input, transport, watcher, monotonicNow: () => now,
331
+ loadRetainedKnowledge: async () => ++calls > 2 ? null : { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes } };
332
+ assert.equal((await scanRepositorySourceChanges(input)).state, 'debouncing');
333
+ now = 1000;
334
+ await assert.rejects(scanRepositorySourceChanges(input), /release|knowledge.*changed/i);
335
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
336
+ });
337
+ test('installed provider selection keeps the highest observed valid generation without manufacturing activation', async (t) => {
338
+ const f = await fixture(t), newerCatalog = structuredClone(f.catalog), newerManifest = structuredClone(f.manifest);
339
+ newerCatalog.generation = 3;
340
+ newerManifest.generation = 3;
341
+ const catalogBytes = Buffer.from(`${canonicalize(newerCatalog)}\n`);
342
+ const entry = newerManifest.files.find(file => file.path === CATALOG);
343
+ entry.sha256 = digest(catalogBytes);
344
+ entry.sizeBytes = catalogBytes.length;
345
+ const manifestBytes = Buffer.from(`${canonicalize(newerManifest)}\n`), calls = [];
346
+ const observed = await selectInstalledRepositoryKnowledge({ ...scope, loadProvider: async (provider) => {
347
+ calls.push(provider);
348
+ return provider === 'codex' ? { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes }
349
+ : provider === 'claude' ? { catalogBytes, manifestBytes } : null;
350
+ } });
351
+ assert.deepEqual(calls, ['codex', 'claude', 'agy', 'hermes']);
352
+ assert.ok(observed);
353
+ assert.deepEqual(observed.catalogBytes, catalogBytes);
354
+ const snapshot = await inventoryRepositoryPackage({ ...f.input, retainedKnowledge: observed });
355
+ assert.equal(snapshot.manifest.knowledge?.authority, 'unverified_prior_release_reference');
356
+ assert.deepEqual(await readFile(resolve(f.workspace, CATALOG)), f.catalogBytes);
357
+ });
358
+ test('installed provider selection rejects conflicting bytes for one generation', async (t) => {
359
+ const f = await fixture(t), catalog = structuredClone(f.catalog), manifest = structuredClone(f.manifest);
360
+ catalog.concepts[0].definition = 'A conflicting same-generation definition.';
361
+ const catalogBytes = Buffer.from(`${canonicalize(catalog)}\n`), entry = manifest.files.find(file => file.path === CATALOG);
362
+ entry.sha256 = digest(catalogBytes);
363
+ entry.sizeBytes = catalogBytes.length;
364
+ const manifestBytes = Buffer.from(`${canonicalize(manifest)}\n`);
365
+ await assert.rejects(selectInstalledRepositoryKnowledge({ ...scope, loadProvider: async (provider) => provider === 'codex'
366
+ ? { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes } : { catalogBytes, manifestBytes } }), /generation conflict/);
367
+ });
368
+ test('installed provider selection never falls back to empty knowledge after a loader failure', async (t) => {
369
+ const f = await fixture(t);
370
+ await assert.rejects(selectInstalledRepositoryKnowledge({ ...scope, loadProvider: async (provider) => {
371
+ if (provider === 'claude')
372
+ throw new Error('Expired enrolled provider authorization');
373
+ return { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes };
374
+ } }), /Expired enrolled/);
375
+ assert.equal(await selectInstalledRepositoryKnowledge({ ...scope, loadProvider: async () => null }), null);
376
+ });
377
+ test('source collection validates retained scope and bounded bytes before use', async (t) => {
378
+ const f = await fixture(t), catalog = structuredClone(f.catalog);
379
+ catalog.organizationId = 'org_foreign';
380
+ await assert.rejects(inventoryRepositoryPackage({ ...f.input,
381
+ retainedKnowledge: { catalogBytes: Buffer.from(`${canonicalize(catalog)}\n`), manifestBytes: f.manifestBytes } }), /scope/);
382
+ await assert.rejects(selectInstalledRepositoryKnowledge({ ...scope, loadProvider: async () => ({ catalogBytes: Buffer.alloc(262145), manifestBytes: f.manifestBytes }) }), /limit/);
383
+ await assert.rejects(inventoryRepositoryPackage({ ...f.input, sourceAuthorization: undefined,
384
+ retainedKnowledge: { catalogBytes: f.catalogBytes, manifestBytes: f.manifestBytes } }), /governed scope/);
385
+ });
386
+ //# sourceMappingURL=repositoryKnowledgeRetention.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositoryKnowledgeRetention.test.js","sourceRoot":"","sources":["../src/repositoryKnowledgeRetention.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=repositoryOnboardingCaller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositoryOnboardingCaller.test.d.ts","sourceRoot":"","sources":["../src/repositoryOnboardingCaller.test.ts"],"names":[],"mappings":""}