kompass-sdk 0.18.0 → 0.20.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/ens.d.ts CHANGED
@@ -9,16 +9,16 @@ import type { UnifiedAgent } from "./sources/types.js";
9
9
  * Reverse-resolve an address to its ENS/Basename.
10
10
  * Returns null if no name found.
11
11
  */
12
- export declare function resolveENSName(address: Address, network?: "base" | "base-sepolia"): Promise<string | null>;
12
+ export declare function resolveENSName(address: Address): Promise<string | null>;
13
13
  /**
14
14
  * Resolve an ENS name to an address.
15
15
  */
16
- export declare function resolveENSAddress(name: string, network?: "base" | "base-sepolia"): Promise<Address | null>;
16
+ export declare function resolveENSAddress(name: string): Promise<Address | null>;
17
17
  /**
18
18
  * Enrich UnifiedAgent array with ENS names where possible.
19
19
  * Batch resolves addresses to avoid sequential lookups.
20
20
  */
21
- export declare function enrichWithENS(agents: UnifiedAgent[], network?: "base" | "base-sepolia"): Promise<UnifiedAgent[]>;
21
+ export declare function enrichWithENS(agents: UnifiedAgent[]): Promise<UnifiedAgent[]>;
22
22
  /**
23
23
  * Format an agent's identity — prefer ENS name over address.
24
24
  */
package/dist/ens.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../src/ens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkBvD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,GAAG,cAAuB,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,GAAG,cAAuB,GACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQzB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,GAAE,MAAM,GAAG,cAAuB,GACxC,OAAO,CAAC,YAAY,EAAE,CAAC,CAqBzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAK/D"}
1
+ {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../src/ens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAavD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAOzB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAqBzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAK/D"}
package/dist/ens.js CHANGED
@@ -4,31 +4,27 @@
4
4
  * Makes agents identifiable by name, not just address
5
5
  */
6
6
  import { createPublicClient, http } from "viem";
7
- import { baseSepolia, base } from "viem/chains";
7
+ import { mainnet } from "viem/chains";
8
8
  import { normalize } from "viem/ens";
9
- // ENS L2 Resolver on Base Sepolia
10
- const BASE_SEPOLIA_RESOLVER = "0x6533C94869D28fAA8dF77cc63f9e2b2D6Cf77eBA";
11
9
  // Cache to avoid repeated lookups
12
10
  const ensCache = new Map();
13
- const baseClient = createPublicClient({
14
- chain: base,
15
- transport: http("https://mainnet.base.org"),
16
- });
17
- const baseSepoliaClient = createPublicClient({
18
- chain: baseSepolia,
19
- transport: http("https://sepolia.base.org"),
11
+ // ENS resolution must happen on Ethereum mainnet (where the ENS registry lives).
12
+ // CCIP-Read (ERC-3668) allows the mainnet universal resolver to transparently
13
+ // resolve L2 names (Basenames, etc.) via off-chain lookups.
14
+ const ensClient = createPublicClient({
15
+ chain: mainnet,
16
+ transport: http(),
20
17
  });
21
18
  /**
22
19
  * Reverse-resolve an address to its ENS/Basename.
23
20
  * Returns null if no name found.
24
21
  */
25
- export async function resolveENSName(address, network = "base") {
26
- const cacheKey = `${network}:${address.toLowerCase()}`;
22
+ export async function resolveENSName(address) {
23
+ const cacheKey = address.toLowerCase();
27
24
  if (ensCache.has(cacheKey))
28
25
  return ensCache.get(cacheKey);
29
26
  try {
30
- const client = network === "base" ? baseClient : baseSepoliaClient;
31
- const name = await client.getEnsName({ address });
27
+ const name = await ensClient.getEnsName({ address });
32
28
  ensCache.set(cacheKey, name);
33
29
  return name;
34
30
  }
@@ -40,10 +36,9 @@ export async function resolveENSName(address, network = "base") {
40
36
  /**
41
37
  * Resolve an ENS name to an address.
42
38
  */
43
- export async function resolveENSAddress(name, network = "base") {
39
+ export async function resolveENSAddress(name) {
44
40
  try {
45
- const client = network === "base" ? baseClient : baseSepoliaClient;
46
- const address = await client.getEnsAddress({ name: normalize(name) });
41
+ const address = await ensClient.getEnsAddress({ name: normalize(name) });
47
42
  return address;
48
43
  }
49
44
  catch {
@@ -54,7 +49,7 @@ export async function resolveENSAddress(name, network = "base") {
54
49
  * Enrich UnifiedAgent array with ENS names where possible.
55
50
  * Batch resolves addresses to avoid sequential lookups.
56
51
  */
57
- export async function enrichWithENS(agents, network = "base") {
52
+ export async function enrichWithENS(agents) {
58
53
  const agentsNeedingResolution = agents.filter((a) => !a.ensName && a.endpoints.acp?.walletAddress);
59
54
  // Resolve in parallel (limit concurrency)
60
55
  const BATCH_SIZE = 5;
@@ -63,7 +58,7 @@ export async function enrichWithENS(agents, network = "base") {
63
58
  await Promise.allSettled(batch.map(async (agent) => {
64
59
  const address = agent.endpoints.acp?.walletAddress;
65
60
  if (address) {
66
- const name = await resolveENSName(address, network);
61
+ const name = await resolveENSName(address);
67
62
  if (name)
68
63
  agent.ensName = name;
69
64
  }
package/dist/ens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ens.js","sourceRoot":"","sources":["../src/ens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ens.js","sourceRoot":"","sources":["../src/ens.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Layer A: Structured capability matching (ontology-style)
5
5
  * Layer B: BM25 text relevance scoring
6
6
  * Layer C: LLM re-ranking (optional, for top candidates)
7
- * Layer D: Multi-criteria scoring (reputation, price, protocol, recency)
7
+ * Layer D: Multi-criteria scoring (reputation, price, protocol, recency, liveness)
8
8
  */
9
9
  import type { UnifiedAgent } from "./sources/types.js";
10
10
  interface ParsedIntent {
@@ -1 +1 @@
1
- {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA8BD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CA0BhD;AAgGD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAiB/E;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAgCD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CA0BhD;AAgJD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAiB/E;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC"}
package/dist/matching.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Layer A: Structured capability matching (ontology-style)
5
5
  * Layer B: BM25 text relevance scoring
6
6
  * Layer C: LLM re-ranking (optional, for top candidates)
7
- * Layer D: Multi-criteria scoring (reputation, price, protocol, recency)
7
+ * Layer D: Multi-criteria scoring (reputation, price, protocol, recency, liveness)
8
8
  */
9
9
  const DOMAIN_KEYWORDS = {
10
10
  defi: ["defi", "yield", "swap", "liquidity", "pool", "lending", "borrow", "stake", "vault", "farm"],
@@ -15,6 +15,8 @@ const DOMAIN_KEYWORDS = {
15
15
  development: ["code", "develop", "build", "deploy", "smart contract", "solidity"],
16
16
  ai: ["ai", "llm", "model", "inference", "embedding", "prompt"],
17
17
  social: ["social", "twitter", "post", "tweet", "farcaster"],
18
+ scraping: ["scrape", "crawl", "extract", "web scraping", "firecrawl"],
19
+ crypto: ["crypto", "bitcoin", "ethereum", "eth", "btc", "sol", "token", "coin", "wallet", "chain", "gas"],
18
20
  };
19
21
  const PROTOCOL_KEYWORDS = {
20
22
  x402: ["x402", "micropayment", "http 402", "pay per call"],
@@ -74,7 +76,7 @@ function structuredScore(agent, intent) {
74
76
  if (price <= intent.priceMax)
75
77
  score += 10;
76
78
  else
77
- score -= 10; // Penalize over budget
79
+ score -= 10;
78
80
  }
79
81
  return score;
80
82
  }
@@ -83,46 +85,94 @@ function bm25Score(agent, queryTerms) {
83
85
  const doc = `${agent.name} ${agent.description} ${agent.categories.join(" ")} ${agent.capabilities.join(" ")}`.toLowerCase();
84
86
  const docTerms = doc.split(/\s+/);
85
87
  const docLen = docTerms.length;
86
- const avgDocLen = 50; // Approximate average
88
+ const avgDocLen = 50;
87
89
  const k1 = 1.5;
88
90
  const b = 0.75;
89
91
  let score = 0;
92
+ let matchedTerms = 0;
90
93
  for (const term of queryTerms) {
91
94
  const tf = docTerms.filter((t) => t.includes(term)).length;
92
95
  if (tf === 0)
93
96
  continue;
97
+ matchedTerms++;
94
98
  // Simplified BM25
95
99
  const numerator = tf * (k1 + 1);
96
100
  const denominator = tf + k1 * (1 - b + b * (docLen / avgDocLen));
97
101
  score += numerator / denominator;
98
102
  }
99
- return score * 10; // Scale up
103
+ // Bonus for matching ALL query terms (full relevance)
104
+ if (queryTerms.length > 0 && matchedTerms === queryTerms.length) {
105
+ score *= 1.5;
106
+ }
107
+ // Penalty for very long descriptions that match generically
108
+ // Short, focused descriptions that match = better than long generic ones
109
+ if (docLen > 100) {
110
+ score *= 0.8; // 20% penalty for bloated descriptions
111
+ }
112
+ return score * 10;
100
113
  }
101
114
  // ── Layer D: Multi-Criteria Scoring ──────────────────────
102
115
  function multiCriteriaScore(agent) {
103
116
  let score = 0;
104
- // Reputation
117
+ // Reputation — agents with real track record get boosted
105
118
  if (agent.reputation) {
106
119
  score += Math.min(agent.reputation.score * 0.2, 20);
107
120
  score += Math.min(agent.reputation.count * 0.5, 10);
108
121
  }
122
+ else {
123
+ // No reputation = untested = slight penalty
124
+ score -= 3;
125
+ }
109
126
  // Verified identity
110
127
  if (agent.verified)
111
128
  score += 5;
112
129
  // Pricing transparency
113
130
  if (agent.pricing && agent.pricing.model !== "unknown")
114
131
  score += 3;
115
- // Endpoint richness (more protocols = more interoperable)
116
- const endpointCount = Object.values(agent.endpoints).filter(Boolean).length;
132
+ // Liveness: agents with callable endpoints that we KNOW work
133
+ const hasHttp = !!agent.endpoints.http;
134
+ const hasMcp = !!agent.endpoints.mcp;
135
+ const hasX402 = !!agent.endpoints.x402;
136
+ const hasAcp = !!agent.endpoints.acp;
137
+ const endpointCount = [hasHttp, hasMcp, hasX402, hasAcp, !!agent.endpoints.a2a, !!agent.endpoints.l402].filter(Boolean).length;
117
138
  score += endpointCount * 2;
118
- // MCP servers with remote endpoints are directly callable — boost them
119
- // They don't have reputation data so they'd otherwise rank too low
120
- if (agent.protocol === "mcp" && agent.endpoints.mcp) {
121
- score += 8; // Callable remote MCP server bonus
139
+ // Source-specific liveness signals
140
+ // Agents from sources we KNOW are live gateways (not just registrations)
141
+ switch (agent.source) {
142
+ case "bankr":
143
+ score += 15; // Bankr is a live gateway, always responds
144
+ break;
145
+ case "locus":
146
+ score += 12; // Locus wrapped APIs are live
147
+ break;
148
+ case "x402-ecosystem":
149
+ score += 10; // 402index verifies health
150
+ break;
151
+ case "acp":
152
+ score += 8; // ACP agents are registered and active
153
+ break;
154
+ case "olas":
155
+ score += 8; // Olas mechs have on-chain delivery records
156
+ break;
157
+ case "mcp-registry":
158
+ // Only boost if it has a remote endpoint — many MCP servers are local-only
159
+ if (hasMcp)
160
+ score += 5;
161
+ else
162
+ score -= 5; // Penalize MCP without remote endpoint
163
+ break;
164
+ case "erc8004":
165
+ // ERC-8004 is a registry — agents may or may not be live
166
+ // Only boost if they have a callable endpoint
167
+ if (hasHttp || hasMcp || hasX402)
168
+ score += 3;
169
+ else
170
+ score -= 5; // Paper registration, no live endpoint
171
+ break;
172
+ case "skills-registry":
173
+ score -= 10; // Skills aren't hirable — heavy penalty if they slip through
174
+ break;
122
175
  }
123
- // Free tools get a small accessibility bonus (no wallet needed)
124
- if (agent.pricing?.model === "free")
125
- score += 3;
126
176
  // Recency
127
177
  if (agent.lastSeen) {
128
178
  const hoursSince = (Date.now() - agent.lastSeen) / (1000 * 60 * 60);
@@ -133,6 +183,9 @@ function multiCriteriaScore(agent) {
133
183
  else if (hoursSince < 168)
134
184
  score += 1;
135
185
  }
186
+ // Free tools get a small accessibility bonus
187
+ if (agent.pricing?.model === "free")
188
+ score += 2;
136
189
  return score;
137
190
  }
138
191
  export function rankAgents(agents, query) {
@@ -1 +1 @@
1
- {"version":3,"file":"matching.js","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matching.js","sourceRoot":"","sources":["../src/matching.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEtE,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3E,gDAAgD;IAChD,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,gDAAgD;IAChD,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,aAAa;IASvH,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoJ/C,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,aAAa;CA2BtB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEtE,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3E,gDAAgD;IAChD,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,gDAAgD;IAChD,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,aAAa;IASvH,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyJ/C,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,aAAa;CA2BtB"}
package/dist/router.js CHANGED
@@ -55,8 +55,10 @@ export class CapabilityRouter {
55
55
  // 2. Separate skills from executable agents
56
56
  const executableAgents = searchResult.agents.filter((a) => a.protocol !== "skill");
57
57
  const skillSuggestions = searchResult.agents.filter((a) => a.protocol === "skill");
58
- // 3. Rank only executable agents (skills are suggestions, not candidates)
59
- const ranked = rankAgents(executableAgents, task);
58
+ // 2b. Filter to only agents with at least one callable endpoint
59
+ const callableAgents = executableAgents.filter(a => a.endpoints.mcp || a.endpoints.x402 || a.endpoints.http || a.endpoints.a2a || a.endpoints.l402 || a.endpoints.acp);
60
+ // 3. Rank only callable agents; fall back to all executable if none have endpoints
61
+ const ranked = rankAgents(callableAgents.length > 0 ? callableAgents : executableAgents, task);
60
62
  // 3b. Build options with cost estimates
61
63
  const capabilityOptions = ranked.map((r) => this.buildOption(r, options));
62
64
  // 4. Filter by budget
@@ -123,7 +125,7 @@ export class CapabilityRouter {
123
125
  break;
124
126
  }
125
127
  // 8. Write ERC-8004 reputation feedback on-chain
126
- if (this.reputationWriter && actualSelected.agent.reputation?.source === "erc8004") {
128
+ if (this.reputationWriter && actualSelected.agent.source === "erc8004") {
127
129
  const agentId = BigInt(selected.agent.nativeId || "0");
128
130
  if (agentId > 0n) {
129
131
  const category = selected.agent.categories[0] ?? "general";
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,UAAU,EAAiC,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAA+B,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAsB,MAAM,4BAA4B,CAAC;AAyD9E,MAAM,OAAO,gBAAgB;IACnB,UAAU,CAAa;IACvB,MAAM,CAAiB;IACvB,gBAAgB,CAAoB;IACpC,MAAM,CAAiB;IAE/B,YAAY,UAAsB,EAAE,MAAsB,EAAE,gBAAyC,EAAE,MAAsB;QAC3H,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,OAAkB;QACzB,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QACnC,iDAAiD;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;YAC1B,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,oCAAoC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YACrF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAEjB,wBAAwB;QACxB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;YACtD,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;SAClC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE;oBACT,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;oBAC3C,UAAU,EAAE,CAAC;oBACb,WAAW,EAAE,YAAY,CAAC,WAAW;iBACtC;gBACD,SAAS,EAAE,0DAA0D;aACtE,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACnF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QAEnF,0EAA0E;QAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAElD,wCAAwC;QACxC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1E,sBAAsB;QACtB,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY;YACrC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,YAAa,CAC5E;YACH,CAAC,CAAC,iBAAiB,CAAC;QAEtB,sCAAsC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAExG,wBAAwB;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE;oBACT,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;oBAC3C,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,WAAW,EAAE,YAAY,CAAC,WAAW;iBACtC;gBACD,SAAS,EAAE,OAAO,CAAC,YAAY;oBAC7B,CAAC,CAAC,SAAS,iBAAiB,CAAC,MAAM,qCAAqC,OAAO,CAAC,YAAY,IAAI;oBAChG,CAAC,CAAC,0CAA0C;aAC/C,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,IAAI,SAAS,GAA4B,IAAI,CAAC;QAC9C,IAAI,cAAc,GAAG,QAAQ,CAAC;QAE9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,8CAA8C;YAC9C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpC,cAAc,GAAG,SAAS,CAAC;gBAE3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC7E,SAAS,GAAG;wBACV,OAAO,EAAE,aAAa,CAAC,OAAO;wBAC9B,QAAQ,EAAE,aAAa,CAAC,QAAe;wBACvC,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,KAAK,EAAE,aAAa,CAAC,KAAK;wBAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;wBACtC,MAAM,EAAE,aAAa,CAAC,MAAM;wBAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;wBAC1B,UAAU,EAAE,CAAC;qBACd,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;wBAClD,IAAI;wBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,SAAS,EAAE,OAAO;oBAAE,MAAM;gBAE9B,qCAAqC;gBACrC,MAAM,KAAK,GAAI,SAAS,EAAE,WAAmB,EAAE,KAAK,CAAC;gBACrD,IAAI,KAAK,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,IAAI,4CAA4C,CAAC,CAAC;oBAC3F,SAAS;gBACX,CAAC;gBACD,MAAM;YACR,CAAC;YAED,iDAAiD;YACjD,IAAI,IAAI,CAAC,gBAAgB,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;gBACvD,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;oBAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtF,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;wBACvB,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACjF,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAExE,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC;YACtD,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,4BAA4B;YACrE,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzD,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;aACxE,CAAC,CAAC;YACH,QAAQ,EAAE,cAAc;YACxB,SAAS;YACT,SAAS,EAAE;gBACT,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;gBAC3C,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,WAAW,EAAE,YAAY,CAAC,WAAW;aACtC;YACD,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,KAAkB,EAAE,OAAkB;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1B,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3C,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;YAAE,GAAG,IAAI,2BAA2B,CAAC;QACrE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YAAE,GAAG,IAAI,uBAAuB,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE;YAAE,GAAG,IAAI,iCAAiC,CAAC;QAC9E,IAAI,aAAa,KAAK,CAAC;YAAE,GAAG,IAAI,QAAQ,CAAC;QACzC,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,IAAI;YAAE,GAAG,IAAI,mBAAmB,CAAC;QAEpG,OAAO;YACL,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa;YACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,gBAAgB;SACpC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,OAA2B,EAAE,SAAoB;QACxE,IAAI,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE1B,oBAAoB;QACpB,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,OAAO,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,QAAQ,SAAS,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,UAAU;gBACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACnB,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC;oBAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC;oBAC1C,OAAO,KAAK,GAAG,KAAK,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,cAAc;gBACjB,4DAA4D;gBAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACnB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;oBAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;oBAC5C,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACxD,CAAC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,UAAU,CAAC;YAChB;gBACE,+CAA+C;gBAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACnB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACzC,CAAC;oBACD,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;oBACnC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;oBACnC,OAAO,KAAK,GAAG,KAAK,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;QAED,qEAAqE;QACrE,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;YACzH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;YACpH,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CACnB,QAA0B,EAC1B,YAAgC,EAChC,OAAkB;QAElB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CACR,aAAa,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,QAAQ,CAAC,MAAM,GAAG,CACpG,CAAC;QAEF,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,aAAa,KAAK,CAAC;gBAC1B,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,oBAAoB,QAAQ,CAAC,aAAa,GAAG,CAClD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * Bankr Source Adapter
3
- * Searches Bankr LLM Gateway for trading/DeFi agent services
4
- * API at https://api.bankr.bot
3
+ * Bankr is a single LLM-powered trading gateway — not a directory of agents.
4
+ * It returns itself as a discoverable agent when the query matches its capabilities:
5
+ * trading, prices, DeFi, swaps, portfolio, bridging, token analysis.
6
+ *
7
+ * API: https://api.bankr.bot
5
8
  */
6
9
  import type { SourceAdapter } from "./types.js";
7
10
  export declare const bankrAdapter: SourceAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"bankr.d.ts","sourceRoot":"","sources":["../../src/sources/bankr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAInF,eAAO,MAAM,YAAY,EAAE,aAqD1B,CAAC"}
1
+ {"version":3,"file":"bankr.d.ts","sourceRoot":"","sources":["../../src/sources/bankr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAanF,eAAO,MAAM,YAAY,EAAE,aA4B1B,CAAC"}
@@ -1,42 +1,31 @@
1
1
  /**
2
2
  * Bankr Source Adapter
3
- * Searches Bankr LLM Gateway for trading/DeFi agent services
4
- * API at https://api.bankr.bot
3
+ * Bankr is a single LLM-powered trading gateway — not a directory of agents.
4
+ * It returns itself as a discoverable agent when the query matches its capabilities:
5
+ * trading, prices, DeFi, swaps, portfolio, bridging, token analysis.
6
+ *
7
+ * API: https://api.bankr.bot
5
8
  */
6
9
  const BANKR_API = "https://api.bankr.bot";
10
+ // What Bankr can actually do
11
+ const BANKR_CAPABILITIES = [
12
+ "trade", "swap", "price", "defi", "yield", "token", "portfolio",
13
+ "bridge", "lend", "borrow", "stake", "liquidity", "market",
14
+ "eth", "btc", "sol", "usdc", "crypto", "coin", "exchange",
15
+ "buy", "sell", "transfer", "balance", "wallet", "chain",
16
+ "arbitrage", "apy", "tvl", "gas", "fee",
17
+ ];
7
18
  export const bankrAdapter = {
8
19
  name: "bankr",
9
20
  displayName: "Bankr Trading Gateway",
10
21
  async search(query, options) {
11
- const limit = options?.limit ?? 20;
12
- const timeout = options?.timeout ?? 10000;
13
- try {
14
- const apiKey = process.env.BANKR_API_KEY;
15
- if (!apiKey)
16
- return [];
17
- const headers = {
18
- "Content-Type": "application/json",
19
- "X-API-Key": apiKey,
20
- };
21
- const url = new URL(`${BANKR_API}/agents`);
22
- if (query)
23
- url.searchParams.set("q", query);
24
- url.searchParams.set("limit", String(limit));
25
- const res = await fetch(url.toString(), {
26
- headers,
27
- signal: AbortSignal.timeout(timeout),
28
- });
29
- if (!res.ok)
30
- return [];
31
- const data = await res.json();
32
- const agents = data.agents ?? data.data ?? data.results ?? data;
33
- if (!Array.isArray(agents))
34
- return [];
35
- return agents.slice(0, limit).map(mapBankrAgent);
36
- }
37
- catch {
22
+ if (!process.env.BANKR_API_KEY)
38
23
  return [];
39
- }
24
+ const lower = query.toLowerCase();
25
+ const isRelevant = BANKR_CAPABILITIES.some(cap => lower.includes(cap));
26
+ if (!isRelevant && query.length > 0)
27
+ return [];
28
+ return [createBankrAgent()];
40
29
  },
41
30
  async ping() {
42
31
  try {
@@ -46,7 +35,6 @@ export const bankrAdapter = {
46
35
  body: JSON.stringify({ prompt: "ping" }),
47
36
  signal: AbortSignal.timeout(5000),
48
37
  });
49
- // 401 means the API is alive, just needs auth
50
38
  return res.status === 401 || res.ok;
51
39
  }
52
40
  catch {
@@ -54,26 +42,34 @@ export const bankrAdapter = {
54
42
  }
55
43
  },
56
44
  };
57
- function mapBankrAgent(agent) {
45
+ function createBankrAgent() {
58
46
  return {
59
- id: `bankr:${agent.id ?? agent.name ?? agent.slug}`,
60
- nativeId: agent.id ?? agent.slug ?? "",
61
- name: agent.name ?? "Bankr Agent",
62
- description: agent.description ?? "",
63
- categories: agent.categories ?? ["defi", "trading"],
64
- capabilities: agent.capabilities ?? [agent.description ?? ""].filter(Boolean),
47
+ id: "bankr:trading-gateway",
48
+ nativeId: "trading-gateway",
49
+ name: "Bankr Trading Agent",
50
+ description: "AI-powered trading and DeFi agent. Get real-time prices, execute swaps, bridge tokens, manage portfolios, and interact with DeFi protocols via natural language on Base.",
51
+ categories: ["defi", "trading", "data"],
52
+ capabilities: [
53
+ "Real-time token prices (ETH, BTC, SOL, any token)",
54
+ "Token swaps across DEXs on Base",
55
+ "Cross-chain bridging",
56
+ "Portfolio analysis and management",
57
+ "DeFi protocol interactions (lending, borrowing, staking)",
58
+ "Market sentiment analysis",
59
+ ],
65
60
  source: "bankr",
66
61
  protocol: "http",
67
62
  endpoints: {
68
- http: agent.endpoint ?? `${BANKR_API}/agent/prompt`,
63
+ http: `${BANKR_API}/agent/prompt`,
69
64
  },
70
65
  pricing: {
71
- model: agent.pricing?.model ?? "per-call",
72
- amount: agent.pricing?.amount ?? "0.01",
73
- currency: agent.pricing?.currency ?? "USDC",
66
+ model: "free",
67
+ amount: "0",
68
+ currency: "USDC",
74
69
  },
75
- verified: agent.verified ?? true,
76
- raw: agent,
70
+ verified: true,
71
+ lastSeen: Date.now(),
72
+ raw: { type: "bankr-gateway", api: BANKR_API },
77
73
  };
78
74
  }
79
75
  //# sourceMappingURL=bankr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bankr.js","sourceRoot":"","sources":["../../src/sources/bankr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bankr.js","sourceRoot":"","sources":["../../src/sources/bankr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,6BAA6B;AAC7B,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW;IAC/D,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ;IAC1D,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU;IACzD,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;IACvD,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uBAAuB;IAEpC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA6B;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAE/C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,eAAe,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACxC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,OAAO;QACL,EAAE,EAAE,uBAAuB;QAC3B,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,0KAA0K;QACvL,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACvC,YAAY,EAAE;YACZ,mDAAmD;YACnD,iCAAiC;YACjC,sBAAsB;YACtB,mCAAmC;YACnC,0DAA0D;YAC1D,2BAA2B;SAC5B;QACD,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE;YACT,IAAI,EAAE,GAAG,SAAS,eAAe;SAClC;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,MAAM;SACjB;QACD,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;KAC/C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Olas Mech Handler
3
+ * Sends requests to Olas autonomous mechs via their HTTP endpoint
4
+ */
5
+ import type { KompassWallet } from "../index.js";
6
+ import type { UnifiedAgent } from "../../sources/types.js";
7
+ export declare function handleOlasPayment(wallet: KompassWallet, agent: UnifiedAgent, task: string): Promise<{
8
+ success: boolean;
9
+ deliverable?: unknown;
10
+ jobId?: string;
11
+ }>;
12
+ //# sourceMappingURL=olas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"olas.d.ts","sourceRoot":"","sources":["../../../src/wallet/handlers/olas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+BtE"}
@@ -0,0 +1,31 @@
1
+ export async function handleOlasPayment(wallet, agent, task) {
2
+ const endpoint = agent.endpoints.http;
3
+ if (!endpoint) {
4
+ return { success: false, deliverable: { error: "No Olas mech endpoint" } };
5
+ }
6
+ try {
7
+ // Olas mechs accept POST requests with prompt
8
+ const res = await fetch(endpoint, {
9
+ method: "POST",
10
+ headers: { "Content-Type": "application/json" },
11
+ body: JSON.stringify({
12
+ prompt: task,
13
+ tool: "openai-gpt-4", // Default tool
14
+ }),
15
+ signal: AbortSignal.timeout(30000),
16
+ });
17
+ if (!res.ok) {
18
+ const err = await res.text().catch(() => "");
19
+ return { success: false, deliverable: { error: `Olas mech error: ${res.status}`, details: err } };
20
+ }
21
+ const data = await res.json();
22
+ return { success: true, deliverable: data };
23
+ }
24
+ catch (err) {
25
+ return {
26
+ success: false,
27
+ deliverable: { error: err instanceof Error ? err.message : String(err) },
28
+ };
29
+ }
30
+ }
31
+ //# sourceMappingURL=olas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"olas.js","sourceRoot":"","sources":["../../../src/wallet/handlers/olas.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,KAAmB,EACnB,IAAY;IAEZ,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,cAAc,EAAE,eAAe;aACtC,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACpG,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment-router.d.ts","sourceRoot":"","sources":["../../src/wallet/payment-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAWvE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,aAAa,CAAC,CA4FxB"}
1
+ {"version":3,"file":"payment-router.d.ts","sourceRoot":"","sources":["../../src/wallet/payment-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAYvE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,aAAa,CAAC,CAiGxB"}
@@ -10,6 +10,7 @@ import { handleNanopayment } from "./handlers/nanopayments.js";
10
10
  import { handleFreePayment } from "./handlers/free.js";
11
11
  import { handleBankrPayment } from "./handlers/bankr.js";
12
12
  import { handleLocusPayment } from "./handlers/locus.js";
13
+ import { handleOlasPayment } from "./handlers/olas.js";
13
14
  import { ensureSufficientBalance } from "./bridge.js";
14
15
  export async function routePayment(wallet, agent, task, options) {
15
16
  const protocol = determinePaymentProtocol(agent);
@@ -57,6 +58,10 @@ export async function routePayment(wallet, agent, task, options) {
57
58
  const result = await handleLocusPayment(wallet, agent, task);
58
59
  return { ...result, protocol: "locus", costUSDC: parseFloat(agent.pricing?.amount ?? "0") };
59
60
  }
61
+ case "olas": {
62
+ const result = await handleOlasPayment(wallet, agent, task);
63
+ return { ...result, protocol: "olas", costUSDC: parseFloat(agent.pricing?.amount ?? "0") };
64
+ }
60
65
  case "free":
61
66
  case "mcp": {
62
67
  // MCP servers and free tools — try to execute directly
@@ -118,6 +123,7 @@ function determinePaymentProtocol(agent) {
118
123
  case "skills-registry": return "free";
119
124
  case "bankr": return "bankr";
120
125
  case "locus": return "locus";
126
+ case "olas": return "olas";
121
127
  default: return agent.protocol === "onchain" ? "acp" : "free";
122
128
  }
123
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"payment-router.js","sourceRoot":"","sources":["../../src/wallet/payment-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAYtD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,KAAmB,EACnB,IAAY,EACZ,OAA8C;IAE9C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,8DAA8D;QAC9D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC;gBACH,MAAM,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ;oBACR,KAAK,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;iBACjE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7F,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5E,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YACnG,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7E,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YACnD,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YAClG,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5G,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9F,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9F,CAAC;YAED,KAAK,MAAM,CAAC;YACZ,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,uDAAuD;gBACvD,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACxB,wCAAwC;oBACxC,IAAI,CAAC;wBACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;wBACxD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;wBACpC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBACrD,OAAO;4BACL,OAAO,EAAE,SAAS,CAAC,OAAO;4BAC1B,QAAQ,EAAE,KAAK;4BACf,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,KAAK,EAAE,SAAS,CAAC,KAAK;4BACtB,QAAQ,EAAE,CAAC;yBACZ,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,+BAA+B;oBACjC,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpD,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACtD,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,iCAAiC,QAAQ,EAAE;iBACnD,CAAC;QACN,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAmB;IACnD,aAAa;IACb,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC9F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEtC,oBAAoB;IACpB,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,gBAAgB,CAAC,CAAC,OAAO,MAAM,CAAC;QACrC,KAAK,gBAAgB,CAAC,CAAC,OAAO,MAAM,CAAC;QACrC,KAAK,cAAc,CAAC,CAAC,OAAO,MAAM,CAAC;QACnC,KAAK,iBAAiB,CAAC,CAAC,OAAO,MAAM,CAAC;QACtC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"payment-router.js","sourceRoot":"","sources":["../../src/wallet/payment-router.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kompass-sdk",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "Get any job done. Universal agent capability discovery + coordination across ACP, MCP, x402, A2A, skills, L402, and ERC-8004.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/ens.ts CHANGED
@@ -5,24 +5,19 @@
5
5
  */
6
6
 
7
7
  import { createPublicClient, http, type Address } from "viem";
8
- import { baseSepolia, base } from "viem/chains";
8
+ import { mainnet } from "viem/chains";
9
9
  import { normalize } from "viem/ens";
10
10
  import type { UnifiedAgent } from "./sources/types.js";
11
11
 
12
- // ENS L2 Resolver on Base Sepolia
13
- const BASE_SEPOLIA_RESOLVER = "0x6533C94869D28fAA8dF77cc63f9e2b2D6Cf77eBA" as Address;
14
-
15
12
  // Cache to avoid repeated lookups
16
13
  const ensCache = new Map<string, string | null>();
17
14
 
18
- const baseClient = createPublicClient({
19
- chain: base,
20
- transport: http("https://mainnet.base.org"),
21
- });
22
-
23
- const baseSepoliaClient = createPublicClient({
24
- chain: baseSepolia,
25
- transport: http("https://sepolia.base.org"),
15
+ // ENS resolution must happen on Ethereum mainnet (where the ENS registry lives).
16
+ // CCIP-Read (ERC-3668) allows the mainnet universal resolver to transparently
17
+ // resolve L2 names (Basenames, etc.) via off-chain lookups.
18
+ const ensClient = createPublicClient({
19
+ chain: mainnet,
20
+ transport: http(),
26
21
  });
27
22
 
28
23
  /**
@@ -31,14 +26,12 @@ const baseSepoliaClient = createPublicClient({
31
26
  */
32
27
  export async function resolveENSName(
33
28
  address: Address,
34
- network: "base" | "base-sepolia" = "base"
35
29
  ): Promise<string | null> {
36
- const cacheKey = `${network}:${address.toLowerCase()}`;
30
+ const cacheKey = address.toLowerCase();
37
31
  if (ensCache.has(cacheKey)) return ensCache.get(cacheKey)!;
38
32
 
39
33
  try {
40
- const client = network === "base" ? baseClient : baseSepoliaClient;
41
- const name = await client.getEnsName({ address });
34
+ const name = await ensClient.getEnsName({ address });
42
35
  ensCache.set(cacheKey, name);
43
36
  return name;
44
37
  } catch {
@@ -52,11 +45,9 @@ export async function resolveENSName(
52
45
  */
53
46
  export async function resolveENSAddress(
54
47
  name: string,
55
- network: "base" | "base-sepolia" = "base"
56
48
  ): Promise<Address | null> {
57
49
  try {
58
- const client = network === "base" ? baseClient : baseSepoliaClient;
59
- const address = await client.getEnsAddress({ name: normalize(name) });
50
+ const address = await ensClient.getEnsAddress({ name: normalize(name) });
60
51
  return address;
61
52
  } catch {
62
53
  return null;
@@ -69,7 +60,6 @@ export async function resolveENSAddress(
69
60
  */
70
61
  export async function enrichWithENS(
71
62
  agents: UnifiedAgent[],
72
- network: "base" | "base-sepolia" = "base"
73
63
  ): Promise<UnifiedAgent[]> {
74
64
  const agentsNeedingResolution = agents.filter(
75
65
  (a) => !a.ensName && a.endpoints.acp?.walletAddress
@@ -83,7 +73,7 @@ export async function enrichWithENS(
83
73
  batch.map(async (agent) => {
84
74
  const address = agent.endpoints.acp?.walletAddress as Address;
85
75
  if (address) {
86
- const name = await resolveENSName(address, network);
76
+ const name = await resolveENSName(address);
87
77
  if (name) agent.ensName = name;
88
78
  }
89
79
  })
package/src/matching.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Layer A: Structured capability matching (ontology-style)
5
5
  * Layer B: BM25 text relevance scoring
6
6
  * Layer C: LLM re-ranking (optional, for top candidates)
7
- * Layer D: Multi-criteria scoring (reputation, price, protocol, recency)
7
+ * Layer D: Multi-criteria scoring (reputation, price, protocol, recency, liveness)
8
8
  */
9
9
 
10
10
  import type { UnifiedAgent } from "./sources/types.js";
@@ -28,6 +28,8 @@ const DOMAIN_KEYWORDS: Record<string, string[]> = {
28
28
  development: ["code", "develop", "build", "deploy", "smart contract", "solidity"],
29
29
  ai: ["ai", "llm", "model", "inference", "embedding", "prompt"],
30
30
  social: ["social", "twitter", "post", "tweet", "farcaster"],
31
+ scraping: ["scrape", "crawl", "extract", "web scraping", "firecrawl"],
32
+ crypto: ["crypto", "bitcoin", "ethereum", "eth", "btc", "sol", "token", "coin", "wallet", "chain", "gas"],
31
33
  };
32
34
 
33
35
  const PROTOCOL_KEYWORDS: Record<string, string[]> = {
@@ -96,7 +98,7 @@ function structuredScore(agent: UnifiedAgent, intent: ParsedIntent): number {
96
98
  if (intent.priceMax && agent.pricing?.amount) {
97
99
  const price = parseFloat(agent.pricing.amount);
98
100
  if (price <= intent.priceMax) score += 10;
99
- else score -= 10; // Penalize over budget
101
+ else score -= 10;
100
102
  }
101
103
 
102
104
  return score;
@@ -108,14 +110,16 @@ function bm25Score(agent: UnifiedAgent, queryTerms: string[]): number {
108
110
  const doc = `${agent.name} ${agent.description} ${agent.categories.join(" ")} ${agent.capabilities.join(" ")}`.toLowerCase();
109
111
  const docTerms = doc.split(/\s+/);
110
112
  const docLen = docTerms.length;
111
- const avgDocLen = 50; // Approximate average
113
+ const avgDocLen = 50;
112
114
  const k1 = 1.5;
113
115
  const b = 0.75;
114
116
 
115
117
  let score = 0;
118
+ let matchedTerms = 0;
116
119
  for (const term of queryTerms) {
117
120
  const tf = docTerms.filter((t) => t.includes(term)).length;
118
121
  if (tf === 0) continue;
122
+ matchedTerms++;
119
123
 
120
124
  // Simplified BM25
121
125
  const numerator = tf * (k1 + 1);
@@ -123,7 +127,18 @@ function bm25Score(agent: UnifiedAgent, queryTerms: string[]): number {
123
127
  score += numerator / denominator;
124
128
  }
125
129
 
126
- return score * 10; // Scale up
130
+ // Bonus for matching ALL query terms (full relevance)
131
+ if (queryTerms.length > 0 && matchedTerms === queryTerms.length) {
132
+ score *= 1.5;
133
+ }
134
+
135
+ // Penalty for very long descriptions that match generically
136
+ // Short, focused descriptions that match = better than long generic ones
137
+ if (docLen > 100) {
138
+ score *= 0.8; // 20% penalty for bloated descriptions
139
+ }
140
+
141
+ return score * 10;
127
142
  }
128
143
 
129
144
  // ── Layer D: Multi-Criteria Scoring ──────────────────────
@@ -131,10 +146,13 @@ function bm25Score(agent: UnifiedAgent, queryTerms: string[]): number {
131
146
  function multiCriteriaScore(agent: UnifiedAgent): number {
132
147
  let score = 0;
133
148
 
134
- // Reputation
149
+ // Reputation — agents with real track record get boosted
135
150
  if (agent.reputation) {
136
151
  score += Math.min(agent.reputation.score * 0.2, 20);
137
152
  score += Math.min(agent.reputation.count * 0.5, 10);
153
+ } else {
154
+ // No reputation = untested = slight penalty
155
+ score -= 3;
138
156
  }
139
157
 
140
158
  // Verified identity
@@ -143,19 +161,48 @@ function multiCriteriaScore(agent: UnifiedAgent): number {
143
161
  // Pricing transparency
144
162
  if (agent.pricing && agent.pricing.model !== "unknown") score += 3;
145
163
 
146
- // Endpoint richness (more protocols = more interoperable)
147
- const endpointCount = Object.values(agent.endpoints).filter(Boolean).length;
164
+ // Liveness: agents with callable endpoints that we KNOW work
165
+ const hasHttp = !!agent.endpoints.http;
166
+ const hasMcp = !!agent.endpoints.mcp;
167
+ const hasX402 = !!agent.endpoints.x402;
168
+ const hasAcp = !!agent.endpoints.acp;
169
+ const endpointCount = [hasHttp, hasMcp, hasX402, hasAcp, !!agent.endpoints.a2a, !!agent.endpoints.l402].filter(Boolean).length;
148
170
  score += endpointCount * 2;
149
171
 
150
- // MCP servers with remote endpoints are directly callable — boost them
151
- // They don't have reputation data so they'd otherwise rank too low
152
- if (agent.protocol === "mcp" && agent.endpoints.mcp) {
153
- score += 8; // Callable remote MCP server bonus
172
+ // Source-specific liveness signals
173
+ // Agents from sources we KNOW are live gateways (not just registrations)
174
+ switch (agent.source as string) {
175
+ case "bankr":
176
+ score += 15; // Bankr is a live gateway, always responds
177
+ break;
178
+ case "locus":
179
+ score += 12; // Locus wrapped APIs are live
180
+ break;
181
+ case "x402-ecosystem":
182
+ score += 10; // 402index verifies health
183
+ break;
184
+ case "acp":
185
+ score += 8; // ACP agents are registered and active
186
+ break;
187
+ case "olas":
188
+ score += 8; // Olas mechs have on-chain delivery records
189
+ break;
190
+ case "mcp-registry":
191
+ // Only boost if it has a remote endpoint — many MCP servers are local-only
192
+ if (hasMcp) score += 5;
193
+ else score -= 5; // Penalize MCP without remote endpoint
194
+ break;
195
+ case "erc8004":
196
+ // ERC-8004 is a registry — agents may or may not be live
197
+ // Only boost if they have a callable endpoint
198
+ if (hasHttp || hasMcp || hasX402) score += 3;
199
+ else score -= 5; // Paper registration, no live endpoint
200
+ break;
201
+ case "skills-registry":
202
+ score -= 10; // Skills aren't hirable — heavy penalty if they slip through
203
+ break;
154
204
  }
155
205
 
156
- // Free tools get a small accessibility bonus (no wallet needed)
157
- if (agent.pricing?.model === "free") score += 3;
158
-
159
206
  // Recency
160
207
  if (agent.lastSeen) {
161
208
  const hoursSince = (Date.now() - agent.lastSeen) / (1000 * 60 * 60);
@@ -164,6 +211,9 @@ function multiCriteriaScore(agent: UnifiedAgent): number {
164
211
  else if (hoursSince < 168) score += 1;
165
212
  }
166
213
 
214
+ // Free tools get a small accessibility bonus
215
+ if (agent.pricing?.model === "free") score += 2;
216
+
167
217
  return score;
168
218
  }
169
219
 
package/src/router.ts CHANGED
@@ -121,8 +121,13 @@ export class CapabilityRouter {
121
121
  const executableAgents = searchResult.agents.filter((a) => a.protocol !== "skill");
122
122
  const skillSuggestions = searchResult.agents.filter((a) => a.protocol === "skill");
123
123
 
124
- // 3. Rank only executable agents (skills are suggestions, not candidates)
125
- const ranked = rankAgents(executableAgents, task);
124
+ // 2b. Filter to only agents with at least one callable endpoint
125
+ const callableAgents = executableAgents.filter(a =>
126
+ a.endpoints.mcp || a.endpoints.x402 || a.endpoints.http || a.endpoints.a2a || a.endpoints.l402 || a.endpoints.acp
127
+ );
128
+
129
+ // 3. Rank only callable agents; fall back to all executable if none have endpoints
130
+ const ranked = rankAgents(callableAgents.length > 0 ? callableAgents : executableAgents, task);
126
131
 
127
132
  // 3b. Build options with cost estimates
128
133
  const capabilityOptions = ranked.map((r) => this.buildOption(r, options));
@@ -200,7 +205,7 @@ export class CapabilityRouter {
200
205
  }
201
206
 
202
207
  // 8. Write ERC-8004 reputation feedback on-chain
203
- if (this.reputationWriter && actualSelected.agent.reputation?.source === "erc8004") {
208
+ if (this.reputationWriter && actualSelected.agent.source === "erc8004") {
204
209
  const agentId = BigInt(selected.agent.nativeId || "0");
205
210
  if (agentId > 0n) {
206
211
  const category = selected.agent.categories[0] ?? "general";
@@ -1,50 +1,38 @@
1
1
  /**
2
2
  * Bankr Source Adapter
3
- * Searches Bankr LLM Gateway for trading/DeFi agent services
4
- * API at https://api.bankr.bot
3
+ * Bankr is a single LLM-powered trading gateway — not a directory of agents.
4
+ * It returns itself as a discoverable agent when the query matches its capabilities:
5
+ * trading, prices, DeFi, swaps, portfolio, bridging, token analysis.
6
+ *
7
+ * API: https://api.bankr.bot
5
8
  */
6
9
 
7
10
  import type { SourceAdapter, UnifiedAgent, SourceSearchOptions } from "./types.js";
8
11
 
9
12
  const BANKR_API = "https://api.bankr.bot";
10
13
 
14
+ // What Bankr can actually do
15
+ const BANKR_CAPABILITIES = [
16
+ "trade", "swap", "price", "defi", "yield", "token", "portfolio",
17
+ "bridge", "lend", "borrow", "stake", "liquidity", "market",
18
+ "eth", "btc", "sol", "usdc", "crypto", "coin", "exchange",
19
+ "buy", "sell", "transfer", "balance", "wallet", "chain",
20
+ "arbitrage", "apy", "tvl", "gas", "fee",
21
+ ];
22
+
11
23
  export const bankrAdapter: SourceAdapter = {
12
24
  name: "bankr",
13
25
  displayName: "Bankr Trading Gateway",
14
26
 
15
27
  async search(query: string, options?: SourceSearchOptions): Promise<UnifiedAgent[]> {
16
- const limit = options?.limit ?? 20;
17
- const timeout = options?.timeout ?? 10000;
18
-
19
- try {
20
- const apiKey = process.env.BANKR_API_KEY;
21
- if (!apiKey) return [];
22
-
23
- const headers: Record<string, string> = {
24
- "Content-Type": "application/json",
25
- "X-API-Key": apiKey,
26
- };
27
-
28
- const url = new URL(`${BANKR_API}/agents`);
29
- if (query) url.searchParams.set("q", query);
30
- url.searchParams.set("limit", String(limit));
28
+ if (!process.env.BANKR_API_KEY) return [];
31
29
 
32
- const res = await fetch(url.toString(), {
33
- headers,
34
- signal: AbortSignal.timeout(timeout),
35
- });
36
-
37
- if (!res.ok) return [];
38
-
39
- const data = await res.json();
40
- const agents = data.agents ?? data.data ?? data.results ?? data;
30
+ const lower = query.toLowerCase();
31
+ const isRelevant = BANKR_CAPABILITIES.some(cap => lower.includes(cap));
41
32
 
42
- if (!Array.isArray(agents)) return [];
33
+ if (!isRelevant && query.length > 0) return [];
43
34
 
44
- return agents.slice(0, limit).map(mapBankrAgent);
45
- } catch {
46
- return [];
47
- }
35
+ return [createBankrAgent()];
48
36
  },
49
37
 
50
38
  async ping(): Promise<boolean> {
@@ -55,7 +43,6 @@ export const bankrAdapter: SourceAdapter = {
55
43
  body: JSON.stringify({ prompt: "ping" }),
56
44
  signal: AbortSignal.timeout(5000),
57
45
  });
58
- // 401 means the API is alive, just needs auth
59
46
  return res.status === 401 || res.ok;
60
47
  } catch {
61
48
  return false;
@@ -63,25 +50,33 @@ export const bankrAdapter: SourceAdapter = {
63
50
  },
64
51
  };
65
52
 
66
- function mapBankrAgent(agent: any): UnifiedAgent {
53
+ function createBankrAgent(): UnifiedAgent {
67
54
  return {
68
- id: `bankr:${agent.id ?? agent.name ?? agent.slug}`,
69
- nativeId: agent.id ?? agent.slug ?? "",
70
- name: agent.name ?? "Bankr Agent",
71
- description: agent.description ?? "",
72
- categories: agent.categories ?? ["defi", "trading"],
73
- capabilities: agent.capabilities ?? [agent.description ?? ""].filter(Boolean),
55
+ id: "bankr:trading-gateway",
56
+ nativeId: "trading-gateway",
57
+ name: "Bankr Trading Agent",
58
+ description: "AI-powered trading and DeFi agent. Get real-time prices, execute swaps, bridge tokens, manage portfolios, and interact with DeFi protocols via natural language on Base.",
59
+ categories: ["defi", "trading", "data"],
60
+ capabilities: [
61
+ "Real-time token prices (ETH, BTC, SOL, any token)",
62
+ "Token swaps across DEXs on Base",
63
+ "Cross-chain bridging",
64
+ "Portfolio analysis and management",
65
+ "DeFi protocol interactions (lending, borrowing, staking)",
66
+ "Market sentiment analysis",
67
+ ],
74
68
  source: "bankr",
75
69
  protocol: "http",
76
70
  endpoints: {
77
- http: agent.endpoint ?? `${BANKR_API}/agent/prompt`,
71
+ http: `${BANKR_API}/agent/prompt`,
78
72
  },
79
73
  pricing: {
80
- model: agent.pricing?.model ?? "per-call",
81
- amount: agent.pricing?.amount ?? "0.01",
82
- currency: agent.pricing?.currency ?? "USDC",
74
+ model: "free",
75
+ amount: "0",
76
+ currency: "USDC",
83
77
  },
84
- verified: agent.verified ?? true,
85
- raw: agent,
78
+ verified: true,
79
+ lastSeen: Date.now(),
80
+ raw: { type: "bankr-gateway", api: BANKR_API },
86
81
  };
87
82
  }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Olas Mech Handler
3
+ * Sends requests to Olas autonomous mechs via their HTTP endpoint
4
+ */
5
+ import type { KompassWallet } from "../index.js";
6
+ import type { UnifiedAgent } from "../../sources/types.js";
7
+
8
+ export async function handleOlasPayment(
9
+ wallet: KompassWallet,
10
+ agent: UnifiedAgent,
11
+ task: string,
12
+ ): Promise<{ success: boolean; deliverable?: unknown; jobId?: string }> {
13
+ const endpoint = agent.endpoints.http;
14
+ if (!endpoint) {
15
+ return { success: false, deliverable: { error: "No Olas mech endpoint" } };
16
+ }
17
+
18
+ try {
19
+ // Olas mechs accept POST requests with prompt
20
+ const res = await fetch(endpoint, {
21
+ method: "POST",
22
+ headers: { "Content-Type": "application/json" },
23
+ body: JSON.stringify({
24
+ prompt: task,
25
+ tool: "openai-gpt-4", // Default tool
26
+ }),
27
+ signal: AbortSignal.timeout(30000),
28
+ });
29
+
30
+ if (!res.ok) {
31
+ const err = await res.text().catch(() => "");
32
+ return { success: false, deliverable: { error: `Olas mech error: ${res.status}`, details: err } };
33
+ }
34
+
35
+ const data = await res.json();
36
+ return { success: true, deliverable: data };
37
+ } catch (err) {
38
+ return {
39
+ success: false,
40
+ deliverable: { error: err instanceof Error ? err.message : String(err) },
41
+ };
42
+ }
43
+ }
@@ -13,6 +13,7 @@ import { handleNanopayment } from "./handlers/nanopayments.js";
13
13
  import { handleFreePayment } from "./handlers/free.js";
14
14
  import { handleBankrPayment } from "./handlers/bankr.js";
15
15
  import { handleLocusPayment } from "./handlers/locus.js";
16
+ import { handleOlasPayment } from "./handlers/olas.js";
16
17
  import { ensureSufficientBalance } from "./bridge.js";
17
18
 
18
19
  export interface PaymentResult {
@@ -84,6 +85,11 @@ export async function routePayment(
84
85
  return { ...result, protocol: "locus", costUSDC: parseFloat(agent.pricing?.amount ?? "0") };
85
86
  }
86
87
 
88
+ case "olas": {
89
+ const result = await handleOlasPayment(wallet, agent, task);
90
+ return { ...result, protocol: "olas", costUSDC: parseFloat(agent.pricing?.amount ?? "0") };
91
+ }
92
+
87
93
  case "free":
88
94
  case "mcp": {
89
95
  // MCP servers and free tools — try to execute directly
@@ -144,6 +150,7 @@ function determinePaymentProtocol(agent: UnifiedAgent): string {
144
150
  case "skills-registry": return "free";
145
151
  case "bankr": return "bankr";
146
152
  case "locus": return "locus";
153
+ case "olas": return "olas";
147
154
  default: return agent.protocol === "onchain" ? "acp" : "free";
148
155
  }
149
156
  }