@varun-ai07/covenant-mcp 1.2.3 → 1.3.2

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 (159) hide show
  1. package/README.md +1056 -170
  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/lib/did.d.ts +72 -0
  15. package/dist/lib/did.d.ts.map +1 -0
  16. package/dist/lib/did.js +115 -0
  17. package/dist/lib/did.js.map +1 -0
  18. package/dist/lib/formatResponse.d.ts +33 -0
  19. package/dist/lib/formatResponse.d.ts.map +1 -0
  20. package/dist/lib/formatResponse.js +92 -0
  21. package/dist/lib/formatResponse.js.map +1 -0
  22. package/dist/lib/schemaHelpers.d.ts +11 -0
  23. package/dist/lib/schemaHelpers.d.ts.map +1 -0
  24. package/dist/lib/schemaHelpers.js +11 -0
  25. package/dist/lib/schemaHelpers.js.map +1 -0
  26. package/dist/lib/store.d.ts +10 -0
  27. package/dist/lib/store.d.ts.map +1 -0
  28. package/dist/lib/store.js +39 -0
  29. package/dist/lib/store.js.map +1 -0
  30. package/dist/lib/verify.d.ts +21 -0
  31. package/dist/lib/verify.d.ts.map +1 -0
  32. package/dist/lib/verify.js +568 -0
  33. package/dist/lib/verify.js.map +1 -0
  34. package/dist/schemas.d.ts +5 -5
  35. package/dist/schemas.d.ts.map +1 -1
  36. package/dist/server.d.ts +1 -25
  37. package/dist/server.d.ts.map +1 -1
  38. package/dist/server.js +53 -37
  39. package/dist/server.js.map +1 -1
  40. package/dist/shared-types.d.ts +67 -0
  41. package/dist/shared-types.d.ts.map +1 -0
  42. package/dist/shared-types.js +86 -0
  43. package/dist/shared-types.js.map +1 -0
  44. package/dist/tools/account-abstraction.d.ts +3 -0
  45. package/dist/tools/account-abstraction.d.ts.map +1 -0
  46. package/dist/tools/account-abstraction.js +364 -0
  47. package/dist/tools/account-abstraction.js.map +1 -0
  48. package/dist/tools/batches.d.ts.map +1 -1
  49. package/dist/tools/batches.js +68 -37
  50. package/dist/tools/batches.js.map +1 -1
  51. package/dist/tools/bounties.d.ts +3 -0
  52. package/dist/tools/bounties.d.ts.map +1 -0
  53. package/dist/tools/bounties.js +304 -0
  54. package/dist/tools/bounties.js.map +1 -0
  55. package/dist/tools/bridge.d.ts +3 -0
  56. package/dist/tools/bridge.d.ts.map +1 -0
  57. package/dist/tools/bridge.js +190 -0
  58. package/dist/tools/bridge.js.map +1 -0
  59. package/dist/tools/collectives.d.ts.map +1 -1
  60. package/dist/tools/collectives.js +74 -46
  61. package/dist/tools/collectives.js.map +1 -1
  62. package/dist/tools/covenant-help.d.ts +3 -0
  63. package/dist/tools/covenant-help.d.ts.map +1 -0
  64. package/dist/tools/covenant-help.js +321 -0
  65. package/dist/tools/covenant-help.js.map +1 -0
  66. package/dist/tools/cross-chain.d.ts +3 -0
  67. package/dist/tools/cross-chain.d.ts.map +1 -0
  68. package/dist/tools/cross-chain.js +77 -0
  69. package/dist/tools/cross-chain.js.map +1 -0
  70. package/dist/tools/disputes.d.ts.map +1 -1
  71. package/dist/tools/disputes.js +39 -33
  72. package/dist/tools/disputes.js.map +1 -1
  73. package/dist/tools/escrow.d.ts.map +1 -1
  74. package/dist/tools/escrow.js +248 -199
  75. package/dist/tools/escrow.js.map +1 -1
  76. package/dist/tools/fiat-onramp.d.ts +3 -0
  77. package/dist/tools/fiat-onramp.d.ts.map +1 -0
  78. package/dist/tools/fiat-onramp.js +108 -0
  79. package/dist/tools/fiat-onramp.js.map +1 -0
  80. package/dist/tools/governance.d.ts +3 -0
  81. package/dist/tools/governance.d.ts.map +1 -0
  82. package/dist/tools/governance.js +271 -0
  83. package/dist/tools/governance.js.map +1 -0
  84. package/dist/tools/grants.d.ts +3 -0
  85. package/dist/tools/grants.d.ts.map +1 -0
  86. package/dist/tools/grants.js +269 -0
  87. package/dist/tools/grants.js.map +1 -0
  88. package/dist/tools/insurance.d.ts.map +1 -1
  89. package/dist/tools/insurance.js +92 -45
  90. package/dist/tools/insurance.js.map +1 -1
  91. package/dist/tools/market.d.ts.map +1 -1
  92. package/dist/tools/market.js +122 -103
  93. package/dist/tools/market.js.map +1 -1
  94. package/dist/tools/matching.d.ts +3 -0
  95. package/dist/tools/matching.d.ts.map +1 -0
  96. package/dist/tools/matching.js +233 -0
  97. package/dist/tools/matching.js.map +1 -0
  98. package/dist/tools/messaging.d.ts +3 -0
  99. package/dist/tools/messaging.d.ts.map +1 -0
  100. package/dist/tools/messaging.js +159 -0
  101. package/dist/tools/messaging.js.map +1 -0
  102. package/dist/tools/multi-token.d.ts +3 -0
  103. package/dist/tools/multi-token.d.ts.map +1 -0
  104. package/dist/tools/multi-token.js +274 -0
  105. package/dist/tools/multi-token.js.map +1 -0
  106. package/dist/tools/offchain-coordinator.d.ts +3 -0
  107. package/dist/tools/offchain-coordinator.d.ts.map +1 -0
  108. package/dist/tools/offchain-coordinator.js +436 -0
  109. package/dist/tools/offchain-coordinator.js.map +1 -0
  110. package/dist/tools/protocol.d.ts.map +1 -1
  111. package/dist/tools/protocol.js +19 -6
  112. package/dist/tools/protocol.js.map +1 -1
  113. package/dist/tools/receipts.d.ts.map +1 -1
  114. package/dist/tools/receipts.js +39 -39
  115. package/dist/tools/receipts.js.map +1 -1
  116. package/dist/tools/registry.d.ts.map +1 -1
  117. package/dist/tools/registry.js +90 -43
  118. package/dist/tools/registry.js.map +1 -1
  119. package/dist/tools/reputation-vc.d.ts +3 -0
  120. package/dist/tools/reputation-vc.d.ts.map +1 -0
  121. package/dist/tools/reputation-vc.js +438 -0
  122. package/dist/tools/reputation-vc.js.map +1 -0
  123. package/dist/tools/revisions.d.ts +3 -0
  124. package/dist/tools/revisions.d.ts.map +1 -0
  125. package/dist/tools/revisions.js +108 -0
  126. package/dist/tools/revisions.js.map +1 -0
  127. package/dist/tools/router.d.ts +3 -0
  128. package/dist/tools/router.d.ts.map +1 -0
  129. package/dist/tools/router.js +104 -0
  130. package/dist/tools/router.js.map +1 -0
  131. package/dist/tools/streaming.d.ts +3 -0
  132. package/dist/tools/streaming.d.ts.map +1 -0
  133. package/dist/tools/streaming.js +350 -0
  134. package/dist/tools/streaming.js.map +1 -0
  135. package/dist/tools/templates.d.ts +3 -0
  136. package/dist/tools/templates.d.ts.map +1 -0
  137. package/dist/tools/templates.js +392 -0
  138. package/dist/tools/templates.js.map +1 -0
  139. package/dist/tools/training.d.ts +3 -0
  140. package/dist/tools/training.d.ts.map +1 -0
  141. package/dist/tools/training.js +304 -0
  142. package/dist/tools/training.js.map +1 -0
  143. package/dist/tools/v2-settlement.d.ts +3 -0
  144. package/dist/tools/v2-settlement.d.ts.map +1 -0
  145. package/dist/tools/v2-settlement.js +226 -0
  146. package/dist/tools/v2-settlement.js.map +1 -0
  147. package/dist/tools/verification.d.ts +3 -0
  148. package/dist/tools/verification.d.ts.map +1 -0
  149. package/dist/tools/verification.js +215 -0
  150. package/dist/tools/verification.js.map +1 -0
  151. package/dist/tools/verify-deep.d.ts +3 -0
  152. package/dist/tools/verify-deep.d.ts.map +1 -0
  153. package/dist/tools/verify-deep.js +125 -0
  154. package/dist/tools/verify-deep.js.map +1 -0
  155. package/dist/types.d.ts +16 -3
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +4 -23
  158. package/dist/types.js.map +1 -1
  159. package/package.json +2 -1
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Training Marketplace MCP Tools
3
+ *
4
+ * Training program marketplace for agent capability development.
5
+ *
6
+ * create_training — Create a training program (course)
7
+ * enroll_training — Agent enrolls in a training program
8
+ * list_trainings — List available training programs
9
+ * get_training — Get training program details
10
+ * complete_training — Mark training as completed, update capabilities
11
+ */
12
+ import { z } from "zod";
13
+ import { getAccount } from "../config.js";
14
+ import { formatReadResult } from "../handlers/transactions.js";
15
+ import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
16
+ import { ethAmount } from "../lib/schemaHelpers.js";
17
+ import { loadStore, saveStore } from "../lib/store.js";
18
+ const data = loadStore("training", { counter: 0, items: {} });
19
+ let trainingCounter = data.counter;
20
+ const trainings = new Map(Object.entries(data.items).map(([k, v]) => [Number(k), v]));
21
+ function persist() {
22
+ const items = {};
23
+ trainings.forEach((v, k) => { items[String(k)] = v; });
24
+ saveStore("training", { counter: trainingCounter, items });
25
+ }
26
+ // ─── Registration ────────────────────────────────────────────
27
+ export function registerTrainingTools(server) {
28
+ // ──────────────────────────────────────────────────────────────
29
+ // corven_create_training
30
+ // ──────────────────────────────────────────────────────────────
31
+ server.registerTool("corven_create_training", {
32
+ title: "Create Training Program",
33
+ description: "Creates a training program (course) that other agents can enroll in to learn new capabilities.\n" +
34
+ "USE WHEN: You are an experienced agent and want to teach a skill to others. You want to earn fees from enrollment.\n" +
35
+ "REQUIRES: You must be a registered agent. Provide a title, description, price, capabilities taught, and duration.\n" +
36
+ "RETURNS: Training program ID, details, and enrollment instructions.\n" +
37
+ "COMES BEFORE: Agents call corven_enroll_training to join. Call corven_complete_training after they finish.",
38
+ inputSchema: {
39
+ title: z.string().min(3).max(200).describe("Training program title"),
40
+ description: z.string().min(10).max(2000).describe("Full description of what the training covers"),
41
+ price: ethAmount.describe("Enrollment fee in ETH per student"),
42
+ capabilities: z.array(z.string()).min(1).max(10).describe("Capabilities taught in this program"),
43
+ duration: z.number().int().positive().optional().default(10).describe("Number of tasks to complete for graduation (default: 10)"),
44
+ },
45
+ }, async ({ title, description, price, capabilities, duration }) => {
46
+ try {
47
+ const validation = z.object({
48
+ title: z.string().min(3).max(200),
49
+ description: z.string().min(10).max(2000),
50
+ price: z.string().regex(/^\d+\.?\d*$/).refine(v => parseFloat(v) > 0),
51
+ capabilities: z.array(z.string()).min(1).max(10),
52
+ duration: z.number().int().positive(),
53
+ }).safeParse({ title, description, price, capabilities, duration });
54
+ if (!validation.success) {
55
+ return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
56
+ }
57
+ const account = getAccount();
58
+ if (!account) {
59
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
60
+ }
61
+ const id = ++trainingCounter;
62
+ const program = {
63
+ id,
64
+ title,
65
+ description,
66
+ instructor: account.address,
67
+ price,
68
+ capabilities,
69
+ duration,
70
+ rating: 0,
71
+ graduates: 0,
72
+ enrolled: [],
73
+ completed: [],
74
+ createdAt: Math.floor(Date.now() / 1000),
75
+ };
76
+ trainings.set(id, program);
77
+ persist();
78
+ return {
79
+ content: [{
80
+ type: "text",
81
+ text: [
82
+ `Training program created.`,
83
+ "",
84
+ `ID: ${id}`,
85
+ `Title: ${title}`,
86
+ `Instructor: ${account.address}`,
87
+ `Price: ${price} ETH`,
88
+ `Capabilities: ${capabilities.join(", ")}`,
89
+ `Duration: ${duration} tasks`,
90
+ "",
91
+ `Share this ID with agents to let them enroll.`,
92
+ ].join("\n"),
93
+ }],
94
+ };
95
+ }
96
+ catch (e) {
97
+ const parsed = parseContractError(e);
98
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
99
+ }
100
+ });
101
+ // ──────────────────────────────────────────────────────────────
102
+ // corven_enroll_training
103
+ // ──────────────────────────────────────────────────────────────
104
+ server.registerTool("corven_enroll_training", {
105
+ title: "Enroll in Training Program",
106
+ description: "Enrolls the calling agent in a training program to learn new capabilities.\n" +
107
+ "USE WHEN: You want to learn a new skill from an experienced instructor. You found a training via corven_list_trainings.\n" +
108
+ "REQUIRES: You must be a registered agent. The training program must exist. You cannot enroll twice.\n" +
109
+ "RETURNS: Enrollment confirmation, training details, and next steps.\n" +
110
+ "COMES AFTER: corven_list_trainings or corven_get_training to find a program.\n" +
111
+ "COMES BEFORE: Complete tasks, then call corven_complete_training to graduate.",
112
+ inputSchema: {
113
+ trainingId: z.number().int().positive().describe("Training program ID to enroll in"),
114
+ },
115
+ }, async ({ trainingId }) => {
116
+ try {
117
+ const account = getAccount();
118
+ if (!account) {
119
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
120
+ }
121
+ const program = trainings.get(trainingId);
122
+ if (!program) {
123
+ return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
124
+ }
125
+ if (program.enrolled.includes(account.address)) {
126
+ return formatStructuredError("Already enrolled.", `You are already enrolled in "${program.title}".`, "Complete the required tasks and call corven_complete_training.", false);
127
+ }
128
+ if (program.completed.includes(account.address)) {
129
+ return formatStructuredError("Already graduated.", `You already completed "${program.title}".`, "You have the capabilities from this training.", false);
130
+ }
131
+ program.enrolled.push(account.address);
132
+ persist();
133
+ return {
134
+ content: [{
135
+ type: "text",
136
+ text: [
137
+ `Enrolled in "${program.title}".`,
138
+ "",
139
+ `Training ID: ${program.id}`,
140
+ `Instructor: ${program.instructor}`,
141
+ `Capabilities to learn: ${program.capabilities.join(", ")}`,
142
+ `Duration: ${program.duration} tasks`,
143
+ `Enrolled: ${program.enrolled.length} agents`,
144
+ "",
145
+ `Complete ${program.duration} tasks, then call corven_complete_training to graduate.`,
146
+ ].join("\n"),
147
+ }],
148
+ };
149
+ }
150
+ catch (e) {
151
+ const parsed = parseContractError(e);
152
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
153
+ }
154
+ });
155
+ // ──────────────────────────────────────────────────────────────
156
+ // corven_list_trainings
157
+ // ──────────────────────────────────────────────────────────────
158
+ server.registerTool("corven_list_trainings", {
159
+ title: "List Training Programs",
160
+ description: "Lists all available training programs with optional rating filter.\n" +
161
+ "USE WHEN: Browsing available courses. Looking for programs teaching specific capabilities. Comparing options.\n" +
162
+ "REQUIRES: Nothing. Free read-only call.\n" +
163
+ "RETURNS: Array of training programs with title, instructor, price, capabilities, rating, and enrollment counts.\n" +
164
+ "COMES BEFORE: corven_get_training for details. corven_enroll_training to join.",
165
+ inputSchema: {
166
+ minRating: z.number().min(0).max(5).optional().describe("Filter: minimum rating (0-5, default: show all)"),
167
+ },
168
+ }, async ({ minRating }) => {
169
+ try {
170
+ const programs = Array.from(trainings.values());
171
+ const filtered = minRating !== undefined
172
+ ? programs.filter(p => p.rating >= minRating * 100)
173
+ : programs;
174
+ if (filtered.length === 0) {
175
+ return {
176
+ content: [{
177
+ type: "text",
178
+ text: "No training programs found. Be the first to create one with corven_create_training.",
179
+ }],
180
+ };
181
+ }
182
+ const lines = [`Training Programs (${filtered.length}):`, ""];
183
+ for (const p of filtered) {
184
+ const ratingStr = p.rating > 0 ? `${(p.rating / 100).toFixed(1)}/5` : "No ratings";
185
+ lines.push([
186
+ `#${p.id} — ${p.title}`,
187
+ ` Instructor: ${p.instructor.slice(0, 6)}...${p.instructor.slice(-4)}`,
188
+ ` Price: ${p.price} ETH | Rating: ${ratingStr} | Graduates: ${p.graduates}`,
189
+ ` Capabilities: ${p.capabilities.join(", ")}`,
190
+ ` Duration: ${p.duration} tasks | Enrolled: ${p.enrolled.length}`,
191
+ "",
192
+ ].join("\n"));
193
+ }
194
+ return {
195
+ content: [{
196
+ type: "text",
197
+ text: lines.join("\n"),
198
+ }],
199
+ };
200
+ }
201
+ catch (e) {
202
+ const parsed = parseContractError(e);
203
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
204
+ }
205
+ });
206
+ // ──────────────────────────────────────────────────────────────
207
+ // corven_get_training
208
+ // ──────────────────────────────────────────────────────────────
209
+ server.registerTool("corven_get_training", {
210
+ title: "Get Training Program Details",
211
+ description: "Retrieves full details of a training program including enrolled and completed agents.\n" +
212
+ "USE WHEN: Evaluating a program before enrolling. Checking your own enrollment status. Viewing instructor info.\n" +
213
+ "REQUIRES: Nothing. Free read-only call.\n" +
214
+ "RETURNS: Full program details: title, description, instructor, price, capabilities, duration, rating, graduates, enrolled list, completed list.\n" +
215
+ "COMES AFTER: corven_list_trainings to find the training ID.\n" +
216
+ "COMES BEFORE: corven_enroll_training to join.",
217
+ inputSchema: {
218
+ trainingId: z.number().int().positive().describe("Training program ID"),
219
+ },
220
+ }, async ({ trainingId }) => {
221
+ try {
222
+ const program = trainings.get(trainingId);
223
+ if (!program) {
224
+ return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
225
+ }
226
+ const ratingStr = program.rating > 0 ? `${(program.rating / 100).toFixed(1)}/5` : "No ratings";
227
+ return formatReadResult({
228
+ id: program.id,
229
+ title: program.title,
230
+ description: program.description,
231
+ instructor: program.instructor,
232
+ priceEth: program.price,
233
+ capabilities: program.capabilities,
234
+ duration: program.duration,
235
+ rating: ratingStr,
236
+ graduates: program.graduates,
237
+ enrolledCount: program.enrolled.length,
238
+ completedCount: program.completed.length,
239
+ enrolled: program.enrolled,
240
+ completed: program.completed,
241
+ createdAt: program.createdAt,
242
+ }, `Training #${trainingId}`);
243
+ }
244
+ catch (e) {
245
+ const parsed = parseContractError(e);
246
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
247
+ }
248
+ });
249
+ // ──────────────────────────────────────────────────────────────
250
+ // corven_complete_training
251
+ // ──────────────────────────────────────────────────────────────
252
+ server.registerTool("corven_complete_training", {
253
+ title: "Complete Training Program",
254
+ description: "Marks the calling agent as having completed a training program. Updates agent capabilities.\n" +
255
+ "USE WHEN: You finished the required tasks in a training. You want to prove you learned the new capabilities.\n" +
256
+ "REQUIRES: You must be enrolled in the training. The training program must exist.\n" +
257
+ "RETURNS: Completion confirmation, capabilities earned, graduate count, txHash.\n" +
258
+ "COMES AFTER: corven_enroll_training, then completing the required tasks.\n" +
259
+ "NOTE: Capability proofs are recorded in the training registry. Use corven_get_agent to verify your updated profile.",
260
+ inputSchema: {
261
+ trainingId: z.number().int().positive().describe("Training program ID to complete"),
262
+ },
263
+ }, async ({ trainingId }) => {
264
+ try {
265
+ const account = getAccount();
266
+ if (!account) {
267
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
268
+ }
269
+ const program = trainings.get(trainingId);
270
+ if (!program) {
271
+ return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
272
+ }
273
+ if (!program.enrolled.includes(account.address)) {
274
+ return formatStructuredError("Not enrolled.", `You are not enrolled in "${program.title}".`, "Call corven_enroll_training first.", false);
275
+ }
276
+ if (program.completed.includes(account.address)) {
277
+ return formatStructuredError("Already completed.", `You already completed "${program.title}".`, "You have the capabilities from this training.", false);
278
+ }
279
+ program.completed.push(account.address);
280
+ program.graduates++;
281
+ persist();
282
+ return {
283
+ content: [{
284
+ type: "text",
285
+ text: [
286
+ `Training "${program.title}" completed.`,
287
+ "",
288
+ `Capabilities earned: ${program.capabilities.join(", ")}`,
289
+ `Total graduates: ${program.graduates}`,
290
+ `Enrolled agents: ${program.enrolled.length}`,
291
+ "",
292
+ `Capability proof recorded in training registry #${program.id}.`,
293
+ `Call corven_get_agent to view your updated profile.`,
294
+ ].join("\n"),
295
+ }],
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=training.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training.js","sourceRoot":"","sources":["../../src/tools/training.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 registerV2SettlementTools(server: McpServer): void;
3
+ //# sourceMappingURL=v2-settlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-settlement.d.ts","sourceRoot":"","sources":["../../src/tools/v2-settlement.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuQjE"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * V2 Settlement Layer MCP Tools
3
+ *
4
+ * Bridges the minimal v2 contracts (settlement) with offchain coordination.
5
+ * Uses bytes32 for hashes, enum for receipt types, event-based indexing.
6
+ */
7
+ import { z } from "zod";
8
+ import { keccak256, toBytes } from "viem";
9
+ import { loadAbi, CONTRACTS, getAccount } from "../config.js";
10
+ import { executeOrPrepare, readContract } from "../handlers/wallet.js";
11
+ import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
12
+ // V2 contract ABIs (loaded from artifacts after compilation)
13
+ const REGISTRY_V2_ABI = loadAbi("AgentRegistry");
14
+ const ESCROW_V2_ABI = loadAbi("TaskEscrow");
15
+ const RECEIPT_V2_ABI = loadAbi("ReceiptVerifier");
16
+ // ─── Helper: convert string to bytes32 hash ─────────────────
17
+ function toBytes32(input) {
18
+ // If already a hex bytes32, return as-is
19
+ if (input.startsWith("0x") && input.length === 66)
20
+ return input;
21
+ // Otherwise hash it
22
+ return keccak256(toBytes(input));
23
+ }
24
+ // ─── V2 Agent Registration ──────────────────────────────────
25
+ const v2RegisterSchema = z.object({
26
+ name: z.string().min(1).max(100),
27
+ capabilities: z.array(z.string()).min(1).max(20),
28
+ stake: z.string().regex(/^\d+\.\d{1,18}$/),
29
+ });
30
+ // ─── V2 Task Creation (bytes32 hashes) ──────────────────────
31
+ const v2CreateTaskSchema = z.object({
32
+ worker: z.string().regex(/^0x[0-9a-fA-F]{40}$/),
33
+ payment: z.string().regex(/^\d+\.\d{1,18}$/),
34
+ deadline: z.number().int().positive(),
35
+ descriptionHash: z.string().min(1), // IPFS CID or bytes32
36
+ });
37
+ // ─── V2 Receipt Creation (enum type) ────────────────────────
38
+ const v2CreateReceiptSchema = z.object({
39
+ counterparty: z.string().regex(/^0x[0-9a-fA-F]{40}$/),
40
+ receiptType: z.number().int().min(0).max(5),
41
+ dataHash: z.string().min(1),
42
+ });
43
+ // ─── Tool Registration ──────────────────────────────────────
44
+ export function registerV2SettlementTools(server) {
45
+ // ──────────────────────────────────────────────────────────
46
+ // corven_v2_register_agent
47
+ // ──────────────────────────────────────────────────────────
48
+ server.registerTool("corven_v2_register_agent", {
49
+ title: "Register Agent (v2)",
50
+ description: "Register an agent on the v2 AgentRegistry. Capabilities stored as " +
51
+ "bytes32 hashes onchain. Profile data (descriptions, tags) stays offchain.",
52
+ inputSchema: {
53
+ name: z.string().describe("Agent display name"),
54
+ capabilities: z.array(z.string()).describe("Capability tags (hashed to bytes32 onchain)"),
55
+ stake: z.string().describe("Stake amount in ETH"),
56
+ },
57
+ }, async (params) => {
58
+ try {
59
+ const parsed = v2RegisterSchema.safeParse(params);
60
+ if (!parsed.success)
61
+ return formatError(parsed.error);
62
+ const { name, capabilities, stake } = parsed.data;
63
+ const result = await executeOrPrepare(CONTRACTS.AgentRegistry, REGISTRY_V2_ABI, "register", [name, capabilities], BigInt(stake) * BigInt(10 ** 18));
64
+ return formatTxResult(result);
65
+ }
66
+ catch (e) {
67
+ return formatError(e);
68
+ }
69
+ });
70
+ // ──────────────────────────────────────────────────────────
71
+ // corven_v2_create_task
72
+ // ──────────────────────────────────────────────────────────
73
+ server.registerTool("corven_v2_create_task", {
74
+ title: "Create Task (v2)",
75
+ description: "Create and fund a task on the v2 TaskEscrow. Description hash is " +
76
+ "bytes32 onchain. Full description stored on IPFS, hash anchored here.",
77
+ inputSchema: {
78
+ worker: z.string().describe("Worker agent address"),
79
+ payment: z.string().describe("Payment amount in ETH"),
80
+ deadline: z.number().describe("Unix timestamp deadline (min 1hr, max 365 days)"),
81
+ descriptionHash: z.string().describe("IPFS CID or bytes32 hash of task description"),
82
+ },
83
+ }, async (params) => {
84
+ try {
85
+ const parsed = v2CreateTaskSchema.safeParse(params);
86
+ if (!parsed.success)
87
+ return formatError(parsed.error);
88
+ const { worker, payment, deadline, descriptionHash } = parsed.data;
89
+ const hash = toBytes32(descriptionHash);
90
+ const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "createAndFundTask", [worker, BigInt(payment) * BigInt(10 ** 18), BigInt(deadline), hash], BigInt(payment) * BigInt(10 ** 18));
91
+ return formatTxResult(result);
92
+ }
93
+ catch (e) {
94
+ return formatError(e);
95
+ }
96
+ });
97
+ // ──────────────────────────────────────────────────────────
98
+ // corven_v2_submit_work
99
+ // ──────────────────────────────────────────────────────────
100
+ server.registerTool("corven_v2_submit_work", {
101
+ title: "Submit Work (v2)",
102
+ description: "Submit deliverable hash for a v2 task.",
103
+ inputSchema: {
104
+ taskId: z.number().describe("Task ID"),
105
+ deliverableHash: z.string().describe("IPFS CID or bytes32 hash of deliverable"),
106
+ },
107
+ }, async (params) => {
108
+ try {
109
+ const { taskId, deliverableHash } = params;
110
+ const hash = toBytes32(deliverableHash);
111
+ const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "submitWork", [BigInt(taskId), hash]);
112
+ return formatTxResult(result);
113
+ }
114
+ catch (e) {
115
+ return formatError(e);
116
+ }
117
+ });
118
+ // ──────────────────────────────────────────────────────────
119
+ // corven_v2_verify_task
120
+ // ──────────────────────────────────────────────────────────
121
+ server.registerTool("corven_v2_verify_task", {
122
+ title: "Verify Task (v2)",
123
+ description: "Verify submitted work and release payment on v2 escrow.",
124
+ inputSchema: {
125
+ taskId: z.number().describe("Task ID"),
126
+ success: z.boolean().describe("true = approve, false = reject"),
127
+ },
128
+ }, async (params) => {
129
+ try {
130
+ const { taskId, success } = params;
131
+ const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "verifyTask", [BigInt(taskId), success]);
132
+ return formatTxResult(result);
133
+ }
134
+ catch (e) {
135
+ return formatError(e);
136
+ }
137
+ });
138
+ // ──────────────────────────────────────────────────────────
139
+ // corven_v2_create_attestation
140
+ // ──────────────────────────────────────────────────────────
141
+ server.registerTool("corven_v2_create_attestation", {
142
+ title: "Create Attestation (v2)",
143
+ description: "Create an ERC-8004 attestation receipt on v2 ReceiptVerifier. " +
144
+ "Uses enum-based receipt types (not strings).",
145
+ inputSchema: {
146
+ counterparty: z.string().describe("Counterparty address"),
147
+ receiptType: z.number().describe("0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed"),
148
+ dataHash: z.string().describe("Data hash (bytes32 or IPFS CID)"),
149
+ },
150
+ }, async (params) => {
151
+ try {
152
+ const parsed = v2CreateReceiptSchema.safeParse(params);
153
+ if (!parsed.success)
154
+ return formatError(parsed.error);
155
+ const { counterparty, receiptType, dataHash } = parsed.data;
156
+ const account = getAccount();
157
+ if (!account)
158
+ return formatError(new Error("No wallet configured."));
159
+ const hash = toBytes32(dataHash);
160
+ const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, RECEIPT_V2_ABI, "createReceipt", [account, counterparty, receiptType, hash]);
161
+ return formatTxResult(result);
162
+ }
163
+ catch (e) {
164
+ return formatError(e);
165
+ }
166
+ });
167
+ // ──────────────────────────────────────────────────────────
168
+ // corven_v2_get_task
169
+ // ──────────────────────────────────────────────────────────
170
+ server.registerTool("corven_v2_get_task", {
171
+ title: "Get Task (v2)",
172
+ description: "Read task details from v2 TaskEscrow.",
173
+ inputSchema: {
174
+ taskId: z.number().describe("Task ID"),
175
+ },
176
+ }, async (params) => {
177
+ try {
178
+ const taskId = params.taskId;
179
+ const result = await readContract(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "getTask", [BigInt(taskId)]);
180
+ const data = result;
181
+ return formatReadResult({
182
+ taskId,
183
+ client: data[0],
184
+ worker: data[1],
185
+ payment: data[2]?.toString(),
186
+ deadline: data[3]?.toString(),
187
+ descriptionHash: data[4],
188
+ deliverableHash: data[5],
189
+ status: ["Created", "Funded", "InProgress", "Submitted", "Completed", "Failed", "Disputed"][Number(data[6])],
190
+ createdAt: data[7]?.toString(),
191
+ priority: ["Low", "Medium", "High", "Urgent"][Number(data[9])],
192
+ usesMilestones: data[10],
193
+ }, "Task Details");
194
+ }
195
+ catch (e) {
196
+ return formatError(e);
197
+ }
198
+ });
199
+ // ──────────────────────────────────────────────────────────
200
+ // corven_v2_has_capability
201
+ // ──────────────────────────────────────────────────────────
202
+ server.registerTool("corven_v2_has_capability", {
203
+ title: "Check Capability (v2)",
204
+ description: "Check if an agent has a specific capability hash on v2 registry.",
205
+ inputSchema: {
206
+ agent: z.string().describe("Agent address"),
207
+ capability: z.string().describe("Capability string (will be hashed)"),
208
+ },
209
+ }, async (params) => {
210
+ try {
211
+ const { agent, capability } = params;
212
+ const capHash = keccak256(toBytes(capability));
213
+ const result = await readContract(CONTRACTS.AgentRegistry, REGISTRY_V2_ABI, "hasCapability", [agent, capHash]);
214
+ return formatReadResult({
215
+ agent,
216
+ capability,
217
+ capabilityHash: capHash,
218
+ hasCapability: result,
219
+ }, "Capability Check");
220
+ }
221
+ catch (e) {
222
+ return formatError(e);
223
+ }
224
+ });
225
+ }
226
+ //# sourceMappingURL=v2-settlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-settlement.js","sourceRoot":"","sources":["../../src/tools/v2-settlement.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 registerVerificationTools(server: McpServer): void;
3
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/tools/verification.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsOjE"}