kompass-sdk 0.14.0 → 0.16.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/cli.js +0 -0
- package/dist/matching.d.ts.map +1 -1
- package/dist/matching.js +8 -0
- package/dist/matching.js.map +1 -1
- package/dist/sources/acp.d.ts +1 -1
- package/dist/sources/acp.d.ts.map +1 -1
- package/dist/sources/acp.js +27 -17
- package/dist/sources/acp.js.map +1 -1
- package/dist/sources/bankr.d.ts +8 -0
- package/dist/sources/bankr.d.ts.map +1 -0
- package/dist/sources/bankr.js +79 -0
- package/dist/sources/bankr.js.map +1 -0
- package/dist/sources/index.d.ts.map +1 -1
- package/dist/sources/index.js +6 -0
- package/dist/sources/index.js.map +1 -1
- package/dist/sources/locus.d.ts +12 -0
- package/dist/sources/locus.d.ts.map +1 -0
- package/dist/sources/locus.js +134 -0
- package/dist/sources/locus.js.map +1 -0
- package/dist/sources/olas.d.ts +12 -0
- package/dist/sources/olas.d.ts.map +1 -0
- package/dist/sources/olas.js +143 -0
- package/dist/sources/olas.js.map +1 -0
- package/dist/sources/openserv.d.ts +8 -0
- package/dist/sources/openserv.d.ts.map +1 -0
- package/dist/sources/openserv.js +76 -0
- package/dist/sources/openserv.js.map +1 -0
- package/dist/sources/types.d.ts +1 -1
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/wallet/bridge.d.ts +1 -0
- package/dist/wallet/bridge.d.ts.map +1 -1
- package/dist/wallet/bridge.js +31 -5
- package/dist/wallet/bridge.js.map +1 -1
- package/dist/wallet/handlers/acp.d.ts.map +1 -1
- package/dist/wallet/handlers/acp.js +59 -3
- package/dist/wallet/handlers/acp.js.map +1 -1
- package/dist/wallet/handlers/bankr.d.ts +13 -0
- package/dist/wallet/handlers/bankr.d.ts.map +1 -0
- package/dist/wallet/handlers/bankr.js +88 -0
- package/dist/wallet/handlers/bankr.js.map +1 -0
- package/dist/wallet/handlers/locus.d.ts +21 -0
- package/dist/wallet/handlers/locus.d.ts.map +1 -0
- package/dist/wallet/handlers/locus.js +220 -0
- package/dist/wallet/handlers/locus.js.map +1 -0
- package/dist/wallet/payment-router.d.ts.map +1 -1
- package/dist/wallet/payment-router.js +12 -0
- package/dist/wallet/payment-router.js.map +1 -1
- package/package.json +1 -1
- package/src/matching.ts +9 -0
- package/src/sources/acp.ts +29 -20
- package/src/sources/bankr.ts +87 -0
- package/src/sources/index.ts +6 -0
- package/src/sources/locus.ts +156 -0
- package/src/sources/olas.ts +171 -0
- package/src/sources/types.ts +4 -1
- package/src/wallet/bridge.ts +33 -6
- package/src/wallet/handlers/acp.ts +69 -3
- package/src/wallet/handlers/bankr.ts +108 -0
- package/src/wallet/handlers/locus.ts +262 -0
- package/src/wallet/payment-router.ts +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"olas.js","sourceRoot":"","sources":["../../src/sources/olas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenServ Agent Marketplace Source Adapter
|
|
3
|
+
* Searches the OpenServ platform directory at platform.openserv.ai
|
|
4
|
+
* for indexed agents available in their marketplace
|
|
5
|
+
*/
|
|
6
|
+
import type { SourceAdapter } from "./types.js";
|
|
7
|
+
export declare const openservAdapter: SourceAdapter;
|
|
8
|
+
//# sourceMappingURL=openserv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openserv.d.ts","sourceRoot":"","sources":["../../src/sources/openserv.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAC;AAInF,eAAO,MAAM,eAAe,EAAE,aA0C7B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenServ Agent Marketplace Source Adapter
|
|
3
|
+
* Searches the OpenServ platform directory at platform.openserv.ai
|
|
4
|
+
* for indexed agents available in their marketplace
|
|
5
|
+
*/
|
|
6
|
+
const OPENSERV_API = "https://api.openserv.xyz";
|
|
7
|
+
export const openservAdapter = {
|
|
8
|
+
name: "openserv",
|
|
9
|
+
displayName: "OpenServ Agent Marketplace",
|
|
10
|
+
async search(query, options) {
|
|
11
|
+
const limit = options?.limit ?? 20;
|
|
12
|
+
const timeout = options?.timeout ?? 10000;
|
|
13
|
+
try {
|
|
14
|
+
// Try search endpoint
|
|
15
|
+
const url = new URL(`${OPENSERV_API}/agents`);
|
|
16
|
+
if (query)
|
|
17
|
+
url.searchParams.set("q", query);
|
|
18
|
+
url.searchParams.set("limit", String(limit));
|
|
19
|
+
if (options?.category)
|
|
20
|
+
url.searchParams.set("category", options.category);
|
|
21
|
+
const res = await fetch(url.toString(), {
|
|
22
|
+
signal: AbortSignal.timeout(timeout),
|
|
23
|
+
});
|
|
24
|
+
if (!res.ok)
|
|
25
|
+
return [];
|
|
26
|
+
const data = await res.json();
|
|
27
|
+
const agents = data.agents ?? data.data ?? data.results ?? data;
|
|
28
|
+
if (!Array.isArray(agents))
|
|
29
|
+
return [];
|
|
30
|
+
return agents.slice(0, limit).map(mapOpenServAgent);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
async ping() {
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch(`${OPENSERV_API}/agents?limit=1`, {
|
|
39
|
+
signal: AbortSignal.timeout(5000),
|
|
40
|
+
});
|
|
41
|
+
return res.ok;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
function mapOpenServAgent(agent) {
|
|
49
|
+
return {
|
|
50
|
+
id: `openserv:${agent.id ?? agent.name ?? agent.slug}`,
|
|
51
|
+
nativeId: agent.id ?? agent.slug ?? "",
|
|
52
|
+
name: agent.name ?? "OpenServ Agent",
|
|
53
|
+
description: agent.description ?? agent.summary ?? "",
|
|
54
|
+
categories: agent.categories ?? agent.tags ?? ["general"],
|
|
55
|
+
capabilities: [agent.description ?? agent.summary ?? agent.name ?? ""].filter(Boolean),
|
|
56
|
+
source: "openserv",
|
|
57
|
+
protocol: "http",
|
|
58
|
+
endpoints: {
|
|
59
|
+
http: agent.endpoint ?? agent.url ?? (agent.id ? `${OPENSERV_API}/agents/${agent.id}/invoke` : undefined),
|
|
60
|
+
},
|
|
61
|
+
pricing: {
|
|
62
|
+
model: agent.pricing?.model ?? (agent.price ? "per-call" : "unknown"),
|
|
63
|
+
amount: agent.price ? String(agent.price) : agent.pricing?.amount,
|
|
64
|
+
currency: agent.pricing?.currency ?? "USDC",
|
|
65
|
+
},
|
|
66
|
+
reputation: agent.rating ? {
|
|
67
|
+
score: agent.rating,
|
|
68
|
+
count: agent.reviews ?? 0,
|
|
69
|
+
source: "openserv",
|
|
70
|
+
} : undefined,
|
|
71
|
+
verified: agent.verified ?? false,
|
|
72
|
+
lastSeen: agent.updated_at ? new Date(agent.updated_at).getTime() : undefined,
|
|
73
|
+
raw: agent,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=openserv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openserv.js","sourceRoot":"","sources":["../../src/sources/openserv.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* UnifiedAgent is the normalized representation of an agent
|
|
5
5
|
* from ANY source (ACP, MCP, ERC-8004, x402, A2A, L402, etc.)
|
|
6
6
|
*/
|
|
7
|
-
export type AgentSource = "kompass-registry" | "acp" | "mcp-registry" | "x402-ecosystem" | "erc8004" | "adp" | "a2a-wellknown" | "l402-directory" | "skills-registry";
|
|
7
|
+
export type AgentSource = "kompass-registry" | "acp" | "mcp-registry" | "x402-ecosystem" | "erc8004" | "adp" | "a2a-wellknown" | "l402-directory" | "skills-registry" | "bankr" | "locus" | "olas";
|
|
8
8
|
export type AgentProtocol = "acp" | "mcp" | "x402" | "a2a" | "http" | "l402" | "onchain" | "skill";
|
|
9
9
|
export interface UnifiedAgent {
|
|
10
10
|
/** Globally unique ID: "${source}:${nativeId}" */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,OAAO,GACP,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnG,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,+BAA+B;IAC/B,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,mBAAmB;IACnB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;QACnE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9E,wCAAwC;IACxC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B"}
|
package/dist/wallet/bridge.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type { KompassWallet } from "./index.js";
|
|
|
14
14
|
export declare function topupACPWallet(wallet: KompassWallet, acpWalletAddress: Address, amountUSDC: number): Promise<{
|
|
15
15
|
txHash: Hex;
|
|
16
16
|
amount: string;
|
|
17
|
+
fee?: string;
|
|
17
18
|
}>;
|
|
18
19
|
/**
|
|
19
20
|
* Swap USDC to Lightning sats via Boltz Exchange API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/wallet/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAA2B,MAAM,MAAM,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/wallet/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAA2B,MAAM,MAAM,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAkBhD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyDxD;AAID;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyClE;AAID;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUhE;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
|
package/dist/wallet/bridge.js
CHANGED
|
@@ -14,6 +14,9 @@ const USDC_ADDRESSES = {
|
|
|
14
14
|
"base": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
15
15
|
"base-sepolia": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
16
16
|
};
|
|
17
|
+
// Kompass treasury address — receives platform fee on payments
|
|
18
|
+
const KOMPASS_TREASURY = "0x2aB73f8CCee4ABE601cE71eCC82Bd9eC375FeBbA";
|
|
19
|
+
const PLATFORM_FEE_BPS = 200; // 2% = 200 basis points
|
|
17
20
|
// ── ACP Wallet Topup ─────────────────────────────────────
|
|
18
21
|
/**
|
|
19
22
|
* Transfer USDC from Kompass wallet to ACP smart wallet on Base.
|
|
@@ -24,7 +27,12 @@ export async function topupACPWallet(wallet, acpWalletAddress, amountUSDC) {
|
|
|
24
27
|
const usdcAddress = USDC_ADDRESSES[network];
|
|
25
28
|
if (!usdcAddress)
|
|
26
29
|
throw new Error(`No USDC address for network: ${network}`);
|
|
27
|
-
|
|
30
|
+
// Calculate platform fee (2%)
|
|
31
|
+
const feeUSDC = amountUSDC * PLATFORM_FEE_BPS / 10000;
|
|
32
|
+
const netAmount = amountUSDC - feeUSDC;
|
|
33
|
+
const totalNeeded = parseUnits(String(amountUSDC), 6);
|
|
34
|
+
const netAmountRaw = parseUnits(String(netAmount.toFixed(6)), 6);
|
|
35
|
+
const feeAmountRaw = totalNeeded - netAmountRaw;
|
|
28
36
|
// Check balance first
|
|
29
37
|
const balance = await wallet.getPublicClient().readContract({
|
|
30
38
|
address: usdcAddress,
|
|
@@ -32,19 +40,37 @@ export async function topupACPWallet(wallet, acpWalletAddress, amountUSDC) {
|
|
|
32
40
|
functionName: "balanceOf",
|
|
33
41
|
args: [wallet.getAddress()],
|
|
34
42
|
});
|
|
35
|
-
if (balance <
|
|
43
|
+
if (balance < totalNeeded) {
|
|
36
44
|
throw new Error(`Insufficient USDC: have ${formatUnits(balance, 6)}, need ${amountUSDC}. ` +
|
|
37
45
|
`Fund your Kompass wallet at ${wallet.getAddress()} on ${network}.`);
|
|
38
46
|
}
|
|
47
|
+
// Transfer net amount to ACP wallet
|
|
39
48
|
const txHash = await wallet.getWalletClient().writeContract({
|
|
40
49
|
address: usdcAddress,
|
|
41
50
|
abi: USDC_ABI,
|
|
42
51
|
functionName: "transfer",
|
|
43
|
-
args: [acpWalletAddress,
|
|
52
|
+
args: [acpWalletAddress, netAmountRaw],
|
|
44
53
|
});
|
|
45
54
|
await wallet.getPublicClient().waitForTransactionReceipt({ hash: txHash });
|
|
46
|
-
|
|
47
|
-
|
|
55
|
+
// Transfer platform fee to Kompass treasury (skip if treasury == ACP wallet)
|
|
56
|
+
if (feeAmountRaw > 0n && KOMPASS_TREASURY.toLowerCase() !== acpWalletAddress.toLowerCase()) {
|
|
57
|
+
try {
|
|
58
|
+
const feeTx = await wallet.getWalletClient().writeContract({
|
|
59
|
+
address: usdcAddress,
|
|
60
|
+
abi: USDC_ABI,
|
|
61
|
+
functionName: "transfer",
|
|
62
|
+
args: [KOMPASS_TREASURY, feeAmountRaw],
|
|
63
|
+
});
|
|
64
|
+
await wallet.getPublicClient().waitForTransactionReceipt({ hash: feeTx });
|
|
65
|
+
console.log(`[Kompass Bridge] Platform fee: $${feeUSDC.toFixed(4)} USDC → treasury | tx: ${feeTx}`);
|
|
66
|
+
}
|
|
67
|
+
catch (feeErr) {
|
|
68
|
+
// Fee transfer failure shouldn't block the job
|
|
69
|
+
console.log(`[Kompass Bridge] Fee transfer failed (non-blocking): ${feeErr instanceof Error ? feeErr.message : feeErr}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
console.log(`[Kompass Bridge] Transferred ${netAmount.toFixed(4)} USDC to ACP wallet ${acpWalletAddress.slice(0, 10)}... | tx: ${txHash}`);
|
|
73
|
+
return { txHash, amount: String(netAmount.toFixed(4)), fee: feeUSDC.toFixed(4) };
|
|
48
74
|
}
|
|
49
75
|
// ── Lightning Swap (USDC → sats) ─────────────────────────
|
|
50
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/wallet/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA0B,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGvE,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE;IAC5L,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE;CAClJ,CAAC;AAEX,MAAM,cAAc,GAA4B;IAC9C,MAAM,EAAE,4CAA4C;IACpD,cAAc,EAAE,4CAA4C;CAC7D,CAAC;AAEF,4DAA4D;AAE5D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,gBAAyB,EACzB,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/wallet/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../src/wallet/handlers/acp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAS3D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../src/wallet/handlers/acp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAS3D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsIvF"}
|
|
@@ -25,9 +25,10 @@ export async function handleACPPayment(wallet, agent, task, budget) {
|
|
|
25
25
|
// ACP payment only happens at TRANSACTION phase (after agent accepts).
|
|
26
26
|
// Job creation (REQUEST) and acceptance (NEGOTIATION) are FREE.
|
|
27
27
|
// We topup only after confirming an agent accepted.
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
|
|
28
|
+
// Format requirements to match offering's expected schema.
|
|
29
|
+
// If the offering has a requirement template/schema, try to conform to it.
|
|
30
|
+
// Otherwise fall back to {description: task}.
|
|
31
|
+
const requirements = JSON.stringify(formatRequirements(task, offering));
|
|
31
32
|
const { stdout } = await execFileAsync("npx", [
|
|
32
33
|
"acp", "job", "create",
|
|
33
34
|
walletAddress,
|
|
@@ -124,4 +125,59 @@ export async function handleACPPayment(wallet, agent, task, budget) {
|
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Format task requirements to match the offering's expected schema.
|
|
130
|
+
*
|
|
131
|
+
* ACP agents reject jobs when requirements don't match their offering's
|
|
132
|
+
* expected input format. This function:
|
|
133
|
+
* 1. Checks if the offering has a requirement schema/template
|
|
134
|
+
* 2. Tries to extract relevant fields from the natural language task
|
|
135
|
+
* 3. Falls back to {description: task} if no schema exists
|
|
136
|
+
*/
|
|
137
|
+
function formatRequirements(task, offering) {
|
|
138
|
+
const schema = offering.requirement ?? offering.requirementSchema ?? offering.inputSchema;
|
|
139
|
+
// No schema defined — send description (most flexible)
|
|
140
|
+
if (!schema || typeof schema === "string") {
|
|
141
|
+
return { description: task };
|
|
142
|
+
}
|
|
143
|
+
// Schema is an object — try to populate its fields from the task
|
|
144
|
+
if (typeof schema === "object") {
|
|
145
|
+
const formatted = {};
|
|
146
|
+
const taskLower = task.toLowerCase();
|
|
147
|
+
for (const [key, spec] of Object.entries(schema)) {
|
|
148
|
+
const keyLower = key.toLowerCase();
|
|
149
|
+
// Try to extract Ethereum addresses for address-type fields
|
|
150
|
+
if (keyLower.includes("address") || keyLower.includes("token") || keyLower.includes("contract")) {
|
|
151
|
+
const addrMatch = task.match(/0x[a-fA-F0-9]{40}/);
|
|
152
|
+
if (addrMatch) {
|
|
153
|
+
formatted[key] = addrMatch[0];
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Try to extract chain/network
|
|
158
|
+
if (keyLower.includes("chain") || keyLower.includes("network")) {
|
|
159
|
+
const chains = ["base", "ethereum", "polygon", "arbitrum", "optimism", "bsc"];
|
|
160
|
+
const found = chains.find((c) => taskLower.includes(c));
|
|
161
|
+
formatted[key] = found ?? "base";
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// Try to extract numeric amounts
|
|
165
|
+
if (keyLower.includes("amount") || keyLower.includes("quantity") || keyLower.includes("limit")) {
|
|
166
|
+
const numMatch = task.match(/\d+\.?\d*/);
|
|
167
|
+
if (numMatch) {
|
|
168
|
+
formatted[key] = parseFloat(numMatch[0]);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// For any other field, use the task description as the value
|
|
173
|
+
if (typeof spec === "string") {
|
|
174
|
+
formatted[key] = task; // Use full task as the value
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Always include description for context
|
|
178
|
+
formatted.description = task;
|
|
179
|
+
return formatted;
|
|
180
|
+
}
|
|
181
|
+
return { description: task };
|
|
182
|
+
}
|
|
127
183
|
//# sourceMappingURL=acp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/wallet/handlers/acp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,6CAA6C;AAC7C,MAAM,UAAU,GAAG,4CAAuD,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,KAAmB,EACnB,IAAY,EACZ,MAAe;IAEf,MAAM,QAAQ,GAAI,KAAK,CAAC,GAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAK,KAAK,CAAC,GAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,CAAC;IACtF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,CAAC;IACvF,CAAC;IAED,IAAI,CAAC;QACH,yCAAyC;QACzC,uEAAuE;QACvE,gEAAgE;QAChE,oDAAoD;QAEpD,
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/wallet/handlers/acp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bankr Payment Handler
|
|
3
|
+
* Routes trading tasks through Bankr's LLM Gateway
|
|
4
|
+
* POST prompt → poll for result
|
|
5
|
+
*/
|
|
6
|
+
import type { KompassWallet } from "../index.js";
|
|
7
|
+
import type { UnifiedAgent } from "../../sources/types.js";
|
|
8
|
+
export declare function handleBankrPayment(wallet: KompassWallet, agent: UnifiedAgent, task: string): Promise<{
|
|
9
|
+
success: boolean;
|
|
10
|
+
deliverable?: unknown;
|
|
11
|
+
jobId?: string;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=bankr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bankr.d.ts","sourceRoot":"","sources":["../../../src/wallet/handlers/bankr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,wBAAsB,kBAAkB,CACtC,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,CA4FtE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bankr Payment Handler
|
|
3
|
+
* Routes trading tasks through Bankr's LLM Gateway
|
|
4
|
+
* POST prompt → poll for result
|
|
5
|
+
*/
|
|
6
|
+
const BANKR_API = "https://api.bankr.bot";
|
|
7
|
+
export async function handleBankrPayment(wallet, agent, task) {
|
|
8
|
+
const apiKey = process.env.BANKR_API_KEY;
|
|
9
|
+
if (!apiKey) {
|
|
10
|
+
return {
|
|
11
|
+
success: false,
|
|
12
|
+
deliverable: {
|
|
13
|
+
error: "BANKR_API_KEY not configured. Set the BANKR_API_KEY environment variable.",
|
|
14
|
+
hint: "Get an API key from https://bankr.bot",
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const headers = {
|
|
19
|
+
"Content-Type": "application/json",
|
|
20
|
+
"X-API-Key": apiKey,
|
|
21
|
+
};
|
|
22
|
+
try {
|
|
23
|
+
// Step 1: Submit prompt
|
|
24
|
+
const submitRes = await fetch(`${BANKR_API}/agent/prompt`, {
|
|
25
|
+
method: "POST",
|
|
26
|
+
headers,
|
|
27
|
+
body: JSON.stringify({ prompt: task }),
|
|
28
|
+
signal: AbortSignal.timeout(30000),
|
|
29
|
+
});
|
|
30
|
+
if (!submitRes.ok) {
|
|
31
|
+
const errBody = await submitRes.text().catch(() => "");
|
|
32
|
+
return {
|
|
33
|
+
success: false,
|
|
34
|
+
deliverable: { error: `Bankr API error: ${submitRes.status}`, details: errBody },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const submitData = await submitRes.json();
|
|
38
|
+
const jobId = submitData.jobId ?? submitData.job_id ?? submitData.id;
|
|
39
|
+
// If the response is immediate (no job polling needed)
|
|
40
|
+
if (!jobId || submitData.result || submitData.response) {
|
|
41
|
+
return {
|
|
42
|
+
success: true,
|
|
43
|
+
deliverable: submitData.result ?? submitData.response ?? submitData,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Step 2: Poll for result
|
|
47
|
+
const maxAttempts = 30;
|
|
48
|
+
const pollInterval = 2000;
|
|
49
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
50
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
51
|
+
const pollRes = await fetch(`${BANKR_API}/agent/job/${jobId}`, {
|
|
52
|
+
headers,
|
|
53
|
+
signal: AbortSignal.timeout(10000),
|
|
54
|
+
});
|
|
55
|
+
if (!pollRes.ok)
|
|
56
|
+
continue;
|
|
57
|
+
const pollData = await pollRes.json();
|
|
58
|
+
const status = pollData.status?.toLowerCase();
|
|
59
|
+
if (status === "completed" || status === "done" || status === "success") {
|
|
60
|
+
return {
|
|
61
|
+
success: true,
|
|
62
|
+
deliverable: pollData.result ?? pollData.response ?? pollData,
|
|
63
|
+
jobId,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (status === "failed" || status === "error") {
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
deliverable: { error: pollData.error ?? "Job failed", details: pollData },
|
|
70
|
+
jobId,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Still pending, continue polling
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
deliverable: { error: "Job timed out after polling", jobId },
|
|
78
|
+
jobId,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
deliverable: { error: err instanceof Error ? err.message : String(err) },
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=bankr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bankr.js","sourceRoot":"","sources":["../../../src/wallet/handlers/bankr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locus Payment Handler
|
|
3
|
+
* Calls Locus wrapped APIs — pay-per-use via USDC on Base.
|
|
4
|
+
* No upstream API keys needed — Locus proxies the call and charges the wallet.
|
|
5
|
+
*
|
|
6
|
+
* Flow:
|
|
7
|
+
* 1. Get or create Locus API key (self-register if needed)
|
|
8
|
+
* 2. Wait for wallet deployment
|
|
9
|
+
* 3. Call the wrapped API endpoint
|
|
10
|
+
* 4. Locus charges USDC from wallet, returns response
|
|
11
|
+
*
|
|
12
|
+
* Docs: https://beta.paywithlocus.com/skill.md
|
|
13
|
+
*/
|
|
14
|
+
import type { KompassWallet } from "../index.js";
|
|
15
|
+
import type { UnifiedAgent } from "../../sources/types.js";
|
|
16
|
+
export declare function handleLocusPayment(wallet: KompassWallet, agent: UnifiedAgent, task: string): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
deliverable?: unknown;
|
|
19
|
+
txHash?: string;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=locus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locus.d.ts","sourceRoot":"","sources":["../../../src/wallet/handlers/locus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,wBAAsB,kBAAkB,CACtC,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,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiJvE"}
|