@agenticprimitives/identity-directory-adapters 1.0.0-alpha.46 → 1.0.0-alpha.48
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/caip10.d.ts +5 -0
- package/dist/caip10.d.ts.map +1 -1
- package/dist/caip10.js +25 -0
- package/dist/caip10.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +3 -0
- package/dist/indexer.js.map +1 -1
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +6 -1
- package/dist/naming.js.map +1 -1
- package/dist/onchain.d.ts +1 -1
- package/dist/onchain.d.ts.map +1 -1
- package/dist/onchain.js +7 -2
- package/dist/onchain.js.map +1 -1
- package/package.json +4 -4
package/dist/caip10.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ 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
|
+
/** Throws unless `chainId` is a positive safe integer. */
|
|
6
|
+
export declare function assertChainId(chainId: number): void;
|
|
7
|
+
/** The chain an eip155 `CanonicalAgentId` names. Throws on a non-eip155 id or a chain reference that is not a
|
|
8
|
+
* canonical positive integer. An adapter bound to ONE chain answers only for ids of that chain. */
|
|
9
|
+
export declare function chainIdOf(id: CanonicalAgentId): number;
|
|
5
10
|
/** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id or a malformed address. */
|
|
6
11
|
export declare function addressOf(id: CanonicalAgentId): Address;
|
|
7
12
|
//# sourceMappingURL=caip10.d.ts.map
|
package/dist/caip10.d.ts.map
CHANGED
|
@@ -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,
|
|
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,CAQtF;AAID,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;oGACoG;AACpG,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAQtD;AAED,mHAAmH;AACnH,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAcvD"}
|
package/dist/caip10.js
CHANGED
|
@@ -8,10 +8,35 @@
|
|
|
8
8
|
export const EIP155_NAMESPACE = 'eip155';
|
|
9
9
|
/** Build an eip155 `CanonicalAgentId` from a chainId + EVM address (lowercased). */
|
|
10
10
|
export function toCanonicalAgentId(chainId, address) {
|
|
11
|
+
// A chain id is declared or it is an error (spec 445 / COV-33): `eip155:NaN:0x…` and `eip155:0:0x…` are ids of
|
|
12
|
+
// no chain, and an id with a malformed address is an id of no agent.
|
|
13
|
+
assertChainId(chainId);
|
|
14
|
+
if (typeof address !== 'string' || !ADDRESS_RE.test(address)) {
|
|
15
|
+
throw new Error(`identity-directory-adapters: not a 20-byte address: "${String(address)}"`);
|
|
16
|
+
}
|
|
11
17
|
return `${EIP155_NAMESPACE}:${chainId}:${address.toLowerCase()}`;
|
|
12
18
|
}
|
|
19
|
+
const ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
|
|
20
|
+
/** Throws unless `chainId` is a positive safe integer. */
|
|
21
|
+
export function assertChainId(chainId) {
|
|
22
|
+
if (!Number.isSafeInteger(chainId) || chainId <= 0) {
|
|
23
|
+
throw new Error(`identity-directory-adapters: chainId must be a declared positive integer, got "${String(chainId)}"`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** The chain an eip155 `CanonicalAgentId` names. Throws on a non-eip155 id or a chain reference that is not a
|
|
27
|
+
* canonical positive integer. An adapter bound to ONE chain answers only for ids of that chain. */
|
|
28
|
+
export function chainIdOf(id) {
|
|
29
|
+
const parts = typeof id === 'string' ? id.split(':') : [];
|
|
30
|
+
if (parts.length !== 3 || parts[0] !== EIP155_NAMESPACE || !/^[1-9][0-9]*$/.test(parts[1] ?? '')) {
|
|
31
|
+
throw new Error(`identity-directory-adapters: expected an eip155 CanonicalAgentId with a chain reference, got "${String(id)}"`);
|
|
32
|
+
}
|
|
33
|
+
const chainId = Number(parts[1]);
|
|
34
|
+
assertChainId(chainId);
|
|
35
|
+
return chainId;
|
|
36
|
+
}
|
|
13
37
|
/** Extract the EVM address from an eip155 `CanonicalAgentId`. Throws on a non-eip155 id or a malformed address. */
|
|
14
38
|
export function addressOf(id) {
|
|
39
|
+
chainIdOf(id); // the chain reference is part of the id: `eip155:abc:0x…` is not one
|
|
15
40
|
const parts = id.split(':');
|
|
16
41
|
if (parts.length !== 3 || parts[0] !== EIP155_NAMESPACE) {
|
|
17
42
|
throw new Error(`identity-directory-adapters: expected an eip155 CanonicalAgentId, got "${id}"`);
|
package/dist/caip10.js.map
CHANGED
|
@@ -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,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"}
|
|
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,+GAA+G;IAC/G,qEAAqE;IACrE,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,GAAG,gBAAgB,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAsB,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,kFAAkF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxH,CAAC;AACH,CAAC;AAED;oGACoG;AACpG,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,iGAAiG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,qEAAqE;IACpF,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,4 +1,4 @@
|
|
|
1
|
-
export { toCanonicalAgentId, addressOf, EIP155_NAMESPACE } from './caip10.js';
|
|
1
|
+
export { toCanonicalAgentId, addressOf, chainIdOf, assertChainId, EIP155_NAMESPACE } from './caip10.js';
|
|
2
2
|
export { makeNamingPort, type NamingReads } from './naming.js';
|
|
3
3
|
export { makeOnChainReadPort, viemExists, type OnChainReaders } from './onchain.js';
|
|
4
4
|
export { createInMemoryIndexer, type IndexerEntry } from './indexer.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxG,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,7 +8,7 @@
|
|
|
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.js';
|
|
11
|
+
export { toCanonicalAgentId, addressOf, chainIdOf, assertChainId, EIP155_NAMESPACE } from './caip10.js';
|
|
12
12
|
export { makeNamingPort } from './naming.js';
|
|
13
13
|
export { makeOnChainReadPort, viemExists } from './onchain.js';
|
|
14
14
|
export { createInMemoryIndexer } from './indexer.js';
|
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,aAAa,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,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxG,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/indexer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,uCAAuC,CAAC;AAEvF,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,YAAY,EAAO,GAC3B,WAAW,GAAG;IAAE,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,uCAAuC,CAAC;AAEvF,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,YAAY,EAAO,GAC3B,WAAW,GAAG;IAAE,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CA2BlD"}
|
package/dist/indexer.js
CHANGED
|
@@ -23,6 +23,9 @@ export function createInMemoryIndexer(entries = []) {
|
|
|
23
23
|
return linksFor(principal.kind, principal.id);
|
|
24
24
|
},
|
|
25
25
|
async agentsByOidcSubject(iss, sub) {
|
|
26
|
+
// `iss#sub` is one key only while `iss` holds no `#` (spec 445 / COV-31).
|
|
27
|
+
if (typeof iss !== 'string' || iss.includes('#') || iss.length === 0 || typeof sub !== 'string' || sub.length === 0)
|
|
28
|
+
return [];
|
|
26
29
|
return linksFor('oidc', `${iss}#${sub}`);
|
|
27
30
|
},
|
|
28
31
|
add(entry) {
|
package/dist/indexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,wEAAwE;AACxE,iFAAiF;AAejF,uDAAuD;AACvD,MAAM,UAAU,qBAAqB,CACnC,UAA0B,EAAE;IAE5B,MAAM,KAAK,GAAmB,CAAC,GAAG,OAAO,CAAC,CAAC;IAE3C,SAAS,QAAQ,CAAC,IAAiC,EAAE,EAAU;QAC7D,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU;YACpC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,WAAW;YACzB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,SAAS;YAChC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG;YAChC,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,KAAK;YACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,wEAAwE;AACxE,iFAAiF;AAejF,uDAAuD;AACvD,MAAM,UAAU,qBAAqB,CACnC,UAA0B,EAAE;IAE5B,MAAM,KAAK,GAAmB,CAAC,GAAG,OAAO,CAAC,CAAC;IAE3C,SAAS,QAAQ,CAAC,IAAiC,EAAE,EAAU;QAC7D,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU;YACpC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,WAAW;YACzB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,SAAS;YAChC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG;YAChC,0EAA0E;YAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC/H,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,KAAK;YACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/naming.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,CAsBnE"}
|
package/dist/naming.js
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
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.js';
|
|
8
|
+
import { toCanonicalAgentId, addressOf, assertChainId, chainIdOf } from './caip10.js';
|
|
9
9
|
export function makeNamingPort(opts) {
|
|
10
|
+
assertChainId(opts.chainId); // declared, or the port is not built
|
|
10
11
|
return {
|
|
11
12
|
async forward(name) {
|
|
12
13
|
const addr = await opts.client.resolveName(name);
|
|
@@ -17,6 +18,10 @@ export function makeNamingPort(opts) {
|
|
|
17
18
|
// reverse here (returns null rather than throwing into the read path).
|
|
18
19
|
let address;
|
|
19
20
|
try {
|
|
21
|
+
// An id of ANOTHER chain has no name on this registry (spec 445 / COV-33): the address was read as if
|
|
22
|
+
// it were this chain's, so `eip155:1:0x…` came back with whatever that address is called here.
|
|
23
|
+
if (chainIdOf(id) !== opts.chainId)
|
|
24
|
+
return null;
|
|
20
25
|
address = addressOf(id);
|
|
21
26
|
}
|
|
22
27
|
catch {
|
package/dist/naming.js.map
CHANGED
|
@@ -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,aAAa,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,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAWtF,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;IAClE,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,sGAAsG;gBACtG,+FAA+F;gBAC/F,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAChD,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.d.ts
CHANGED
|
@@ -19,5 +19,5 @@ export declare function makeOnChainReadPort(readers: OnChainReaders): OnChainRea
|
|
|
19
19
|
* at its address (deployed). Counterfactual (not-yet-deployed) agents read as
|
|
20
20
|
* `false` — wire a factory/initCode check if you need to treat them as existing.
|
|
21
21
|
*/
|
|
22
|
-
export declare function viemExists(client: Pick<PublicClient, 'getCode'
|
|
22
|
+
export declare function viemExists(client: Pick<PublicClient, 'getCode'>, chainId: number): (id: CanonicalAgentId) => Promise<boolean>;
|
|
23
23
|
//# sourceMappingURL=onchain.d.ts.map
|
package/dist/onchain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5F;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAK5E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5F;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAK5E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAS7H"}
|
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.js';
|
|
9
|
+
import { addressOf, assertChainId, chainIdOf } from './caip10.js';
|
|
10
10
|
/** Assemble an OnChainReadPort from the two reader functions. */
|
|
11
11
|
export function makeOnChainReadPort(readers) {
|
|
12
12
|
return {
|
|
@@ -19,8 +19,13 @@ export function makeOnChainReadPort(readers) {
|
|
|
19
19
|
* at its address (deployed). Counterfactual (not-yet-deployed) agents read as
|
|
20
20
|
* `false` — wire a factory/initCode check if you need to treat them as existing.
|
|
21
21
|
*/
|
|
22
|
-
export function viemExists(client) {
|
|
22
|
+
export function viemExists(client, chainId) {
|
|
23
|
+
// `chainId` is the chain THIS client reads, declared by the caller (spec 445 / COV-33). Without it the reader
|
|
24
|
+
// answered `exists` for an id of any chain from whatever chain the client happened to be on.
|
|
25
|
+
assertChainId(chainId);
|
|
23
26
|
return async (id) => {
|
|
27
|
+
if (chainIdOf(id) !== chainId)
|
|
28
|
+
return false;
|
|
24
29
|
const code = await client.getCode({ address: addressOf(id) });
|
|
25
30
|
return !!code && code !== '0x';
|
|
26
31
|
};
|
package/dist/onchain.js.map
CHANGED
|
@@ -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,aAAa,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,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAclE,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,EAAE,OAAe;IAC/E,8GAA8G;IAC9G,6FAA6F;IAC7F,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE;QAClB,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC5C,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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/identity-directory-adapters",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.48",
|
|
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
5
|
"homepage": "https://agenticprimitives.dev",
|
|
6
6
|
"bugs": {
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"viem": "^2.52.2",
|
|
39
|
-
"@agenticprimitives/agent-naming": "^1.0.0-alpha.
|
|
40
|
-
"@agenticprimitives/identity-directory": "^1.0.0-alpha.
|
|
41
|
-
"@agenticprimitives/types": "^1.0.0-alpha.
|
|
39
|
+
"@agenticprimitives/agent-naming": "^1.0.0-alpha.48",
|
|
40
|
+
"@agenticprimitives/identity-directory": "^1.0.0-alpha.48",
|
|
41
|
+
"@agenticprimitives/types": "^1.0.0-alpha.48"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"vitest": "^4.1.11"
|