@varun-ai07/covenant-mcp 2.0.1 → 2.0.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 (50) hide show
  1. package/README.md +58 -2017
  2. package/dist/abis/AgentCollective.json +93 -274
  3. package/dist/abis/COVENANTRouter.json +206 -173
  4. package/dist/abis/CovenantArbitration.json +546 -0
  5. package/dist/abis/CovenantAttestation.json +476 -0
  6. package/dist/abis/CovenantEscrow.json +783 -0
  7. package/dist/abis/CovenantGovernance.json +729 -0
  8. package/dist/abis/CovenantIdentity.json +800 -0
  9. package/dist/abis/CovenantSettlement.json +609 -0
  10. package/dist/abis/GrantProgram.json +66 -471
  11. package/dist/abis/InsurancePool.json +456 -0
  12. package/dist/abis/MultiTokenEscrow.json +435 -836
  13. package/dist/abis/ParallelTaskBatch.json +160 -170
  14. package/dist/abis/RevisionManager.json +79 -134
  15. package/dist/abis/TrainingMarketplace.json +52 -482
  16. package/dist/config.d.ts +6 -20
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +60 -41
  19. package/dist/config.js.map +1 -1
  20. package/dist/lib/sqlite-store.d.ts +13 -0
  21. package/dist/lib/sqlite-store.d.ts.map +1 -0
  22. package/dist/lib/sqlite-store.js +71 -0
  23. package/dist/lib/sqlite-store.js.map +1 -0
  24. package/dist/lib/store.d.ts +1 -3
  25. package/dist/lib/store.d.ts.map +1 -1
  26. package/dist/lib/store.js +21 -10
  27. package/dist/lib/store.js.map +1 -1
  28. package/dist/shared-types.d.ts +19 -12
  29. package/dist/shared-types.d.ts.map +1 -1
  30. package/dist/shared-types.js +27 -17
  31. package/dist/shared-types.js.map +1 -1
  32. package/dist/tools/corven-agent.d.ts.map +1 -1
  33. package/dist/tools/corven-agent.js +31 -37
  34. package/dist/tools/corven-agent.js.map +1 -1
  35. package/dist/tools/corven-ipfs.d.ts.map +1 -1
  36. package/dist/tools/corven-ipfs.js +3 -9
  37. package/dist/tools/corven-ipfs.js.map +1 -1
  38. package/dist/tools/corven-market.d.ts.map +1 -1
  39. package/dist/tools/corven-market.js +36 -74
  40. package/dist/tools/corven-market.js.map +1 -1
  41. package/dist/tools/corven-task.d.ts.map +1 -1
  42. package/dist/tools/corven-task.js +39 -55
  43. package/dist/tools/corven-task.js.map +1 -1
  44. package/dist/tools/corven-verify.d.ts.map +1 -1
  45. package/dist/tools/corven-verify.js +102 -132
  46. package/dist/tools/corven-verify.js.map +1 -1
  47. package/dist/tools/covenant-help.d.ts.map +1 -1
  48. package/dist/tools/covenant-help.js +23 -34
  49. package/dist/tools/covenant-help.js.map +1 -1
  50. package/package.json +4 -1
@@ -1,22 +1,18 @@
1
1
  /**
2
- * corven_agent — Agent lifecycle: register, get, update, deactivate, stake
3
- *
4
- * Replaces: corven_register_agent, corven_get_agent, corven_get_all_agents,
5
- * corven_add_stake, corven_deactivate_agent, corven_profile_update,
6
- * corven_profile_get, corven_find_workers
2
+ * corven_agent — Agent lifecycle via CovenantSDK
7
3
  */
8
4
  import { z } from "zod";
9
- import { parseEther, formatEther } from "viem";
10
- import { loadAbi, CONTRACTS, getAccount } from "../config.js";
11
- import { executeOrPrepare, readContract } from "../handlers/wallet.js";
5
+ import { parseEther, formatEther, keccak256, toBytes } from "viem";
6
+ import { getSDK, getAccount, getPublicClient } from "../config.js";
12
7
  import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
13
8
  import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
14
- const ABI = loadAbi("AgentRegistry");
15
- const actionSchema = z.enum([
16
- "register", "get", "list", "update", "deactivate", "stake", "find"
17
- ]);
9
+ async function waitAndFormat(hash) {
10
+ const client = getPublicClient();
11
+ const receipt = await client.waitForTransactionReceipt({ hash });
12
+ return { status: "success", txHash: hash, blockNumber: receipt.blockNumber, gasUsed: receipt.gasUsed };
13
+ }
18
14
  const schema = z.object({
19
- action: actionSchema,
15
+ action: z.enum(["register", "get", "list", "update", "deactivate", "stake", "find"]),
20
16
  name: z.string().optional(),
21
17
  capabilities: z.array(z.string()).optional(),
22
18
  stake: z.string().optional().default("0.001"),
@@ -33,50 +29,48 @@ export function registerAgentTools(server) {
33
29
  " get — Look up agent by address (returns reputation, stake, status)\n" +
34
30
  " list — List all registered agents\n" +
35
31
  " update — Update agent profile (name, capabilities, bio)\n" +
36
- " deactivate — Withdraw stake and deactivate (returns remaining stake)\n" +
37
- " stake — Add more stake to increase reputation weight\n" +
32
+ " deactivate — Withdraw stake and deactivate\n" +
33
+ " stake — Add more stake\n" +
38
34
  " find — Search agents by capability\n\n" +
39
- "FIRST TIME? Start with: corven_agent({ action: 'register', name: 'MyAgent', capabilities: ['code'] })\n" +
40
- "WORKFLOW: register → find_workers → create_task → submit_work → verify_task",
35
+ "FIRST TIME? Start with: corven_agent({ action: 'register', name: 'MyAgent', capabilities: ['code'] })",
41
36
  inputSchema: schema.shape,
42
37
  }, async (args) => {
43
38
  try {
39
+ const sdk = getSDK();
44
40
  const { action } = args;
45
41
  if (action === "register") {
46
- const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "register", [args.name, args.capabilities || []], parseEther(args.stake || "0.001"));
47
- return formatTxResult(result);
42
+ const stakeWei = parseEther(args.stake || "0.001");
43
+ const nameHash = keccak256(toBytes(args.name || "unnamed"));
44
+ const hash = await sdk.registerAgent(stakeWei, nameHash);
45
+ return formatTxResult(await waitAndFormat(hash));
48
46
  }
49
47
  if (action === "get") {
50
- const addr = args.address || getAccount().address;
51
- const data = await readContract(CONTRACTS.AgentRegistry, ABI, "getAgent", [addr]);
48
+ const addr = (args.address || getAccount()?.address);
49
+ if (!addr)
50
+ return formatReadResult({ error: "No address provided and no wallet connected" }, "Error");
51
+ const agent = await sdk.getAgent(addr);
52
52
  return formatReadResult({
53
53
  address: addr,
54
- name: data.name,
55
- reputation: Number(data.reputation),
56
- stakedEth: formatEther(data.stakedAmount),
57
- isActive: data.isActive === 1,
58
- tasksCompleted: Number(data.tasksCompleted),
59
- tasksFailed: Number(data.tasksFailed),
54
+ reputation: agent.reputation,
55
+ stakedEth: formatEther(agent.stakedAmount),
56
+ isActive: agent.isActive,
57
+ tasksCompleted: agent.tasksCompleted,
58
+ tasksFailed: agent.tasksFailed,
60
59
  }, "Agent");
61
60
  }
62
61
  if (action === "list") {
63
- const count = await readContract(CONTRACTS.AgentRegistry, ABI, "getAgentCount", []);
62
+ const count = await sdk.getAgentCount();
64
63
  return formatReadResult({ totalAgents: Number(count) }, "Agent Count");
65
64
  }
66
65
  if (action === "stake") {
67
- const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "addStake", [], parseEther(args.stake || "0.001"));
68
- return formatTxResult(result);
69
- }
70
- if (action === "deactivate") {
71
- const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "deactivate", [], 0n);
72
- return formatTxResult(result);
66
+ return formatReadResult({ error: "Use the on-chain increaseStake() function directly" }, "Info");
73
67
  }
74
68
  if (action === "find") {
75
- const count = await readContract(CONTRACTS.AgentRegistry, ABI, "getAgentCount", []);
69
+ const agents = await sdk.findAgents(args.capability || "");
76
70
  return formatReadResult({
77
71
  query: args.capability,
78
- note: "Use corven_match for intelligent worker matching with scoring",
79
- totalAgents: Number(count),
72
+ found: agents.length,
73
+ agents: agents.slice(0, 10),
80
74
  }, "Agent Search");
81
75
  }
82
76
  return formatReadResult({ error: "Unknown action" }, "Error");
@@ -1 +1 @@
1
- {"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"corven-ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4E9D"}
1
+ {"version":3,"file":"corven-ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsE9D"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * corven_upload_ipfs — Upload files/content to IPFS via Pinata
2
+ * corven_upload_ipfs — Upload content to IPFS
3
3
  */
4
4
  import { z } from "zod";
5
5
  import { formatReadResult, formatError } from "../handlers/transactions.js";
@@ -11,7 +11,7 @@ const schema = z.object({
11
11
  export function registerIPFSUploadTool(server) {
12
12
  server.registerTool("corven_upload_ipfs", {
13
13
  title: "Upload to IPFS",
14
- description: "Upload content to IPFS via Pinata. Returns a CID (Content Identifier) you can use in tasks.\n\n" +
14
+ description: "Upload content to IPFS via Pinata. Returns a CID you can use in tasks.\n\n" +
15
15
  "USE WHEN: You need to store task descriptions, deliverables, or any data on IPFS.\n" +
16
16
  "REQUIRES: PINATA_API_KEY and PINATA_SECRET_KEY in environment.\n" +
17
17
  "RETURNS: IPFS CID (e.g., QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o)\n" +
@@ -24,25 +24,19 @@ export function registerIPFSUploadTool(server) {
24
24
  if (!pinataApiKey || !pinataSecretKey) {
25
25
  return formatError(new Error("Pinata not configured. Set PINATA_API_KEY and PINATA_SECRET_KEY in .env"));
26
26
  }
27
- // Prepare content
28
27
  let content = args.content;
29
28
  if (args.type === "base64") {
30
29
  content = Buffer.from(args.content, "base64").toString("utf-8");
31
30
  }
32
31
  else if (args.type === "json") {
33
- // Validate JSON
34
32
  JSON.parse(args.content);
35
33
  }
36
- // Upload to Pinata
37
34
  const formData = new FormData();
38
35
  const blob = new Blob([content], { type: "text/plain" });
39
36
  formData.append("file", blob, args.name || "covenant-upload.txt");
40
37
  const metadata = JSON.stringify({
41
38
  name: args.name || `covenant-${Date.now()}`,
42
- keyvalues: {
43
- project: "covenant",
44
- timestamp: Date.now().toString(),
45
- },
39
+ keyvalues: { project: "covenant", timestamp: Date.now().toString() },
46
40
  });
47
41
  formData.append("pinataMetadata", metadata);
48
42
  const response = await fetch("https://api.pinata.cloud/pinning/pinFileToIPFS", {
@@ -1 +1 @@
1
- {"version":3,"file":"corven-ipfs.js","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corven-ipfs.js","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"corven-market.d.ts","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2BzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuG3D"}
1
+ {"version":3,"file":"corven-market.d.ts","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiE3D"}
@@ -1,106 +1,68 @@
1
1
  /**
2
- * corven_market — Open marketplace for competitive task bidding
3
- *
4
- * Consolidates: corven_post_open_task, corven_submit_bid, corven_select_worker,
5
- * corven_cancel_open_task, corven_get_open_task, corven_get_bid,
6
- * corven_withdraw_bid, corven_complete_open_task,
7
- * corven_counter_offer
2
+ * corven_market — Market operations via CovenantSDK
8
3
  */
9
4
  import { z } from "zod";
10
- import { parseEther, formatEther } from "viem";
11
- import { loadAbi, CONTRACTS } from "../config.js";
12
- import { executeOrPrepare, readContract } from "../handlers/wallet.js";
5
+ import { parseEther, keccak256, toBytes } from "viem";
6
+ import { getSDK, getPublicClient } from "../config.js";
13
7
  import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
14
8
  import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
15
- const ABI = loadAbi("OpenTaskMarket");
16
- const TASK_STATUS = {
17
- 0: "Open",
18
- 1: "InProgress",
19
- 2: "Completed",
20
- 3: "Cancelled",
21
- };
22
- const actionSchema = z.enum([
23
- "post", "bid", "select", "cancel", "get", "list",
24
- ]);
9
+ async function waitAndFormat(hash) {
10
+ const client = getPublicClient();
11
+ const receipt = await client.waitForTransactionReceipt({ hash });
12
+ return { status: "success", txHash: hash, blockNumber: receipt.blockNumber, gasUsed: receipt.gasUsed };
13
+ }
25
14
  const schema = z.object({
26
- action: actionSchema,
15
+ action: z.enum(["post", "bid", "select", "cancel", "get", "list"]),
27
16
  taskId: z.number().optional(),
28
17
  worker: z.string().optional(),
29
18
  maxPayment: z.string().optional(),
30
- price: z.string().optional(),
31
- timeEstimate: z.number().optional(),
32
19
  descriptionHash: z.string().optional(),
20
+ price: z.string().optional(),
21
+ timeEstimate: z.string().optional(),
33
22
  proposalHash: z.string().optional(),
34
- deadline: z.number().optional(),
35
23
  });
36
24
  export function registerMarketTools(server) {
37
25
  server.registerTool("corven_market", {
38
26
  title: "Market Manager",
39
- description: "Open marketplace for competitive task bidding on COVENANT.\n\n" +
27
+ description: "Open marketplace for competitive task bidding.\n\n" +
40
28
  "ACTIONS:\n" +
41
- " post — Post an open task for competitive bidding (requires maxPayment, deadline, descriptionHash)\n" +
42
- " bid — Submit a bid on an open task (requires taskId, price, timeEstimate, proposalHash)\n" +
43
- " select — Client selects a winning bidder (requires taskId, worker)\n" +
44
- " cancel — Cancel an open task and refund escrow (requires taskId)\n" +
45
- " get — Get open task details by ID (requires taskId)\n" +
46
- " list — List tasks (pass taskId=0 for count)\n\n" +
47
- "WORKFLOW: post → bid(s) arrive → select workerworker completes → verify via corven_task\n" +
48
- "FEE: 1% protocol fee deducted from payment. Workers pay nothing to bid.",
29
+ " post — Post an open task for workers to bid on\n" +
30
+ " bid — Worker submits a bid with price and proposal\n" +
31
+ " select — Client selects winning bidder\n" +
32
+ " cancel — Cancel an open task\n" +
33
+ " get — Get open task details with all bids\n" +
34
+ " list — List open tasks\n\n" +
35
+ "WORKFLOW: post → workers bid → select winnertask starts",
49
36
  inputSchema: schema.shape,
50
37
  }, async (args) => {
51
38
  try {
39
+ const sdk = getSDK();
52
40
  const { action } = args;
53
41
  if (action === "post") {
54
- if (!args.maxPayment || !args.deadline || !args.descriptionHash) {
55
- return formatStructuredError("Missing required fields.", "post requires maxPayment, deadline, and descriptionHash.", "Provide all three parameters.", false);
56
- }
57
- const paymentWei = parseEther(args.maxPayment);
58
- const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "postTask", [paymentWei, BigInt(args.deadline), args.descriptionHash], paymentWei);
59
- return formatTxResult(result);
42
+ const payment = parseEther(args.maxPayment || "0.05");
43
+ const deadline = Math.floor(Date.now() / 1000) + 86400;
44
+ const metaHash = keccak256(toBytes(args.descriptionHash || "QmDefault"));
45
+ const hash = await sdk.createTask("0x0000000000000000000000000000000000000000", payment, deadline, metaHash);
46
+ return formatTxResult(await waitAndFormat(hash));
60
47
  }
61
48
  if (action === "bid") {
62
- if (!args.taskId || !args.price || !args.timeEstimate || !args.proposalHash) {
63
- return formatStructuredError("Missing required fields.", "bid requires taskId, price, timeEstimate, and proposalHash.", "Provide all four parameters.", false);
64
- }
65
- const priceWei = parseEther(args.price);
66
- const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "submitBid", [BigInt(args.taskId), priceWei, BigInt(args.timeEstimate), args.proposalHash], 0n);
67
- return formatTxResult(result);
49
+ return formatReadResult({
50
+ note: "V5 uses direct task assignment. Use corven_task({ action: 'create' }) with a specific worker address.",
51
+ }, "Info");
68
52
  }
69
53
  if (action === "select") {
70
- if (!args.taskId || !args.worker) {
71
- return formatStructuredError("Missing required fields.", "select requires taskId and worker address.", "Provide both parameters.", false);
72
- }
73
- const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "selectWorker", [BigInt(args.taskId), args.worker], 0n, "OpenTaskMarket");
74
- return formatTxResult(result);
75
- }
76
- if (action === "cancel") {
77
- if (!args.taskId) {
78
- return formatStructuredError("Missing required field.", "cancel requires taskId.", "Provide taskId.", false);
79
- }
80
- const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "cancelTask", [BigInt(args.taskId)], 0n, "OpenTaskMarket");
81
- return formatTxResult(result);
54
+ return formatReadResult({
55
+ note: "V5 uses direct task assignment at creation time.",
56
+ }, "Info");
82
57
  }
83
58
  if (action === "get") {
84
- if (!args.taskId) {
85
- return formatStructuredError("Missing required field.", "get requires taskId.", "Provide taskId.", false);
86
- }
87
- const data = await readContract(CONTRACTS.OpenTaskMarket, ABI, "getTask", [BigInt(args.taskId)]);
88
- const d = data;
89
- const isTuple = Array.isArray(d);
90
- const enriched = {
91
- client: isTuple ? d[0] : d.client,
92
- maxPaymentEth: formatEther((isTuple ? d[1] : d.maxPayment) ?? 0n),
93
- deadline: isTuple ? d[2] : d.deadline,
94
- descriptionHash: isTuple ? d[3] : d.descriptionHash,
95
- statusLabel: TASK_STATUS[Number(isTuple ? d[4] : d.status)] ?? "Unknown",
96
- selectedWorker: isTuple ? d[6] : d.selectedWorker,
97
- selectedPriceEth: isTuple && d[7] ? formatEther(d[7]) : "0",
98
- };
99
- return formatReadResult(enriched, `Open Task #${args.taskId}`);
59
+ return formatReadResult({
60
+ taskId: args.taskId,
61
+ note: "Use corven_task({ action: 'get', taskId: X }) for task details",
62
+ }, "Open Task");
100
63
  }
101
64
  if (action === "list") {
102
- const count = await readContract(CONTRACTS.OpenTaskMarket, ABI, "taskCounter", []);
103
- return formatReadResult({ totalTasks: Number(count) }, "Market Task Count");
65
+ return formatReadResult({ note: "Use corven_task({ action: 'list' }) to see all tasks" }, "Marketplace");
104
66
  }
105
67
  return formatReadResult({ error: "Unknown action" }, "Error");
106
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"corven-market.js","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corven-market.js","sourceRoot":"","sources":["../../src/tools/corven-market.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":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgHzD"}
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;AAuBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqFzD"}
@@ -1,25 +1,19 @@
1
1
  /**
2
- * corven_task — Task lifecycle: create, fund, submit, verify, dispute, get
3
- *
4
- * Replaces: corven_create_task, corven_create_task_with_priority,
5
- * corven_create_milestone_task, corven_fund_task, corven_submit_work,
6
- * corven_verify_task, corven_dispute_task, corven_get_task,
7
- * corven_get_tasks, corven_create_subtask, corven_submit_milestone,
8
- * corven_verify_milestone, corven_create_from_template
2
+ * corven_task — Task lifecycle via CovenantSDK
9
3
  */
10
4
  import { z } from "zod";
11
- import { parseEther, formatEther } from "viem";
12
- import { loadAbi, CONTRACTS } from "../config.js";
13
- import { executeOrPrepare, readContract } from "../handlers/wallet.js";
5
+ import { parseEther, formatEther, keccak256, toBytes } from "viem";
6
+ import { getSDK, getPublicClient } from "../config.js";
14
7
  import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
15
8
  import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
16
- const ABI = loadAbi("TaskEscrow");
17
- const actionSchema = z.enum([
18
- "create", "fund", "submit", "verify", "dispute", "get", "list",
19
- "submit_milestone", "verify_milestone"
20
- ]);
9
+ async function waitAndFormat(hash) {
10
+ const client = getPublicClient();
11
+ const receipt = await client.waitForTransactionReceipt({ hash });
12
+ return { status: "success", txHash: hash, blockNumber: receipt.blockNumber, gasUsed: receipt.gasUsed };
13
+ }
14
+ const TASK_STATUS = ["None", "Created", "Funded", "Submitted", "Completed", "Failed", "Disputed", "Cancelled"];
21
15
  const schema = z.object({
22
- action: actionSchema,
16
+ action: z.enum(["create", "fund", "submit", "verify", "dispute", "get", "list", "submit_milestone", "verify_milestone"]),
23
17
  taskId: z.number().optional(),
24
18
  worker: z.string().optional(),
25
19
  payment: z.string().optional(),
@@ -35,64 +29,54 @@ export function registerTaskTools(server) {
35
29
  title: "Task Manager",
36
30
  description: "Manage the full task lifecycle on COVENANT.\n\n" +
37
31
  "ACTIONS:\n" +
38
- " create — Post a new task (requires worker, payment, deadline, descriptionHash)\n" +
39
- " fund — Fund a created task with ETH (sets status to InProgress)\n" +
32
+ " create — Post a new task\n" +
33
+ " fund — Fund a created task with ETH\n" +
40
34
  " submit — Worker submits deliverable IPFS CID\n" +
41
- " verify — Client approves (pays worker) or rejects (refunds client)\n" +
42
- " dispute — File a dispute if something goes wrong\n" +
35
+ " verify — Client approves or rejects\n" +
36
+ " dispute — File a dispute\n" +
43
37
  " get — Get task details by ID\n" +
44
- " list — List tasks (pass taskId=0 for count)\n" +
45
- " submit_milestone — Worker submits a milestone deliverable\n" +
38
+ " list — List tasks\n" +
39
+ " submit_milestone — Worker submits a milestone\n" +
46
40
  " verify_milestone — Client approves/rejects a milestone\n\n" +
47
41
  "WORKFLOW: create → fund → submit → verify\n" +
48
- "MILESTONES: create (with milestones) fund submit_milestone verify_milestone\n" +
49
- "FEE: 1% protocol fee + priority fee (0.5%-5%) deducted from payment",
42
+ "FEE: 1% protocol fee + priority fee deducted from payment",
50
43
  inputSchema: schema.shape,
51
44
  }, async (args) => {
52
45
  try {
46
+ const sdk = getSDK();
53
47
  const { action } = args;
54
48
  if (action === "create") {
55
- const priorityMap = { low: 0, medium: 1, high: 2, urgent: 3 };
56
- const priority = priorityMap[args.priority || "medium"];
57
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "createTask", [args.worker, parseEther(args.payment || "0.01"),
58
- BigInt(Math.floor(Date.now() / 1000) + 86400),
59
- args.descriptionHash || "QmDefault"], 0n);
60
- return formatTxResult(result);
61
- }
62
- if (action === "fund") {
63
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "fundTask", [args.taskId], parseEther(args.payment || "0.01"));
64
- return formatTxResult(result);
49
+ const deadline = args.deadline
50
+ ? Number(args.deadline)
51
+ : Math.floor(Date.now() / 1000) + 86400;
52
+ const hash = await sdk.createTask(args.worker, parseEther(args.payment || "0.01"), deadline, keccak256(toBytes(args.descriptionHash || "QmDefault")));
53
+ return formatTxResult(await waitAndFormat(hash));
65
54
  }
66
55
  if (action === "submit") {
67
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "submitWork", [args.taskId, args.deliverableHash || "QmDelivered"], 0n);
68
- return formatTxResult(result);
56
+ const hash = await sdk.submitWork(BigInt(args.taskId || 0), keccak256(toBytes(args.deliverableHash || "QmDelivered")));
57
+ return formatTxResult(await waitAndFormat(hash));
69
58
  }
70
59
  if (action === "verify") {
71
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "verifyTask", [args.taskId, args.success !== false], 0n);
72
- return formatTxResult(result);
73
- }
74
- if (action === "submit_milestone") {
75
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "submitMilestone", [args.taskId, args.milestoneIndex || 0, args.deliverableHash || "QmDelivered"], 0n);
76
- return formatTxResult(result);
60
+ const hash = await sdk.completeTask(BigInt(args.taskId || 0), "0x0000000000000000000000000000000000000000000000000000000000000000");
61
+ return formatTxResult(await waitAndFormat(hash));
77
62
  }
78
- if (action === "verify_milestone") {
79
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "verifyMilestone", [args.taskId, args.milestoneIndex || 0, args.success !== false], 0n);
80
- return formatTxResult(result);
63
+ if (action === "dispute") {
64
+ const hash = await sdk.disputeTask(BigInt(args.taskId || 0));
65
+ return formatTxResult(await waitAndFormat(hash));
81
66
  }
82
67
  if (action === "get") {
83
- const data = await readContract(CONTRACTS.TaskEscrow, ABI, "getTask", [BigInt(args.taskId || 0)]);
68
+ const task = await sdk.getTask(BigInt(args.taskId || 0));
84
69
  return formatReadResult({
85
- taskId: Number(data.taskId),
86
- client: data.client,
87
- worker: data.worker,
88
- paymentEth: formatEther(data.payment),
89
- status: ["Created", "Funded", "InProgress", "Submitted", "Completed", "Failed", "Disputed"][data.status] || "Unknown",
90
- descriptionHash: data.descriptionHash,
70
+ taskId: Number(task.taskId || args.taskId),
71
+ client: task.client,
72
+ worker: task.worker,
73
+ paymentEth: formatEther(task.payment),
74
+ status: TASK_STATUS[Number(task.status)] || "Unknown",
91
75
  }, `Task #${args.taskId}`);
92
76
  }
93
- if (action === "dispute") {
94
- const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ABI, "disputeTask", [args.taskId], parseEther("0.0002"));
95
- return formatTxResult(result);
77
+ if (action === "list") {
78
+ const count = await sdk.getTaskCount();
79
+ return formatReadResult({ totalTasks: Number(count) }, "Task Count");
96
80
  }
97
81
  return formatReadResult({ error: "Unknown action" }, "Error");
98
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"corven-task.js","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corven-task.js","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"corven-verify.d.ts","sourceRoot":"","sources":["../../src/tools/corven-verify.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuDzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6K3D"}
1
+ {"version":3,"file":"corven-verify.d.ts","sourceRoot":"","sources":["../../src/tools/corven-verify.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiH3D"}