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
package/dist/sources/erc8004.js
CHANGED
|
@@ -1,90 +1,40 @@
|
|
|
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
|
-
|
|
7
|
-
// ERC-8004 Identity Registry addresses
|
|
8
|
-
const REGISTRY_ADDRESSES = {
|
|
9
|
-
"base": "0x8004A818BFB912233c491871b3d84c89A494BD9e",
|
|
10
|
-
"base-sepolia": "0x8004A818BFB912233c491871b3d84c89A494BD9e",
|
|
11
|
-
};
|
|
12
|
-
const TRANSFER_EVENT = parseAbiItem("event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)");
|
|
13
|
-
const TOKEN_URI_ABI = [
|
|
14
|
-
{
|
|
15
|
-
type: "function",
|
|
16
|
-
name: "tokenURI",
|
|
17
|
-
inputs: [{ name: "tokenId", type: "uint256" }],
|
|
18
|
-
outputs: [{ name: "", type: "string" }],
|
|
19
|
-
stateMutability: "view",
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
export function createErc8004Adapter(network = "base-sepolia") {
|
|
23
|
-
const chain = network === "base" ? base : baseSepolia;
|
|
24
|
-
const registryAddress = REGISTRY_ADDRESSES[network];
|
|
25
|
-
const client = createPublicClient({
|
|
26
|
-
chain,
|
|
27
|
-
transport: http(),
|
|
28
|
-
});
|
|
6
|
+
const SCAN_API = "https://www.8004scan.io/api/v1";
|
|
7
|
+
export function createErc8004Adapter(network = "base") {
|
|
29
8
|
return {
|
|
30
9
|
name: "erc8004",
|
|
31
|
-
displayName: "ERC-8004 Identity Registry",
|
|
10
|
+
displayName: "ERC-8004 Identity Registry (8004scan)",
|
|
32
11
|
async search(query, options) {
|
|
33
12
|
const limit = options?.limit ?? 20;
|
|
13
|
+
const timeout = options?.timeout ?? 10000;
|
|
34
14
|
try {
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
15
|
+
// Search across all chains on 8004scan
|
|
16
|
+
const url = new URL(`${SCAN_API}/agents`);
|
|
17
|
+
if (query)
|
|
18
|
+
url.searchParams.set("search", query);
|
|
19
|
+
url.searchParams.set("limit", String(limit));
|
|
20
|
+
const res = await fetch(url.toString(), {
|
|
21
|
+
signal: AbortSignal.timeout(timeout),
|
|
42
22
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
});
|
|
59
|
-
// Resolve URI to JSON
|
|
60
|
-
let metadata = {};
|
|
61
|
-
if (uri.startsWith("http") || uri.startsWith("ipfs")) {
|
|
62
|
-
const fetchUrl = uri.startsWith("ipfs://")
|
|
63
|
-
? `https://ipfs.io/ipfs/${uri.slice(7)}`
|
|
64
|
-
: uri;
|
|
65
|
-
const res = await fetch(fetchUrl, { signal: AbortSignal.timeout(3000) });
|
|
66
|
-
if (res.ok)
|
|
67
|
-
metadata = await res.json();
|
|
68
|
-
}
|
|
69
|
-
else if (uri.startsWith("data:")) {
|
|
70
|
-
const json = uri.split(",")[1];
|
|
71
|
-
metadata = JSON.parse(atob(json));
|
|
72
|
-
}
|
|
73
|
-
const agent = mapErc8004Agent(tokenId, owner, metadata, network);
|
|
74
|
-
// Filter by query
|
|
75
|
-
if (query) {
|
|
76
|
-
const searchText = `${agent.name} ${agent.description} ${agent.categories.join(" ")}`.toLowerCase();
|
|
77
|
-
if (!searchText.includes(query.toLowerCase()))
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
agents.push(agent);
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// Skip agents with unresolvable metadata
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return agents;
|
|
23
|
+
if (!res.ok)
|
|
24
|
+
return [];
|
|
25
|
+
const data = await res.json();
|
|
26
|
+
const agents = data.items ?? data.agents ?? data.data ?? [];
|
|
27
|
+
if (!Array.isArray(agents))
|
|
28
|
+
return [];
|
|
29
|
+
return agents
|
|
30
|
+
.filter((a) => {
|
|
31
|
+
if (!query)
|
|
32
|
+
return true;
|
|
33
|
+
const text = `${a.name ?? ""} ${a.description ?? ""}`.toLowerCase();
|
|
34
|
+
return query.toLowerCase().split(/\s+/).some((t) => text.includes(t));
|
|
35
|
+
})
|
|
36
|
+
.slice(0, limit)
|
|
37
|
+
.map(mapErc8004Agent);
|
|
88
38
|
}
|
|
89
39
|
catch {
|
|
90
40
|
return [];
|
|
@@ -92,8 +42,10 @@ export function createErc8004Adapter(network = "base-sepolia") {
|
|
|
92
42
|
},
|
|
93
43
|
async ping() {
|
|
94
44
|
try {
|
|
95
|
-
await
|
|
96
|
-
|
|
45
|
+
const res = await fetch(`${SCAN_API}/agents?limit=1`, {
|
|
46
|
+
signal: AbortSignal.timeout(5000),
|
|
47
|
+
});
|
|
48
|
+
return res.ok;
|
|
97
49
|
}
|
|
98
50
|
catch {
|
|
99
51
|
return false;
|
|
@@ -101,50 +53,52 @@ export function createErc8004Adapter(network = "base-sepolia") {
|
|
|
101
53
|
},
|
|
102
54
|
};
|
|
103
55
|
}
|
|
104
|
-
function mapErc8004Agent(
|
|
105
|
-
const
|
|
56
|
+
function mapErc8004Agent(agent) {
|
|
57
|
+
const protocols = agent.supported_protocols ?? [];
|
|
58
|
+
const protocol = protocols.includes("A2A") ? "a2a"
|
|
59
|
+
: protocols.includes("MCP") ? "mcp"
|
|
60
|
+
: protocols.includes("x402") || agent.x402_supported ? "x402"
|
|
61
|
+
: "onchain";
|
|
106
62
|
const endpoints = {};
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
endpoints.x402 = svc.endpoint;
|
|
114
|
-
if (svc.protocol === "http")
|
|
115
|
-
endpoints.http = svc.endpoint;
|
|
116
|
-
}
|
|
63
|
+
if (protocols.includes("MCP"))
|
|
64
|
+
endpoints.mcp = agent.mcp_endpoint;
|
|
65
|
+
if (protocols.includes("A2A"))
|
|
66
|
+
endpoints.a2a = agent.a2a_endpoint;
|
|
67
|
+
if (agent.x402_supported)
|
|
68
|
+
endpoints.x402 = agent.x402_endpoint;
|
|
117
69
|
return {
|
|
118
|
-
id: `erc8004:${
|
|
119
|
-
nativeId:
|
|
120
|
-
name:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
70
|
+
id: `erc8004:${agent.agent_id ?? agent.token_id}`,
|
|
71
|
+
nativeId: agent.token_id?.toString() ?? agent.agent_id ?? "",
|
|
72
|
+
name: agent.name ?? `Agent #${agent.token_id}`,
|
|
73
|
+
ensName: agent.owner_ens ?? undefined,
|
|
74
|
+
description: agent.description ?? "",
|
|
75
|
+
categories: extractCategories(agent.name ?? "", agent.description ?? ""),
|
|
76
|
+
capabilities: protocols.map((p) => `Supports ${p}`),
|
|
124
77
|
source: "erc8004",
|
|
125
|
-
protocol
|
|
78
|
+
protocol,
|
|
126
79
|
endpoints,
|
|
127
80
|
reputation: {
|
|
128
|
-
score: 0,
|
|
129
|
-
count: 0,
|
|
130
|
-
source: "
|
|
81
|
+
score: agent.total_score ?? 0,
|
|
82
|
+
count: agent.star_count ?? 0,
|
|
83
|
+
source: "8004scan",
|
|
131
84
|
},
|
|
132
|
-
verified:
|
|
133
|
-
|
|
134
|
-
raw: { tokenId: tokenId.toString(), owner, metadata, network },
|
|
85
|
+
verified: agent.is_verified ?? false,
|
|
86
|
+
raw: agent,
|
|
135
87
|
};
|
|
136
88
|
}
|
|
137
|
-
function
|
|
138
|
-
const
|
|
89
|
+
function extractCategories(name, description) {
|
|
90
|
+
const text = `${name} ${description}`.toLowerCase();
|
|
139
91
|
const cats = [];
|
|
140
|
-
if (
|
|
92
|
+
if (text.match(/defi|yield|swap|pool|trading/))
|
|
141
93
|
cats.push("defi");
|
|
142
|
-
if (
|
|
94
|
+
if (text.match(/data|analyt|research/))
|
|
143
95
|
cats.push("data");
|
|
144
|
-
if (
|
|
145
|
-
cats.push("
|
|
146
|
-
if (
|
|
147
|
-
cats.push("
|
|
96
|
+
if (text.match(/code|develop|build/))
|
|
97
|
+
cats.push("development");
|
|
98
|
+
if (text.match(/ai|model|inference/))
|
|
99
|
+
cats.push("ai");
|
|
100
|
+
if (text.match(/security|audit/))
|
|
101
|
+
cats.push("security");
|
|
148
102
|
return cats.length > 0 ? cats : ["general"];
|
|
149
103
|
}
|
|
150
104
|
//# sourceMappingURL=erc8004.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc8004.js","sourceRoot":"","sources":["../../src/sources/erc8004.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"erc8004.js","sourceRoot":"","sources":["../../src/sources/erc8004.ts"],"names":[],"mappings":"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"}
|
package/dist/unified.d.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { type UnifiedAgent } from "./sources/index.js";
|
|
13
13
|
import { type AggregatorResult } from "./aggregator.js";
|
|
14
14
|
import { type MatchResult } from "./matching.js";
|
|
15
|
+
import { type RankedAgent } from "./ranking.js";
|
|
15
16
|
import { type BridgeHireOptions, type BridgeHireResult } from "./bridge.js";
|
|
16
17
|
import { type DoOptions, type DoResult } from "./router.js";
|
|
17
18
|
import type { ReputationWriterConfig } from "./reputation-writer.js";
|
|
@@ -40,8 +41,10 @@ export interface FindOptions {
|
|
|
40
41
|
minScore?: number;
|
|
41
42
|
}
|
|
42
43
|
export interface FindResult extends AggregatorResult {
|
|
43
|
-
/** Agents re-ranked by multi-layer matching */
|
|
44
|
+
/** Agents re-ranked by multi-layer matching (v1) */
|
|
44
45
|
ranked: MatchResult[];
|
|
46
|
+
/** Agents re-ranked by v2 engine (Bayesian + geometric + value) */
|
|
47
|
+
rankedV2?: RankedAgent[];
|
|
45
48
|
}
|
|
46
49
|
export declare class KompassUnified {
|
|
47
50
|
private aggregator;
|
package/dist/unified.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified.d.ts","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,uDAAuD;IACvD,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,kCAAkC;IAClC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD
|
|
1
|
+
{"version":3,"file":"unified.d.ts","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,uDAAuD;IACvD,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,kCAAkC;IAClC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,oDAAoD;IACpD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,MAAM,CAAC,CAAgB;IAE/B,OAAO;WAQM,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAcpE;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BrE;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9G;;;OAGG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,GACjD,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAa7D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAInF;;;;;;;;;OASG;IACG,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI/C;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
package/dist/unified.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { createAllSources } from "./sources/index.js";
|
|
13
13
|
import { Aggregator } from "./aggregator.js";
|
|
14
14
|
import { rankAgents } from "./matching.js";
|
|
15
|
+
import { rankAgentsV2 } from "./ranking.js";
|
|
15
16
|
import { ProtocolBridge } from "./bridge.js";
|
|
16
17
|
import { CapabilityRouter } from "./router.js";
|
|
17
18
|
export class KompassUnified {
|
|
@@ -48,16 +49,19 @@ export class KompassUnified {
|
|
|
48
49
|
sources: options?.sources,
|
|
49
50
|
timeout: options?.timeout,
|
|
50
51
|
});
|
|
51
|
-
// Re-rank with
|
|
52
|
+
// Re-rank with v2 ranking engine (Bayesian + geometric + value-for-money)
|
|
53
|
+
const rankedV2 = rankAgentsV2(aggregatorResult.agents, query);
|
|
54
|
+
// Also keep v1 for backward compat
|
|
52
55
|
const ranked = rankAgents(aggregatorResult.agents, query);
|
|
53
|
-
// Apply limit and min score
|
|
56
|
+
// Apply limit and min score using v2 composite
|
|
54
57
|
const filtered = options?.minScore
|
|
55
|
-
?
|
|
56
|
-
:
|
|
58
|
+
? rankedV2.filter((r) => r.scores.composite >= options.minScore)
|
|
59
|
+
: rankedV2;
|
|
57
60
|
return {
|
|
58
61
|
...aggregatorResult,
|
|
59
62
|
agents: filtered.slice(0, options?.limit ?? 20).map((r) => r.agent),
|
|
60
|
-
ranked:
|
|
63
|
+
ranked: ranked.slice(0, options?.limit ?? 20), // v1 for backward compat
|
|
64
|
+
rankedV2: filtered.slice(0, options?.limit ?? 20), // v2 with proper scoring
|
|
61
65
|
};
|
|
62
66
|
}
|
|
63
67
|
/**
|
package/dist/unified.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified.js","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAyC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAiD,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAiD,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAiC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"unified.js","sourceRoot":"","sources":["../src/unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAyC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAiD,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAiD,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAiC,MAAM,aAAa,CAAC;AAoC9E,MAAM,OAAO,cAAc;IACjB,UAAU,CAAa;IACvB,MAAM,CAAiB;IACvB,MAAM,CAAmB;IACzB,QAAQ,CAAkB;IAE1B,MAAM,CAAiB;IAE/B,YAAoB,QAAyB,EAAE,MAAsB,EAAE,MAAsB;QAC3F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAsB;QACxC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAChC,cAAc,EAAE,MAAM,EAAE,OAAO,IAAI,cAAc;YACjD,aAAa,EAAE,MAAM,EAAE,aAAa;YACpC,cAAc,EAAE,MAAM,EAAE,cAAc;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,UAAU,EAAE,MAAM,EAAE,UAAU;SAC/B,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAqB;QAC7C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;YAC3D,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,4BAA4B;YAC/D,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE9D,mCAAmC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1D,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ;YAChC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,QAAS,CAAC;YACjE,CAAC,CAAC,QAAQ,CAAC;QAEb,OAAO;YACL,GAAG,gBAAgB;YACnB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACnE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,yBAAyB;YACxE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,yBAAyB;SAC7E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,KAAmB,EAAE,IAAY,EAAE,OAAoC;QAChF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,KAAa,EACb,IAAY,EACZ,OAAkD;QAElD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,CAAC,OAAkB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kompass-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.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",
|