@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,269 +0,0 @@
1
- /**
2
- * Grant Program MCP Tools (In-Memory MVP)
3
- *
4
- * apply_grant — Submit a grant application
5
- * list_grants — List grant applications with status filter
6
- * get_grant — Get grant application details
7
- * vote_grant — Vote on a grant application (reputation-weighted)
8
- */
9
- import { z } from "zod";
10
- import { loadAbi, CONTRACTS, getAccount } from "../config.js";
11
- import { readContract } from "../handlers/wallet.js";
12
- import { formatReadResult, formatError } from "../handlers/transactions.js";
13
- import { formatSuccess, formatStructuredError } from "../lib/formatResponse.js";
14
- import { ethAmount } from "../lib/schemaHelpers.js";
15
- import { loadStore, saveStore } from "../lib/store.js";
16
- const grantsData = loadStore("grants", { counter: 0, items: {} });
17
- let grantCounter = grantsData.counter;
18
- const grants = new Map(Object.entries(grantsData.items).map(([k, v]) => [Number(k), v]));
19
- function persist() {
20
- const items = {};
21
- grants.forEach((v, k) => { items[k] = v; });
22
- saveStore("grants", { counter: grantCounter, items });
23
- }
24
- // ─── ABI for reading agent reputation ───────────────────────
25
- const REGISTRY_ABI = loadAbi("AgentRegistry");
26
- async function getAgentReputation(address) {
27
- try {
28
- const profile = await readContract(CONTRACTS.AgentRegistry, REGISTRY_ABI, "getAgent", [address]);
29
- return Number(profile.reputation ?? 0);
30
- }
31
- catch {
32
- return 0;
33
- }
34
- }
35
- // ─── Validation Schemas ──────────────────────────────────────
36
- const applyGrantSchema = z.object({
37
- title: z.string().min(1).max(200),
38
- description: z.string().min(1).max(2000),
39
- category: z.enum(["ecosystem_growth", "research", "community", "security"]),
40
- amountRequested: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount format")
41
- .refine(val => {
42
- const amount = parseFloat(val);
43
- return amount > 0 && amount <= 10000;
44
- }, { message: "Amount must be between 0 and 10,000 ETH" }),
45
- });
46
- const voteGrantSchema = z.object({
47
- grantId: z.number().int().nonnegative(),
48
- support: z.boolean(),
49
- });
50
- // ─── Tool Registration ───────────────────────────────────────
51
- export function registerGrantTools(server) {
52
- // ──────────────────────────────────────────────────────────────
53
- // corven_apply_grant
54
- // ──────────────────────────────────────────────────────────────
55
- server.registerTool("corven_apply_grant", {
56
- title: "Apply for Grant",
57
- description: "Submits a grant application to the COVENANT grant program.\n" +
58
- "USE WHEN: You need funding for ecosystem growth, research, community, or security work related to COVENANT.\n" +
59
- "REQUIRES: Wallet configured via PRIVATE_KEY. Must be a registered agent.\n" +
60
- "RETURNS: Grant ID, title, category, amount requested, status (pending), applicant address.\n" +
61
- "COMES BEFORE: Community members call corven_vote_grant to vote. Approved grants move to 'funded' status.\n" +
62
- "CATEGORIES: ecosystem_growth (tooling, integrations), research (protocols, cryptography), community (education, events), security (audits, monitoring).",
63
- inputSchema: {
64
- title: z.string().describe("Short title for the grant proposal"),
65
- description: z.string().describe("Detailed description of what the grant will fund and expected outcomes"),
66
- category: z.enum(["ecosystem_growth", "research", "community", "security"])
67
- .describe("Grant category: ecosystem_growth, research, community, or security"),
68
- amountRequested: ethAmount,
69
- },
70
- }, async ({ title, description, category, amountRequested }) => {
71
- try {
72
- const validation = applyGrantSchema.safeParse({ title, description, category, amountRequested });
73
- if (!validation.success) {
74
- return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats: title (1-200 chars), description (1-2000 chars), category (enum), amountRequested (ETH decimal string).", false);
75
- }
76
- const account = getAccount();
77
- if (!account) {
78
- return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
79
- }
80
- const id = grantCounter++;
81
- const grant = {
82
- id,
83
- title,
84
- description,
85
- applicant: account.address,
86
- category,
87
- amountRequested,
88
- status: "pending",
89
- votesFor: 0,
90
- votesAgainst: 0,
91
- voters: {},
92
- createdAt: Math.floor(Date.now() / 1000),
93
- };
94
- grants.set(id, grant);
95
- persist();
96
- return formatSuccess(`Grant #${id} application submitted successfully.`, {
97
- grantId: id,
98
- title,
99
- category,
100
- amountRequested: `${amountRequested} ETH`,
101
- status: "pending",
102
- applicant: account.address,
103
- }, undefined, [
104
- "Your application is now pending community review.",
105
- "Use corven_list_grants to track status. Community members vote via corven_vote_grant.",
106
- ]);
107
- }
108
- catch (e) {
109
- return formatError(e);
110
- }
111
- });
112
- // ──────────────────────────────────────────────────────────────
113
- // corven_list_grants
114
- // ──────────────────────────────────────────────────────────────
115
- server.registerTool("corven_list_grants", {
116
- title: "List Grants",
117
- description: "Lists all grant applications with optional status filter.\n" +
118
- "USE WHEN: Reviewing pending grants to vote on. Checking grant program activity. Tracking your own applications.\n" +
119
- "REQUIRES: Nothing. Free read-only call.\n" +
120
- "RETURNS: Array of grant summaries (id, title, category, amount, status, votes, applicant).\n" +
121
- "COMES BEFORE: corven_get_grant for full details, corven_vote_grant to cast a vote.",
122
- inputSchema: {
123
- status: z.enum(["pending", "approved", "rejected", "funded"]).optional()
124
- .describe("Filter by grant status. Omit to return all grants."),
125
- },
126
- }, async ({ status }) => {
127
- try {
128
- const results = [];
129
- for (const grant of grants.values()) {
130
- if (status && grant.status !== status)
131
- continue;
132
- results.push({
133
- id: grant.id,
134
- title: grant.title,
135
- category: grant.category,
136
- amountRequested: `${grant.amountRequested} ETH`,
137
- status: grant.status,
138
- votesFor: grant.votesFor,
139
- votesAgainst: grant.votesAgainst,
140
- applicant: grant.applicant,
141
- });
142
- }
143
- if (results.length === 0) {
144
- return formatReadResult({ count: 0, grants: [] }, status
145
- ? `No grants found with status "${status}".`
146
- : "No grant applications found.");
147
- }
148
- return formatReadResult({ count: results.length, grants: results }, `Found ${results.length} grant application${results.length === 1 ? "" : "s"}.`);
149
- }
150
- catch (e) {
151
- return formatError(e);
152
- }
153
- });
154
- // ──────────────────────────────────────────────────────────────
155
- // corven_get_grant
156
- // ──────────────────────────────────────────────────────────────
157
- server.registerTool("corven_get_grant", {
158
- title: "Get Grant Details",
159
- description: "Reads full details of a grant application including all votes.\n" +
160
- "USE WHEN: Reviewing a specific grant before voting. Checking vote counts and voter details.\n" +
161
- "REQUIRES: Nothing. Free read-only call.\n" +
162
- "RETURNS: Full grant details — title, description, category, amount, status, applicant, votes, individual voter records.\n" +
163
- "COMES AFTER: corven_list_grants found the grant ID.\n" +
164
- "COMES BEFORE: corven_vote_grant to cast your vote.",
165
- inputSchema: {
166
- grantId: z.number().describe("Grant application ID to look up"),
167
- },
168
- }, async ({ grantId }) => {
169
- try {
170
- const grant = grants.get(grantId);
171
- if (!grant) {
172
- return formatStructuredError(`Grant #${grantId} not found.`, "No grant application exists with that ID.", "Call corven_list_grants to see available grants.", false);
173
- }
174
- const voterList = Object.entries(grant.voters).map(([addr, v]) => ({
175
- address: addr,
176
- support: v.support,
177
- weight: v.weight,
178
- }));
179
- return formatReadResult({
180
- id: grant.id,
181
- title: grant.title,
182
- description: grant.description,
183
- applicant: grant.applicant,
184
- category: grant.category,
185
- amountRequested: `${grant.amountRequested} ETH`,
186
- status: grant.status,
187
- votesFor: grant.votesFor,
188
- votesAgainst: grant.votesAgainst,
189
- totalVoters: voterList.length,
190
- voters: voterList,
191
- createdAt: grant.createdAt,
192
- }, `Grant #${grantId}`);
193
- }
194
- catch (e) {
195
- return formatError(e);
196
- }
197
- });
198
- // ──────────────────────────────────────────────────────────────
199
- // corven_vote_grant
200
- // ──────────────────────────────────────────────────────────────
201
- server.registerTool("corven_vote_grant", {
202
- title: "Vote on Grant",
203
- description: "Casts a reputation-weighted vote on a grant application. Your vote weight equals your agent's reputation score (0-1000).\n" +
204
- "USE WHEN: Reviewing and voting on pending grant applications as a community member.\n" +
205
- "REQUIRES: Wallet configured via PRIVATE_KEY. Must be a registered agent with reputation > 0.\n" +
206
- "RETURNS: Grant ID, your vote (support/oppose), your reputation weight, updated vote totals.\n" +
207
- "COMES AFTER: corven_list_grants or corven_get_grant to review the application.\n" +
208
- "NOTE: Each address can only vote once per grant. You cannot vote on your own application. Vote weight is your current on-chain reputation.",
209
- inputSchema: {
210
- grantId: z.number().describe("Grant application ID to vote on"),
211
- support: z.boolean().describe("true = vote in favor (approve), false = vote against (reject)"),
212
- },
213
- }, async ({ grantId, support }) => {
214
- try {
215
- const validation = voteGrantSchema.safeParse({ grantId, support });
216
- if (!validation.success) {
217
- return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check grantId (non-negative integer) and support (boolean).", false);
218
- }
219
- const account = getAccount();
220
- if (!account) {
221
- return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
222
- }
223
- const grant = grants.get(grantId);
224
- if (!grant) {
225
- return formatStructuredError(`Grant #${grantId} not found.`, "No grant application exists with that ID.", "Call corven_list_grants to see available grants.", false);
226
- }
227
- if (grant.status !== "pending") {
228
- return formatStructuredError(`Grant #${grantId} is not pending (status: ${grant.status}).`, "Only pending grants can receive votes.", "Call corven_list_grants with status='pending' to find votable grants.", false);
229
- }
230
- const voterAddr = account.address;
231
- if (grant.applicant.toLowerCase() === voterAddr.toLowerCase()) {
232
- return formatStructuredError("Cannot vote on your own grant application.", `This grant was created by ${grant.applicant}.`, "Only other community members can vote on a grant.", false);
233
- }
234
- if (grant.voters[voterAddr]) {
235
- return formatStructuredError(`You have already voted on Grant #${grantId}.`, "Each address can only vote once per grant.", "Your existing vote is recorded. Check corven_get_grant for current totals.", false);
236
- }
237
- const weight = await getAgentReputation(voterAddr);
238
- if (weight <= 0) {
239
- return formatStructuredError("Agent has no reputation for voting.", `Address ${voterAddr} is not registered or has 0 reputation.`, "Register as an agent first with corven_register_agent.", false);
240
- }
241
- grant.voters[voterAddr] = { support, weight };
242
- if (support) {
243
- grant.votesFor += weight;
244
- }
245
- else {
246
- grant.votesAgainst += weight;
247
- }
248
- persist();
249
- return formatSuccess(`Vote recorded for Grant #${grantId}.`, {
250
- grantId,
251
- voter: voterAddr,
252
- support,
253
- weight,
254
- votesFor: grant.votesFor,
255
- votesAgainst: grant.votesAgainst,
256
- totalVoters: Object.keys(grant.voters).length,
257
- }, undefined, [
258
- support
259
- ? `You voted in favor with weight ${weight} (your reputation).`
260
- : `You voted against with weight ${weight} (your reputation).`,
261
- `Grant #${grantId} now has ${grant.votesFor} for / ${grant.votesAgainst} against.`,
262
- ]);
263
- }
264
- catch (e) {
265
- return formatError(e);
266
- }
267
- });
268
- }
269
- //# sourceMappingURL=grants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/tools/grants.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insurance.d.ts","sourceRoot":"","sources":["../../src/tools/insurance.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+T9D"}
@@ -1,271 +0,0 @@
1
- /**
2
- * AgentInsurance MCP Tools
3
- *
4
- * claim_insurance — Submit an insurance claim for a failed task
5
- * get_claim — Get claim details
6
- * get_claim_counter — Get total claims
7
- */
8
- 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";
12
- import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
13
- import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
14
- import { taskId as taskIdSchema, ethAmount, ethAddress } from "../lib/schemaHelpers.js";
15
- const ABI = loadAbi("AgentInsurance");
16
- // Input validation schemas
17
- const claimInsuranceSchema = z.object({
18
- taskId: z.number().int().positive(),
19
- });
20
- export function registerInsuranceTools(server) {
21
- // ──────────────────────────────────────────────────────────────
22
- // claim_insurance
23
- // ──────────────────────────────────────────────────────────────
24
- server.registerTool("corven_claim_insurance", {
25
- title: "Claim Insurance",
26
- description: "Submit an insurance claim for a failed task. May require governance approval depending on claim type.\n" +
27
- "USE WHEN: A task you were working on failed (e.g., deadline passed, dispute lost) and you want to recover covered funds.\n" +
28
- "REQUIRES: You must be a member of the insurance pool (corven_join_insurance_pool). The task must have had a premium paid (corven_pay_premium).\n" +
29
- "RETURNS: Transaction hash. The claim ID is emitted in the event logs.\n" +
30
- "COMES AFTER: corven_pay_premium was called for this task, and the task failed.\n" +
31
- "COMES BEFORE: corven_vote_on_claim (governance votes), corven_pay_claim (payout after approval).\n" +
32
- "NOTE: Claims may require governance approval. Check coverage with corven_get_coverage_percent.",
33
- inputSchema: {
34
- taskId: taskIdSchema,
35
- },
36
- }, async ({ taskId }) => {
37
- try {
38
- const validation = claimInsuranceSchema.safeParse({ taskId });
39
- if (!validation.success) {
40
- return formatError(new Error(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`));
41
- }
42
- const account = getAccount();
43
- if (!account) {
44
- return formatError(new Error("No private key configured"));
45
- }
46
- const result = await executeOrPrepare(CONTRACTS.AgentInsurance, ABI, "claimInsurance", [BigInt(taskId)]);
47
- return formatTxResult(result);
48
- }
49
- catch (e) {
50
- const parsed = parseContractError(e);
51
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
52
- }
53
- });
54
- // ──────────────────────────────────────────────────────────────
55
- // get_claim
56
- // ──────────────────────────────────────────────────────────────
57
- server.registerTool("corven_get_claim", {
58
- title: "Get Insurance Claim",
59
- description: "Get claim details by ID, or total claim count if no ID provided.\n" +
60
- "USE WHEN: You need to check the status, amount, or resolution of an insurance claim.\n" +
61
- "REQUIRES: The claim must exist on-chain.\n" +
62
- "RETURNS: Claim details including claimant, task ID, amount, status, and approval votes. If no ID provided, returns total claim count.\n" +
63
- "COMES AFTER: corven_claim_insurance filed the claim.\n" +
64
- "COMES BEFORE: corven_vote_on_claim (if governance voting is pending) or corven_pay_claim (if approved).\n" +
65
- "NOTE: Omit claimId to get the total number of claims.",
66
- inputSchema: {
67
- claimId: z.number().optional().describe("Claim ID. Omit to get total claim count."),
68
- },
69
- }, async ({ claimId }) => {
70
- try {
71
- if (claimId === undefined) {
72
- const count = await readContract(CONTRACTS.AgentInsurance, ABI, "claimCounter", []);
73
- return formatReadResult({ claimCount: Number(count) }, "Insurance Claim Count");
74
- }
75
- const data = await readContract(CONTRACTS.AgentInsurance, ABI, "getClaim", [BigInt(claimId)]);
76
- const enriched = { ...data, amountEth: data.amount ? formatEther(data.amount) : "0" };
77
- return formatReadResult(enriched, `Insurance Claim #${claimId}`);
78
- }
79
- catch (e) {
80
- const parsed = parseContractError(e);
81
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
82
- }
83
- });
84
- // get_claim_counter merged into get_claim (returns count when no claimId)
85
- // ──────────────────────────────────────────────────────────────
86
- // get_coverage_percent
87
- // ──────────────────────────────────────────────────────────────
88
- server.registerTool("corven_get_coverage_percent", {
89
- title: "Get Coverage Percentage",
90
- description: "Get the insurance coverage percentage (e.g., 80% = 80).\n" +
91
- "USE WHEN: You want to know what percentage of a failed task's payment the insurance pool covers.\n" +
92
- "REQUIRES: None — this is a read-only query.\n" +
93
- "RETURNS: The coverage percentage as a number (e.g., 80 means 80% of task payment is covered).\n" +
94
- "COMES BEFORE: corven_pay_premium (decide if coverage is worth the premium cost).\n" +
95
- "NOTE: This is a protocol-wide constant, not per-task.",
96
- inputSchema: {},
97
- }, async () => {
98
- try {
99
- const percent = await readContract(CONTRACTS.AgentInsurance, ABI, "CLAIM_COVERAGE_PERCENT", []);
100
- return formatReadResult({ coveragePercent: Number(percent) }, "Coverage Percentage");
101
- }
102
- catch (e) {
103
- const parsed = parseContractError(e);
104
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
105
- }
106
- });
107
- // ──────────────────────────────────────────────────────────────
108
- // corven_join_insurance_pool
109
- // ──────────────────────────────────────────────────────────────
110
- server.registerTool("corven_join_insurance_pool", {
111
- title: "Join Insurance Pool",
112
- description: "Join the agent insurance pool by contributing ETH (min 0.01 ETH).\n" +
113
- "USE WHEN: You want to protect yourself against task failures by joining the shared insurance pool.\n" +
114
- "REQUIRES: You must be a registered agent. Minimum contribution is 0.01 ETH.\n" +
115
- "RETURNS: Transaction hash confirming pool membership.\n" +
116
- "COMES AFTER: corven_register_agent (you must be registered first).\n" +
117
- "COMES BEFORE: corven_pay_premium (insure specific tasks), corven_claim_insurance (file claims on failures).\n" +
118
- "NOTE: Your contribution goes into the shared pool. Higher contributions mean more coverage priority.",
119
- inputSchema: {
120
- contribution: ethAmount,
121
- },
122
- }, async ({ contribution }) => {
123
- try {
124
- const account = getAccount();
125
- if (!account)
126
- return formatError(new Error("No private key configured"));
127
- const { parseEther } = await import("viem");
128
- const result = await executeOrPrepare(CONTRACTS.AgentInsurance, ABI, "joinPool", [], parseEther(contribution));
129
- return formatTxResult(result);
130
- }
131
- catch (e) {
132
- const parsed = parseContractError(e);
133
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
134
- }
135
- });
136
- // ──────────────────────────────────────────────────────────────
137
- // corven_pay_premium
138
- // ──────────────────────────────────────────────────────────────
139
- server.registerTool("corven_pay_premium", {
140
- title: "Pay Insurance Premium",
141
- description: "Pay insurance premium for a specific task to get coverage. Premium is typically a percentage (e.g., 5%) of the task payment.\n" +
142
- "USE WHEN: You want to insure a task against failure before starting work.\n" +
143
- "REQUIRES: You must be a member of the insurance pool (corven_join_insurance_pool). The task must exist.\n" +
144
- "RETURNS: Transaction hash confirming premium payment and coverage activation.\n" +
145
- "COMES AFTER: corven_join_insurance_pool (must be a pool member) and corven_create_task (task must exist).\n" +
146
- "COMES BEFORE: corven_claim_insurance (if the task fails, you can claim coverage).\n" +
147
- "NOTE: Premium is typically 5% of the task payment. Check corven_get_coverage_percent for the coverage ratio.",
148
- inputSchema: {
149
- taskId: taskIdSchema,
150
- premium: ethAmount,
151
- },
152
- }, async ({ taskId, premium }) => {
153
- try {
154
- const account = getAccount();
155
- if (!account)
156
- return formatError(new Error("No private key configured"));
157
- const premiumWei = parseEther(premium);
158
- const result = await executeOrPrepare(CONTRACTS.AgentInsurance, ABI, "payPremium", [BigInt(taskId)], premiumWei // Value to send with payable function
159
- );
160
- return formatTxResult(result);
161
- }
162
- catch (e) {
163
- const parsed = parseContractError(e);
164
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
165
- }
166
- });
167
- // ──────────────────────────────────────────────────────────────
168
- // corven_vote_on_claim
169
- // ──────────────────────────────────────────────────────────────
170
- server.registerTool("corven_vote_on_claim", {
171
- title: "Vote on Insurance Claim",
172
- description: "Governance member votes on an insurance claim.\n" +
173
- "USE WHEN: You are a governance member and an insurance claim needs your approval or rejection.\n" +
174
- "REQUIRES: You must be a governance-eligible member of the insurance pool.\n" +
175
- "RETURNS: Transaction hash confirming your vote.\n" +
176
- "COMES AFTER: corven_claim_insurance filed the claim.\n" +
177
- "COMES BEFORE: corven_pay_claim (payout after sufficient approvals).\n" +
178
- "NOTE: Claims need a minimum number of approval votes to be paid out.",
179
- inputSchema: {
180
- claimId: z.number().describe("Claim ID"),
181
- inFavor: z.boolean().describe("True to approve, false to reject"),
182
- },
183
- }, async ({ claimId, inFavor }) => {
184
- try {
185
- const account = getAccount();
186
- if (!account)
187
- return formatError(new Error("No private key configured"));
188
- const result = await executeOrPrepare(CONTRACTS.AgentInsurance, ABI, "voteOnClaim", [BigInt(claimId), inFavor]);
189
- return formatTxResult(result);
190
- }
191
- catch (e) {
192
- const parsed = parseContractError(e);
193
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
194
- }
195
- });
196
- // ──────────────────────────────────────────────────────────────
197
- // corven_pay_claim
198
- // ──────────────────────────────────────────────────────────────
199
- server.registerTool("corven_pay_claim", {
200
- title: "Pay Insurance Claim",
201
- description: "Pay out an approved insurance claim.\n" +
202
- "USE WHEN: An insurance claim has received enough governance approval votes and is ready for payout.\n" +
203
- "REQUIRES: The claim must have sufficient approval votes from governance members.\n" +
204
- "RETURNS: Transaction hash. The claim amount is transferred to the claimant.\n" +
205
- "COMES AFTER: corven_vote_on_claim resulted in sufficient approvals.\n" +
206
- "COMES BEFORE: The claimant receives ETH in their wallet.\n" +
207
- "NOTE: Anyone can trigger the payout once the claim is approved.",
208
- inputSchema: {
209
- claimId: z.number().describe("Claim ID"),
210
- },
211
- }, async ({ claimId }) => {
212
- try {
213
- const account = getAccount();
214
- if (!account)
215
- return formatError(new Error("No private key configured"));
216
- const result = await executeOrPrepare(CONTRACTS.AgentInsurance, ABI, "payClaim", [BigInt(claimId)]);
217
- return formatTxResult(result);
218
- }
219
- catch (e) {
220
- const parsed = parseContractError(e);
221
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
222
- }
223
- });
224
- // ──────────────────────────────────────────────────────────────
225
- // corven_get_pool_balance
226
- // ──────────────────────────────────────────────────────────────
227
- server.registerTool("corven_get_pool_balance", {
228
- title: "Get Insurance Pool Balance",
229
- description: "Get the current balance of the insurance pool.\n" +
230
- "USE WHEN: You want to check if the pool has enough funds to cover potential claims.\n" +
231
- "REQUIRES: None — this is a read-only query.\n" +
232
- "RETURNS: Pool balance in ETH.\n" +
233
- "COMES BEFORE: corven_join_insurance_pool or corven_claim_insurance.\n" +
234
- "NOTE: A low pool balance may mean claims cannot be fully paid out.",
235
- inputSchema: {},
236
- }, async () => {
237
- try {
238
- const balance = await readContract(CONTRACTS.AgentInsurance, ABI, "getPoolBalance", []);
239
- return formatReadResult({ poolBalanceEth: formatEther(balance) }, "Insurance Pool Balance");
240
- }
241
- catch (e) {
242
- const parsed = parseContractError(e);
243
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
244
- }
245
- });
246
- // ──────────────────────────────────────────────────────────────
247
- // corven_get_member_info
248
- // ──────────────────────────────────────────────────────────────
249
- server.registerTool("corven_get_member_info", {
250
- title: "Get Insurance Member Info",
251
- description: "Get insurance membership info for an agent.\n" +
252
- "USE WHEN: You want to check if an agent is a pool member and their contribution level.\n" +
253
- "REQUIRES: The agent address must be provided.\n" +
254
- "RETURNS: Membership details including contribution amount, join date, and active status.\n" +
255
- "COMES BEFORE: corven_pay_premium or corven_claim_insurance (verify membership first).\n" +
256
- "NOTE: Returns empty/default data if the agent is not a pool member.",
257
- inputSchema: {
258
- agent: ethAddress,
259
- },
260
- }, async ({ agent }) => {
261
- try {
262
- const data = await readContract(CONTRACTS.AgentInsurance, ABI, "getMemberInfo", [agent]);
263
- return formatReadResult(data, `Insurance info for ${agent}`);
264
- }
265
- catch (e) {
266
- const parsed = parseContractError(e);
267
- return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
268
- }
269
- });
270
- }
271
- //# sourceMappingURL=insurance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insurance.js","sourceRoot":"","sources":["../../src/tools/insurance.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/tools/market.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkDzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAya3D"}