@varun-ai07/covenant-mcp 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -11
- package/dist/abis/MultiTokenEscrow.json +836 -0
- package/dist/abis/v2/AgentRegistry.json +872 -0
- package/dist/abis/v2/DisputeResolution.json +493 -0
- package/dist/abis/v2/InsurancePool.json +645 -0
- package/dist/abis/v2/ReceiptVerifier.json +394 -0
- package/dist/abis/v2/RevisionManager.json +544 -0
- package/dist/abis/v2/TaskEscrow.json +1018 -0
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +13 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +84 -25
- package/dist/config.js.map +1 -1
- package/dist/lib/did.d.ts +72 -0
- package/dist/lib/did.d.ts.map +1 -0
- package/dist/lib/did.js +115 -0
- package/dist/lib/did.js.map +1 -0
- package/dist/lib/formatResponse.d.ts +33 -0
- package/dist/lib/formatResponse.d.ts.map +1 -0
- package/dist/lib/formatResponse.js +92 -0
- package/dist/lib/formatResponse.js.map +1 -0
- package/dist/lib/schemaHelpers.d.ts +11 -0
- package/dist/lib/schemaHelpers.d.ts.map +1 -0
- package/dist/lib/schemaHelpers.js +11 -0
- package/dist/lib/schemaHelpers.js.map +1 -0
- package/dist/lib/store.d.ts +10 -0
- package/dist/lib/store.d.ts.map +1 -0
- package/dist/lib/store.js +39 -0
- package/dist/lib/store.js.map +1 -0
- package/dist/lib/verify.d.ts +21 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +568 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/schemas.d.ts +5 -5
- package/dist/schemas.d.ts.map +1 -1
- package/dist/server.d.ts +1 -25
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +53 -37
- package/dist/server.js.map +1 -1
- package/dist/tools/account-abstraction.d.ts +3 -0
- package/dist/tools/account-abstraction.d.ts.map +1 -0
- package/dist/tools/account-abstraction.js +364 -0
- package/dist/tools/account-abstraction.js.map +1 -0
- package/dist/tools/batches.d.ts.map +1 -1
- package/dist/tools/batches.js +68 -37
- package/dist/tools/batches.js.map +1 -1
- package/dist/tools/bounties.d.ts +3 -0
- package/dist/tools/bounties.d.ts.map +1 -0
- package/dist/tools/bounties.js +304 -0
- package/dist/tools/bounties.js.map +1 -0
- package/dist/tools/bridge.d.ts +3 -0
- package/dist/tools/bridge.d.ts.map +1 -0
- package/dist/tools/bridge.js +190 -0
- package/dist/tools/bridge.js.map +1 -0
- package/dist/tools/collectives.d.ts.map +1 -1
- package/dist/tools/collectives.js +74 -46
- package/dist/tools/collectives.js.map +1 -1
- package/dist/tools/covenant-help.d.ts +3 -0
- package/dist/tools/covenant-help.d.ts.map +1 -0
- package/dist/tools/covenant-help.js +321 -0
- package/dist/tools/covenant-help.js.map +1 -0
- package/dist/tools/cross-chain.d.ts +3 -0
- package/dist/tools/cross-chain.d.ts.map +1 -0
- package/dist/tools/cross-chain.js +77 -0
- package/dist/tools/cross-chain.js.map +1 -0
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +39 -33
- package/dist/tools/disputes.js.map +1 -1
- package/dist/tools/escrow.d.ts.map +1 -1
- package/dist/tools/escrow.js +248 -199
- package/dist/tools/escrow.js.map +1 -1
- package/dist/tools/fiat-onramp.d.ts +3 -0
- package/dist/tools/fiat-onramp.d.ts.map +1 -0
- package/dist/tools/fiat-onramp.js +108 -0
- package/dist/tools/fiat-onramp.js.map +1 -0
- package/dist/tools/governance.d.ts +3 -0
- package/dist/tools/governance.d.ts.map +1 -0
- package/dist/tools/governance.js +271 -0
- package/dist/tools/governance.js.map +1 -0
- package/dist/tools/grants.d.ts +3 -0
- package/dist/tools/grants.d.ts.map +1 -0
- package/dist/tools/grants.js +269 -0
- package/dist/tools/grants.js.map +1 -0
- package/dist/tools/insurance.d.ts.map +1 -1
- package/dist/tools/insurance.js +92 -45
- package/dist/tools/insurance.js.map +1 -1
- package/dist/tools/market.d.ts.map +1 -1
- package/dist/tools/market.js +122 -103
- package/dist/tools/market.js.map +1 -1
- package/dist/tools/matching.d.ts +3 -0
- package/dist/tools/matching.d.ts.map +1 -0
- package/dist/tools/matching.js +233 -0
- package/dist/tools/matching.js.map +1 -0
- package/dist/tools/messaging.d.ts +3 -0
- package/dist/tools/messaging.d.ts.map +1 -0
- package/dist/tools/messaging.js +159 -0
- package/dist/tools/messaging.js.map +1 -0
- package/dist/tools/multi-token.d.ts +3 -0
- package/dist/tools/multi-token.d.ts.map +1 -0
- package/dist/tools/multi-token.js +274 -0
- package/dist/tools/multi-token.js.map +1 -0
- package/dist/tools/offchain-coordinator.d.ts +3 -0
- package/dist/tools/offchain-coordinator.d.ts.map +1 -0
- package/dist/tools/offchain-coordinator.js +436 -0
- package/dist/tools/offchain-coordinator.js.map +1 -0
- package/dist/tools/protocol.d.ts.map +1 -1
- package/dist/tools/protocol.js +19 -6
- package/dist/tools/protocol.js.map +1 -1
- package/dist/tools/receipts.d.ts.map +1 -1
- package/dist/tools/receipts.js +39 -39
- package/dist/tools/receipts.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +90 -43
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/reputation-vc.d.ts +3 -0
- package/dist/tools/reputation-vc.d.ts.map +1 -0
- package/dist/tools/reputation-vc.js +438 -0
- package/dist/tools/reputation-vc.js.map +1 -0
- package/dist/tools/revisions.d.ts +3 -0
- package/dist/tools/revisions.d.ts.map +1 -0
- package/dist/tools/revisions.js +108 -0
- package/dist/tools/revisions.js.map +1 -0
- package/dist/tools/router.d.ts +3 -0
- package/dist/tools/router.d.ts.map +1 -0
- package/dist/tools/router.js +104 -0
- package/dist/tools/router.js.map +1 -0
- package/dist/tools/streaming.d.ts +3 -0
- package/dist/tools/streaming.d.ts.map +1 -0
- package/dist/tools/streaming.js +350 -0
- package/dist/tools/streaming.js.map +1 -0
- package/dist/tools/templates.d.ts +3 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +392 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/training.d.ts +3 -0
- package/dist/tools/training.d.ts.map +1 -0
- package/dist/tools/training.js +304 -0
- package/dist/tools/training.js.map +1 -0
- package/dist/tools/v2-settlement.d.ts +3 -0
- package/dist/tools/v2-settlement.d.ts.map +1 -0
- package/dist/tools/v2-settlement.js +226 -0
- package/dist/tools/v2-settlement.js.map +1 -0
- package/dist/tools/verification.d.ts +3 -0
- package/dist/tools/verification.d.ts.map +1 -0
- package/dist/tools/verification.js +215 -0
- package/dist/tools/verification.js.map +1 -0
- package/dist/tools/verify-deep.d.ts +3 -0
- package/dist/tools/verify-deep.d.ts.map +1 -0
- package/dist/tools/verify-deep.js +125 -0
- package/dist/tools/verify-deep.js.map +1 -0
- package/dist/types.d.ts +16 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -23
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Chain Bridge MCP Tools
|
|
3
|
+
*
|
|
4
|
+
* corven_bridge_estimate — Estimate cross-chain bridge cost and time
|
|
5
|
+
* corven_bridge_status — Check status of a cross-chain bridge transaction
|
|
6
|
+
* corven_get_bridge_chains — List chains available for bridging
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { formatReadResult } from "../handlers/transactions.js";
|
|
10
|
+
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
11
|
+
const BRIDGE_CHAINS = [
|
|
12
|
+
{
|
|
13
|
+
chainId: 84532,
|
|
14
|
+
name: "Base Sepolia",
|
|
15
|
+
rpcUrl: "https://sepolia.base.org",
|
|
16
|
+
explorerUrl: "https://sepolia.basescan.org",
|
|
17
|
+
bridgeUrl: "https://sepolia-bridge.base.org",
|
|
18
|
+
estimatedTime: "~2 minutes",
|
|
19
|
+
nativeToken: "ETH",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
chainId: 8453,
|
|
23
|
+
name: "Base Mainnet",
|
|
24
|
+
rpcUrl: "https://mainnet.base.org",
|
|
25
|
+
explorerUrl: "https://basescan.org",
|
|
26
|
+
bridgeUrl: "https://bridge.base.org",
|
|
27
|
+
estimatedTime: "~2 minutes",
|
|
28
|
+
nativeToken: "ETH",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
chainId: 137,
|
|
32
|
+
name: "Polygon",
|
|
33
|
+
rpcUrl: "https://polygon-rpc.com",
|
|
34
|
+
explorerUrl: "https://polygonscan.com",
|
|
35
|
+
bridgeUrl: "https://portal.polygon.technology/bridge",
|
|
36
|
+
estimatedTime: "~7 minutes",
|
|
37
|
+
nativeToken: "MATIC",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
chainId: 42161,
|
|
41
|
+
name: "Arbitrum One",
|
|
42
|
+
rpcUrl: "https://arb1.arbitrum.io/rpc",
|
|
43
|
+
explorerUrl: "https://arbiscan.io",
|
|
44
|
+
bridgeUrl: "https://bridge.arbitrum.io",
|
|
45
|
+
estimatedTime: "~10 minutes",
|
|
46
|
+
nativeToken: "ETH",
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
function findChain(chainId) {
|
|
50
|
+
return BRIDGE_CHAINS.find((c) => c.chainId === chainId);
|
|
51
|
+
}
|
|
52
|
+
// ─── Tool Registration ─────────────────────────────────────────────
|
|
53
|
+
export function registerBridgeTools(server) {
|
|
54
|
+
// ──────────────────────────────────────────────────────────────
|
|
55
|
+
// corven_bridge_estimate
|
|
56
|
+
// ──────────────────────────────────────────────────────────────
|
|
57
|
+
server.registerTool("corven_bridge_estimate", {
|
|
58
|
+
title: "Estimate Cross-Chain Bridge",
|
|
59
|
+
description: "Estimate the cost and time for bridging assets between supported chains.\n" +
|
|
60
|
+
"USE WHEN: Planning a cross-chain transfer, comparing bridge options, or budgeting for gas fees.\n" +
|
|
61
|
+
"REQUIRES: Source chain ID, destination chain ID, and the amount to bridge.\n" +
|
|
62
|
+
"RETURNS: Estimated bridge time, bridge URL, gas estimates, and route notes.\n" +
|
|
63
|
+
"NOTE: Estimates are approximations. For production, integrate with LiFi or Socket API for real quotes.",
|
|
64
|
+
inputSchema: {
|
|
65
|
+
fromChain: z.number().describe("Source chain ID (e.g., 84532 for Base Sepolia, 8453 for Base Mainnet)"),
|
|
66
|
+
toChain: z.number().describe("Destination chain ID (e.g., 137 for Polygon, 42161 for Arbitrum One)"),
|
|
67
|
+
amount: z.string().describe("Amount to bridge in native token (e.g., '0.1' for 0.1 ETH)"),
|
|
68
|
+
},
|
|
69
|
+
}, async (params) => {
|
|
70
|
+
try {
|
|
71
|
+
const { fromChain, toChain, amount } = params;
|
|
72
|
+
const from = findChain(fromChain);
|
|
73
|
+
const to = findChain(toChain);
|
|
74
|
+
const errors = [];
|
|
75
|
+
if (!from)
|
|
76
|
+
errors.push(`Source chain ${fromChain} is not supported.`);
|
|
77
|
+
if (!to)
|
|
78
|
+
errors.push(`Destination chain ${toChain} is not supported.`);
|
|
79
|
+
if (fromChain === toChain)
|
|
80
|
+
errors.push("Source and destination chains must be different.");
|
|
81
|
+
if (errors.length > 0) {
|
|
82
|
+
return formatReadResult({
|
|
83
|
+
error: errors.join(" "),
|
|
84
|
+
supportedChains: BRIDGE_CHAINS.map((c) => ({ chainId: c.chainId, name: c.name })),
|
|
85
|
+
}, "Bridge Estimate Error");
|
|
86
|
+
}
|
|
87
|
+
const estimatedMinutes = from.chainId === 84532 || from.chainId === 8453 ? 2 : from.chainId === 137 ? 7 : 10;
|
|
88
|
+
const destMinutes = to.chainId === 84532 || to.chainId === 8453 ? 2 : to.chainId === 137 ? 7 : 10;
|
|
89
|
+
const totalTime = `${Math.max(estimatedMinutes, destMinutes)}-${Math.max(estimatedMinutes, destMinutes) + 3} minutes`;
|
|
90
|
+
const queryParams = new URLSearchParams({
|
|
91
|
+
from_chain: String(fromChain),
|
|
92
|
+
to_chain: String(toChain),
|
|
93
|
+
amount,
|
|
94
|
+
token: from.nativeToken,
|
|
95
|
+
});
|
|
96
|
+
const bridgeUrl = `${from.bridgeUrl}?${queryParams.toString()}`;
|
|
97
|
+
return formatReadResult({
|
|
98
|
+
from: { chainId: fromChain, name: from.name, nativeToken: from.nativeToken },
|
|
99
|
+
to: { chainId: toChain, name: to.name, nativeToken: to.nativeToken },
|
|
100
|
+
amount,
|
|
101
|
+
estimated_time: totalTime,
|
|
102
|
+
bridge_url: bridgeUrl,
|
|
103
|
+
explorer_from: from.explorerUrl,
|
|
104
|
+
explorer_to: to.explorerUrl,
|
|
105
|
+
notes: [
|
|
106
|
+
"Estimates based on typical bridge latency for each route.",
|
|
107
|
+
"Actual fees depend on network congestion and bridge provider fees.",
|
|
108
|
+
"For production quotes, integrate LiFi or Socket API.",
|
|
109
|
+
],
|
|
110
|
+
}, `Bridge Estimate: ${from.name} -> ${to.name}`);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
const parsed = parseContractError(e);
|
|
114
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
// ──────────────────────────────────────────────────────────────
|
|
118
|
+
// corven_bridge_status
|
|
119
|
+
// ──────────────────────────────────────────────────────────────
|
|
120
|
+
server.registerTool("corven_bridge_status", {
|
|
121
|
+
title: "Check Bridge Transaction Status",
|
|
122
|
+
description: "Check the status of a cross-chain bridge transaction by its source chain tx hash.\n" +
|
|
123
|
+
"USE WHEN: Monitoring a pending bridge, verifying arrival on destination chain, or debugging a stuck bridge.\n" +
|
|
124
|
+
"REQUIRES: The transaction hash on the source chain and the source chain ID.\n" +
|
|
125
|
+
"RETURNS: Transaction status, explorer links for source and destination chains, and estimated completion.\n" +
|
|
126
|
+
"NOTE: For production, query LayerZero or CCIP relayer APIs. Status here is informational.",
|
|
127
|
+
inputSchema: {
|
|
128
|
+
txHash: z.string().describe("Transaction hash of the bridge on the source chain"),
|
|
129
|
+
fromChain: z.number().describe("Chain ID where the bridge transaction was initiated"),
|
|
130
|
+
},
|
|
131
|
+
}, async (params) => {
|
|
132
|
+
try {
|
|
133
|
+
const { txHash, fromChain } = params;
|
|
134
|
+
const from = findChain(fromChain);
|
|
135
|
+
if (!from) {
|
|
136
|
+
return formatReadResult({
|
|
137
|
+
error: `Chain ID ${fromChain} is not supported.`,
|
|
138
|
+
supportedChains: BRIDGE_CHAINS.map((c) => ({ chainId: c.chainId, name: c.name })),
|
|
139
|
+
}, "Bridge Status Error");
|
|
140
|
+
}
|
|
141
|
+
return formatReadResult({
|
|
142
|
+
tx_hash: txHash,
|
|
143
|
+
source_chain: { chainId: fromChain, name: from.name },
|
|
144
|
+
status: "pending_review",
|
|
145
|
+
source_explorer: `${from.explorerUrl}/tx/${txHash}`,
|
|
146
|
+
notes: [
|
|
147
|
+
"Status tracking is informational in this version.",
|
|
148
|
+
"Check the source explorer link above for on-chain confirmation.",
|
|
149
|
+
"For production, integrate with LayerZero relayer API or Chainlink CCIP.",
|
|
150
|
+
`Bridge from ${from.name} typically completes in ${from.estimatedTime}.`,
|
|
151
|
+
],
|
|
152
|
+
}, `Bridge Status: ${txHash.slice(0, 10)}...`);
|
|
153
|
+
}
|
|
154
|
+
catch (e) {
|
|
155
|
+
const parsed = parseContractError(e);
|
|
156
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
// ──────────────────────────────────────────────────────────────
|
|
160
|
+
// corven_get_bridge_chains
|
|
161
|
+
// ──────────────────────────────────────────────────────────────
|
|
162
|
+
server.registerTool("corven_get_bridge_chains", {
|
|
163
|
+
title: "List Bridge-Supported Chains",
|
|
164
|
+
description: "List all chains available for cross-chain bridging in the COVENANT protocol.\n" +
|
|
165
|
+
"USE WHEN: Discovering which chains support bridging, planning cross-chain routes, or checking bridge URLs.\n" +
|
|
166
|
+
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
167
|
+
"RETURNS: Chain ID, name, native token, estimated bridge time, RPC URL, explorer URL, and bridge URL for each chain.",
|
|
168
|
+
inputSchema: {},
|
|
169
|
+
}, async () => {
|
|
170
|
+
try {
|
|
171
|
+
return formatReadResult({
|
|
172
|
+
totalChains: BRIDGE_CHAINS.length,
|
|
173
|
+
chains: BRIDGE_CHAINS.map((c) => ({
|
|
174
|
+
chainId: c.chainId,
|
|
175
|
+
name: c.name,
|
|
176
|
+
nativeToken: c.nativeToken,
|
|
177
|
+
estimatedTime: c.estimatedTime,
|
|
178
|
+
rpcUrl: c.rpcUrl,
|
|
179
|
+
explorerUrl: c.explorerUrl,
|
|
180
|
+
bridgeUrl: c.bridgeUrl,
|
|
181
|
+
})),
|
|
182
|
+
}, "Bridge-Supported Chains");
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
const parsed = parseContractError(e);
|
|
186
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/tools/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectives.d.ts","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collectives.d.ts","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgR/D"}
|
|
@@ -11,6 +11,8 @@ import { parseEther, formatEther, isAddress } from "viem";
|
|
|
11
11
|
import { loadAbi, CONTRACTS, getAccount } from "../config.js";
|
|
12
12
|
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
13
13
|
import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
|
|
14
|
+
import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
|
|
15
|
+
import { taskId as taskIdSchema, ethAddress, ethAmount, ipfsCid, unixDeadline } from "../lib/schemaHelpers.js";
|
|
14
16
|
import { stringToBytes32, stringsToBytes32 } from "../utils.js";
|
|
15
17
|
const ABI = loadAbi("AgentCollective");
|
|
16
18
|
// Input validation schemas
|
|
@@ -36,13 +38,17 @@ export function registerCollectiveTools(server) {
|
|
|
36
38
|
// ──────────────────────────────────────────────────────────────
|
|
37
39
|
server.registerTool("corven_create_collective", {
|
|
38
40
|
title: "Create Agent Collective",
|
|
39
|
-
description: "Create a new collective of agents that pool resources. " +
|
|
40
|
-
"
|
|
41
|
-
"You must
|
|
41
|
+
description: "Create a new collective of agents that pool resources. Collectives can launch tasks and share proceeds. You must send at least minContribution ETH as your initial stake.\n" +
|
|
42
|
+
"USE WHEN: You want to form a group of agents to collaborate on tasks and pool funds for shared operations.\n" +
|
|
43
|
+
"REQUIRES: You must be a registered agent. Your wallet must have enough ETH for the initial contribution plus gas.\n" +
|
|
44
|
+
"RETURNS: Transaction hash. The collective ID is emitted in the event logs.\n" +
|
|
45
|
+
"COMES AFTER: corven_register_agent (you must be registered first).\n" +
|
|
46
|
+
"COMES BEFORE: corven_join_collective (others can join), corven_launch_collective_task (launch tasks from pooled funds).\n" +
|
|
47
|
+
"NOTE: maxMembers is permanent and cannot be changed after creation. initialContribution defaults to minContribution if omitted.",
|
|
42
48
|
inputSchema: {
|
|
43
|
-
minContribution:
|
|
49
|
+
minContribution: ethAmount,
|
|
44
50
|
maxMembers: z.number().describe("Maximum number of members (2-100)"),
|
|
45
|
-
initialContribution:
|
|
51
|
+
initialContribution: ethAmount.optional(),
|
|
46
52
|
},
|
|
47
53
|
}, async ({ minContribution, maxMembers, initialContribution }) => {
|
|
48
54
|
try {
|
|
@@ -62,7 +68,8 @@ export function registerCollectiveTools(server) {
|
|
|
62
68
|
return formatTxResult(result);
|
|
63
69
|
}
|
|
64
70
|
catch (e) {
|
|
65
|
-
|
|
71
|
+
const parsed = parseContractError(e);
|
|
72
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
66
73
|
}
|
|
67
74
|
});
|
|
68
75
|
// ──────────────────────────────────────────────────────────────
|
|
@@ -70,11 +77,16 @@ export function registerCollectiveTools(server) {
|
|
|
70
77
|
// ──────────────────────────────────────────────────────────────
|
|
71
78
|
server.registerTool("corven_join_collective", {
|
|
72
79
|
title: "Join Collective",
|
|
73
|
-
description: "Join an existing collective by contributing ETH. " +
|
|
74
|
-
"
|
|
80
|
+
description: "Join an existing collective by contributing ETH. Contribution must meet the collective's minimum.\n" +
|
|
81
|
+
"USE WHEN: You want to become a member of an existing collective to participate in pooled tasks.\n" +
|
|
82
|
+
"REQUIRES: The collective must exist and not be full. Your contribution must meet the collective's minimum.\n" +
|
|
83
|
+
"RETURNS: Transaction hash confirming your membership.\n" +
|
|
84
|
+
"COMES AFTER: corven_create_collective created the collective, or corven_get_collective to find one to join.\n" +
|
|
85
|
+
"COMES BEFORE: corven_launch_collective_task (as a member, you can launch tasks from pooled funds).\n" +
|
|
86
|
+
"NOTE: Your ETH is added to the collective's pooled treasury.",
|
|
75
87
|
inputSchema: {
|
|
76
|
-
collectiveId: z.number().describe("
|
|
77
|
-
contribution:
|
|
88
|
+
collectiveId: z.number().describe("Numeric collective ID to join"),
|
|
89
|
+
contribution: ethAmount,
|
|
78
90
|
},
|
|
79
91
|
}, async ({ collectiveId, contribution }) => {
|
|
80
92
|
try {
|
|
@@ -91,7 +103,8 @@ export function registerCollectiveTools(server) {
|
|
|
91
103
|
return formatTxResult(result);
|
|
92
104
|
}
|
|
93
105
|
catch (e) {
|
|
94
|
-
|
|
106
|
+
const parsed = parseContractError(e);
|
|
107
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
95
108
|
}
|
|
96
109
|
});
|
|
97
110
|
// ──────────────────────────────────────────────────────────────
|
|
@@ -99,14 +112,19 @@ export function registerCollectiveTools(server) {
|
|
|
99
112
|
// ──────────────────────────────────────────────────────────────
|
|
100
113
|
server.registerTool("corven_launch_collective_task", {
|
|
101
114
|
title: "Launch Collective Task",
|
|
102
|
-
description: "Launch a task from a collective's pooled funds. " +
|
|
103
|
-
"
|
|
115
|
+
description: "Launch a task from a collective's pooled funds. Only collective members can call this.\n" +
|
|
116
|
+
"USE WHEN: The collective has decided to commission work from a specific worker using pooled treasury funds.\n" +
|
|
117
|
+
"REQUIRES: You must be a member of the collective. The collective must have enough pooled ETH for the payment.\n" +
|
|
118
|
+
"RETURNS: Transaction hash. The task ID is emitted in the event logs.\n" +
|
|
119
|
+
"COMES AFTER: corven_create_collective and corven_join_collective built the treasury.\n" +
|
|
120
|
+
"COMES BEFORE: corven_submit_work (worker delivers), corven_submit_deliverable (encrypted delivery to all members).\n" +
|
|
121
|
+
"NOTE: The payment comes from the collective treasury, not your personal wallet.",
|
|
104
122
|
inputSchema: {
|
|
105
|
-
collectiveId: z.number().describe("
|
|
106
|
-
workerAddress:
|
|
107
|
-
payment:
|
|
108
|
-
deadline:
|
|
109
|
-
descriptionHash:
|
|
123
|
+
collectiveId: z.number().describe("Numeric collective ID"),
|
|
124
|
+
workerAddress: ethAddress,
|
|
125
|
+
payment: ethAmount,
|
|
126
|
+
deadline: unixDeadline,
|
|
127
|
+
descriptionHash: ipfsCid,
|
|
110
128
|
},
|
|
111
129
|
}, async ({ collectiveId, workerAddress, payment, deadline, descriptionHash }) => {
|
|
112
130
|
try {
|
|
@@ -130,20 +148,31 @@ export function registerCollectiveTools(server) {
|
|
|
130
148
|
return formatTxResult(result);
|
|
131
149
|
}
|
|
132
150
|
catch (e) {
|
|
133
|
-
|
|
151
|
+
const parsed = parseContractError(e);
|
|
152
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
134
153
|
}
|
|
135
154
|
});
|
|
136
155
|
// ──────────────────────────────────────────────────────────────
|
|
137
156
|
// get_collective
|
|
138
157
|
// ──────────────────────────────────────────────────────────────
|
|
139
158
|
server.registerTool("corven_get_collective", {
|
|
140
|
-
title: "Get Collective
|
|
141
|
-
description: "
|
|
159
|
+
title: "Get Collective",
|
|
160
|
+
description: "Get collective details by ID, or total collective count if no ID provided.\n" +
|
|
161
|
+
"USE WHEN: You need to inspect a collective's members, treasury balance, or status.\n" +
|
|
162
|
+
"REQUIRES: The collective must exist on-chain.\n" +
|
|
163
|
+
"RETURNS: Collective details including creator, members, total fund, max members, and minimum contribution. If no ID provided, returns total collective count.\n" +
|
|
164
|
+
"COMES AFTER: corven_create_collective created the collective.\n" +
|
|
165
|
+
"COMES BEFORE: corven_join_collective (to join) or corven_launch_collective_task (to use funds).\n" +
|
|
166
|
+
"NOTE: Omit collectiveId to get the total number of collectives.",
|
|
142
167
|
inputSchema: {
|
|
143
|
-
collectiveId: z.number().describe("Collective ID"),
|
|
168
|
+
collectiveId: z.number().optional().describe("Collective ID. Omit to get total count."),
|
|
144
169
|
},
|
|
145
170
|
}, async ({ collectiveId }) => {
|
|
146
171
|
try {
|
|
172
|
+
if (collectiveId === undefined) {
|
|
173
|
+
const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
|
|
174
|
+
return formatReadResult({ collectiveCount: Number(count) }, "Total Collectives");
|
|
175
|
+
}
|
|
147
176
|
const data = await readContract(CONTRACTS.AgentCollective, ABI, "getCollective", [BigInt(collectiveId)]);
|
|
148
177
|
const enriched = {
|
|
149
178
|
...data,
|
|
@@ -152,35 +181,26 @@ export function registerCollectiveTools(server) {
|
|
|
152
181
|
return formatReadResult(enriched, `Collective #${collectiveId}`);
|
|
153
182
|
}
|
|
154
183
|
catch (e) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
});
|
|
158
|
-
// ──────────────────────────────────────────────────────────────
|
|
159
|
-
// get_collective_counter
|
|
160
|
-
// ──────────────────────────────────────────────────────────────
|
|
161
|
-
server.registerTool("corven_get_collective_counter", {
|
|
162
|
-
title: "Get Collective Counter",
|
|
163
|
-
description: "Get the total number of collectives created.",
|
|
164
|
-
inputSchema: {},
|
|
165
|
-
}, async () => {
|
|
166
|
-
try {
|
|
167
|
-
const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
|
|
168
|
-
return formatReadResult({ count: Number(count) }, "Collective Counter");
|
|
169
|
-
}
|
|
170
|
-
catch (e) {
|
|
171
|
-
return formatError(e);
|
|
184
|
+
const parsed = parseContractError(e);
|
|
185
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
172
186
|
}
|
|
173
187
|
});
|
|
188
|
+
// get_collective_counter merged into get_collective
|
|
174
189
|
// ──────────────────────────────────────────────────────────────
|
|
175
190
|
// corven_submit_deliverable
|
|
176
191
|
// ──────────────────────────────────────────────────────────────
|
|
177
192
|
server.registerTool("corven_submit_deliverable", {
|
|
178
193
|
title: "Submit Collective Deliverable",
|
|
179
|
-
description: "Worker submits encrypted deliverables to a collective task. " +
|
|
180
|
-
"
|
|
194
|
+
description: "Worker submits encrypted deliverables to a collective task. Each member receives their own encrypted copy.\n" +
|
|
195
|
+
"USE WHEN: You are the assigned worker on a collective task and have completed the work.\n" +
|
|
196
|
+
"REQUIRES: You must be the assigned worker for this task. The task must be in InProgress status.\n" +
|
|
197
|
+
"RETURNS: Transaction hash confirming deliverable submission.\n" +
|
|
198
|
+
"COMES AFTER: corven_launch_collective_task assigned you the work.\n" +
|
|
199
|
+
"COMES BEFORE: corven_claim_deliverable (each member claims their encrypted copy).\n" +
|
|
200
|
+
"NOTE: You must provide one encrypted hash per collective member, in the same order as the member list.",
|
|
181
201
|
inputSchema: {
|
|
182
|
-
collectiveId: z.number().describe("
|
|
183
|
-
taskId:
|
|
202
|
+
collectiveId: z.number().describe("Numeric collective ID"),
|
|
203
|
+
taskId: taskIdSchema,
|
|
184
204
|
encryptedDeliveryHashes: z.array(z.string()).describe("Array of encrypted delivery hashes (one per member, will be converted to bytes32)"),
|
|
185
205
|
},
|
|
186
206
|
}, async ({ collectiveId, taskId, encryptedDeliveryHashes }) => {
|
|
@@ -193,7 +213,8 @@ export function registerCollectiveTools(server) {
|
|
|
193
213
|
return formatTxResult(result);
|
|
194
214
|
}
|
|
195
215
|
catch (e) {
|
|
196
|
-
|
|
216
|
+
const parsed = parseContractError(e);
|
|
217
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
197
218
|
}
|
|
198
219
|
});
|
|
199
220
|
// ──────────────────────────────────────────────────────────────
|
|
@@ -201,7 +222,13 @@ export function registerCollectiveTools(server) {
|
|
|
201
222
|
// ──────────────────────────────────────────────────────────────
|
|
202
223
|
server.registerTool("corven_claim_deliverable", {
|
|
203
224
|
title: "Claim Collective Deliverable",
|
|
204
|
-
description: "Claim your encrypted deliverable from a collective task
|
|
225
|
+
description: "Claim your encrypted deliverable from a collective task.\n" +
|
|
226
|
+
"USE WHEN: You are a collective member and the worker has submitted deliverables for a task.\n" +
|
|
227
|
+
"REQUIRES: You must be a member of the collective. The worker must have already called corven_submit_deliverable.\n" +
|
|
228
|
+
"RETURNS: Transaction hash. Your encrypted deliverable is returned in the event logs.\n" +
|
|
229
|
+
"COMES AFTER: corven_submit_deliverable was called by the worker.\n" +
|
|
230
|
+
"COMES BEFORE: Decrypt the deliverable with your private key to view the content.\n" +
|
|
231
|
+
"NOTE: Each member receives a uniquely encrypted copy — only you can decrypt yours.",
|
|
205
232
|
inputSchema: {
|
|
206
233
|
collectiveId: z.number().describe("Collective ID"),
|
|
207
234
|
},
|
|
@@ -214,7 +241,8 @@ export function registerCollectiveTools(server) {
|
|
|
214
241
|
return formatTxResult(result);
|
|
215
242
|
}
|
|
216
243
|
catch (e) {
|
|
217
|
-
|
|
244
|
+
const parsed = parseContractError(e);
|
|
245
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
218
246
|
}
|
|
219
247
|
});
|
|
220
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAgB,SAAS,EAAE,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,2BAA2B;AAC3B,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,oBAAoB,CAAC;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CACtF,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,oBAAoB,CAAC;CACpE,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,iEAAiE;IACjE,oBAAoB;IACpB,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"covenant-help.d.ts","sourceRoot":"","sources":["../../src/tools/covenant-help.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiWjE"}
|