agent0-sdk 0.2.1

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -0
  3. package/dist/core/agent.d.ts +76 -0
  4. package/dist/core/agent.d.ts.map +1 -0
  5. package/dist/core/agent.js +477 -0
  6. package/dist/core/agent.js.map +1 -0
  7. package/dist/core/contracts.d.ts +688 -0
  8. package/dist/core/contracts.d.ts.map +1 -0
  9. package/dist/core/contracts.js +348 -0
  10. package/dist/core/contracts.js.map +1 -0
  11. package/dist/core/endpoint-crawler.d.ts +44 -0
  12. package/dist/core/endpoint-crawler.d.ts.map +1 -0
  13. package/dist/core/endpoint-crawler.js +280 -0
  14. package/dist/core/endpoint-crawler.js.map +1 -0
  15. package/dist/core/feedback-manager.d.ts +98 -0
  16. package/dist/core/feedback-manager.d.ts.map +1 -0
  17. package/dist/core/feedback-manager.js +543 -0
  18. package/dist/core/feedback-manager.js.map +1 -0
  19. package/dist/core/indexer.d.ts +37 -0
  20. package/dist/core/indexer.d.ts.map +1 -0
  21. package/dist/core/indexer.js +189 -0
  22. package/dist/core/indexer.js.map +1 -0
  23. package/dist/core/ipfs-client.d.ts +88 -0
  24. package/dist/core/ipfs-client.d.ts.map +1 -0
  25. package/dist/core/ipfs-client.js +334 -0
  26. package/dist/core/ipfs-client.js.map +1 -0
  27. package/dist/core/sdk.d.ts +177 -0
  28. package/dist/core/sdk.d.ts.map +1 -0
  29. package/dist/core/sdk.js +544 -0
  30. package/dist/core/sdk.js.map +1 -0
  31. package/dist/core/subgraph-client.d.ts +68 -0
  32. package/dist/core/subgraph-client.d.ts.map +1 -0
  33. package/dist/core/subgraph-client.js +635 -0
  34. package/dist/core/subgraph-client.js.map +1 -0
  35. package/dist/core/web3-client.d.ts +94 -0
  36. package/dist/core/web3-client.d.ts.map +1 -0
  37. package/dist/core/web3-client.js +197 -0
  38. package/dist/core/web3-client.js.map +1 -0
  39. package/dist/index.d.ts +20 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +20 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/models/enums.d.ts +22 -0
  44. package/dist/models/enums.d.ts.map +1 -0
  45. package/dist/models/enums.js +24 -0
  46. package/dist/models/enums.js.map +1 -0
  47. package/dist/models/generated/subgraph-types.d.ts +208 -0
  48. package/dist/models/generated/subgraph-types.d.ts.map +1 -0
  49. package/dist/models/generated/subgraph-types.js +2 -0
  50. package/dist/models/generated/subgraph-types.js.map +1 -0
  51. package/dist/models/index.d.ts +8 -0
  52. package/dist/models/index.d.ts.map +1 -0
  53. package/dist/models/index.js +8 -0
  54. package/dist/models/index.js.map +1 -0
  55. package/dist/models/interfaces.d.ts +125 -0
  56. package/dist/models/interfaces.d.ts.map +1 -0
  57. package/dist/models/interfaces.js +5 -0
  58. package/dist/models/interfaces.js.map +1 -0
  59. package/dist/models/types.d.ts +11 -0
  60. package/dist/models/types.d.ts.map +1 -0
  61. package/dist/models/types.js +5 -0
  62. package/dist/models/types.js.map +1 -0
  63. package/dist/utils/constants.d.ts +24 -0
  64. package/dist/utils/constants.d.ts.map +1 -0
  65. package/dist/utils/constants.js +28 -0
  66. package/dist/utils/constants.js.map +1 -0
  67. package/dist/utils/id-format.d.ts +30 -0
  68. package/dist/utils/id-format.d.ts.map +1 -0
  69. package/dist/utils/id-format.js +67 -0
  70. package/dist/utils/id-format.js.map +1 -0
  71. package/dist/utils/index.d.ts +7 -0
  72. package/dist/utils/index.d.ts.map +1 -0
  73. package/dist/utils/index.js +7 -0
  74. package/dist/utils/index.js.map +1 -0
  75. package/dist/utils/validation.d.ts +25 -0
  76. package/dist/utils/validation.d.ts.map +1 -0
  77. package/dist/utils/validation.js +61 -0
  78. package/dist/utils/validation.js.map +1 -0
  79. package/package.json +71 -0
@@ -0,0 +1,544 @@
1
+ /**
2
+ * Main SDK class for Agent0
3
+ */
4
+ import { EndpointType } from '../models/enums';
5
+ import { parseAgentId } from '../utils/id-format';
6
+ import { IPFS_GATEWAYS, TIMEOUTS } from '../utils/constants';
7
+ import { Web3Client } from './web3-client';
8
+ import { IPFSClient } from './ipfs-client';
9
+ import { SubgraphClient } from './subgraph-client';
10
+ import { FeedbackManager } from './feedback-manager';
11
+ import { AgentIndexer } from './indexer';
12
+ import { Agent } from './agent';
13
+ import { IDENTITY_REGISTRY_ABI, REPUTATION_REGISTRY_ABI, VALIDATION_REGISTRY_ABI, DEFAULT_REGISTRIES, DEFAULT_SUBGRAPH_URLS, } from './contracts';
14
+ /**
15
+ * Main SDK class for Agent0
16
+ */
17
+ export class SDK {
18
+ constructor(config) {
19
+ this._subgraphUrls = {};
20
+ this._chainId = config.chainId;
21
+ // Initialize Web3 client
22
+ this._web3Client = new Web3Client(config.rpcUrl, config.signer);
23
+ // Note: chainId will be fetched asynchronously on first use
24
+ // Resolve registry addresses
25
+ const registryOverrides = config.registryOverrides || {};
26
+ const defaultRegistries = DEFAULT_REGISTRIES[config.chainId] || {};
27
+ this._registries = { ...defaultRegistries, ...(registryOverrides[config.chainId] || {}) };
28
+ // Resolve subgraph URL
29
+ if (config.subgraphOverrides) {
30
+ Object.assign(this._subgraphUrls, config.subgraphOverrides);
31
+ }
32
+ let resolvedSubgraphUrl;
33
+ if (config.chainId in this._subgraphUrls) {
34
+ resolvedSubgraphUrl = this._subgraphUrls[config.chainId];
35
+ }
36
+ else if (config.chainId in DEFAULT_SUBGRAPH_URLS) {
37
+ resolvedSubgraphUrl = DEFAULT_SUBGRAPH_URLS[config.chainId];
38
+ }
39
+ else if (config.subgraphUrl) {
40
+ resolvedSubgraphUrl = config.subgraphUrl;
41
+ }
42
+ // Initialize subgraph client if URL available
43
+ if (resolvedSubgraphUrl) {
44
+ this._subgraphClient = new SubgraphClient(resolvedSubgraphUrl);
45
+ }
46
+ // Initialize indexer
47
+ this._indexer = new AgentIndexer(this._web3Client, this._subgraphClient);
48
+ // Initialize IPFS client
49
+ if (config.ipfs) {
50
+ this._ipfsClient = this._initializeIpfsClient(config);
51
+ }
52
+ // Initialize feedback manager (will set registries after they're created)
53
+ this._feedbackManager = new FeedbackManager(this._web3Client, this._ipfsClient, undefined, // reputationRegistry - will be set lazily
54
+ undefined, // identityRegistry - will be set lazily
55
+ this._subgraphClient);
56
+ }
57
+ /**
58
+ * Initialize IPFS client based on configuration
59
+ */
60
+ _initializeIpfsClient(config) {
61
+ if (!config.ipfs) {
62
+ throw new Error('IPFS provider not specified');
63
+ }
64
+ const ipfsConfig = {};
65
+ if (config.ipfs === 'node') {
66
+ if (!config.ipfsNodeUrl) {
67
+ throw new Error("ipfsNodeUrl is required when ipfs='node'");
68
+ }
69
+ ipfsConfig.url = config.ipfsNodeUrl;
70
+ }
71
+ else if (config.ipfs === 'filecoinPin') {
72
+ if (!config.filecoinPrivateKey) {
73
+ throw new Error("filecoinPrivateKey is required when ipfs='filecoinPin'");
74
+ }
75
+ ipfsConfig.filecoinPinEnabled = true;
76
+ ipfsConfig.filecoinPrivateKey = config.filecoinPrivateKey;
77
+ }
78
+ else if (config.ipfs === 'pinata') {
79
+ if (!config.pinataJwt) {
80
+ throw new Error("pinataJwt is required when ipfs='pinata'");
81
+ }
82
+ ipfsConfig.pinataEnabled = true;
83
+ ipfsConfig.pinataJwt = config.pinataJwt;
84
+ }
85
+ else {
86
+ throw new Error(`Invalid ipfs value: ${config.ipfs}. Must be 'node', 'filecoinPin', or 'pinata'`);
87
+ }
88
+ return new IPFSClient(ipfsConfig);
89
+ }
90
+ /**
91
+ * Get current chain ID
92
+ */
93
+ async chainId() {
94
+ if (this._web3Client.chainId === 0n) {
95
+ await this._web3Client.initialize();
96
+ }
97
+ return Number(this._web3Client.chainId);
98
+ }
99
+ /**
100
+ * Get resolved registry addresses for current chain
101
+ */
102
+ registries() {
103
+ return { ...this._registries };
104
+ }
105
+ /**
106
+ * Get identity registry contract
107
+ */
108
+ getIdentityRegistry() {
109
+ if (!this._identityRegistry) {
110
+ const address = this._registries.IDENTITY;
111
+ if (!address) {
112
+ throw new Error(`No identity registry address for chain ${this._chainId}`);
113
+ }
114
+ this._identityRegistry = this._web3Client.getContract(address, IDENTITY_REGISTRY_ABI);
115
+ }
116
+ return this._identityRegistry;
117
+ }
118
+ /**
119
+ * Get reputation registry contract
120
+ */
121
+ getReputationRegistry() {
122
+ if (!this._reputationRegistry) {
123
+ const address = this._registries.REPUTATION;
124
+ if (!address) {
125
+ throw new Error(`No reputation registry address for chain ${this._chainId}`);
126
+ }
127
+ this._reputationRegistry = this._web3Client.getContract(address, REPUTATION_REGISTRY_ABI);
128
+ // Update feedback manager
129
+ this._feedbackManager.setReputationRegistry(this._reputationRegistry);
130
+ }
131
+ return this._reputationRegistry;
132
+ }
133
+ /**
134
+ * Get validation registry contract
135
+ */
136
+ getValidationRegistry() {
137
+ if (!this._validationRegistry) {
138
+ const address = this._registries.VALIDATION;
139
+ if (!address) {
140
+ throw new Error(`No validation registry address for chain ${this._chainId}`);
141
+ }
142
+ this._validationRegistry = this._web3Client.getContract(address, VALIDATION_REGISTRY_ABI);
143
+ }
144
+ return this._validationRegistry;
145
+ }
146
+ /**
147
+ * Check if SDK is in read-only mode (no signer)
148
+ */
149
+ get isReadOnly() {
150
+ return !this._web3Client.address;
151
+ }
152
+ // Agent lifecycle methods
153
+ /**
154
+ * Create a new agent (off-chain object in memory)
155
+ */
156
+ createAgent(name, description, image) {
157
+ const registrationFile = {
158
+ name,
159
+ description,
160
+ image,
161
+ endpoints: [],
162
+ trustModels: [],
163
+ owners: [],
164
+ operators: [],
165
+ active: false,
166
+ x402support: false,
167
+ metadata: {},
168
+ updatedAt: Math.floor(Date.now() / 1000),
169
+ };
170
+ return new Agent(this, registrationFile);
171
+ }
172
+ /**
173
+ * Load an existing agent (hydrates from registration file if registered)
174
+ */
175
+ async loadAgent(agentId) {
176
+ // Parse agent ID
177
+ const { chainId, tokenId } = parseAgentId(agentId);
178
+ const currentChainId = await this.chainId();
179
+ if (chainId !== currentChainId) {
180
+ throw new Error(`Agent ${agentId} is not on current chain ${currentChainId}`);
181
+ }
182
+ // Get token URI from contract
183
+ let tokenUri;
184
+ try {
185
+ const identityRegistry = this.getIdentityRegistry();
186
+ tokenUri = await this._web3Client.callContract(identityRegistry, 'tokenURI', BigInt(tokenId));
187
+ }
188
+ catch (error) {
189
+ const errorMessage = error instanceof Error ? error.message : String(error);
190
+ throw new Error(`Failed to load agent ${agentId}: ${errorMessage}`);
191
+ }
192
+ // Load registration file - handle empty URI (agent registered without URI yet)
193
+ let registrationFile;
194
+ if (!tokenUri || tokenUri === '') {
195
+ // Agent registered but no URI set yet - create empty registration file
196
+ registrationFile = this._createEmptyRegistrationFile();
197
+ }
198
+ else {
199
+ registrationFile = await this._loadRegistrationFile(tokenUri);
200
+ }
201
+ registrationFile.agentId = agentId;
202
+ registrationFile.agentURI = tokenUri || undefined;
203
+ return new Agent(this, registrationFile);
204
+ }
205
+ /**
206
+ * Get agent summary from subgraph (read-only)
207
+ */
208
+ async getAgent(agentId) {
209
+ if (!this._subgraphClient) {
210
+ throw new Error('Subgraph client required for getAgent');
211
+ }
212
+ return this._subgraphClient.getAgentById(agentId);
213
+ }
214
+ /**
215
+ * Search agents with filters
216
+ */
217
+ async searchAgents(params, sort, pageSize = 50, cursor) {
218
+ const searchParams = params || {};
219
+ return this._indexer.searchAgents(searchParams, pageSize, cursor);
220
+ }
221
+ /**
222
+ * Search agents by reputation
223
+ */
224
+ async searchAgentsByReputation(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked = false, pageSize = 50, cursor, sort) {
225
+ // Parse cursor to skip value
226
+ let skip = 0;
227
+ if (cursor) {
228
+ try {
229
+ skip = parseInt(cursor, 10);
230
+ }
231
+ catch {
232
+ skip = 0;
233
+ }
234
+ }
235
+ // Default sort
236
+ if (!sort) {
237
+ sort = ['createdAt:desc'];
238
+ }
239
+ return this._indexer.searchAgentsByReputation(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked, pageSize, skip, sort);
240
+ }
241
+ /**
242
+ * Transfer agent ownership
243
+ */
244
+ async transferAgent(agentId, newOwner) {
245
+ const agent = await this.loadAgent(agentId);
246
+ return agent.transfer(newOwner);
247
+ }
248
+ /**
249
+ * Check if address is agent owner
250
+ */
251
+ async isAgentOwner(agentId, address) {
252
+ const { tokenId } = parseAgentId(agentId);
253
+ const identityRegistry = this.getIdentityRegistry();
254
+ const owner = await this._web3Client.callContract(identityRegistry, 'ownerOf', BigInt(tokenId));
255
+ return owner.toLowerCase() === address.toLowerCase();
256
+ }
257
+ /**
258
+ * Get agent owner
259
+ */
260
+ async getAgentOwner(agentId) {
261
+ const { tokenId } = parseAgentId(agentId);
262
+ const identityRegistry = this.getIdentityRegistry();
263
+ return await this._web3Client.callContract(identityRegistry, 'ownerOf', BigInt(tokenId));
264
+ }
265
+ // Feedback methods
266
+ /**
267
+ * Sign feedback authorization for a client
268
+ */
269
+ async signFeedbackAuth(agentId, clientAddress, indexLimit, expiryHours = 24) {
270
+ // Update feedback manager with registries
271
+ this._feedbackManager.setReputationRegistry(this.getReputationRegistry());
272
+ this._feedbackManager.setIdentityRegistry(this.getIdentityRegistry());
273
+ return this._feedbackManager.signFeedbackAuth(agentId, clientAddress, indexLimit, expiryHours);
274
+ }
275
+ /**
276
+ * Prepare feedback file
277
+ */
278
+ prepareFeedback(agentId, score, tags, text, capability, name, skill, task, context, proofOfPayment, extra) {
279
+ return this._feedbackManager.prepareFeedback(agentId, score, tags, text, capability, name, skill, task, context, proofOfPayment, extra);
280
+ }
281
+ /**
282
+ * Give feedback
283
+ */
284
+ async giveFeedback(agentId, feedbackFile, feedbackAuth) {
285
+ // Update feedback manager with registries
286
+ this._feedbackManager.setReputationRegistry(this.getReputationRegistry());
287
+ this._feedbackManager.setIdentityRegistry(this.getIdentityRegistry());
288
+ return this._feedbackManager.giveFeedback(agentId, feedbackFile, undefined, feedbackAuth);
289
+ }
290
+ /**
291
+ * Read feedback
292
+ */
293
+ async getFeedback(agentId, clientAddress, feedbackIndex) {
294
+ return this._feedbackManager.getFeedback(agentId, clientAddress, feedbackIndex);
295
+ }
296
+ /**
297
+ * Search feedback
298
+ */
299
+ async searchFeedback(agentId, tags, capabilities, skills, minScore, maxScore) {
300
+ const params = {
301
+ agents: [agentId],
302
+ tags,
303
+ capabilities,
304
+ skills,
305
+ minScore,
306
+ maxScore,
307
+ };
308
+ return this._feedbackManager.searchFeedback(params);
309
+ }
310
+ /**
311
+ * Append response to feedback
312
+ */
313
+ async appendResponse(agentId, clientAddress, feedbackIndex, response) {
314
+ // Update feedback manager with registries
315
+ this._feedbackManager.setReputationRegistry(this.getReputationRegistry());
316
+ return this._feedbackManager.appendResponse(agentId, clientAddress, feedbackIndex, response.uri, response.hash);
317
+ }
318
+ /**
319
+ * Revoke feedback
320
+ */
321
+ async revokeFeedback(agentId, feedbackIndex) {
322
+ // Update feedback manager with registries
323
+ this._feedbackManager.setReputationRegistry(this.getReputationRegistry());
324
+ return this._feedbackManager.revokeFeedback(agentId, feedbackIndex);
325
+ }
326
+ /**
327
+ * Get reputation summary
328
+ */
329
+ async getReputationSummary(agentId, tag1, tag2) {
330
+ // Update feedback manager with registries
331
+ this._feedbackManager.setReputationRegistry(this.getReputationRegistry());
332
+ return this._feedbackManager.getReputationSummary(agentId, tag1, tag2);
333
+ }
334
+ /**
335
+ * Create an empty registration file structure
336
+ */
337
+ _createEmptyRegistrationFile() {
338
+ return {
339
+ name: '',
340
+ description: '',
341
+ endpoints: [],
342
+ trustModels: [],
343
+ owners: [],
344
+ operators: [],
345
+ active: false,
346
+ x402support: false,
347
+ metadata: {},
348
+ updatedAt: Math.floor(Date.now() / 1000),
349
+ };
350
+ }
351
+ /**
352
+ * Private helper methods
353
+ */
354
+ async _loadRegistrationFile(tokenUri) {
355
+ try {
356
+ // Fetch from IPFS or HTTP
357
+ let rawData;
358
+ if (tokenUri.startsWith('ipfs://')) {
359
+ const cid = tokenUri.slice(7);
360
+ if (this._ipfsClient) {
361
+ // Use IPFS client if available
362
+ rawData = await this._ipfsClient.getJson(cid);
363
+ }
364
+ else {
365
+ // Fallback to HTTP gateways if no IPFS client configured
366
+ const gateways = IPFS_GATEWAYS.map(gateway => `${gateway}${cid}`);
367
+ let fetched = false;
368
+ for (const gateway of gateways) {
369
+ try {
370
+ const response = await fetch(gateway, {
371
+ signal: AbortSignal.timeout(TIMEOUTS.IPFS_GATEWAY),
372
+ });
373
+ if (response.ok) {
374
+ rawData = await response.json();
375
+ fetched = true;
376
+ break;
377
+ }
378
+ }
379
+ catch {
380
+ continue;
381
+ }
382
+ }
383
+ if (!fetched) {
384
+ throw new Error('Failed to retrieve data from all IPFS gateways');
385
+ }
386
+ }
387
+ }
388
+ else if (tokenUri.startsWith('http://') || tokenUri.startsWith('https://')) {
389
+ const response = await fetch(tokenUri);
390
+ if (!response.ok) {
391
+ throw new Error(`Failed to fetch registration file: HTTP ${response.status}`);
392
+ }
393
+ rawData = await response.json();
394
+ }
395
+ else if (tokenUri.startsWith('data:')) {
396
+ // Data URIs are not supported
397
+ throw new Error(`Data URIs are not supported. Expected HTTP(S) or IPFS URI, got: ${tokenUri}`);
398
+ }
399
+ else if (!tokenUri || tokenUri.trim() === '') {
400
+ // Empty URI - return empty registration file (agent registered without URI)
401
+ return this._createEmptyRegistrationFile();
402
+ }
403
+ else {
404
+ throw new Error(`Unsupported URI scheme: ${tokenUri}`);
405
+ }
406
+ // Validate rawData is an object before transformation
407
+ if (typeof rawData !== 'object' || rawData === null || Array.isArray(rawData)) {
408
+ throw new Error('Invalid registration file format: expected an object');
409
+ }
410
+ // Transform IPFS/HTTP file format to RegistrationFile format
411
+ return this._transformRegistrationFile(rawData);
412
+ }
413
+ catch (error) {
414
+ const errorMessage = error instanceof Error ? error.message : String(error);
415
+ throw new Error(`Failed to load registration file: ${errorMessage}`);
416
+ }
417
+ }
418
+ /**
419
+ * Transform raw registration file (from IPFS/HTTP) to RegistrationFile format
420
+ * Accepts raw JSON data which may have legacy format or new format
421
+ */
422
+ _transformRegistrationFile(rawData) {
423
+ const endpoints = this._transformEndpoints(rawData);
424
+ const { walletAddress, walletChainId } = this._extractWalletInfo(rawData);
425
+ // Extract trust models with proper type checking
426
+ const trustModels = Array.isArray(rawData.supportedTrust)
427
+ ? rawData.supportedTrust
428
+ : Array.isArray(rawData.trustModels)
429
+ ? rawData.trustModels
430
+ : [];
431
+ return {
432
+ name: typeof rawData.name === 'string' ? rawData.name : '',
433
+ description: typeof rawData.description === 'string' ? rawData.description : '',
434
+ image: typeof rawData.image === 'string' ? rawData.image : undefined,
435
+ endpoints,
436
+ trustModels,
437
+ owners: Array.isArray(rawData.owners) ? rawData.owners.filter((o) => typeof o === 'string') : [],
438
+ operators: Array.isArray(rawData.operators) ? rawData.operators.filter((o) => typeof o === 'string') : [],
439
+ active: typeof rawData.active === 'boolean' ? rawData.active : false,
440
+ x402support: typeof rawData.x402support === 'boolean' ? rawData.x402support : false,
441
+ metadata: typeof rawData.metadata === 'object' && rawData.metadata !== null && !Array.isArray(rawData.metadata)
442
+ ? rawData.metadata
443
+ : {},
444
+ updatedAt: typeof rawData.updatedAt === 'number' ? rawData.updatedAt : Math.floor(Date.now() / 1000),
445
+ walletAddress,
446
+ walletChainId,
447
+ };
448
+ }
449
+ /**
450
+ * Transform endpoints from old format { name, endpoint, version } to new format { type, value, meta }
451
+ */
452
+ _transformEndpoints(rawData) {
453
+ const endpoints = [];
454
+ if (!rawData.endpoints || !Array.isArray(rawData.endpoints)) {
455
+ return endpoints;
456
+ }
457
+ for (const ep of rawData.endpoints) {
458
+ // Check if it's already in the new format
459
+ if (ep.type && ep.value !== undefined) {
460
+ endpoints.push({
461
+ type: ep.type,
462
+ value: ep.value,
463
+ meta: ep.meta,
464
+ });
465
+ }
466
+ else {
467
+ // Transform from old format
468
+ const transformed = this._transformEndpointLegacy(ep, rawData);
469
+ if (transformed) {
470
+ endpoints.push(transformed);
471
+ }
472
+ }
473
+ }
474
+ return endpoints;
475
+ }
476
+ /**
477
+ * Transform a single endpoint from legacy format
478
+ */
479
+ _transformEndpointLegacy(ep, rawData) {
480
+ const name = typeof ep.name === 'string' ? ep.name : '';
481
+ const value = typeof ep.endpoint === 'string' ? ep.endpoint : '';
482
+ const version = typeof ep.version === 'string' ? ep.version : undefined;
483
+ // Map endpoint names to types using case-insensitive lookup
484
+ const nameLower = name.toLowerCase();
485
+ const ENDPOINT_TYPE_MAP = {
486
+ 'mcp': EndpointType.MCP,
487
+ 'a2a': EndpointType.A2A,
488
+ 'ens': EndpointType.ENS,
489
+ 'did': EndpointType.DID,
490
+ 'agentwallet': EndpointType.WALLET,
491
+ 'wallet': EndpointType.WALLET,
492
+ };
493
+ let type;
494
+ if (ENDPOINT_TYPE_MAP[nameLower]) {
495
+ type = ENDPOINT_TYPE_MAP[nameLower];
496
+ // Special handling for wallet endpoints - parse eip155 format
497
+ if (type === EndpointType.WALLET) {
498
+ const walletMatch = value.match(/eip155:(\d+):(0x[a-fA-F0-9]{40})/);
499
+ if (walletMatch) {
500
+ rawData._walletAddress = walletMatch[2];
501
+ rawData._walletChainId = parseInt(walletMatch[1], 10);
502
+ }
503
+ }
504
+ }
505
+ else {
506
+ type = name; // Fallback to name as type
507
+ }
508
+ return {
509
+ type: type,
510
+ value,
511
+ meta: version ? { version } : undefined,
512
+ };
513
+ }
514
+ /**
515
+ * Extract wallet address and chain ID from raw data
516
+ */
517
+ _extractWalletInfo(rawData) {
518
+ // Priority: extracted from endpoints > direct fields
519
+ if (typeof rawData._walletAddress === 'string' && typeof rawData._walletChainId === 'number') {
520
+ return {
521
+ walletAddress: rawData._walletAddress,
522
+ walletChainId: rawData._walletChainId,
523
+ };
524
+ }
525
+ if (typeof rawData.walletAddress === 'string' && typeof rawData.walletChainId === 'number') {
526
+ return {
527
+ walletAddress: rawData.walletAddress,
528
+ walletChainId: rawData.walletChainId,
529
+ };
530
+ }
531
+ return {};
532
+ }
533
+ // Expose clients for advanced usage
534
+ get web3Client() {
535
+ return this._web3Client;
536
+ }
537
+ get ipfsClient() {
538
+ return this._ipfsClient;
539
+ }
540
+ get subgraphClient() {
541
+ return this._subgraphClient;
542
+ }
543
+ }
544
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/core/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Subgraph client for querying The Graph network
3
+ */
4
+ import type { AgentSummary, SearchParams } from '../models/interfaces';
5
+ import type { Agent, AgentRegistrationFile } from '../models/generated/subgraph-types';
6
+ export interface SubgraphQueryOptions {
7
+ where?: Record<string, unknown>;
8
+ first?: number;
9
+ skip?: number;
10
+ orderBy?: string;
11
+ orderDirection?: 'asc' | 'desc';
12
+ includeRegistrationFile?: boolean;
13
+ }
14
+ export type QueryAgent = Pick<Agent, 'id' | 'chainId' | 'agentId' | 'owner' | 'operators' | 'agentURI' | 'createdAt' | 'updatedAt'> & {
15
+ registrationFile?: AgentRegistrationFile | null;
16
+ };
17
+ /**
18
+ * Client for querying the subgraph GraphQL API
19
+ */
20
+ export declare class SubgraphClient {
21
+ private client;
22
+ constructor(subgraphUrl: string);
23
+ /**
24
+ * Execute a GraphQL query against the subgraph
25
+ */
26
+ query<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<T>;
27
+ /**
28
+ * Query agents from the subgraph
29
+ */
30
+ getAgents(options?: SubgraphQueryOptions): Promise<AgentSummary[]>;
31
+ /**
32
+ * Get a single agent by ID
33
+ */
34
+ getAgentById(agentId: string): Promise<AgentSummary | null>;
35
+ /**
36
+ * Transform raw subgraph agent data to AgentSummary
37
+ */
38
+ private _transformAgent;
39
+ /**
40
+ * Search agents with filters (delegates to getAgents with WHERE clause)
41
+ * @param params Search parameters
42
+ * @param first Maximum number of results to return (default: 100)
43
+ * @param skip Number of results to skip for pagination (default: 0)
44
+ */
45
+ searchAgents(params: SearchParams, first?: number, skip?: number): Promise<AgentSummary[]>;
46
+ /**
47
+ * Search feedback with filters
48
+ */
49
+ searchFeedback(params: {
50
+ agents?: string[];
51
+ reviewers?: string[];
52
+ tags?: string[];
53
+ capabilities?: string[];
54
+ skills?: string[];
55
+ tasks?: string[];
56
+ names?: string[];
57
+ minScore?: number;
58
+ maxScore?: number;
59
+ includeRevoked?: boolean;
60
+ }, first?: number, skip?: number, orderBy?: string, orderDirection?: 'asc' | 'desc'): Promise<any[]>;
61
+ /**
62
+ * Search agents filtered by reputation criteria
63
+ */
64
+ searchAgentsByReputation(agents?: string[], tags?: string[], reviewers?: string[], capabilities?: string[], skills?: string[], tasks?: string[], names?: string[], minAverageScore?: number, includeRevoked?: boolean, first?: number, skip?: number, orderBy?: string, orderDirection?: 'asc' | 'desc'): Promise<Array<QueryAgent & {
65
+ averageScore?: number | null;
66
+ }>>;
67
+ }
68
+ //# sourceMappingURL=subgraph-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph-client.d.ts","sourceRoot":"","sources":["../../src/core/subgraph-client.ts"],"names":[],"mappings":"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"}