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.
- package/LICENSE +21 -0
- package/README.md +234 -0
- package/dist/core/agent.d.ts +76 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +477 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/contracts.d.ts +688 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +348 -0
- package/dist/core/contracts.js.map +1 -0
- package/dist/core/endpoint-crawler.d.ts +44 -0
- package/dist/core/endpoint-crawler.d.ts.map +1 -0
- package/dist/core/endpoint-crawler.js +280 -0
- package/dist/core/endpoint-crawler.js.map +1 -0
- package/dist/core/feedback-manager.d.ts +98 -0
- package/dist/core/feedback-manager.d.ts.map +1 -0
- package/dist/core/feedback-manager.js +543 -0
- package/dist/core/feedback-manager.js.map +1 -0
- package/dist/core/indexer.d.ts +37 -0
- package/dist/core/indexer.d.ts.map +1 -0
- package/dist/core/indexer.js +189 -0
- package/dist/core/indexer.js.map +1 -0
- package/dist/core/ipfs-client.d.ts +88 -0
- package/dist/core/ipfs-client.d.ts.map +1 -0
- package/dist/core/ipfs-client.js +334 -0
- package/dist/core/ipfs-client.js.map +1 -0
- package/dist/core/sdk.d.ts +177 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +544 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/subgraph-client.d.ts +68 -0
- package/dist/core/subgraph-client.d.ts.map +1 -0
- package/dist/core/subgraph-client.js +635 -0
- package/dist/core/subgraph-client.js.map +1 -0
- package/dist/core/web3-client.d.ts +94 -0
- package/dist/core/web3-client.d.ts.map +1 -0
- package/dist/core/web3-client.js +197 -0
- package/dist/core/web3-client.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/models/enums.d.ts +22 -0
- package/dist/models/enums.d.ts.map +1 -0
- package/dist/models/enums.js +24 -0
- package/dist/models/enums.js.map +1 -0
- package/dist/models/generated/subgraph-types.d.ts +208 -0
- package/dist/models/generated/subgraph-types.d.ts.map +1 -0
- package/dist/models/generated/subgraph-types.js +2 -0
- package/dist/models/generated/subgraph-types.js.map +1 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +8 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/interfaces.d.ts +125 -0
- package/dist/models/interfaces.d.ts.map +1 -0
- package/dist/models/interfaces.js +5 -0
- package/dist/models/interfaces.js.map +1 -0
- package/dist/models/types.d.ts +11 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +5 -0
- package/dist/models/types.js.map +1 -0
- package/dist/utils/constants.d.ts +24 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +28 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/id-format.d.ts +30 -0
- package/dist/utils/id-format.d.ts.map +1 -0
- package/dist/utils/id-format.js +67 -0
- package/dist/utils/id-format.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/validation.d.ts +25 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +61 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +71 -0
package/dist/core/sdk.js
ADDED
|
@@ -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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"}
|