@agenticprimitives/agent-profile 1.0.0-alpha.45 → 1.0.0-alpha.47
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 +23 -0
- package/dist/a2a/binding.d.ts +5 -0
- package/dist/a2a/binding.d.ts.map +1 -1
- package/dist/a2a/binding.js +5 -0
- package/dist/a2a/binding.js.map +1 -1
- package/dist/a2a/index.d.ts +1 -0
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +2 -0
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/jws.d.ts.map +1 -1
- package/dist/a2a/jws.js +6 -1
- package/dist/a2a/jws.js.map +1 -1
- package/dist/a2a/onchain-verifier.d.ts +71 -0
- package/dist/a2a/onchain-verifier.d.ts.map +1 -0
- package/dist/a2a/onchain-verifier.js +159 -0
- package/dist/a2a/onchain-verifier.js.map +1 -0
- package/dist/a2a/validation.d.ts +6 -0
- package/dist/a2a/validation.d.ts.map +1 -1
- package/dist/a2a/validation.js +54 -40
- package/dist/a2a/validation.js.map +1 -1
- package/dist/card.d.ts +7 -0
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +9 -1
- package/dist/card.js.map +1 -1
- package/dist/client.d.ts +13 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +33 -50
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/safe-fetch.d.ts +26 -0
- package/dist/safe-fetch.d.ts.map +1 -0
- package/dist/safe-fetch.js +130 -0
- package/dist/safe-fetch.js.map +1 -0
- package/dist/url-policy.d.ts +34 -0
- package/dist/url-policy.d.ts.map +1 -0
- package/dist/url-policy.js +226 -0
- package/dist/url-policy.js.map +1 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -104,6 +104,29 @@ await verifyA2ACardSignatures(signed.card, { keys: (kid) => (kid === key.kid ? k
|
|
|
104
104
|
const { imported, diagnostics } = await importA2ACard(bytes, { verifyKeys });
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
### Routing on a card: verify it against the agent's on-chain key
|
|
108
|
+
|
|
109
|
+
A caller that routes on a card binds a2a's `CardTrustOptions.verifyCardSignature` to `createOnChainCardVerifier`. You inject the
|
|
110
|
+
chain reads; the package does none. The agent comes from an on-chain record (the name's `addr`), never from the card:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
import { createOnChainCardVerifier } from '@agenticprimitives/agent-profile/a2a';
|
|
114
|
+
|
|
115
|
+
const verifyCardSignature = createOnChainCardVerifier({
|
|
116
|
+
chainId: 9341, // declared, never defaulted
|
|
117
|
+
verifyHash: (signer, digest, signature) => usv.isValidSig(signer, digest, signature), // UniversalSignatureValidator
|
|
118
|
+
locate: async (card, raw) => { // your records + the card host's two documents
|
|
119
|
+
const origin = new URL(endpointOf(card)).origin;
|
|
120
|
+
const smartAgent = await nameRecordsAddrForHost(origin); // ON-CHAIN: the name's addr
|
|
121
|
+
if (!smartAgent) return null;
|
|
122
|
+
return { smartAgent, cardUri: `${origin}/.well-known/agent-card.json`,
|
|
123
|
+
binding: await getJson(`${origin}/.well-known/agent-card-binding.json`),
|
|
124
|
+
keys: (await getJson(`${origin}/.well-known/jwks.json`)).keys };
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
await resolveAgentCard(url, fetch, pinnedDigest, limits, { relyOnCard: true, verifyCardSignature });
|
|
128
|
+
```
|
|
129
|
+
|
|
107
130
|
## How it's different
|
|
108
131
|
|
|
109
132
|
The reference points are registry and agent-card ecosystems, but this package defines the AP-native primitive:
|
package/dist/a2a/binding.d.ts
CHANGED
|
@@ -89,6 +89,11 @@ export interface VerifySmartAgentCardBindingOptions {
|
|
|
89
89
|
expect?: {
|
|
90
90
|
unsignedCardDigest?: Sha256;
|
|
91
91
|
signedCardDigest?: Sha256;
|
|
92
|
+
/** Audit NAME-13: the Smart Agent and chain the CALLER is asking about. The binding names its own
|
|
93
|
+
* (`signed.verifyingContract` / `signed.chainId`); without these, `ok` means "a self-consistent binding
|
|
94
|
+
* about SOME agent" and the caller must compare `smartAgent` itself. A mismatch is `agent_mismatch`. */
|
|
95
|
+
smartAgent?: Address;
|
|
96
|
+
chainId?: number;
|
|
92
97
|
};
|
|
93
98
|
}
|
|
94
99
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/a2a/binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,oCAAoC,+BAA+B,CAAC;AACjF,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAE3D,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYjC,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,oCAAoC,gOAC8K,CAAC;AAEhO,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;;;;;EAO/E;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAI5D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAG9C;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAI3D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAKlD;AAID,uFAAuF;AACvF,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,uBAAuB;;;;;;;;;;EAetE;AAED,sEAAsE;AACtE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,GAAG,CAOvH;AAID,MAAM,MAAM,iCAAiC,GACzC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GAC9C;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EACF,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,mBAAmB,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,kCAAkC;IACjD,eAAe,EAAE,eAAe,CAAC;IACjC,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/a2a/binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,oCAAoC,+BAA+B,CAAC;AACjF,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAE3D,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYjC,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,oCAAoC,gOAC8K,CAAC;AAEhO,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;;;;;EAO/E;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAI5D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAG9C;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAI3D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAKlD;AAID,uFAAuF;AACvF,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,uBAAuB;;;;;;;;;;EAetE;AAED,sEAAsE;AACtE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,GAAG,CAOvH;AAID,MAAM,MAAM,iCAAiC,GACzC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GAC9C;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EACF,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,mBAAmB,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,kCAAkC;IACjD,eAAe,EAAE,eAAe,CAAC;IACjC,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,MAAM,CAAC,EAAE;QACP,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B;;iHAEyG;QACzG,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAID;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,6BAA6B,EACrC,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,iCAAiC,CAAC,CA2C5C"}
|
package/dist/a2a/binding.js
CHANGED
|
@@ -110,6 +110,11 @@ export async function verifySmartAgentCardBinding(signed, opts) {
|
|
|
110
110
|
if (!m || Number(m[1]) !== signed.chainId || m[2].toLowerCase() !== signed.verifyingContract.toLowerCase()) {
|
|
111
111
|
return { ok: false, reason: 'agent_mismatch' };
|
|
112
112
|
}
|
|
113
|
+
if (opts.expect?.smartAgent && opts.expect.smartAgent.toLowerCase() !== signed.verifyingContract.toLowerCase()) {
|
|
114
|
+
return { ok: false, reason: 'agent_mismatch' };
|
|
115
|
+
}
|
|
116
|
+
if (opts.expect?.chainId !== undefined && opts.expect.chainId !== signed.chainId)
|
|
117
|
+
return { ok: false, reason: 'agent_mismatch' };
|
|
113
118
|
if (opts.expect?.unsignedCardDigest && opts.expect.unsignedCardDigest !== b.unsignedCardDigest) {
|
|
114
119
|
return { ok: false, reason: 'digest_mismatch' };
|
|
115
120
|
}
|
package/dist/a2a/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/a2a/binding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/a2a/binding.ts"],"names":[],"mappings":"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"}
|
package/dist/a2a/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { unsignedCard, canonicalCardJson, canonicalCardBytes, cardContentDigest,
|
|
|
4
4
|
export { base64UrlEncode, base64UrlDecode, jwkThumbprint, supportsEdDSA, generateA2ACardSigningKey, importVerificationKey, signA2ACard, verifyA2ACardSignatures, decodeProtectedHeader, type A2ACardJwsAlg, type A2ACardSigningKeyPair, type SignA2ACardOptions, type SignA2ACardResult, type A2ACardKeyResolver, type VerifyA2ACardSignaturesOptions, type VerifyA2ACardSignaturesResult, type A2ACardSignatureFailureReason, } from './jws.js';
|
|
5
5
|
export { SMART_AGENT_CARD_BINDING_DOMAIN_NAME, SMART_AGENT_CARD_BINDING_DOMAIN_VERSION, SMART_AGENT_CARD_BINDING_TYPES, SMART_AGENT_CARD_BINDING_TYPE_STRING, smartAgentCardBindingDomain, smartAgentCardBindingMessage, smartAgentCardBindingDigest, verifySmartAgentCardBinding, sha256ToBytes32, bytes32ToSha256, thumbprintToBytes32, bytes32ToThumbprint, type VerifySmartAgentCardBindingResult, type VerifySmartAgentCardBindingOptions, } from './binding.js';
|
|
6
6
|
export type { Erc1271Verifier } from '../card.js';
|
|
7
|
+
export { createOnChainCardVerifier, verifyCardAgainstOnChainBinding, type CardSignatureVerifier, type CardBindingLocationV1, type OnChainCardVerifierDeps, type OnChainCardRefusal, type OnChainCardVerification, } from './onchain-verifier.js';
|
|
7
8
|
export { parsePointer, escapePointerToken, joinPointer, getAtPointer, setAtPointer } from './pointer.js';
|
|
8
9
|
export { inheritCardBase, draftFromBase, draftEtag, applyOverride, detectStale, acceptInherited, type SurfaceCardSkillLike, type PublicSkillCandidateLike, type InheritCardBaseInput, type InheritedCardBase, type ApplyOverrideOptions, type StaleReport, } from './field-binding.js';
|
|
9
10
|
export { DIAGNOSTIC_CODES, validateA2ACard, hasErrors, isPrivateHost, type DiagnosticCode, type CatalogSkillLike, type RuntimeCapabilityEvidence, type ValidateA2ACardOptions, } from './validation.js';
|
package/dist/a2a/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAeA,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9G,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,GACnC,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,8BAA8B,EAC9B,oCAAoC,EACpC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,GACxC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC"}
|
package/dist/a2a/index.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// canonical strip `signatures` → RFC 8785 JCS → bytes → sha256 digests
|
|
8
8
|
// jws ES256 (WebCrypto) detached JWS sign / fail-closed verify, RFC 7638 thumbprints
|
|
9
9
|
// binding SmartAgentCardBindingV1 EIP-712 digest + ERC-1271 verify (injected port)
|
|
10
|
+
// onchain-verifier createOnChainCardVerifier — a2a's verifyCardSignature port (RUN-16), fail-closed
|
|
10
11
|
// field-binding inheritCardBase / applyOverride / detectStale (pure provenance)
|
|
11
12
|
// validation validateA2ACard → ProjectionDiagnosticV1[] (stable DIAGNOSTIC_CODES)
|
|
12
13
|
// import importA2ACard: source bytes kept, signatures verified BEFORE normalizing, unknown fields
|
|
@@ -15,6 +16,7 @@ export { A2A_SECURITY_SCHEME_TYPES, A2A_PROTO_SECURITY_SCHEME_KEYS, A2A_CARD_KNO
|
|
|
15
16
|
export { unsignedCard, canonicalCardJson, canonicalCardBytes, cardContentDigest, signedCardContentDigest, sha256Digest, jcsDigest, } from './canonical.js';
|
|
16
17
|
export { base64UrlEncode, base64UrlDecode, jwkThumbprint, supportsEdDSA, generateA2ACardSigningKey, importVerificationKey, signA2ACard, verifyA2ACardSignatures, decodeProtectedHeader, } from './jws.js';
|
|
17
18
|
export { SMART_AGENT_CARD_BINDING_DOMAIN_NAME, SMART_AGENT_CARD_BINDING_DOMAIN_VERSION, SMART_AGENT_CARD_BINDING_TYPES, SMART_AGENT_CARD_BINDING_TYPE_STRING, smartAgentCardBindingDomain, smartAgentCardBindingMessage, smartAgentCardBindingDigest, verifySmartAgentCardBinding, sha256ToBytes32, bytes32ToSha256, thumbprintToBytes32, bytes32ToThumbprint, } from './binding.js';
|
|
19
|
+
export { createOnChainCardVerifier, verifyCardAgainstOnChainBinding, } from './onchain-verifier.js';
|
|
18
20
|
export { parsePointer, escapePointerToken, joinPointer, getAtPointer, setAtPointer } from './pointer.js';
|
|
19
21
|
export { inheritCardBase, draftFromBase, draftEtag, applyOverride, detectStale, acceptInherited, } from './field-binding.js';
|
|
20
22
|
export { DIAGNOSTIC_CODES, validateA2ACard, hasErrors, isPrivateHost, } from './validation.js';
|
package/dist/a2a/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,4GAA4G;AAC5G,sGAAsG;AACtG,EAAE;AACF,8FAA8F;AAC9F,8EAA8E;AAC9E,kGAAkG;AAClG,4FAA4F;AAC5F,mFAAmF;AACnF,wFAAwF;AACxF,4GAA4G;AAC5G,+GAA+G;AAuC/G,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9G,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,SAAS,GAEV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,qBAAqB,GAStB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,8BAA8B,EAC9B,oCAAoC,EACpC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,GAOhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,aAAa,GAKd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAuD,MAAM,aAAa,CAAC;AAErH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,sBAAsB,GAKvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,4GAA4G;AAC5G,sGAAsG;AACtG,EAAE;AACF,8FAA8F;AAC9F,8EAA8E;AAC9E,kGAAkG;AAClG,4FAA4F;AAC5F,uGAAuG;AACvG,mFAAmF;AACnF,wFAAwF;AACxF,4GAA4G;AAC5G,+GAA+G;AAuC/G,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9G,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,SAAS,GAEV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,qBAAqB,GAStB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,8BAA8B,EAC9B,oCAAoC,EACpC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAMhC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,GAOhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,aAAa,GAKd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAuD,MAAM,aAAa,CAAC;AAErH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,sBAAsB,GAKvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC"}
|
package/dist/a2a/jws.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jws.d.ts","sourceRoot":"","sources":["../../src/a2a/jws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAI9C,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIzD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAOrD;AAaD,+FAA+F;AAC/F,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBpE;AASD,gGAAgG;AAChG,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAOtD;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qGAAqG;AACrG,wBAAsB,yBAAyB,CAAC,GAAG,GAAE,aAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAS5G;AAED,2DAA2D;AAC3D,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAInG;AAQD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,SAAS,CAAC;IACtB,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,QAAQ;IACnD,mFAAmF;IACnF,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;IACpD,SAAS,EAAE,uBAAuB,CAAC;IACnC,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+GAA+G;AAC/G,wBAAsB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAetH;AAID,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAEnI,MAAM,WAAW,8BAA8B;IAC7C,iGAAiG;IACjG,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,MAAM,6BAA6B,GACrC,eAAe,GACf,WAAW,GACX,sBAAsB,GACtB,iBAAiB,GACjB,aAAa,GACb,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,WAAW,6BAA6B;IAC5C,4EAA4E;IAC5E,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,6BAA6B,CAAA;KAAE,EAAE,CAAC;CACpE;AAED,mFAAmF;AACnF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,GAAG,cAAc,EAC/B,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,6BAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"jws.d.ts","sourceRoot":"","sources":["../../src/a2a/jws.ts"],"names":[],"mappings":"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"}
|
package/dist/a2a/jws.js
CHANGED
|
@@ -133,7 +133,12 @@ export async function verifyA2ACardSignatures(card, opts) {
|
|
|
133
133
|
}
|
|
134
134
|
let header;
|
|
135
135
|
try {
|
|
136
|
-
|
|
136
|
+
const decoded = JSON.parse(utf8dec.decode(base64UrlDecode(e.protected)));
|
|
137
|
+
// Audit NAME-16: `null`, a number, a string and an array are all valid JSON and none is a header. Reading
|
|
138
|
+
// `.kid` off `null` THREW — fail-closed, but a verifier that throws on one card stops an import pipeline.
|
|
139
|
+
if (decoded === null || typeof decoded !== 'object' || Array.isArray(decoded))
|
|
140
|
+
throw new Error('not an object');
|
|
141
|
+
header = decoded;
|
|
137
142
|
}
|
|
138
143
|
catch {
|
|
139
144
|
failures.push({ kid: '', reason: 'bad_protected_header' });
|
package/dist/a2a/jws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jws.js","sourceRoot":"","sources":["../../src/a2a/jws.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"jws.js","sourceRoot":"","sources":["../../src/a2a/jws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 445 residual RUN-16 — the on-chain card verifier: an implementation of `@agenticprimitives/a2a`'s
|
|
3
|
+
* `CardTrustOptions.verifyCardSignature` port, `(card, raw) => Promise<boolean>`.
|
|
4
|
+
*
|
|
5
|
+
* A caller that ROUTES on an agent's card (its endpoint receives a credential or a question) must know the card is
|
|
6
|
+
* that agent's. Three layers, each verified separately (spec 347 §4.2, ADR-0062):
|
|
7
|
+
*
|
|
8
|
+
* 1. the expected Smart Agent comes from an ON-CHAIN record (the name's `addr`), supplied by `locate` — never from
|
|
9
|
+
* the card, never from the binding (both are documents anyone can write);
|
|
10
|
+
* 2. the `SmartAgentCardBindingV1` must verify through ERC-1271 / the UniversalSignatureValidator (`verifyHash`) BY
|
|
11
|
+
* that agent, for the DECLARED chain id, and name THIS card's unsigned + signed digests (and its URI, when the
|
|
12
|
+
* caller says which URI it fetched);
|
|
13
|
+
* 3. every JWS on the card must be ES256 under the key whose RFC 7638 thumbprint the binding names. The key is taken
|
|
14
|
+
* from the candidate set only by that thumbprint; a protected header's `jwk` / `jku` / `x5u` / `x5c` is never
|
|
15
|
+
* read, and a `kid` other than the bound thumbprint fails.
|
|
16
|
+
*
|
|
17
|
+
* Fail closed: any error, throw, or missing piece ⇒ `false`. This package does no chain or network I/O — `verifyHash`
|
|
18
|
+
* and `locate` are injected by the app. Evidence, never authority: a verified card says whose card it is, nothing
|
|
19
|
+
* about what anyone may ask the agent to do.
|
|
20
|
+
*/
|
|
21
|
+
import type { Address, Hex } from 'viem';
|
|
22
|
+
import type { SignedSmartAgentCardBindingV1 } from './types.js';
|
|
23
|
+
/** Structurally identical to a2a's `CardTrustOptions['verifyCardSignature']` (agent-profile may not depend on a2a). */
|
|
24
|
+
export type CardSignatureVerifier = (card: unknown, raw: string) => Promise<boolean>;
|
|
25
|
+
/** Where a card's agent, binding and keys were found. */
|
|
26
|
+
export interface CardBindingLocationV1 {
|
|
27
|
+
/** The Smart Agent the caller expects this card to be — from an ON-CHAIN record (e.g. the name's `addr`), never
|
|
28
|
+
* from the card or the binding document. */
|
|
29
|
+
smartAgent: Address;
|
|
30
|
+
/** The SA's signed binding (e.g. served at `/.well-known/agent-card-binding.json`). It proves anything only because
|
|
31
|
+
* it is verified through ERC-1271 by `smartAgent` on the declared chain. */
|
|
32
|
+
binding: SignedSmartAgentCardBindingV1;
|
|
33
|
+
/** Candidate public keys (e.g. `/.well-known/jwks.json`). Only the one whose RFC 7638 thumbprint equals the
|
|
34
|
+
* binding's `signerKeyThumbprint` is ever used. */
|
|
35
|
+
keys: readonly JsonWebKey[];
|
|
36
|
+
/** The URI the card was fetched from, when known — then it MUST equal the binding's `cardUri`. */
|
|
37
|
+
cardUri?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface OnChainCardVerifierDeps {
|
|
40
|
+
/** The chain the agent lives on. Declared, never defaulted: the factory throws without a positive integer. */
|
|
41
|
+
chainId: number;
|
|
42
|
+
/** ERC-1271 / ERC-6492 / ECDSA verification of `signature` over the 32-byte `digest` for `signer` (the app binds the
|
|
43
|
+
* UniversalSignatureValidator). */
|
|
44
|
+
verifyHash: (signer: Address, digest: Hex, signature: Hex) => Promise<boolean>;
|
|
45
|
+
/** Find the expected agent (from on-chain records), its binding and its candidate keys. `null` ⇒ refused. */
|
|
46
|
+
locate: (card: unknown, raw: string) => Promise<CardBindingLocationV1 | null>;
|
|
47
|
+
/** Unix seconds; defaults to now. */
|
|
48
|
+
now?: () => number;
|
|
49
|
+
/** Observe a refusal (logging). Never changes the outcome; a throw here is swallowed. */
|
|
50
|
+
onRefusal?: (reason: OnChainCardRefusal) => void;
|
|
51
|
+
}
|
|
52
|
+
export type OnChainCardRefusal = 'bad_card' | 'no_binding' | 'bad_location' | 'card_uri_mismatch' | 'no_signatures' | 'unsupported_alg' | 'kid_not_bound' | 'bound_key_missing' | 'jws_invalid' | `binding_${'bad_shape' | 'agent_mismatch' | 'digest_mismatch' | 'not_yet_valid' | 'expired' | 'signature_invalid'}` | 'error';
|
|
53
|
+
export type OnChainCardVerification = {
|
|
54
|
+
ok: true;
|
|
55
|
+
smartAgent: Address;
|
|
56
|
+
kid: string;
|
|
57
|
+
} | {
|
|
58
|
+
ok: false;
|
|
59
|
+
reason: OnChainCardRefusal;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Verify one served card against its located binding. Fail-closed; never throws. `raw` is authoritative: the card is
|
|
63
|
+
* re-parsed from the served bytes, so a caller-mutated object cannot pass.
|
|
64
|
+
*/
|
|
65
|
+
export declare function verifyCardAgainstOnChainBinding(raw: string, location: CardBindingLocationV1, deps: Pick<OnChainCardVerifierDeps, 'chainId' | 'verifyHash' | 'now'>): Promise<OnChainCardVerification>;
|
|
66
|
+
/**
|
|
67
|
+
* The factory: a verifier for a2a's `CardTrustOptions.verifyCardSignature`. `true` only when the card, its JWS and the
|
|
68
|
+
* agent's binding all verify against the agent named by an on-chain record; `false` on anything else (never throws).
|
|
69
|
+
*/
|
|
70
|
+
export declare function createOnChainCardVerifier(deps: OnChainCardVerifierDeps): CardSignatureVerifier;
|
|
71
|
+
//# sourceMappingURL=onchain-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onchain-verifier.d.ts","sourceRoot":"","sources":["../../src/a2a/onchain-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,uHAAuH;AACvH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErF,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC;iDAC6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB;iFAC6E;IAC7E,OAAO,EAAE,6BAA6B,CAAC;IACvC;wDACoD;IACpD,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAC;IAChB;wCACoC;IACpC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E,6GAA6G;IAC7G,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IAC9E,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,yFAAyF;IACzF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,YAAY,GACZ,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,WAAW,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,GAAG,SAAS,GAAG,mBAAmB,EAAE,GACnH,OAAO,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAW9C;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC,GACpE,OAAO,CAAC,uBAAuB,CAAC,CA4DlC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,qBAAqB,CAoB9F"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 445 residual RUN-16 — the on-chain card verifier: an implementation of `@agenticprimitives/a2a`'s
|
|
3
|
+
* `CardTrustOptions.verifyCardSignature` port, `(card, raw) => Promise<boolean>`.
|
|
4
|
+
*
|
|
5
|
+
* A caller that ROUTES on an agent's card (its endpoint receives a credential or a question) must know the card is
|
|
6
|
+
* that agent's. Three layers, each verified separately (spec 347 §4.2, ADR-0062):
|
|
7
|
+
*
|
|
8
|
+
* 1. the expected Smart Agent comes from an ON-CHAIN record (the name's `addr`), supplied by `locate` — never from
|
|
9
|
+
* the card, never from the binding (both are documents anyone can write);
|
|
10
|
+
* 2. the `SmartAgentCardBindingV1` must verify through ERC-1271 / the UniversalSignatureValidator (`verifyHash`) BY
|
|
11
|
+
* that agent, for the DECLARED chain id, and name THIS card's unsigned + signed digests (and its URI, when the
|
|
12
|
+
* caller says which URI it fetched);
|
|
13
|
+
* 3. every JWS on the card must be ES256 under the key whose RFC 7638 thumbprint the binding names. The key is taken
|
|
14
|
+
* from the candidate set only by that thumbprint; a protected header's `jwk` / `jku` / `x5u` / `x5c` is never
|
|
15
|
+
* read, and a `kid` other than the bound thumbprint fails.
|
|
16
|
+
*
|
|
17
|
+
* Fail closed: any error, throw, or missing piece ⇒ `false`. This package does no chain or network I/O — `verifyHash`
|
|
18
|
+
* and `locate` are injected by the app. Evidence, never authority: a verified card says whose card it is, nothing
|
|
19
|
+
* about what anyone may ask the agent to do.
|
|
20
|
+
*/
|
|
21
|
+
import { cardContentDigest, signedCardContentDigest } from './canonical.js';
|
|
22
|
+
import { verifySmartAgentCardBinding } from './binding.js';
|
|
23
|
+
import { base64UrlDecode, jwkThumbprint, verifyA2ACardSignatures } from './jws.js';
|
|
24
|
+
const ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
|
|
25
|
+
const utf8dec = new TextDecoder();
|
|
26
|
+
function assertChainId(chainId) {
|
|
27
|
+
if (typeof chainId !== 'number' || !Number.isSafeInteger(chainId) || chainId <= 0) {
|
|
28
|
+
throw new Error('createOnChainCardVerifier: chainId must be declared (a positive integer) — it is never defaulted');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Verify one served card against its located binding. Fail-closed; never throws. `raw` is authoritative: the card is
|
|
33
|
+
* re-parsed from the served bytes, so a caller-mutated object cannot pass.
|
|
34
|
+
*/
|
|
35
|
+
export async function verifyCardAgainstOnChainBinding(raw, location, deps) {
|
|
36
|
+
try {
|
|
37
|
+
assertChainId(deps.chainId);
|
|
38
|
+
let doc;
|
|
39
|
+
try {
|
|
40
|
+
const parsed = JSON.parse(raw);
|
|
41
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
42
|
+
return { ok: false, reason: 'bad_card' };
|
|
43
|
+
doc = parsed;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return { ok: false, reason: 'bad_card' };
|
|
47
|
+
}
|
|
48
|
+
if (!location || typeof location.smartAgent !== 'string' || !ADDRESS_RE.test(location.smartAgent) || !location.binding?.binding || !Array.isArray(location.keys)) {
|
|
49
|
+
return { ok: false, reason: 'bad_location' };
|
|
50
|
+
}
|
|
51
|
+
const bound = location.binding.binding;
|
|
52
|
+
if (location.cardUri !== undefined && location.cardUri !== bound.cardUri)
|
|
53
|
+
return { ok: false, reason: 'card_uri_mismatch' };
|
|
54
|
+
// (3) JWS — ES256 only, kid = the bound thumbprint, key chosen by thumbprint from the candidates (never a header).
|
|
55
|
+
const sigs = doc.signatures;
|
|
56
|
+
if (!Array.isArray(sigs) || sigs.length === 0)
|
|
57
|
+
return { ok: false, reason: 'no_signatures' };
|
|
58
|
+
const tp = bound.signerKeyThumbprint;
|
|
59
|
+
if (typeof tp !== 'string' || tp.length === 0)
|
|
60
|
+
return { ok: false, reason: 'binding_bad_shape' };
|
|
61
|
+
for (const s of sigs) {
|
|
62
|
+
const prot = s?.protected;
|
|
63
|
+
if (typeof prot !== 'string')
|
|
64
|
+
return { ok: false, reason: 'jws_invalid' };
|
|
65
|
+
let header;
|
|
66
|
+
try {
|
|
67
|
+
header = JSON.parse(utf8dec.decode(base64UrlDecode(prot)));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return { ok: false, reason: 'jws_invalid' };
|
|
71
|
+
}
|
|
72
|
+
if (header === null || typeof header !== 'object' || Array.isArray(header))
|
|
73
|
+
return { ok: false, reason: 'jws_invalid' };
|
|
74
|
+
const h = header;
|
|
75
|
+
if (h.alg !== 'ES256')
|
|
76
|
+
return { ok: false, reason: 'unsupported_alg' };
|
|
77
|
+
if (h.kid !== tp)
|
|
78
|
+
return { ok: false, reason: 'kid_not_bound' };
|
|
79
|
+
}
|
|
80
|
+
let boundKey;
|
|
81
|
+
for (const k of location.keys) {
|
|
82
|
+
if (!k || k.kty !== 'EC' || k.crv !== 'P-256' || typeof k.x !== 'string' || typeof k.y !== 'string')
|
|
83
|
+
continue;
|
|
84
|
+
const pub = { kty: 'EC', crv: 'P-256', x: k.x, y: k.y };
|
|
85
|
+
let t;
|
|
86
|
+
try {
|
|
87
|
+
t = await jwkThumbprint(pub);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (t === tp) {
|
|
93
|
+
boundKey = pub;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!boundKey)
|
|
98
|
+
return { ok: false, reason: 'bound_key_missing' };
|
|
99
|
+
const jws = await verifyA2ACardSignatures(doc, { keys: (kid) => (kid === tp ? boundKey : undefined) });
|
|
100
|
+
if (!jws.ok)
|
|
101
|
+
return { ok: false, reason: 'jws_invalid' };
|
|
102
|
+
// (2) the binding, by the expected SA, on the declared chain, naming THIS card's digests.
|
|
103
|
+
const b = await verifySmartAgentCardBinding(location.binding, {
|
|
104
|
+
erc1271Verifier: { verifyHash: ({ address, hash, signature }) => deps.verifyHash(address, hash, signature) },
|
|
105
|
+
now: deps.now ? deps.now() : Math.floor(Date.now() / 1000),
|
|
106
|
+
expect: {
|
|
107
|
+
smartAgent: location.smartAgent,
|
|
108
|
+
chainId: deps.chainId,
|
|
109
|
+
unsignedCardDigest: cardContentDigest(doc),
|
|
110
|
+
signedCardDigest: signedCardContentDigest(doc),
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
if (!b.ok)
|
|
114
|
+
return { ok: false, reason: `binding_${b.reason}` };
|
|
115
|
+
return { ok: true, smartAgent: b.smartAgent, kid: tp };
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return { ok: false, reason: 'error' };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The factory: a verifier for a2a's `CardTrustOptions.verifyCardSignature`. `true` only when the card, its JWS and the
|
|
123
|
+
* agent's binding all verify against the agent named by an on-chain record; `false` on anything else (never throws).
|
|
124
|
+
*/
|
|
125
|
+
export function createOnChainCardVerifier(deps) {
|
|
126
|
+
assertChainId(deps?.chainId);
|
|
127
|
+
if (typeof deps.verifyHash !== 'function')
|
|
128
|
+
throw new Error('createOnChainCardVerifier: verifyHash is required');
|
|
129
|
+
if (typeof deps.locate !== 'function')
|
|
130
|
+
throw new Error('createOnChainCardVerifier: locate is required');
|
|
131
|
+
const refuse = (reason) => {
|
|
132
|
+
try {
|
|
133
|
+
deps.onRefusal?.(reason);
|
|
134
|
+
}
|
|
135
|
+
catch { /* observation only */ }
|
|
136
|
+
return false;
|
|
137
|
+
};
|
|
138
|
+
return async (card, raw) => {
|
|
139
|
+
try {
|
|
140
|
+
if (typeof raw !== 'string' || raw.length === 0)
|
|
141
|
+
return refuse('bad_card');
|
|
142
|
+
let location;
|
|
143
|
+
try {
|
|
144
|
+
location = await deps.locate(card, raw);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return refuse('no_binding');
|
|
148
|
+
}
|
|
149
|
+
if (!location)
|
|
150
|
+
return refuse('no_binding');
|
|
151
|
+
const r = await verifyCardAgainstOnChainBinding(raw, location, deps);
|
|
152
|
+
return r.ok ? true : refuse(r.reason);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return refuse('error');
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=onchain-verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onchain-verifier.js","sourceRoot":"","sources":["../../src/a2a/onchain-verifier.ts"],"names":[],"mappings":"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"}
|
package/dist/a2a/validation.d.ts
CHANGED
|
@@ -77,5 +77,11 @@ export interface ValidateA2ACardOptions {
|
|
|
77
77
|
export declare function hasErrors(diagnostics: readonly ProjectionDiagnosticV1[]): boolean;
|
|
78
78
|
/** Validate a card. Returns diagnostics; never throws on card content. */
|
|
79
79
|
export declare function validateA2ACard(card: A2AAgentCardV1 | CardLike, opts: ValidateA2ACardOptions): ProjectionDiagnosticV1[];
|
|
80
|
+
/**
|
|
81
|
+
* COR-9 (spec 445) — ONE URL POLICY. This was a third, weaker copy of the host table (it missed `[::ffff:7f00:1]` —
|
|
82
|
+
* the form `URL.hostname` gives an IPv4-mapped address — IPv4-compatible / NAT64 forms, multicast and trailing-dot
|
|
83
|
+
* names such as `localhost.`). It now asks `defaultPublicUrlPolicy` (`../url-policy.ts`) about the host and keeps only
|
|
84
|
+
* the one single-label name the policy does not list (`metadata`). Takes a `URL.hostname` (IPv6 with or without brackets).
|
|
85
|
+
*/
|
|
80
86
|
export declare function isPrivateHost(hostname: string): boolean;
|
|
81
87
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/a2a/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/a2a/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAEtF,+GAA+G;AAC/G,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,6GAA6G;IAC7G,iBAAiB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAC3E,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,6EAA6E;IAC7E,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/C,mGAAmG;IACnG,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAID,wBAAgB,SAAS,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,GAAG,OAAO,CAEjF;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,EAAE,CAkSvH;AAsCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKvD"}
|