@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
@@ -12,6 +12,8 @@ import { parseEther, formatEther, isAddress } from "viem";
12
12
  import { loadAbi, CONTRACTS, getAccount } from "../config.js";
13
13
  import { executeOrPrepare, readContract } from "../handlers/wallet.js";
14
14
  import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
15
+ import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
16
+ import { ethAddress, ethAmount, ipfsCid, unixDeadline } from "../lib/schemaHelpers.js";
15
17
  import { stringToBytes32, stringsToBytes32 } from "../utils.js";
16
18
  const ABI = loadAbi("ParallelTaskBatch");
17
19
  // Batch status enum
@@ -38,14 +40,19 @@ export function registerBatchTools(server) {
38
40
  // ──────────────────────────────────────────────────────────────
39
41
  server.registerTool("corven_create_batch", {
40
42
  title: "Create Parallel Task Batch",
41
- description: "Create a batch of tasks for multiple workers to execute in parallel. " +
42
- "All arrays must have the same length. Total ETH sent = sum of payments.",
43
+ description: "Create a batch of tasks for multiple workers to execute in parallel. All arrays must have the same length. Total ETH sent = sum of payments.\n" +
44
+ "USE WHEN: You have a large task that can be split across multiple workers for parallel execution.\n" +
45
+ "REQUIRES: All workers must be registered agents. Your wallet must have enough ETH for the sum of all payments plus gas.\n" +
46
+ "RETURNS: Transaction hash. The batch ID and individual task IDs are emitted in the event logs.\n" +
47
+ "COMES AFTER: corven_find_workers to identify available workers for the task.\n" +
48
+ "COMES BEFORE: corven_check_batch_submitted (poll for completion), corven_aggregate_results (finalize when all done).\n" +
49
+ "NOTE: All arrays (workers, payments, deadlines, descriptionHashes) must be the same length. Max 50 workers per batch.",
43
50
  inputSchema: {
44
- workers: z.array(z.string()).describe("Array of worker addresses"),
45
- payments: z.array(z.string()).describe("Array of payment amounts in ETH (one per worker)"),
46
- deadlines: z.array(z.number()).describe("Array of deadline timestamps (seconds)"),
47
- descriptionHashes: z.array(z.string()).describe("Array of IPFS CIDs for task descriptions"),
48
- aggregationSpec: z.string().describe("IPFS CID for aggregation specification"),
51
+ workers: z.array(ethAddress).describe("Array of worker addresses"),
52
+ payments: z.array(ethAmount).describe("Array of payment amounts in ETH (one per worker)"),
53
+ deadlines: z.array(unixDeadline).describe("Array of deadline timestamps (seconds)"),
54
+ descriptionHashes: z.array(ipfsCid).describe("Array of IPFS CIDs for task descriptions"),
55
+ aggregationSpec: ipfsCid.describe("IPFS CID for aggregation specification"),
49
56
  },
50
57
  }, async ({ workers, payments, deadlines, descriptionHashes, aggregationSpec }) => {
51
58
  try {
@@ -73,20 +80,31 @@ export function registerBatchTools(server) {
73
80
  return formatTxResult(result);
74
81
  }
75
82
  catch (e) {
76
- return formatError(e);
83
+ const parsed = parseContractError(e);
84
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
77
85
  }
78
86
  });
79
87
  // ──────────────────────────────────────────────────────────────
80
88
  // get_batch
81
89
  // ──────────────────────────────────────────────────────────────
82
90
  server.registerTool("corven_get_batch", {
83
- title: "Get Batch Details",
84
- description: "Retrieve full details of a task batch including all task IDs.",
91
+ title: "Get Batch",
92
+ description: "Get batch details by ID, or total batch count if no ID provided.\n" +
93
+ "USE WHEN: You need to inspect a batch's tasks, budget, status, or aggregation spec.\n" +
94
+ "REQUIRES: The batch must exist on-chain.\n" +
95
+ "RETURNS: Batch details including client, total budget, task IDs, aggregation spec, status, and creation time. If no ID provided, returns total batch count.\n" +
96
+ "COMES AFTER: corven_create_batch created the batch.\n" +
97
+ "COMES BEFORE: corven_get_batch_status (check progress), corven_aggregate_results (finalize).\n" +
98
+ "NOTE: Omit batchId to get the total number of batches.",
85
99
  inputSchema: {
86
- batchId: z.number().describe("Numeric batch ID"),
100
+ batchId: z.number().optional().describe("Batch ID. Omit to get total batch count."),
87
101
  },
88
102
  }, async ({ batchId }) => {
89
103
  try {
104
+ if (batchId === undefined) {
105
+ const count = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "batchCounter", []);
106
+ return formatReadResult({ batchCount: Number(count) }, "Total Batches");
107
+ }
90
108
  const data = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "getBatchDetails", [BigInt(batchId)]);
91
109
  const enriched = {
92
110
  client: data.client,
@@ -99,7 +117,8 @@ export function registerBatchTools(server) {
99
117
  return formatReadResult(enriched, `Batch #${batchId}`);
100
118
  }
101
119
  catch (e) {
102
- return formatError(e);
120
+ const parsed = parseContractError(e);
121
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
103
122
  }
104
123
  });
105
124
  // ──────────────────────────────────────────────────────────────
@@ -107,7 +126,13 @@ export function registerBatchTools(server) {
107
126
  // ──────────────────────────────────────────────────────────────
108
127
  server.registerTool("corven_get_batch_status", {
109
128
  title: "Get Batch Status",
110
- description: "Get the current status of a batch (Pending/InProgress/Aggregated/etc).",
129
+ description: "Get the current status of a batch (Pending/InProgress/Aggregated/etc).\n" +
130
+ "USE WHEN: You need to check whether a batch's tasks are all completed and ready for aggregation.\n" +
131
+ "REQUIRES: The batch must exist on-chain.\n" +
132
+ "RETURNS: Batch status as a numeric code and human-readable label (Pending, InProgress, Aggregated, Completed, Failed).\n" +
133
+ "COMES AFTER: corven_create_batch created the batch.\n" +
134
+ "COMES BEFORE: corven_aggregate_results (when status shows all tasks are done).\n" +
135
+ "NOTE: Status 2 (Aggregated) means all tasks completed and results were finalized.",
111
136
  inputSchema: {
112
137
  batchId: z.number().describe("Numeric batch ID"),
113
138
  },
@@ -122,7 +147,8 @@ export function registerBatchTools(server) {
122
147
  return formatReadResult(result, `Batch #${batchId} Status`);
123
148
  }
124
149
  catch (e) {
125
- return formatError(e);
150
+ const parsed = parseContractError(e);
151
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
126
152
  }
127
153
  });
128
154
  // ──────────────────────────────────────────────────────────────
@@ -130,8 +156,13 @@ export function registerBatchTools(server) {
130
156
  // ──────────────────────────────────────────────────────────────
131
157
  server.registerTool("corven_aggregate_results", {
132
158
  title: "Aggregate Batch Results",
133
- description: "Finalize a batch by aggregating all completed task results. " +
134
- "Can only be called after all tasks in the batch are Submitted.",
159
+ description: "Finalize a batch by aggregating all completed task results. Can only be called after all tasks in the batch are Submitted.\n" +
160
+ "USE WHEN: All workers in the batch have submitted their deliverables and you want to finalize the batch.\n" +
161
+ "REQUIRES: All tasks in the batch must be in Submitted status. You must be the batch creator.\n" +
162
+ "RETURNS: Transaction hash. The aggregated result hash is stored on-chain.\n" +
163
+ "COMES AFTER: corven_check_batch_submitted confirmed all tasks are done.\n" +
164
+ "COMES BEFORE: corven_get_aggregated_result to retrieve the final combined result.\n" +
165
+ "NOTE: This releases payments to all workers in the batch.",
135
166
  inputSchema: {
136
167
  batchId: z.number().describe("Numeric batch ID"),
137
168
  },
@@ -145,31 +176,23 @@ export function registerBatchTools(server) {
145
176
  return formatTxResult(result);
146
177
  }
147
178
  catch (e) {
148
- return formatError(e);
149
- }
150
- });
151
- // ──────────────────────────────────────────────────────────────
152
- // get_batch_counter
153
- // ──────────────────────────────────────────────────────────────
154
- server.registerTool("corven_get_batch_counter", {
155
- title: "Get Batch Counter",
156
- description: "Get the total number of batches created on the protocol.",
157
- inputSchema: {},
158
- }, async () => {
159
- try {
160
- const count = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "batchCounter", []);
161
- return formatReadResult({ count: Number(count) }, "Batch Counter");
162
- }
163
- catch (e) {
164
- return formatError(e);
179
+ const parsed = parseContractError(e);
180
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
165
181
  }
166
182
  });
183
+ // get_batch_counter merged into get_batch (returns count when no batchId)
167
184
  // ──────────────────────────────────────────────────────────────
168
185
  // corven_check_batch_submitted
169
186
  // ──────────────────────────────────────────────────────────────
170
187
  server.registerTool("corven_check_batch_submitted", {
171
188
  title: "Check Batch All Submitted",
172
- description: "Check if all subtasks in a batch have been submitted.",
189
+ description: "Check if all subtasks in a batch have been submitted.\n" +
190
+ "USE WHEN: You want to know whether a batch is ready for result aggregation.\n" +
191
+ "REQUIRES: The batch must exist on-chain.\n" +
192
+ "RETURNS: Boolean indicating whether all tasks in the batch have been submitted.\n" +
193
+ "COMES AFTER: corven_create_batch created the batch and workers are executing tasks.\n" +
194
+ "COMES BEFORE: corven_aggregate_results (call when allSubmitted is true).\n" +
195
+ "NOTE: Poll this periodically or after workers report completion.",
173
196
  inputSchema: { batchId: z.number().describe("Batch ID") },
174
197
  }, async ({ batchId }) => {
175
198
  try {
@@ -177,7 +200,8 @@ export function registerBatchTools(server) {
177
200
  return formatReadResult({ batchId, allSubmitted }, `Batch #${batchId} submission status`);
178
201
  }
179
202
  catch (e) {
180
- return formatError(e);
203
+ const parsed = parseContractError(e);
204
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
181
205
  }
182
206
  });
183
207
  // ──────────────────────────────────────────────────────────────
@@ -185,7 +209,13 @@ export function registerBatchTools(server) {
185
209
  // ──────────────────────────────────────────────────────────────
186
210
  server.registerTool("corven_get_aggregated_result", {
187
211
  title: "Get Aggregated Result",
188
- description: "Get the aggregated result hash after a batch is finalized.",
212
+ description: "Get the aggregated result hash after a batch is finalized.\n" +
213
+ "USE WHEN: You need to retrieve the combined result of all tasks in a completed batch.\n" +
214
+ "REQUIRES: The batch must have been finalized via corven_aggregate_results.\n" +
215
+ "RETURNS: The aggregated result hash (bytes32) that represents the combined output of all batch tasks.\n" +
216
+ "COMES AFTER: corven_aggregate_results finalized the batch.\n" +
217
+ "COMES BEFORE: Use the result hash to verify or store the batch output.\n" +
218
+ "NOTE: Returns empty/zero hash if the batch has not been aggregated yet.",
189
219
  inputSchema: { batchId: z.number().describe("Batch ID") },
190
220
  }, async ({ batchId }) => {
191
221
  try {
@@ -193,7 +223,8 @@ export function registerBatchTools(server) {
193
223
  return formatReadResult({ batchId, aggregatedResult: result }, `Aggregated result for Batch #${batchId}`);
194
224
  }
195
225
  catch (e) {
196
- return formatError(e);
226
+ const parsed = parseContractError(e);
227
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
197
228
  }
198
229
  });
199
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batches.js","sourceRoot":"","sources":["../../src/tools/batches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batches.js","sourceRoot":"","sources":["../../src/tools/batches.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 registerBountyTools(server: McpServer): void;
3
+ //# sourceMappingURL=bounties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounties.d.ts","sourceRoot":"","sources":["../../src/tools/bounties.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwEzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqY3D"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Bounty Board MCP Tools (In-Memory MVP)
3
+ *
4
+ * post_bounty — Post a bounty (open challenge with ETH prize)
5
+ * claim_bounty — Worker claims a bounty by submitting work
6
+ * list_bounties — List open bounties with optional filters
7
+ * get_bounty — Get bounty details
8
+ * select_bounty_winner — Creator selects the winning submission
9
+ */
10
+ import { z } from "zod";
11
+ import { parseEther } from "viem";
12
+ import { getAccount } from "../config.js";
13
+ import { formatReadResult } from "../handlers/transactions.js";
14
+ import { formatSuccess, formatStructuredError, parseContractError } from "../lib/formatResponse.js";
15
+ import { loadStore, saveStore } from "../lib/store.js";
16
+ import { ethAddress, ethAmount, unixDeadline, ipfsCid } from "../lib/schemaHelpers.js";
17
+ const bountiesData = loadStore("bounties", { counter: 0, items: {} });
18
+ let bountyCounter = bountiesData.counter;
19
+ const bounties = new Map(Object.entries(bountiesData.items).map(([k, v]) => [
20
+ Number(k),
21
+ { ...v, submissions: new Map(Object.entries(v.submissions)) },
22
+ ]));
23
+ function persistBounties() {
24
+ const items = {};
25
+ bounties.forEach((v, k) => {
26
+ const subsObj = {};
27
+ v.submissions.forEach((val, key) => { subsObj[key] = val; });
28
+ items[k] = { ...v, submissions: subsObj };
29
+ });
30
+ saveStore("bounties", { counter: bountyCounter, items });
31
+ }
32
+ // ─── Validation Schemas ──────────────────────────────────────
33
+ const postBountySchema = z.object({
34
+ title: z.string().min(1).max(200),
35
+ description: z.string().min(1).max(2000),
36
+ reward: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount format")
37
+ .refine(val => {
38
+ const amount = parseFloat(val);
39
+ return amount >= 0.001 && amount <= 1000;
40
+ }, { message: "Reward must be between 0.001 and 1000 ETH" }),
41
+ deadline: z.number().int().positive()
42
+ .refine(val => {
43
+ const deadlineMs = val * 1000;
44
+ const now = Date.now();
45
+ const oneYear = now + (365 * 24 * 60 * 60 * 1000);
46
+ return deadlineMs > now && deadlineMs < oneYear;
47
+ }, { message: "Deadline must be a future timestamp within 1 year" }),
48
+ });
49
+ const claimBountySchema = z.object({
50
+ bountyId: z.number().int().nonnegative(),
51
+ deliverableHash: z.string().min(1).max(200),
52
+ });
53
+ // ─── Tool Registration ───────────────────────────────────────
54
+ export function registerBountyTools(server) {
55
+ // ──────────────────────────────────────────────────────────────
56
+ // corven_post_bounty
57
+ // ──────────────────────────────────────────────────────────────
58
+ server.registerTool("corven_post_bounty", {
59
+ title: "Post Bounty",
60
+ description: "Posts a bounty — an open challenge with an ETH prize that any worker can attempt.\n" +
61
+ "USE WHEN: You want to crowdsource solutions. You want the best submission rather than a specific worker.\n" +
62
+ "REQUIRES: Wallet configured via PRIVATE_KEY.\n" +
63
+ "RETURNS: Bounty ID, title, reward, deadline, status.\n" +
64
+ "COMES BEFORE: Workers call corven_claim_bounty to submit work. You call corven_select_bounty_winner.",
65
+ inputSchema: {
66
+ title: z.string().describe("Bounty title — short description of the challenge"),
67
+ description: z.string().describe("Full description of what the bounty requires"),
68
+ reward: ethAmount,
69
+ deadline: unixDeadline,
70
+ },
71
+ }, async ({ title, description, reward, deadline }) => {
72
+ try {
73
+ const validation = postBountySchema.safeParse({ title, description, reward, deadline });
74
+ if (!validation.success) {
75
+ return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
76
+ }
77
+ const account = getAccount();
78
+ if (!account) {
79
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
80
+ }
81
+ const id = bountyCounter++;
82
+ const bounty = {
83
+ id,
84
+ title,
85
+ description,
86
+ reward,
87
+ creator: account.address,
88
+ status: "open",
89
+ deadline,
90
+ submissions: new Map(),
91
+ createdAt: Math.floor(Date.now() / 1000),
92
+ };
93
+ bounties.set(id, bounty);
94
+ persistBounties();
95
+ return formatSuccess(`Bounty #${id} posted successfully.`, {
96
+ bountyId: id,
97
+ title,
98
+ reward: `${reward} ETH`,
99
+ deadline,
100
+ status: "open",
101
+ creator: account.address,
102
+ });
103
+ }
104
+ catch (e) {
105
+ const parsed = parseContractError(e);
106
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
107
+ }
108
+ });
109
+ // ──────────────────────────────────────────────────────────────
110
+ // corven_claim_bounty
111
+ // ──────────────────────────────────────────────────────────────
112
+ server.registerTool("corven_claim_bounty", {
113
+ title: "Claim Bounty",
114
+ description: "Submits work to claim a bounty. Each worker can only submit once per bounty.\n" +
115
+ "USE WHEN: You completed work for an open bounty and want to enter your submission.\n" +
116
+ "REQUIRES: Bounty must be open. You cannot submit twice to the same bounty.\n" +
117
+ "RETURNS: Confirmation with bounty ID, your address, and deliverable hash.\n" +
118
+ "COMES AFTER: corven_get_bounty or corven_list_bounties to find bounties.\n" +
119
+ "COMES BEFORE: Creator calls corven_select_bounty_winner to pick the winner.",
120
+ inputSchema: {
121
+ bountyId: z.number().describe("Bounty ID to claim"),
122
+ deliverableHash: ipfsCid,
123
+ },
124
+ }, async ({ bountyId, deliverableHash }) => {
125
+ try {
126
+ const validation = claimBountySchema.safeParse({ bountyId, deliverableHash });
127
+ if (!validation.success) {
128
+ return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
129
+ }
130
+ const account = getAccount();
131
+ if (!account) {
132
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
133
+ }
134
+ const bounty = bounties.get(bountyId);
135
+ if (!bounty) {
136
+ return formatStructuredError(`Bounty #${bountyId} not found.`, "No bounty exists with that ID.", "Call corven_list_bounties to see available bounties.", false);
137
+ }
138
+ if (bounty.status !== "open") {
139
+ return formatStructuredError(`Bounty #${bountyId} is not open (status: ${bounty.status}).`, "Only open bounties accept submissions.", "Call corven_list_bounties with status='open' to find active bounties.", false);
140
+ }
141
+ if (bounty.deadline < Math.floor(Date.now() / 1000)) {
142
+ return formatStructuredError(`Bounty #${bountyId} deadline has passed.`, "The submission deadline has elapsed.", "Check the deadline with corven_get_bounty before submitting.", false);
143
+ }
144
+ const workerAddr = account.address;
145
+ if (bounty.submissions.has(workerAddr)) {
146
+ return formatStructuredError(`You have already submitted to Bounty #${bountyId}.`, "Each worker can only submit once per bounty.", "Your existing submission is recorded. Wait for the creator to select a winner.", false);
147
+ }
148
+ bounty.submissions.set(workerAddr, {
149
+ worker: workerAddr,
150
+ deliverableHash,
151
+ submittedAt: Math.floor(Date.now() / 1000),
152
+ });
153
+ persistBounties();
154
+ return formatSuccess(`Submission recorded for Bounty #${bountyId}.`, {
155
+ bountyId,
156
+ worker: workerAddr,
157
+ deliverableHash,
158
+ totalSubmissions: bounty.submissions.size,
159
+ });
160
+ }
161
+ catch (e) {
162
+ const parsed = parseContractError(e);
163
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
164
+ }
165
+ });
166
+ // ──────────────────────────────────────────────────────────────
167
+ // corven_list_bounties
168
+ // ──────────────────────────────────────────────────────────────
169
+ server.registerTool("corven_list_bounties", {
170
+ title: "List Bounties",
171
+ description: "Lists all bounties with optional status and minimum reward filters.\n" +
172
+ "USE WHEN: Finding bounties to work on. Reviewing posted bounties. Checking bounty board activity.\n" +
173
+ "REQUIRES: Nothing. Free read-only call.\n" +
174
+ "RETURNS: Array of bounty summaries (id, title, reward, status, deadline, submission count).\n" +
175
+ "COMES BEFORE: corven_get_bounty for full details, corven_claim_bounty to submit work.",
176
+ inputSchema: {
177
+ status: z.enum(["open", "in_review", "completed", "cancelled"]).optional()
178
+ .describe("Filter by bounty status. Omit to return all."),
179
+ minReward: z.string().optional()
180
+ .describe('Minimum reward in ETH as decimal string, e.g. "0.01". Omit for no minimum.'),
181
+ },
182
+ }, async ({ status, minReward }) => {
183
+ try {
184
+ const minRewardWei = minReward ? parseEther(minReward) : 0n;
185
+ const results = [];
186
+ for (const bounty of bounties.values()) {
187
+ if (status && bounty.status !== status)
188
+ continue;
189
+ if (parseEther(bounty.reward) < minRewardWei)
190
+ continue;
191
+ results.push({
192
+ id: bounty.id,
193
+ title: bounty.title,
194
+ reward: `${bounty.reward} ETH`,
195
+ status: bounty.status,
196
+ deadline: bounty.deadline,
197
+ submissions: bounty.submissions.size,
198
+ creator: bounty.creator,
199
+ });
200
+ }
201
+ if (results.length === 0) {
202
+ return formatReadResult({ count: 0, bounties: [] }, "No bounties found matching the given filters.");
203
+ }
204
+ return formatReadResult({ count: results.length, bounties: results }, `Found ${results.length} bount${results.length === 1 ? "y" : "ies"}.`);
205
+ }
206
+ catch (e) {
207
+ const parsed = parseContractError(e);
208
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
209
+ }
210
+ });
211
+ // ──────────────────────────────────────────────────────────────
212
+ // corven_get_bounty
213
+ // ──────────────────────────────────────────────────────────────
214
+ server.registerTool("corven_get_bounty", {
215
+ title: "Get Bounty Details",
216
+ description: "Reads full details of a bounty including all submissions.\n" +
217
+ "USE WHEN: Checking a specific bounty before claiming. Reviewing submissions as a creator.\n" +
218
+ "REQUIRES: Nothing. Free read-only call.\n" +
219
+ "RETURNS: Full bounty details — title, description, reward, status, deadline, creator, all submissions, winner.\n" +
220
+ "COMES AFTER: corven_list_bounties found the bounty ID.\n" +
221
+ "COMES BEFORE: corven_claim_bounty (for workers) or corven_select_bounty_winner (for creator).",
222
+ inputSchema: {
223
+ bountyId: z.number().describe("Bounty ID to look up"),
224
+ },
225
+ }, async ({ bountyId }) => {
226
+ try {
227
+ const bounty = bounties.get(bountyId);
228
+ if (!bounty) {
229
+ return formatStructuredError(`Bounty #${bountyId} not found.`, "No bounty exists with that ID.", "Call corven_list_bounties to see available bounties.", false);
230
+ }
231
+ const submissionList = Array.from(bounty.submissions.values()).map(s => ({
232
+ worker: s.worker,
233
+ deliverableHash: s.deliverableHash,
234
+ submittedAt: s.submittedAt,
235
+ }));
236
+ return formatReadResult({
237
+ id: bounty.id,
238
+ title: bounty.title,
239
+ description: bounty.description,
240
+ reward: `${bounty.reward} ETH`,
241
+ creator: bounty.creator,
242
+ status: bounty.status,
243
+ deadline: bounty.deadline,
244
+ submissions: submissionList,
245
+ winner: bounty.winner ?? "none",
246
+ createdAt: bounty.createdAt,
247
+ }, `Bounty #${bountyId}`);
248
+ }
249
+ catch (e) {
250
+ const parsed = parseContractError(e);
251
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
252
+ }
253
+ });
254
+ // ──────────────────────────────────────────────────────────────
255
+ // corven_select_bounty_winner
256
+ // ──────────────────────────────────────────────────────────────
257
+ server.registerTool("corven_select_bounty_winner", {
258
+ title: "Select Bounty Winner",
259
+ description: "The bounty creator selects the winning submission from the pool of claims.\n" +
260
+ "USE WHEN: You reviewed submissions (corven_get_bounty) and want to pick the best one.\n" +
261
+ "REQUIRES: You must be the bounty creator. Bounty must be open. The winner must have submitted.\n" +
262
+ "RETURNS: Bounty ID, winner address, final status.\n" +
263
+ "COMES AFTER: Workers called corven_claim_bounty. Creator reviewed via corven_get_bounty.\n" +
264
+ "NOTE: This marks the bounty as completed. In the full on-chain version this would release escrowed ETH.",
265
+ inputSchema: {
266
+ bountyId: z.number().describe("Bounty ID"),
267
+ winnerAddress: ethAddress,
268
+ },
269
+ }, async ({ bountyId, winnerAddress }) => {
270
+ try {
271
+ const account = getAccount();
272
+ if (!account) {
273
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
274
+ }
275
+ const bounty = bounties.get(bountyId);
276
+ if (!bounty) {
277
+ return formatStructuredError(`Bounty #${bountyId} not found.`, "No bounty exists with that ID.", "Call corven_list_bounties to see available bounties.", false);
278
+ }
279
+ if (bounty.creator.toLowerCase() !== account.address.toLowerCase()) {
280
+ return formatStructuredError("Only the bounty creator can select a winner.", `This bounty was created by ${bounty.creator}, not ${account.address}.`, "Use the wallet that called corven_post_bounty.", false);
281
+ }
282
+ if (bounty.status !== "open") {
283
+ return formatStructuredError(`Bounty #${bountyId} is not open (status: ${bounty.status}).`, "Can only select a winner for open bounties.", "Check bounty status with corven_get_bounty.", false);
284
+ }
285
+ if (!bounty.submissions.has(winnerAddress)) {
286
+ return formatStructuredError(`Address ${winnerAddress} has not submitted to Bounty #${bountyId}.`, "The winner must have called corven_claim_bounty first.", "Check submissions with corven_get_bounty.", false);
287
+ }
288
+ bounty.winner = winnerAddress;
289
+ bounty.status = "completed";
290
+ persistBounties();
291
+ return formatSuccess(`Winner selected for Bounty #${bountyId}.`, {
292
+ bountyId,
293
+ winner: winnerAddress,
294
+ reward: `${bounty.reward} ETH`,
295
+ status: "completed",
296
+ });
297
+ }
298
+ catch (e) {
299
+ const parsed = parseContractError(e);
300
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
301
+ }
302
+ });
303
+ }
304
+ //# sourceMappingURL=bounties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounties.js","sourceRoot":"","sources":["../../src/tools/bounties.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 registerBridgeTools(server: McpServer): void;
3
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/tools/bridge.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2DzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0K3D"}