@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.
- package/dist/index.d.ts +88 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +826 -175
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +2 -2
- package/dist/repositoryCandidateSync.d.ts +55 -0
- package/dist/repositoryCandidateSync.d.ts.map +1 -0
- package/dist/repositoryCandidateSync.js +177 -0
- package/dist/repositoryCandidateSync.js.map +1 -0
- package/dist/repositoryCandidateSync.test.d.ts +2 -0
- package/dist/repositoryCandidateSync.test.d.ts.map +1 -0
- package/dist/repositoryCandidateSync.test.js +141 -0
- package/dist/repositoryCandidateSync.test.js.map +1 -0
- package/dist/repositoryInstalledKnowledge.d.ts +13 -0
- package/dist/repositoryInstalledKnowledge.d.ts.map +1 -0
- package/dist/repositoryInstalledKnowledge.js +25 -0
- package/dist/repositoryInstalledKnowledge.js.map +1 -0
- package/dist/repositoryInstallerFiles.d.ts +6 -0
- package/dist/repositoryInstallerFiles.d.ts.map +1 -0
- package/dist/repositoryInstallerFiles.js +113 -0
- package/dist/repositoryInstallerFiles.js.map +1 -0
- package/dist/repositoryKnowledge.d.ts +119 -0
- package/dist/repositoryKnowledge.d.ts.map +1 -0
- package/dist/repositoryKnowledge.js +462 -0
- package/dist/repositoryKnowledge.js.map +1 -0
- package/dist/repositoryKnowledge.test.d.ts +2 -0
- package/dist/repositoryKnowledge.test.d.ts.map +1 -0
- package/dist/repositoryKnowledge.test.js +245 -0
- package/dist/repositoryKnowledge.test.js.map +1 -0
- package/dist/repositoryKnowledgeRetention.test.d.ts +2 -0
- package/dist/repositoryKnowledgeRetention.test.d.ts.map +1 -0
- package/dist/repositoryKnowledgeRetention.test.js +386 -0
- package/dist/repositoryKnowledgeRetention.test.js.map +1 -0
- package/dist/repositoryOnboardingCaller.test.d.ts +2 -0
- package/dist/repositoryOnboardingCaller.test.d.ts.map +1 -0
- package/dist/repositoryOnboardingCaller.test.js +197 -0
- package/dist/repositoryOnboardingCaller.test.js.map +1 -0
- package/dist/repositoryOnboardingFlow.test.d.ts +2 -0
- package/dist/repositoryOnboardingFlow.test.d.ts.map +1 -0
- package/dist/repositoryOnboardingFlow.test.js +47 -0
- package/dist/repositoryOnboardingFlow.test.js.map +1 -0
- package/dist/repositoryPackage.d.ts +115 -0
- package/dist/repositoryPackage.d.ts.map +1 -0
- package/dist/repositoryPackage.js +1095 -0
- package/dist/repositoryPackage.js.map +1 -0
- package/dist/repositoryPackage.test.d.ts +2 -0
- package/dist/repositoryPackage.test.d.ts.map +1 -0
- package/dist/repositoryPackage.test.js +709 -0
- package/dist/repositoryPackage.test.js.map +1 -0
- package/dist/repositoryPackageDelivery.d.ts +29 -0
- package/dist/repositoryPackageDelivery.d.ts.map +1 -0
- package/dist/repositoryPackageDelivery.js +140 -0
- package/dist/repositoryPackageDelivery.js.map +1 -0
- package/dist/repositoryPackageDelivery.test.d.ts +2 -0
- package/dist/repositoryPackageDelivery.test.d.ts.map +1 -0
- package/dist/repositoryPackageDelivery.test.js +787 -0
- package/dist/repositoryPackageDelivery.test.js.map +1 -0
- package/dist/repositoryPackageDeliveryCaller.test.d.ts +2 -0
- package/dist/repositoryPackageDeliveryCaller.test.d.ts.map +1 -0
- package/dist/repositoryPackageDeliveryCaller.test.js +18 -0
- package/dist/repositoryPackageDeliveryCaller.test.js.map +1 -0
- package/dist/repositoryPackageDeliveryPreflight.test.d.ts +2 -0
- package/dist/repositoryPackageDeliveryPreflight.test.d.ts.map +1 -0
- package/dist/repositoryPackageDeliveryPreflight.test.js +29 -0
- package/dist/repositoryPackageDeliveryPreflight.test.js.map +1 -0
- package/dist/repositoryPackageTransfer.d.ts +85 -0
- package/dist/repositoryPackageTransfer.d.ts.map +1 -0
- package/dist/repositoryPackageTransfer.js +233 -0
- package/dist/repositoryPackageTransfer.js.map +1 -0
- package/dist/repositoryPackageTransfer.test.d.ts +2 -0
- package/dist/repositoryPackageTransfer.test.d.ts.map +1 -0
- package/dist/repositoryPackageTransfer.test.js +173 -0
- package/dist/repositoryPackageTransfer.test.js.map +1 -0
- package/dist/repositoryPackageTransferV2.test.d.ts +2 -0
- package/dist/repositoryPackageTransferV2.test.d.ts.map +1 -0
- package/dist/repositoryPackageTransferV2.test.js +549 -0
- package/dist/repositoryPackageTransferV2.test.js.map +1 -0
- package/dist/repositoryPackageTransferV2Schema.test.d.ts +2 -0
- package/dist/repositoryPackageTransferV2Schema.test.d.ts.map +1 -0
- package/dist/repositoryPackageTransferV2Schema.test.js +48 -0
- package/dist/repositoryPackageTransferV2Schema.test.js.map +1 -0
- package/dist/repositoryReleaseMetadata.d.ts +37 -0
- package/dist/repositoryReleaseMetadata.d.ts.map +1 -0
- package/dist/repositoryReleaseMetadata.js +251 -0
- package/dist/repositoryReleaseMetadata.js.map +1 -0
- package/dist/repositoryReleaseMetadata.test.d.ts +2 -0
- package/dist/repositoryReleaseMetadata.test.d.ts.map +1 -0
- package/dist/repositoryReleaseMetadata.test.js +297 -0
- package/dist/repositoryReleaseMetadata.test.js.map +1 -0
- package/dist/repositoryRoleDerivation.d.ts +11 -0
- package/dist/repositoryRoleDerivation.d.ts.map +1 -0
- package/dist/repositoryRoleDerivation.js +59 -0
- package/dist/repositoryRoleDerivation.js.map +1 -0
- package/dist/repositoryRoleDerivation.test.d.ts +2 -0
- package/dist/repositoryRoleDerivation.test.d.ts.map +1 -0
- package/dist/repositoryRoleDerivation.test.js +33 -0
- package/dist/repositoryRoleDerivation.test.js.map +1 -0
- package/dist/repositoryRoleMetadata.d.ts +63 -0
- package/dist/repositoryRoleMetadata.d.ts.map +1 -0
- package/dist/repositoryRoleMetadata.js +203 -0
- package/dist/repositoryRoleMetadata.js.map +1 -0
- package/dist/repositoryRoleMetadata.test.d.ts +2 -0
- package/dist/repositoryRoleMetadata.test.d.ts.map +1 -0
- package/dist/repositoryRoleMetadata.test.js +296 -0
- package/dist/repositoryRoleMetadata.test.js.map +1 -0
- package/dist/repositoryRoleQuestion.d.ts +36 -0
- package/dist/repositoryRoleQuestion.d.ts.map +1 -0
- package/dist/repositoryRoleQuestion.js +68 -0
- package/dist/repositoryRoleQuestion.js.map +1 -0
- package/dist/repositoryRoleQuestion.test.d.ts +2 -0
- package/dist/repositoryRoleQuestion.test.d.ts.map +1 -0
- package/dist/repositoryRoleQuestion.test.js +66 -0
- package/dist/repositoryRoleQuestion.test.js.map +1 -0
- package/dist/repositorySourceAuthorization.d.ts +43 -0
- package/dist/repositorySourceAuthorization.d.ts.map +1 -0
- package/dist/repositorySourceAuthorization.js +164 -0
- package/dist/repositorySourceAuthorization.js.map +1 -0
- package/dist/repositorySourceCapture.test.d.ts +2 -0
- package/dist/repositorySourceCapture.test.d.ts.map +1 -0
- package/dist/repositorySourceCapture.test.js +303 -0
- package/dist/repositorySourceCapture.test.js.map +1 -0
- package/dist/repositorySourceSync.d.ts +54 -0
- package/dist/repositorySourceSync.d.ts.map +1 -0
- package/dist/repositorySourceSync.js +88 -0
- package/dist/repositorySourceSync.js.map +1 -0
- package/dist/repositorySourceSync.test.d.ts +2 -0
- package/dist/repositorySourceSync.test.d.ts.map +1 -0
- package/dist/repositorySourceSync.test.js +218 -0
- package/dist/repositorySourceSync.test.js.map +1 -0
- package/dist/schemas/repository-knowledge-retention-v1.schema.json +26 -0
- package/dist/schemas/repository-knowledge-v2.schema.json +74 -0
- package/dist/schemas/repository-knowledge.schema.json +63 -0
- package/dist/schemas/repository-package-chunk-v2.schema.json +15 -0
- package/dist/schemas/repository-package-chunk.schema.json +18 -0
- package/dist/schemas/repository-package-delivery-v1.schema.json +51 -0
- package/dist/schemas/repository-package-envelope-v1.schema.json +16 -0
- package/dist/schemas/repository-package-transfer-v2.schema.json +36 -0
- package/dist/schemas/repository-package-transfer.schema.json +34 -0
- package/dist/schemas/repository-package-v2.schema.json +491 -0
- package/dist/schemas/repository-package-v3.schema.json +36 -0
- package/dist/schemas/repository-package.schema.json +94 -0
- package/dist/schemas/repository-release-manifest.schema.json +34 -0
- package/dist/schemas/repository-role-metadata.schema.json +82 -0
- package/dist/schemas/skill-preparation-pointer-v1.schema.json +28 -0
- package/dist/schemas/skill-preparation-v1.schema.json +32 -0
- package/dist/skillPollResponse.test.d.ts +2 -0
- package/dist/skillPollResponse.test.d.ts.map +1 -0
- package/dist/skillPollResponse.test.js +37 -0
- package/dist/skillPollResponse.test.js.map +1 -0
- package/dist/skillPreparation.test.d.ts +2 -0
- package/dist/skillPreparation.test.d.ts.map +1 -0
- package/dist/skillPreparation.test.js +163 -0
- package/dist/skillPreparation.test.js.map +1 -0
- package/dist/skillPreparationCache.d.ts +34 -0
- package/dist/skillPreparationCache.d.ts.map +1 -0
- package/dist/skillPreparationCache.js +371 -0
- package/dist/skillPreparationCache.js.map +1 -0
- package/dist/skillPreparationCache.test.d.ts +2 -0
- package/dist/skillPreparationCache.test.d.ts.map +1 -0
- package/dist/skillPreparationCache.test.js +316 -0
- package/dist/skillPreparationCache.test.js.map +1 -0
- package/dist/skillPreparationCaller.test.d.ts +2 -0
- package/dist/skillPreparationCaller.test.d.ts.map +1 -0
- package/dist/skillPreparationCaller.test.js +32 -0
- package/dist/skillPreparationCaller.test.js.map +1 -0
- package/dist/skillPreparationPump.d.ts +11 -0
- package/dist/skillPreparationPump.d.ts.map +1 -0
- package/dist/skillPreparationPump.js +41 -0
- package/dist/skillPreparationPump.js.map +1 -0
- package/dist/skillPreparationPump.test.d.ts +2 -0
- package/dist/skillPreparationPump.test.d.ts.map +1 -0
- package/dist/skillPreparationPump.test.js +87 -0
- package/dist/skillPreparationPump.test.js.map +1 -0
- package/dist/skillPreparationRecord.d.ts +2 -0
- package/dist/skillPreparationRecord.d.ts.map +1 -0
- package/dist/skillPreparationRecord.js +36 -0
- package/dist/skillPreparationRecord.js.map +1 -0
- package/dist/skillPreparationTransaction.d.ts +13 -0
- package/dist/skillPreparationTransaction.d.ts.map +1 -0
- package/dist/skillPreparationTransaction.js +236 -0
- package/dist/skillPreparationTransaction.js.map +1 -0
- package/dist/skillPreparationTransaction.test.d.ts +2 -0
- package/dist/skillPreparationTransaction.test.d.ts.map +1 -0
- package/dist/skillPreparationTransaction.test.js +181 -0
- package/dist/skillPreparationTransaction.test.js.map +1 -0
- package/dist/skillSyncPolicy.test.d.ts +2 -0
- package/dist/skillSyncPolicy.test.d.ts.map +1 -0
- package/dist/skillSyncPolicy.test.js +156 -0
- package/dist/skillSyncPolicy.test.js.map +1 -0
- package/dist/usage.d.ts +1 -1
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +1 -1
- package/dist/usage.js.map +1 -1
- package/dist/windowsProcessPortability.test.d.ts +2 -0
- package/dist/windowsProcessPortability.test.d.ts.map +1 -0
- package/dist/windowsProcessPortability.test.js +14 -0
- package/dist/windowsProcessPortability.test.js.map +1 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"repositoryOnboardingCaller.test.d.ts","sourceRoot":"","sources":["../src/repositoryOnboardingCaller.test.ts"],"names":[],"mappings":""}
|