@varun-ai07/covenant-mcp 1.2.2 → 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.
Files changed (165) hide show
  1. package/README.md +128 -12
  2. package/dist/abis/MultiTokenEscrow.json +836 -0
  3. package/dist/abis/v2/AgentRegistry.json +872 -0
  4. package/dist/abis/v2/DisputeResolution.json +493 -0
  5. package/dist/abis/v2/InsurancePool.json +645 -0
  6. package/dist/abis/v2/ReceiptVerifier.json +394 -0
  7. package/dist/abis/v2/RevisionManager.json +544 -0
  8. package/dist/abis/v2/TaskEscrow.json +1018 -0
  9. package/dist/cli.js +0 -0
  10. package/dist/config.d.ts +13 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +84 -25
  13. package/dist/config.js.map +1 -1
  14. package/dist/handlers/wallet.d.ts.map +1 -1
  15. package/dist/handlers/wallet.js +1 -1
  16. package/dist/handlers/wallet.js.map +1 -1
  17. package/dist/lib/did.d.ts +72 -0
  18. package/dist/lib/did.d.ts.map +1 -0
  19. package/dist/lib/did.js +115 -0
  20. package/dist/lib/did.js.map +1 -0
  21. package/dist/lib/events.d.ts.map +1 -1
  22. package/dist/lib/events.js +2 -2
  23. package/dist/lib/events.js.map +1 -1
  24. package/dist/lib/formatResponse.d.ts +33 -0
  25. package/dist/lib/formatResponse.d.ts.map +1 -0
  26. package/dist/lib/formatResponse.js +92 -0
  27. package/dist/lib/formatResponse.js.map +1 -0
  28. package/dist/lib/schemaHelpers.d.ts +11 -0
  29. package/dist/lib/schemaHelpers.d.ts.map +1 -0
  30. package/dist/lib/schemaHelpers.js +11 -0
  31. package/dist/lib/schemaHelpers.js.map +1 -0
  32. package/dist/lib/store.d.ts +10 -0
  33. package/dist/lib/store.d.ts.map +1 -0
  34. package/dist/lib/store.js +39 -0
  35. package/dist/lib/store.js.map +1 -0
  36. package/dist/lib/verify.d.ts +21 -0
  37. package/dist/lib/verify.d.ts.map +1 -0
  38. package/dist/lib/verify.js +568 -0
  39. package/dist/lib/verify.js.map +1 -0
  40. package/dist/schemas.d.ts +5 -5
  41. package/dist/schemas.d.ts.map +1 -1
  42. package/dist/server.d.ts +1 -25
  43. package/dist/server.d.ts.map +1 -1
  44. package/dist/server.js +53 -37
  45. package/dist/server.js.map +1 -1
  46. package/dist/tools/account-abstraction.d.ts +3 -0
  47. package/dist/tools/account-abstraction.d.ts.map +1 -0
  48. package/dist/tools/account-abstraction.js +364 -0
  49. package/dist/tools/account-abstraction.js.map +1 -0
  50. package/dist/tools/batches.d.ts.map +1 -1
  51. package/dist/tools/batches.js +68 -37
  52. package/dist/tools/batches.js.map +1 -1
  53. package/dist/tools/bounties.d.ts +3 -0
  54. package/dist/tools/bounties.d.ts.map +1 -0
  55. package/dist/tools/bounties.js +304 -0
  56. package/dist/tools/bounties.js.map +1 -0
  57. package/dist/tools/bridge.d.ts +3 -0
  58. package/dist/tools/bridge.d.ts.map +1 -0
  59. package/dist/tools/bridge.js +190 -0
  60. package/dist/tools/bridge.js.map +1 -0
  61. package/dist/tools/collectives.d.ts.map +1 -1
  62. package/dist/tools/collectives.js +75 -48
  63. package/dist/tools/collectives.js.map +1 -1
  64. package/dist/tools/covenant-help.d.ts +3 -0
  65. package/dist/tools/covenant-help.d.ts.map +1 -0
  66. package/dist/tools/covenant-help.js +321 -0
  67. package/dist/tools/covenant-help.js.map +1 -0
  68. package/dist/tools/cross-chain.d.ts +3 -0
  69. package/dist/tools/cross-chain.d.ts.map +1 -0
  70. package/dist/tools/cross-chain.js +77 -0
  71. package/dist/tools/cross-chain.js.map +1 -0
  72. package/dist/tools/disputes.d.ts.map +1 -1
  73. package/dist/tools/disputes.js +39 -33
  74. package/dist/tools/disputes.js.map +1 -1
  75. package/dist/tools/escrow.d.ts.map +1 -1
  76. package/dist/tools/escrow.js +277 -202
  77. package/dist/tools/escrow.js.map +1 -1
  78. package/dist/tools/fiat-onramp.d.ts +3 -0
  79. package/dist/tools/fiat-onramp.d.ts.map +1 -0
  80. package/dist/tools/fiat-onramp.js +108 -0
  81. package/dist/tools/fiat-onramp.js.map +1 -0
  82. package/dist/tools/governance.d.ts +3 -0
  83. package/dist/tools/governance.d.ts.map +1 -0
  84. package/dist/tools/governance.js +271 -0
  85. package/dist/tools/governance.js.map +1 -0
  86. package/dist/tools/grants.d.ts +3 -0
  87. package/dist/tools/grants.d.ts.map +1 -0
  88. package/dist/tools/grants.js +269 -0
  89. package/dist/tools/grants.js.map +1 -0
  90. package/dist/tools/insurance.d.ts.map +1 -1
  91. package/dist/tools/insurance.js +92 -45
  92. package/dist/tools/insurance.js.map +1 -1
  93. package/dist/tools/market.d.ts.map +1 -1
  94. package/dist/tools/market.js +122 -103
  95. package/dist/tools/market.js.map +1 -1
  96. package/dist/tools/matching.d.ts +3 -0
  97. package/dist/tools/matching.d.ts.map +1 -0
  98. package/dist/tools/matching.js +233 -0
  99. package/dist/tools/matching.js.map +1 -0
  100. package/dist/tools/messaging.d.ts +3 -0
  101. package/dist/tools/messaging.d.ts.map +1 -0
  102. package/dist/tools/messaging.js +159 -0
  103. package/dist/tools/messaging.js.map +1 -0
  104. package/dist/tools/multi-token.d.ts +3 -0
  105. package/dist/tools/multi-token.d.ts.map +1 -0
  106. package/dist/tools/multi-token.js +274 -0
  107. package/dist/tools/multi-token.js.map +1 -0
  108. package/dist/tools/offchain-coordinator.d.ts +3 -0
  109. package/dist/tools/offchain-coordinator.d.ts.map +1 -0
  110. package/dist/tools/offchain-coordinator.js +436 -0
  111. package/dist/tools/offchain-coordinator.js.map +1 -0
  112. package/dist/tools/protocol.d.ts.map +1 -1
  113. package/dist/tools/protocol.js +19 -6
  114. package/dist/tools/protocol.js.map +1 -1
  115. package/dist/tools/receipts.d.ts.map +1 -1
  116. package/dist/tools/receipts.js +45 -22
  117. package/dist/tools/receipts.js.map +1 -1
  118. package/dist/tools/registry.d.ts.map +1 -1
  119. package/dist/tools/registry.js +90 -43
  120. package/dist/tools/registry.js.map +1 -1
  121. package/dist/tools/reputation-vc.d.ts +3 -0
  122. package/dist/tools/reputation-vc.d.ts.map +1 -0
  123. package/dist/tools/reputation-vc.js +438 -0
  124. package/dist/tools/reputation-vc.js.map +1 -0
  125. package/dist/tools/revisions.d.ts +3 -0
  126. package/dist/tools/revisions.d.ts.map +1 -0
  127. package/dist/tools/revisions.js +108 -0
  128. package/dist/tools/revisions.js.map +1 -0
  129. package/dist/tools/router.d.ts +3 -0
  130. package/dist/tools/router.d.ts.map +1 -0
  131. package/dist/tools/router.js +104 -0
  132. package/dist/tools/router.js.map +1 -0
  133. package/dist/tools/streaming.d.ts +3 -0
  134. package/dist/tools/streaming.d.ts.map +1 -0
  135. package/dist/tools/streaming.js +350 -0
  136. package/dist/tools/streaming.js.map +1 -0
  137. package/dist/tools/templates.d.ts +3 -0
  138. package/dist/tools/templates.d.ts.map +1 -0
  139. package/dist/tools/templates.js +392 -0
  140. package/dist/tools/templates.js.map +1 -0
  141. package/dist/tools/training.d.ts +3 -0
  142. package/dist/tools/training.d.ts.map +1 -0
  143. package/dist/tools/training.js +304 -0
  144. package/dist/tools/training.js.map +1 -0
  145. package/dist/tools/v2-settlement.d.ts +3 -0
  146. package/dist/tools/v2-settlement.d.ts.map +1 -0
  147. package/dist/tools/v2-settlement.js +226 -0
  148. package/dist/tools/v2-settlement.js.map +1 -0
  149. package/dist/tools/verification.d.ts +3 -0
  150. package/dist/tools/verification.d.ts.map +1 -0
  151. package/dist/tools/verification.js +215 -0
  152. package/dist/tools/verification.js.map +1 -0
  153. package/dist/tools/verify-deep.d.ts +3 -0
  154. package/dist/tools/verify-deep.d.ts.map +1 -0
  155. package/dist/tools/verify-deep.js +125 -0
  156. package/dist/tools/verify-deep.js.map +1 -0
  157. package/dist/types.d.ts +16 -3
  158. package/dist/types.d.ts.map +1 -1
  159. package/dist/types.js +4 -23
  160. package/dist/types.js.map +1 -1
  161. package/dist/utils.d.ts +2 -3
  162. package/dist/utils.d.ts.map +1 -1
  163. package/dist/utils.js +8 -34
  164. package/dist/utils.js.map +1 -1
  165. 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":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8P/D"}
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
- "Collectives can launch tasks and share proceeds. " +
41
- "You must send at least minContribution ETH as your initial stake.",
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: z.string().describe("Minimum contribution in ETH to join"),
49
+ minContribution: ethAmount,
44
50
  maxMembers: z.number().describe("Maximum number of members (2-100)"),
45
- initialContribution: z.string().optional().describe("Initial ETH contribution (defaults to minContribution)"),
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
- return formatError(e);
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
- "Contribution must meet the collective's minimum.",
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("Collective ID to join"),
77
- contribution: z.string().describe("Contribution amount in ETH"),
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
- return formatError(e);
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
- "Only collective members can call this.",
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("Collective ID"),
106
- workerAddress: z.string().describe("Worker address to assign"),
107
- payment: z.string().describe("Payment amount in ETH"),
108
- deadline: z.number().describe("Deadline timestamp (seconds)"),
109
- descriptionHash: z.string().describe("IPFS CID for task description"),
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,58 +148,59 @@ export function registerCollectiveTools(server) {
130
148
  return formatTxResult(result);
131
149
  }
132
150
  catch (e) {
133
- return formatError(e);
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 Details",
141
- description: "Retrieve details about a collective including members and treasury.",
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,
150
- minContributionEth: formatEther(data.minContribution),
151
- treasuryEth: formatEther(data.treasury),
179
+ totalFundEth: formatEther(data.totalFund),
152
180
  };
153
181
  return formatReadResult(enriched, `Collective #${collectiveId}`);
154
182
  }
155
183
  catch (e) {
156
- return formatError(e);
157
- }
158
- });
159
- // ──────────────────────────────────────────────────────────────
160
- // get_collective_counter
161
- // ──────────────────────────────────────────────────────────────
162
- server.registerTool("corven_get_collective_counter", {
163
- title: "Get Collective Counter",
164
- description: "Get the total number of collectives created.",
165
- inputSchema: {},
166
- }, async () => {
167
- try {
168
- const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
169
- return formatReadResult({ count: Number(count) }, "Collective Counter");
170
- }
171
- catch (e) {
172
- return formatError(e);
184
+ const parsed = parseContractError(e);
185
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
173
186
  }
174
187
  });
188
+ // get_collective_counter merged into get_collective
175
189
  // ──────────────────────────────────────────────────────────────
176
190
  // corven_submit_deliverable
177
191
  // ──────────────────────────────────────────────────────────────
178
192
  server.registerTool("corven_submit_deliverable", {
179
193
  title: "Submit Collective Deliverable",
180
- description: "Worker submits encrypted deliverables to a collective task. " +
181
- "Each member receives their own encrypted copy.",
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.",
182
201
  inputSchema: {
183
- collectiveId: z.number().describe("Collective ID"),
184
- taskId: z.number().describe("Task ID"),
202
+ collectiveId: z.number().describe("Numeric collective ID"),
203
+ taskId: taskIdSchema,
185
204
  encryptedDeliveryHashes: z.array(z.string()).describe("Array of encrypted delivery hashes (one per member, will be converted to bytes32)"),
186
205
  },
187
206
  }, async ({ collectiveId, taskId, encryptedDeliveryHashes }) => {
@@ -194,7 +213,8 @@ export function registerCollectiveTools(server) {
194
213
  return formatTxResult(result);
195
214
  }
196
215
  catch (e) {
197
- return formatError(e);
216
+ const parsed = parseContractError(e);
217
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
198
218
  }
199
219
  });
200
220
  // ──────────────────────────────────────────────────────────────
@@ -202,7 +222,13 @@ export function registerCollectiveTools(server) {
202
222
  // ──────────────────────────────────────────────────────────────
203
223
  server.registerTool("corven_claim_deliverable", {
204
224
  title: "Claim Collective Deliverable",
205
- 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.",
206
232
  inputSchema: {
207
233
  collectiveId: z.number().describe("Collective ID"),
208
234
  },
@@ -215,7 +241,8 @@ export function registerCollectiveTools(server) {
215
241
  return formatTxResult(result);
216
242
  }
217
243
  catch (e) {
218
- return formatError(e);
244
+ const parsed = parseContractError(e);
245
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
219
246
  }
220
247
  });
221
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerCovenantHelpTools(server: McpServer): void;
3
+ //# sourceMappingURL=covenant-help.d.ts.map
@@ -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"}