@agentxv2/sdk 0.3.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.
- package/README.md +195 -0
- package/dist/a2a/a2a.d.ts +37 -0
- package/dist/a2a/a2a.d.ts.map +1 -0
- package/dist/a2a/a2a.js +252 -0
- package/dist/a2a/a2a.js.map +1 -0
- package/dist/a2a/index.d.ts +4 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +4 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/agent/agent-runner.d.ts +124 -0
- package/dist/agent/agent-runner.d.ts.map +1 -0
- package/dist/agent/agent-runner.js +249 -0
- package/dist/agent/agent-runner.js.map +1 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +3 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/config/config.d.ts +31 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +95 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/crypto.d.ts +62 -0
- package/dist/core/crypto.d.ts.map +1 -0
- package/dist/core/crypto.js +291 -0
- package/dist/core/crypto.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +296 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +30 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/connector.d.ts +43 -0
- package/dist/mcp/connector.d.ts.map +1 -0
- package/dist/mcp/connector.js +79 -0
- package/dist/mcp/connector.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/useAgentRunner.d.ts +16 -0
- package/dist/react/useAgentRunner.d.ts.map +1 -0
- package/dist/react/useAgentRunner.js +204 -0
- package/dist/react/useAgentRunner.js.map +1 -0
- package/dist/registry/agent-registry.d.ts +52 -0
- package/dist/registry/agent-registry.d.ts.map +1 -0
- package/dist/registry/agent-registry.js +221 -0
- package/dist/registry/agent-registry.js.map +1 -0
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +6 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/ipfs-fetcher.d.ts +39 -0
- package/dist/registry/ipfs-fetcher.d.ts.map +1 -0
- package/dist/registry/ipfs-fetcher.js +139 -0
- package/dist/registry/ipfs-fetcher.js.map +1 -0
- package/dist/reputation/index.d.ts +4 -0
- package/dist/reputation/index.d.ts.map +1 -0
- package/dist/reputation/index.js +4 -0
- package/dist/reputation/index.js.map +1 -0
- package/dist/reputation/reputation.d.ts +26 -0
- package/dist/reputation/reputation.d.ts.map +1 -0
- package/dist/reputation/reputation.js +113 -0
- package/dist/reputation/reputation.js.map +1 -0
- package/dist/subscription/agent-x402.d.ts +33 -0
- package/dist/subscription/agent-x402.d.ts.map +1 -0
- package/dist/subscription/agent-x402.js +144 -0
- package/dist/subscription/agent-x402.js.map +1 -0
- package/dist/subscription/index.d.ts +6 -0
- package/dist/subscription/index.d.ts.map +1 -0
- package/dist/subscription/index.js +5 -0
- package/dist/subscription/index.js.map +1 -0
- package/dist/subscription/subscription.d.ts +67 -0
- package/dist/subscription/subscription.d.ts.map +1 -0
- package/dist/subscription/subscription.js +346 -0
- package/dist/subscription/subscription.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @agentx/sdk — Crypto Engine
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// AES-256-GCM for content encryption (NIST standard, same wire format as
|
|
5
|
+
// aihunter-saas for interop). ECIES (secp256k1) for key wrapping.
|
|
6
|
+
//
|
|
7
|
+
// Wire format (AES-256-GCM):
|
|
8
|
+
// base64( IV[12] || ciphertext || authTag[16] )
|
|
9
|
+
//
|
|
10
|
+
// ECIES wire format (compatible with eciesjs):
|
|
11
|
+
// hex( ephemeralPub[33] || IV[16] || ciphertext || MAC[32] )
|
|
12
|
+
//
|
|
13
|
+
// Pure JS — works in browser, Node, edge. No native deps except @noble/*.
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
import { gcm } from '@noble/ciphers/aes.js';
|
|
16
|
+
import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
17
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
18
|
+
import { hkdf } from '@noble/hashes/hkdf.js';
|
|
19
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
20
|
+
import { bytesToHex, hexToBytes } from '@noble/ciphers/utils.js';
|
|
21
|
+
// ── randomBytes implementation (cross-runtime: browser / Node) ────────────
|
|
22
|
+
export function randomBytes(length) {
|
|
23
|
+
// browser: crypto.getRandomValues
|
|
24
|
+
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
25
|
+
const buf = new Uint8Array(length);
|
|
26
|
+
crypto.getRandomValues(buf);
|
|
27
|
+
return buf;
|
|
28
|
+
}
|
|
29
|
+
// Node: crypto.randomBytes
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
31
|
+
const nodeCrypto = require('crypto');
|
|
32
|
+
return new Uint8Array(nodeCrypto.randomBytes(length));
|
|
33
|
+
}
|
|
34
|
+
// ── Re-exports for convenience ─────────────────────────────────────────────
|
|
35
|
+
export { bytesToHex, hexToBytes };
|
|
36
|
+
// ── Constants ──────────────────────────────────────────────────────────────
|
|
37
|
+
const AES_KEY_SIZE = 32;
|
|
38
|
+
const IV_SIZE = 12; // GCM recommended
|
|
39
|
+
const TAG_SIZE = 16; // GCM auth tag
|
|
40
|
+
// ── Base64 helpers (cross-runtime) ─────────────────────────────────────────
|
|
41
|
+
function toBase64(bytes) {
|
|
42
|
+
// Works in browser (btoa + binary) and Node (Buffer)
|
|
43
|
+
if (typeof Buffer !== 'undefined')
|
|
44
|
+
return Buffer.from(bytes).toString('base64');
|
|
45
|
+
let binary = '';
|
|
46
|
+
for (let i = 0; i < bytes.length; i++)
|
|
47
|
+
binary += String.fromCharCode(bytes[i]);
|
|
48
|
+
return btoa(binary);
|
|
49
|
+
}
|
|
50
|
+
function fromBase64(b64) {
|
|
51
|
+
if (typeof Buffer !== 'undefined')
|
|
52
|
+
return new Uint8Array(Buffer.from(b64, 'base64'));
|
|
53
|
+
const binary = atob(b64);
|
|
54
|
+
const bytes = new Uint8Array(binary.length);
|
|
55
|
+
for (let i = 0; i < binary.length; i++)
|
|
56
|
+
bytes[i] = binary.charCodeAt(i);
|
|
57
|
+
return bytes;
|
|
58
|
+
}
|
|
59
|
+
// ── AES-256-GCM ────────────────────────────────────────────────────────────
|
|
60
|
+
/**
|
|
61
|
+
* Encrypt with AES-256-GCM.
|
|
62
|
+
* Wire format (same as aihunter-saas): base64( IV[12] || ciphertext || authTag[16] )
|
|
63
|
+
*/
|
|
64
|
+
export function aesEncrypt(plaintext, keyHex) {
|
|
65
|
+
const key = hexToBytes(keyHex);
|
|
66
|
+
const iv = randomBytes(IV_SIZE);
|
|
67
|
+
const plainBytes = new TextEncoder().encode(plaintext);
|
|
68
|
+
const cipher = gcm(key, iv);
|
|
69
|
+
const encrypted = cipher.encrypt(plainBytes);
|
|
70
|
+
// noble gcm.encrypt returns: ciphertext || authTag(16)
|
|
71
|
+
const ciphertext = encrypted.subarray(0, -TAG_SIZE);
|
|
72
|
+
const authTag = encrypted.subarray(-TAG_SIZE);
|
|
73
|
+
// Pack: IV || ciphertext || authTag
|
|
74
|
+
const combined = new Uint8Array(IV_SIZE + ciphertext.length + TAG_SIZE);
|
|
75
|
+
combined.set(iv, 0);
|
|
76
|
+
combined.set(ciphertext, IV_SIZE);
|
|
77
|
+
combined.set(authTag, IV_SIZE + ciphertext.length);
|
|
78
|
+
return toBase64(combined);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Decrypt AES-256-GCM (same wire format as aihunter-saas).
|
|
82
|
+
*/
|
|
83
|
+
export function aesDecrypt(encryptedBase64, keyHex) {
|
|
84
|
+
const key = hexToBytes(keyHex);
|
|
85
|
+
const combined = fromBase64(encryptedBase64);
|
|
86
|
+
const iv = combined.subarray(0, IV_SIZE);
|
|
87
|
+
const ciphertext = combined.subarray(IV_SIZE, -TAG_SIZE);
|
|
88
|
+
const authTag = combined.subarray(-TAG_SIZE);
|
|
89
|
+
const cipher = gcm(key, iv);
|
|
90
|
+
// noble decrypt expects: ciphertext || authTag
|
|
91
|
+
const ciphertextWithTag = new Uint8Array(ciphertext.length + TAG_SIZE);
|
|
92
|
+
ciphertextWithTag.set(ciphertext, 0);
|
|
93
|
+
ciphertextWithTag.set(authTag, ciphertext.length);
|
|
94
|
+
const decrypted = cipher.decrypt(ciphertextWithTag);
|
|
95
|
+
return new TextDecoder().decode(decrypted);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Generate a cryptographically random AES-256 key (hex, 64 chars).
|
|
99
|
+
*/
|
|
100
|
+
export function generateAesKey() {
|
|
101
|
+
return bytesToHex(randomBytes(AES_KEY_SIZE));
|
|
102
|
+
}
|
|
103
|
+
// ── ECIES (secp256k1) ──────────────────────────────────────────────────────
|
|
104
|
+
//
|
|
105
|
+
// eciesjs-compatible wire format:
|
|
106
|
+
// ephemeralPub(33B compressed) || IV(16B) || ciphertext || MAC(32B)
|
|
107
|
+
// Encoding: hex
|
|
108
|
+
//
|
|
109
|
+
// HKDF(SHA-256) derives AES key + HMAC key from ECDH shared secret.
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
function eciesEncode(ephemeralPub, iv, ciphertext, mac) {
|
|
112
|
+
const out = new Uint8Array(33 + 16 + ciphertext.length + 32);
|
|
113
|
+
out.set(ephemeralPub, 0);
|
|
114
|
+
out.set(iv, 33);
|
|
115
|
+
out.set(ciphertext, 33 + 16);
|
|
116
|
+
out.set(mac, 33 + 16 + ciphertext.length);
|
|
117
|
+
return bytesToHex(out);
|
|
118
|
+
}
|
|
119
|
+
function eciesDecode(dataHex) {
|
|
120
|
+
const d = hexToBytes(dataHex);
|
|
121
|
+
return {
|
|
122
|
+
ephemeralPub: d.subarray(0, 33),
|
|
123
|
+
iv: d.subarray(33, 49),
|
|
124
|
+
ciphertext: d.subarray(49, -32),
|
|
125
|
+
mac: d.subarray(-32),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Simple AES-256-CTR implementation on top of @noble/ciphers AES core
|
|
129
|
+
function aesCtrEncrypt(key, ctrBytes, data) {
|
|
130
|
+
const blockSize = 16;
|
|
131
|
+
const cipher = gcm(key, ctrBytes); // GCM internally handles CTR
|
|
132
|
+
// Use noble's CTR approach: encrypt the plaintext directly with the derived stream
|
|
133
|
+
// noble uses AES-CTR internally for GCM; simpler: implement CTR with AES-ECB
|
|
134
|
+
const result = new Uint8Array(data.length);
|
|
135
|
+
const counter = new Uint8Array(blockSize);
|
|
136
|
+
counter.set(ctrBytes);
|
|
137
|
+
for (let i = 0; i < data.length; i += blockSize) {
|
|
138
|
+
const keystream = gcm(key, counter).encrypt(new Uint8Array(blockSize));
|
|
139
|
+
for (let j = 0; j < blockSize && i + j < data.length; j++) {
|
|
140
|
+
result[i + j] = keystream[j] ^ data[i + j];
|
|
141
|
+
}
|
|
142
|
+
// Increment counter (big-endian)
|
|
143
|
+
for (let j = blockSize - 1; j >= 0; j--) {
|
|
144
|
+
const val = counter[j];
|
|
145
|
+
if (val !== undefined) {
|
|
146
|
+
counter[j] = (val + 1) & 0xff;
|
|
147
|
+
if (counter[j] !== 0)
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Encrypt data with recipient's secp256k1 public key (ECIES).
|
|
156
|
+
*
|
|
157
|
+
* @param dataHex The data to encrypt (hex, e.g. AES key)
|
|
158
|
+
* @param publicKey Recipient's public key (hex, 04-prefixed uncompressed or 02/03 compressed)
|
|
159
|
+
*/
|
|
160
|
+
export function eciesEncrypt(dataHex, publicKey) {
|
|
161
|
+
// 1. Ephemeral keypair
|
|
162
|
+
const ephPriv = randomBytes(32);
|
|
163
|
+
const ephPub = secp256k1.getPublicKey(ephPriv, true); // 33B compressed
|
|
164
|
+
// 2. Parse recipient public key
|
|
165
|
+
let recipientPub;
|
|
166
|
+
if (publicKey.startsWith('04') && publicKey.length === 130) {
|
|
167
|
+
recipientPub = hexToBytes(publicKey);
|
|
168
|
+
}
|
|
169
|
+
else if (publicKey.startsWith('02') || publicKey.startsWith('03')) {
|
|
170
|
+
recipientPub = hexToBytes(publicKey);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
throw new Error('Invalid public key format: expected hex with 02/03/04 prefix');
|
|
174
|
+
}
|
|
175
|
+
// 3. ECDH
|
|
176
|
+
const shared = secp256k1.getSharedSecret(ephPriv, recipientPub);
|
|
177
|
+
const sharedX = shared.subarray(1, 33); // x-coordinate only
|
|
178
|
+
const sharedKey = sha256(sharedX);
|
|
179
|
+
// 4. HKDF: encKey(32) || macKey(32)
|
|
180
|
+
const hkdfOut = hkdf(sha256, sharedKey, undefined, undefined, 64);
|
|
181
|
+
const encKey = hkdfOut.subarray(0, 32);
|
|
182
|
+
const macKey = hkdfOut.subarray(32, 64);
|
|
183
|
+
// 5. AES-256-CTR encrypt
|
|
184
|
+
const iv = randomBytes(16);
|
|
185
|
+
const plaintext = hexToBytes(dataHex);
|
|
186
|
+
const ciphertext = aesCtrEncrypt(encKey, iv, plaintext);
|
|
187
|
+
// 6. HMAC: MAC(ephemeralPub || IV || ciphertext)
|
|
188
|
+
const macInput = new Uint8Array(33 + 16 + ciphertext.length);
|
|
189
|
+
macInput.set(ephPub, 0);
|
|
190
|
+
macInput.set(iv, 33);
|
|
191
|
+
macInput.set(ciphertext, 33 + 16);
|
|
192
|
+
const mac = hmac(sha256, macKey, macInput);
|
|
193
|
+
return eciesEncode(ephPub, iv, ciphertext, mac);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Decrypt ECIES ciphertext with recipient's secp256k1 private key.
|
|
197
|
+
*/
|
|
198
|
+
export function eciesDecrypt(dataHex, privateKey) {
|
|
199
|
+
const { ephemeralPub, iv, ciphertext, mac } = eciesDecode(dataHex);
|
|
200
|
+
// 1. ECDH
|
|
201
|
+
const privBytes = hexToBytes(privateKey);
|
|
202
|
+
const shared = secp256k1.getSharedSecret(privBytes, ephemeralPub);
|
|
203
|
+
const sharedX = shared.subarray(1, 33);
|
|
204
|
+
const sharedKey = sha256(sharedX);
|
|
205
|
+
// 2. HKDF
|
|
206
|
+
const hkdfOut = hkdf(sha256, sharedKey, undefined, undefined, 64);
|
|
207
|
+
const encKey = hkdfOut.subarray(0, 32);
|
|
208
|
+
const macKey = hkdfOut.subarray(32, 64);
|
|
209
|
+
// 3. Verify MAC
|
|
210
|
+
const macInput = new Uint8Array(33 + 16 + ciphertext.length);
|
|
211
|
+
macInput.set(ephemeralPub, 0);
|
|
212
|
+
macInput.set(iv, 33);
|
|
213
|
+
macInput.set(ciphertext, 33 + 16);
|
|
214
|
+
const expectedMac = hmac(sha256, macKey, macInput);
|
|
215
|
+
if (!constantTimeEqual(mac, expectedMac)) {
|
|
216
|
+
throw new Error('ECIES decryption failed: MAC mismatch');
|
|
217
|
+
}
|
|
218
|
+
// 4. Decrypt
|
|
219
|
+
const plaintext = aesCtrEncrypt(encKey, iv, ciphertext); // CTR encrypt = decrypt
|
|
220
|
+
return bytesToHex(plaintext);
|
|
221
|
+
}
|
|
222
|
+
function constantTimeEqual(a, b) {
|
|
223
|
+
if (a.length !== b.length)
|
|
224
|
+
return false;
|
|
225
|
+
let diff = 0;
|
|
226
|
+
for (let i = 0; i < a.length; i++)
|
|
227
|
+
diff |= a[i] ^ b[i];
|
|
228
|
+
return diff === 0;
|
|
229
|
+
}
|
|
230
|
+
// ── High-Level: Agent Pack / Unpack ────────────────────────────────────────
|
|
231
|
+
/**
|
|
232
|
+
* Encrypt an Agent's private payload with AES-256-GCM.
|
|
233
|
+
*/
|
|
234
|
+
export function encryptPayload(payload, keyHex) {
|
|
235
|
+
const key = keyHex ?? generateAesKey();
|
|
236
|
+
return {
|
|
237
|
+
encrypted: true,
|
|
238
|
+
algorithm: 'AES-256-GCM',
|
|
239
|
+
data: aesEncrypt(JSON.stringify(payload), key),
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Decrypt an EncryptedPayload.
|
|
244
|
+
*/
|
|
245
|
+
export function decryptPayload(encrypted, keyHex) {
|
|
246
|
+
if (encrypted.algorithm !== 'AES-256-GCM') {
|
|
247
|
+
throw new Error(`Unsupported algorithm: ${encrypted.algorithm}`);
|
|
248
|
+
}
|
|
249
|
+
return JSON.parse(aesDecrypt(encrypted.data, keyHex));
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Pack an AgentPayload for publishing.
|
|
253
|
+
* 1. Split public/private
|
|
254
|
+
* 2. AES-256-GCM encrypt private part
|
|
255
|
+
* 3. ECIES wrap AES key with creator's public key
|
|
256
|
+
*/
|
|
257
|
+
export function packAgentForPublish(agent, publicKey, aesKeyHex) {
|
|
258
|
+
const key = aesKeyHex ?? generateAesKey();
|
|
259
|
+
const eciesEncryptedKeyHex = eciesEncrypt(key, publicKey);
|
|
260
|
+
return {
|
|
261
|
+
encryptedCid: '', // filled after IPFS upload
|
|
262
|
+
publicCid: '', // filled after IPFS upload
|
|
263
|
+
aesKeyHex: key,
|
|
264
|
+
eciesEncryptedKeyHex,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Unpack an Agent:
|
|
269
|
+
* 1. ECIES decrypt the AES key (private key)
|
|
270
|
+
* 2. AES-256-GCM decrypt the payload
|
|
271
|
+
*/
|
|
272
|
+
export function unpackAgent(encryptedPayload, eciesEncryptedKey, privateKey) {
|
|
273
|
+
const aesKeyHex = eciesDecrypt(eciesEncryptedKey, privateKey);
|
|
274
|
+
return decryptPayload(encryptedPayload, aesKeyHex);
|
|
275
|
+
}
|
|
276
|
+
// ── Key Pair Utilities ─────────────────────────────────────────────────────
|
|
277
|
+
/**
|
|
278
|
+
* Generate a secp256k1 keypair compatible with Ethereum wallets.
|
|
279
|
+
*/
|
|
280
|
+
export function generateKeyPair() {
|
|
281
|
+
const priv = randomBytes(32);
|
|
282
|
+
const pub = secp256k1.getPublicKey(priv, false); // uncompressed 04-prefixed
|
|
283
|
+
return { privateKey: bytesToHex(priv), publicKey: bytesToHex(pub) };
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Derive public key from private key (hex).
|
|
287
|
+
*/
|
|
288
|
+
export function getPublicKey(privateKey) {
|
|
289
|
+
return bytesToHex(secp256k1.getPublicKey(hexToBytes(privateKey), false));
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/core/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
export interface JSONSchema {
|
|
2
|
+
type: 'object' | 'array' | 'string' | 'number' | 'boolean' | 'integer' | 'null';
|
|
3
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
4
|
+
required?: string[];
|
|
5
|
+
description?: string;
|
|
6
|
+
items?: JSONSchema;
|
|
7
|
+
enum?: (string | number | boolean | null)[];
|
|
8
|
+
}
|
|
9
|
+
export interface JSONSchemaProperty {
|
|
10
|
+
type?: JSONSchema['type'] | JSONSchema['type'][];
|
|
11
|
+
description?: string;
|
|
12
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
13
|
+
required?: string[];
|
|
14
|
+
items?: JSONSchema;
|
|
15
|
+
enum?: (string | number | boolean | null)[];
|
|
16
|
+
format?: string;
|
|
17
|
+
default?: unknown;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A single skill module that an Agent exposes.
|
|
21
|
+
* `inputSchema` and `outputSchema` follow MCP Tool JSON Schema conventions.
|
|
22
|
+
*/
|
|
23
|
+
export interface SkillDef {
|
|
24
|
+
/** Unique skill name (e.g. "solidity_audit") */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Human-readable description shown in the marketplace */
|
|
27
|
+
description: string;
|
|
28
|
+
/** Semantic version of this skill */
|
|
29
|
+
version: string;
|
|
30
|
+
/** JSON Schema for the tool's input parameters */
|
|
31
|
+
inputSchema: JSONSchema;
|
|
32
|
+
/** JSON Schema for the tool's output return value */
|
|
33
|
+
outputSchema?: JSONSchema;
|
|
34
|
+
/**
|
|
35
|
+
* Execution mode.
|
|
36
|
+
* - undefined / "open": Source is in the encrypted payload, runs locally.
|
|
37
|
+
* - { type: "mcp", toolName: "..." }: Source lives on the publisher's
|
|
38
|
+
* MCP server. Subscriber only gets Schema + remote execution endpoint.
|
|
39
|
+
* MCP server verifies on-chain subscription on every call.
|
|
40
|
+
* - { type: "a2a", targetAgentId: 42 }: Delegates to another AgentX Agent.
|
|
41
|
+
* The caller's AgentRunner loads + decrypts the target Agent, injects
|
|
42
|
+
* its prompt into the LLM context, and exposes its skills as callable
|
|
43
|
+
* tools. This is the core Agent Composition primitive.
|
|
44
|
+
*/
|
|
45
|
+
execution?: SkillExecutionRemote | A2ASkillExecution;
|
|
46
|
+
}
|
|
47
|
+
/** Where the skill code actually runs. */
|
|
48
|
+
export type SkillExecutionMode = 'open' | 'mcp' | 'a2a';
|
|
49
|
+
export interface SkillExecutionRemote {
|
|
50
|
+
type: 'mcp';
|
|
51
|
+
/** MCP tool name on the publisher's server (e.g. "run_strategy_abc123") */
|
|
52
|
+
toolName: string;
|
|
53
|
+
/** Optional: explicit MCP endpoint override */
|
|
54
|
+
endpoint?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A2A Skill Execution — delegate to another AgentX Agent.
|
|
58
|
+
*
|
|
59
|
+
* Example: A "trading" Agent has a skill:
|
|
60
|
+
* execution: { type: "a2a", targetAgentId: 42 }
|
|
61
|
+
* → When LLM calls this skill, AgentRunner loads Agent #42,
|
|
62
|
+
* decrypts its prompt+skills, and the sub-Agent runs in the
|
|
63
|
+
* same LLM conversation with its own system prompt.
|
|
64
|
+
*/
|
|
65
|
+
export interface A2ASkillExecution {
|
|
66
|
+
type: 'a2a';
|
|
67
|
+
/** On-chain Agent ID to delegate to */
|
|
68
|
+
targetAgentId: number;
|
|
69
|
+
/** Optional: restrict which of the target Agent's skills are exposed */
|
|
70
|
+
skillFilter?: string[];
|
|
71
|
+
/** Optional: custom system prompt override for the sub-Agent */
|
|
72
|
+
promptOverride?: string;
|
|
73
|
+
}
|
|
74
|
+
export type McpTransport = 'http' | 'sse' | 'stdio';
|
|
75
|
+
export interface McpConnection {
|
|
76
|
+
/** Transport type */
|
|
77
|
+
type: McpTransport;
|
|
78
|
+
/** MCP server URL (required for http/sse) */
|
|
79
|
+
url?: string;
|
|
80
|
+
/** Optional: limit which tools the Agent exposes to users */
|
|
81
|
+
toolFilter?: string[];
|
|
82
|
+
/** Optional: MCP server authentication header / key */
|
|
83
|
+
authHeader?: string;
|
|
84
|
+
}
|
|
85
|
+
export type PricingType = 'subscription' | 'pay_per_use' | 'free';
|
|
86
|
+
export interface AgentPricing {
|
|
87
|
+
type: PricingType;
|
|
88
|
+
/** Amount in native unit (e.g. "0.01" for 0.01 ETH) */
|
|
89
|
+
amount: string;
|
|
90
|
+
/** ERC20 token address, or empty for native currency */
|
|
91
|
+
currency: string;
|
|
92
|
+
/** Billing period for subscriptions (e.g. "month", "year", "day") */
|
|
93
|
+
period?: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The complete Agent definition.
|
|
97
|
+
*
|
|
98
|
+
* - Fields above "--- private payload ---" are public (IPFS publicPayloadCid).
|
|
99
|
+
* - Fields below are encrypted with AES-256-GCM and stored at encryptedPayloadCid.
|
|
100
|
+
*/
|
|
101
|
+
export interface AgentPayload {
|
|
102
|
+
name: string;
|
|
103
|
+
description: string;
|
|
104
|
+
image?: string;
|
|
105
|
+
version: string;
|
|
106
|
+
tags: string[];
|
|
107
|
+
capabilities: string[];
|
|
108
|
+
supportedTasks: string[];
|
|
109
|
+
communicationProtocol: 'mcp' | 'a2a';
|
|
110
|
+
authenticationMethod: 'ecdsa';
|
|
111
|
+
pricing: AgentPricing;
|
|
112
|
+
prompt: string;
|
|
113
|
+
skills: SkillDef[];
|
|
114
|
+
mcp: McpConnection;
|
|
115
|
+
}
|
|
116
|
+
/** Subset of AgentPayload that is publicly visible */
|
|
117
|
+
export type AgentPublicPayload = Omit<AgentPayload, 'prompt' | 'skills' | 'mcp'>;
|
|
118
|
+
/** Fields that must be encrypted before IPFS upload */
|
|
119
|
+
export type AgentPrivatePayload = Pick<AgentPayload, 'prompt' | 'skills' | 'mcp'>;
|
|
120
|
+
export interface EncryptedPayload {
|
|
121
|
+
encrypted: true;
|
|
122
|
+
algorithm: 'AES-256-GCM';
|
|
123
|
+
/** base64(iv + ciphertext + authTag) */
|
|
124
|
+
data: string;
|
|
125
|
+
}
|
|
126
|
+
export interface OnChainAgentMetadata {
|
|
127
|
+
tokenURI: string;
|
|
128
|
+
attributes: {
|
|
129
|
+
name: string;
|
|
130
|
+
description: string;
|
|
131
|
+
/** CID of the AES-256-GCM encrypted payload on IPFS */
|
|
132
|
+
encryptedPayloadCid: string;
|
|
133
|
+
/** ECIES-encrypted AES key (secp256k1, hex string) */
|
|
134
|
+
eciesEncryptedKey: string;
|
|
135
|
+
/** CID of the public metadata on IPFS */
|
|
136
|
+
publicPayloadCid: string;
|
|
137
|
+
capabilities: string[];
|
|
138
|
+
skills: string[];
|
|
139
|
+
mcpEndpoint: string;
|
|
140
|
+
version: string;
|
|
141
|
+
tags: string[];
|
|
142
|
+
pricingType: PricingType;
|
|
143
|
+
pricingAmount: string;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export interface RegisteredAgent {
|
|
147
|
+
/** ERC-721 token ID (= agentId) */
|
|
148
|
+
agentId: number;
|
|
149
|
+
/** Owner wallet address */
|
|
150
|
+
owner: string;
|
|
151
|
+
/** Creator wallet address */
|
|
152
|
+
creator: string;
|
|
153
|
+
/** Full on-chain metadata */
|
|
154
|
+
metadata: OnChainAgentMetadata;
|
|
155
|
+
/** Block number where agent was registered */
|
|
156
|
+
registeredAt: number;
|
|
157
|
+
/** IPFS CID of the full public payload (resolved from tokenURI) */
|
|
158
|
+
publicPayloadCid: string;
|
|
159
|
+
}
|
|
160
|
+
export interface AgentSearchQuery {
|
|
161
|
+
keyword?: string;
|
|
162
|
+
capabilities?: string[];
|
|
163
|
+
tags?: string[];
|
|
164
|
+
pricingType?: PricingType;
|
|
165
|
+
maxPrice?: string;
|
|
166
|
+
owner?: string;
|
|
167
|
+
sortBy?: 'latest' | 'reputation' | 'price_asc' | 'price_desc';
|
|
168
|
+
page?: number;
|
|
169
|
+
pageSize?: number;
|
|
170
|
+
}
|
|
171
|
+
export interface AgentSearchResult {
|
|
172
|
+
agents: RegisteredAgent[];
|
|
173
|
+
total: number;
|
|
174
|
+
page: number;
|
|
175
|
+
pageSize: number;
|
|
176
|
+
}
|
|
177
|
+
export type SubscriptionStatus = 'active' | 'expired' | 'cancelled' | 'pending';
|
|
178
|
+
export interface AgentSubscription {
|
|
179
|
+
subscriptionId: number;
|
|
180
|
+
subscriber: string;
|
|
181
|
+
agentId: number;
|
|
182
|
+
status: SubscriptionStatus;
|
|
183
|
+
startedAt: number;
|
|
184
|
+
expiresAt: number;
|
|
185
|
+
period: string;
|
|
186
|
+
}
|
|
187
|
+
export type A2ATaskStatus = 'created' | 'accepted' | 'in_progress' | 'completed' | 'failed';
|
|
188
|
+
export interface A2AAgentCard {
|
|
189
|
+
agentId: number;
|
|
190
|
+
name: string;
|
|
191
|
+
capabilities: string[];
|
|
192
|
+
supportedTasks: string[];
|
|
193
|
+
/** MCP endpoint URL for direct agent-to-agent communication */
|
|
194
|
+
endpoint: string;
|
|
195
|
+
/** Public key for ECDSA authentication */
|
|
196
|
+
publicKey: string;
|
|
197
|
+
}
|
|
198
|
+
export interface A2ATask {
|
|
199
|
+
taskId: number;
|
|
200
|
+
/** Agent that created the task */
|
|
201
|
+
creator: string;
|
|
202
|
+
/** Target agent to execute the task */
|
|
203
|
+
targetAgentId: number;
|
|
204
|
+
/** Task type (must be in target's supportedTasks) */
|
|
205
|
+
taskType: string;
|
|
206
|
+
/** JSON input payload */
|
|
207
|
+
input: string;
|
|
208
|
+
status: A2ATaskStatus;
|
|
209
|
+
result?: string;
|
|
210
|
+
createdAt: number;
|
|
211
|
+
completedAt?: number;
|
|
212
|
+
}
|
|
213
|
+
export interface AgentReputation {
|
|
214
|
+
agentId: number;
|
|
215
|
+
averageRating: number;
|
|
216
|
+
totalRatings: number;
|
|
217
|
+
reviews: AgentReview[];
|
|
218
|
+
}
|
|
219
|
+
export interface AgentReview {
|
|
220
|
+
reviewer: string;
|
|
221
|
+
rating: number;
|
|
222
|
+
comment: string;
|
|
223
|
+
timestamp: number;
|
|
224
|
+
}
|
|
225
|
+
export interface AgentXConfig {
|
|
226
|
+
/** Chain ID (e.g. 11155111 for Sepolia) */
|
|
227
|
+
chainId: number;
|
|
228
|
+
/** RPC endpoint override (uses viem's default if omitted) */
|
|
229
|
+
rpcUrl?: string;
|
|
230
|
+
/** Contract addresses for the current chain */
|
|
231
|
+
contracts: AgentXContracts;
|
|
232
|
+
/** IPFS gateway URLs (ordered by priority) */
|
|
233
|
+
ipfsGateways: string[];
|
|
234
|
+
/** Default IPFS pinning service */
|
|
235
|
+
pinningService?: 'pinata';
|
|
236
|
+
pinataJwt?: string;
|
|
237
|
+
}
|
|
238
|
+
export interface AgentXContracts {
|
|
239
|
+
identityRegistry: `0x${string}`;
|
|
240
|
+
subscriptionManager: `0x${string}`;
|
|
241
|
+
paymentGateway: `0x${string}`;
|
|
242
|
+
a2aProtocolRegistry: `0x${string}`;
|
|
243
|
+
reputationRegistry: `0x${string}`;
|
|
244
|
+
configurationRegistry: `0x${string}`;
|
|
245
|
+
}
|
|
246
|
+
export interface PackResult {
|
|
247
|
+
/** CID of AES-256-GCM encrypted payload on IPFS */
|
|
248
|
+
encryptedCid: string;
|
|
249
|
+
/** CID of public metadata on IPFS */
|
|
250
|
+
publicCid: string;
|
|
251
|
+
/** Raw AES key (hex) — DO NOT share or upload this */
|
|
252
|
+
aesKeyHex: string;
|
|
253
|
+
/** ECIES-encrypted AES key (hex), safe to store on-chain */
|
|
254
|
+
eciesEncryptedKeyHex: string;
|
|
255
|
+
}
|
|
256
|
+
export interface UnpackResult {
|
|
257
|
+
/** Decrypted AgentPayload */
|
|
258
|
+
agent: AgentPayload;
|
|
259
|
+
/** CID where the encrypted payload was fetched from */
|
|
260
|
+
encryptedCid: string;
|
|
261
|
+
/** CID of the public metadata */
|
|
262
|
+
publicCid: string;
|
|
263
|
+
}
|
|
264
|
+
export declare enum AgentXErrorCode {
|
|
265
|
+
NOT_SUBSCRIBED = "NOT_SUBSCRIBED",
|
|
266
|
+
SUBSCRIPTION_EXPIRED = "SUBSCRIPTION_EXPIRED",
|
|
267
|
+
DECRYPTION_FAILED = "DECRYPTION_FAILED",
|
|
268
|
+
IPFS_FETCH_FAILED = "IPFS_FETCH_FAILED",
|
|
269
|
+
AGENT_NOT_FOUND = "AGENT_NOT_FOUND",
|
|
270
|
+
INVALID_SCHEMA = "INVALID_SCHEMA",
|
|
271
|
+
TX_FAILED = "TX_FAILED",
|
|
272
|
+
WALLET_NOT_CONNECTED = "WALLET_NOT_CONNECTED"
|
|
273
|
+
}
|
|
274
|
+
export declare class AgentXError extends Error {
|
|
275
|
+
code: AgentXErrorCode;
|
|
276
|
+
/** If NOT_SUBSCRIBED, carry enough info for wallet/X402 auto-payment */
|
|
277
|
+
paymentInfo?: SubscriptionRequired;
|
|
278
|
+
constructor(code: AgentXErrorCode, message: string);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Structured info for wallet/X402 auto-subscription.
|
|
282
|
+
* Thrown by AgentRunner.useAgent() when the user/Agent has no
|
|
283
|
+
* active subscription.
|
|
284
|
+
*/
|
|
285
|
+
export interface SubscriptionRequired {
|
|
286
|
+
agentId: number;
|
|
287
|
+
/** Plan IDs available for this Agent (on-chain query) */
|
|
288
|
+
plans?: {
|
|
289
|
+
planId: number;
|
|
290
|
+
price: bigint;
|
|
291
|
+
period: string;
|
|
292
|
+
payToken: string;
|
|
293
|
+
trialDays: number;
|
|
294
|
+
}[];
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @agentx/sdk — Core Type Definitions
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Agent = Prompt + Skills[] + MCP
|
|
5
|
+
// All crypto-related "wire" fields (encryptedPayloadCid, eciesEncryptedKey)
|
|
6
|
+
// live in IPFS metadata attributes → existing ERC8004 contracts are unchanged.
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// ── Error Types ────────────────────────────────────────────────────────────
|
|
9
|
+
export var AgentXErrorCode;
|
|
10
|
+
(function (AgentXErrorCode) {
|
|
11
|
+
AgentXErrorCode["NOT_SUBSCRIBED"] = "NOT_SUBSCRIBED";
|
|
12
|
+
AgentXErrorCode["SUBSCRIPTION_EXPIRED"] = "SUBSCRIPTION_EXPIRED";
|
|
13
|
+
AgentXErrorCode["DECRYPTION_FAILED"] = "DECRYPTION_FAILED";
|
|
14
|
+
AgentXErrorCode["IPFS_FETCH_FAILED"] = "IPFS_FETCH_FAILED";
|
|
15
|
+
AgentXErrorCode["AGENT_NOT_FOUND"] = "AGENT_NOT_FOUND";
|
|
16
|
+
AgentXErrorCode["INVALID_SCHEMA"] = "INVALID_SCHEMA";
|
|
17
|
+
AgentXErrorCode["TX_FAILED"] = "TX_FAILED";
|
|
18
|
+
AgentXErrorCode["WALLET_NOT_CONNECTED"] = "WALLET_NOT_CONNECTED";
|
|
19
|
+
})(AgentXErrorCode || (AgentXErrorCode = {}));
|
|
20
|
+
export class AgentXError extends Error {
|
|
21
|
+
code;
|
|
22
|
+
/** If NOT_SUBSCRIBED, carry enough info for wallet/X402 auto-payment */
|
|
23
|
+
paymentInfo;
|
|
24
|
+
constructor(code, message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.code = code;
|
|
27
|
+
this.name = 'AgentXError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAC9E,kCAAkC;AAClC,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AA2U9E,8EAA8E;AAE9E,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gEAA6C,CAAA;IAC7C,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;IACvC,sDAAmC,CAAA;IACnC,oDAAiC,CAAA;IACjC,0CAAuB,CAAA;IACvB,gEAA6C,CAAA;AAC/C,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,IAAI,CAAiB;IACrB,wEAAwE;IACxE,WAAW,CAAuB;IAClC,YAAY,IAAqB,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF"}
|