@dharma-ai-labs/agent-fabric 0.2.85 → 0.2.87
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 +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -6
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +72 -2
- package/dist/index.test.js.map +1 -1
- package/dist/repositoryOnboardingFlow.test.js +19 -2
- package/dist/repositoryOnboardingFlow.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import test from 'node:test';
|
|
4
|
-
import { canonicalEndpointRole, canonicalRepositoryPackage } from './index.js';
|
|
4
|
+
import { canonicalEndpointRole, canonicalRepositoryPackage, canonicalRepositoryPackagePolicyGeneration, repositoryPackageNeedsPolicyRefresh } from './index.js';
|
|
5
5
|
const ids = {
|
|
6
6
|
candidateId: '77f61652-a5eb-46e4-930c-9478cd4a9c31',
|
|
7
7
|
releaseId: '87f61652-a5eb-46e4-930c-9478cd4a9c31',
|
|
@@ -17,6 +17,22 @@ test('repository connect package state distinguishes unseen and published canoni
|
|
|
17
17
|
releaseId: ids.releaseId, generation: 4, consolidationMode: 'initial_repository' };
|
|
18
18
|
assert.deepEqual(canonicalRepositoryPackage(published), published);
|
|
19
19
|
assert.throws(() => canonicalRepositoryPackage({ ...published, releaseId: null }), /inconsistent/);
|
|
20
|
+
assert.throws(() => canonicalRepositoryPackage({ ...published, sourcePolicyGenerationId: ids.candidateId }), /invalid/);
|
|
21
|
+
});
|
|
22
|
+
test('onboarding refreshes a published package only after its source policy generation changes', () => {
|
|
23
|
+
const published = { ...canonicalRepositoryPackage({ state: 'published', candidateId: ids.candidateId,
|
|
24
|
+
operationId: `sha256:${'a'.repeat(64)}`, snapshotHash: `sha256:${'b'.repeat(64)}`,
|
|
25
|
+
sourceManifestHash: `sha256:${'c'.repeat(64)}`, releaseId: ids.releaseId,
|
|
26
|
+
generation: 4, consolidationMode: 'repository_update' }), sourcePolicyGenerationId: ids.candidateId };
|
|
27
|
+
assert.equal(repositoryPackageNeedsPolicyRefresh(published, ids.candidateId), false);
|
|
28
|
+
assert.equal(repositoryPackageNeedsPolicyRefresh(published, ids.releaseId), true);
|
|
29
|
+
assert.equal(repositoryPackageNeedsPolicyRefresh({ ...published, sourcePolicyGenerationId: undefined }, ids.releaseId), false);
|
|
30
|
+
});
|
|
31
|
+
test('package policy generation is a separately validated backward-compatible connect hint', () => {
|
|
32
|
+
assert.equal(canonicalRepositoryPackagePolicyGeneration(ids.candidateId), ids.candidateId);
|
|
33
|
+
assert.equal(canonicalRepositoryPackagePolicyGeneration(null), null);
|
|
34
|
+
assert.equal(canonicalRepositoryPackagePolicyGeneration(undefined), undefined);
|
|
35
|
+
assert.throws(() => canonicalRepositoryPackagePolicyGeneration('wrong'), /invalid/);
|
|
20
36
|
});
|
|
21
37
|
test('repository connect endpoint role state is exact and revisioned', () => {
|
|
22
38
|
assert.equal(canonicalEndpointRole(null), null);
|
|
@@ -27,7 +43,8 @@ test('one prompt submits initial knowledge only for an absent package and derive
|
|
|
27
43
|
const source = await readFile(new URL('../src/index.ts', import.meta.url), 'utf8');
|
|
28
44
|
const onboard = source.slice(source.indexOf('async function onboard('), source.indexOf('async function evidenceSync('));
|
|
29
45
|
assert.match(onboard, /canonicalPackage\.state === 'absent'/);
|
|
30
|
-
assert.match(onboard, /
|
|
46
|
+
assert.match(onboard, /canonicalPackage\.state === 'absent' \|\| refreshPolicy/);
|
|
47
|
+
assert.match(onboard, /snapshot: initialSnapshot, initialRepository: canonicalPackage\.state === 'absent'/);
|
|
31
48
|
assert.match(onboard, /: await adoptRepositoryCandidate\(/);
|
|
32
49
|
assert.match(onboard, /const derivedRole = deriveRepositoryRole\(/);
|
|
33
50
|
assert.match(onboard, /const roleInput = roleRequested \?/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositoryOnboardingFlow.test.js","sourceRoot":"","sources":["../src/repositoryOnboardingFlow.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"repositoryOnboardingFlow.test.js","sourceRoot":"","sources":["../src/repositoryOnboardingFlow.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dharma-ai-labs/agent-fabric",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.87",
|
|
4
4
|
"description": "Local-first CLI for connecting coding agents to Dharma evaluation, orchestration, and signed Skill delivery",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/dharma-ai-labs/dharma-agent-fabric/tree/main/packages/cli#readme",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@dharma-ai-labs/agent-fabric-contracts": "0.1.10",
|
|
38
|
-
"@dharma-ai-labs/agent-fabric-evidence-reduction": "0.2.
|
|
38
|
+
"@dharma-ai-labs/agent-fabric-evidence-reduction": "0.2.16",
|
|
39
39
|
"@dharma-ai-labs/agent-fabric-local-vault": "0.1.19",
|
|
40
40
|
"@dharma-ai-labs/agent-fabric-policy": "0.1.4",
|
|
41
41
|
"@dharma-ai-labs/agent-fabric-provider-adapters": "0.1.19",
|