@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.
@@ -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, /snapshot: initialSnapshot, initialRepository: true/);
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;AAE/E,MAAM,GAAG,GAAG;IACV,WAAW,EAAE,sCAAsC;IACnD,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEF,IAAI,CAAC,4FAA4F,EAAE,GAAG,EAAE;IACtG,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI;QACjG,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE;QAC1G,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI;QACnG,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI;KACxD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAC3G,YAAY,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QACxF,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IACrF,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAC9F,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;IAClH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC5H,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1H,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;IAC1G,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACvH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC3G,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,sCAAsC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,yEAAyE,CAAC,CAAC;AACjG,CAAC,CAAC,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.85",
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.15",
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",