@varun-ai07/covenant-mcp 2.5.2 → 3.0.1

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 (55) hide show
  1. package/README.md +24 -40
  2. package/dist/lib/verify.d.ts +12 -0
  3. package/dist/lib/verify.d.ts.map +1 -1
  4. package/dist/lib/verify.js +115 -13
  5. package/dist/lib/verify.js.map +1 -1
  6. package/dist/sdk.d.ts +1 -0
  7. package/dist/sdk.d.ts.map +1 -1
  8. package/dist/sdk.js +9 -0
  9. package/dist/sdk.js.map +1 -1
  10. package/dist/server.d.ts.map +1 -1
  11. package/dist/server.js +7 -2
  12. package/dist/server.js.map +1 -1
  13. package/dist/tools/corven-agent.d.ts.map +1 -1
  14. package/dist/tools/corven-agent.js +82 -10
  15. package/dist/tools/corven-agent.js.map +1 -1
  16. package/dist/tools/corven-batch.d.ts.map +1 -1
  17. package/dist/tools/corven-batch.js +82 -2
  18. package/dist/tools/corven-batch.js.map +1 -1
  19. package/dist/tools/corven-encrypt.d.ts +3 -0
  20. package/dist/tools/corven-encrypt.d.ts.map +1 -0
  21. package/dist/tools/corven-encrypt.js +107 -0
  22. package/dist/tools/corven-encrypt.js.map +1 -0
  23. package/dist/tools/corven-govern.d.ts.map +1 -1
  24. package/dist/tools/corven-govern.js +10 -0
  25. package/dist/tools/corven-govern.js.map +1 -1
  26. package/dist/tools/corven-grants.d.ts.map +1 -1
  27. package/dist/tools/corven-grants.js +10 -0
  28. package/dist/tools/corven-grants.js.map +1 -1
  29. package/dist/tools/corven-ipfs.d.ts.map +1 -1
  30. package/dist/tools/corven-ipfs.js +85 -12
  31. package/dist/tools/corven-ipfs.js.map +1 -1
  32. package/dist/tools/corven-market.d.ts.map +1 -1
  33. package/dist/tools/corven-market.js +8 -1
  34. package/dist/tools/corven-market.js.map +1 -1
  35. package/dist/tools/corven-message.d.ts +1 -0
  36. package/dist/tools/corven-message.d.ts.map +1 -1
  37. package/dist/tools/corven-message.js +100 -12
  38. package/dist/tools/corven-message.js.map +1 -1
  39. package/dist/tools/corven-reputation.d.ts.map +1 -1
  40. package/dist/tools/corven-reputation.js +82 -5
  41. package/dist/tools/corven-reputation.js.map +1 -1
  42. package/dist/tools/corven-stats.d.ts.map +1 -1
  43. package/dist/tools/corven-stats.js +72 -10
  44. package/dist/tools/corven-stats.js.map +1 -1
  45. package/dist/tools/corven-task.d.ts.map +1 -1
  46. package/dist/tools/corven-task.js +196 -9
  47. package/dist/tools/corven-task.js.map +1 -1
  48. package/dist/tools/corven-version.d.ts +3 -0
  49. package/dist/tools/corven-version.d.ts.map +1 -0
  50. package/dist/tools/corven-version.js +129 -0
  51. package/dist/tools/corven-version.js.map +1 -0
  52. package/dist/tools/disputes.d.ts.map +1 -1
  53. package/dist/tools/disputes.js +82 -0
  54. package/dist/tools/disputes.js.map +1 -1
  55. package/package.json +1 -1
@@ -8,6 +8,8 @@ import { loadAbi, CONTRACTS } from "../config.js";
8
8
  import { readContract } from "../handlers/wallet.js";
9
9
  import { formatReadResult } from "../handlers/transactions.js";
10
10
  import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
11
+ import { loadStore, saveStore } from "../lib/store.js";
12
+ import { eventIndexer } from "../lib/events.js";
11
13
  const identityAbi = loadAbi("CovenantIdentity");
12
14
  const escrowAbi = loadAbi("CovenantEscrow");
13
15
  // ─── Input Schemas ───────────────────────────────────────────
@@ -18,25 +20,32 @@ const leaderboardSchema = z.object({
18
20
  // ─── Tool Registration ───────────────────────────────────────
19
21
  export function registerStatsTools(server) {
20
22
  // ──────────────────────────────────────────────────────────
21
- // corven_stats — action: stats
23
+ // corven_stats — action: stats, leaderboard, subscribe,
24
+ // unsubscribe, list_hooks, recent_events
22
25
  // ──────────────────────────────────────────────────────────
23
26
  server.registerTool("corven_stats", {
24
- title: "Protocol Statistics",
25
- description: "Get aggregate COVENANT protocol health metrics agent counts, task volume, and top performers.\n" +
27
+ title: "Protocol Statistics & Webhooks",
28
+ description: "Get aggregate COVENANT protocol health metrics or manage event webhooks.\n" +
26
29
  "ACTIONS:\n" +
27
- " stats — Total agents, tasks created, total volume (ETH), and fees collected.\n" +
28
- " leaderboard — Top N agents ranked by reputation with address, name, tasks completed, stake, and capabilities.\n" +
29
- "WORKFLOW: corven_stats stats corven_stats leaderboard (if you want top performers).\n" +
30
- "WHEN TO USE: To assess protocol activity, growth, or discover top agents. Free read-only call.\n\n" +
31
- "NEXT STEP: See top agents with corven_stats({ action: 'leaderboard' })\n\n" +
30
+ " stats — Total agents, tasks created, total volume (ETH), and fees collected.\n" +
31
+ " leaderboard — Top N agents ranked by reputation (address, name, tasks completed, stake).\n" +
32
+ " subscribe — Register a webhook URL for specific event types.\n" +
33
+ " unsubscribe — Remove a webhook by ID.\n" +
34
+ " list_hooks — List active webhook subscriptions.\n" +
35
+ " recent_events — Return recent events from the on-chain event indexer.\n" +
36
+ "WORKFLOW: corven_stats stats → corven_stats leaderboard (for top performers).\n" +
37
+ "WHEN TO USE: To assess protocol activity, growth, discover top agents, or get notified of events.\n\n" +
32
38
  "OUTPUT RULES:\n" +
33
39
  "- Present results as clean, readable text. Never show raw JSON.\n" +
34
40
  "- On error: Explain in plain language what went wrong and suggest next step.\n" +
35
41
  "- Always recommend a logical follow-up action.\n" +
36
42
  "- Never show stack traces, technical errors, or raw data.",
37
43
  inputSchema: {
38
- action: z.enum(["stats", "leaderboard"]).describe("Stats action"),
44
+ action: z.enum(["stats", "leaderboard", "subscribe", "unsubscribe", "list_hooks", "recent_events"]).describe("Stats or webhook action"),
39
45
  limit: z.number().optional().describe("Leaderboard size (1-50, default 10)"),
46
+ url: z.string().optional().describe("Webhook URL (for subscribe)"),
47
+ events: z.array(z.string()).optional().describe("Event types to subscribe to (for subscribe)"),
48
+ hookId: z.string().optional().describe("Webhook ID (for unsubscribe)"),
40
49
  },
41
50
  }, async (params) => {
42
51
  try {
@@ -70,8 +79,61 @@ export function registerStatsTools(server) {
70
79
  note: "Agent iteration not available in V5. Use corven_agent get with a specific address.",
71
80
  }, "COVENANT Agent Leaderboard");
72
81
  }
82
+ case "subscribe": {
83
+ const { url, events } = params;
84
+ if (!url || !events || events.length === 0) {
85
+ return formatStructuredError("Missing required fields.", "subscribe requires url and events array.", "Provide url and at least one event type.", false);
86
+ }
87
+ const webhookStore = loadStore("webhooks", {});
88
+ const id = `wh_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
89
+ webhookStore[id] = { id, url, events, active: true, createdAt: Date.now() };
90
+ saveStore("webhooks", webhookStore);
91
+ return formatReadResult({ id, url, events, active: true }, "Webhook Registered");
92
+ }
93
+ case "unsubscribe": {
94
+ const { hookId } = params;
95
+ if (!hookId) {
96
+ return formatStructuredError("Missing required field.", "unsubscribe requires hookId.", "Provide the webhook ID from list_hooks.", false);
97
+ }
98
+ const webhookStore = loadStore("webhooks", {});
99
+ if (!webhookStore[hookId]) {
100
+ return formatStructuredError("Webhook not found.", `No webhook with ID ${hookId}.`, "Use list_hooks to see active hooks.", false);
101
+ }
102
+ delete webhookStore[hookId];
103
+ saveStore("webhooks", webhookStore);
104
+ return formatReadResult({ hookId, removed: true }, "Webhook Removed");
105
+ }
106
+ case "list_hooks": {
107
+ const webhookStore = loadStore("webhooks", {});
108
+ const hooks = Object.values(webhookStore);
109
+ return formatReadResult({
110
+ totalHooks: hooks.length,
111
+ active: hooks.filter(h => h.active).length,
112
+ hooks: hooks.map(h => ({
113
+ id: h.id,
114
+ url: h.url,
115
+ events: h.events,
116
+ active: h.active,
117
+ createdAt: new Date(h.createdAt).toISOString(),
118
+ })),
119
+ }, "Registered Webhooks");
120
+ }
121
+ case "recent_events": {
122
+ const recentEvents = eventIndexer.query({});
123
+ const last50 = recentEvents.slice(-50);
124
+ return formatReadResult({
125
+ totalIndexed: recentEvents.length,
126
+ showing: last50.length,
127
+ events: last50.map(e => ({
128
+ eventName: e.eventName,
129
+ blockNumber: Number(e.blockNumber),
130
+ transactionHash: e.transactionHash,
131
+ address: e.address,
132
+ })),
133
+ }, "Recent On-Chain Events");
134
+ }
73
135
  default:
74
- return formatStructuredError(`Unknown action: ${action}`, "Valid actions: stats, leaderboard", "Pass action as 'stats' or 'leaderboard'.", true);
136
+ return formatStructuredError(`Unknown action: ${action}`, "Valid actions: stats, leaderboard, subscribe, unsubscribe, list_hooks, recent_events", "Pass a valid action string.", true);
75
137
  }
76
138
  }
77
139
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"corven-stats.js","sourceRoot":"","sources":["../../src/tools/corven-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corven-stats.js","sourceRoot":"","sources":["../../src/tools/corven-stats.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"corven-task.d.ts","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkIzD"}
1
+ {"version":3,"file":"corven-task.d.ts","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2EzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwQzD"}
@@ -2,10 +2,61 @@
2
2
  * corven_task — Task lifecycle via CovenantSDK
3
3
  */
4
4
  import { z } from "zod";
5
- import { parseEther, formatEther, keccak256, toBytes } from "viem";
6
- import { getSDK, getPublicClient } from "../config.js";
7
- import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
5
+ import { parseEther, formatEther, isAddress, keccak256, toBytes } from "viem";
6
+ import { getSDK, getPublicClient, loadAbi, CONTRACTS } from "../config.js";
7
+ import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
8
8
  import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
9
+ import { notifyAgent } from "./corven-message.js";
10
+ const IPFS_GATEWAYS = [
11
+ "https://gateway.pinata.cloud/ipfs",
12
+ "https://ipfs.io/ipfs",
13
+ "https://cloudflare-ipfs.com/ipfs",
14
+ ];
15
+ function isCid(s) {
16
+ return /^Qm[1-9A-HJ-NP-Za-km-z]{44,}/.test(s) ||
17
+ /^(bafy[a-zA-Z2-7]{52,})/.test(s) ||
18
+ /^(b[ae][a-zA-Z2-7]{50,})/.test(s);
19
+ }
20
+ function isUrl(s) {
21
+ return /^https?:\/\//.test(s);
22
+ }
23
+ function extractCid(input) {
24
+ const httpMatch = input.match(/\/ipfs\/([a-zA-Z0-9]+)/);
25
+ if (httpMatch)
26
+ return httpMatch[1];
27
+ if (isCid(input))
28
+ return input;
29
+ return null;
30
+ }
31
+ async function fetchIpfsContent(input, timeoutMs = 10000) {
32
+ try {
33
+ let url;
34
+ if (isUrl(input)) {
35
+ url = input;
36
+ }
37
+ else {
38
+ const cid = extractCid(input);
39
+ if (!cid)
40
+ return null;
41
+ url = `${IPFS_GATEWAYS[0]}/${cid}`;
42
+ }
43
+ const controller = new AbortController();
44
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
45
+ const resp = await fetch(url, { signal: controller.signal });
46
+ clearTimeout(timer);
47
+ if (!resp.ok)
48
+ return null;
49
+ const contentType = resp.headers.get("content-type") || "";
50
+ if (contentType.includes("json") || contentType.includes("text")) {
51
+ return await resp.text();
52
+ }
53
+ const buf = Buffer.from(await resp.arrayBuffer());
54
+ return buf.toString("base64");
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ }
9
60
  async function waitAndFormat(hash) {
10
61
  const client = getPublicClient();
11
62
  const receipt = await client.waitForTransactionReceipt({ hash });
@@ -23,6 +74,8 @@ const schema = z.object({
23
74
  success: z.boolean().optional(),
24
75
  milestoneIndex: z.number().optional(),
25
76
  priority: z.enum(["low", "medium", "high", "urgent"]).optional().default("medium"),
77
+ offset: z.number().optional().default(0).describe("Offset for list pagination (default 0)"),
78
+ limit: z.number().optional().default(10).describe("Max tasks to return for list (default 10)"),
26
79
  confirm: z.boolean().optional().default(false).describe('NEVER set this yourself. ALWAYS ask the user first. Show the exact ETH cost and what will happen. Only set to true AFTER the user explicitly says yes.'),
27
80
  });
28
81
  export function registerTaskTools(server) {
@@ -55,6 +108,13 @@ export function registerTaskTools(server) {
55
108
  const sdk = getSDK();
56
109
  const { action } = args;
57
110
  if (action === "create") {
111
+ if (args.worker && !isAddress(args.worker)) {
112
+ return formatError(new Error("Invalid worker address: must be a valid Ethereum address"));
113
+ }
114
+ const paymentNum = Number(args.payment || "0.01");
115
+ if (paymentNum <= 0 || paymentNum > 100) {
116
+ return formatError(new Error("Invalid payment amount: must be > 0 and <= 100 ETH"));
117
+ }
58
118
  const deadline = args.deadline
59
119
  ? Number(args.deadline)
60
120
  : Math.floor(Date.now() / 1000) + 86400;
@@ -69,6 +129,24 @@ export function registerTaskTools(server) {
69
129
  }, "CONFIRMATION REQUIRED");
70
130
  }
71
131
  const hash = await sdk.createTask(args.worker, paymentWei, deadline, keccak256(toBytes(args.descriptionHash || "QmDefault")));
132
+ const result = await waitAndFormat(hash);
133
+ if (result.status === "success") {
134
+ notifyAgent(args.worker, "task_created", `New task assigned to you: ${formatEther(paymentWei)} ETH`, 0);
135
+ }
136
+ return formatTxResult(result);
137
+ }
138
+ if (action === "fund") {
139
+ const paymentWei = parseEther(args.payment || "0.01");
140
+ if (!args.confirm) {
141
+ return formatReadResult({
142
+ confirmationRequired: true,
143
+ action: "Fund task #" + args.taskId + " escrow",
144
+ cost: formatEther(paymentWei) + " ETH",
145
+ reason: "ETH added to task escrow for worker payment",
146
+ toProceed: "Call corven_task again with confirm: true",
147
+ }, "CONFIRMATION REQUIRED");
148
+ }
149
+ const hash = await sdk.fundTask(BigInt(args.taskId || 0), paymentWei);
72
150
  return formatTxResult(await waitAndFormat(hash));
73
151
  }
74
152
  if (action === "submit") {
@@ -82,7 +160,13 @@ export function registerTaskTools(server) {
82
160
  }, "CONFIRMATION REQUIRED");
83
161
  }
84
162
  const hash = await sdk.submitWork(BigInt(args.taskId || 0), keccak256(toBytes(args.deliverableHash || "QmDelivered")));
85
- return formatTxResult(await waitAndFormat(hash));
163
+ const result = await waitAndFormat(hash);
164
+ if (result.status === "success") {
165
+ const acct = (await import("../config.js")).getAccount();
166
+ if (acct)
167
+ notifyAgent(acct.address, "task_submitted", `Deliverable submitted for task #${args.taskId}`, Number(args.taskId));
168
+ }
169
+ return formatTxResult(result);
86
170
  }
87
171
  if (action === "verify") {
88
172
  if (!args.confirm) {
@@ -95,7 +179,15 @@ export function registerTaskTools(server) {
95
179
  }, "CONFIRMATION REQUIRED");
96
180
  }
97
181
  const hash = await sdk.completeTask(BigInt(args.taskId || 0), "0x0000000000000000000000000000000000000000000000000000000000000000");
98
- return formatTxResult(await waitAndFormat(hash));
182
+ const result = await waitAndFormat(hash);
183
+ if (result.status === "success") {
184
+ try {
185
+ const task = await sdk.getTask(BigInt(args.taskId || 0));
186
+ notifyAgent(task.worker, "task_completed", `Task #${args.taskId} verified and payment released`, Number(args.taskId));
187
+ }
188
+ catch { /* best-effort notification */ }
189
+ }
190
+ return formatTxResult(result);
99
191
  }
100
192
  if (action === "dispute") {
101
193
  if (!args.confirm) {
@@ -110,19 +202,114 @@ export function registerTaskTools(server) {
110
202
  const hash = await sdk.disputeTask(BigInt(args.taskId || 0));
111
203
  return formatTxResult(await waitAndFormat(hash));
112
204
  }
205
+ if (action === "submit_milestone") {
206
+ if (!args.confirm) {
207
+ return formatReadResult({
208
+ confirmationRequired: true,
209
+ action: "Submit milestone #" + args.milestoneIndex + " for task #" + args.taskId,
210
+ cost: "0 ETH (gas only)",
211
+ reason: "Commits your milestone deliverable on-chain",
212
+ toProceed: "Call corven_task again with confirm: true",
213
+ }, "CONFIRMATION REQUIRED");
214
+ }
215
+ const publicClient = getPublicClient();
216
+ const walletClient = (await import("../config.js")).getWalletClient();
217
+ if (!walletClient)
218
+ return formatError(new Error("Wallet required for submit_milestone"));
219
+ const hash = await walletClient.writeContract({
220
+ address: CONTRACTS.TaskEscrow,
221
+ abi: loadAbi("TaskEscrow"),
222
+ functionName: "submitMilestone",
223
+ args: [BigInt(args.taskId || 0), BigInt(args.milestoneIndex || 0), args.deliverableHash || ""],
224
+ chain: (await import("../config.js")).CHAIN,
225
+ account: (await import("../config.js")).getAccount(),
226
+ });
227
+ return formatTxResult(await waitAndFormat(hash));
228
+ }
229
+ if (action === "verify_milestone") {
230
+ if (!args.confirm) {
231
+ return formatReadResult({
232
+ confirmationRequired: true,
233
+ action: "Verify milestone #" + args.milestoneIndex + " for task #" + args.taskId,
234
+ cost: "ETH released from escrow for this milestone",
235
+ reason: "Approving releases milestone payment to worker",
236
+ toProceed: "Call corven_task again with confirm: true",
237
+ }, "CONFIRMATION REQUIRED");
238
+ }
239
+ const walletClient = (await import("../config.js")).getWalletClient();
240
+ if (!walletClient)
241
+ return formatError(new Error("Wallet required for verify_milestone"));
242
+ const hash = await walletClient.writeContract({
243
+ address: CONTRACTS.TaskEscrow,
244
+ abi: loadAbi("TaskEscrow"),
245
+ functionName: "verifyMilestone",
246
+ args: [BigInt(args.taskId || 0), BigInt(args.milestoneIndex || 0), args.success !== false],
247
+ chain: (await import("../config.js")).CHAIN,
248
+ account: (await import("../config.js")).getAccount(),
249
+ });
250
+ return formatTxResult(await waitAndFormat(hash));
251
+ }
113
252
  if (action === "get") {
114
253
  const task = await sdk.getTask(BigInt(args.taskId || 0));
115
- return formatReadResult({
254
+ const result = {
116
255
  taskId: Number(task.taskId || args.taskId),
117
256
  client: task.client,
118
257
  worker: task.worker,
119
258
  paymentEth: formatEther(task.payment),
120
259
  status: TASK_STATUS[Number(task.status)] || "Unknown",
121
- }, `Task #${args.taskId}`);
260
+ };
261
+ // Resolve descriptionHash from IPFS
262
+ const descHash = task.descriptionHash || "";
263
+ if (descHash && (isCid(descHash) || isUrl(descHash))) {
264
+ const resolved = await fetchIpfsContent(descHash);
265
+ if (resolved) {
266
+ result.descriptionHash = descHash;
267
+ result.description = resolved;
268
+ }
269
+ }
270
+ // Resolve deliverableHash from IPFS
271
+ const delHash = task.deliverableHash || "";
272
+ if (delHash && (isCid(delHash) || isUrl(delHash))) {
273
+ const resolved = await fetchIpfsContent(delHash);
274
+ if (resolved) {
275
+ result.deliverableHash = delHash;
276
+ result.deliverable = resolved;
277
+ }
278
+ }
279
+ return formatReadResult(result, `Task #${args.taskId}`);
122
280
  }
123
281
  if (action === "list") {
124
- const count = await sdk.getTaskCount();
125
- return formatReadResult({ totalTasks: Number(count) }, "Task Count");
282
+ const count = Number(await sdk.getTaskCount());
283
+ if (count === 0) {
284
+ return formatReadResult({ totalTasks: 0, tasks: [] }, "Task List");
285
+ }
286
+ const offset = args.offset || 0;
287
+ const limit = Math.min(args.limit || 10, 50);
288
+ const tasks = [];
289
+ const start = Math.max(0, count - 1 - offset);
290
+ const end = Math.max(0, start - limit);
291
+ for (let i = start; i >= end; i--) {
292
+ try {
293
+ const task = await sdk.getTask(BigInt(i));
294
+ tasks.push({
295
+ taskId: i,
296
+ client: task.client,
297
+ worker: task.worker,
298
+ paymentEth: formatEther(task.payment),
299
+ status: TASK_STATUS[Number(task.status)] || "Unknown",
300
+ });
301
+ }
302
+ catch {
303
+ continue;
304
+ }
305
+ }
306
+ return formatReadResult({
307
+ totalTasks: count,
308
+ offset,
309
+ limit,
310
+ returned: tasks.length,
311
+ tasks,
312
+ }, "Task List");
126
313
  }
127
314
  return formatReadResult({ error: "Unknown action" }, "Error");
128
315
  }
@@ -1 +1 @@
1
- {"version":3,"file":"corven-task.js","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAgB,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIrF,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAE/G,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACxH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wJAAwJ,CAAC;CAClN,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,mGAAmG;YACnG,YAAY;YACZ,iEAAiE;YACjE,yCAAyC;YACzC,kDAAkD;YAClD,wDAAwD;YACxD,wCAAwC;YACxC,kCAAkC;YAClC,2BAA2B;YAC3B,mDAAmD;YACnD,8DAA8D;YAC9D,6CAA6C;YAC7C,+DAA+D;YAC/D,oFAAoF;YACpF,uFAAuF;YACvF,qMAAqM;YACrM,iBAAiB;YACjB,mEAAmE;YACnE,gFAAgF;YAChF,kDAAkD;YAClD,2DAA2D;QAC7D,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;oBAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,gBAAgB,CAAC;wBACtB,oBAAoB,EAAE,IAAI;wBAC1B,MAAM,EAAE,6BAA6B;wBACrC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM;wBACtC,MAAM,EAAE,qDAAqD;wBAC7D,SAAS,EAAE,2CAA2C;qBACvD,EAAE,uBAAuB,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAC/B,IAAI,CAAC,MAAiB,EACtB,UAAU,EACV,QAAQ,EACR,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC,CACxD,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,gBAAgB,CAAC;wBACtB,oBAAoB,EAAE,IAAI;wBAC1B,MAAM,EAAE,+BAA+B,GAAG,IAAI,CAAC,MAAM;wBACrD,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,6CAA6C;wBACrD,SAAS,EAAE,2CAA2C;qBACvD,EAAE,uBAAuB,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EACxB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,CAAC,CAC1D,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,gBAAgB,CAAC;wBACtB,oBAAoB,EAAE,IAAI;wBAC1B,MAAM,EAAE,wCAAwC,GAAG,IAAI,CAAC,MAAM;wBAC9D,IAAI,EAAE,oCAAoC;wBAC1C,MAAM,EAAE,6CAA6C;wBACrD,SAAS,EAAE,2CAA2C;qBACvD,EAAE,uBAAuB,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CACjC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EACxB,oEAAoE,CACrE,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,gBAAgB,CAAC;wBACtB,oBAAoB,EAAE,IAAI;wBAC1B,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC,MAAM;wBAC/C,IAAI,EAAE,yCAAyC;wBAC/C,MAAM,EAAE,+CAA+C;wBACvD,SAAS,EAAE,2CAA2C;qBACvD,EAAE,uBAAuB,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAChC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CACzB,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzD,OAAO,gBAAgB,CAAC;oBACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS;iBACtD,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;gBACvC,OAAO,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;YAED,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"corven-task.js","sourceRoot":"","sources":["../../src/tools/corven-task.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 registerVersionTools(server: McpServer): void;
3
+ //# sourceMappingURL=corven-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corven-version.d.ts","sourceRoot":"","sources":["../../src/tools/corven-version.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgI5D"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * corven_version — Track, browse, and diff deliverable versions for tasks.
3
+ */
4
+ import { z } from "zod";
5
+ import { loadStore, saveStore } from "../lib/store.js";
6
+ import { formatReadResult, formatError } from "../handlers/transactions.js";
7
+ const schema = z.object({
8
+ action: z
9
+ .enum(["track", "history", "diff"])
10
+ .describe("track: record a new version. history: list all versions for a task. diff: compare two versions."),
11
+ taskId: z.string().describe("Task ID"),
12
+ deliverableHash: z.string().optional().describe("IPFS CID or content hash of the deliverable (required for track)"),
13
+ version: z.string().optional().describe("Semantic version label, e.g. v1.0 (optional, auto-assigned if omitted)"),
14
+ description: z.string().optional().describe("Human-readable description of this version"),
15
+ confirm: z.boolean().optional().describe("Confirm overwrite if version label already exists"),
16
+ versionA: z.string().optional().describe("First version hash for diff"),
17
+ versionB: z.string().optional().describe("Second version hash for diff"),
18
+ });
19
+ function getVersions(taskId) {
20
+ const store = loadStore("deliverable_versions", []);
21
+ return store.find((v) => v.taskId === taskId) || { taskId, versions: [] };
22
+ }
23
+ function saveVersions(entry) {
24
+ const store = loadStore("deliverable_versions", []);
25
+ const idx = store.findIndex((v) => v.taskId === entry.taskId);
26
+ if (idx >= 0)
27
+ store[idx] = entry;
28
+ else
29
+ store.push(entry);
30
+ saveStore("deliverable_versions", store);
31
+ }
32
+ export function registerVersionTools(server) {
33
+ server.registerTool("corven_version", {
34
+ title: "Deliverable Version Tracking",
35
+ description: "Track, browse, and diff deliverable versions for tasks on COVENANT.\n\n" +
36
+ "ACTIONS:\n" +
37
+ " track — Record a new version for a task's deliverable\n" +
38
+ " history — List all recorded versions for a task\n" +
39
+ " diff — Compare two versions by hash and timestamp\n\n" +
40
+ "USE WHEN: A task deliverable has been updated and you need to version it,\n" +
41
+ "or when reviewing the version history of a deliverable.\n\n" +
42
+ "WORKFLOW: track each submission → history to review → diff to compare\n\n" +
43
+ "OUTPUT RULES:\n" +
44
+ "- Present results as clean, readable text. Never show raw JSON.\n" +
45
+ "- On error: Explain in plain language what went wrong and suggest next step.",
46
+ inputSchema: schema.shape,
47
+ }, async (args) => {
48
+ try {
49
+ const { action, taskId, deliverableHash, version, description, confirm, versionA, versionB } = args;
50
+ if (action === "track") {
51
+ if (!deliverableHash) {
52
+ return formatError(new Error("deliverableHash is required for track action"));
53
+ }
54
+ const entry = getVersions(taskId);
55
+ const versionLabel = version || `v${entry.versions.length + 1}.0`;
56
+ // Check for duplicate version label
57
+ const existing = entry.versions.find((v) => v.version === versionLabel);
58
+ if (existing && !confirm) {
59
+ return formatError(new Error(`Version "${versionLabel}" already exists (hash: ${existing.hash}). ` +
60
+ `Set confirm=true to overwrite, or provide a different version label.`));
61
+ }
62
+ const newVersion = {
63
+ hash: deliverableHash,
64
+ version: versionLabel,
65
+ description: description || "",
66
+ timestamp: Date.now(),
67
+ submittedBy: "current-agent",
68
+ };
69
+ if (existing) {
70
+ const idx = entry.versions.indexOf(existing);
71
+ entry.versions[idx] = newVersion;
72
+ }
73
+ else {
74
+ entry.versions.push(newVersion);
75
+ }
76
+ saveVersions(entry);
77
+ return formatReadResult({
78
+ taskId,
79
+ version: versionLabel,
80
+ hash: deliverableHash,
81
+ totalVersions: entry.versions.length,
82
+ tracked: true,
83
+ }, `Version Tracked: ${versionLabel}`);
84
+ }
85
+ if (action === "history") {
86
+ const entry = getVersions(taskId);
87
+ if (entry.versions.length === 0) {
88
+ return formatReadResult({ taskId, versions: [], message: "No versions tracked for this task yet." }, `Version History: ${taskId}`);
89
+ }
90
+ return formatReadResult({
91
+ taskId,
92
+ totalVersions: entry.versions.length,
93
+ versions: entry.versions.map((v) => ({
94
+ version: v.version,
95
+ hash: v.hash,
96
+ description: v.description,
97
+ timestamp: new Date(v.timestamp).toISOString(),
98
+ })),
99
+ }, `Version History: ${taskId}`);
100
+ }
101
+ if (action === "diff") {
102
+ if (!versionA || !versionB) {
103
+ return formatError(new Error("Both versionA and versionB are required for diff action"));
104
+ }
105
+ const entry = getVersions(taskId);
106
+ const verA = entry.versions.find((v) => v.hash === versionA || v.version === versionA);
107
+ const verB = entry.versions.find((v) => v.hash === versionB || v.version === versionB);
108
+ if (!verA)
109
+ return formatError(new Error(`Version "${versionA}" not found for task ${taskId}`));
110
+ if (!verB)
111
+ return formatError(new Error(`Version "${versionB}" not found for task ${taskId}`));
112
+ const hashMatch = verA.hash === verB.hash;
113
+ const timeDiff = Math.abs(verA.timestamp - verB.timestamp);
114
+ return formatReadResult({
115
+ taskId,
116
+ versionA: { version: verA.version, hash: verA.hash, timestamp: new Date(verA.timestamp).toISOString(), description: verA.description },
117
+ versionB: { version: verB.version, hash: verB.hash, timestamp: new Date(verB.timestamp).toISOString(), description: verB.description },
118
+ identical: hashMatch,
119
+ timeBetween: `${Math.round(timeDiff / 1000)}s`,
120
+ }, `Diff: ${verA.version} vs ${verB.version}`);
121
+ }
122
+ return formatError(new Error(`Unknown action: ${action}`));
123
+ }
124
+ catch (e) {
125
+ return formatError(e instanceof Error ? e : new Error(String(e)));
126
+ }
127
+ });
128
+ }
129
+ //# sourceMappingURL=corven-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corven-version.js","sourceRoot":"","sources":["../../src/tools/corven-version.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"disputes.d.ts","sourceRoot":"","sources":["../../src/tools/disputes.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkP5D"}
1
+ {"version":3,"file":"disputes.d.ts","sourceRoot":"","sources":["../../src/tools/disputes.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8BzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0U5D"}