@varun-ai07/covenant-mcp 1.3.2 → 2.0.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/abis/GrantProgram.json +778 -0
- package/dist/abis/RevisionManager.json +544 -0
- package/dist/abis/TrainingMarketplace.json +787 -0
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +15 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +63 -63
- package/dist/server.js.map +1 -1
- package/dist/shared-types.js +8 -8
- package/dist/tools/{registry.d.ts → corven-agent.d.ts} +1 -1
- package/dist/tools/corven-agent.d.ts.map +1 -0
- package/dist/tools/corven-agent.js +90 -0
- package/dist/tools/corven-agent.js.map +1 -0
- package/dist/tools/corven-attest.d.ts +3 -0
- package/dist/tools/corven-attest.d.ts.map +1 -0
- package/dist/tools/corven-attest.js +87 -0
- package/dist/tools/corven-attest.js.map +1 -0
- package/dist/tools/{batches.d.ts → corven-batch.d.ts} +1 -1
- package/dist/tools/corven-batch.d.ts.map +1 -0
- package/dist/tools/corven-batch.js +116 -0
- package/dist/tools/corven-batch.js.map +1 -0
- package/dist/tools/{bounties.d.ts → corven-bounty.d.ts} +1 -1
- package/dist/tools/corven-bounty.d.ts.map +1 -0
- package/dist/tools/corven-bounty.js +72 -0
- package/dist/tools/corven-bounty.js.map +1 -0
- package/dist/tools/{collectives.d.ts → corven-collective.d.ts} +1 -1
- package/dist/tools/corven-collective.d.ts.map +1 -0
- package/dist/tools/corven-collective.js +105 -0
- package/dist/tools/corven-collective.js.map +1 -0
- package/dist/tools/corven-fiat.d.ts +3 -0
- package/dist/tools/corven-fiat.d.ts.map +1 -0
- package/dist/tools/corven-fiat.js +42 -0
- package/dist/tools/corven-fiat.js.map +1 -0
- package/dist/tools/corven-govern.d.ts +3 -0
- package/dist/tools/corven-govern.d.ts.map +1 -0
- package/dist/tools/corven-govern.js +65 -0
- package/dist/tools/corven-govern.js.map +1 -0
- package/dist/tools/{grants.d.ts → corven-grants.d.ts} +1 -1
- package/dist/tools/corven-grants.d.ts.map +1 -0
- package/dist/tools/corven-grants.js +67 -0
- package/dist/tools/corven-grants.js.map +1 -0
- package/dist/tools/{insurance.d.ts → corven-insurance.d.ts} +1 -1
- package/dist/tools/corven-insurance.d.ts.map +1 -0
- package/dist/tools/corven-insurance.js +103 -0
- package/dist/tools/corven-insurance.js.map +1 -0
- package/dist/tools/{market.d.ts → corven-market.d.ts} +1 -1
- package/dist/tools/corven-market.d.ts.map +1 -0
- package/dist/tools/corven-market.js +113 -0
- package/dist/tools/corven-market.js.map +1 -0
- package/dist/tools/corven-match.d.ts +3 -0
- package/dist/tools/corven-match.d.ts.map +1 -0
- package/dist/tools/corven-match.js +235 -0
- package/dist/tools/corven-match.js.map +1 -0
- package/dist/tools/corven-message.d.ts +3 -0
- package/dist/tools/corven-message.d.ts.map +1 -0
- package/dist/tools/corven-message.js +82 -0
- package/dist/tools/corven-message.js.map +1 -0
- package/dist/tools/corven-multi.d.ts +3 -0
- package/dist/tools/corven-multi.d.ts.map +1 -0
- package/dist/tools/corven-multi.js +197 -0
- package/dist/tools/corven-multi.js.map +1 -0
- package/dist/tools/corven-reputation.d.ts +3 -0
- package/dist/tools/corven-reputation.d.ts.map +1 -0
- package/dist/tools/corven-reputation.js +126 -0
- package/dist/tools/corven-reputation.js.map +1 -0
- package/dist/tools/{revisions.d.ts → corven-revision.d.ts} +1 -1
- package/dist/tools/corven-revision.d.ts.map +1 -0
- package/dist/tools/corven-revision.js +73 -0
- package/dist/tools/corven-revision.js.map +1 -0
- package/dist/tools/{router.d.ts → corven-router.d.ts} +1 -1
- package/dist/tools/corven-router.d.ts.map +1 -0
- package/dist/tools/corven-router.js +116 -0
- package/dist/tools/corven-router.js.map +1 -0
- package/dist/tools/corven-stats.d.ts +3 -0
- package/dist/tools/corven-stats.d.ts.map +1 -0
- package/dist/tools/corven-stats.js +97 -0
- package/dist/tools/corven-stats.js.map +1 -0
- package/dist/tools/corven-stream.d.ts +3 -0
- package/dist/tools/corven-stream.d.ts.map +1 -0
- package/dist/tools/corven-stream.js +197 -0
- package/dist/tools/corven-stream.js.map +1 -0
- package/dist/tools/corven-task.d.ts +3 -0
- package/dist/tools/corven-task.d.ts.map +1 -0
- package/dist/tools/corven-task.js +105 -0
- package/dist/tools/corven-task.js.map +1 -0
- package/dist/tools/{training.d.ts → corven-training.d.ts} +1 -1
- package/dist/tools/corven-training.d.ts.map +1 -0
- package/dist/tools/corven-training.js +73 -0
- package/dist/tools/corven-training.js.map +1 -0
- package/dist/tools/corven-verify.d.ts +3 -0
- package/dist/tools/corven-verify.d.ts.map +1 -0
- package/dist/tools/corven-verify.js +149 -0
- package/dist/tools/corven-verify.js.map +1 -0
- package/dist/tools/corven-wallet.d.ts +3 -0
- package/dist/tools/corven-wallet.d.ts.map +1 -0
- package/dist/tools/corven-wallet.js +235 -0
- package/dist/tools/corven-wallet.js.map +1 -0
- package/dist/tools/covenant-help.d.ts.map +1 -1
- package/dist/tools/covenant-help.js +88 -312
- package/dist/tools/covenant-help.js.map +1 -1
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +26 -0
- package/dist/tools/disputes.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/abis/v2/DisputeResolution.json +0 -493
- package/dist/abis/v2/InsurancePool.json +0 -645
- package/dist/tools/account-abstraction.d.ts +0 -3
- package/dist/tools/account-abstraction.d.ts.map +0 -1
- package/dist/tools/account-abstraction.js +0 -364
- package/dist/tools/account-abstraction.js.map +0 -1
- package/dist/tools/batches.d.ts.map +0 -1
- package/dist/tools/batches.js +0 -231
- package/dist/tools/batches.js.map +0 -1
- package/dist/tools/bounties.d.ts.map +0 -1
- package/dist/tools/bounties.js +0 -304
- package/dist/tools/bounties.js.map +0 -1
- package/dist/tools/bridge.d.ts +0 -3
- package/dist/tools/bridge.d.ts.map +0 -1
- package/dist/tools/bridge.js +0 -190
- package/dist/tools/bridge.js.map +0 -1
- package/dist/tools/collectives.d.ts.map +0 -1
- package/dist/tools/collectives.js +0 -249
- package/dist/tools/collectives.js.map +0 -1
- package/dist/tools/cross-chain.d.ts +0 -3
- package/dist/tools/cross-chain.d.ts.map +0 -1
- package/dist/tools/cross-chain.js +0 -77
- package/dist/tools/cross-chain.js.map +0 -1
- package/dist/tools/escrow.d.ts +0 -3
- package/dist/tools/escrow.d.ts.map +0 -1
- package/dist/tools/escrow.js +0 -606
- package/dist/tools/escrow.js.map +0 -1
- package/dist/tools/fiat-onramp.d.ts +0 -3
- package/dist/tools/fiat-onramp.d.ts.map +0 -1
- package/dist/tools/fiat-onramp.js +0 -108
- package/dist/tools/fiat-onramp.js.map +0 -1
- package/dist/tools/governance.d.ts +0 -3
- package/dist/tools/governance.d.ts.map +0 -1
- package/dist/tools/governance.js +0 -271
- package/dist/tools/governance.js.map +0 -1
- package/dist/tools/grants.d.ts.map +0 -1
- package/dist/tools/grants.js +0 -269
- package/dist/tools/grants.js.map +0 -1
- package/dist/tools/insurance.d.ts.map +0 -1
- package/dist/tools/insurance.js +0 -271
- package/dist/tools/insurance.js.map +0 -1
- package/dist/tools/market.d.ts.map +0 -1
- package/dist/tools/market.js +0 -393
- package/dist/tools/market.js.map +0 -1
- package/dist/tools/matching.d.ts +0 -3
- package/dist/tools/matching.d.ts.map +0 -1
- package/dist/tools/matching.js +0 -233
- package/dist/tools/matching.js.map +0 -1
- package/dist/tools/messaging.d.ts +0 -3
- package/dist/tools/messaging.d.ts.map +0 -1
- package/dist/tools/messaging.js +0 -159
- package/dist/tools/messaging.js.map +0 -1
- package/dist/tools/multi-token.d.ts +0 -3
- package/dist/tools/multi-token.d.ts.map +0 -1
- package/dist/tools/multi-token.js +0 -274
- package/dist/tools/multi-token.js.map +0 -1
- package/dist/tools/offchain-coordinator.d.ts +0 -3
- package/dist/tools/offchain-coordinator.d.ts.map +0 -1
- package/dist/tools/offchain-coordinator.js +0 -436
- package/dist/tools/offchain-coordinator.js.map +0 -1
- package/dist/tools/protocol.d.ts +0 -3
- package/dist/tools/protocol.d.ts.map +0 -1
- package/dist/tools/protocol.js +0 -127
- package/dist/tools/protocol.js.map +0 -1
- package/dist/tools/receipts.d.ts +0 -3
- package/dist/tools/receipts.d.ts.map +0 -1
- package/dist/tools/receipts.js +0 -147
- package/dist/tools/receipts.js.map +0 -1
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -245
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/reputation-vc.d.ts +0 -3
- package/dist/tools/reputation-vc.d.ts.map +0 -1
- package/dist/tools/reputation-vc.js +0 -438
- package/dist/tools/reputation-vc.js.map +0 -1
- package/dist/tools/revisions.d.ts.map +0 -1
- package/dist/tools/revisions.js +0 -108
- package/dist/tools/revisions.js.map +0 -1
- package/dist/tools/router.d.ts.map +0 -1
- package/dist/tools/router.js +0 -104
- package/dist/tools/router.js.map +0 -1
- package/dist/tools/streaming.d.ts +0 -3
- package/dist/tools/streaming.d.ts.map +0 -1
- package/dist/tools/streaming.js +0 -350
- package/dist/tools/streaming.js.map +0 -1
- package/dist/tools/templates.d.ts +0 -3
- package/dist/tools/templates.d.ts.map +0 -1
- package/dist/tools/templates.js +0 -392
- package/dist/tools/templates.js.map +0 -1
- package/dist/tools/training.d.ts.map +0 -1
- package/dist/tools/training.js +0 -304
- package/dist/tools/training.js.map +0 -1
- package/dist/tools/v2-settlement.d.ts +0 -3
- package/dist/tools/v2-settlement.d.ts.map +0 -1
- package/dist/tools/v2-settlement.js +0 -226
- package/dist/tools/v2-settlement.js.map +0 -1
- package/dist/tools/verification.d.ts +0 -3
- package/dist/tools/verification.d.ts.map +0 -1
- package/dist/tools/verification.js +0 -215
- package/dist/tools/verification.js.map +0 -1
- package/dist/tools/verify-deep.d.ts +0 -3
- package/dist/tools/verify-deep.d.ts.map +0 -1
- package/dist/tools/verify-deep.js +0 -125
- package/dist/tools/verify-deep.js.map +0 -1
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentCollective MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* create_collective — Create a new agent collective
|
|
5
|
-
* join_collective — Join an existing collective
|
|
6
|
-
* launch_collective_task — Launch a task from a collective
|
|
7
|
-
* get_collective — Get collective details
|
|
8
|
-
*/
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
import { parseEther, formatEther, isAddress } from "viem";
|
|
11
|
-
import { loadAbi, CONTRACTS, getAccount } from "../config.js";
|
|
12
|
-
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
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";
|
|
16
|
-
import { stringToBytes32, stringsToBytes32 } from "../utils.js";
|
|
17
|
-
const ABI = loadAbi("AgentCollective");
|
|
18
|
-
// Input validation schemas
|
|
19
|
-
const createCollectiveSchema = z.object({
|
|
20
|
-
minContribution: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount"),
|
|
21
|
-
maxMembers: z.number().int().min(2).max(100),
|
|
22
|
-
initialContribution: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount").optional(),
|
|
23
|
-
});
|
|
24
|
-
const joinCollectiveSchema = z.object({
|
|
25
|
-
collectiveId: z.number().int().positive(),
|
|
26
|
-
contribution: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount"),
|
|
27
|
-
});
|
|
28
|
-
const launchTaskSchema = z.object({
|
|
29
|
-
collectiveId: z.number().int().positive(),
|
|
30
|
-
workerAddress: z.string().refine(isAddress, { message: "Invalid worker address" }),
|
|
31
|
-
payment: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount"),
|
|
32
|
-
deadline: z.number().int().positive(),
|
|
33
|
-
descriptionHash: z.string().min(1).max(100),
|
|
34
|
-
});
|
|
35
|
-
export function registerCollectiveTools(server) {
|
|
36
|
-
// ──────────────────────────────────────────────────────────────
|
|
37
|
-
// create_collective
|
|
38
|
-
// ──────────────────────────────────────────────────────────────
|
|
39
|
-
server.registerTool("corven_create_collective", {
|
|
40
|
-
title: "Create Agent Collective",
|
|
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.",
|
|
48
|
-
inputSchema: {
|
|
49
|
-
minContribution: ethAmount,
|
|
50
|
-
maxMembers: z.number().describe("Maximum number of members (2-100)"),
|
|
51
|
-
initialContribution: ethAmount.optional(),
|
|
52
|
-
},
|
|
53
|
-
}, async ({ minContribution, maxMembers, initialContribution }) => {
|
|
54
|
-
try {
|
|
55
|
-
const validation = createCollectiveSchema.safeParse({ minContribution, maxMembers });
|
|
56
|
-
if (!validation.success) {
|
|
57
|
-
return formatError(new Error(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`));
|
|
58
|
-
}
|
|
59
|
-
const account = getAccount();
|
|
60
|
-
if (!account) {
|
|
61
|
-
return formatError(new Error("No private key configured"));
|
|
62
|
-
}
|
|
63
|
-
const minContributionWei = parseEther(minContribution);
|
|
64
|
-
const value = initialContribution
|
|
65
|
-
? parseEther(initialContribution)
|
|
66
|
-
: minContributionWei; // Default to minContribution
|
|
67
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "createCollective", [minContributionWei, BigInt(maxMembers)], value);
|
|
68
|
-
return formatTxResult(result);
|
|
69
|
-
}
|
|
70
|
-
catch (e) {
|
|
71
|
-
const parsed = parseContractError(e);
|
|
72
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
// ──────────────────────────────────────────────────────────────
|
|
76
|
-
// join_collective
|
|
77
|
-
// ──────────────────────────────────────────────────────────────
|
|
78
|
-
server.registerTool("corven_join_collective", {
|
|
79
|
-
title: "Join Collective",
|
|
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.",
|
|
87
|
-
inputSchema: {
|
|
88
|
-
collectiveId: z.number().describe("Numeric collective ID to join"),
|
|
89
|
-
contribution: ethAmount,
|
|
90
|
-
},
|
|
91
|
-
}, async ({ collectiveId, contribution }) => {
|
|
92
|
-
try {
|
|
93
|
-
const validation = joinCollectiveSchema.safeParse({ collectiveId, contribution });
|
|
94
|
-
if (!validation.success) {
|
|
95
|
-
return formatError(new Error(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`));
|
|
96
|
-
}
|
|
97
|
-
const account = getAccount();
|
|
98
|
-
if (!account) {
|
|
99
|
-
return formatError(new Error("No private key configured"));
|
|
100
|
-
}
|
|
101
|
-
const contributionWei = parseEther(contribution);
|
|
102
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "joinCollective", [BigInt(collectiveId)], contributionWei);
|
|
103
|
-
return formatTxResult(result);
|
|
104
|
-
}
|
|
105
|
-
catch (e) {
|
|
106
|
-
const parsed = parseContractError(e);
|
|
107
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
// ──────────────────────────────────────────────────────────────
|
|
111
|
-
// launch_collective_task
|
|
112
|
-
// ──────────────────────────────────────────────────────────────
|
|
113
|
-
server.registerTool("corven_launch_collective_task", {
|
|
114
|
-
title: "Launch Collective Task",
|
|
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.",
|
|
122
|
-
inputSchema: {
|
|
123
|
-
collectiveId: z.number().describe("Numeric collective ID"),
|
|
124
|
-
workerAddress: ethAddress,
|
|
125
|
-
payment: ethAmount,
|
|
126
|
-
deadline: unixDeadline,
|
|
127
|
-
descriptionHash: ipfsCid,
|
|
128
|
-
},
|
|
129
|
-
}, async ({ collectiveId, workerAddress, payment, deadline, descriptionHash }) => {
|
|
130
|
-
try {
|
|
131
|
-
const validation = launchTaskSchema.safeParse({ collectiveId, workerAddress, payment, deadline, descriptionHash });
|
|
132
|
-
if (!validation.success) {
|
|
133
|
-
return formatError(new Error(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`));
|
|
134
|
-
}
|
|
135
|
-
const account = getAccount();
|
|
136
|
-
if (!account) {
|
|
137
|
-
return formatError(new Error("No private key configured"));
|
|
138
|
-
}
|
|
139
|
-
const paymentWei = parseEther(payment);
|
|
140
|
-
const descriptionHashBytes32 = stringToBytes32(descriptionHash);
|
|
141
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "launchTask", [
|
|
142
|
-
BigInt(collectiveId),
|
|
143
|
-
workerAddress,
|
|
144
|
-
paymentWei,
|
|
145
|
-
BigInt(deadline),
|
|
146
|
-
descriptionHashBytes32,
|
|
147
|
-
]);
|
|
148
|
-
return formatTxResult(result);
|
|
149
|
-
}
|
|
150
|
-
catch (e) {
|
|
151
|
-
const parsed = parseContractError(e);
|
|
152
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
// ──────────────────────────────────────────────────────────────
|
|
156
|
-
// get_collective
|
|
157
|
-
// ──────────────────────────────────────────────────────────────
|
|
158
|
-
server.registerTool("corven_get_collective", {
|
|
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.",
|
|
167
|
-
inputSchema: {
|
|
168
|
-
collectiveId: z.number().optional().describe("Collective ID. Omit to get total count."),
|
|
169
|
-
},
|
|
170
|
-
}, async ({ collectiveId }) => {
|
|
171
|
-
try {
|
|
172
|
-
if (collectiveId === undefined) {
|
|
173
|
-
const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
|
|
174
|
-
return formatReadResult({ collectiveCount: Number(count) }, "Total Collectives");
|
|
175
|
-
}
|
|
176
|
-
const data = await readContract(CONTRACTS.AgentCollective, ABI, "getCollective", [BigInt(collectiveId)]);
|
|
177
|
-
const enriched = {
|
|
178
|
-
...data,
|
|
179
|
-
totalFundEth: formatEther(data.totalFund),
|
|
180
|
-
};
|
|
181
|
-
return formatReadResult(enriched, `Collective #${collectiveId}`);
|
|
182
|
-
}
|
|
183
|
-
catch (e) {
|
|
184
|
-
const parsed = parseContractError(e);
|
|
185
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
// get_collective_counter merged into get_collective
|
|
189
|
-
// ──────────────────────────────────────────────────────────────
|
|
190
|
-
// corven_submit_deliverable
|
|
191
|
-
// ──────────────────────────────────────────────────────────────
|
|
192
|
-
server.registerTool("corven_submit_deliverable", {
|
|
193
|
-
title: "Submit Collective Deliverable",
|
|
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.",
|
|
201
|
-
inputSchema: {
|
|
202
|
-
collectiveId: z.number().describe("Numeric collective ID"),
|
|
203
|
-
taskId: taskIdSchema,
|
|
204
|
-
encryptedDeliveryHashes: z.array(z.string()).describe("Array of encrypted delivery hashes (one per member, will be converted to bytes32)"),
|
|
205
|
-
},
|
|
206
|
-
}, async ({ collectiveId, taskId, encryptedDeliveryHashes }) => {
|
|
207
|
-
try {
|
|
208
|
-
const account = getAccount();
|
|
209
|
-
if (!account)
|
|
210
|
-
return formatError(new Error("No private key configured"));
|
|
211
|
-
const hashesBytes32 = stringsToBytes32(encryptedDeliveryHashes);
|
|
212
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "submitDeliverable", [BigInt(collectiveId), BigInt(taskId), hashesBytes32]);
|
|
213
|
-
return formatTxResult(result);
|
|
214
|
-
}
|
|
215
|
-
catch (e) {
|
|
216
|
-
const parsed = parseContractError(e);
|
|
217
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
// ──────────────────────────────────────────────────────────────
|
|
221
|
-
// corven_claim_deliverable
|
|
222
|
-
// ──────────────────────────────────────────────────────────────
|
|
223
|
-
server.registerTool("corven_claim_deliverable", {
|
|
224
|
-
title: "Claim Collective Deliverable",
|
|
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.",
|
|
232
|
-
inputSchema: {
|
|
233
|
-
collectiveId: z.number().describe("Collective ID"),
|
|
234
|
-
},
|
|
235
|
-
}, async ({ collectiveId }) => {
|
|
236
|
-
try {
|
|
237
|
-
const account = getAccount();
|
|
238
|
-
if (!account)
|
|
239
|
-
return formatError(new Error("No private key configured"));
|
|
240
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "claimDeliverable", [BigInt(collectiveId)]);
|
|
241
|
-
return formatTxResult(result);
|
|
242
|
-
}
|
|
243
|
-
catch (e) {
|
|
244
|
-
const parsed = parseContractError(e);
|
|
245
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
//# sourceMappingURL=collectives.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cross-chain.d.ts","sourceRoot":"","sources":["../../src/tools/cross-chain.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkG/D"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-Chain MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* corven_get_supported_chains — List all supported chains with deployment status
|
|
5
|
-
* corven_get_chain_config — Get contract addresses and config for a specific chain
|
|
6
|
-
*/
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
import { CHAIN_CONFIGS, ZERO_ADDRESS } from "../shared-types.js";
|
|
9
|
-
import { formatReadResult } from "../handlers/transactions.js";
|
|
10
|
-
export function registerCrossChainTools(server) {
|
|
11
|
-
// ──────────────────────────────────────────────────────────────
|
|
12
|
-
// corven_get_supported_chains
|
|
13
|
-
// ──────────────────────────────────────────────────────────────
|
|
14
|
-
server.registerTool("corven_get_supported_chains", {
|
|
15
|
-
title: "Get Supported Chains",
|
|
16
|
-
description: "Lists all chains where COVENANT can operate, with deployment status for each.\n" +
|
|
17
|
-
"USE WHEN: Checking which chains are available before deploying or bridging. Planning multi-chain rollout.\n" +
|
|
18
|
-
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
19
|
-
"RETURNS: Chain ID, name, deployment status (deployed/not deployed), block explorer URL for each chain.\n" +
|
|
20
|
-
"NOTE: Only Base Sepolia has live contracts. Other chains show placeholder addresses until deployment.",
|
|
21
|
-
inputSchema: {},
|
|
22
|
-
}, async () => {
|
|
23
|
-
const chains = Object.entries(CHAIN_CONFIGS).map(([chainId, config]) => {
|
|
24
|
-
const isDeployed = Object.values(config.addresses).some((addr) => addr !== ZERO_ADDRESS);
|
|
25
|
-
return {
|
|
26
|
-
chainId: Number(chainId),
|
|
27
|
-
name: config.name,
|
|
28
|
-
deployed: isDeployed,
|
|
29
|
-
explorerUrl: config.explorerUrl,
|
|
30
|
-
contractCount: Object.values(config.addresses).filter((addr) => addr !== ZERO_ADDRESS).length,
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
return formatReadResult({ totalChains: chains.length, chains }, "Supported Chains");
|
|
34
|
-
});
|
|
35
|
-
// ──────────────────────────────────────────────────────────────
|
|
36
|
-
// corven_get_chain_config
|
|
37
|
-
// ──────────────────────────────────────────────────────────────
|
|
38
|
-
server.registerTool("corven_get_chain_config", {
|
|
39
|
-
title: "Get Chain Config",
|
|
40
|
-
description: "Returns the full contract address set and RPC details for a specific chain.\n" +
|
|
41
|
-
"USE WHEN: Configuring a client/SDK to connect to a specific chain. Looking up deployed contract addresses.\n" +
|
|
42
|
-
"REQUIRES: A valid chain ID (84532, 8453, 137, or 42161).\n" +
|
|
43
|
-
"RETURNS: Chain name, all contract addresses, RPC URL, and block explorer URL.\n" +
|
|
44
|
-
"NOTE: Addresses are all zero for chains where COVENANT is not yet deployed.",
|
|
45
|
-
inputSchema: {
|
|
46
|
-
chainId: z
|
|
47
|
-
.number()
|
|
48
|
-
.describe("The chain ID to query. Supported: 84532 (Base Sepolia), 8453 (Base Mainnet), 137 (Polygon), 42161 (Arbitrum One)."),
|
|
49
|
-
},
|
|
50
|
-
}, async ({ chainId }) => {
|
|
51
|
-
const config = CHAIN_CONFIGS[chainId];
|
|
52
|
-
if (!config) {
|
|
53
|
-
return {
|
|
54
|
-
content: [
|
|
55
|
-
{
|
|
56
|
-
type: "text",
|
|
57
|
-
text: JSON.stringify({
|
|
58
|
-
error: `Chain ID ${chainId} is not supported.`,
|
|
59
|
-
supportedChainIds: Object.keys(CHAIN_CONFIGS).map(Number),
|
|
60
|
-
}, null, 2),
|
|
61
|
-
},
|
|
62
|
-
],
|
|
63
|
-
isError: true,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
const isDeployed = Object.values(config.addresses).some((addr) => addr !== ZERO_ADDRESS);
|
|
67
|
-
return formatReadResult({
|
|
68
|
-
chainId,
|
|
69
|
-
name: config.name,
|
|
70
|
-
deployed: isDeployed,
|
|
71
|
-
rpcUrl: config.rpcUrl,
|
|
72
|
-
explorerUrl: config.explorerUrl,
|
|
73
|
-
addresses: config.addresses,
|
|
74
|
-
}, `Chain Config: ${config.name}`);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=cross-chain.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cross-chain.js","sourceRoot":"","sources":["../../src/tools/cross-chain.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/escrow.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../src/tools/escrow.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0CzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+sB3D"}
|