@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.
- package/dist/abis/GrantProgram.json +778 -0
- package/dist/abis/RevisionManager.json +544 -0
- package/dist/abis/TrainingMarketplace.json +787 -0
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +15 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +63 -63
- package/dist/server.js.map +1 -1
- package/dist/shared-types.js +8 -8
- package/dist/tools/{registry.d.ts → corven-agent.d.ts} +1 -1
- package/dist/tools/corven-agent.d.ts.map +1 -0
- package/dist/tools/corven-agent.js +90 -0
- package/dist/tools/corven-agent.js.map +1 -0
- package/dist/tools/corven-attest.d.ts +3 -0
- package/dist/tools/corven-attest.d.ts.map +1 -0
- package/dist/tools/corven-attest.js +87 -0
- package/dist/tools/corven-attest.js.map +1 -0
- package/dist/tools/{batches.d.ts → corven-batch.d.ts} +1 -1
- package/dist/tools/corven-batch.d.ts.map +1 -0
- package/dist/tools/corven-batch.js +116 -0
- package/dist/tools/corven-batch.js.map +1 -0
- package/dist/tools/{bounties.d.ts → corven-bounty.d.ts} +1 -1
- package/dist/tools/corven-bounty.d.ts.map +1 -0
- package/dist/tools/corven-bounty.js +72 -0
- package/dist/tools/corven-bounty.js.map +1 -0
- package/dist/tools/{collectives.d.ts → corven-collective.d.ts} +1 -1
- package/dist/tools/corven-collective.d.ts.map +1 -0
- package/dist/tools/corven-collective.js +105 -0
- package/dist/tools/corven-collective.js.map +1 -0
- package/dist/tools/corven-fiat.d.ts +3 -0
- package/dist/tools/corven-fiat.d.ts.map +1 -0
- package/dist/tools/corven-fiat.js +42 -0
- package/dist/tools/corven-fiat.js.map +1 -0
- package/dist/tools/corven-govern.d.ts +3 -0
- package/dist/tools/corven-govern.d.ts.map +1 -0
- package/dist/tools/corven-govern.js +65 -0
- package/dist/tools/corven-govern.js.map +1 -0
- package/dist/tools/{grants.d.ts → corven-grants.d.ts} +1 -1
- package/dist/tools/corven-grants.d.ts.map +1 -0
- package/dist/tools/corven-grants.js +67 -0
- package/dist/tools/corven-grants.js.map +1 -0
- package/dist/tools/{insurance.d.ts → corven-insurance.d.ts} +1 -1
- package/dist/tools/corven-insurance.d.ts.map +1 -0
- package/dist/tools/corven-insurance.js +103 -0
- package/dist/tools/corven-insurance.js.map +1 -0
- package/dist/tools/{market.d.ts → corven-market.d.ts} +1 -1
- package/dist/tools/corven-market.d.ts.map +1 -0
- package/dist/tools/corven-market.js +113 -0
- package/dist/tools/corven-market.js.map +1 -0
- package/dist/tools/corven-match.d.ts +3 -0
- package/dist/tools/corven-match.d.ts.map +1 -0
- package/dist/tools/corven-match.js +235 -0
- package/dist/tools/corven-match.js.map +1 -0
- package/dist/tools/corven-message.d.ts +3 -0
- package/dist/tools/corven-message.d.ts.map +1 -0
- package/dist/tools/corven-message.js +82 -0
- package/dist/tools/corven-message.js.map +1 -0
- package/dist/tools/corven-multi.d.ts +3 -0
- package/dist/tools/corven-multi.d.ts.map +1 -0
- package/dist/tools/corven-multi.js +197 -0
- package/dist/tools/corven-multi.js.map +1 -0
- package/dist/tools/corven-reputation.d.ts +3 -0
- package/dist/tools/corven-reputation.d.ts.map +1 -0
- package/dist/tools/corven-reputation.js +126 -0
- package/dist/tools/corven-reputation.js.map +1 -0
- package/dist/tools/{revisions.d.ts → corven-revision.d.ts} +1 -1
- package/dist/tools/corven-revision.d.ts.map +1 -0
- package/dist/tools/corven-revision.js +73 -0
- package/dist/tools/corven-revision.js.map +1 -0
- package/dist/tools/{router.d.ts → corven-router.d.ts} +1 -1
- package/dist/tools/corven-router.d.ts.map +1 -0
- package/dist/tools/corven-router.js +116 -0
- package/dist/tools/corven-router.js.map +1 -0
- package/dist/tools/corven-stats.d.ts +3 -0
- package/dist/tools/corven-stats.d.ts.map +1 -0
- package/dist/tools/corven-stats.js +97 -0
- package/dist/tools/corven-stats.js.map +1 -0
- package/dist/tools/corven-stream.d.ts +3 -0
- package/dist/tools/corven-stream.d.ts.map +1 -0
- package/dist/tools/corven-stream.js +197 -0
- package/dist/tools/corven-stream.js.map +1 -0
- package/dist/tools/corven-task.d.ts +3 -0
- package/dist/tools/corven-task.d.ts.map +1 -0
- package/dist/tools/corven-task.js +105 -0
- package/dist/tools/corven-task.js.map +1 -0
- package/dist/tools/{training.d.ts → corven-training.d.ts} +1 -1
- package/dist/tools/corven-training.d.ts.map +1 -0
- package/dist/tools/corven-training.js +73 -0
- package/dist/tools/corven-training.js.map +1 -0
- package/dist/tools/corven-verify.d.ts +3 -0
- package/dist/tools/corven-verify.d.ts.map +1 -0
- package/dist/tools/corven-verify.js +149 -0
- package/dist/tools/corven-verify.js.map +1 -0
- package/dist/tools/corven-wallet.d.ts +3 -0
- package/dist/tools/corven-wallet.d.ts.map +1 -0
- package/dist/tools/corven-wallet.js +235 -0
- package/dist/tools/corven-wallet.js.map +1 -0
- package/dist/tools/covenant-help.d.ts.map +1 -1
- package/dist/tools/covenant-help.js +88 -312
- package/dist/tools/covenant-help.js.map +1 -1
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +26 -0
- package/dist/tools/disputes.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/abis/v2/DisputeResolution.json +0 -493
- package/dist/abis/v2/InsurancePool.json +0 -645
- package/dist/tools/account-abstraction.d.ts +0 -3
- package/dist/tools/account-abstraction.d.ts.map +0 -1
- package/dist/tools/account-abstraction.js +0 -364
- package/dist/tools/account-abstraction.js.map +0 -1
- package/dist/tools/batches.d.ts.map +0 -1
- package/dist/tools/batches.js +0 -231
- package/dist/tools/batches.js.map +0 -1
- package/dist/tools/bounties.d.ts.map +0 -1
- package/dist/tools/bounties.js +0 -304
- package/dist/tools/bounties.js.map +0 -1
- package/dist/tools/bridge.d.ts +0 -3
- package/dist/tools/bridge.d.ts.map +0 -1
- package/dist/tools/bridge.js +0 -190
- package/dist/tools/bridge.js.map +0 -1
- package/dist/tools/collectives.d.ts.map +0 -1
- package/dist/tools/collectives.js +0 -249
- package/dist/tools/collectives.js.map +0 -1
- package/dist/tools/cross-chain.d.ts +0 -3
- package/dist/tools/cross-chain.d.ts.map +0 -1
- package/dist/tools/cross-chain.js +0 -77
- package/dist/tools/cross-chain.js.map +0 -1
- package/dist/tools/escrow.d.ts +0 -3
- package/dist/tools/escrow.d.ts.map +0 -1
- package/dist/tools/escrow.js +0 -606
- package/dist/tools/escrow.js.map +0 -1
- package/dist/tools/fiat-onramp.d.ts +0 -3
- package/dist/tools/fiat-onramp.d.ts.map +0 -1
- package/dist/tools/fiat-onramp.js +0 -108
- package/dist/tools/fiat-onramp.js.map +0 -1
- package/dist/tools/governance.d.ts +0 -3
- package/dist/tools/governance.d.ts.map +0 -1
- package/dist/tools/governance.js +0 -271
- package/dist/tools/governance.js.map +0 -1
- package/dist/tools/grants.d.ts.map +0 -1
- package/dist/tools/grants.js +0 -269
- package/dist/tools/grants.js.map +0 -1
- package/dist/tools/insurance.d.ts.map +0 -1
- package/dist/tools/insurance.js +0 -271
- package/dist/tools/insurance.js.map +0 -1
- package/dist/tools/market.d.ts.map +0 -1
- package/dist/tools/market.js +0 -393
- package/dist/tools/market.js.map +0 -1
- package/dist/tools/matching.d.ts +0 -3
- package/dist/tools/matching.d.ts.map +0 -1
- package/dist/tools/matching.js +0 -233
- package/dist/tools/matching.js.map +0 -1
- package/dist/tools/messaging.d.ts +0 -3
- package/dist/tools/messaging.d.ts.map +0 -1
- package/dist/tools/messaging.js +0 -159
- package/dist/tools/messaging.js.map +0 -1
- package/dist/tools/multi-token.d.ts +0 -3
- package/dist/tools/multi-token.d.ts.map +0 -1
- package/dist/tools/multi-token.js +0 -274
- package/dist/tools/multi-token.js.map +0 -1
- package/dist/tools/offchain-coordinator.d.ts +0 -3
- package/dist/tools/offchain-coordinator.d.ts.map +0 -1
- package/dist/tools/offchain-coordinator.js +0 -436
- package/dist/tools/offchain-coordinator.js.map +0 -1
- package/dist/tools/protocol.d.ts +0 -3
- package/dist/tools/protocol.d.ts.map +0 -1
- package/dist/tools/protocol.js +0 -127
- package/dist/tools/protocol.js.map +0 -1
- package/dist/tools/receipts.d.ts +0 -3
- package/dist/tools/receipts.d.ts.map +0 -1
- package/dist/tools/receipts.js +0 -147
- package/dist/tools/receipts.js.map +0 -1
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -245
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/reputation-vc.d.ts +0 -3
- package/dist/tools/reputation-vc.d.ts.map +0 -1
- package/dist/tools/reputation-vc.js +0 -438
- package/dist/tools/reputation-vc.js.map +0 -1
- package/dist/tools/revisions.d.ts.map +0 -1
- package/dist/tools/revisions.js +0 -108
- package/dist/tools/revisions.js.map +0 -1
- package/dist/tools/router.d.ts.map +0 -1
- package/dist/tools/router.js +0 -104
- package/dist/tools/router.js.map +0 -1
- package/dist/tools/streaming.d.ts +0 -3
- package/dist/tools/streaming.d.ts.map +0 -1
- package/dist/tools/streaming.js +0 -350
- package/dist/tools/streaming.js.map +0 -1
- package/dist/tools/templates.d.ts +0 -3
- package/dist/tools/templates.d.ts.map +0 -1
- package/dist/tools/templates.js +0 -392
- package/dist/tools/templates.js.map +0 -1
- package/dist/tools/training.d.ts.map +0 -1
- package/dist/tools/training.js +0 -304
- package/dist/tools/training.js.map +0 -1
- package/dist/tools/v2-settlement.d.ts +0 -3
- package/dist/tools/v2-settlement.d.ts.map +0 -1
- package/dist/tools/v2-settlement.js +0 -226
- package/dist/tools/v2-settlement.js.map +0 -1
- package/dist/tools/verification.d.ts +0 -3
- package/dist/tools/verification.d.ts.map +0 -1
- package/dist/tools/verification.js +0 -215
- package/dist/tools/verification.js.map +0 -1
- package/dist/tools/verify-deep.d.ts +0 -3
- package/dist/tools/verify-deep.d.ts.map +0 -1
- package/dist/tools/verify-deep.js +0 -125
- package/dist/tools/verify-deep.js.map +0 -1
package/dist/tools/training.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Training Marketplace MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* Training program marketplace for agent capability development.
|
|
5
|
-
*
|
|
6
|
-
* create_training — Create a training program (course)
|
|
7
|
-
* enroll_training — Agent enrolls in a training program
|
|
8
|
-
* list_trainings — List available training programs
|
|
9
|
-
* get_training — Get training program details
|
|
10
|
-
* complete_training — Mark training as completed, update capabilities
|
|
11
|
-
*/
|
|
12
|
-
import { z } from "zod";
|
|
13
|
-
import { getAccount } from "../config.js";
|
|
14
|
-
import { formatReadResult } from "../handlers/transactions.js";
|
|
15
|
-
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
16
|
-
import { ethAmount } from "../lib/schemaHelpers.js";
|
|
17
|
-
import { loadStore, saveStore } from "../lib/store.js";
|
|
18
|
-
const data = loadStore("training", { counter: 0, items: {} });
|
|
19
|
-
let trainingCounter = data.counter;
|
|
20
|
-
const trainings = new Map(Object.entries(data.items).map(([k, v]) => [Number(k), v]));
|
|
21
|
-
function persist() {
|
|
22
|
-
const items = {};
|
|
23
|
-
trainings.forEach((v, k) => { items[String(k)] = v; });
|
|
24
|
-
saveStore("training", { counter: trainingCounter, items });
|
|
25
|
-
}
|
|
26
|
-
// ─── Registration ────────────────────────────────────────────
|
|
27
|
-
export function registerTrainingTools(server) {
|
|
28
|
-
// ──────────────────────────────────────────────────────────────
|
|
29
|
-
// corven_create_training
|
|
30
|
-
// ──────────────────────────────────────────────────────────────
|
|
31
|
-
server.registerTool("corven_create_training", {
|
|
32
|
-
title: "Create Training Program",
|
|
33
|
-
description: "Creates a training program (course) that other agents can enroll in to learn new capabilities.\n" +
|
|
34
|
-
"USE WHEN: You are an experienced agent and want to teach a skill to others. You want to earn fees from enrollment.\n" +
|
|
35
|
-
"REQUIRES: You must be a registered agent. Provide a title, description, price, capabilities taught, and duration.\n" +
|
|
36
|
-
"RETURNS: Training program ID, details, and enrollment instructions.\n" +
|
|
37
|
-
"COMES BEFORE: Agents call corven_enroll_training to join. Call corven_complete_training after they finish.",
|
|
38
|
-
inputSchema: {
|
|
39
|
-
title: z.string().min(3).max(200).describe("Training program title"),
|
|
40
|
-
description: z.string().min(10).max(2000).describe("Full description of what the training covers"),
|
|
41
|
-
price: ethAmount.describe("Enrollment fee in ETH per student"),
|
|
42
|
-
capabilities: z.array(z.string()).min(1).max(10).describe("Capabilities taught in this program"),
|
|
43
|
-
duration: z.number().int().positive().optional().default(10).describe("Number of tasks to complete for graduation (default: 10)"),
|
|
44
|
-
},
|
|
45
|
-
}, async ({ title, description, price, capabilities, duration }) => {
|
|
46
|
-
try {
|
|
47
|
-
const validation = z.object({
|
|
48
|
-
title: z.string().min(3).max(200),
|
|
49
|
-
description: z.string().min(10).max(2000),
|
|
50
|
-
price: z.string().regex(/^\d+\.?\d*$/).refine(v => parseFloat(v) > 0),
|
|
51
|
-
capabilities: z.array(z.string()).min(1).max(10),
|
|
52
|
-
duration: z.number().int().positive(),
|
|
53
|
-
}).safeParse({ title, description, price, capabilities, duration });
|
|
54
|
-
if (!validation.success) {
|
|
55
|
-
return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
|
|
56
|
-
}
|
|
57
|
-
const account = getAccount();
|
|
58
|
-
if (!account) {
|
|
59
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
60
|
-
}
|
|
61
|
-
const id = ++trainingCounter;
|
|
62
|
-
const program = {
|
|
63
|
-
id,
|
|
64
|
-
title,
|
|
65
|
-
description,
|
|
66
|
-
instructor: account.address,
|
|
67
|
-
price,
|
|
68
|
-
capabilities,
|
|
69
|
-
duration,
|
|
70
|
-
rating: 0,
|
|
71
|
-
graduates: 0,
|
|
72
|
-
enrolled: [],
|
|
73
|
-
completed: [],
|
|
74
|
-
createdAt: Math.floor(Date.now() / 1000),
|
|
75
|
-
};
|
|
76
|
-
trainings.set(id, program);
|
|
77
|
-
persist();
|
|
78
|
-
return {
|
|
79
|
-
content: [{
|
|
80
|
-
type: "text",
|
|
81
|
-
text: [
|
|
82
|
-
`Training program created.`,
|
|
83
|
-
"",
|
|
84
|
-
`ID: ${id}`,
|
|
85
|
-
`Title: ${title}`,
|
|
86
|
-
`Instructor: ${account.address}`,
|
|
87
|
-
`Price: ${price} ETH`,
|
|
88
|
-
`Capabilities: ${capabilities.join(", ")}`,
|
|
89
|
-
`Duration: ${duration} tasks`,
|
|
90
|
-
"",
|
|
91
|
-
`Share this ID with agents to let them enroll.`,
|
|
92
|
-
].join("\n"),
|
|
93
|
-
}],
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
catch (e) {
|
|
97
|
-
const parsed = parseContractError(e);
|
|
98
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
// ──────────────────────────────────────────────────────────────
|
|
102
|
-
// corven_enroll_training
|
|
103
|
-
// ──────────────────────────────────────────────────────────────
|
|
104
|
-
server.registerTool("corven_enroll_training", {
|
|
105
|
-
title: "Enroll in Training Program",
|
|
106
|
-
description: "Enrolls the calling agent in a training program to learn new capabilities.\n" +
|
|
107
|
-
"USE WHEN: You want to learn a new skill from an experienced instructor. You found a training via corven_list_trainings.\n" +
|
|
108
|
-
"REQUIRES: You must be a registered agent. The training program must exist. You cannot enroll twice.\n" +
|
|
109
|
-
"RETURNS: Enrollment confirmation, training details, and next steps.\n" +
|
|
110
|
-
"COMES AFTER: corven_list_trainings or corven_get_training to find a program.\n" +
|
|
111
|
-
"COMES BEFORE: Complete tasks, then call corven_complete_training to graduate.",
|
|
112
|
-
inputSchema: {
|
|
113
|
-
trainingId: z.number().int().positive().describe("Training program ID to enroll in"),
|
|
114
|
-
},
|
|
115
|
-
}, async ({ trainingId }) => {
|
|
116
|
-
try {
|
|
117
|
-
const account = getAccount();
|
|
118
|
-
if (!account) {
|
|
119
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
120
|
-
}
|
|
121
|
-
const program = trainings.get(trainingId);
|
|
122
|
-
if (!program) {
|
|
123
|
-
return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
|
|
124
|
-
}
|
|
125
|
-
if (program.enrolled.includes(account.address)) {
|
|
126
|
-
return formatStructuredError("Already enrolled.", `You are already enrolled in "${program.title}".`, "Complete the required tasks and call corven_complete_training.", false);
|
|
127
|
-
}
|
|
128
|
-
if (program.completed.includes(account.address)) {
|
|
129
|
-
return formatStructuredError("Already graduated.", `You already completed "${program.title}".`, "You have the capabilities from this training.", false);
|
|
130
|
-
}
|
|
131
|
-
program.enrolled.push(account.address);
|
|
132
|
-
persist();
|
|
133
|
-
return {
|
|
134
|
-
content: [{
|
|
135
|
-
type: "text",
|
|
136
|
-
text: [
|
|
137
|
-
`Enrolled in "${program.title}".`,
|
|
138
|
-
"",
|
|
139
|
-
`Training ID: ${program.id}`,
|
|
140
|
-
`Instructor: ${program.instructor}`,
|
|
141
|
-
`Capabilities to learn: ${program.capabilities.join(", ")}`,
|
|
142
|
-
`Duration: ${program.duration} tasks`,
|
|
143
|
-
`Enrolled: ${program.enrolled.length} agents`,
|
|
144
|
-
"",
|
|
145
|
-
`Complete ${program.duration} tasks, then call corven_complete_training to graduate.`,
|
|
146
|
-
].join("\n"),
|
|
147
|
-
}],
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
catch (e) {
|
|
151
|
-
const parsed = parseContractError(e);
|
|
152
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
// ──────────────────────────────────────────────────────────────
|
|
156
|
-
// corven_list_trainings
|
|
157
|
-
// ──────────────────────────────────────────────────────────────
|
|
158
|
-
server.registerTool("corven_list_trainings", {
|
|
159
|
-
title: "List Training Programs",
|
|
160
|
-
description: "Lists all available training programs with optional rating filter.\n" +
|
|
161
|
-
"USE WHEN: Browsing available courses. Looking for programs teaching specific capabilities. Comparing options.\n" +
|
|
162
|
-
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
163
|
-
"RETURNS: Array of training programs with title, instructor, price, capabilities, rating, and enrollment counts.\n" +
|
|
164
|
-
"COMES BEFORE: corven_get_training for details. corven_enroll_training to join.",
|
|
165
|
-
inputSchema: {
|
|
166
|
-
minRating: z.number().min(0).max(5).optional().describe("Filter: minimum rating (0-5, default: show all)"),
|
|
167
|
-
},
|
|
168
|
-
}, async ({ minRating }) => {
|
|
169
|
-
try {
|
|
170
|
-
const programs = Array.from(trainings.values());
|
|
171
|
-
const filtered = minRating !== undefined
|
|
172
|
-
? programs.filter(p => p.rating >= minRating * 100)
|
|
173
|
-
: programs;
|
|
174
|
-
if (filtered.length === 0) {
|
|
175
|
-
return {
|
|
176
|
-
content: [{
|
|
177
|
-
type: "text",
|
|
178
|
-
text: "No training programs found. Be the first to create one with corven_create_training.",
|
|
179
|
-
}],
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
const lines = [`Training Programs (${filtered.length}):`, ""];
|
|
183
|
-
for (const p of filtered) {
|
|
184
|
-
const ratingStr = p.rating > 0 ? `${(p.rating / 100).toFixed(1)}/5` : "No ratings";
|
|
185
|
-
lines.push([
|
|
186
|
-
`#${p.id} — ${p.title}`,
|
|
187
|
-
` Instructor: ${p.instructor.slice(0, 6)}...${p.instructor.slice(-4)}`,
|
|
188
|
-
` Price: ${p.price} ETH | Rating: ${ratingStr} | Graduates: ${p.graduates}`,
|
|
189
|
-
` Capabilities: ${p.capabilities.join(", ")}`,
|
|
190
|
-
` Duration: ${p.duration} tasks | Enrolled: ${p.enrolled.length}`,
|
|
191
|
-
"",
|
|
192
|
-
].join("\n"));
|
|
193
|
-
}
|
|
194
|
-
return {
|
|
195
|
-
content: [{
|
|
196
|
-
type: "text",
|
|
197
|
-
text: lines.join("\n"),
|
|
198
|
-
}],
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
catch (e) {
|
|
202
|
-
const parsed = parseContractError(e);
|
|
203
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
// ──────────────────────────────────────────────────────────────
|
|
207
|
-
// corven_get_training
|
|
208
|
-
// ──────────────────────────────────────────────────────────────
|
|
209
|
-
server.registerTool("corven_get_training", {
|
|
210
|
-
title: "Get Training Program Details",
|
|
211
|
-
description: "Retrieves full details of a training program including enrolled and completed agents.\n" +
|
|
212
|
-
"USE WHEN: Evaluating a program before enrolling. Checking your own enrollment status. Viewing instructor info.\n" +
|
|
213
|
-
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
214
|
-
"RETURNS: Full program details: title, description, instructor, price, capabilities, duration, rating, graduates, enrolled list, completed list.\n" +
|
|
215
|
-
"COMES AFTER: corven_list_trainings to find the training ID.\n" +
|
|
216
|
-
"COMES BEFORE: corven_enroll_training to join.",
|
|
217
|
-
inputSchema: {
|
|
218
|
-
trainingId: z.number().int().positive().describe("Training program ID"),
|
|
219
|
-
},
|
|
220
|
-
}, async ({ trainingId }) => {
|
|
221
|
-
try {
|
|
222
|
-
const program = trainings.get(trainingId);
|
|
223
|
-
if (!program) {
|
|
224
|
-
return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
|
|
225
|
-
}
|
|
226
|
-
const ratingStr = program.rating > 0 ? `${(program.rating / 100).toFixed(1)}/5` : "No ratings";
|
|
227
|
-
return formatReadResult({
|
|
228
|
-
id: program.id,
|
|
229
|
-
title: program.title,
|
|
230
|
-
description: program.description,
|
|
231
|
-
instructor: program.instructor,
|
|
232
|
-
priceEth: program.price,
|
|
233
|
-
capabilities: program.capabilities,
|
|
234
|
-
duration: program.duration,
|
|
235
|
-
rating: ratingStr,
|
|
236
|
-
graduates: program.graduates,
|
|
237
|
-
enrolledCount: program.enrolled.length,
|
|
238
|
-
completedCount: program.completed.length,
|
|
239
|
-
enrolled: program.enrolled,
|
|
240
|
-
completed: program.completed,
|
|
241
|
-
createdAt: program.createdAt,
|
|
242
|
-
}, `Training #${trainingId}`);
|
|
243
|
-
}
|
|
244
|
-
catch (e) {
|
|
245
|
-
const parsed = parseContractError(e);
|
|
246
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
// ──────────────────────────────────────────────────────────────
|
|
250
|
-
// corven_complete_training
|
|
251
|
-
// ──────────────────────────────────────────────────────────────
|
|
252
|
-
server.registerTool("corven_complete_training", {
|
|
253
|
-
title: "Complete Training Program",
|
|
254
|
-
description: "Marks the calling agent as having completed a training program. Updates agent capabilities.\n" +
|
|
255
|
-
"USE WHEN: You finished the required tasks in a training. You want to prove you learned the new capabilities.\n" +
|
|
256
|
-
"REQUIRES: You must be enrolled in the training. The training program must exist.\n" +
|
|
257
|
-
"RETURNS: Completion confirmation, capabilities earned, graduate count, txHash.\n" +
|
|
258
|
-
"COMES AFTER: corven_enroll_training, then completing the required tasks.\n" +
|
|
259
|
-
"NOTE: Capability proofs are recorded in the training registry. Use corven_get_agent to verify your updated profile.",
|
|
260
|
-
inputSchema: {
|
|
261
|
-
trainingId: z.number().int().positive().describe("Training program ID to complete"),
|
|
262
|
-
},
|
|
263
|
-
}, async ({ trainingId }) => {
|
|
264
|
-
try {
|
|
265
|
-
const account = getAccount();
|
|
266
|
-
if (!account) {
|
|
267
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
268
|
-
}
|
|
269
|
-
const program = trainings.get(trainingId);
|
|
270
|
-
if (!program) {
|
|
271
|
-
return formatStructuredError(`Training #${trainingId} not found.`, "Invalid training ID.", "Use corven_list_trainings to see available programs.", false);
|
|
272
|
-
}
|
|
273
|
-
if (!program.enrolled.includes(account.address)) {
|
|
274
|
-
return formatStructuredError("Not enrolled.", `You are not enrolled in "${program.title}".`, "Call corven_enroll_training first.", false);
|
|
275
|
-
}
|
|
276
|
-
if (program.completed.includes(account.address)) {
|
|
277
|
-
return formatStructuredError("Already completed.", `You already completed "${program.title}".`, "You have the capabilities from this training.", false);
|
|
278
|
-
}
|
|
279
|
-
program.completed.push(account.address);
|
|
280
|
-
program.graduates++;
|
|
281
|
-
persist();
|
|
282
|
-
return {
|
|
283
|
-
content: [{
|
|
284
|
-
type: "text",
|
|
285
|
-
text: [
|
|
286
|
-
`Training "${program.title}" completed.`,
|
|
287
|
-
"",
|
|
288
|
-
`Capabilities earned: ${program.capabilities.join(", ")}`,
|
|
289
|
-
`Total graduates: ${program.graduates}`,
|
|
290
|
-
`Enrolled agents: ${program.enrolled.length}`,
|
|
291
|
-
"",
|
|
292
|
-
`Capability proof recorded in training registry #${program.id}.`,
|
|
293
|
-
`Call corven_get_agent to view your updated profile.`,
|
|
294
|
-
].join("\n"),
|
|
295
|
-
}],
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
catch (e) {
|
|
299
|
-
const parsed = parseContractError(e);
|
|
300
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=training.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"training.js","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2-settlement.d.ts","sourceRoot":"","sources":["../../src/tools/v2-settlement.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuQjE"}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V2 Settlement Layer MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* Bridges the minimal v2 contracts (settlement) with offchain coordination.
|
|
5
|
-
* Uses bytes32 for hashes, enum for receipt types, event-based indexing.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
import { 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
|
-
// V2 contract ABIs (loaded from artifacts after compilation)
|
|
13
|
-
const REGISTRY_V2_ABI = loadAbi("AgentRegistry");
|
|
14
|
-
const ESCROW_V2_ABI = loadAbi("TaskEscrow");
|
|
15
|
-
const RECEIPT_V2_ABI = loadAbi("ReceiptVerifier");
|
|
16
|
-
// ─── Helper: convert string to bytes32 hash ─────────────────
|
|
17
|
-
function toBytes32(input) {
|
|
18
|
-
// If already a hex bytes32, return as-is
|
|
19
|
-
if (input.startsWith("0x") && input.length === 66)
|
|
20
|
-
return input;
|
|
21
|
-
// Otherwise hash it
|
|
22
|
-
return keccak256(toBytes(input));
|
|
23
|
-
}
|
|
24
|
-
// ─── V2 Agent Registration ──────────────────────────────────
|
|
25
|
-
const v2RegisterSchema = z.object({
|
|
26
|
-
name: z.string().min(1).max(100),
|
|
27
|
-
capabilities: z.array(z.string()).min(1).max(20),
|
|
28
|
-
stake: z.string().regex(/^\d+\.\d{1,18}$/),
|
|
29
|
-
});
|
|
30
|
-
// ─── V2 Task Creation (bytes32 hashes) ──────────────────────
|
|
31
|
-
const v2CreateTaskSchema = z.object({
|
|
32
|
-
worker: z.string().regex(/^0x[0-9a-fA-F]{40}$/),
|
|
33
|
-
payment: z.string().regex(/^\d+\.\d{1,18}$/),
|
|
34
|
-
deadline: z.number().int().positive(),
|
|
35
|
-
descriptionHash: z.string().min(1), // IPFS CID or bytes32
|
|
36
|
-
});
|
|
37
|
-
// ─── V2 Receipt Creation (enum type) ────────────────────────
|
|
38
|
-
const v2CreateReceiptSchema = z.object({
|
|
39
|
-
counterparty: z.string().regex(/^0x[0-9a-fA-F]{40}$/),
|
|
40
|
-
receiptType: z.number().int().min(0).max(5),
|
|
41
|
-
dataHash: z.string().min(1),
|
|
42
|
-
});
|
|
43
|
-
// ─── Tool Registration ──────────────────────────────────────
|
|
44
|
-
export function registerV2SettlementTools(server) {
|
|
45
|
-
// ──────────────────────────────────────────────────────────
|
|
46
|
-
// corven_v2_register_agent
|
|
47
|
-
// ──────────────────────────────────────────────────────────
|
|
48
|
-
server.registerTool("corven_v2_register_agent", {
|
|
49
|
-
title: "Register Agent (v2)",
|
|
50
|
-
description: "Register an agent on the v2 AgentRegistry. Capabilities stored as " +
|
|
51
|
-
"bytes32 hashes onchain. Profile data (descriptions, tags) stays offchain.",
|
|
52
|
-
inputSchema: {
|
|
53
|
-
name: z.string().describe("Agent display name"),
|
|
54
|
-
capabilities: z.array(z.string()).describe("Capability tags (hashed to bytes32 onchain)"),
|
|
55
|
-
stake: z.string().describe("Stake amount in ETH"),
|
|
56
|
-
},
|
|
57
|
-
}, async (params) => {
|
|
58
|
-
try {
|
|
59
|
-
const parsed = v2RegisterSchema.safeParse(params);
|
|
60
|
-
if (!parsed.success)
|
|
61
|
-
return formatError(parsed.error);
|
|
62
|
-
const { name, capabilities, stake } = parsed.data;
|
|
63
|
-
const result = await executeOrPrepare(CONTRACTS.AgentRegistry, REGISTRY_V2_ABI, "register", [name, capabilities], BigInt(stake) * BigInt(10 ** 18));
|
|
64
|
-
return formatTxResult(result);
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
return formatError(e);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
// ──────────────────────────────────────────────────────────
|
|
71
|
-
// corven_v2_create_task
|
|
72
|
-
// ──────────────────────────────────────────────────────────
|
|
73
|
-
server.registerTool("corven_v2_create_task", {
|
|
74
|
-
title: "Create Task (v2)",
|
|
75
|
-
description: "Create and fund a task on the v2 TaskEscrow. Description hash is " +
|
|
76
|
-
"bytes32 onchain. Full description stored on IPFS, hash anchored here.",
|
|
77
|
-
inputSchema: {
|
|
78
|
-
worker: z.string().describe("Worker agent address"),
|
|
79
|
-
payment: z.string().describe("Payment amount in ETH"),
|
|
80
|
-
deadline: z.number().describe("Unix timestamp deadline (min 1hr, max 365 days)"),
|
|
81
|
-
descriptionHash: z.string().describe("IPFS CID or bytes32 hash of task description"),
|
|
82
|
-
},
|
|
83
|
-
}, async (params) => {
|
|
84
|
-
try {
|
|
85
|
-
const parsed = v2CreateTaskSchema.safeParse(params);
|
|
86
|
-
if (!parsed.success)
|
|
87
|
-
return formatError(parsed.error);
|
|
88
|
-
const { worker, payment, deadline, descriptionHash } = parsed.data;
|
|
89
|
-
const hash = toBytes32(descriptionHash);
|
|
90
|
-
const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "createAndFundTask", [worker, BigInt(payment) * BigInt(10 ** 18), BigInt(deadline), hash], BigInt(payment) * BigInt(10 ** 18));
|
|
91
|
-
return formatTxResult(result);
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
return formatError(e);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
// ──────────────────────────────────────────────────────────
|
|
98
|
-
// corven_v2_submit_work
|
|
99
|
-
// ──────────────────────────────────────────────────────────
|
|
100
|
-
server.registerTool("corven_v2_submit_work", {
|
|
101
|
-
title: "Submit Work (v2)",
|
|
102
|
-
description: "Submit deliverable hash for a v2 task.",
|
|
103
|
-
inputSchema: {
|
|
104
|
-
taskId: z.number().describe("Task ID"),
|
|
105
|
-
deliverableHash: z.string().describe("IPFS CID or bytes32 hash of deliverable"),
|
|
106
|
-
},
|
|
107
|
-
}, async (params) => {
|
|
108
|
-
try {
|
|
109
|
-
const { taskId, deliverableHash } = params;
|
|
110
|
-
const hash = toBytes32(deliverableHash);
|
|
111
|
-
const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "submitWork", [BigInt(taskId), hash]);
|
|
112
|
-
return formatTxResult(result);
|
|
113
|
-
}
|
|
114
|
-
catch (e) {
|
|
115
|
-
return formatError(e);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
// ──────────────────────────────────────────────────────────
|
|
119
|
-
// corven_v2_verify_task
|
|
120
|
-
// ──────────────────────────────────────────────────────────
|
|
121
|
-
server.registerTool("corven_v2_verify_task", {
|
|
122
|
-
title: "Verify Task (v2)",
|
|
123
|
-
description: "Verify submitted work and release payment on v2 escrow.",
|
|
124
|
-
inputSchema: {
|
|
125
|
-
taskId: z.number().describe("Task ID"),
|
|
126
|
-
success: z.boolean().describe("true = approve, false = reject"),
|
|
127
|
-
},
|
|
128
|
-
}, async (params) => {
|
|
129
|
-
try {
|
|
130
|
-
const { taskId, success } = params;
|
|
131
|
-
const result = await executeOrPrepare(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "verifyTask", [BigInt(taskId), success]);
|
|
132
|
-
return formatTxResult(result);
|
|
133
|
-
}
|
|
134
|
-
catch (e) {
|
|
135
|
-
return formatError(e);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
// ──────────────────────────────────────────────────────────
|
|
139
|
-
// corven_v2_create_attestation
|
|
140
|
-
// ──────────────────────────────────────────────────────────
|
|
141
|
-
server.registerTool("corven_v2_create_attestation", {
|
|
142
|
-
title: "Create Attestation (v2)",
|
|
143
|
-
description: "Create an ERC-8004 attestation receipt on v2 ReceiptVerifier. " +
|
|
144
|
-
"Uses enum-based receipt types (not strings).",
|
|
145
|
-
inputSchema: {
|
|
146
|
-
counterparty: z.string().describe("Counterparty address"),
|
|
147
|
-
receiptType: z.number().describe("0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed"),
|
|
148
|
-
dataHash: z.string().describe("Data hash (bytes32 or IPFS CID)"),
|
|
149
|
-
},
|
|
150
|
-
}, async (params) => {
|
|
151
|
-
try {
|
|
152
|
-
const parsed = v2CreateReceiptSchema.safeParse(params);
|
|
153
|
-
if (!parsed.success)
|
|
154
|
-
return formatError(parsed.error);
|
|
155
|
-
const { counterparty, receiptType, dataHash } = parsed.data;
|
|
156
|
-
const account = getAccount();
|
|
157
|
-
if (!account)
|
|
158
|
-
return formatError(new Error("No wallet configured."));
|
|
159
|
-
const hash = toBytes32(dataHash);
|
|
160
|
-
const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, RECEIPT_V2_ABI, "createReceipt", [account, counterparty, receiptType, hash]);
|
|
161
|
-
return formatTxResult(result);
|
|
162
|
-
}
|
|
163
|
-
catch (e) {
|
|
164
|
-
return formatError(e);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
// ──────────────────────────────────────────────────────────
|
|
168
|
-
// corven_v2_get_task
|
|
169
|
-
// ──────────────────────────────────────────────────────────
|
|
170
|
-
server.registerTool("corven_v2_get_task", {
|
|
171
|
-
title: "Get Task (v2)",
|
|
172
|
-
description: "Read task details from v2 TaskEscrow.",
|
|
173
|
-
inputSchema: {
|
|
174
|
-
taskId: z.number().describe("Task ID"),
|
|
175
|
-
},
|
|
176
|
-
}, async (params) => {
|
|
177
|
-
try {
|
|
178
|
-
const taskId = params.taskId;
|
|
179
|
-
const result = await readContract(CONTRACTS.TaskEscrow, ESCROW_V2_ABI, "getTask", [BigInt(taskId)]);
|
|
180
|
-
const data = result;
|
|
181
|
-
return formatReadResult({
|
|
182
|
-
taskId,
|
|
183
|
-
client: data[0],
|
|
184
|
-
worker: data[1],
|
|
185
|
-
payment: data[2]?.toString(),
|
|
186
|
-
deadline: data[3]?.toString(),
|
|
187
|
-
descriptionHash: data[4],
|
|
188
|
-
deliverableHash: data[5],
|
|
189
|
-
status: ["Created", "Funded", "InProgress", "Submitted", "Completed", "Failed", "Disputed"][Number(data[6])],
|
|
190
|
-
createdAt: data[7]?.toString(),
|
|
191
|
-
priority: ["Low", "Medium", "High", "Urgent"][Number(data[9])],
|
|
192
|
-
usesMilestones: data[10],
|
|
193
|
-
}, "Task Details");
|
|
194
|
-
}
|
|
195
|
-
catch (e) {
|
|
196
|
-
return formatError(e);
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
// ──────────────────────────────────────────────────────────
|
|
200
|
-
// corven_v2_has_capability
|
|
201
|
-
// ──────────────────────────────────────────────────────────
|
|
202
|
-
server.registerTool("corven_v2_has_capability", {
|
|
203
|
-
title: "Check Capability (v2)",
|
|
204
|
-
description: "Check if an agent has a specific capability hash on v2 registry.",
|
|
205
|
-
inputSchema: {
|
|
206
|
-
agent: z.string().describe("Agent address"),
|
|
207
|
-
capability: z.string().describe("Capability string (will be hashed)"),
|
|
208
|
-
},
|
|
209
|
-
}, async (params) => {
|
|
210
|
-
try {
|
|
211
|
-
const { agent, capability } = params;
|
|
212
|
-
const capHash = keccak256(toBytes(capability));
|
|
213
|
-
const result = await readContract(CONTRACTS.AgentRegistry, REGISTRY_V2_ABI, "hasCapability", [agent, capHash]);
|
|
214
|
-
return formatReadResult({
|
|
215
|
-
agent,
|
|
216
|
-
capability,
|
|
217
|
-
capabilityHash: capHash,
|
|
218
|
-
hasCapability: result,
|
|
219
|
-
}, "Capability Check");
|
|
220
|
-
}
|
|
221
|
-
catch (e) {
|
|
222
|
-
return formatError(e);
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=v2-settlement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v2-settlement.js","sourceRoot":"","sources":["../../src/tools/v2-settlement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/tools/verification.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsOjE"}
|