@varun-ai07/covenant-mcp 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +128 -12
  2. package/dist/abis/MultiTokenEscrow.json +836 -0
  3. package/dist/abis/v2/AgentRegistry.json +872 -0
  4. package/dist/abis/v2/DisputeResolution.json +493 -0
  5. package/dist/abis/v2/InsurancePool.json +645 -0
  6. package/dist/abis/v2/ReceiptVerifier.json +394 -0
  7. package/dist/abis/v2/RevisionManager.json +544 -0
  8. package/dist/abis/v2/TaskEscrow.json +1018 -0
  9. package/dist/cli.js +0 -0
  10. package/dist/config.d.ts +13 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +84 -25
  13. package/dist/config.js.map +1 -1
  14. package/dist/handlers/wallet.d.ts.map +1 -1
  15. package/dist/handlers/wallet.js +1 -1
  16. package/dist/handlers/wallet.js.map +1 -1
  17. package/dist/lib/did.d.ts +72 -0
  18. package/dist/lib/did.d.ts.map +1 -0
  19. package/dist/lib/did.js +115 -0
  20. package/dist/lib/did.js.map +1 -0
  21. package/dist/lib/events.d.ts.map +1 -1
  22. package/dist/lib/events.js +2 -2
  23. package/dist/lib/events.js.map +1 -1
  24. package/dist/lib/formatResponse.d.ts +33 -0
  25. package/dist/lib/formatResponse.d.ts.map +1 -0
  26. package/dist/lib/formatResponse.js +92 -0
  27. package/dist/lib/formatResponse.js.map +1 -0
  28. package/dist/lib/schemaHelpers.d.ts +11 -0
  29. package/dist/lib/schemaHelpers.d.ts.map +1 -0
  30. package/dist/lib/schemaHelpers.js +11 -0
  31. package/dist/lib/schemaHelpers.js.map +1 -0
  32. package/dist/lib/store.d.ts +10 -0
  33. package/dist/lib/store.d.ts.map +1 -0
  34. package/dist/lib/store.js +39 -0
  35. package/dist/lib/store.js.map +1 -0
  36. package/dist/lib/verify.d.ts +21 -0
  37. package/dist/lib/verify.d.ts.map +1 -0
  38. package/dist/lib/verify.js +568 -0
  39. package/dist/lib/verify.js.map +1 -0
  40. package/dist/schemas.d.ts +5 -5
  41. package/dist/schemas.d.ts.map +1 -1
  42. package/dist/server.d.ts +1 -25
  43. package/dist/server.d.ts.map +1 -1
  44. package/dist/server.js +53 -37
  45. package/dist/server.js.map +1 -1
  46. package/dist/tools/account-abstraction.d.ts +3 -0
  47. package/dist/tools/account-abstraction.d.ts.map +1 -0
  48. package/dist/tools/account-abstraction.js +364 -0
  49. package/dist/tools/account-abstraction.js.map +1 -0
  50. package/dist/tools/batches.d.ts.map +1 -1
  51. package/dist/tools/batches.js +68 -37
  52. package/dist/tools/batches.js.map +1 -1
  53. package/dist/tools/bounties.d.ts +3 -0
  54. package/dist/tools/bounties.d.ts.map +1 -0
  55. package/dist/tools/bounties.js +304 -0
  56. package/dist/tools/bounties.js.map +1 -0
  57. package/dist/tools/bridge.d.ts +3 -0
  58. package/dist/tools/bridge.d.ts.map +1 -0
  59. package/dist/tools/bridge.js +190 -0
  60. package/dist/tools/bridge.js.map +1 -0
  61. package/dist/tools/collectives.d.ts.map +1 -1
  62. package/dist/tools/collectives.js +75 -48
  63. package/dist/tools/collectives.js.map +1 -1
  64. package/dist/tools/covenant-help.d.ts +3 -0
  65. package/dist/tools/covenant-help.d.ts.map +1 -0
  66. package/dist/tools/covenant-help.js +321 -0
  67. package/dist/tools/covenant-help.js.map +1 -0
  68. package/dist/tools/cross-chain.d.ts +3 -0
  69. package/dist/tools/cross-chain.d.ts.map +1 -0
  70. package/dist/tools/cross-chain.js +77 -0
  71. package/dist/tools/cross-chain.js.map +1 -0
  72. package/dist/tools/disputes.d.ts.map +1 -1
  73. package/dist/tools/disputes.js +39 -33
  74. package/dist/tools/disputes.js.map +1 -1
  75. package/dist/tools/escrow.d.ts.map +1 -1
  76. package/dist/tools/escrow.js +277 -202
  77. package/dist/tools/escrow.js.map +1 -1
  78. package/dist/tools/fiat-onramp.d.ts +3 -0
  79. package/dist/tools/fiat-onramp.d.ts.map +1 -0
  80. package/dist/tools/fiat-onramp.js +108 -0
  81. package/dist/tools/fiat-onramp.js.map +1 -0
  82. package/dist/tools/governance.d.ts +3 -0
  83. package/dist/tools/governance.d.ts.map +1 -0
  84. package/dist/tools/governance.js +271 -0
  85. package/dist/tools/governance.js.map +1 -0
  86. package/dist/tools/grants.d.ts +3 -0
  87. package/dist/tools/grants.d.ts.map +1 -0
  88. package/dist/tools/grants.js +269 -0
  89. package/dist/tools/grants.js.map +1 -0
  90. package/dist/tools/insurance.d.ts.map +1 -1
  91. package/dist/tools/insurance.js +92 -45
  92. package/dist/tools/insurance.js.map +1 -1
  93. package/dist/tools/market.d.ts.map +1 -1
  94. package/dist/tools/market.js +122 -103
  95. package/dist/tools/market.js.map +1 -1
  96. package/dist/tools/matching.d.ts +3 -0
  97. package/dist/tools/matching.d.ts.map +1 -0
  98. package/dist/tools/matching.js +233 -0
  99. package/dist/tools/matching.js.map +1 -0
  100. package/dist/tools/messaging.d.ts +3 -0
  101. package/dist/tools/messaging.d.ts.map +1 -0
  102. package/dist/tools/messaging.js +159 -0
  103. package/dist/tools/messaging.js.map +1 -0
  104. package/dist/tools/multi-token.d.ts +3 -0
  105. package/dist/tools/multi-token.d.ts.map +1 -0
  106. package/dist/tools/multi-token.js +274 -0
  107. package/dist/tools/multi-token.js.map +1 -0
  108. package/dist/tools/offchain-coordinator.d.ts +3 -0
  109. package/dist/tools/offchain-coordinator.d.ts.map +1 -0
  110. package/dist/tools/offchain-coordinator.js +436 -0
  111. package/dist/tools/offchain-coordinator.js.map +1 -0
  112. package/dist/tools/protocol.d.ts.map +1 -1
  113. package/dist/tools/protocol.js +19 -6
  114. package/dist/tools/protocol.js.map +1 -1
  115. package/dist/tools/receipts.d.ts.map +1 -1
  116. package/dist/tools/receipts.js +45 -22
  117. package/dist/tools/receipts.js.map +1 -1
  118. package/dist/tools/registry.d.ts.map +1 -1
  119. package/dist/tools/registry.js +90 -43
  120. package/dist/tools/registry.js.map +1 -1
  121. package/dist/tools/reputation-vc.d.ts +3 -0
  122. package/dist/tools/reputation-vc.d.ts.map +1 -0
  123. package/dist/tools/reputation-vc.js +438 -0
  124. package/dist/tools/reputation-vc.js.map +1 -0
  125. package/dist/tools/revisions.d.ts +3 -0
  126. package/dist/tools/revisions.d.ts.map +1 -0
  127. package/dist/tools/revisions.js +108 -0
  128. package/dist/tools/revisions.js.map +1 -0
  129. package/dist/tools/router.d.ts +3 -0
  130. package/dist/tools/router.d.ts.map +1 -0
  131. package/dist/tools/router.js +104 -0
  132. package/dist/tools/router.js.map +1 -0
  133. package/dist/tools/streaming.d.ts +3 -0
  134. package/dist/tools/streaming.d.ts.map +1 -0
  135. package/dist/tools/streaming.js +350 -0
  136. package/dist/tools/streaming.js.map +1 -0
  137. package/dist/tools/templates.d.ts +3 -0
  138. package/dist/tools/templates.d.ts.map +1 -0
  139. package/dist/tools/templates.js +392 -0
  140. package/dist/tools/templates.js.map +1 -0
  141. package/dist/tools/training.d.ts +3 -0
  142. package/dist/tools/training.d.ts.map +1 -0
  143. package/dist/tools/training.js +304 -0
  144. package/dist/tools/training.js.map +1 -0
  145. package/dist/tools/v2-settlement.d.ts +3 -0
  146. package/dist/tools/v2-settlement.d.ts.map +1 -0
  147. package/dist/tools/v2-settlement.js +226 -0
  148. package/dist/tools/v2-settlement.js.map +1 -0
  149. package/dist/tools/verification.d.ts +3 -0
  150. package/dist/tools/verification.d.ts.map +1 -0
  151. package/dist/tools/verification.js +215 -0
  152. package/dist/tools/verification.js.map +1 -0
  153. package/dist/tools/verify-deep.d.ts +3 -0
  154. package/dist/tools/verify-deep.d.ts.map +1 -0
  155. package/dist/tools/verify-deep.js +125 -0
  156. package/dist/tools/verify-deep.js.map +1 -0
  157. package/dist/types.d.ts +16 -3
  158. package/dist/types.d.ts.map +1 -1
  159. package/dist/types.js +4 -23
  160. package/dist/types.js.map +1 -1
  161. package/dist/utils.d.ts +2 -3
  162. package/dist/utils.d.ts.map +1 -1
  163. package/dist/utils.js +8 -34
  164. package/dist/utils.js.map +1 -1
  165. package/package.json +3 -1
@@ -10,9 +10,13 @@ import { isAddress } from "viem";
10
10
  import { loadAbi, CONTRACTS, getAccount } from "../config.js";
11
11
  import { executeOrPrepare, readContract } from "../handlers/wallet.js";
12
12
  import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
13
+ import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
14
+ import { ethAddress } from "../lib/schemaHelpers.js";
13
15
  import { RECEIPT_TYPE } from "../types.js";
14
16
  import { stringToBytes32, isBytes32 } from "../utils.js";
15
- const ABI = loadAbi("ReceiptVerifier");
17
+ // V2 ReceiptVerifier doesn't have getReceiptsByAgent - use V1 ABI for that function
18
+ const V1_ABI = loadAbi("ReceiptVerifier");
19
+ const V2_ABI = loadAbi("ReceiptVerifier");
16
20
  // Input validation schemas
17
21
  const getAddressSchema = z.object({
18
22
  address: z.string().refine(isAddress, { message: "Invalid Ethereum address" })
@@ -23,19 +27,24 @@ const getReceiptSchema = z.object({
23
27
  const createReceiptSchema = z.object({
24
28
  issuer: z.string().refine(isAddress, { message: "Invalid issuer Ethereum address" }),
25
29
  counterparty: z.string().refine(isAddress, { message: "Invalid counterparty Ethereum address" }),
26
- interactionType: z.number().int().min(0).max(10).describe("Receipt type (0=TaskCompleted, 1=AgentVerified, etc.)"),
30
+ interactionType: z.union([z.number().int().min(0).max(10), z.string()]).describe("Receipt type (0=TaskCompleted, 1=AgentVerified, etc.)"),
27
31
  dataHash: z.string().describe("Hash of the receipt data (will be converted to bytes32)"),
28
32
  });
29
33
  export function registerReceiptTools(server) {
30
34
  // ──────────────────────────────────────────────────────────────
31
- // get_receipt_count
35
+ // get_receipts (list all receipts for an address)
32
36
  // ──────────────────────────────────────────────────────────────
33
- server.registerTool("corven_get_receipt_count", {
34
- title: "Get Receipt Count for Address",
35
- description: "Get the total number of ERC-8004 receipts issued for an agent address. " +
36
- "Use this to check receipt volume before querying individual receipts.",
37
+ server.registerTool("corven_get_receipts", {
38
+ title: "Get All Receipts for Address",
39
+ description: "Fetch all ERC-8004 attestation receipts for an address. Returns receipt details including issuer, counterparty, type, and validity.\n" +
40
+ "USE WHEN: You want to see all attestation receipts issued for a specific agent or address.\n" +
41
+ "REQUIRES: The address must exist on-chain (may have zero receipts).\n" +
42
+ "RETURNS: Array of receipt objects with issuer, counterparty, interaction type, data hash, and validity status.\n" +
43
+ "COMES AFTER: corven_create_receipt issued receipts for this address.\n" +
44
+ "COMES BEFORE: corven_get_receipt (inspect a specific receipt by ID).\n" +
45
+ "NOTE: Returns all receipts where the address is either issuer or counterparty.",
37
46
  inputSchema: {
38
- address: z.string().describe("Agent's Ethereum address"),
47
+ address: ethAddress,
39
48
  },
40
49
  }, async ({ address }) => {
41
50
  try {
@@ -43,20 +52,27 @@ export function registerReceiptTools(server) {
43
52
  if (!validationResult.success) {
44
53
  return formatError(new Error(`Invalid input: ${validationResult.error.issues.map((e) => e.message).join(", ")}`));
45
54
  }
46
- const count = await readContract(CONTRACTS.ReceiptVerifier, ABI, "getAgentReceiptCount", [validationResult.data.address]);
47
- return formatReadResult({ address, receiptCount: Number(count) }, `Receipt count for ${address}`);
55
+ const data = await readContract(CONTRACTS.ReceiptVerifier, V1_ABI, "getReceiptsByAgent", [validationResult.data.address]);
56
+ return formatReadResult({ address, receipts: data }, `Receipts for ${address}`);
48
57
  }
49
58
  catch (e) {
50
- return formatError(e);
59
+ const parsed = parseContractError(e);
60
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
51
61
  }
52
62
  });
63
+ // get_receipt_count is merged into get_receipts (returns count alongside receipts)
53
64
  // ──────────────────────────────────────────────────────────────
54
65
  // get_receipt (was verify_receipt)
55
66
  // ──────────────────────────────────────────────────────────────
56
67
  server.registerTool("corven_get_receipt", {
57
68
  title: "Get Receipt by ID",
58
- description: "Retrieve a specific ERC-8004 receipt by its bytes32 ID. " +
59
- "Returns the receipt details including issuer, counterparty, type, and validity.",
69
+ description: "Retrieve a specific ERC-8004 receipt by its bytes32 ID. Returns the receipt details including issuer, counterparty, type, and validity.\n" +
70
+ "USE WHEN: You know a receipt ID and want to inspect its full details and on-chain validity.\n" +
71
+ "REQUIRES: The receipt ID must be a valid bytes32 hex string.\n" +
72
+ "RETURNS: Receipt details including issuer, counterparty, interaction type, data hash, validity, and human-readable type label.\n" +
73
+ "COMES AFTER: corven_create_receipt or corven_get_receipts provided the receipt ID.\n" +
74
+ "COMES BEFORE: Use the receipt data to verify agent credentials or audit history.\n" +
75
+ "NOTE: Accepts both raw bytes32 hex IDs and string-to-bytes32 converted IDs.",
60
76
  inputSchema: {
61
77
  receiptId: z.string().describe("Receipt ID as bytes32 hex string (0x...64 hex chars)"),
62
78
  },
@@ -76,7 +92,7 @@ export function registerReceiptTools(server) {
76
92
  // Try to convert string to bytes32
77
93
  receiptIdBytes32 = stringToBytes32(receiptId);
78
94
  }
79
- const data = await readContract(CONTRACTS.ReceiptVerifier, ABI, "getReceipt", [receiptIdBytes32]);
95
+ const data = await readContract(CONTRACTS.ReceiptVerifier, V2_ABI, "getReceipt", [receiptIdBytes32]);
80
96
  const enriched = {
81
97
  ...data,
82
98
  typeLabel: RECEIPT_TYPE[data.interactionType] ??
@@ -85,7 +101,8 @@ export function registerReceiptTools(server) {
85
101
  return formatReadResult(enriched, `Receipt ${receiptId}`);
86
102
  }
87
103
  catch (e) {
88
- return formatError(e);
104
+ const parsed = parseContractError(e);
105
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
89
106
  }
90
107
  });
91
108
  // ──────────────────────────────────────────────────────────────
@@ -93,12 +110,17 @@ export function registerReceiptTools(server) {
93
110
  // ──────────────────────────────────────────────────────────────
94
111
  server.registerTool("corven_create_receipt", {
95
112
  title: "Create Receipt",
96
- description: "Issue an ERC-8004 attestation receipt for a completed interaction. " +
97
- "Only authorized issuers can create receipts.",
113
+ description: "Issue an ERC-8004 attestation receipt for a completed interaction. Only authorized issuers can create receipts.\n" +
114
+ "USE WHEN: You want to create a portable on-chain attestation that proves a specific interaction occurred.\n" +
115
+ "REQUIRES: You must be an authorized issuer. Both issuer and counterparty addresses must be valid.\n" +
116
+ "RETURNS: Transaction hash. The receipt ID (bytes32) is emitted in the event logs.\n" +
117
+ "COMES AFTER: A verifiable interaction occurred (task completion, agent verification, capability proof, etc.).\n" +
118
+ "COMES BEFORE: corven_get_receipt or corven_get_receipts to retrieve the receipt.\n" +
119
+ "NOTE: interactionType values: 0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed.",
98
120
  inputSchema: {
99
- issuer: z.string().describe("Issuer's Ethereum address"),
100
- counterparty: z.string().describe("Counterparty's Ethereum address"),
101
- interactionType: z.number().describe("Receipt type (0=TaskCompleted, 1=AgentVerified, etc.)"),
121
+ issuer: ethAddress,
122
+ counterparty: ethAddress,
123
+ interactionType: z.union([z.number(), z.string()]).describe("Receipt type (0=TaskCompleted, 1=AgentVerified, etc.)"),
102
124
  dataHash: z.string().describe("Hash of the receipt data (will be converted to bytes32)"),
103
125
  },
104
126
  }, async ({ issuer, counterparty, interactionType, dataHash }) => {
@@ -113,11 +135,12 @@ export function registerReceiptTools(server) {
113
135
  }
114
136
  // Convert dataHash to bytes32
115
137
  const dataHashBytes32 = stringToBytes32(dataHash);
116
- const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, ABI, "createReceipt", [issuer, counterparty, interactionType, dataHashBytes32]);
138
+ const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, V2_ABI, "createReceipt", [issuer, counterparty, String(interactionType), dataHashBytes32]);
117
139
  return formatTxResult(result);
118
140
  }
119
141
  catch (e) {
120
- return formatError(e);
142
+ const parsed = parseContractError(e);
143
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
121
144
  }
122
145
  });
123
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../src/tools/receipts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../src/tools/receipts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8P1D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2V1D"}
@@ -4,12 +4,17 @@
4
4
  * register_agent — Register a new agent on-chain
5
5
  * get_agent — Look up an agent's profile by address
6
6
  * find_workers — Find agents by capability string
7
+ * add_stake — Increase agent stake
8
+ * deactivate_agent — Deactivate and withdraw stake
9
+ * get_all_agents — List all registered agents
7
10
  */
8
11
  import { z } from "zod";
9
12
  import { parseEther, isAddress } from "viem";
10
13
  import { loadAbi, CONTRACTS, getAccount } from "../config.js";
11
14
  import { executeOrPrepare, readContract } from "../handlers/wallet.js";
12
- import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
15
+ import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
16
+ import { formatSuccess, formatStructuredError, parseContractError } from "../lib/formatResponse.js";
17
+ import { ethAddress, ethAmount, ethStake, agentName, capabilities } from "../lib/schemaHelpers.js";
13
18
  const ABI = loadAbi("AgentRegistry");
14
19
  // Input validation schemas
15
20
  const registerAgentSchema = z.object({
@@ -33,39 +38,52 @@ export function registerAgentTools(server) {
33
38
  // ──────────────────────────────────────────────────────────────
34
39
  server.registerTool("corven_register_agent", {
35
40
  title: "Register Agent",
36
- description: "Register a new AI agent on the AgentRegistry contract. " +
37
- "Requires a name, array of capabilities, and a minimum stake of 0.001 ETH.",
41
+ description: "Creates a permanent on-chain identity for an AI agent on COVENANT.\n" +
42
+ "USE WHEN: First-time setup for any wallet that wants to post tasks, receive tasks, or earn ETH. Call exactly once per wallet address.\n" +
43
+ "REQUIRES: Wallet with at least 0.001 ETH for stake deposit plus ~0.0002 ETH gas.\n" +
44
+ "RETURNS: Agent DID, reputation score (starts at 500/1000), txHash, Basescan URL, and next steps.\n" +
45
+ "COMES BEFORE: All other tools. Nothing works without this.\n" +
46
+ "NOTE: Already registered? Use corven_get_agent instead. Registration is permanent.",
38
47
  inputSchema: {
39
- name: z.string().describe("Agent display name"),
40
- capabilities: z
41
- .array(z.string())
42
- .describe('Capability tags, e.g. ["data-analysis", "code-review"]'),
43
- stake: z
44
- .string()
45
- .optional()
46
- .describe("Stake amount in ETH (default 0.001)"),
48
+ name: agentName,
49
+ capabilities: capabilities,
50
+ stake: ethStake,
47
51
  },
48
52
  }, async ({ name, capabilities, stake }) => {
49
53
  try {
50
54
  // Validate input
51
55
  const validationResult = registerAgentSchema.safeParse({ name, capabilities, stake });
52
56
  if (!validationResult.success) {
53
- return formatError(new Error(`Invalid input: ${validationResult.error.issues.map((e) => e.message).join(", ")}`));
57
+ return formatStructuredError("Invalid input parameters.", validationResult.error.issues.map((e) => e.message).join(", "), "Check name format (alphanumeric, hyphens, underscores), capabilities (1-10 items), and stake (0.001-100 ETH decimal string).", true);
54
58
  }
55
- // Use validated values
56
59
  const validatedName = validationResult.data.name;
57
60
  const validatedCapabilities = validationResult.data.capabilities;
58
61
  const validatedStake = validationResult.data.stake;
59
62
  const account = getAccount();
60
63
  if (!account) {
61
- return formatError(new Error("No private key configured cannot send transactions"));
64
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY environment variable is not set.", "Set PRIVATE_KEY in your .env file to a valid Ethereum private key with ETH on Base Sepolia.", false);
62
65
  }
63
66
  const stakeAmount = parseEther(validatedStake);
64
67
  const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "register", [validatedName, validatedCapabilities], stakeAmount);
68
+ if (result.status === "success") {
69
+ return formatSuccess(`Agent '${validatedName}' registered on COVENANT with reputation 500/1000 and ${validatedCapabilities.length} capabilities.`, {
70
+ agentName: validatedName,
71
+ walletAddress: account,
72
+ reputation: 500,
73
+ capabilities: validatedCapabilities,
74
+ stakeDeposited: `${validatedStake} ETH`,
75
+ isActive: true,
76
+ }, result.txHash, [
77
+ "Registration complete. To find tasks as a worker: corven_get_worker_tasks.",
78
+ "To post a task as a client: corven_create_task or corven_post_open_task.",
79
+ "To see your full profile: corven_get_agent with your wallet address.",
80
+ ]);
81
+ }
65
82
  return formatTxResult(result);
66
83
  }
67
84
  catch (e) {
68
- return formatError(e);
85
+ const parsed = parseContractError(e);
86
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
69
87
  }
70
88
  });
71
89
  // ──────────────────────────────────────────────────────────────
@@ -73,25 +91,27 @@ export function registerAgentTools(server) {
73
91
  // ──────────────────────────────────────────────────────────────
74
92
  server.registerTool("corven_get_agent", {
75
93
  title: "Get Agent Profile",
76
- description: "Retrieve the full on-chain profile for a registered agent by address. " +
77
- "Returns name, DID, reputation, staked amount, capabilities, task counts.",
94
+ description: "Fetches the complete on-chain profile for any registered agent.\n" +
95
+ "USE WHEN: Checking if an agent is registered before hiring them. Verifying your own reputation. Researching a potential worker.\n" +
96
+ "REQUIRES: Nothing. Free read-only call. No gas cost.\n" +
97
+ "RETURNS: Name, DID, reputation (0-1000), capabilities, stake amount, tasks completed, tasks failed, active status.\n" +
98
+ "COMES AFTER: corven_find_workers when you want full details on a candidate.",
78
99
  inputSchema: {
79
- address: z.string().describe("Agent's Ethereum address (0x...)"),
100
+ address: ethAddress,
80
101
  },
81
102
  }, async ({ address }) => {
82
103
  try {
83
- // Validate input
84
104
  const validationResult = getAgentSchema.safeParse({ address });
85
105
  if (!validationResult.success) {
86
- return formatError(new Error(`Invalid input: ${validationResult.error.issues.map((e) => e.message).join(", ")}`));
106
+ return formatStructuredError("Invalid Ethereum address.", `Received '${address}' — must be a full 42-character 0x address.`, "Pass the full address starting with 0x. Example: 0x715f3b64189EcA51a57567962Cd2278dc7a5e92C", false);
87
107
  }
88
- // Use validated address
89
108
  const validatedAddress = validationResult.data.address;
90
109
  const data = await readContract(CONTRACTS.AgentRegistry, ABI, "getAgent", [validatedAddress]);
91
110
  return formatReadResult(data, `Agent profile for ${address}`);
92
111
  }
93
112
  catch (e) {
94
- return formatError(e);
113
+ const parsed = parseContractError(e);
114
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
95
115
  }
96
116
  });
97
117
  // ──────────────────────────────────────────────────────────────
@@ -99,37 +119,43 @@ export function registerAgentTools(server) {
99
119
  // ──────────────────────────────────────────────────────────────
100
120
  server.registerTool("corven_find_workers", {
101
121
  title: "Find Workers by Capability",
102
- description: "Discover agents that have a specific capability tag. " +
103
- "Returns addresses and profiles sorted by reputation (highest first).",
122
+ description: "Searches the registry for active agents with a specific capability. Returns them sorted by reputation highest first.\n" +
123
+ "USE WHEN: Before creating any task. This is how you discover who can do the work.\n" +
124
+ "REQUIRES: Nothing. Free read-only call. No gas cost.\n" +
125
+ "RETURNS: Array of agent profiles with address, name, reputation score, success rate, active task count.\n" +
126
+ "COMES BEFORE: corven_create_task or corven_post_open_task. Use the returned address as the worker parameter.\n" +
127
+ "NOTE: The first result has the highest reputation. For high-value tasks, always use a high-reputation worker.",
104
128
  inputSchema: {
105
129
  capability: z
106
130
  .string()
107
- .describe('Capability to search for, e.g. "data-analysis"'),
131
+ .describe('The capability tag to search for. ' +
132
+ 'Valid values: "data-analysis", "code-review", "content-writing", ' +
133
+ '"financial-analysis", "research", "translation", "testing", ' +
134
+ '"security-audit", "documentation", "smart-contract", "python", ' +
135
+ '"visualization", "api-integration", "ml-training", "design". ' +
136
+ 'Returns all active agents with this capability sorted by reputation.'),
108
137
  },
109
138
  }, async ({ capability }) => {
110
139
  try {
111
- // Validate input
112
140
  const validationResult = findWorkersSchema.safeParse({ capability });
113
141
  if (!validationResult.success) {
114
- return formatError(new Error(`Invalid input: ${validationResult.error.issues.map((e) => e.message).join(", ")}`));
142
+ return formatStructuredError("Invalid capability string.", `Received '${capability}' must be 1-50 characters.`, "Pass a valid capability tag like 'data-analysis', 'code-review', or 'research'.", true);
115
143
  }
116
- // Use validated capability
117
144
  const validatedCapability = validationResult.data.capability;
118
145
  const addresses = (await readContract(CONTRACTS.AgentRegistry, ABI, "getAgentsByCapability", [capability]));
119
146
  if (addresses.length === 0) {
120
147
  return formatReadResult({ capability, count: 0, workers: [] }, `No workers found for "${capability}"`);
121
148
  }
122
- // Fetch full profiles
123
149
  const workers = await Promise.all(addresses.map(async (addr) => {
124
150
  const profile = await readContract(CONTRACTS.AgentRegistry, ABI, "getAgent", [addr]);
125
151
  return { address: addr, ...profile };
126
152
  }));
127
- // Sort by reputation descending
128
153
  workers.sort((a, b) => Number(b.reputation ?? 0) - Number(a.reputation ?? 0));
129
154
  return formatReadResult({ capability, count: workers.length, workers }, `Workers with capability "${capability}"`);
130
155
  }
131
156
  catch (e) {
132
- return formatError(e);
157
+ const parsed = parseContractError(e);
158
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
133
159
  }
134
160
  });
135
161
  // ──────────────────────────────────────────────────────────────
@@ -137,23 +163,32 @@ export function registerAgentTools(server) {
137
163
  // ──────────────────────────────────────────────────────────────
138
164
  server.registerTool("corven_add_stake", {
139
165
  title: "Add Stake",
140
- description: "Add additional ETH stake to an existing agent registration. " +
141
- "Higher stake increases trust and priority in the network.",
166
+ description: "Adds additional ETH stake to your existing agent registration. Higher stake increases trust and priority.\n" +
167
+ "USE WHEN: Boosting your agent's reputation weight. Preparing for high-value tasks that favor staked agents.\n" +
168
+ "REQUIRES: You must be a registered agent. Wallet needs the stake amount plus ~0.0002 ETH gas.\n" +
169
+ "RETURNS: Amount added, total stake, txHash, Basescan link.\n" +
170
+ "COMES AFTER: corven_register_agent (must be registered first).\n" +
171
+ "COMES BEFORE: Higher stake improves ranking in corven_find_workers results.\n" +
172
+ "NOTE: Stake is withdrawable via corven_deactivate_agent when you leave the protocol.",
142
173
  inputSchema: {
143
- amount: z.string().describe("Amount of ETH to add as stake, e.g. '0.01'"),
174
+ amount: ethAmount,
144
175
  },
145
176
  }, async ({ amount }) => {
146
177
  try {
147
178
  const account = getAccount();
148
179
  if (!account) {
149
- return formatError(new Error("No private key configured cannot send transactions"));
180
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY environment variable is not set.", "Set PRIVATE_KEY in your .env file.", false);
150
181
  }
151
182
  const stakeAmount = parseEther(amount);
152
183
  const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "addStake", [], stakeAmount);
184
+ if (result.status === "success") {
185
+ return formatSuccess(`Added ${amount} ETH to stake.`, { amount: `${amount} ETH`, txHash: result.txHash }, result.txHash, ["Your increased stake will be reflected in your agent profile on the next query."]);
186
+ }
153
187
  return formatTxResult(result);
154
188
  }
155
189
  catch (e) {
156
- return formatError(e);
190
+ const parsed = parseContractError(e);
191
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
157
192
  }
158
193
  });
159
194
  // ──────────────────────────────────────────────────────────────
@@ -161,20 +196,28 @@ export function registerAgentTools(server) {
161
196
  // ──────────────────────────────────────────────────────────────
162
197
  server.registerTool("corven_deactivate_agent", {
163
198
  title: "Deactivate Agent",
164
- description: "Deactivate your agent registration and withdraw staked ETH. " +
165
- "This action is irreversible your agent will no longer be discoverable.",
199
+ description: "Deactivates your agent registration and withdraws all staked ETH to your wallet.\n" +
200
+ "USE WHEN: Permanently leaving the protocol. Withdrawing your security deposit.\n" +
201
+ "REQUIRES: You must be a registered and active agent. No active (InProgress) tasks.\n" +
202
+ "RETURNS: Deactivation confirmation, wallet address that received stake, txHash.\n" +
203
+ "COMES AFTER: All tasks are completed or cancelled.\n" +
204
+ "NOTE: IRREVERSIBLE. Your agent is permanently removed from the registry. To return, use a different wallet address with corven_register_agent.",
166
205
  inputSchema: {},
167
206
  }, async () => {
168
207
  try {
169
208
  const account = getAccount();
170
209
  if (!account) {
171
- return formatError(new Error("No private key configured cannot send transactions"));
210
+ return formatStructuredError("No private key configured.", "PRIVATE_KEY environment variable is not set.", "Set PRIVATE_KEY in your .env file.", false);
172
211
  }
173
212
  const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "deactivate", []);
213
+ if (result.status === "success") {
214
+ return formatSuccess("Agent deactivated. Staked ETH will be returned to your wallet.", { deactivated: true, wallet: account }, result.txHash, ["Registration is permanent. To re-activate, use a different wallet address."]);
215
+ }
174
216
  return formatTxResult(result);
175
217
  }
176
218
  catch (e) {
177
- return formatError(e);
219
+ const parsed = parseContractError(e);
220
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
178
221
  }
179
222
  });
180
223
  // ──────────────────────────────────────────────────────────────
@@ -182,8 +225,11 @@ export function registerAgentTools(server) {
182
225
  // ──────────────────────────────────────────────────────────────
183
226
  server.registerTool("corven_get_all_agents", {
184
227
  title: "Get All Agents",
185
- description: "Retrieve the addresses of all registered agents on the protocol. " +
186
- "Use corven_get_agent to get full profiles for each address.",
228
+ description: "Returns the addresses of every registered agent on the protocol.\n" +
229
+ "USE WHEN: Building a directory. Discovering all participants. Checking protocol adoption.\n" +
230
+ "REQUIRES: Nothing. Free read-only call.\n" +
231
+ "RETURNS: Count and array of Ethereum addresses. Each needs corven_get_agent for full profile.\n" +
232
+ "COMES BEFORE: Call corven_get_agent on each address to get name, reputation, capabilities, and stake.",
187
233
  inputSchema: {},
188
234
  }, async () => {
189
235
  try {
@@ -191,7 +237,8 @@ export function registerAgentTools(server) {
191
237
  return formatReadResult({ count: addresses.length, agents: addresses }, "All Registered Agents");
192
238
  }
193
239
  catch (e) {
194
- return formatError(e);
240
+ const parsed = parseContractError(e);
241
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
195
242
  }
196
243
  });
197
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.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 registerReputationVCTools(server: McpServer): void;
3
+ //# sourceMappingURL=reputation-vc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation-vc.d.ts","sourceRoot":"","sources":["../../src/tools/reputation-vc.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6LzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkYjE"}