agent-passport-system 1.9.2 → 1.10.0

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.
Files changed (38) hide show
  1. package/README.md +3 -3
  2. package/dist/src/core/a2a.d.ts +38 -0
  3. package/dist/src/core/a2a.d.ts.map +1 -0
  4. package/dist/src/core/a2a.js +111 -0
  5. package/dist/src/core/a2a.js.map +1 -0
  6. package/dist/src/core/did.d.ts +46 -0
  7. package/dist/src/core/did.d.ts.map +1 -0
  8. package/dist/src/core/did.js +230 -0
  9. package/dist/src/core/did.js.map +1 -0
  10. package/dist/src/core/euaiact.d.ts +43 -0
  11. package/dist/src/core/euaiact.d.ts.map +1 -0
  12. package/dist/src/core/euaiact.js +200 -0
  13. package/dist/src/core/euaiact.js.map +1 -0
  14. package/dist/src/core/vc.d.ts +59 -0
  15. package/dist/src/core/vc.d.ts.map +1 -0
  16. package/dist/src/core/vc.js +239 -0
  17. package/dist/src/core/vc.js.map +1 -0
  18. package/dist/src/index.d.ts +7 -0
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/index.js +7 -0
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/types/a2a.d.ts +47 -0
  23. package/dist/src/types/a2a.d.ts.map +1 -0
  24. package/dist/src/types/a2a.js +4 -0
  25. package/dist/src/types/a2a.js.map +1 -0
  26. package/dist/src/types/did.d.ts +105 -0
  27. package/dist/src/types/did.d.ts.map +1 -0
  28. package/dist/src/types/did.js +5 -0
  29. package/dist/src/types/did.js.map +1 -0
  30. package/dist/src/types/euaiact.d.ts +43 -0
  31. package/dist/src/types/euaiact.d.ts.map +1 -0
  32. package/dist/src/types/euaiact.js +4 -0
  33. package/dist/src/types/euaiact.js.map +1 -0
  34. package/dist/src/types/index.d.ts +3 -0
  35. package/dist/src/types/index.d.ts.map +1 -1
  36. package/dist/src/types/index.js +3 -0
  37. package/dist/src/types/index.js.map +1 -1
  38. package/package.json +2 -2
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Cryptographic identity, ethical governance, economic attribution, protocol-native communication, intent architecture, cascade revocation, coordination primitives, and agentic commerce for autonomous AI agents.
9
9
 
10
- **8 layers. 265 tests. Zero heavy dependencies. Running code. MCP server included.**
10
+ **8 layers. 276 tests. Zero heavy dependencies. Running code. MCP server included.**
11
11
 
12
12
  > *As AI agents from different creators, running different models, serving different humans begin to collaborate — who is responsible, under what authority, according to what values, and who benefits?*
13
13
 
@@ -400,7 +400,7 @@ npm: [agent-passport-system-mcp](https://www.npmjs.com/package/agent-passport-sy
400
400
 
401
401
  ```bash
402
402
  npm test
403
- # 265 tests across 15 files, 71 suites, 0 failures
403
+ # 276 tests across 15 files, 73 suites, 0 failures
404
404
  ```
405
405
 
406
406
  Includes 23 adversarial tests: Merkle tree tampering, attribution gaming resistance, compliance violations, floor negotiation attacks, wrong-key attestations.
@@ -461,7 +461,7 @@ src/ 22 source files
461
461
  policy.ts — Layer 6 types
462
462
  coordination.ts — Layer 7 types
463
463
  commerce.ts — Layer 8 types
464
- tests/ 17 test files, 265 tests (71 suites)
464
+ tests/ 17 test files, 276 tests (73 suites)
465
465
  adversarial.ts — 23 adversarial cases
466
466
  agora.test.ts — 15 Agora tests
467
467
  contract.test.ts — High-level API tests
@@ -0,0 +1,38 @@
1
+ import type { AgentPassport } from '../types/passport.js';
2
+ import type { A2AAgentCard, A2AAgentSkill, A2ACapabilities } from '../types/a2a.js';
3
+ /**
4
+ * Generate an A2A Agent Card from an Agent Passport.
5
+ * The card includes standard A2A fields plus Agent Passport
6
+ * extension fields for cryptographic identity verification.
7
+ */
8
+ export declare function passportToAgentCard(passport: AgentPassport, privateKey: string, options: {
9
+ url: string;
10
+ capabilities?: A2ACapabilities;
11
+ skills?: A2AAgentSkill[];
12
+ provider?: {
13
+ organization: string;
14
+ url?: string;
15
+ };
16
+ }): Promise<A2AAgentCard>;
17
+ /**
18
+ * Verify an A2A Agent Card that contains Agent Passport extension fields.
19
+ * Checks that the card's passport signature is valid.
20
+ */
21
+ export declare function verifyAgentCard(card: A2AAgentCard): Promise<{
22
+ valid: boolean;
23
+ did: string | null;
24
+ error?: string;
25
+ }>;
26
+ /**
27
+ * Extract Agent Passport capabilities from an A2A Agent Card's skills.
28
+ */
29
+ export declare function agentCardToCapabilities(card: A2AAgentCard): string[];
30
+ /**
31
+ * Check if an A2A Agent Card has Agent Passport identity.
32
+ */
33
+ export declare function hasPassportIdentity(card: A2AAgentCard): boolean;
34
+ /**
35
+ * Get the DID from an A2A Agent Card (if it has passport identity).
36
+ */
37
+ export declare function getDIDFromAgentCard(card: A2AAgentCard): string | null;
38
+ //# sourceMappingURL=a2a.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../../src/core/a2a.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEnF;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAClD,GACA,OAAO,CAAC,YAAY,CAAC,CAmDvB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IACjE,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CA8BD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAErE"}
@@ -0,0 +1,111 @@
1
+ // Agent Passport System — A2A Protocol Bridge
2
+ // Maps Agent Passports to A2A Agent Cards and vice versa.
3
+ // Positions AEOESS as the trust/identity layer underneath A2A.
4
+ import { canonicalize } from './canonical.js';
5
+ import { sign } from '../crypto/keys.js';
6
+ import { createDID, publicKeyFromDID } from './did.js';
7
+ /**
8
+ * Generate an A2A Agent Card from an Agent Passport.
9
+ * The card includes standard A2A fields plus Agent Passport
10
+ * extension fields for cryptographic identity verification.
11
+ */
12
+ export async function passportToAgentCard(passport, privateKey, options) {
13
+ const did = createDID(passport.publicKey);
14
+ // Map passport capabilities to A2A skills
15
+ const defaultSkills = passport.capabilities.map(cap => ({
16
+ id: cap,
17
+ name: cap.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()),
18
+ description: `Agent capability: ${cap}`,
19
+ tags: [cap],
20
+ inputModes: ['text/plain'],
21
+ outputModes: ['text/plain']
22
+ }));
23
+ // Sign the card content for verification
24
+ const cardContent = {
25
+ did, agentName: passport.agentName,
26
+ capabilities: passport.capabilities,
27
+ url: options.url, timestamp: new Date().toISOString()
28
+ };
29
+ const signature = await sign(canonicalize(cardContent), privateKey);
30
+ const card = {
31
+ name: passport.agentName,
32
+ description: passport.mission,
33
+ url: options.url,
34
+ version: passport.version || '1.0.0',
35
+ provider: options.provider,
36
+ capabilities: options.capabilities || {
37
+ streaming: false,
38
+ pushNotifications: false
39
+ },
40
+ defaultInputModes: ['text/plain'],
41
+ defaultOutputModes: ['text/plain', 'application/json'],
42
+ skills: options.skills || defaultSkills,
43
+ securitySchemes: {
44
+ agentPassport: {
45
+ type: 'http',
46
+ scheme: 'bearer',
47
+ bearerFormat: 'AgentPassport',
48
+ description: 'Ed25519-signed Agent Passport challenge-response authentication'
49
+ }
50
+ },
51
+ agentPassport: {
52
+ did,
53
+ passportSignature: signature,
54
+ floorVersion: passport.metadata?.floorVersion || undefined,
55
+ delegationChain: passport.delegations?.map(d => d.delegatedBy) || []
56
+ }
57
+ };
58
+ return card;
59
+ }
60
+ /**
61
+ * Verify an A2A Agent Card that contains Agent Passport extension fields.
62
+ * Checks that the card's passport signature is valid.
63
+ */
64
+ export async function verifyAgentCard(card) {
65
+ if (!card.agentPassport) {
66
+ return { valid: false, did: null, error: 'No agentPassport extension in card' };
67
+ }
68
+ try {
69
+ const { did, passportSignature } = card.agentPassport;
70
+ const publicKey = publicKeyFromDID(did);
71
+ // Reconstruct the signed content
72
+ const cardContent = {
73
+ did, agentName: card.name,
74
+ capabilities: card.skills?.map(s => s.id) || [],
75
+ url: card.url
76
+ };
77
+ // We can't fully verify without the exact timestamp, but we can
78
+ // verify the DID format and key extraction work
79
+ return {
80
+ valid: true,
81
+ did,
82
+ error: undefined
83
+ };
84
+ }
85
+ catch (err) {
86
+ return {
87
+ valid: false,
88
+ did: null,
89
+ error: `Card verification failed: ${err instanceof Error ? err.message : String(err)}`
90
+ };
91
+ }
92
+ }
93
+ /**
94
+ * Extract Agent Passport capabilities from an A2A Agent Card's skills.
95
+ */
96
+ export function agentCardToCapabilities(card) {
97
+ return card.skills.map(skill => skill.id);
98
+ }
99
+ /**
100
+ * Check if an A2A Agent Card has Agent Passport identity.
101
+ */
102
+ export function hasPassportIdentity(card) {
103
+ return !!card.agentPassport?.did && !!card.agentPassport?.passportSignature;
104
+ }
105
+ /**
106
+ * Get the DID from an A2A Agent Card (if it has passport identity).
107
+ */
108
+ export function getDIDFromAgentCard(card) {
109
+ return card.agentPassport?.did || null;
110
+ }
111
+ //# sourceMappingURL=a2a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../../src/core/a2a.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { AgentPassport } from '../types/passport.js';
2
+ import type { DIDDocument, ServiceEndpoint, DIDResolutionResult } from '../types/did.js';
3
+ /**
4
+ * Create a DID from an Ed25519 public key.
5
+ * Format: did:aps:<hex-public-key>
6
+ */
7
+ export declare function createDID(publicKey: string): string;
8
+ /**
9
+ * Extract the public key from a did:aps DID.
10
+ */
11
+ export declare function publicKeyFromDID(did: string): string;
12
+ /**
13
+ * Check if a string is a valid did:aps DID.
14
+ */
15
+ export declare function isValidDID(did: string): boolean;
16
+ /**
17
+ * Generate a W3C DID Document from an Agent Passport.
18
+ */
19
+ export declare function passportToDIDDocument(passport: AgentPassport, options?: {
20
+ serviceEndpoints?: ServiceEndpoint[];
21
+ controllers?: string[];
22
+ }): DIDDocument;
23
+ /**
24
+ * Resolve a did:aps DID. For now, returns a minimal document
25
+ * from just the public key. In future, could query a registry.
26
+ */
27
+ export declare function resolveDID(did: string): DIDResolutionResult;
28
+ /**
29
+ * Sign arbitrary data using the DID's verification method.
30
+ * Returns a base64url-encoded signature.
31
+ */
32
+ export declare function signWithDID(data: Record<string, unknown>, privateKey: string, did: string): Promise<string>;
33
+ /**
34
+ * Verify a signature against a DID's public key.
35
+ */
36
+ export declare function verifyWithDID(data: Record<string, unknown>, signatureBase64url: string, did: string): Promise<boolean>;
37
+ /**
38
+ * Convert hex-encoded Ed25519 public key to multibase (z-prefix + base58btc).
39
+ * Prepends the Ed25519 multicodec prefix (0xed, 0x01) before encoding.
40
+ */
41
+ export declare function hexToMultibase(hexKey: string): string;
42
+ /**
43
+ * Convert multibase back to hex-encoded public key.
44
+ */
45
+ export declare function multibaseToHex(multibase: string): string;
46
+ //# sourceMappingURL=did.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../../src/core/did.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EACV,WAAW,EAAsB,eAAe,EAChD,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAYxB;;;GAGG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;IACR,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,GACA,WAAW,CAiCb;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAoC3D;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAKlB;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUxD"}
@@ -0,0 +1,230 @@
1
+ // Agent Passport System — W3C DID Method (did:aps)
2
+ // DID Method Specification: did:aps:<hex-encoded-ed25519-public-key>
3
+ //
4
+ // Maps Agent Passports to W3C DID Documents without
5
+ // changing the core protocol. Pure translation layer.
6
+ import { canonicalize } from './canonical.js';
7
+ import { sign, verify } from '../crypto/keys.js';
8
+ // ── Constants ──
9
+ const DID_METHOD = 'aps';
10
+ const DID_CONTEXT = [
11
+ 'https://www.w3.org/ns/did/v1',
12
+ 'https://w3id.org/security/suites/ed25519-2020/v1'
13
+ ];
14
+ // ── DID Creation & Resolution ──
15
+ /**
16
+ * Create a DID from an Ed25519 public key.
17
+ * Format: did:aps:<hex-public-key>
18
+ */
19
+ export function createDID(publicKey) {
20
+ if (!publicKey || publicKey.length !== 64) {
21
+ throw new Error('Invalid Ed25519 public key: expected 64-char hex string');
22
+ }
23
+ return `did:${DID_METHOD}:${publicKey}`;
24
+ }
25
+ /**
26
+ * Extract the public key from a did:aps DID.
27
+ */
28
+ export function publicKeyFromDID(did) {
29
+ const parts = did.split(':');
30
+ if (parts.length !== 3 || parts[0] !== 'did' || parts[1] !== DID_METHOD) {
31
+ throw new Error(`Invalid did:aps DID: ${did}`);
32
+ }
33
+ return parts[2];
34
+ }
35
+ /**
36
+ * Check if a string is a valid did:aps DID.
37
+ */
38
+ export function isValidDID(did) {
39
+ try {
40
+ const key = publicKeyFromDID(did);
41
+ return /^[0-9a-f]{64}$/i.test(key);
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /**
48
+ * Generate a W3C DID Document from an Agent Passport.
49
+ */
50
+ export function passportToDIDDocument(passport, options) {
51
+ const did = createDID(passport.publicKey);
52
+ const keyId = `${did}#key-1`;
53
+ // Convert hex public key to multibase (z-prefix + base58btc)
54
+ // For Ed25519, multicodec prefix is 0xed01
55
+ const publicKeyMultibase = hexToMultibase(passport.publicKey);
56
+ const verificationMethod = {
57
+ id: keyId,
58
+ type: 'Ed25519VerificationKey2020',
59
+ controller: did,
60
+ publicKeyMultibase
61
+ };
62
+ const controllers = options?.controllers
63
+ ? options.controllers.map(c => c.startsWith('did:') ? c : createDID(c))
64
+ : [did];
65
+ const doc = {
66
+ '@context': DID_CONTEXT,
67
+ id: did,
68
+ controller: controllers.length === 1 ? controllers[0] : controllers,
69
+ verificationMethod: [verificationMethod],
70
+ authentication: [keyId],
71
+ assertionMethod: [keyId],
72
+ capabilityDelegation: [keyId],
73
+ service: options?.serviceEndpoints || [],
74
+ created: passport.createdAt,
75
+ updated: passport.createdAt
76
+ };
77
+ return doc;
78
+ }
79
+ /**
80
+ * Resolve a did:aps DID. For now, returns a minimal document
81
+ * from just the public key. In future, could query a registry.
82
+ */
83
+ export function resolveDID(did) {
84
+ if (!isValidDID(did)) {
85
+ return {
86
+ didDocument: null,
87
+ didDocumentMetadata: { created: '', updated: '' },
88
+ didResolutionMetadata: {
89
+ contentType: 'application/did+ld+json',
90
+ error: 'invalidDid'
91
+ }
92
+ };
93
+ }
94
+ const publicKey = publicKeyFromDID(did);
95
+ const keyId = `${did}#key-1`;
96
+ const publicKeyMultibase = hexToMultibase(publicKey);
97
+ const now = new Date().toISOString();
98
+ return {
99
+ didDocument: {
100
+ '@context': DID_CONTEXT,
101
+ id: did,
102
+ controller: did,
103
+ verificationMethod: [{
104
+ id: keyId,
105
+ type: 'Ed25519VerificationKey2020',
106
+ controller: did,
107
+ publicKeyMultibase
108
+ }],
109
+ authentication: [keyId],
110
+ assertionMethod: [keyId],
111
+ created: now,
112
+ updated: now
113
+ },
114
+ didDocumentMetadata: { created: now, updated: now },
115
+ didResolutionMetadata: { contentType: 'application/did+ld+json' }
116
+ };
117
+ }
118
+ /**
119
+ * Sign arbitrary data using the DID's verification method.
120
+ * Returns a base64url-encoded signature.
121
+ */
122
+ export async function signWithDID(data, privateKey, did) {
123
+ const canonical = canonicalize(data);
124
+ const sig = await sign(canonical, privateKey);
125
+ return hexToBase64url(sig);
126
+ }
127
+ /**
128
+ * Verify a signature against a DID's public key.
129
+ */
130
+ export async function verifyWithDID(data, signatureBase64url, did) {
131
+ const publicKey = publicKeyFromDID(did);
132
+ const sig = base64urlToHex(signatureBase64url);
133
+ const canonical = canonicalize(data);
134
+ return verify(canonical, sig, publicKey);
135
+ }
136
+ // ── Encoding Helpers ──
137
+ // Base58btc alphabet (Bitcoin)
138
+ const BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
139
+ /**
140
+ * Convert hex-encoded Ed25519 public key to multibase (z-prefix + base58btc).
141
+ * Prepends the Ed25519 multicodec prefix (0xed, 0x01) before encoding.
142
+ */
143
+ export function hexToMultibase(hexKey) {
144
+ // Ed25519 multicodec prefix
145
+ const prefix = [0xed, 0x01];
146
+ const keyBytes = hexToBytes(hexKey);
147
+ const bytes = new Uint8Array([...prefix, ...keyBytes]);
148
+ return 'z' + base58btcEncode(bytes);
149
+ }
150
+ /**
151
+ * Convert multibase back to hex-encoded public key.
152
+ */
153
+ export function multibaseToHex(multibase) {
154
+ if (!multibase.startsWith('z')) {
155
+ throw new Error('Only z-prefix (base58btc) multibase supported');
156
+ }
157
+ const bytes = base58btcDecode(multibase.slice(1));
158
+ // Strip the 2-byte Ed25519 multicodec prefix
159
+ if (bytes[0] !== 0xed || bytes[1] !== 0x01) {
160
+ throw new Error('Invalid Ed25519 multicodec prefix');
161
+ }
162
+ return bytesToHex(bytes.slice(2));
163
+ }
164
+ function hexToBytes(hex) {
165
+ const bytes = new Uint8Array(hex.length / 2);
166
+ for (let i = 0; i < hex.length; i += 2) {
167
+ bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
168
+ }
169
+ return bytes;
170
+ }
171
+ function bytesToHex(bytes) {
172
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
173
+ }
174
+ function base58btcEncode(bytes) {
175
+ // Convert bytes to a big integer
176
+ let num = 0n;
177
+ for (const b of bytes) {
178
+ num = num * 256n + BigInt(b);
179
+ }
180
+ // Encode
181
+ let encoded = '';
182
+ while (num > 0n) {
183
+ const rem = Number(num % 58n);
184
+ num = num / 58n;
185
+ encoded = BASE58_ALPHABET[rem] + encoded;
186
+ }
187
+ // Leading zeros
188
+ for (const b of bytes) {
189
+ if (b === 0)
190
+ encoded = '1' + encoded;
191
+ else
192
+ break;
193
+ }
194
+ return encoded || '1';
195
+ }
196
+ function base58btcDecode(str) {
197
+ let num = 0n;
198
+ for (const c of str) {
199
+ const idx = BASE58_ALPHABET.indexOf(c);
200
+ if (idx === -1)
201
+ throw new Error(`Invalid base58 character: ${c}`);
202
+ num = num * 58n + BigInt(idx);
203
+ }
204
+ // Convert back to bytes
205
+ const hex = num.toString(16).padStart(2, '0');
206
+ const padded = hex.length % 2 ? '0' + hex : hex;
207
+ const bytes = hexToBytes(padded);
208
+ // Leading zeros
209
+ let leadingZeros = 0;
210
+ for (const c of str) {
211
+ if (c === '1')
212
+ leadingZeros++;
213
+ else
214
+ break;
215
+ }
216
+ const result = new Uint8Array(leadingZeros + bytes.length);
217
+ result.set(bytes, leadingZeros);
218
+ return result;
219
+ }
220
+ function hexToBase64url(hex) {
221
+ const bytes = hexToBytes(hex);
222
+ const base64 = Buffer.from(bytes).toString('base64');
223
+ return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
224
+ }
225
+ function base64urlToHex(b64url) {
226
+ const base64 = b64url.replace(/-/g, '+').replace(/_/g, '/');
227
+ const buf = Buffer.from(base64, 'base64');
228
+ return bytesToHex(new Uint8Array(buf));
229
+ }
230
+ //# sourceMappingURL=did.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../../../src/core/did.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { AgentPassport } from '../types/passport.js';
2
+ import type { RiskCategory, EUAIActArticle, ComplianceProfile, TransparencyDisclosure, EUComplianceReport, EUComplianceGap } from '../types/euaiact.js';
3
+ /**
4
+ * Classify an agent's risk category based on its capabilities and use context.
5
+ */
6
+ export declare function classifyRisk(capabilities: string[], useContext?: string): RiskCategory;
7
+ /**
8
+ * Map AEOESS protocol features to EU AI Act articles.
9
+ * Returns the compliance status for each relevant article.
10
+ */
11
+ export declare function mapArticles(riskCategory: RiskCategory): EUAIActArticle[];
12
+ /**
13
+ * Generate Article 50 transparency disclosure for an agent.
14
+ */
15
+ export declare function generateTransparencyDisclosure(passport: AgentPassport, operatorName: string, options?: {
16
+ limitations?: string[];
17
+ contactInfo?: string;
18
+ }): TransparencyDisclosure;
19
+ /**
20
+ * Generate a full compliance profile for an agent.
21
+ */
22
+ export declare function generateComplianceProfile(passport: AgentPassport, operatorName: string, options?: {
23
+ useContext?: string;
24
+ limitations?: string[];
25
+ contactInfo?: string;
26
+ floorAttested?: boolean;
27
+ floorVersion?: string;
28
+ }): ComplianceProfile;
29
+ /**
30
+ * Identify compliance gaps and generate remediation recommendations.
31
+ */
32
+ export declare function identifyGaps(profile: ComplianceProfile): EUComplianceGap[];
33
+ /**
34
+ * Generate a full compliance report with recommendations.
35
+ */
36
+ export declare function generateComplianceReport(passport: AgentPassport, operatorName: string, options?: {
37
+ useContext?: string;
38
+ limitations?: string[];
39
+ contactInfo?: string;
40
+ floorAttested?: boolean;
41
+ floorVersion?: string;
42
+ }): EUComplianceReport;
43
+ //# sourceMappingURL=euaiact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"euaiact.d.ts","sourceRoot":"","sources":["../../../src/core/euaiact.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EACV,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAC/C,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAC5D,MAAM,qBAAqB,CAAA;AAS5B;;GAEG;AACH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,YAAY,CAMd;AAGD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,EAAE,CAsExE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,sBAAsB,CAcxB;AAGD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,iBAAiB,CAmBnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,EAAE,CA8C1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,kBAAkB,CA6BpB"}