@varun-ai07/covenant-mcp 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -2017
- package/dist/abis/AgentCollective.json +93 -274
- package/dist/abis/COVENANTRouter.json +206 -173
- package/dist/abis/CovenantArbitration.json +546 -0
- package/dist/abis/CovenantAttestation.json +476 -0
- package/dist/abis/CovenantEscrow.json +783 -0
- package/dist/abis/CovenantGovernance.json +729 -0
- package/dist/abis/CovenantIdentity.json +800 -0
- package/dist/abis/CovenantSettlement.json +609 -0
- package/dist/abis/GrantProgram.json +66 -471
- package/dist/abis/InsurancePool.json +456 -0
- package/dist/abis/MultiTokenEscrow.json +435 -836
- package/dist/abis/ParallelTaskBatch.json +160 -170
- package/dist/abis/RevisionManager.json +79 -134
- package/dist/abis/TrainingMarketplace.json +52 -482
- package/dist/config.d.ts +6 -20
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +60 -41
- package/dist/config.js.map +1 -1
- package/dist/lib/sqlite-store.d.ts +13 -0
- package/dist/lib/sqlite-store.d.ts.map +1 -0
- package/dist/lib/sqlite-store.js +71 -0
- package/dist/lib/sqlite-store.js.map +1 -0
- package/dist/lib/store.d.ts +2 -3
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +35 -9
- package/dist/lib/store.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/dist/shared-types.d.ts +19 -12
- package/dist/shared-types.d.ts.map +1 -1
- package/dist/shared-types.js +27 -17
- package/dist/shared-types.js.map +1 -1
- package/dist/tools/corven-agent.d.ts.map +1 -1
- package/dist/tools/corven-agent.js +31 -37
- package/dist/tools/corven-agent.js.map +1 -1
- package/dist/tools/corven-ipfs.d.ts +3 -0
- package/dist/tools/corven-ipfs.d.ts.map +1 -0
- package/dist/tools/corven-ipfs.js +69 -0
- package/dist/tools/corven-ipfs.js.map +1 -0
- package/dist/tools/corven-market.d.ts.map +1 -1
- package/dist/tools/corven-market.js +36 -74
- package/dist/tools/corven-market.js.map +1 -1
- package/dist/tools/corven-task.d.ts.map +1 -1
- package/dist/tools/corven-task.js +39 -55
- package/dist/tools/corven-task.js.map +1 -1
- package/dist/tools/corven-verify.d.ts.map +1 -1
- package/dist/tools/corven-verify.js +102 -132
- package/dist/tools/corven-verify.js.map +1 -1
- package/dist/tools/covenant-help.d.ts.map +1 -1
- package/dist/tools/covenant-help.js +23 -34
- package/dist/tools/covenant-help.js.map +1 -1
- package/package.json +4 -1
package/dist/shared-types.js
CHANGED
|
@@ -24,32 +24,42 @@ export const RECEIPT_TYPE = {
|
|
|
24
24
|
};
|
|
25
25
|
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
26
26
|
export const BASE_SEPOLIA_ADDRESSES = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
// V5 Core (NEW)
|
|
28
|
+
CovenantIdentity: "0x623ff6F56754fb4CB4d60e46FF1F4AA3f34A5aAA",
|
|
29
|
+
CovenantEscrow: "0x259338371e67cA712F22A95cb8b616f3926b0E4D",
|
|
30
|
+
CovenantSettlement: "0xF8deBc17DE3B5D501307166EA40FC2C460997B2D",
|
|
31
|
+
CovenantArbitration: "0x5b8CcBd735DA802e6B81a49b78BdA5A29159926f",
|
|
32
|
+
CovenantAttestation: "0x9B314674cb8C3123a6e80832b8A56C28C2e58490",
|
|
33
|
+
CovenantGovernance: "0x6e7Be799ba629289eC675f19bbB8f0029E719E73",
|
|
34
|
+
// V5 Extensions (NEW)
|
|
35
|
+
ParallelTaskBatch: "0xaE8C7897ED19A38B416b7B32E58F820d8D5Cd5D8",
|
|
36
|
+
AgentCollective: "0xfc5E4f36e7477F744D1d99dEf13caC02e1C0f9cE",
|
|
37
|
+
MultiTokenEscrow: "0x1930240Ab0c6D6a2d42733a4715067F355761DC1",
|
|
38
|
+
COVENANTRouter: "0xD139a54CcE4d34ebD893E47d8bFA4fcA14f6d022",
|
|
39
|
+
TrainingMarketplace: "0x99BC000066d60d3C62990a318d4E619dEB656aCa",
|
|
40
|
+
GrantProgram: "0x9720B26a9813bB46b2902011ce9Ef75D1F968198",
|
|
41
|
+
InsurancePool: "0x5e4A41CA094a68d69b84F0Bb9Fa454ba3e1df00a",
|
|
42
|
+
RevisionManager: "0x4a0626b4b160D2dE8Bb4Dc78aA2c4F0ef7a7dB45",
|
|
43
|
+
// Legacy V1 (still deployed)
|
|
44
|
+
AgentRegistry: "0x0003072b15d2c299d46bC5FfE7785E803895E614",
|
|
45
|
+
TaskEscrow: "0x787a26f68536A53D9DB5De63a79Ef21ACA24F71C",
|
|
46
|
+
ReceiptVerifier: "0xEb81ba101a4AE738F8a7eB1d8E636DaD8A96832a",
|
|
47
|
+
DisputeArbitration: "0x3e3Eaf5309E1cf952EB92a4d4285880EB5f7480c",
|
|
48
|
+
AgentInsurance: "0x5Cf2268d2b199bB55171F9191e2b9138e60a4EF8",
|
|
49
|
+
AgentWallet: "0xE3c1188c0FaABCcFbce0895d3137eBa15193348f",
|
|
36
50
|
CapabilityVerifier: "0x628CB2cA13f6FeAc48e0f24f45C3AF2Dbb1c02Fb",
|
|
37
|
-
|
|
38
|
-
ReputationVerifier: "0x1ac2532e39591cdb5E00Fb9d7C0f47E082d0F149",
|
|
39
|
-
COVENANTRouter: "0x565C48FEFc39c9D98a37cCE30583913C7d0d5e09",
|
|
51
|
+
ReputationVerifier: "0x3a5141b2dD161d7791B681AE10330F30959300ee",
|
|
40
52
|
LitProtocolIntegration: "0x9322B12111699Dd05DD3d0c5D8D08b764051A89f",
|
|
41
|
-
|
|
53
|
+
Groth16VerifierCapability: "0xd7108ed5C8577B30f6FC024319ebE8B380DaAb85",
|
|
54
|
+
Groth16VerifierReputation: "0xbe6AfBa53E06099410d78d56A75b689dfCa6532F",
|
|
55
|
+
OpenTaskMarket: "0xF163007a42f00dB4D1296186A9BD07B28fe2a4a7",
|
|
42
56
|
AgentSmartWallet: "0x3c857aADAcFb62F94F121813000E072E788f4d21",
|
|
43
57
|
CovenantPaymaster: "0xd1C5265eF0Cb20c2bBE697d296bAF924754A5fd1",
|
|
44
|
-
TrainingMarketplace: "0x399C35e52BFe7c1822132af709bFE4B141D80D2C",
|
|
45
|
-
GrantProgram: "0x062CCc9f549db1c559f549b57ce84e89d20f61bc",
|
|
46
58
|
AutoVerifier: "0x23f135467fBe0F9f869F0Bf0B30eaaB87a9ec3A7",
|
|
47
59
|
MultiPartyReview: "0x482c435b4Ae3687089A49F9b1FE532FA019e3304",
|
|
48
60
|
ClientReputation: "0x32f84FE07466DdE497b941a02C18E3571f5570f8",
|
|
49
61
|
StakeSlashing: "0xC9BfA9FDcd0b6f1A8B99a29Fc72C0423D6015Be1",
|
|
50
62
|
MilestoneVerification: "0x3Ab1d5f3317e28fFBa607019b4E0AC9243851DF6",
|
|
51
|
-
RevisionManager: "0xc953A9B3DD7c0217ad800cE06A133590C7045701",
|
|
52
|
-
AgentWallet: "0x0000000000000000000000000000000000000000",
|
|
53
63
|
};
|
|
54
64
|
export const CHAIN_CONFIGS = {
|
|
55
65
|
84532: {
|
package/dist/shared-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-types.js","sourceRoot":"","sources":["../src/shared-types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,WAAW;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,QAAQ;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,iBAAiB;IACpB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,mBAAmB;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,4CAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-types.js","sourceRoot":"","sources":["../src/shared-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-agent.d.ts","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corven-agent.d.ts","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqE1D"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* corven_agent — Agent lifecycle
|
|
3
|
-
*
|
|
4
|
-
* Replaces: corven_register_agent, corven_get_agent, corven_get_all_agents,
|
|
5
|
-
* corven_add_stake, corven_deactivate_agent, corven_profile_update,
|
|
6
|
-
* corven_profile_get, corven_find_workers
|
|
2
|
+
* corven_agent — Agent lifecycle via CovenantSDK
|
|
7
3
|
*/
|
|
8
4
|
import { z } from "zod";
|
|
9
|
-
import { parseEther, formatEther } from "viem";
|
|
10
|
-
import {
|
|
11
|
-
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
5
|
+
import { parseEther, formatEther, keccak256, toBytes } from "viem";
|
|
6
|
+
import { getSDK, getAccount, getPublicClient } from "../config.js";
|
|
12
7
|
import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
|
|
13
8
|
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
async function waitAndFormat(hash) {
|
|
10
|
+
const client = getPublicClient();
|
|
11
|
+
const receipt = await client.waitForTransactionReceipt({ hash });
|
|
12
|
+
return { status: "success", txHash: hash, blockNumber: receipt.blockNumber, gasUsed: receipt.gasUsed };
|
|
13
|
+
}
|
|
18
14
|
const schema = z.object({
|
|
19
|
-
action:
|
|
15
|
+
action: z.enum(["register", "get", "list", "update", "deactivate", "stake", "find"]),
|
|
20
16
|
name: z.string().optional(),
|
|
21
17
|
capabilities: z.array(z.string()).optional(),
|
|
22
18
|
stake: z.string().optional().default("0.001"),
|
|
@@ -33,50 +29,48 @@ export function registerAgentTools(server) {
|
|
|
33
29
|
" get — Look up agent by address (returns reputation, stake, status)\n" +
|
|
34
30
|
" list — List all registered agents\n" +
|
|
35
31
|
" update — Update agent profile (name, capabilities, bio)\n" +
|
|
36
|
-
" deactivate — Withdraw stake and deactivate
|
|
37
|
-
" stake — Add more stake
|
|
32
|
+
" deactivate — Withdraw stake and deactivate\n" +
|
|
33
|
+
" stake — Add more stake\n" +
|
|
38
34
|
" find — Search agents by capability\n\n" +
|
|
39
|
-
"FIRST TIME? Start with: corven_agent({ action: 'register', name: 'MyAgent', capabilities: ['code'] })
|
|
40
|
-
"WORKFLOW: register → find_workers → create_task → submit_work → verify_task",
|
|
35
|
+
"FIRST TIME? Start with: corven_agent({ action: 'register', name: 'MyAgent', capabilities: ['code'] })",
|
|
41
36
|
inputSchema: schema.shape,
|
|
42
37
|
}, async (args) => {
|
|
43
38
|
try {
|
|
39
|
+
const sdk = getSDK();
|
|
44
40
|
const { action } = args;
|
|
45
41
|
if (action === "register") {
|
|
46
|
-
const
|
|
47
|
-
|
|
42
|
+
const stakeWei = parseEther(args.stake || "0.001");
|
|
43
|
+
const nameHash = keccak256(toBytes(args.name || "unnamed"));
|
|
44
|
+
const hash = await sdk.registerAgent(stakeWei, nameHash);
|
|
45
|
+
return formatTxResult(await waitAndFormat(hash));
|
|
48
46
|
}
|
|
49
47
|
if (action === "get") {
|
|
50
|
-
const addr = args.address || getAccount()
|
|
51
|
-
|
|
48
|
+
const addr = (args.address || getAccount()?.address);
|
|
49
|
+
if (!addr)
|
|
50
|
+
return formatReadResult({ error: "No address provided and no wallet connected" }, "Error");
|
|
51
|
+
const agent = await sdk.getAgent(addr);
|
|
52
52
|
return formatReadResult({
|
|
53
53
|
address: addr,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
tasksFailed: Number(data.tasksFailed),
|
|
54
|
+
reputation: agent.reputation,
|
|
55
|
+
stakedEth: formatEther(agent.stakedAmount),
|
|
56
|
+
isActive: agent.isActive,
|
|
57
|
+
tasksCompleted: agent.tasksCompleted,
|
|
58
|
+
tasksFailed: agent.tasksFailed,
|
|
60
59
|
}, "Agent");
|
|
61
60
|
}
|
|
62
61
|
if (action === "list") {
|
|
63
|
-
const count = await
|
|
62
|
+
const count = await sdk.getAgentCount();
|
|
64
63
|
return formatReadResult({ totalAgents: Number(count) }, "Agent Count");
|
|
65
64
|
}
|
|
66
65
|
if (action === "stake") {
|
|
67
|
-
|
|
68
|
-
return formatTxResult(result);
|
|
69
|
-
}
|
|
70
|
-
if (action === "deactivate") {
|
|
71
|
-
const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "deactivate", [], 0n);
|
|
72
|
-
return formatTxResult(result);
|
|
66
|
+
return formatReadResult({ error: "Use the on-chain increaseStake() function directly" }, "Info");
|
|
73
67
|
}
|
|
74
68
|
if (action === "find") {
|
|
75
|
-
const
|
|
69
|
+
const agents = await sdk.findAgents(args.capability || "");
|
|
76
70
|
return formatReadResult({
|
|
77
71
|
query: args.capability,
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
found: agents.length,
|
|
73
|
+
agents: agents.slice(0, 10),
|
|
80
74
|
}, "Agent Search");
|
|
81
75
|
}
|
|
82
76
|
return formatReadResult({ error: "Unknown action" }, "Error");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corven-ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsE9D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* corven_upload_ipfs — Upload content to IPFS
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { formatReadResult, formatError } from "../handlers/transactions.js";
|
|
6
|
+
const schema = z.object({
|
|
7
|
+
content: z.string().describe("Content to upload (text, JSON, or base64)"),
|
|
8
|
+
name: z.string().optional().describe("Filename for the upload"),
|
|
9
|
+
type: z.enum(["text", "json", "base64"]).optional().default("text"),
|
|
10
|
+
});
|
|
11
|
+
export function registerIPFSUploadTool(server) {
|
|
12
|
+
server.registerTool("corven_upload_ipfs", {
|
|
13
|
+
title: "Upload to IPFS",
|
|
14
|
+
description: "Upload content to IPFS via Pinata. Returns a CID you can use in tasks.\n\n" +
|
|
15
|
+
"USE WHEN: You need to store task descriptions, deliverables, or any data on IPFS.\n" +
|
|
16
|
+
"REQUIRES: PINATA_API_KEY and PINATA_SECRET_KEY in environment.\n" +
|
|
17
|
+
"RETURNS: IPFS CID (e.g., QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o)\n" +
|
|
18
|
+
"WORKFLOW: Upload description → create task with CID → worker uploads deliverable → verify",
|
|
19
|
+
inputSchema: schema.shape,
|
|
20
|
+
}, async (args) => {
|
|
21
|
+
try {
|
|
22
|
+
const pinataApiKey = process.env.PINATA_API_KEY;
|
|
23
|
+
const pinataSecretKey = process.env.PINATA_SECRET_KEY;
|
|
24
|
+
if (!pinataApiKey || !pinataSecretKey) {
|
|
25
|
+
return formatError(new Error("Pinata not configured. Set PINATA_API_KEY and PINATA_SECRET_KEY in .env"));
|
|
26
|
+
}
|
|
27
|
+
let content = args.content;
|
|
28
|
+
if (args.type === "base64") {
|
|
29
|
+
content = Buffer.from(args.content, "base64").toString("utf-8");
|
|
30
|
+
}
|
|
31
|
+
else if (args.type === "json") {
|
|
32
|
+
JSON.parse(args.content);
|
|
33
|
+
}
|
|
34
|
+
const formData = new FormData();
|
|
35
|
+
const blob = new Blob([content], { type: "text/plain" });
|
|
36
|
+
formData.append("file", blob, args.name || "covenant-upload.txt");
|
|
37
|
+
const metadata = JSON.stringify({
|
|
38
|
+
name: args.name || `covenant-${Date.now()}`,
|
|
39
|
+
keyvalues: { project: "covenant", timestamp: Date.now().toString() },
|
|
40
|
+
});
|
|
41
|
+
formData.append("pinataMetadata", metadata);
|
|
42
|
+
const response = await fetch("https://api.pinata.cloud/pinning/pinFileToIPFS", {
|
|
43
|
+
method: "POST",
|
|
44
|
+
headers: {
|
|
45
|
+
pinata_api_key: pinataApiKey,
|
|
46
|
+
pinata_secret_api_key: pinataSecretKey,
|
|
47
|
+
},
|
|
48
|
+
body: formData,
|
|
49
|
+
});
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
const error = await response.text();
|
|
52
|
+
return formatError(new Error(`Pinata upload failed: ${error}`));
|
|
53
|
+
}
|
|
54
|
+
const result = await response.json();
|
|
55
|
+
return formatReadResult({
|
|
56
|
+
cid: result.IpinfsHash,
|
|
57
|
+
size: result.PinSize,
|
|
58
|
+
timestamp: result.Timestamp,
|
|
59
|
+
url: `ipfs://${result.IpinfsHash}`,
|
|
60
|
+
gateway: `https://gateway.pinata.cloud/ipfs/${result.IpinfsHash}`,
|
|
61
|
+
note: "Use this CID in task descriptions and deliverables",
|
|
62
|
+
}, "IPFS Upload");
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
return formatError(e instanceof Error ? e : new Error(String(e)));
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=corven-ipfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corven-ipfs.js","sourceRoot":"","sources":["../../src/tools/corven-ipfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-market.d.ts","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corven-market.d.ts","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiE3D"}
|
|
@@ -1,106 +1,68 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* corven_market —
|
|
3
|
-
*
|
|
4
|
-
* Consolidates: corven_post_open_task, corven_submit_bid, corven_select_worker,
|
|
5
|
-
* corven_cancel_open_task, corven_get_open_task, corven_get_bid,
|
|
6
|
-
* corven_withdraw_bid, corven_complete_open_task,
|
|
7
|
-
* corven_counter_offer
|
|
2
|
+
* corven_market — Market operations via CovenantSDK
|
|
8
3
|
*/
|
|
9
4
|
import { z } from "zod";
|
|
10
|
-
import { parseEther,
|
|
11
|
-
import {
|
|
12
|
-
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
5
|
+
import { parseEther, keccak256, toBytes } from "viem";
|
|
6
|
+
import { getSDK, getPublicClient } from "../config.js";
|
|
13
7
|
import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
|
|
14
8
|
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
3: "Cancelled",
|
|
21
|
-
};
|
|
22
|
-
const actionSchema = z.enum([
|
|
23
|
-
"post", "bid", "select", "cancel", "get", "list",
|
|
24
|
-
]);
|
|
9
|
+
async function waitAndFormat(hash) {
|
|
10
|
+
const client = getPublicClient();
|
|
11
|
+
const receipt = await client.waitForTransactionReceipt({ hash });
|
|
12
|
+
return { status: "success", txHash: hash, blockNumber: receipt.blockNumber, gasUsed: receipt.gasUsed };
|
|
13
|
+
}
|
|
25
14
|
const schema = z.object({
|
|
26
|
-
action:
|
|
15
|
+
action: z.enum(["post", "bid", "select", "cancel", "get", "list"]),
|
|
27
16
|
taskId: z.number().optional(),
|
|
28
17
|
worker: z.string().optional(),
|
|
29
18
|
maxPayment: z.string().optional(),
|
|
30
|
-
price: z.string().optional(),
|
|
31
|
-
timeEstimate: z.number().optional(),
|
|
32
19
|
descriptionHash: z.string().optional(),
|
|
20
|
+
price: z.string().optional(),
|
|
21
|
+
timeEstimate: z.string().optional(),
|
|
33
22
|
proposalHash: z.string().optional(),
|
|
34
|
-
deadline: z.number().optional(),
|
|
35
23
|
});
|
|
36
24
|
export function registerMarketTools(server) {
|
|
37
25
|
server.registerTool("corven_market", {
|
|
38
26
|
title: "Market Manager",
|
|
39
|
-
description: "Open marketplace for competitive task bidding
|
|
27
|
+
description: "Open marketplace for competitive task bidding.\n\n" +
|
|
40
28
|
"ACTIONS:\n" +
|
|
41
|
-
" post — Post an open task for
|
|
42
|
-
" bid —
|
|
43
|
-
" select — Client selects
|
|
44
|
-
" cancel — Cancel an open task
|
|
45
|
-
" get — Get open task details
|
|
46
|
-
" list — List tasks
|
|
47
|
-
"WORKFLOW: post → bid
|
|
48
|
-
"FEE: 1% protocol fee deducted from payment. Workers pay nothing to bid.",
|
|
29
|
+
" post — Post an open task for workers to bid on\n" +
|
|
30
|
+
" bid — Worker submits a bid with price and proposal\n" +
|
|
31
|
+
" select — Client selects winning bidder\n" +
|
|
32
|
+
" cancel — Cancel an open task\n" +
|
|
33
|
+
" get — Get open task details with all bids\n" +
|
|
34
|
+
" list — List open tasks\n\n" +
|
|
35
|
+
"WORKFLOW: post → workers bid → select winner → task starts",
|
|
49
36
|
inputSchema: schema.shape,
|
|
50
37
|
}, async (args) => {
|
|
51
38
|
try {
|
|
39
|
+
const sdk = getSDK();
|
|
52
40
|
const { action } = args;
|
|
53
41
|
if (action === "post") {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
return formatTxResult(result);
|
|
42
|
+
const payment = parseEther(args.maxPayment || "0.05");
|
|
43
|
+
const deadline = Math.floor(Date.now() / 1000) + 86400;
|
|
44
|
+
const metaHash = keccak256(toBytes(args.descriptionHash || "QmDefault"));
|
|
45
|
+
const hash = await sdk.createTask("0x0000000000000000000000000000000000000000", payment, deadline, metaHash);
|
|
46
|
+
return formatTxResult(await waitAndFormat(hash));
|
|
60
47
|
}
|
|
61
48
|
if (action === "bid") {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
const priceWei = parseEther(args.price);
|
|
66
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "submitBid", [BigInt(args.taskId), priceWei, BigInt(args.timeEstimate), args.proposalHash], 0n);
|
|
67
|
-
return formatTxResult(result);
|
|
49
|
+
return formatReadResult({
|
|
50
|
+
note: "V5 uses direct task assignment. Use corven_task({ action: 'create' }) with a specific worker address.",
|
|
51
|
+
}, "Info");
|
|
68
52
|
}
|
|
69
53
|
if (action === "select") {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "selectWorker", [BigInt(args.taskId), args.worker], 0n, "OpenTaskMarket");
|
|
74
|
-
return formatTxResult(result);
|
|
75
|
-
}
|
|
76
|
-
if (action === "cancel") {
|
|
77
|
-
if (!args.taskId) {
|
|
78
|
-
return formatStructuredError("Missing required field.", "cancel requires taskId.", "Provide taskId.", false);
|
|
79
|
-
}
|
|
80
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "cancelTask", [BigInt(args.taskId)], 0n, "OpenTaskMarket");
|
|
81
|
-
return formatTxResult(result);
|
|
54
|
+
return formatReadResult({
|
|
55
|
+
note: "V5 uses direct task assignment at creation time.",
|
|
56
|
+
}, "Info");
|
|
82
57
|
}
|
|
83
58
|
if (action === "get") {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const d = data;
|
|
89
|
-
const isTuple = Array.isArray(d);
|
|
90
|
-
const enriched = {
|
|
91
|
-
client: isTuple ? d[0] : d.client,
|
|
92
|
-
maxPaymentEth: formatEther((isTuple ? d[1] : d.maxPayment) ?? 0n),
|
|
93
|
-
deadline: isTuple ? d[2] : d.deadline,
|
|
94
|
-
descriptionHash: isTuple ? d[3] : d.descriptionHash,
|
|
95
|
-
statusLabel: TASK_STATUS[Number(isTuple ? d[4] : d.status)] ?? "Unknown",
|
|
96
|
-
selectedWorker: isTuple ? d[6] : d.selectedWorker,
|
|
97
|
-
selectedPriceEth: isTuple && d[7] ? formatEther(d[7]) : "0",
|
|
98
|
-
};
|
|
99
|
-
return formatReadResult(enriched, `Open Task #${args.taskId}`);
|
|
59
|
+
return formatReadResult({
|
|
60
|
+
taskId: args.taskId,
|
|
61
|
+
note: "Use corven_task({ action: 'get', taskId: X }) for task details",
|
|
62
|
+
}, "Open Task");
|
|
100
63
|
}
|
|
101
64
|
if (action === "list") {
|
|
102
|
-
|
|
103
|
-
return formatReadResult({ totalTasks: Number(count) }, "Market Task Count");
|
|
65
|
+
return formatReadResult({ note: "Use corven_task({ action: 'list' }) to see all tasks" }, "Marketplace");
|
|
104
66
|
}
|
|
105
67
|
return formatReadResult({ error: "Unknown action" }, "Error");
|
|
106
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-market.js","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"corven-market.js","sourceRoot":"","sources":["../../src/tools/corven-market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAA6B,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIrF,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,oDAAoD;YACpD,YAAY;YACZ,oDAAoD;YACpD,wDAAwD;YACxD,4CAA4C;YAC5C,kCAAkC;YAClC,+CAA+C;YAC/C,8BAA8B;YAC9B,4DAA4D;QAC9D,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC;gBACzE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAC/B,4CAAuD,EACvD,OAAO,EACP,QAAQ,EACR,QAAQ,CACT,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,OAAO,gBAAgB,CAAC;oBACtB,IAAI,EAAE,uGAAuG;iBAC9G,EAAE,MAAM,CAAC,CAAC;YACb,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,gBAAgB,CAAC;oBACtB,IAAI,EAAE,kDAAkD;iBACzD,EAAE,MAAM,CAAC,CAAC;YACb,CAAC;YAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,OAAO,gBAAgB,CAAC;oBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,gEAAgE;iBACvE,EAAE,WAAW,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,gBAAgB,CAAC,EAAE,IAAI,EAAE,sDAAsD,EAAE,EAAE,aAAa,CAAC,CAAC;YAC3G,CAAC;YAED,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-task.d.ts","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corven-task.d.ts","sourceRoot":"","sources":["../../src/tools/corven-task.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqFzD"}
|