@agenticprimitives/identity-directory-adapters 1.0.0-alpha.4 → 1.0.0-alpha.40

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/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @agenticprimitives/identity-directory-adapters
2
2
 
3
- Port implementations for [`@agenticprimitives/identity-directory`](../identity-directory)
4
- (spec 223 / [ADR-0015](../../docs/architecture/decisions/0015-identity-directory-is-an-evidence-backed-read-model.md)).
5
- The composition layer that binds the directory's ports to real sources — and the
6
- **one package allowed to import `agent-naming`** (spec 100 §4). The directory core
7
- stays source-agnostic.
3
+ > Part of **[Agentic Primitives](https://agenticprimitives.dev)** — the open-source trust substrate for agentic applications: identity that can sign, authority checked at act time, evidence the owner carries. [Developer kit](https://github.com/agentictrustlabs/agentic-primitives) · [All packages](https://agenticprimitives.dev/developers)
4
+
5
+ **The binding layer that keeps the directory honest.** [`identity-directory`](../identity-directory) can promise "indexer proposes, on-chain confirms" only because its core never touches a real data source — it declares ports, and this package implements them. That separation is enforced, not aspirational: this is the **one package allowed to import `agent-naming`** (spec 100 §4 / [ADR-0015](../../docs/architecture/decisions/0015-identity-directory-is-an-evidence-backed-read-model.md)), so every naming read in the identity stack flows through one auditable seam. Adapters translate sources into ports and add no policy of their own.
6
+
7
+ Part of [agenticprimitives](../../README.md) — the trust substrate for the agent economy: one canonical Smart Agent identity with custody, delegation, naming, credentials, and audit evidence designed as one system.
8
8
 
9
9
  ## What's here
10
10
 
@@ -35,14 +35,33 @@ const dir = createDirectory({
35
35
  });
36
36
  ```
37
37
 
38
+ ## How it's different
39
+
40
+ The competing pattern is the **monolithic indexer/resolver SDK** — one client that talks to every source and bakes resolution policy into the data access. The cost shows up later: you cannot swap a source, cannot audit which mechanism answered a query, and the index silently becomes authoritative. The ports-and-adapters split here means:
41
+
42
+ - **Sources are swappable.** Naming, on-chain reads, and the indexer are independent factories; a new source for an existing port is one new factory, not a rewrite.
43
+ - **Authority placement is visible in the types.** `confirmsCredential` is a live on-chain membership check, the indexer is a proposer — the interfaces make it impossible to confuse the two.
44
+ - **No adapter ever escalates.** Each port is one mechanism; there is no `try naming, catch → on-chain` fallback anywhere ([ADR-0013](../../docs/architecture/decisions/0013-no-silent-fallbacks.md)), and reads are `readContract`/`getCode` only — never `eth_getLogs` ([ADR-0012](../../docs/architecture/decisions/0012-no-eth-getlogs-in-product-read-paths.md)).
45
+
38
46
  ## Boundaries
39
47
 
40
- - `confirmsCredential` is **app-wired** — the on-chain membership getter is
41
- contract- and credential-kind-specific (an EOA address vs a passkey
42
- `credentialIdDigest`), so this package does not guess it. It MUST reflect the
43
- *current* set so a revoked credential returns `false` (the directory drops it).
44
- - The in-memory indexer is **non-authoritative** — it proposes candidates; the
45
- directory confirms them on-chain. The production indexer is a SPARQL/GraphDB
46
- adapter (spec 225 §7), landing later.
47
- - CAIP-10 here is **eip155-only glue**; the canonical multi-namespace builder is
48
- `@agenticprimitives/agent-profile` (`/caip10`), kept out of this adapter's deps.
48
+ - `confirmsCredential` is **app-wired** — the on-chain membership getter is contract- and credential-kind-specific (an EOA address vs a passkey `credentialIdDigest`), so this package does not guess it. It MUST reflect the *current* set so a revoked credential returns `false` (the directory drops it). Never wire it to a cached or event-derived list that could revive a revoked credential.
49
+ - The in-memory indexer is **non-authoritative** — it proposes candidates; the directory confirms them on-chain. The production indexer is a SPARQL/GraphDB adapter (spec 225 §7), landing later.
50
+ - CAIP-10 here is **eip155-only glue**; the canonical multi-namespace builder is `@agenticprimitives/agent-profile` (`/caip10`), deliberately kept out of this adapter's dependency set.
51
+
52
+ ## Validation
53
+
54
+ ```bash
55
+ pnpm --filter @agenticprimitives/identity-directory build # core dist (vitest resolution)
56
+ pnpm --filter @agenticprimitives/identity-directory-adapters typecheck
57
+ pnpm --filter @agenticprimitives/identity-directory-adapters test
58
+ pnpm check:forbidden-terms
59
+ ```
60
+
61
+ ## Status
62
+
63
+ Testnet/pilot-ready. Production launch is gated on the public checklist in the root [`README.md`](../../README.md#status--honest-version) — including third-party contract audit and governance key rotation. Track every security finding live in [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml). The shipped indexer is the in-memory reference (demo + tests); the production SPARQL/GraphDB adapter is roadmap.
64
+
65
+ ## License
66
+
67
+ UNLICENSED (internal monorepo, not published).
package/dist/caip10.d.ts CHANGED
@@ -2,6 +2,6 @@ import type { Address, CanonicalAgentId } from '@agenticprimitives/types';
2
2
  export declare const EIP155_NAMESPACE: "eip155";
3
3
  /** Build an eip155 `CanonicalAgentId` from a chainId + EVM address (lowercased). */
4
4
  export declare function toCanonicalAgentId(chainId: number, address: Address): CanonicalAgentId;
5
- /** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id. */
5
+ /** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id or a malformed address. */
6
6
  export declare function addressOf(id: CanonicalAgentId): Address;
7
7
  //# sourceMappingURL=caip10.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caip10.d.ts","sourceRoot":"","sources":["../src/caip10.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAElD,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAEtF;AAED,4FAA4F;AAC5F,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAMvD"}
1
+ {"version":3,"file":"caip10.d.ts","sourceRoot":"","sources":["../src/caip10.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAElD,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAEtF;AAED,mHAAmH;AACnH,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAavD"}
package/dist/caip10.js CHANGED
@@ -10,12 +10,19 @@ export const EIP155_NAMESPACE = 'eip155';
10
10
  export function toCanonicalAgentId(chainId, address) {
11
11
  return `${EIP155_NAMESPACE}:${chainId}:${address.toLowerCase()}`;
12
12
  }
13
- /** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id. */
13
+ /** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id or a malformed address. */
14
14
  export function addressOf(id) {
15
15
  const parts = id.split(':');
16
16
  if (parts.length !== 3 || parts[0] !== EIP155_NAMESPACE) {
17
17
  throw new Error(`identity-directory-adapters: expected an eip155 CanonicalAgentId, got "${id}"`);
18
18
  }
19
- return parts[2];
19
+ // NEW-IDA-2: the third token was returned as an Address with NO validation — a malformed id
20
+ // (`eip155:1:not-an-address`) flowed downstream as a bogus principal into on-chain reads. Require a
21
+ // well-formed 20-byte hex address (fail-closed).
22
+ const addr = parts[2] ?? '';
23
+ if (!/^0x[0-9a-fA-F]{40}$/.test(addr)) {
24
+ throw new Error(`identity-directory-adapters: eip155 CanonicalAgentId has a malformed address: "${id}"`);
25
+ }
26
+ return addr;
20
27
  }
21
28
  //# sourceMappingURL=caip10.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caip10.js","sourceRoot":"","sources":["../src/caip10.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,iEAAiE;AACjE,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,oDAAoD;AAIpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAElD,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,OAAgB;IAClE,OAAO,GAAG,gBAAgB,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAsB,CAAC;AACvF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,0EAA0E,EAAE,GAAG,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAY,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"caip10.js","sourceRoot":"","sources":["../src/caip10.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,iEAAiE;AACjE,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,oDAAoD;AAIpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAElD,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,OAAgB;IAClE,OAAO,GAAG,gBAAgB,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAsB,CAAC;AACvF,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,0EAA0E,EAAE,GAAG,CAAC,CAAC;IACnG,CAAC;IACD,4FAA4F;IAC5F,oGAAoG;IACpG,iDAAiD;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kFAAkF,EAAE,GAAG,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,IAAe,CAAC;AACzB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { toCanonicalAgentId, addressOf, EIP155_NAMESPACE } from './caip10';
2
- export { makeNamingPort, type NamingReads } from './naming';
3
- export { makeOnChainReadPort, viemExists, type OnChainReaders } from './onchain';
4
- export { createInMemoryIndexer, type IndexerEntry } from './indexer';
1
+ export { toCanonicalAgentId, addressOf, EIP155_NAMESPACE } from './caip10.js';
2
+ export { makeNamingPort, type NamingReads } from './naming.js';
3
+ export { makeOnChainReadPort, viemExists, type OnChainReaders } from './onchain.js';
4
+ export { createInMemoryIndexer, type IndexerEntry } from './indexer.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -8,8 +8,8 @@
8
8
  // - capability.manifest.json — boundary
9
9
  // - ../../specs/223-identity-directory.md — the contract
10
10
  // - ../identity-directory — the ports these implement
11
- export { toCanonicalAgentId, addressOf, EIP155_NAMESPACE } from './caip10';
12
- export { makeNamingPort } from './naming';
13
- export { makeOnChainReadPort, viemExists } from './onchain';
14
- export { createInMemoryIndexer } from './indexer';
11
+ export { toCanonicalAgentId, addressOf, EIP155_NAMESPACE } from './caip10.js';
12
+ export { makeNamingPort } from './naming.js';
13
+ export { makeOnChainReadPort, viemExists } from './onchain.js';
14
+ export { createInMemoryIndexer } from './indexer.js';
15
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,qEAAqE;AACrE,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2DAA2D;AAC3D,wDAAwD;AAExD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAoB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAuB,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAqB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,qEAAqE;AACrE,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2DAA2D;AAC3D,wDAAwD;AAExD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAqB,MAAM,cAAc,CAAC"}
package/dist/naming.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // adapter binds a configured chainId to lift the result. A `null` from the
6
6
  // client is a terminal "no such name" (ADR-0013) — the directory core does not
7
7
  // escalate to another port.
8
- import { toCanonicalAgentId, addressOf } from './caip10';
8
+ import { toCanonicalAgentId, addressOf } from './caip10.js';
9
9
  export function makeNamingPort(opts) {
10
10
  return {
11
11
  async forward(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,4BAA4B;AAK5B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAWzD,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,EAAE;YACd,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,4BAA4B;AAK5B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAW5D,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,EAAE;YACd,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/onchain.js CHANGED
@@ -6,7 +6,7 @@
6
6
  // getter is contract- AND credential-kind-specific (an EOA address vs a passkey
7
7
  // credentialIdDigest read differently), so it is WIRED BY THE APP rather than
8
8
  // guessed here. The adapter assembles the port from the two readers.
9
- import { addressOf } from './caip10';
9
+ import { addressOf } from './caip10.js';
10
10
  /** Assemble an OnChainReadPort from the two reader functions. */
11
11
  export function makeOnChainReadPort(readers) {
12
12
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,qEAAqE;AAKrE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAcrC,iEAAiE;AACjE,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,OAAO;QACL,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC9D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,qEAAqE;AAKrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,iEAAiE;AACjE,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,OAAO;QACL,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC9D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,17 +1,21 @@
1
1
  {
2
2
  "name": "@agenticprimitives/identity-directory-adapters",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "1.0.0-alpha.40",
4
4
  "description": "Port implementations for @agenticprimitives/identity-directory: NamingPort (wraps agent-naming), OnChainReadPort (viem readContract), IndexerPort (in-memory; SPARQL/GraphDB later). The one composition layer allowed to import agent-naming (spec 100 §4 / ADR-0015).",
5
+ "homepage": "https://agenticprimitives.dev",
6
+ "bugs": {
7
+ "url": "https://github.com/agentictrustlabs/agenticprimitives/issues"
8
+ },
9
+ "author": {
10
+ "name": "Agentic Trust Labs",
11
+ "url": "https://agenticprimitives.dev"
12
+ },
5
13
  "license": "MIT",
6
14
  "repository": {
7
15
  "type": "git",
8
16
  "url": "git+https://github.com/agentictrustlabs/agenticprimitives.git",
9
17
  "directory": "packages/identity-directory-adapters"
10
18
  },
11
- "homepage": "https://github.com/agentictrustlabs/agenticprimitives/tree/master/packages/identity-directory-adapters",
12
- "bugs": {
13
- "url": "https://github.com/agentictrustlabs/agenticprimitives/issues"
14
- },
15
19
  "type": "module",
16
20
  "main": "./dist/index.js",
17
21
  "types": "./dist/index.d.ts",
@@ -31,26 +35,31 @@
31
35
  "access": "public"
32
36
  },
33
37
  "peerDependencies": {
34
- "viem": "^2.50.0",
35
- "@agenticprimitives/identity-directory": "1.0.0-alpha.4",
36
- "@agenticprimitives/agent-naming": "1.0.0-alpha.4",
37
- "@agenticprimitives/types": "1.0.0-alpha.4"
38
+ "viem": "^2.52.2",
39
+ "@agenticprimitives/agent-naming": "^1.0.0-alpha.40",
40
+ "@agenticprimitives/identity-directory": "^1.0.0-alpha.40",
41
+ "@agenticprimitives/types": "^1.0.0-alpha.40"
38
42
  },
39
43
  "devDependencies": {
40
- "vitest": "^2.1.0"
44
+ "vitest": "^4.1.11"
41
45
  },
42
46
  "keywords": [
43
47
  "identity",
44
48
  "directory",
45
49
  "adapters",
46
50
  "ports",
47
- "agentic"
51
+ "agentic",
52
+ "agentic-primitives",
53
+ "agenticprimitives",
54
+ "ai-agents",
55
+ "agent-authority",
56
+ "agentic-trust"
48
57
  ],
49
58
  "scripts": {
50
59
  "build": "tsc -p tsconfig.build.json",
51
60
  "typecheck": "tsc -p tsconfig.json --noEmit",
52
61
  "test": "vitest run",
53
- "test:unit": "vitest run test/unit",
62
+ "test:unit": "vitest run test/unit --passWithNoTests",
54
63
  "test:integration": "vitest run test/integration --passWithNoTests",
55
64
  "test:watch": "vitest",
56
65
  "clean": "rm -rf dist"