@varun-ai07/covenant-mcp 1.3.2 → 2.0.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 (214) hide show
  1. package/dist/abis/GrantProgram.json +778 -0
  2. package/dist/abis/RevisionManager.json +544 -0
  3. package/dist/abis/TrainingMarketplace.json +787 -0
  4. package/dist/cli.js +0 -0
  5. package/dist/config.d.ts +15 -1
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +23 -3
  8. package/dist/config.js.map +1 -1
  9. package/dist/server.d.ts +3 -2
  10. package/dist/server.d.ts.map +1 -1
  11. package/dist/server.js +63 -63
  12. package/dist/server.js.map +1 -1
  13. package/dist/shared-types.js +8 -8
  14. package/dist/tools/{registry.d.ts → corven-agent.d.ts} +1 -1
  15. package/dist/tools/corven-agent.d.ts.map +1 -0
  16. package/dist/tools/corven-agent.js +90 -0
  17. package/dist/tools/corven-agent.js.map +1 -0
  18. package/dist/tools/corven-attest.d.ts +3 -0
  19. package/dist/tools/corven-attest.d.ts.map +1 -0
  20. package/dist/tools/corven-attest.js +87 -0
  21. package/dist/tools/corven-attest.js.map +1 -0
  22. package/dist/tools/{batches.d.ts → corven-batch.d.ts} +1 -1
  23. package/dist/tools/corven-batch.d.ts.map +1 -0
  24. package/dist/tools/corven-batch.js +116 -0
  25. package/dist/tools/corven-batch.js.map +1 -0
  26. package/dist/tools/{bounties.d.ts → corven-bounty.d.ts} +1 -1
  27. package/dist/tools/corven-bounty.d.ts.map +1 -0
  28. package/dist/tools/corven-bounty.js +72 -0
  29. package/dist/tools/corven-bounty.js.map +1 -0
  30. package/dist/tools/{collectives.d.ts → corven-collective.d.ts} +1 -1
  31. package/dist/tools/corven-collective.d.ts.map +1 -0
  32. package/dist/tools/corven-collective.js +105 -0
  33. package/dist/tools/corven-collective.js.map +1 -0
  34. package/dist/tools/corven-fiat.d.ts +3 -0
  35. package/dist/tools/corven-fiat.d.ts.map +1 -0
  36. package/dist/tools/corven-fiat.js +42 -0
  37. package/dist/tools/corven-fiat.js.map +1 -0
  38. package/dist/tools/corven-govern.d.ts +3 -0
  39. package/dist/tools/corven-govern.d.ts.map +1 -0
  40. package/dist/tools/corven-govern.js +65 -0
  41. package/dist/tools/corven-govern.js.map +1 -0
  42. package/dist/tools/{grants.d.ts → corven-grants.d.ts} +1 -1
  43. package/dist/tools/corven-grants.d.ts.map +1 -0
  44. package/dist/tools/corven-grants.js +67 -0
  45. package/dist/tools/corven-grants.js.map +1 -0
  46. package/dist/tools/{insurance.d.ts → corven-insurance.d.ts} +1 -1
  47. package/dist/tools/corven-insurance.d.ts.map +1 -0
  48. package/dist/tools/corven-insurance.js +103 -0
  49. package/dist/tools/corven-insurance.js.map +1 -0
  50. package/dist/tools/{market.d.ts → corven-market.d.ts} +1 -1
  51. package/dist/tools/corven-market.d.ts.map +1 -0
  52. package/dist/tools/corven-market.js +113 -0
  53. package/dist/tools/corven-market.js.map +1 -0
  54. package/dist/tools/corven-match.d.ts +3 -0
  55. package/dist/tools/corven-match.d.ts.map +1 -0
  56. package/dist/tools/corven-match.js +235 -0
  57. package/dist/tools/corven-match.js.map +1 -0
  58. package/dist/tools/corven-message.d.ts +3 -0
  59. package/dist/tools/corven-message.d.ts.map +1 -0
  60. package/dist/tools/corven-message.js +82 -0
  61. package/dist/tools/corven-message.js.map +1 -0
  62. package/dist/tools/corven-multi.d.ts +3 -0
  63. package/dist/tools/corven-multi.d.ts.map +1 -0
  64. package/dist/tools/corven-multi.js +197 -0
  65. package/dist/tools/corven-multi.js.map +1 -0
  66. package/dist/tools/corven-reputation.d.ts +3 -0
  67. package/dist/tools/corven-reputation.d.ts.map +1 -0
  68. package/dist/tools/corven-reputation.js +126 -0
  69. package/dist/tools/corven-reputation.js.map +1 -0
  70. package/dist/tools/{revisions.d.ts → corven-revision.d.ts} +1 -1
  71. package/dist/tools/corven-revision.d.ts.map +1 -0
  72. package/dist/tools/corven-revision.js +73 -0
  73. package/dist/tools/corven-revision.js.map +1 -0
  74. package/dist/tools/{router.d.ts → corven-router.d.ts} +1 -1
  75. package/dist/tools/corven-router.d.ts.map +1 -0
  76. package/dist/tools/corven-router.js +116 -0
  77. package/dist/tools/corven-router.js.map +1 -0
  78. package/dist/tools/corven-stats.d.ts +3 -0
  79. package/dist/tools/corven-stats.d.ts.map +1 -0
  80. package/dist/tools/corven-stats.js +97 -0
  81. package/dist/tools/corven-stats.js.map +1 -0
  82. package/dist/tools/corven-stream.d.ts +3 -0
  83. package/dist/tools/corven-stream.d.ts.map +1 -0
  84. package/dist/tools/corven-stream.js +197 -0
  85. package/dist/tools/corven-stream.js.map +1 -0
  86. package/dist/tools/corven-task.d.ts +3 -0
  87. package/dist/tools/corven-task.d.ts.map +1 -0
  88. package/dist/tools/corven-task.js +105 -0
  89. package/dist/tools/corven-task.js.map +1 -0
  90. package/dist/tools/{training.d.ts → corven-training.d.ts} +1 -1
  91. package/dist/tools/corven-training.d.ts.map +1 -0
  92. package/dist/tools/corven-training.js +73 -0
  93. package/dist/tools/corven-training.js.map +1 -0
  94. package/dist/tools/corven-verify.d.ts +3 -0
  95. package/dist/tools/corven-verify.d.ts.map +1 -0
  96. package/dist/tools/corven-verify.js +149 -0
  97. package/dist/tools/corven-verify.js.map +1 -0
  98. package/dist/tools/corven-wallet.d.ts +3 -0
  99. package/dist/tools/corven-wallet.d.ts.map +1 -0
  100. package/dist/tools/corven-wallet.js +235 -0
  101. package/dist/tools/corven-wallet.js.map +1 -0
  102. package/dist/tools/covenant-help.d.ts.map +1 -1
  103. package/dist/tools/covenant-help.js +88 -312
  104. package/dist/tools/covenant-help.js.map +1 -1
  105. package/dist/tools/disputes.d.ts.map +1 -1
  106. package/dist/tools/disputes.js +26 -0
  107. package/dist/tools/disputes.js.map +1 -1
  108. package/dist/types.d.ts +2 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/package.json +1 -1
  111. package/dist/abis/v2/DisputeResolution.json +0 -493
  112. package/dist/abis/v2/InsurancePool.json +0 -645
  113. package/dist/tools/account-abstraction.d.ts +0 -3
  114. package/dist/tools/account-abstraction.d.ts.map +0 -1
  115. package/dist/tools/account-abstraction.js +0 -364
  116. package/dist/tools/account-abstraction.js.map +0 -1
  117. package/dist/tools/batches.d.ts.map +0 -1
  118. package/dist/tools/batches.js +0 -231
  119. package/dist/tools/batches.js.map +0 -1
  120. package/dist/tools/bounties.d.ts.map +0 -1
  121. package/dist/tools/bounties.js +0 -304
  122. package/dist/tools/bounties.js.map +0 -1
  123. package/dist/tools/bridge.d.ts +0 -3
  124. package/dist/tools/bridge.d.ts.map +0 -1
  125. package/dist/tools/bridge.js +0 -190
  126. package/dist/tools/bridge.js.map +0 -1
  127. package/dist/tools/collectives.d.ts.map +0 -1
  128. package/dist/tools/collectives.js +0 -249
  129. package/dist/tools/collectives.js.map +0 -1
  130. package/dist/tools/cross-chain.d.ts +0 -3
  131. package/dist/tools/cross-chain.d.ts.map +0 -1
  132. package/dist/tools/cross-chain.js +0 -77
  133. package/dist/tools/cross-chain.js.map +0 -1
  134. package/dist/tools/escrow.d.ts +0 -3
  135. package/dist/tools/escrow.d.ts.map +0 -1
  136. package/dist/tools/escrow.js +0 -606
  137. package/dist/tools/escrow.js.map +0 -1
  138. package/dist/tools/fiat-onramp.d.ts +0 -3
  139. package/dist/tools/fiat-onramp.d.ts.map +0 -1
  140. package/dist/tools/fiat-onramp.js +0 -108
  141. package/dist/tools/fiat-onramp.js.map +0 -1
  142. package/dist/tools/governance.d.ts +0 -3
  143. package/dist/tools/governance.d.ts.map +0 -1
  144. package/dist/tools/governance.js +0 -271
  145. package/dist/tools/governance.js.map +0 -1
  146. package/dist/tools/grants.d.ts.map +0 -1
  147. package/dist/tools/grants.js +0 -269
  148. package/dist/tools/grants.js.map +0 -1
  149. package/dist/tools/insurance.d.ts.map +0 -1
  150. package/dist/tools/insurance.js +0 -271
  151. package/dist/tools/insurance.js.map +0 -1
  152. package/dist/tools/market.d.ts.map +0 -1
  153. package/dist/tools/market.js +0 -393
  154. package/dist/tools/market.js.map +0 -1
  155. package/dist/tools/matching.d.ts +0 -3
  156. package/dist/tools/matching.d.ts.map +0 -1
  157. package/dist/tools/matching.js +0 -233
  158. package/dist/tools/matching.js.map +0 -1
  159. package/dist/tools/messaging.d.ts +0 -3
  160. package/dist/tools/messaging.d.ts.map +0 -1
  161. package/dist/tools/messaging.js +0 -159
  162. package/dist/tools/messaging.js.map +0 -1
  163. package/dist/tools/multi-token.d.ts +0 -3
  164. package/dist/tools/multi-token.d.ts.map +0 -1
  165. package/dist/tools/multi-token.js +0 -274
  166. package/dist/tools/multi-token.js.map +0 -1
  167. package/dist/tools/offchain-coordinator.d.ts +0 -3
  168. package/dist/tools/offchain-coordinator.d.ts.map +0 -1
  169. package/dist/tools/offchain-coordinator.js +0 -436
  170. package/dist/tools/offchain-coordinator.js.map +0 -1
  171. package/dist/tools/protocol.d.ts +0 -3
  172. package/dist/tools/protocol.d.ts.map +0 -1
  173. package/dist/tools/protocol.js +0 -127
  174. package/dist/tools/protocol.js.map +0 -1
  175. package/dist/tools/receipts.d.ts +0 -3
  176. package/dist/tools/receipts.d.ts.map +0 -1
  177. package/dist/tools/receipts.js +0 -147
  178. package/dist/tools/receipts.js.map +0 -1
  179. package/dist/tools/registry.d.ts.map +0 -1
  180. package/dist/tools/registry.js +0 -245
  181. package/dist/tools/registry.js.map +0 -1
  182. package/dist/tools/reputation-vc.d.ts +0 -3
  183. package/dist/tools/reputation-vc.d.ts.map +0 -1
  184. package/dist/tools/reputation-vc.js +0 -438
  185. package/dist/tools/reputation-vc.js.map +0 -1
  186. package/dist/tools/revisions.d.ts.map +0 -1
  187. package/dist/tools/revisions.js +0 -108
  188. package/dist/tools/revisions.js.map +0 -1
  189. package/dist/tools/router.d.ts.map +0 -1
  190. package/dist/tools/router.js +0 -104
  191. package/dist/tools/router.js.map +0 -1
  192. package/dist/tools/streaming.d.ts +0 -3
  193. package/dist/tools/streaming.d.ts.map +0 -1
  194. package/dist/tools/streaming.js +0 -350
  195. package/dist/tools/streaming.js.map +0 -1
  196. package/dist/tools/templates.d.ts +0 -3
  197. package/dist/tools/templates.d.ts.map +0 -1
  198. package/dist/tools/templates.js +0 -392
  199. package/dist/tools/templates.js.map +0 -1
  200. package/dist/tools/training.d.ts.map +0 -1
  201. package/dist/tools/training.js +0 -304
  202. package/dist/tools/training.js.map +0 -1
  203. package/dist/tools/v2-settlement.d.ts +0 -3
  204. package/dist/tools/v2-settlement.d.ts.map +0 -1
  205. package/dist/tools/v2-settlement.js +0 -226
  206. package/dist/tools/v2-settlement.js.map +0 -1
  207. package/dist/tools/verification.d.ts +0 -3
  208. package/dist/tools/verification.d.ts.map +0 -1
  209. package/dist/tools/verification.js +0 -215
  210. package/dist/tools/verification.js.map +0 -1
  211. package/dist/tools/verify-deep.d.ts +0 -3
  212. package/dist/tools/verify-deep.d.ts.map +0 -1
  213. package/dist/tools/verify-deep.js +0 -125
  214. package/dist/tools/verify-deep.js.map +0 -1
@@ -1,215 +0,0 @@
1
- /**
2
- * Capability & Reputation Verification MCP Tools
3
- *
4
- * Exposes the deployed ZK verifier contracts (CapabilityVerifier, ReputationVerifier)
5
- * and the ERC-8004 receipt system for on-chain attestation anchoring.
6
- */
7
- import { z } from "zod";
8
- import { isAddress, keccak256, toBytes } from "viem";
9
- import { loadAbi, CONTRACTS, getAccount } from "../config.js";
10
- import { executeOrPrepare, readContract } from "../handlers/wallet.js";
11
- import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
12
- import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
13
- import { ethAddress } from "../lib/schemaHelpers.js";
14
- const REGISTRY_ABI = loadAbi("AgentRegistry");
15
- const CAPABILITY_VERIFIER_ABI = loadAbi("CapabilityVerifier");
16
- const REPUTATION_VERIFIER_ABI = loadAbi("ReputationVerifier");
17
- const RECEIPT_ABI = loadAbi("ReceiptVerifier");
18
- // ─── Input Schemas ─────────────────────────────────────────────────
19
- const verifyCapabilitySchema = z.object({
20
- agent: z.string().refine(isAddress, { message: "Invalid agent address" }).describe("Agent address to verify"),
21
- capability: z.string().min(1).max(50).describe("Capability to verify (e.g. 'python', 'security')"),
22
- proof: z.string().min(1).describe("ZK proof data (hex-encoded)"),
23
- publicSignals: z.array(z.string()).min(1).describe("Public signals for the proof"),
24
- });
25
- const verifyReputationSchema = z.object({
26
- agent: z.string().refine(isAddress, { message: "Invalid agent address" }).describe("Agent address"),
27
- threshold: z.number().int().min(0).max(1000).describe("Minimum reputation threshold to verify"),
28
- proof: z.string().min(1).describe("ZK proof data (hex-encoded)"),
29
- publicSignals: z.array(z.string()).min(1).describe("Public signals for the proof"),
30
- });
31
- const createAttestationSchema = z.object({
32
- counterparty: z.string().refine(isAddress, { message: "Invalid address" }).describe("Counterparty address"),
33
- interactionType: z.number().int().min(0).max(5).describe("Receipt type (0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed)"),
34
- dataHash: z.string().min(1).describe("Hash of the attestation data"),
35
- });
36
- const verifyReceiptSchema = z.object({
37
- receiptId: z.string().min(1).describe("Receipt ID (bytes32 hex)"),
38
- });
39
- const batchVerifySchema = z.object({
40
- receiptIds: z.array(z.string()).min(1).max(50).describe("Receipt IDs to verify"),
41
- });
42
- // ─── Tool Registration ─────────────────────────────────────────────
43
- export function registerVerificationTools(server) {
44
- // ──────────────────────────────────────────────────────────────
45
- // corven_verify_capability_proof
46
- // ──────────────────────────────────────────────────────────────
47
- server.registerTool("corven_verify_capability_proof", {
48
- title: "Verify Capability Proof",
49
- description: "Verify a ZK proof that an agent possesses a specific capability. Uses the deployed Groth16 verifier. On-chain verification with cryptographic guarantee.\n" +
50
- "USE WHEN: You need to cryptographically verify that an agent has a claimed capability without trusting their self-report.\n" +
51
- "REQUIRES: A valid ZK proof generated off-chain for the capability. The agent must be registered.\n" +
52
- "RETURNS: Transaction hash. The verification result is stored on-chain.\n" +
53
- "COMES AFTER: The agent generated a ZK proof off-chain using their capability credentials.\n" +
54
- "COMES BEFORE: Use the verification result in task assignment decisions or reputation checks.\n" +
55
- "NOTE: Uses Groth16 proof system. The proof is verified on-chain with zero knowledge — the capability details remain private.",
56
- inputSchema: {
57
- agent: ethAddress,
58
- capability: z.string().describe("Capability to verify (e.g. 'python', 'security')"),
59
- proof: z.string().describe("ZK proof data (hex-encoded)"),
60
- publicSignals: z.array(z.string()).describe("Public signals for the proof"),
61
- },
62
- }, async (params) => {
63
- try {
64
- const parsed = verifyCapabilitySchema.safeParse(params);
65
- if (!parsed.success)
66
- return formatError(parsed.error);
67
- const { agent, capability, proof, publicSignals } = parsed.data;
68
- const account = getAccount();
69
- if (!account)
70
- return formatError(new Error("No wallet configured."));
71
- // Call the capability verifier contract
72
- const proofHash = keccak256(toBytes(proof));
73
- const result = await executeOrPrepare(CONTRACTS.AgentRegistry, REGISTRY_ABI, "verifyCapabilityProof", [agent, capability, proof, publicSignals]);
74
- return formatTxResult(result);
75
- }
76
- catch (e) {
77
- const parsed = parseContractError(e);
78
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
79
- }
80
- });
81
- // ──────────────────────────────────────────────────────────────
82
- // corven_verify_reputation_proof
83
- // ──────────────────────────────────────────────────────────────
84
- server.registerTool("corven_verify_reputation_proof", {
85
- title: "Verify Reputation Proof",
86
- description: "Verify a ZK proof that an agent's reputation meets a threshold without revealing the exact score. On-chain verification.\n" +
87
- "USE WHEN: You need to verify an agent meets a minimum reputation score for task eligibility without learning their exact score.\n" +
88
- "REQUIRES: A valid ZK proof generated off-chain. The agent must be registered with a reputation score.\n" +
89
- "RETURNS: Transaction hash. The verification result is stored on-chain.\n" +
90
- "COMES AFTER: The agent generated a ZK reputation proof off-chain.\n" +
91
- "COMES BEFORE: Task assignment based on verified reputation thresholds.\n" +
92
- "NOTE: Zero-knowledge — proves the score is above the threshold without revealing the exact value.",
93
- inputSchema: {
94
- agent: ethAddress,
95
- threshold: z.number().describe("Minimum reputation threshold (0-1000)"),
96
- proof: z.string().describe("ZK proof data (hex-encoded)"),
97
- publicSignals: z.array(z.string()).describe("Public signals for the proof"),
98
- },
99
- }, async (params) => {
100
- try {
101
- const parsed = verifyReputationSchema.safeParse(params);
102
- if (!parsed.success)
103
- return formatError(parsed.error);
104
- const { agent, threshold, proof, publicSignals } = parsed.data;
105
- const result = await executeOrPrepare(CONTRACTS.ReputationVerifier, REPUTATION_VERIFIER_ABI, "verifyReputation", [agent, BigInt(threshold), proof, publicSignals]);
106
- return formatTxResult(result);
107
- }
108
- catch (e) {
109
- const parsed = parseContractError(e);
110
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
111
- }
112
- });
113
- // ──────────────────────────────────────────────────────────────
114
- // corven_create_attestation
115
- // ──────────────────────────────────────────────────────────────
116
- server.registerTool("corven_create_attestation", {
117
- title: "Create ERC-8004 Attestation",
118
- description: "Issue an ERC-8004 attestation receipt for a completed interaction. Anchors offchain verification results on-chain as portable credentials.\n" +
119
- "USE WHEN: You want to anchor an off-chain verification result (capability proof, reputation check, etc.) as a permanent on-chain attestation.\n" +
120
- "REQUIRES: You must have a wallet configured. The counterparty address must be valid.\n" +
121
- "RETURNS: Transaction hash. The attestation receipt ID is emitted in the event logs.\n" +
122
- "COMES AFTER: corven_verify_capability_proof or corven_verify_reputation_proof completed successfully.\n" +
123
- "COMES BEFORE: The receipt can be queried via ReceiptVerifier tools for portable verification.\n" +
124
- "NOTE: interactionType values: 0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed.",
125
- inputSchema: {
126
- counterparty: ethAddress,
127
- interactionType: z.number().describe("Receipt type (0=TaskCompleted, 1=AgentVerified, etc.)"),
128
- dataHash: z.string().describe("Hash of the attestation data"),
129
- },
130
- }, async (params) => {
131
- try {
132
- const parsed = createAttestationSchema.safeParse(params);
133
- if (!parsed.success)
134
- return formatError(parsed.error);
135
- const { counterparty, interactionType, dataHash } = parsed.data;
136
- const account = getAccount();
137
- if (!account)
138
- return formatError(new Error("No wallet configured."));
139
- const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, RECEIPT_ABI, "createReceipt", [account, counterparty, String(interactionType), dataHash]);
140
- return formatTxResult(result);
141
- }
142
- catch (e) {
143
- const parsed = parseContractError(e);
144
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
145
- }
146
- });
147
- // ──────────────────────────────────────────────────────────────
148
- // corven_verify_attestation
149
- // ──────────────────────────────────────────────────────────────
150
- server.registerTool("corven_verify_attestation", {
151
- title: "Verify Attestation",
152
- description: "Check if an ERC-8004 receipt is valid on-chain.\n" +
153
- "USE WHEN: You have a receipt ID and want to verify its on-chain validity and authenticity.\n" +
154
- "REQUIRES: The receipt ID must be a valid bytes32 hex string.\n" +
155
- "RETURNS: Boolean validity status with a human-readable note explaining the result.\n" +
156
- "COMES AFTER: corven_create_attestation or corven_create_receipt issued the receipt.\n" +
157
- "COMES BEFORE: Use the validity result to make trust decisions about an agent.\n" +
158
- "NOTE: Returns false for revoked receipts or receipts that never existed.",
159
- inputSchema: {
160
- receiptId: z.string().describe("Receipt ID (bytes32 hex)"),
161
- },
162
- }, async (params) => {
163
- try {
164
- const parsed = verifyReceiptSchema.safeParse(params);
165
- if (!parsed.success)
166
- return formatError(parsed.error);
167
- const result = await readContract(CONTRACTS.ReceiptVerifier, RECEIPT_ABI, "verifyReceipt", [parsed.data.receiptId]);
168
- return formatReadResult({
169
- receiptId: parsed.data.receiptId,
170
- isValid: result,
171
- note: result ? "Receipt is valid and verified on-chain." : "Receipt is invalid or has been revoked.",
172
- }, "Attestation Verification");
173
- }
174
- catch (e) {
175
- const parsed = parseContractError(e);
176
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
177
- }
178
- });
179
- // ──────────────────────────────────────────────────────────────
180
- // corven_batch_verify_attestations
181
- // ──────────────────────────────────────────────────────────────
182
- server.registerTool("corven_batch_verify_attestations", {
183
- title: "Batch Verify Attestations",
184
- description: "Verify multiple ERC-8004 receipts in a single call.\n" +
185
- "USE WHEN: You have multiple receipt IDs and want to check their validity efficiently in one transaction.\n" +
186
- "REQUIRES: All receipt IDs must be valid bytes32 hex strings. Max 50 receipts per call.\n" +
187
- "RETURNS: Summary with total, valid, and invalid counts, plus per-receipt validity status.\n" +
188
- "COMES AFTER: corven_get_receipts or corven_create_receipt provided the receipt IDs.\n" +
189
- "COMES BEFORE: Use the batch validity results for bulk credential auditing.\n" +
190
- "NOTE: More gas-efficient than calling corven_verify_attestation individually for each receipt.",
191
- inputSchema: {
192
- receiptIds: z.array(z.string()).describe("Receipt IDs to verify"),
193
- },
194
- }, async (params) => {
195
- try {
196
- const parsed = batchVerifySchema.safeParse(params);
197
- if (!parsed.success)
198
- return formatError(parsed.error);
199
- const results = await readContract(CONTRACTS.ReceiptVerifier, RECEIPT_ABI, "batchVerifyReceipts", [parsed.data.receiptIds]);
200
- const validity = results;
201
- const summary = parsed.data.receiptIds.map((id, i) => `${id.slice(0, 18)}...: ${validity[i] ? "VALID" : "INVALID"}`).join("\n");
202
- return formatReadResult({
203
- total: parsed.data.receiptIds.length,
204
- valid: validity.filter(Boolean).length,
205
- invalid: validity.filter(v => !v).length,
206
- results: summary,
207
- }, "Batch Verification");
208
- }
209
- catch (e) {
210
- const parsed = parseContractError(e);
211
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
212
- }
213
- });
214
- }
215
- //# sourceMappingURL=verification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/tools/verification.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerVerifyDeepTools(server: McpServer): void;
3
- //# sourceMappingURL=verify-deep.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-deep.d.ts","sourceRoot":"","sources":["../../src/tools/verify-deep.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiI/D"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Deep Verification MCP Tools
3
- *
4
- * corven_verify_deep — Deep code analysis using GitHub repo
5
- * corven_get_verification_result — Retrieve stored verification results
6
- *
7
- * Off-chain analysis: clones repo, runs 8-dimension scorer, returns structured verdict.
8
- * No on-chain ABI required — results are advisory for the client's verify_task decision.
9
- */
10
- import { z } from "zod";
11
- import { formatReadResult, formatError } from "../handlers/transactions.js";
12
- import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
13
- // ─── In-memory verification store (MVP) ──────────────────────
14
- const verificationResults = new Map();
15
- // ─── Input Schemas ───────────────────────────────────────────
16
- const verifyDeepSchema = z.object({
17
- repoUrl: z.string().url().describe("GitHub repository URL (e.g. https://github.com/owner/repo)"),
18
- taskRequirements: z.string().min(1).describe("What the task required — used to evaluate deliverable completeness"),
19
- verificationLevel: z.enum(["quick", "standard", "deep"]).optional().default("standard"),
20
- taskId: z.number().int().positive().optional().describe("Task ID to link verification to on-chain"),
21
- });
22
- const getVerificationSchema = z.object({
23
- taskId: z.number().int().positive().describe("Task ID to check verification for"),
24
- });
25
- // ─── Tool Registration ───────────────────────────────────────
26
- export function registerVerifyDeepTools(server) {
27
- // ──────────────────────────────────────────────────────────
28
- // corven_verify_deep
29
- // ──────────────────────────────────────────────────────────
30
- server.registerTool("corven_verify_deep", {
31
- title: "Deep Project Verification",
32
- description: "Verify a project by cloning from GitHub and analyzing the entire codebase across 8 dimensions.\n" +
33
- "USE WHEN: You need to deeply evaluate a worker's submitted project against task requirements.\n" +
34
- "REQUIRES: GitHub repo URL, task requirements, and verification level.\n" +
35
- "RETURNS: Score (0-100), verdict (pass/fail/partial), per-dimension check results, summary, and recommendations.\n" +
36
- "COMES AFTER: corven_submit_work (worker has submitted deliverable with a repo URL).\n" +
37
- "COMES BEFORE: corven_verify_task (client reviews results and makes final approve/reject decision).\n" +
38
- "SCORING: Code Quality 20%, Security 20%, Architecture 15%, Performance 15%, Testing 15%, Docs 5%, Deps 5%, Best Practices 5%.\n" +
39
- "VERDICT: pass >= 70, partial >= 40, fail < 40.\n" +
40
- "NOTE: This runs off-chain analysis. Results are advisory — client makes final verification decision.",
41
- inputSchema: {
42
- repoUrl: z.string().describe("GitHub repository URL (e.g. https://github.com/owner/repo)"),
43
- taskRequirements: z.string().describe("What the task required — used to evaluate deliverable completeness"),
44
- verificationLevel: z.enum(["quick", "standard", "deep"]).optional().default("standard"),
45
- taskId: z.number().optional().describe("Task ID to link verification to"),
46
- },
47
- }, async (params) => {
48
- try {
49
- const parsed = verifyDeepSchema.safeParse(params);
50
- if (!parsed.success)
51
- return formatError(parsed.error);
52
- const { repoUrl, taskRequirements, verificationLevel, taskId } = parsed.data;
53
- // Run off-chain verification via the verify engine
54
- const { verifyProject } = await import("../lib/verify.js");
55
- const result = await verifyProject(repoUrl, taskRequirements, verificationLevel);
56
- // Store result if linked to a task
57
- if (taskId) {
58
- verificationResults.set(taskId, result);
59
- }
60
- const verdictEmoji = result.verdict === "pass" ? "PASS" : result.verdict === "partial" ? "PARTIAL" : "FAIL";
61
- return formatReadResult({
62
- repoUrl,
63
- taskId: taskId || "not linked",
64
- verificationLevel,
65
- score: result.score,
66
- verdict: verdictEmoji,
67
- summary: result.summary,
68
- checks: result.checks.map((c) => `${c.dimension}: ${c.score}/100 ${c.passed ? "PASS" : "FAIL"}${c.issues.length > 0 ? ` — ${c.issues.join("; ")}` : ""}`),
69
- recommendations: result.recommendations,
70
- evidenceHash: result.evidenceHash,
71
- }, `Deep Verification ${verdictEmoji} — Score: ${result.score}/100`);
72
- }
73
- catch (e) {
74
- const parsed = parseContractError(e);
75
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
76
- }
77
- });
78
- // ──────────────────────────────────────────────────────────
79
- // corven_get_verification_result
80
- // ──────────────────────────────────────────────────────────
81
- server.registerTool("corven_get_verification_result", {
82
- title: "Get Verification Result",
83
- description: "Get the stored result of a deep verification for a task.\n" +
84
- "USE WHEN: Checking if verification is complete and viewing results after corven_verify_deep ran.\n" +
85
- "REQUIRES: Task ID that was verified.\n" +
86
- "RETURNS: Verification score, verdict, detailed checks, summary, and recommendations.\n" +
87
- "COMES AFTER: corven_verify_deep completed for this task.\n" +
88
- "COMES BEFORE: corven_verify_task (client uses these results to make a decision).",
89
- inputSchema: {
90
- taskId: z.number().describe("Task ID to check verification for"),
91
- },
92
- }, async (params) => {
93
- try {
94
- const parsed = getVerificationSchema.safeParse(params);
95
- if (!parsed.success)
96
- return formatError(parsed.error);
97
- const { taskId } = parsed.data;
98
- const result = verificationResults.get(taskId);
99
- if (!result) {
100
- return formatReadResult({
101
- taskId,
102
- status: "not_found",
103
- message: `No verification result found for task #${taskId}. Run corven_verify_deep first.`,
104
- }, `Verification for Task #${taskId}`);
105
- }
106
- const verdictEmoji = result.verdict === "pass" ? "PASS" : result.verdict === "partial" ? "PARTIAL" : "FAIL";
107
- return formatReadResult({
108
- taskId,
109
- score: result.score,
110
- verdict: verdictEmoji,
111
- summary: result.summary,
112
- checks: result.checks.map((c) => `${c.dimension}: ${c.score}/100 ${c.passed ? "PASS" : "FAIL"}${c.issues.length > 0 ? ` — ${c.issues.join("; ")}` : ""}`),
113
- recommendations: result.recommendations,
114
- evidenceHash: result.evidenceHash,
115
- repoUrl: result.repoUrl,
116
- verifiedAt: new Date(result.timestamp).toISOString(),
117
- }, `Verification for Task #${taskId} — Score: ${result.score}/100 ${verdictEmoji}`);
118
- }
119
- catch (e) {
120
- const parsed = parseContractError(e);
121
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
122
- }
123
- });
124
- }
125
- //# sourceMappingURL=verify-deep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-deep.js","sourceRoot":"","sources":["../../src/tools/verify-deep.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGrF,gEAAgE;AAEhE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;AAmBlE,gEAAgE;AAEhE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAChG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAClH,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACpG,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAClF,CAAC,CAAC;AAEH,gEAAgE;AAEhE,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,6DAA6D;IAC7D,qBAAqB;IACrB,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,kGAAkG;YAClG,iGAAiG;YACjG,yEAAyE;YACzE,mHAAmH;YACnH,uFAAuF;YACvF,sGAAsG;YACtG,iIAAiI;YACjI,kDAAkD;YAClD,sGAAsG;QACxG,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YAC1F,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;YAC3G,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;YACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAE7E,mDAAmD;YACnD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YAEjF,mCAAmC;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YAE5G,OAAO,gBAAgB,CACrB;gBACE,OAAO;gBACP,MAAM,EAAE,MAAM,IAAI,YAAY;gBAC9B,iBAAiB;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1H;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,EACD,qBAAqB,YAAY,aAAa,MAAM,CAAC,KAAK,MAAM,CACjE,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,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;IAEF,6DAA6D;IAC7D,iCAAiC;IACjC,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,gCAAgC,EAChC;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,4DAA4D;YAC5D,oGAAoG;YACpG,wCAAwC;YACxC,wFAAwF;YACxF,4DAA4D;YAC5D,kFAAkF;QACpF,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,gBAAgB,CACrB;oBACE,MAAM;oBACN,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,0CAA0C,MAAM,iCAAiC;iBAC3F,EACD,0BAA0B,MAAM,EAAE,CACnC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YAE5G,OAAO,gBAAgB,CACrB;gBACE,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1H;gBACD,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;aACrD,EACD,0BAA0B,MAAM,aAAa,MAAM,CAAC,KAAK,QAAQ,YAAY,EAAE,CAChF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,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"}