kompass-sdk 0.6.0 → 0.8.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/dist/ranking.d.ts +59 -0
- package/dist/ranking.d.ts.map +1 -0
- package/dist/ranking.js +273 -0
- package/dist/ranking.js.map +1 -0
- package/dist/sources/adp.d.ts +1 -1
- package/dist/sources/adp.d.ts.map +1 -1
- package/dist/sources/adp.js +55 -34
- package/dist/sources/adp.js.map +1 -1
- package/dist/sources/erc8004.d.ts +3 -2
- package/dist/sources/erc8004.d.ts.map +1 -1
- package/dist/sources/erc8004.js +68 -114
- package/dist/sources/erc8004.js.map +1 -1
- package/dist/unified.d.ts +4 -1
- package/dist/unified.d.ts.map +1 -1
- package/dist/unified.js +9 -5
- package/dist/unified.js.map +1 -1
- package/package.json +1 -1
- package/src/ranking.ts +336 -0
- package/src/sources/adp.ts +56 -34
- package/src/sources/erc8004.ts +60 -121
- package/src/unified.ts +13 -6
- package/test-ranking.ts +53 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kompass Ranking Engine
|
|
3
|
+
*
|
|
4
|
+
* Fair, cross-protocol ranking of agents/services using:
|
|
5
|
+
* 1. Source-specific reputation normalization
|
|
6
|
+
* 2. Bayesian average for cold-start protection
|
|
7
|
+
* 3. Value-for-money scoring (cost:quality ratio)
|
|
8
|
+
* 4. Geometric mean composite for final ranking
|
|
9
|
+
* 5. Wilson score for confidence-adjusted reputation
|
|
10
|
+
*
|
|
11
|
+
* Based on: npm scoring, Reddit Wilson, Twitter log-engagement,
|
|
12
|
+
* Amazon sales velocity, Airbnb market-relative pricing,
|
|
13
|
+
* IMDB Bayesian average, AgentRank (0xIntuition)
|
|
14
|
+
*/
|
|
15
|
+
import type { UnifiedAgent } from "./sources/types.js";
|
|
16
|
+
export interface NormalizedReputation {
|
|
17
|
+
/** Quality signal 0-100 (success rate, reliability) */
|
|
18
|
+
quality: number;
|
|
19
|
+
/** Volume signal 0-100 (log-normalized job count, installs) */
|
|
20
|
+
volume: number;
|
|
21
|
+
/** Recency signal 0-100 (time since last active) */
|
|
22
|
+
recency: number;
|
|
23
|
+
/** Confidence 0-1 (how much evidence backs this score) */
|
|
24
|
+
confidence: number;
|
|
25
|
+
}
|
|
26
|
+
export interface RankingScores {
|
|
27
|
+
/** How well agent matches the query (0-100) */
|
|
28
|
+
relevance: number;
|
|
29
|
+
/** Bayesian-adjusted quality (0-100) */
|
|
30
|
+
quality: number;
|
|
31
|
+
/** Log-normalized usage volume (0-100) */
|
|
32
|
+
volume: number;
|
|
33
|
+
/** Time-decay recency (0-100) */
|
|
34
|
+
recency: number;
|
|
35
|
+
/** Value for money — quality relative to price (0-100) */
|
|
36
|
+
value: number;
|
|
37
|
+
/** Final composite score */
|
|
38
|
+
composite: number;
|
|
39
|
+
}
|
|
40
|
+
export interface RankedAgent {
|
|
41
|
+
agent: UnifiedAgent;
|
|
42
|
+
scores: RankingScores;
|
|
43
|
+
explanation: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function normalizeReputation(agent: UnifiedAgent): NormalizedReputation;
|
|
46
|
+
/**
|
|
47
|
+
* Lower bound of Wilson score confidence interval.
|
|
48
|
+
* Penalizes agents with few interactions even if success rate is high.
|
|
49
|
+
*
|
|
50
|
+
* Agent with 5/5 success → Wilson ~0.57
|
|
51
|
+
* Agent with 95/100 success → Wilson ~0.90
|
|
52
|
+
*/
|
|
53
|
+
export declare function wilsonLowerBound(positive: number, total: number, z?: number): number;
|
|
54
|
+
/**
|
|
55
|
+
* Rank agents using the full pipeline:
|
|
56
|
+
* Normalize → Bayesian adjust → Value score → Geometric composite
|
|
57
|
+
*/
|
|
58
|
+
export declare function rankAgentsV2(agents: UnifiedAgent[], query: string): RankedAgent[];
|
|
59
|
+
//# sourceMappingURL=ranking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../src/ranking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAiBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,oBAAoB,CA0D7E;AAgFD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,SAAO,GAAG,MAAM,CAOlF;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CAyCf"}
|
package/dist/ranking.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kompass Ranking Engine
|
|
3
|
+
*
|
|
4
|
+
* Fair, cross-protocol ranking of agents/services using:
|
|
5
|
+
* 1. Source-specific reputation normalization
|
|
6
|
+
* 2. Bayesian average for cold-start protection
|
|
7
|
+
* 3. Value-for-money scoring (cost:quality ratio)
|
|
8
|
+
* 4. Geometric mean composite for final ranking
|
|
9
|
+
* 5. Wilson score for confidence-adjusted reputation
|
|
10
|
+
*
|
|
11
|
+
* Based on: npm scoring, Reddit Wilson, Twitter log-engagement,
|
|
12
|
+
* Amazon sales velocity, Airbnb market-relative pricing,
|
|
13
|
+
* IMDB Bayesian average, AgentRank (0xIntuition)
|
|
14
|
+
*/
|
|
15
|
+
// ── Configuration ────────────────────────────────────────
|
|
16
|
+
const WEIGHTS = {
|
|
17
|
+
relevance: 0.30,
|
|
18
|
+
quality: 0.25,
|
|
19
|
+
volume: 0.15,
|
|
20
|
+
recency: 0.10,
|
|
21
|
+
value: 0.20,
|
|
22
|
+
};
|
|
23
|
+
const BAYESIAN_C = 10; // Confidence parameter for Bayesian average
|
|
24
|
+
const GLOBAL_AVG_QUALITY = 50; // Prior assumption: average quality is 50/100
|
|
25
|
+
// ── Step 1: Source-Specific Normalization ─────────────────
|
|
26
|
+
export function normalizeReputation(agent) {
|
|
27
|
+
const rep = agent.reputation;
|
|
28
|
+
if (!rep)
|
|
29
|
+
return { quality: GLOBAL_AVG_QUALITY, volume: 0, recency: 50, confidence: 0 };
|
|
30
|
+
switch (rep.source) {
|
|
31
|
+
case "acp":
|
|
32
|
+
// successRate is 0-100%, count is completed jobs
|
|
33
|
+
return {
|
|
34
|
+
quality: rep.score,
|
|
35
|
+
volume: logNormalize(rep.count, 1000),
|
|
36
|
+
recency: recencyScore(agent.lastSeen),
|
|
37
|
+
confidence: Math.min(1, rep.count / 20), // Full confidence at 20+ jobs
|
|
38
|
+
};
|
|
39
|
+
case "402index":
|
|
40
|
+
// reliability_score is 0-100, count is uptime percentage (0-100)
|
|
41
|
+
return {
|
|
42
|
+
quality: rep.score,
|
|
43
|
+
volume: rep.count, // Uptime as volume proxy
|
|
44
|
+
recency: recencyScore(agent.lastSeen),
|
|
45
|
+
confidence: 0.7, // Automated monitoring = moderate confidence
|
|
46
|
+
};
|
|
47
|
+
case "8004scan":
|
|
48
|
+
// total_score is 0-100, count is star_count
|
|
49
|
+
return {
|
|
50
|
+
quality: rep.score,
|
|
51
|
+
volume: logNormalize(rep.count, 100),
|
|
52
|
+
recency: recencyScore(agent.lastSeen),
|
|
53
|
+
confidence: Math.min(1, rep.count / 10),
|
|
54
|
+
};
|
|
55
|
+
case "skills-sh-installs":
|
|
56
|
+
// Installs tell popularity, NOT quality
|
|
57
|
+
return {
|
|
58
|
+
quality: GLOBAL_AVG_QUALITY, // Unknown quality — use prior
|
|
59
|
+
volume: logNormalize(rep.count, 100000),
|
|
60
|
+
recency: 50,
|
|
61
|
+
confidence: Math.min(0.5, rep.count / 1000), // Installs give weak quality signal, cap at 0.5
|
|
62
|
+
};
|
|
63
|
+
case "clawhub-relevance":
|
|
64
|
+
// Search relevance, NOT reputation
|
|
65
|
+
return {
|
|
66
|
+
quality: GLOBAL_AVG_QUALITY,
|
|
67
|
+
volume: 0,
|
|
68
|
+
recency: 50,
|
|
69
|
+
confidence: 0, // Relevance says nothing about quality
|
|
70
|
+
};
|
|
71
|
+
default:
|
|
72
|
+
return {
|
|
73
|
+
quality: rep.score > 0 ? Math.min(rep.score, 100) : GLOBAL_AVG_QUALITY,
|
|
74
|
+
volume: logNormalize(rep.count, 100),
|
|
75
|
+
recency: recencyScore(agent.lastSeen),
|
|
76
|
+
confidence: 0.3,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// ── Step 2: Bayesian Average ─────────────────────────────
|
|
81
|
+
/**
|
|
82
|
+
* Bayesian average prevents new agents with 1 job at 100%
|
|
83
|
+
* from outranking established agents with 95% over 200 jobs.
|
|
84
|
+
*
|
|
85
|
+
* Formula: (count * score + C * prior) / (count + C)
|
|
86
|
+
*
|
|
87
|
+
* Examples:
|
|
88
|
+
* - 2 jobs at 100% → 66.7 (pulls toward prior)
|
|
89
|
+
* - 200 jobs at 95% → 93.3 (mostly own data)
|
|
90
|
+
* - 0 jobs → 50.0 (pure prior)
|
|
91
|
+
*/
|
|
92
|
+
function bayesianQuality(normalized) {
|
|
93
|
+
const effectiveCount = normalized.confidence * 20; // Scale confidence to pseudo-count
|
|
94
|
+
return (effectiveCount * normalized.quality + BAYESIAN_C * GLOBAL_AVG_QUALITY) /
|
|
95
|
+
(effectiveCount + BAYESIAN_C);
|
|
96
|
+
}
|
|
97
|
+
// ── Step 3: Value Score ──────────────────────────────────
|
|
98
|
+
/**
|
|
99
|
+
* Value = quality relative to price.
|
|
100
|
+
* A $0.01 agent with 82% success is better value than $0.25 at 76%.
|
|
101
|
+
*
|
|
102
|
+
* Free services get a moderate value score (good value but unknown quality).
|
|
103
|
+
*/
|
|
104
|
+
function valueScore(agent, bayesianQ, allAgents) {
|
|
105
|
+
const price = parseAgentPrice(agent);
|
|
106
|
+
if (price === null)
|
|
107
|
+
return 50; // Unknown price → neutral
|
|
108
|
+
if (price === 0)
|
|
109
|
+
return Math.min(bayesianQ, 70); // Free → capped (free doesn't mean best)
|
|
110
|
+
// Find min price among agents with similar capabilities
|
|
111
|
+
const comparablePrices = allAgents
|
|
112
|
+
.map(parseAgentPrice)
|
|
113
|
+
.filter((p) => p !== null && p > 0);
|
|
114
|
+
if (comparablePrices.length === 0)
|
|
115
|
+
return 50;
|
|
116
|
+
const minPrice = Math.min(...comparablePrices);
|
|
117
|
+
const priceRatio = minPrice / price; // 1.0 = cheapest, <1 = more expensive
|
|
118
|
+
// Value = quality-adjusted price efficiency
|
|
119
|
+
// High quality + low price = high value
|
|
120
|
+
// Low quality + high price = low value
|
|
121
|
+
return Math.min(100, (bayesianQ * 0.6 + priceRatio * 100 * 0.4));
|
|
122
|
+
}
|
|
123
|
+
// ── Step 4: Geometric Mean Composite ─────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Geometric mean ensures ALL factors must be non-zero.
|
|
126
|
+
* An agent that's free but unreliable scores zero.
|
|
127
|
+
* An agent that's perfect quality but irrelevant also scores low.
|
|
128
|
+
*/
|
|
129
|
+
function compositeScore(scores) {
|
|
130
|
+
const eps = 1; // Prevent zero from killing the product
|
|
131
|
+
const r = scores.relevance + eps;
|
|
132
|
+
const q = scores.quality + eps;
|
|
133
|
+
const v = scores.volume + eps;
|
|
134
|
+
const t = scores.recency + eps;
|
|
135
|
+
const p = scores.value + eps;
|
|
136
|
+
const totalWeight = WEIGHTS.relevance + WEIGHTS.quality + WEIGHTS.volume + WEIGHTS.recency + WEIGHTS.value;
|
|
137
|
+
return Math.pow(Math.pow(r, WEIGHTS.relevance) *
|
|
138
|
+
Math.pow(q, WEIGHTS.quality) *
|
|
139
|
+
Math.pow(v, WEIGHTS.volume) *
|
|
140
|
+
Math.pow(t, WEIGHTS.recency) *
|
|
141
|
+
Math.pow(p, WEIGHTS.value), 1 / totalWeight);
|
|
142
|
+
}
|
|
143
|
+
// ── Step 5: Wilson Score (Confidence-Adjusted) ───────────
|
|
144
|
+
/**
|
|
145
|
+
* Lower bound of Wilson score confidence interval.
|
|
146
|
+
* Penalizes agents with few interactions even if success rate is high.
|
|
147
|
+
*
|
|
148
|
+
* Agent with 5/5 success → Wilson ~0.57
|
|
149
|
+
* Agent with 95/100 success → Wilson ~0.90
|
|
150
|
+
*/
|
|
151
|
+
export function wilsonLowerBound(positive, total, z = 1.96) {
|
|
152
|
+
if (total === 0)
|
|
153
|
+
return 0;
|
|
154
|
+
const phat = positive / total;
|
|
155
|
+
const denominator = 1 + z * z / total;
|
|
156
|
+
const center = phat + z * z / (2 * total);
|
|
157
|
+
const spread = z * Math.sqrt((phat * (1 - phat) + z * z / (4 * total)) / total);
|
|
158
|
+
return Math.max(0, (center - spread) / denominator);
|
|
159
|
+
}
|
|
160
|
+
// ── Main Ranking Function ────────────────────────────────
|
|
161
|
+
/**
|
|
162
|
+
* Rank agents using the full pipeline:
|
|
163
|
+
* Normalize → Bayesian adjust → Value score → Geometric composite
|
|
164
|
+
*/
|
|
165
|
+
export function rankAgentsV2(agents, query) {
|
|
166
|
+
// Calculate relevance for each agent (reuse existing BM25 + structured matching)
|
|
167
|
+
const queryTerms = query.toLowerCase().split(/\s+/).filter((t) => t.length > 2);
|
|
168
|
+
return agents
|
|
169
|
+
.map((agent) => {
|
|
170
|
+
// Relevance (BM25-lite + structured)
|
|
171
|
+
const relevance = calculateRelevance(agent, queryTerms);
|
|
172
|
+
// Normalize reputation per source
|
|
173
|
+
const normalized = normalizeReputation(agent);
|
|
174
|
+
// Bayesian-adjusted quality
|
|
175
|
+
const quality = bayesianQuality(normalized);
|
|
176
|
+
// Volume
|
|
177
|
+
const volume = normalized.volume;
|
|
178
|
+
// Recency
|
|
179
|
+
const recency = normalized.recency;
|
|
180
|
+
// Value for money
|
|
181
|
+
const value = valueScore(agent, quality, agents);
|
|
182
|
+
const scores = {
|
|
183
|
+
relevance,
|
|
184
|
+
quality,
|
|
185
|
+
volume,
|
|
186
|
+
recency,
|
|
187
|
+
value,
|
|
188
|
+
composite: 0,
|
|
189
|
+
};
|
|
190
|
+
scores.composite = compositeScore(scores);
|
|
191
|
+
// Build explanation
|
|
192
|
+
const explanation = buildExplanation(agent, scores, normalized);
|
|
193
|
+
return { agent, scores, explanation };
|
|
194
|
+
})
|
|
195
|
+
.sort((a, b) => b.scores.composite - a.scores.composite);
|
|
196
|
+
}
|
|
197
|
+
// ── Helpers ──────────────────────────────────────────────
|
|
198
|
+
function logNormalize(value, maxExpected) {
|
|
199
|
+
if (value <= 0)
|
|
200
|
+
return 0;
|
|
201
|
+
return Math.min(100, (Math.log(1 + value) / Math.log(1 + maxExpected)) * 100);
|
|
202
|
+
}
|
|
203
|
+
function recencyScore(lastSeen) {
|
|
204
|
+
if (!lastSeen)
|
|
205
|
+
return 50; // Unknown → neutral
|
|
206
|
+
const hoursSince = (Date.now() - lastSeen) / (1000 * 60 * 60);
|
|
207
|
+
if (hoursSince < 1)
|
|
208
|
+
return 100;
|
|
209
|
+
if (hoursSince < 24)
|
|
210
|
+
return 80;
|
|
211
|
+
if (hoursSince < 168)
|
|
212
|
+
return 60; // 1 week
|
|
213
|
+
if (hoursSince < 720)
|
|
214
|
+
return 40; // 1 month
|
|
215
|
+
return 20;
|
|
216
|
+
}
|
|
217
|
+
function parseAgentPrice(agent) {
|
|
218
|
+
if (!agent.pricing?.amount)
|
|
219
|
+
return null;
|
|
220
|
+
const amount = agent.pricing.amount;
|
|
221
|
+
if (typeof amount === "number")
|
|
222
|
+
return amount;
|
|
223
|
+
const parsed = parseFloat(amount);
|
|
224
|
+
return isNaN(parsed) ? null : parsed;
|
|
225
|
+
}
|
|
226
|
+
function calculateRelevance(agent, queryTerms) {
|
|
227
|
+
const text = `${agent.name} ${agent.description} ${agent.categories.join(" ")} ${agent.capabilities.join(" ")}`.toLowerCase();
|
|
228
|
+
let score = 0;
|
|
229
|
+
for (const term of queryTerms) {
|
|
230
|
+
if (agent.name.toLowerCase().includes(term))
|
|
231
|
+
score += 15;
|
|
232
|
+
if (agent.description.toLowerCase().includes(term))
|
|
233
|
+
score += 8;
|
|
234
|
+
if (agent.categories.some((c) => c.includes(term)))
|
|
235
|
+
score += 12;
|
|
236
|
+
if (agent.capabilities.some((c) => c.toLowerCase().includes(term)))
|
|
237
|
+
score += 5;
|
|
238
|
+
}
|
|
239
|
+
return Math.min(100, score);
|
|
240
|
+
}
|
|
241
|
+
function buildExplanation(agent, scores, normalized) {
|
|
242
|
+
const parts = [];
|
|
243
|
+
if (scores.relevance > 30)
|
|
244
|
+
parts.push("Strong match");
|
|
245
|
+
else if (scores.relevance > 15)
|
|
246
|
+
parts.push("Moderate match");
|
|
247
|
+
else
|
|
248
|
+
parts.push("Weak match");
|
|
249
|
+
if (normalized.confidence > 0.5) {
|
|
250
|
+
if (scores.quality > 70)
|
|
251
|
+
parts.push("proven quality");
|
|
252
|
+
else if (scores.quality > 50)
|
|
253
|
+
parts.push("decent quality");
|
|
254
|
+
else
|
|
255
|
+
parts.push("unproven quality");
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
parts.push("limited track record");
|
|
259
|
+
}
|
|
260
|
+
const price = parseAgentPrice(agent);
|
|
261
|
+
if (price === 0)
|
|
262
|
+
parts.push("free");
|
|
263
|
+
else if (price !== null && price < 0.05)
|
|
264
|
+
parts.push("very affordable");
|
|
265
|
+
else if (price !== null && price > 1)
|
|
266
|
+
parts.push("premium priced");
|
|
267
|
+
if (scores.value > 70)
|
|
268
|
+
parts.push("great value");
|
|
269
|
+
else if (scores.value < 30)
|
|
270
|
+
parts.push("questionable value");
|
|
271
|
+
return parts.join(". ") + ".";
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=ranking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranking.js","sourceRoot":"","sources":["../src/ranking.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/adp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Discovery Protocol (ADP) Source Adapter
|
|
3
|
-
*
|
|
3
|
+
* Uses the real ADP v2 API at agentdiscovery.io
|
|
4
4
|
*/
|
|
5
5
|
import type { SourceAdapter } from "./types.js";
|
|
6
6
|
export declare const adpAdapter: SourceAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adp.d.ts","sourceRoot":"","sources":["../../src/sources/adp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAInF,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"adp.d.ts","sourceRoot":"","sources":["../../src/sources/adp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAInF,eAAO,MAAM,UAAU,EAAE,aAwDxB,CAAC"}
|
package/dist/sources/adp.js
CHANGED
|
@@ -1,44 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Discovery Protocol (ADP) Source Adapter
|
|
3
|
-
*
|
|
3
|
+
* Uses the real ADP v2 API at agentdiscovery.io
|
|
4
4
|
*/
|
|
5
|
-
const ADP_BASE = "https://agentdiscovery.io";
|
|
5
|
+
const ADP_BASE = "https://agentdiscovery.io/api/adp/v2";
|
|
6
6
|
export const adpAdapter = {
|
|
7
7
|
name: "adp",
|
|
8
|
-
displayName: "Agent Discovery Protocol",
|
|
8
|
+
displayName: "Agent Discovery Protocol (ADP v2)",
|
|
9
9
|
async search(query, options) {
|
|
10
10
|
try {
|
|
11
|
-
//
|
|
12
|
-
const
|
|
11
|
+
// First try discovery endpoint with intent
|
|
12
|
+
const discoverRes = await fetch(`${ADP_BASE}/discover`, {
|
|
13
|
+
method: "POST",
|
|
14
|
+
headers: { "Content-Type": "application/json" },
|
|
15
|
+
body: JSON.stringify({ intent: query, category: query }),
|
|
13
16
|
signal: AbortSignal.timeout(options?.timeout ?? 5000),
|
|
14
17
|
});
|
|
15
|
-
if (
|
|
18
|
+
if (discoverRes.ok) {
|
|
19
|
+
const data = await discoverRes.json();
|
|
20
|
+
const agents = data.matches ?? data.agents ?? data.results ?? [];
|
|
21
|
+
if (Array.isArray(agents) && agents.length > 0) {
|
|
22
|
+
return agents.slice(0, options?.limit ?? 20).map(mapAdpAgent);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Fallback: list all agents
|
|
26
|
+
const listRes = await fetch(`${ADP_BASE}/agents`, {
|
|
27
|
+
signal: AbortSignal.timeout(options?.timeout ?? 5000),
|
|
28
|
+
});
|
|
29
|
+
if (!listRes.ok)
|
|
16
30
|
return [];
|
|
17
|
-
const data = await
|
|
18
|
-
const agents =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
reputation: agent.reputation ? {
|
|
34
|
-
score: agent.reputation.score ?? 0,
|
|
35
|
-
count: agent.reputation.count ?? 0,
|
|
36
|
-
source: "adp",
|
|
37
|
-
} : undefined,
|
|
38
|
-
pricing: agent.pricing,
|
|
39
|
-
verified: agent.verified ?? false,
|
|
40
|
-
raw: agent,
|
|
41
|
-
}));
|
|
31
|
+
const data = await listRes.json();
|
|
32
|
+
const agents = data.agents ?? [];
|
|
33
|
+
if (!Array.isArray(agents))
|
|
34
|
+
return [];
|
|
35
|
+
// Client-side filter by query
|
|
36
|
+
const lower = query.toLowerCase();
|
|
37
|
+
return agents
|
|
38
|
+
.filter((a) => {
|
|
39
|
+
if (!query)
|
|
40
|
+
return true;
|
|
41
|
+
const text = `${a.name ?? ""} ${a.role ?? ""} ${(a.categories ?? []).join(" ")} ${(a.capabilities ?? []).map((c) => c.description ?? c.key ?? "").join(" ")}`.toLowerCase();
|
|
42
|
+
return lower.split(/\s+/).some((t) => text.includes(t));
|
|
43
|
+
})
|
|
44
|
+
.slice(0, options?.limit ?? 20)
|
|
45
|
+
.map(mapAdpAgent);
|
|
42
46
|
}
|
|
43
47
|
catch {
|
|
44
48
|
return [];
|
|
@@ -46,9 +50,7 @@ export const adpAdapter = {
|
|
|
46
50
|
},
|
|
47
51
|
async ping() {
|
|
48
52
|
try {
|
|
49
|
-
const res = await fetch(`${ADP_BASE}/
|
|
50
|
-
signal: AbortSignal.timeout(3000),
|
|
51
|
-
});
|
|
53
|
+
const res = await fetch(`${ADP_BASE}/agents`, { signal: AbortSignal.timeout(3000) });
|
|
52
54
|
return res.ok;
|
|
53
55
|
}
|
|
54
56
|
catch {
|
|
@@ -56,4 +58,23 @@ export const adpAdapter = {
|
|
|
56
58
|
}
|
|
57
59
|
},
|
|
58
60
|
};
|
|
61
|
+
function mapAdpAgent(agent) {
|
|
62
|
+
return {
|
|
63
|
+
id: `adp:${agent.did ?? agent.id ?? agent.name}`,
|
|
64
|
+
nativeId: agent.did ?? agent.id ?? "",
|
|
65
|
+
name: agent.name ?? "ADP Agent",
|
|
66
|
+
description: (agent.capabilities ?? []).map((c) => c.description ?? c.key ?? "").join(". ") || (agent.role ?? ""),
|
|
67
|
+
categories: agent.categories ?? [agent.role ?? "general"],
|
|
68
|
+
capabilities: (agent.capabilities ?? []).map((c) => `${c.key}: ${c.description ?? ""}`),
|
|
69
|
+
source: "adp",
|
|
70
|
+
protocol: "a2a",
|
|
71
|
+
endpoints: {
|
|
72
|
+
http: agent.endpoint ?? agent.url,
|
|
73
|
+
a2a: agent.a2a_endpoint,
|
|
74
|
+
},
|
|
75
|
+
pricing: agent.pricing,
|
|
76
|
+
verified: !!agent.did,
|
|
77
|
+
raw: agent,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
59
80
|
//# sourceMappingURL=adp.js.map
|
package/dist/sources/adp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adp.js","sourceRoot":"","sources":["../../src/sources/adp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"adp.js","sourceRoot":"","sources":["../../src/sources/adp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ERC-8004
|
|
3
|
-
*
|
|
2
|
+
* ERC-8004 Source Adapter
|
|
3
|
+
* Searches 8004scan.io API for registered AI agents
|
|
4
|
+
* Real data — agent identity, reputation, supported protocols
|
|
4
5
|
*/
|
|
5
6
|
import type { SourceAdapter } from "./types.js";
|
|
6
7
|
export declare function createErc8004Adapter(network?: "base" | "base-sepolia"): SourceAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc8004.d.ts","sourceRoot":"","sources":["../../src/sources/erc8004.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"erc8004.d.ts","sourceRoot":"","sources":["../../src/sources/erc8004.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAInF,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,GAAG,cAAuB,GAAG,aAAa,CAkD7F"}
|