agent0-sdk 0.2.4 → 0.31.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 +212 -6
- package/dist/core/agent.d.ts +5 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +117 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +8 -0
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/feedback-manager.d.ts +8 -0
- package/dist/core/feedback-manager.d.ts.map +1 -1
- package/dist/core/feedback-manager.js +147 -5
- package/dist/core/feedback-manager.js.map +1 -1
- package/dist/core/indexer.d.ts +45 -6
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +492 -7
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/oasf-validator.d.ts +16 -0
- package/dist/core/oasf-validator.d.ts.map +1 -0
- package/dist/core/oasf-validator.js +26 -0
- package/dist/core/oasf-validator.js.map +1 -0
- package/dist/core/sdk.d.ts +11 -2
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +55 -8
- package/dist/core/sdk.js.map +1 -1
- package/dist/models/enums.d.ts +2 -1
- package/dist/models/enums.d.ts.map +1 -1
- package/dist/models/enums.js +1 -0
- package/dist/models/enums.js.map +1 -1
- package/dist/models/interfaces.d.ts +14 -1
- package/dist/models/interfaces.d.ts.map +1 -1
- package/dist/taxonomies/all_domains.json +1565 -0
- package/dist/taxonomies/all_skills.json +1030 -0
- package/package.json +1 -1
package/dist/core/indexer.js
CHANGED
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
* Agent indexer for discovery and search functionality
|
|
3
3
|
* Simplified version focused on subgraph queries (no local ML indexing)
|
|
4
4
|
*/
|
|
5
|
+
import { SubgraphClient } from './subgraph-client.js';
|
|
5
6
|
import { normalizeAddress } from '../utils/validation.js';
|
|
7
|
+
import { DEFAULT_SUBGRAPH_URLS } from './contracts.js';
|
|
6
8
|
/**
|
|
7
9
|
* Simplified indexer that primarily uses subgraph for queries
|
|
8
10
|
* No local indexing or ML capabilities - all queries go through subgraph
|
|
9
11
|
*/
|
|
10
12
|
export class AgentIndexer {
|
|
11
|
-
constructor(web3Client, subgraphClient) {
|
|
13
|
+
constructor(web3Client, subgraphClient, subgraphUrlOverrides) {
|
|
12
14
|
this.web3Client = web3Client;
|
|
13
15
|
this.subgraphClient = subgraphClient;
|
|
16
|
+
this.subgraphUrlOverrides = subgraphUrlOverrides;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Get agent summary from index/subgraph
|
|
@@ -30,12 +33,46 @@ export class AgentIndexer {
|
|
|
30
33
|
/**
|
|
31
34
|
* Search agents with filters
|
|
32
35
|
*/
|
|
33
|
-
async searchAgents(params = {}, pageSize = 50, cursor) {
|
|
36
|
+
async searchAgents(params = {}, pageSize = 50, cursor, sort = []) {
|
|
37
|
+
// Ensure params is always an object
|
|
38
|
+
const searchParams = params || {};
|
|
39
|
+
// Handle "all" chains shorthand
|
|
40
|
+
if (searchParams.chains === 'all') {
|
|
41
|
+
searchParams.chains = this._getAllConfiguredChains();
|
|
42
|
+
}
|
|
43
|
+
// If chains are explicitly specified (even a single chain), use multi-chain path
|
|
44
|
+
if (searchParams.chains && Array.isArray(searchParams.chains) && searchParams.chains.length > 0) {
|
|
45
|
+
// Validate chains are configured
|
|
46
|
+
const availableChains = new Set(this._getAllConfiguredChains());
|
|
47
|
+
const requestedChains = new Set(searchParams.chains);
|
|
48
|
+
const invalidChains = [...requestedChains].filter(c => !availableChains.has(c));
|
|
49
|
+
if (invalidChains.length > 0) {
|
|
50
|
+
// Filter to valid chains only
|
|
51
|
+
const validChains = searchParams.chains.filter(c => availableChains.has(c));
|
|
52
|
+
if (validChains.length === 0) {
|
|
53
|
+
return {
|
|
54
|
+
items: [],
|
|
55
|
+
nextCursor: undefined,
|
|
56
|
+
meta: {
|
|
57
|
+
chains: searchParams.chains,
|
|
58
|
+
successfulChains: [],
|
|
59
|
+
failedChains: searchParams.chains,
|
|
60
|
+
totalResults: 0,
|
|
61
|
+
timing: { totalMs: 0 },
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
searchParams.chains = validChains;
|
|
66
|
+
}
|
|
67
|
+
// Use multi-chain search if multiple chains or single chain different from default
|
|
68
|
+
if (searchParams.chains.length > 1) {
|
|
69
|
+
return this._searchAgentsAcrossChains(searchParams, sort, pageSize, cursor);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Single-chain search (existing logic)
|
|
34
73
|
if (!this.subgraphClient) {
|
|
35
74
|
throw new Error('Subgraph client required for agent search');
|
|
36
75
|
}
|
|
37
|
-
// Ensure params is always an object
|
|
38
|
-
const searchParams = params || {};
|
|
39
76
|
// Parse cursor for pagination
|
|
40
77
|
const skip = cursor ? parseInt(cursor, 10) : 0;
|
|
41
78
|
// Use subgraph search which pushes filters and pagination to subgraph level (much more efficient)
|
|
@@ -123,17 +160,283 @@ export class AgentIndexer {
|
|
|
123
160
|
if (x402support !== undefined && agent.x402support !== x402support) {
|
|
124
161
|
return false;
|
|
125
162
|
}
|
|
126
|
-
// Filter by chain
|
|
127
|
-
if (chains && chains.length > 0 && !chains.includes(agent.chainId)) {
|
|
163
|
+
// Filter by chain (only if chains is an array, not 'all')
|
|
164
|
+
if (chains && Array.isArray(chains) && chains.length > 0 && !chains.includes(agent.chainId)) {
|
|
128
165
|
return false;
|
|
129
166
|
}
|
|
130
167
|
return true;
|
|
131
168
|
});
|
|
132
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all configured chains (chains with subgraph URLs)
|
|
172
|
+
*/
|
|
173
|
+
_getAllConfiguredChains() {
|
|
174
|
+
const chains = [];
|
|
175
|
+
// Add chains from overrides
|
|
176
|
+
if (this.subgraphUrlOverrides) {
|
|
177
|
+
chains.push(...Object.keys(this.subgraphUrlOverrides).map(Number));
|
|
178
|
+
}
|
|
179
|
+
// Add chains from defaults
|
|
180
|
+
for (const chainId of Object.keys(DEFAULT_SUBGRAPH_URLS)) {
|
|
181
|
+
const chainIdNum = Number(chainId);
|
|
182
|
+
if (!chains.includes(chainIdNum)) {
|
|
183
|
+
chains.push(chainIdNum);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return chains.sort((a, b) => a - b);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get subgraph client for a specific chain
|
|
190
|
+
*/
|
|
191
|
+
_getSubgraphClientForChain(chainId) {
|
|
192
|
+
// Check overrides first
|
|
193
|
+
let subgraphUrl;
|
|
194
|
+
if (this.subgraphUrlOverrides && chainId in this.subgraphUrlOverrides) {
|
|
195
|
+
subgraphUrl = this.subgraphUrlOverrides[chainId];
|
|
196
|
+
}
|
|
197
|
+
else if (chainId in DEFAULT_SUBGRAPH_URLS) {
|
|
198
|
+
subgraphUrl = DEFAULT_SUBGRAPH_URLS[chainId];
|
|
199
|
+
}
|
|
200
|
+
if (!subgraphUrl) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
return new SubgraphClient(subgraphUrl);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Parse multi-chain pagination cursor
|
|
207
|
+
*/
|
|
208
|
+
_parseMultiChainCursor(cursor) {
|
|
209
|
+
if (!cursor) {
|
|
210
|
+
return { _global_offset: 0 };
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const parsed = JSON.parse(cursor);
|
|
214
|
+
return {
|
|
215
|
+
_global_offset: typeof parsed._global_offset === 'number' ? parsed._global_offset : 0,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
// Fallback: try to parse as simple number
|
|
220
|
+
const offset = parseInt(cursor, 10);
|
|
221
|
+
return { _global_offset: isNaN(offset) ? 0 : offset };
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Create multi-chain pagination cursor
|
|
226
|
+
*/
|
|
227
|
+
_createMultiChainCursor(globalOffset) {
|
|
228
|
+
return JSON.stringify({ _global_offset: globalOffset });
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Apply cross-chain filters (for fields not supported by subgraph WHERE clause)
|
|
232
|
+
*/
|
|
233
|
+
_applyCrossChainFilters(agents, params) {
|
|
234
|
+
return this._filterAgents(agents, params);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Deduplicate agents across chains (by name and description)
|
|
238
|
+
*/
|
|
239
|
+
_deduplicateAgentsCrossChain(agents, params) {
|
|
240
|
+
// For now, return as-is (no deduplication)
|
|
241
|
+
// Python SDK has deduplication logic but it's optional
|
|
242
|
+
return agents;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Sort agents across chains
|
|
246
|
+
*/
|
|
247
|
+
_sortAgentsCrossChain(agents, sort) {
|
|
248
|
+
if (!sort || sort.length === 0) {
|
|
249
|
+
return agents;
|
|
250
|
+
}
|
|
251
|
+
const sortField = sort[0].split(':');
|
|
252
|
+
const field = sortField[0] || 'createdAt';
|
|
253
|
+
const direction = sortField[1] || 'desc';
|
|
254
|
+
return [...agents].sort((a, b) => {
|
|
255
|
+
let aVal;
|
|
256
|
+
let bVal;
|
|
257
|
+
switch (field) {
|
|
258
|
+
case 'createdAt':
|
|
259
|
+
aVal = a.extras?.createdAt || 0;
|
|
260
|
+
bVal = b.extras?.createdAt || 0;
|
|
261
|
+
break;
|
|
262
|
+
case 'name':
|
|
263
|
+
aVal = a.name?.toLowerCase() || '';
|
|
264
|
+
bVal = b.name?.toLowerCase() || '';
|
|
265
|
+
break;
|
|
266
|
+
case 'chainId':
|
|
267
|
+
aVal = a.chainId;
|
|
268
|
+
bVal = b.chainId;
|
|
269
|
+
break;
|
|
270
|
+
default:
|
|
271
|
+
aVal = a.extras?.[field] || 0;
|
|
272
|
+
bVal = b.extras?.[field] || 0;
|
|
273
|
+
}
|
|
274
|
+
if (aVal < bVal)
|
|
275
|
+
return direction === 'asc' ? -1 : 1;
|
|
276
|
+
if (aVal > bVal)
|
|
277
|
+
return direction === 'asc' ? 1 : -1;
|
|
278
|
+
return 0;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Search agents across multiple chains in parallel
|
|
283
|
+
*/
|
|
284
|
+
async _searchAgentsAcrossChains(params, sort, pageSize, cursor, timeout = 30000) {
|
|
285
|
+
const startTime = Date.now();
|
|
286
|
+
// Step 1: Determine which chains to query
|
|
287
|
+
const chainsToQuery = (params.chains && Array.isArray(params.chains) && params.chains.length > 0)
|
|
288
|
+
? params.chains
|
|
289
|
+
: this._getAllConfiguredChains();
|
|
290
|
+
if (chainsToQuery.length === 0) {
|
|
291
|
+
return {
|
|
292
|
+
items: [],
|
|
293
|
+
nextCursor: undefined,
|
|
294
|
+
meta: {
|
|
295
|
+
chains: [],
|
|
296
|
+
successfulChains: [],
|
|
297
|
+
failedChains: [],
|
|
298
|
+
totalResults: 0,
|
|
299
|
+
timing: { totalMs: 0 },
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
// Step 2: Parse pagination cursor
|
|
304
|
+
const chainCursors = this._parseMultiChainCursor(cursor);
|
|
305
|
+
const globalOffset = chainCursors._global_offset;
|
|
306
|
+
// Step 3: Define async function for querying a single chain
|
|
307
|
+
const querySingleChain = async (chainId) => {
|
|
308
|
+
try {
|
|
309
|
+
const subgraphClient = this._getSubgraphClientForChain(chainId);
|
|
310
|
+
if (!subgraphClient) {
|
|
311
|
+
return {
|
|
312
|
+
chainId,
|
|
313
|
+
status: 'unavailable',
|
|
314
|
+
agents: [],
|
|
315
|
+
error: `No subgraph configured for chain ${chainId}`,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
// Build search params for this chain (remove chains filter)
|
|
319
|
+
const chainParams = { ...params };
|
|
320
|
+
delete chainParams.chains;
|
|
321
|
+
// Execute subgraph query (fetch extra to allow for filtering/sorting)
|
|
322
|
+
const agents = await subgraphClient.searchAgents(chainParams, pageSize * 3, 0);
|
|
323
|
+
return {
|
|
324
|
+
chainId,
|
|
325
|
+
status: 'success',
|
|
326
|
+
agents,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
return {
|
|
331
|
+
chainId,
|
|
332
|
+
status: 'error',
|
|
333
|
+
agents: [],
|
|
334
|
+
error: error instanceof Error ? error.message : String(error),
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
// Step 4: Execute all chain queries in parallel with timeout
|
|
339
|
+
const chainPromises = chainsToQuery.map(chainId => {
|
|
340
|
+
return Promise.race([
|
|
341
|
+
querySingleChain(chainId),
|
|
342
|
+
new Promise((resolve) => {
|
|
343
|
+
setTimeout(() => {
|
|
344
|
+
resolve({
|
|
345
|
+
chainId,
|
|
346
|
+
status: 'timeout',
|
|
347
|
+
agents: [],
|
|
348
|
+
});
|
|
349
|
+
}, timeout);
|
|
350
|
+
}),
|
|
351
|
+
]);
|
|
352
|
+
});
|
|
353
|
+
const chainResults = await Promise.allSettled(chainPromises);
|
|
354
|
+
// Step 5: Extract successful results and track failures
|
|
355
|
+
const allAgents = [];
|
|
356
|
+
const successfulChains = [];
|
|
357
|
+
const failedChains = [];
|
|
358
|
+
for (let i = 0; i < chainResults.length; i++) {
|
|
359
|
+
const result = chainResults[i];
|
|
360
|
+
const chainId = chainsToQuery[i];
|
|
361
|
+
if (result.status === 'fulfilled') {
|
|
362
|
+
const chainResult = result.value;
|
|
363
|
+
if (chainResult.status === 'success') {
|
|
364
|
+
successfulChains.push(chainId);
|
|
365
|
+
allAgents.push(...chainResult.agents);
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
failedChains.push(chainId);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
// Promise rejected
|
|
373
|
+
failedChains.push(chainId);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// If ALL chains failed, return error metadata
|
|
377
|
+
if (successfulChains.length === 0) {
|
|
378
|
+
const queryTime = Date.now() - startTime;
|
|
379
|
+
return {
|
|
380
|
+
items: [],
|
|
381
|
+
nextCursor: undefined,
|
|
382
|
+
meta: {
|
|
383
|
+
chains: chainsToQuery,
|
|
384
|
+
successfulChains: [],
|
|
385
|
+
failedChains,
|
|
386
|
+
totalResults: 0,
|
|
387
|
+
timing: { totalMs: queryTime },
|
|
388
|
+
},
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
// Step 6: Apply cross-chain filtering
|
|
392
|
+
const filteredAgents = this._applyCrossChainFilters(allAgents, params);
|
|
393
|
+
// Step 7: Deduplicate if requested
|
|
394
|
+
const deduplicatedAgents = this._deduplicateAgentsCrossChain(filteredAgents, params);
|
|
395
|
+
// Step 8: Sort across chains
|
|
396
|
+
const sortedAgents = this._sortAgentsCrossChain(deduplicatedAgents, sort);
|
|
397
|
+
// Step 9: Paginate
|
|
398
|
+
const startIdx = globalOffset;
|
|
399
|
+
const endIdx = startIdx + pageSize;
|
|
400
|
+
const paginatedAgents = sortedAgents.slice(startIdx, endIdx);
|
|
401
|
+
// Step 10: Calculate next cursor
|
|
402
|
+
const nextCursor = sortedAgents.length > endIdx
|
|
403
|
+
? this._createMultiChainCursor(endIdx)
|
|
404
|
+
: undefined;
|
|
405
|
+
// Step 11: Build response with metadata
|
|
406
|
+
const queryTime = Date.now() - startTime;
|
|
407
|
+
return {
|
|
408
|
+
items: paginatedAgents,
|
|
409
|
+
nextCursor,
|
|
410
|
+
meta: {
|
|
411
|
+
chains: chainsToQuery,
|
|
412
|
+
successfulChains,
|
|
413
|
+
failedChains,
|
|
414
|
+
totalResults: sortedAgents.length,
|
|
415
|
+
timing: {
|
|
416
|
+
totalMs: queryTime,
|
|
417
|
+
averagePerChainMs: chainsToQuery.length > 0 ? Math.floor(queryTime / chainsToQuery.length) : undefined,
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
};
|
|
421
|
+
}
|
|
133
422
|
/**
|
|
134
423
|
* Search agents by reputation
|
|
135
424
|
*/
|
|
136
|
-
async searchAgentsByReputation(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked = false, first = 50, skip = 0, sort = ['createdAt:desc']) {
|
|
425
|
+
async searchAgentsByReputation(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked = false, first = 50, skip = 0, sort = ['createdAt:desc'], chains) {
|
|
426
|
+
// Handle "all" chains shorthand
|
|
427
|
+
let chainsToQuery;
|
|
428
|
+
if (chains === 'all') {
|
|
429
|
+
chainsToQuery = this._getAllConfiguredChains();
|
|
430
|
+
}
|
|
431
|
+
else if (chains && Array.isArray(chains) && chains.length > 0) {
|
|
432
|
+
chainsToQuery = chains;
|
|
433
|
+
}
|
|
434
|
+
// If chains are specified, use multi-chain search
|
|
435
|
+
// Route to multi-chain if multiple chains OR if single chain is specified (to ensure correct subgraph client)
|
|
436
|
+
if (chainsToQuery && chainsToQuery.length > 0) {
|
|
437
|
+
return this._searchAgentsByReputationAcrossChains(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked, first, skip, sort, chainsToQuery);
|
|
438
|
+
}
|
|
439
|
+
// Single-chain search (existing logic)
|
|
137
440
|
if (!this.subgraphClient) {
|
|
138
441
|
throw new Error('Subgraph client required for reputation search');
|
|
139
442
|
}
|
|
@@ -185,5 +488,187 @@ export class AgentIndexer {
|
|
|
185
488
|
throw new Error(`Failed to search agents by reputation: ${error}`);
|
|
186
489
|
}
|
|
187
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Search agents by reputation across multiple chains in parallel
|
|
493
|
+
*/
|
|
494
|
+
async _searchAgentsByReputationAcrossChains(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked = false, pageSize = 50, skip = 0, sort = ['createdAt:desc'], chains = [], timeout = 30000) {
|
|
495
|
+
const startTime = Date.now();
|
|
496
|
+
if (chains.length === 0) {
|
|
497
|
+
return {
|
|
498
|
+
items: [],
|
|
499
|
+
nextCursor: undefined,
|
|
500
|
+
meta: {
|
|
501
|
+
chains: [],
|
|
502
|
+
successfulChains: [],
|
|
503
|
+
failedChains: [],
|
|
504
|
+
totalResults: 0,
|
|
505
|
+
timing: { totalMs: 0 },
|
|
506
|
+
},
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
// Parse sort parameter
|
|
510
|
+
let orderBy = 'createdAt';
|
|
511
|
+
let orderDirection = 'desc';
|
|
512
|
+
if (sort && sort.length > 0) {
|
|
513
|
+
const sortField = sort[0].split(':');
|
|
514
|
+
orderBy = sortField[0] || orderBy;
|
|
515
|
+
orderDirection = sortField[1] || orderDirection;
|
|
516
|
+
}
|
|
517
|
+
// Define async function for querying a single chain
|
|
518
|
+
const querySingleChain = async (chainId) => {
|
|
519
|
+
try {
|
|
520
|
+
const subgraphClient = this._getSubgraphClientForChain(chainId);
|
|
521
|
+
if (!subgraphClient) {
|
|
522
|
+
return {
|
|
523
|
+
chainId,
|
|
524
|
+
status: 'unavailable',
|
|
525
|
+
agents: [],
|
|
526
|
+
error: `No subgraph configured for chain ${chainId}`,
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
// Execute reputation search query
|
|
530
|
+
try {
|
|
531
|
+
const agentsData = await subgraphClient.searchAgentsByReputation(agents, tags, reviewers, capabilities, skills, tasks, names, minAverageScore, includeRevoked, pageSize * 3, // Fetch extra to allow for filtering/sorting
|
|
532
|
+
0, // We'll handle pagination after aggregation
|
|
533
|
+
orderBy, orderDirection);
|
|
534
|
+
return {
|
|
535
|
+
chainId,
|
|
536
|
+
status: 'success',
|
|
537
|
+
agents: agentsData,
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
catch (error) {
|
|
541
|
+
return {
|
|
542
|
+
chainId,
|
|
543
|
+
status: 'error',
|
|
544
|
+
agents: [],
|
|
545
|
+
error: error instanceof Error ? error.message : String(error),
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
catch (error) {
|
|
550
|
+
return {
|
|
551
|
+
chainId,
|
|
552
|
+
status: 'error',
|
|
553
|
+
agents: [],
|
|
554
|
+
error: error instanceof Error ? error.message : String(error),
|
|
555
|
+
};
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
// Execute all chain queries in parallel with timeout
|
|
559
|
+
const chainPromises = chains.map(chainId => {
|
|
560
|
+
return Promise.race([
|
|
561
|
+
querySingleChain(chainId),
|
|
562
|
+
new Promise((resolve) => {
|
|
563
|
+
setTimeout(() => {
|
|
564
|
+
resolve({
|
|
565
|
+
chainId,
|
|
566
|
+
status: 'timeout',
|
|
567
|
+
agents: [],
|
|
568
|
+
});
|
|
569
|
+
}, timeout);
|
|
570
|
+
}),
|
|
571
|
+
]);
|
|
572
|
+
});
|
|
573
|
+
const chainResults = await Promise.allSettled(chainPromises);
|
|
574
|
+
// Extract successful results and track failures
|
|
575
|
+
const allAgents = []; // Will be transformed to AgentSummary later
|
|
576
|
+
const successfulChains = [];
|
|
577
|
+
const failedChains = [];
|
|
578
|
+
for (let i = 0; i < chainResults.length; i++) {
|
|
579
|
+
const result = chainResults[i];
|
|
580
|
+
const chainId = chains[i];
|
|
581
|
+
if (result.status === 'fulfilled') {
|
|
582
|
+
const chainResult = result.value;
|
|
583
|
+
if (chainResult.status === 'success') {
|
|
584
|
+
successfulChains.push(chainId);
|
|
585
|
+
allAgents.push(...chainResult.agents);
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
588
|
+
failedChains.push(chainId);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
failedChains.push(chainId);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
// If ALL chains failed, return error metadata
|
|
596
|
+
if (successfulChains.length === 0) {
|
|
597
|
+
const queryTime = Date.now() - startTime;
|
|
598
|
+
return {
|
|
599
|
+
items: [],
|
|
600
|
+
nextCursor: undefined,
|
|
601
|
+
meta: {
|
|
602
|
+
chains,
|
|
603
|
+
successfulChains: [],
|
|
604
|
+
failedChains,
|
|
605
|
+
totalResults: 0,
|
|
606
|
+
timing: { totalMs: queryTime },
|
|
607
|
+
},
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
// Transform to AgentSummary with averageScore in extras
|
|
611
|
+
const results = allAgents.map((agent) => {
|
|
612
|
+
const regFile = agent.registrationFile || {};
|
|
613
|
+
return {
|
|
614
|
+
chainId: parseInt(agent.chainId?.toString() || '0', 10),
|
|
615
|
+
agentId: agent.id || '',
|
|
616
|
+
name: regFile?.name || '',
|
|
617
|
+
image: regFile?.image || undefined,
|
|
618
|
+
description: regFile?.description || '',
|
|
619
|
+
owners: agent.owner ? [normalizeAddress(agent.owner)] : [],
|
|
620
|
+
operators: (agent.operators || []).map((op) => normalizeAddress(op)),
|
|
621
|
+
mcp: !!regFile?.mcpEndpoint,
|
|
622
|
+
a2a: !!regFile?.a2aEndpoint,
|
|
623
|
+
ens: regFile?.ens || undefined,
|
|
624
|
+
did: regFile?.did || undefined,
|
|
625
|
+
walletAddress: regFile?.agentWallet ? normalizeAddress(regFile.agentWallet) : undefined,
|
|
626
|
+
supportedTrusts: regFile?.supportedTrusts || [],
|
|
627
|
+
a2aSkills: regFile?.a2aSkills || [],
|
|
628
|
+
mcpTools: regFile?.mcpTools || [],
|
|
629
|
+
mcpPrompts: regFile?.mcpPrompts || [],
|
|
630
|
+
mcpResources: regFile?.mcpResources || [],
|
|
631
|
+
active: regFile?.active ?? false,
|
|
632
|
+
x402support: regFile?.x402support ?? false,
|
|
633
|
+
extras: {
|
|
634
|
+
averageScore: agent.averageScore !== null ? agent.averageScore : undefined,
|
|
635
|
+
},
|
|
636
|
+
};
|
|
637
|
+
});
|
|
638
|
+
// Sort by averageScore (descending) if available, otherwise by createdAt
|
|
639
|
+
results.sort((a, b) => {
|
|
640
|
+
const aScore = a.extras?.averageScore ?? 0;
|
|
641
|
+
const bScore = b.extras?.averageScore ?? 0;
|
|
642
|
+
if (aScore !== bScore) {
|
|
643
|
+
return bScore - aScore; // Descending
|
|
644
|
+
}
|
|
645
|
+
// Secondary sort by chainId, then agentId
|
|
646
|
+
if (a.chainId !== b.chainId) {
|
|
647
|
+
return a.chainId - b.chainId;
|
|
648
|
+
}
|
|
649
|
+
return a.agentId.localeCompare(b.agentId);
|
|
650
|
+
});
|
|
651
|
+
// Apply pagination
|
|
652
|
+
const paginatedResults = results.slice(skip, skip + pageSize);
|
|
653
|
+
const nextCursor = results.length > skip + pageSize
|
|
654
|
+
? String(skip + pageSize)
|
|
655
|
+
: undefined;
|
|
656
|
+
// Build response with metadata
|
|
657
|
+
const queryTime = Date.now() - startTime;
|
|
658
|
+
return {
|
|
659
|
+
items: paginatedResults,
|
|
660
|
+
nextCursor,
|
|
661
|
+
meta: {
|
|
662
|
+
chains,
|
|
663
|
+
successfulChains,
|
|
664
|
+
failedChains,
|
|
665
|
+
totalResults: results.length,
|
|
666
|
+
timing: {
|
|
667
|
+
totalMs: queryTime,
|
|
668
|
+
averagePerChainMs: chains.length > 0 ? Math.floor(queryTime / chains.length) : undefined,
|
|
669
|
+
},
|
|
670
|
+
},
|
|
671
|
+
};
|
|
672
|
+
}
|
|
188
673
|
}
|
|
189
674
|
//# sourceMappingURL=indexer.js.map
|
package/dist/core/indexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OASF taxonomy validation utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate if a skill slug exists in the OASF taxonomy
|
|
6
|
+
* @param slug The skill slug to validate (e.g., "natural_language_processing/summarization")
|
|
7
|
+
* @returns True if the skill exists in the taxonomy, False otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateSkill(slug: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validate if a domain slug exists in the OASF taxonomy
|
|
12
|
+
* @param slug The domain slug to validate (e.g., "finance_and_business/investment_services")
|
|
13
|
+
* @returns True if the domain exists in the taxonomy, False otherwise
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateDomain(slug: string): boolean;
|
|
16
|
+
//# sourceMappingURL=oasf-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oasf-validator.d.ts","sourceRoot":"","sources":["../../src/core/oasf-validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OASF taxonomy validation utilities
|
|
3
|
+
*/
|
|
4
|
+
import allSkills from '../taxonomies/all_skills.json';
|
|
5
|
+
import allDomains from '../taxonomies/all_domains.json';
|
|
6
|
+
/**
|
|
7
|
+
* Validate if a skill slug exists in the OASF taxonomy
|
|
8
|
+
* @param slug The skill slug to validate (e.g., "natural_language_processing/summarization")
|
|
9
|
+
* @returns True if the skill exists in the taxonomy, False otherwise
|
|
10
|
+
*/
|
|
11
|
+
export function validateSkill(slug) {
|
|
12
|
+
const skillsData = allSkills;
|
|
13
|
+
const skills = skillsData.skills || {};
|
|
14
|
+
return slug in skills;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validate if a domain slug exists in the OASF taxonomy
|
|
18
|
+
* @param slug The domain slug to validate (e.g., "finance_and_business/investment_services")
|
|
19
|
+
* @returns True if the domain exists in the taxonomy, False otherwise
|
|
20
|
+
*/
|
|
21
|
+
export function validateDomain(slug) {
|
|
22
|
+
const domainsData = allDomains;
|
|
23
|
+
const domains = domainsData.domains || {};
|
|
24
|
+
return slug in domains;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=oasf-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oasf-validator.js","sourceRoot":"","sources":["../../src/core/oasf-validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AAUxD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,SAAuB,CAAC;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;IACvC,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,UAAyB,CAAC;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1C,OAAO,IAAI,IAAI,OAAO,CAAC;AACzB,CAAC"}
|