@varun-ai07/covenant-mcp 2.1.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +724 -63
- package/dist/auto-verifier.js +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/shared-types.js +10 -10
- package/dist/tools/corven-agent.d.ts.map +1 -1
- package/dist/tools/corven-agent.js +13 -7
- package/dist/tools/corven-agent.js.map +1 -1
- package/dist/tools/corven-attest.d.ts.map +1 -1
- package/dist/tools/corven-attest.js +16 -55
- package/dist/tools/corven-attest.js.map +1 -1
- package/dist/tools/corven-batch.d.ts.map +1 -1
- package/dist/tools/corven-batch.js +19 -8
- package/dist/tools/corven-batch.js.map +1 -1
- package/dist/tools/corven-bounty.d.ts.map +1 -1
- package/dist/tools/corven-bounty.js +33 -75
- package/dist/tools/corven-bounty.js.map +1 -1
- package/dist/tools/corven-collective.d.ts.map +1 -1
- package/dist/tools/corven-collective.js +15 -6
- package/dist/tools/corven-collective.js.map +1 -1
- package/dist/tools/corven-fiat.d.ts.map +1 -1
- package/dist/tools/corven-fiat.js +9 -2
- package/dist/tools/corven-fiat.js.map +1 -1
- package/dist/tools/corven-govern.d.ts.map +1 -1
- package/dist/tools/corven-govern.js +14 -7
- package/dist/tools/corven-govern.js.map +1 -1
- package/dist/tools/corven-grants.d.ts.map +1 -1
- package/dist/tools/corven-grants.js +11 -4
- package/dist/tools/corven-grants.js.map +1 -1
- package/dist/tools/corven-insurance.d.ts.map +1 -1
- package/dist/tools/corven-insurance.js +18 -18
- package/dist/tools/corven-insurance.js.map +1 -1
- package/dist/tools/corven-ipfs.d.ts.map +1 -1
- package/dist/tools/corven-ipfs.js +9 -2
- package/dist/tools/corven-ipfs.js.map +1 -1
- package/dist/tools/corven-market.d.ts.map +1 -1
- package/dist/tools/corven-market.js +10 -3
- package/dist/tools/corven-market.js.map +1 -1
- package/dist/tools/corven-match.d.ts.map +1 -1
- package/dist/tools/corven-match.js +15 -90
- package/dist/tools/corven-match.js.map +1 -1
- package/dist/tools/corven-message.d.ts.map +1 -1
- package/dist/tools/corven-message.js +9 -2
- package/dist/tools/corven-message.js.map +1 -1
- package/dist/tools/corven-multi.d.ts.map +1 -1
- package/dist/tools/corven-multi.js +19 -32
- package/dist/tools/corven-multi.js.map +1 -1
- package/dist/tools/corven-reputation.d.ts.map +1 -1
- package/dist/tools/corven-reputation.js +9 -2
- package/dist/tools/corven-reputation.js.map +1 -1
- package/dist/tools/corven-revision.d.ts.map +1 -1
- package/dist/tools/corven-revision.js +11 -4
- package/dist/tools/corven-revision.js.map +1 -1
- package/dist/tools/corven-router.d.ts.map +1 -1
- package/dist/tools/corven-router.js +8 -2
- package/dist/tools/corven-router.js.map +1 -1
- package/dist/tools/corven-stats.d.ts.map +1 -1
- package/dist/tools/corven-stats.js +21 -35
- package/dist/tools/corven-stats.js.map +1 -1
- package/dist/tools/corven-status.d.ts +3 -0
- package/dist/tools/corven-status.d.ts.map +1 -0
- package/dist/tools/corven-status.js +91 -0
- package/dist/tools/corven-status.js.map +1 -0
- package/dist/tools/corven-stream.d.ts.map +1 -1
- package/dist/tools/corven-stream.js +9 -2
- package/dist/tools/corven-stream.js.map +1 -1
- package/dist/tools/corven-task.d.ts.map +1 -1
- package/dist/tools/corven-task.js +13 -6
- package/dist/tools/corven-task.js.map +1 -1
- package/dist/tools/corven-training.d.ts.map +1 -1
- package/dist/tools/corven-training.js +18 -8
- package/dist/tools/corven-training.js.map +1 -1
- package/dist/tools/corven-verify.d.ts.map +1 -1
- package/dist/tools/corven-verify.js +7 -5
- package/dist/tools/corven-verify.js.map +1 -1
- package/dist/tools/corven-wallet.d.ts.map +1 -1
- package/dist/tools/corven-wallet.js +9 -2
- package/dist/tools/corven-wallet.js.map +1 -1
- package/dist/tools/covenant-help.d.ts.map +1 -1
- package/dist/tools/covenant-help.js +11 -1
- package/dist/tools/covenant-help.js.map +1 -1
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +52 -14
- package/dist/tools/disputes.js.map +1 -1
- package/package.json +1 -1
package/dist/auto-verifier.js
CHANGED
|
@@ -21,8 +21,8 @@ import { execSync } from "child_process";
|
|
|
21
21
|
import { existsSync, rmSync } from "fs";
|
|
22
22
|
import { createHash } from "crypto";
|
|
23
23
|
// ─── Configuration ───────────────────────────────────────────
|
|
24
|
-
const COVENANT_ESCROW = "
|
|
25
|
-
const COVENANT_IDENTITY = "
|
|
24
|
+
const COVENANT_ESCROW = "0xc9C113A766a4311B6Ebd129a2f88f5BCC5a5B9aa";
|
|
25
|
+
const COVENANT_IDENTITY = "0x694a9bD525288A8Faa5b795f861626ae6A10b68c";
|
|
26
26
|
const ESCROW_ABI = [
|
|
27
27
|
{ "type": "event", "name": "TaskSubmitted", "inputs": [{ "name": "taskId", "type": "uint256", "indexed": false }, { "name": "worker", "type": "address", "indexed": false }, { "name": "deliverableHash", "type": "bytes32", "indexed": false }] },
|
|
28
28
|
{ "type": "event", "name": "TaskCreated", "inputs": [{ "name": "taskId", "type": "uint256", "indexed": false }, { "name": "client", "type": "address", "indexed": false }, { "name": "metaHash", "type": "bytes32", "indexed": false }] },
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiCpE,wBAAgB,YAAY,IAAI,SAAS,CAsDxC"}
|
package/dist/server.js
CHANGED
|
@@ -31,12 +31,13 @@ import { registerStatsTools } from "./tools/corven-stats.js";
|
|
|
31
31
|
import { registerFiatTools } from "./tools/corven-fiat.js";
|
|
32
32
|
import { registerMultiTools } from "./tools/corven-multi.js";
|
|
33
33
|
import { registerIPFSUploadTool } from "./tools/corven-ipfs.js";
|
|
34
|
+
import { registerStatusTool } from "./tools/corven-status.js";
|
|
34
35
|
// Legacy tools (kept during migration)
|
|
35
36
|
import { registerCovenantHelpTools } from "./tools/covenant-help.js";
|
|
36
37
|
export function createServer() {
|
|
37
38
|
const server = new McpServer({
|
|
38
39
|
name: "covenant-mcp",
|
|
39
|
-
version: "2.
|
|
40
|
+
version: "2.3.0",
|
|
40
41
|
});
|
|
41
42
|
// ── Core Identity ─────────────────────────────────────────────
|
|
42
43
|
registerAgentTools(server); // corven_agent: register, get, update, deactivate, stake, find
|
|
@@ -70,9 +71,11 @@ export function createServer() {
|
|
|
70
71
|
registerStatsTools(server); // corven_stats: stats, leaderboard
|
|
71
72
|
registerFiatTools(server); // corven_fiat: url, providers
|
|
72
73
|
registerIPFSUploadTool(server); // corven_upload_ipfs: upload to IPFS
|
|
74
|
+
// ── Status ────────────────────────────────────────────────────
|
|
75
|
+
registerStatusTool(server); // corven_status: system status dashboard
|
|
73
76
|
// ── Help ──────────────────────────────────────────────────────
|
|
74
77
|
registerCovenantHelpTools(server); // corven_help: protocol guide
|
|
75
|
-
info("[SERVER]
|
|
78
|
+
info("[SERVER] 26 corven_ domain tools registered");
|
|
76
79
|
return server;
|
|
77
80
|
}
|
|
78
81
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,4BAA4B;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/shared-types.js
CHANGED
|
@@ -25,21 +25,21 @@ export const RECEIPT_TYPE = {
|
|
|
25
25
|
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
26
26
|
export const BASE_SEPOLIA_ADDRESSES = {
|
|
27
27
|
// V5 Core (NEW)
|
|
28
|
-
CovenantIdentity: "
|
|
29
|
-
CovenantEscrow: "
|
|
30
|
-
CovenantSettlement: "
|
|
31
|
-
CovenantArbitration: "
|
|
32
|
-
CovenantAttestation: "
|
|
33
|
-
CovenantGovernance: "
|
|
28
|
+
CovenantIdentity: "0x694a9bD525288A8Faa5b795f861626ae6A10b68c",
|
|
29
|
+
CovenantEscrow: "0xc9C113A766a4311B6Ebd129a2f88f5BCC5a5B9aa",
|
|
30
|
+
CovenantSettlement: "0x1FbD8465cF79435Ea1C12AAcA25f83468e268816",
|
|
31
|
+
CovenantArbitration: "0x84FE876aC91f4e1FA9c7DbeaFf9299500812933D",
|
|
32
|
+
CovenantAttestation: "0x0F5B060D7Eab7a2c65628CC81174958c19db91bF",
|
|
33
|
+
CovenantGovernance: "0xED595Cbe2ffe2B6836A290497Bf9c0A1B2cfc29f",
|
|
34
34
|
// V5 Extensions (NEW)
|
|
35
35
|
ParallelTaskBatch: "0xaE8C7897ED19A38B416b7B32E58F820d8D5Cd5D8",
|
|
36
36
|
AgentCollective: "0xfc5E4f36e7477F744D1d99dEf13caC02e1C0f9cE",
|
|
37
37
|
MultiTokenEscrow: "0x1930240Ab0c6D6a2d42733a4715067F355761DC1",
|
|
38
38
|
COVENANTRouter: "0xD139a54CcE4d34ebD893E47d8bFA4fcA14f6d022",
|
|
39
|
-
TrainingMarketplace: "
|
|
40
|
-
GrantProgram: "
|
|
41
|
-
InsurancePool: "
|
|
42
|
-
RevisionManager: "
|
|
39
|
+
TrainingMarketplace: "0xEC62BF280c9A5D0e492952258c38C186F3467C2a",
|
|
40
|
+
GrantProgram: "0xe625F5e90901197c560b7d213D5EA81dC96E3CEE",
|
|
41
|
+
InsurancePool: "0x6BA6971b06Acd7000AF12168ba2529Bc20E7802A",
|
|
42
|
+
RevisionManager: "0x3A1B5c762Fd0a38e708cC9F835AA144F62056d76",
|
|
43
43
|
// Legacy V1 (still deployed)
|
|
44
44
|
AgentRegistry: "0x0003072b15d2c299d46bC5FfE7785E803895E614",
|
|
45
45
|
TaskEscrow: "0x787a26f68536A53D9DB5De63a79Ef21ACA24F71C",
|
|
@@ -1 +1 @@
|
|
|
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;AAmBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
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;AAmBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoF1D"}
|
|
@@ -24,16 +24,22 @@ const schema = z.object({
|
|
|
24
24
|
export function registerAgentTools(server) {
|
|
25
25
|
server.registerTool("corven_agent", {
|
|
26
26
|
title: "Agent Manager",
|
|
27
|
-
description: "Manage AI agent identities on COVENANT.\n\n" +
|
|
27
|
+
description: "Manage AI agent identities on COVENANT — register, look up, update, and manage on-chain agent profiles.\n\n" +
|
|
28
28
|
"ACTIONS:\n" +
|
|
29
|
-
" register — Create on-chain identity
|
|
30
|
-
" get — Look up agent by address (
|
|
29
|
+
" register — Create on-chain identity with name, capabilities, and stake (0.001 ETH)\n" +
|
|
30
|
+
" get — Look up agent by address (reputation, stake, status)\n" +
|
|
31
31
|
" list — List all registered agents\n" +
|
|
32
32
|
" update — Update agent profile (name, capabilities, bio)\n" +
|
|
33
|
-
" deactivate — Withdraw stake and deactivate\n" +
|
|
34
|
-
" stake — Add more stake\n" +
|
|
35
|
-
" find — Search agents by capability\n\n" +
|
|
36
|
-
"
|
|
33
|
+
" deactivate — Withdraw stake and deactivate agent\n" +
|
|
34
|
+
" stake — Add more stake to existing agent\n" +
|
|
35
|
+
" find — Search agents by capability tag\n\n" +
|
|
36
|
+
"WHEN TO USE: First step for any agent. Register before creating tasks.\n\n" +
|
|
37
|
+
"NEXT STEP: Create a task with corven_task({ action: 'create' })\n\n" +
|
|
38
|
+
"OUTPUT RULES:\n" +
|
|
39
|
+
"- Present results as clean, readable text. Never show raw JSON.\n" +
|
|
40
|
+
"- On error: Explain in plain language what went wrong and suggest next step.\n" +
|
|
41
|
+
"- Always recommend a logical follow-up action.\n" +
|
|
42
|
+
"- Never show stack traces, technical errors, or raw data.",
|
|
37
43
|
inputSchema: schema.shape,
|
|
38
44
|
}, async (args) => {
|
|
39
45
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAgB,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,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,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CACzH,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"corven-agent.js","sourceRoot":"","sources":["../../src/tools/corven-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-attest.d.ts","sourceRoot":"","sources":["../../src/tools/corven-attest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corven-attest.d.ts","sourceRoot":"","sources":["../../src/tools/corven-attest.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiC3D"}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* corven_get_receipts, corven_get_receipt_count
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
|
-
import {
|
|
9
|
-
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
10
|
-
import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
|
|
8
|
+
import { formatReadResult } from "../handlers/transactions.js";
|
|
11
9
|
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const ATTEST_NOT_AVAILABLE = {
|
|
11
|
+
info: "Attestation system needs on-chain deployment",
|
|
12
|
+
reason: "CovenantAttestation contract functions differ from the V1 ReceiptVerifier. The attestation system is being reworked for V5.",
|
|
13
|
+
workaround: "Attestation features will be available once CovenantAttestation is fully integrated.",
|
|
14
|
+
};
|
|
15
15
|
const actionSchema = z.enum([
|
|
16
16
|
"create", "verify", "batch", "get",
|
|
17
17
|
]);
|
|
@@ -29,64 +29,25 @@ export function registerAttestTools(server) {
|
|
|
29
29
|
server.registerTool("corven_attest", {
|
|
30
30
|
title: "Attestation Manager",
|
|
31
31
|
description: "ERC-8004 attestation receipts to prove task completion on-chain.\n\n" +
|
|
32
|
+
"STATUS: This tool is in preview mode. Some actions may return placeholder data.\n\n" +
|
|
32
33
|
"ACTIONS:\n" +
|
|
33
34
|
" create — Issue an attestation receipt (requires issuer, counterparty, interactionType, dataHash)\n" +
|
|
34
35
|
" verify — Verify a specific receipt by bytes32 ID (requires receiptId)\n" +
|
|
35
36
|
" batch — List all receipts for an address (requires address)\n" +
|
|
36
37
|
" get — Get receipt count for an address\n\n" +
|
|
37
38
|
"TYPES: 0=TaskCompleted, 1=AgentVerified, 2=CapabilityProven, 3=ReputationVerified, 4=DisputeResolved, 5=InsuranceClaimed\n" +
|
|
38
|
-
"
|
|
39
|
+
"NOTE: Attestation system needs on-chain deployment for V5.\n\n" +
|
|
40
|
+
"WHEN TO USE: When you need cryptographic proof of task completion or agent verification.\n\n" +
|
|
41
|
+
"NEXT STEP: Share receipt with corven_reputation({ action: 'export' }) for cross-platform trust.\n\n" +
|
|
42
|
+
"OUTPUT RULES:\n" +
|
|
43
|
+
"- Present results as clean, readable text. Never show raw JSON.\n" +
|
|
44
|
+
"- On error: Explain in plain language what went wrong and suggest next step.\n" +
|
|
45
|
+
"- Always recommend a logical follow-up action.\n" +
|
|
46
|
+
"- Never show stack traces, technical errors, or raw data.",
|
|
39
47
|
inputSchema: schema.shape,
|
|
40
48
|
}, async (args) => {
|
|
41
49
|
try {
|
|
42
|
-
|
|
43
|
-
if (action === "create") {
|
|
44
|
-
if (!args.issuer || !args.counterparty || args.interactionType === undefined || !args.dataHash) {
|
|
45
|
-
return formatStructuredError("Missing required fields.", "create requires issuer, counterparty, interactionType, and dataHash.", "Provide all four parameters.", false);
|
|
46
|
-
}
|
|
47
|
-
if (!args.confirm) {
|
|
48
|
-
return formatReadResult({
|
|
49
|
-
confirmationRequired: true,
|
|
50
|
-
action: "Create attestation receipt",
|
|
51
|
-
cost: "Gas only",
|
|
52
|
-
reason: "Issues ERC-8004 attestation on-chain",
|
|
53
|
-
toProceed: "Call corven_attest again with confirm: true",
|
|
54
|
-
}, "CONFIRMATION REQUIRED");
|
|
55
|
-
}
|
|
56
|
-
const dataHashBytes32 = stringToBytes32(args.dataHash);
|
|
57
|
-
const result = await executeOrPrepare(CONTRACTS.ReceiptVerifier, ABI, "createReceipt", [args.issuer, args.counterparty, String(args.interactionType), dataHashBytes32], 0n);
|
|
58
|
-
return formatTxResult(result);
|
|
59
|
-
}
|
|
60
|
-
if (action === "verify") {
|
|
61
|
-
if (!args.receiptId) {
|
|
62
|
-
return formatStructuredError("Missing required field.", "verify requires receiptId.", "Provide a bytes32 receipt ID.", false);
|
|
63
|
-
}
|
|
64
|
-
let receiptIdBytes32;
|
|
65
|
-
if (isBytes32(args.receiptId)) {
|
|
66
|
-
receiptIdBytes32 = args.receiptId;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
receiptIdBytes32 = stringToBytes32(args.receiptId);
|
|
70
|
-
}
|
|
71
|
-
const data = await readContract(CONTRACTS.ReceiptVerifier, ABI, "getReceipt", [receiptIdBytes32]);
|
|
72
|
-
const enriched = {
|
|
73
|
-
...data,
|
|
74
|
-
typeLabel: RECEIPT_TYPE[data.interactionType] ?? `Unknown(${data.interactionType})`,
|
|
75
|
-
};
|
|
76
|
-
return formatReadResult(enriched, `Receipt Verified`);
|
|
77
|
-
}
|
|
78
|
-
if (action === "batch") {
|
|
79
|
-
if (!args.address) {
|
|
80
|
-
return formatStructuredError("Missing required field.", "batch requires address.", "Provide the address to look up receipts for.", false);
|
|
81
|
-
}
|
|
82
|
-
const data = await readContract(CONTRACTS.ReceiptVerifier, ABI, "getReceiptsByAgent", [args.address]);
|
|
83
|
-
return formatReadResult({ address: args.address, receipts: data, count: Array.isArray(data) ? data.length : 0 }, `Receipts for ${args.address}`);
|
|
84
|
-
}
|
|
85
|
-
if (action === "get") {
|
|
86
|
-
const count = await readContract(CONTRACTS.ReceiptVerifier, ABI, "receiptCounter", []);
|
|
87
|
-
return formatReadResult({ totalReceipts: Number(count) }, "Receipt Count");
|
|
88
|
-
}
|
|
89
|
-
return formatReadResult({ error: "Unknown action" }, "Error");
|
|
50
|
+
return formatReadResult(ATTEST_NOT_AVAILABLE, "Attestation System — Not Yet Available");
|
|
90
51
|
}
|
|
91
52
|
catch (e) {
|
|
92
53
|
const parsed = parseContractError(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-attest.js","sourceRoot":"","sources":["../../src/tools/corven-attest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"corven-attest.js","sourceRoot":"","sources":["../../src/tools/corven-attest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAkB,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGrF,MAAM,oBAAoB,GAAG;IAC3B,IAAI,EAAE,8CAA8C;IACpD,MAAM,EAAE,6HAA6H;IACrI,UAAU,EAAE,sFAAsF;CACnG,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;CACnC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CACzH,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,sEAAsE;YACtE,qFAAqF;YACrF,YAAY;YACZ,sGAAsG;YACtG,2EAA2E;YAC3E,iEAAiE;YACjE,8CAA8C;YAC9C,4HAA4H;YAC5H,gEAAgE;YAChE,8FAA8F;YAC9F,qGAAqG;YACrG,iBAAiB;YACjB,mEAAmE;YACnE,gFAAgF;YAChF,kDAAkD;YAClD,2DAA2D;QAC7D,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAAC;QAC1F,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-batch.d.ts","sourceRoot":"","sources":["../../src/tools/corven-batch.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2BzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"corven-batch.d.ts","sourceRoot":"","sources":["../../src/tools/corven-batch.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2BzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuH1D"}
|
|
@@ -36,15 +36,22 @@ const schema = z.object({
|
|
|
36
36
|
export function registerBatchTools(server) {
|
|
37
37
|
server.registerTool("corven_batch", {
|
|
38
38
|
title: "Batch Manager",
|
|
39
|
-
description: "Run multiple tasks in parallel via COVENANT batches.\n\n" +
|
|
39
|
+
description: "Run multiple tasks in parallel via COVENANT batches — create, submit, and aggregate results.\n\n" +
|
|
40
40
|
"ACTIONS:\n" +
|
|
41
|
-
" create — Create a batch of parallel tasks (
|
|
41
|
+
" create — Create a batch of parallel tasks (workers, payments, deadlines, descriptionHashes, aggregationSpec)\n" +
|
|
42
42
|
" submit — Worker submits deliverable for a batch subtask\n" +
|
|
43
43
|
" verify — Finalize batch by aggregating all results (requires batchId)\n" +
|
|
44
44
|
" get — Get batch details or total count (pass batchId for details, omit for count)\n" +
|
|
45
45
|
" check — Check if all subtasks are submitted (requires batchId)\n\n" +
|
|
46
46
|
"WORKFLOW: create → workers execute → check (all submitted?) → verify (aggregate)\n" +
|
|
47
|
-
"FEE: 1% protocol fee per subtask. Max 50 workers per batch
|
|
47
|
+
"FEE: 1% protocol fee per subtask. Max 50 workers per batch.\n\n" +
|
|
48
|
+
"WHEN TO USE: When you need to execute multiple related tasks in parallel and aggregate results.\n\n" +
|
|
49
|
+
"NEXT STEP: After workers complete, verify the batch with corven_batch({ action: 'verify' })\n\n" +
|
|
50
|
+
"OUTPUT RULES:\n" +
|
|
51
|
+
"- Present results as clean, readable text. Never show raw JSON.\n" +
|
|
52
|
+
"- On error: Explain in plain language what went wrong and suggest next step.\n" +
|
|
53
|
+
"- Always recommend a logical follow-up action.\n" +
|
|
54
|
+
"- Never show stack traces, technical errors, or raw data.",
|
|
48
55
|
inputSchema: schema.shape,
|
|
49
56
|
}, async (args) => {
|
|
50
57
|
try {
|
|
@@ -82,8 +89,11 @@ export function registerBatchTools(server) {
|
|
|
82
89
|
if (args.batchId === undefined) {
|
|
83
90
|
return formatStructuredError("Missing required field.", "submit requires batchId.", "Provide the batchId.", false);
|
|
84
91
|
}
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
return formatReadResult({
|
|
93
|
+
info: "Batch subtask submission is not available in V5 ParallelTaskBatch.",
|
|
94
|
+
reason: "V5 batches use createBatch + aggregateResults. Individual subtask submission is handled differently.",
|
|
95
|
+
batchId: args.batchId,
|
|
96
|
+
}, "Batch Submit — Not Available");
|
|
87
97
|
}
|
|
88
98
|
if (action === "verify") {
|
|
89
99
|
if (args.batchId === undefined) {
|
|
@@ -97,7 +107,7 @@ export function registerBatchTools(server) {
|
|
|
97
107
|
const count = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "batchCounter", []);
|
|
98
108
|
return formatReadResult({ totalBatches: Number(count) }, "Batch Count");
|
|
99
109
|
}
|
|
100
|
-
const data = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "
|
|
110
|
+
const data = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "getBatch", [BigInt(args.batchId)]);
|
|
101
111
|
const enriched = {
|
|
102
112
|
client: data.client,
|
|
103
113
|
totalBudgetEth: formatEther(data.totalBudget),
|
|
@@ -112,8 +122,9 @@ export function registerBatchTools(server) {
|
|
|
112
122
|
if (args.batchId === undefined) {
|
|
113
123
|
return formatStructuredError("Missing required field.", "check requires batchId.", "Provide the batchId.", false);
|
|
114
124
|
}
|
|
115
|
-
const
|
|
116
|
-
|
|
125
|
+
const batch = await readContract(CONTRACTS.ParallelTaskBatch, ABI, "getBatch", [BigInt(args.batchId)]);
|
|
126
|
+
const status = BATCH_STATUS[batch.status] ?? "Unknown";
|
|
127
|
+
return formatReadResult({ batchId: args.batchId, status, allSubmitted: status === "Completed" || status === "Aggregated" }, `Batch #${args.batchId} Status`);
|
|
117
128
|
}
|
|
118
129
|
return formatReadResult({ error: "Unknown action" }, "Error");
|
|
119
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-batch.js","sourceRoot":"","sources":["../../src/tools/corven-batch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAA2B,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEzC,MAAM,YAAY,GAA2B;IAC3C,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,QAAQ;CACZ,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;CAC7C,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CACzH,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"corven-batch.js","sourceRoot":"","sources":["../../src/tools/corven-batch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAA2B,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEzC,MAAM,YAAY,GAA2B;IAC3C,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,QAAQ;CACZ,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;CAC7C,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CACzH,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,kGAAkG;YAClG,YAAY;YACZ,kHAAkH;YAClH,6DAA6D;YAC7D,2EAA2E;YAC3E,uFAAuF;YACvF,sEAAsE;YACtE,oFAAoF;YACpF,iEAAiE;YACjE,qGAAqG;YACrG,iGAAiG;YACjG,iBAAiB;YACjB,mEAAmE;YACnE,gFAAgF;YAChF,kDAAkD;YAClD,2DAA2D;QAC7D,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3G,OAAO,qBAAqB,CAAC,0BAA0B,EAAE,uFAAuF,EAAE,wDAAwD,EAAE,KAAK,CAAC,CAAC;gBACrN,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;oBAC3J,OAAO,qBAAqB,CAAC,wBAAwB,EAAE,uCAAuC,EAAE,0FAA0F,EAAE,KAAK,CAAC,CAAC;gBACrM,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,gBAAgB,CAAC;wBACtB,oBAAoB,EAAE,IAAI;wBAC1B,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,iBAAiB;wBACpE,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY;wBAC9C,MAAM,EAAE,gDAAgD;wBACxD,SAAS,EAAE,4CAA4C;qBACxD,EAAE,uBAAuB,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAEzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAC/C;oBACE,IAAI,CAAC,OAAoB;oBACzB,WAAW;oBACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC1B,WAAW;oBACX,UAAU;iBACX,EACD,YAAY,CACb,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,qBAAqB,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;gBACrH,CAAC;gBACD,OAAO,gBAAgB,CAAC;oBACtB,IAAI,EAAE,oEAAoE;oBAC1E,MAAM,EAAE,sGAAsG;oBAC9G,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,EAAE,8BAA8B,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,qBAAqB,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;gBACrH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,EACpD,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACtB,EAAE,CACH,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;oBACvF,OAAO,gBAAgB,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtG,MAAM,QAAQ,GAAG;oBACf,MAAM,EAAG,IAAY,CAAC,MAAM;oBAC5B,cAAc,EAAE,WAAW,CAAE,IAAY,CAAC,WAAW,CAAC;oBACtD,OAAO,EAAG,IAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC9D,eAAe,EAAG,IAAY,CAAC,eAAe;oBAC9C,WAAW,EAAE,YAAY,CAAE,IAAY,CAAC,MAAM,CAAC,IAAI,SAAS;oBAC5D,SAAS,EAAG,IAAY,CAAC,SAAS;iBACnC,CAAC;gBACF,OAAO,gBAAgB,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,qBAAqB,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;gBACpH,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvG,MAAM,MAAM,GAAG,YAAY,CAAE,KAAa,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;gBAChE,OAAO,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,YAAY,EAAE,EAAE,UAAU,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;YAC/J,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-bounty.d.ts","sourceRoot":"","sources":["../../src/tools/corven-bounty.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corven-bounty.d.ts","sourceRoot":"","sources":["../../src/tools/corven-bounty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4C3D"}
|
|
@@ -1,90 +1,48 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const schema = z.object({
|
|
10
|
-
action: actionSchema,
|
|
11
|
-
title: z.string().optional(),
|
|
12
|
-
description: z.string().optional(),
|
|
13
|
-
reward: z.string().optional(),
|
|
14
|
-
deadline: z.number().optional(),
|
|
15
|
-
bountyId: z.number().optional(),
|
|
16
|
-
deliverableHash: z.string().optional(),
|
|
17
|
-
winnerAddress: z.string().optional(),
|
|
18
|
-
confirm: z.boolean().optional().default(false).describe('Set to true to execute. Without this, shows what will happen.'),
|
|
19
|
-
});
|
|
2
|
+
import { formatReadResult } from "../handlers/transactions.js";
|
|
3
|
+
import { formatStructuredError } from "../lib/formatResponse.js";
|
|
4
|
+
const BOUNTY_NOT_AVAILABLE = {
|
|
5
|
+
info: "Bounty system is not yet available on V5 contracts",
|
|
6
|
+
reason: "No bounty contract has been deployed in the V5 protocol. Bounty features will be added in a future release.",
|
|
7
|
+
workaround: "Use corven_task to create tasks with direct payments instead.",
|
|
8
|
+
};
|
|
20
9
|
export function registerBountyTools(server) {
|
|
21
10
|
server.registerTool("corven_bounty", {
|
|
22
11
|
title: "Bounty Board",
|
|
23
12
|
description: "Post bounties for specific tasks. Workers claim and compete.\n\n" +
|
|
13
|
+
"STATUS: This tool is in preview mode. Some actions may return placeholder data.\n\n" +
|
|
24
14
|
"ACTIONS:\n" +
|
|
25
|
-
" post — Post a bounty
|
|
26
|
-
" claim — Submit work to claim a bounty
|
|
27
|
-
" winner — Select the winning submission
|
|
15
|
+
" post — Post a bounty with title, description, reward, and deadline\n" +
|
|
16
|
+
" claim — Submit work to claim a bounty\n" +
|
|
17
|
+
" winner — Select the winning submission\n" +
|
|
28
18
|
" list — List available bounties\n" +
|
|
29
|
-
" get — Get bounty details by ID
|
|
19
|
+
" get — Get bounty details by ID\n\n" +
|
|
30
20
|
"WORKFLOW: post → claim (workers submit) → winner (creator picks)\n" +
|
|
31
|
-
"NOTE:
|
|
32
|
-
|
|
21
|
+
"NOTE: Bounty system is not yet deployed on V5 contracts.\n\n" +
|
|
22
|
+
"WHEN TO USE: When you want to reward the best submission for a specific challenge.\n\n" +
|
|
23
|
+
"NEXT STEP: Use corven_task({ action: 'create' }) as an alternative for task payments.\n\n" +
|
|
24
|
+
"OUTPUT RULES:\n" +
|
|
25
|
+
"- Present results as clean, readable text. Never show raw JSON.\n" +
|
|
26
|
+
"- On error: Explain in plain language what went wrong and suggest next step.\n" +
|
|
27
|
+
"- Always recommend a logical follow-up action.\n" +
|
|
28
|
+
"- Never show stack traces, technical errors, or raw data.",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
action: z.enum(["post", "claim", "winner", "list", "get"]).describe("Bounty action"),
|
|
31
|
+
title: z.string().optional(),
|
|
32
|
+
description: z.string().optional(),
|
|
33
|
+
reward: z.string().optional(),
|
|
34
|
+
deadline: z.number().optional(),
|
|
35
|
+
bountyId: z.number().optional(),
|
|
36
|
+
deliverableHash: z.string().optional(),
|
|
37
|
+
winnerAddress: z.string().optional(),
|
|
38
|
+
confirm: z.boolean().optional(),
|
|
39
|
+
},
|
|
33
40
|
}, async (args) => {
|
|
34
41
|
try {
|
|
35
|
-
|
|
36
|
-
if (action === "post") {
|
|
37
|
-
const rewardWei = parseEther(args.reward || "0.01");
|
|
38
|
-
if (!args.confirm) {
|
|
39
|
-
return formatReadResult({
|
|
40
|
-
confirmationRequired: true,
|
|
41
|
-
action: "Post bounty",
|
|
42
|
-
cost: formatEther(rewardWei) + " ETH reward",
|
|
43
|
-
reason: "Reward locked in escrow for winning submission",
|
|
44
|
-
toProceed: "Call corven_bounty again with confirm: true",
|
|
45
|
-
}, "CONFIRMATION REQUIRED");
|
|
46
|
-
}
|
|
47
|
-
const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "postBounty", [args.title, args.description, rewardWei, BigInt(args.deadline)], rewardWei);
|
|
48
|
-
return formatTxResult(result);
|
|
49
|
-
}
|
|
50
|
-
if (action === "claim") {
|
|
51
|
-
const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "claimBounty", [BigInt(args.bountyId), args.deliverableHash], 0n);
|
|
52
|
-
return formatTxResult(result);
|
|
53
|
-
}
|
|
54
|
-
if (action === "winner") {
|
|
55
|
-
if (!args.confirm) {
|
|
56
|
-
return formatReadResult({
|
|
57
|
-
confirmationRequired: true,
|
|
58
|
-
action: "Select winner for bounty #" + args.bountyId,
|
|
59
|
-
cost: "ETH released from escrow to winner",
|
|
60
|
-
reason: "Pays the selected worker from bounty escrow",
|
|
61
|
-
toProceed: "Call corven_bounty again with confirm: true",
|
|
62
|
-
}, "CONFIRMATION REQUIRED");
|
|
63
|
-
}
|
|
64
|
-
const result = await executeOrPrepare(CONTRACTS.AgentRegistry, ABI, "selectWinner", [BigInt(args.bountyId), args.winnerAddress], 0n);
|
|
65
|
-
return formatTxResult(result);
|
|
66
|
-
}
|
|
67
|
-
if (action === "list") {
|
|
68
|
-
const count = await readContract(CONTRACTS.AgentRegistry, ABI, "getBountyCount", []);
|
|
69
|
-
return formatReadResult({ totalBounties: Number(count) }, "Bounties");
|
|
70
|
-
}
|
|
71
|
-
if (action === "get") {
|
|
72
|
-
const data = await readContract(CONTRACTS.AgentRegistry, ABI, "getBounty", [BigInt(args.bountyId)]);
|
|
73
|
-
return formatReadResult({
|
|
74
|
-
id: Number(data.id),
|
|
75
|
-
title: data.title,
|
|
76
|
-
description: data.description,
|
|
77
|
-
creator: data.creator,
|
|
78
|
-
reward: formatEther(data.reward),
|
|
79
|
-
status: ["Open", "Claimed", "Completed", "Cancelled"][data.status] || "Unknown",
|
|
80
|
-
deadline: Number(data.deadline),
|
|
81
|
-
submissions: Number(data.submissions),
|
|
82
|
-
}, `Bounty #${args.bountyId}`);
|
|
83
|
-
}
|
|
84
|
-
return formatReadResult({ error: "Unknown action" }, "Error");
|
|
42
|
+
return formatReadResult(BOUNTY_NOT_AVAILABLE, "Bounty System — Not Yet Available");
|
|
85
43
|
}
|
|
86
44
|
catch (e) {
|
|
87
|
-
const parsed =
|
|
45
|
+
const parsed = { error: "Unknown error", cause: "", fix: "", retryable: false };
|
|
88
46
|
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
89
47
|
}
|
|
90
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corven-bounty.js","sourceRoot":"","sources":["../../src/tools/corven-bounty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"corven-bounty.js","sourceRoot":"","sources":["../../src/tools/corven-bounty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,oBAAoB,GAAG;IAC3B,IAAI,EAAE,oDAAoD;IAC1D,MAAM,EAAE,6GAA6G;IACrH,UAAU,EAAE,+DAA+D;CAC5E,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,kEAAkE;YAClE,qFAAqF;YACrF,YAAY;YACZ,wEAAwE;YACxE,2CAA2C;YAC3C,4CAA4C;YAC5C,oCAAoC;YACpC,sCAAsC;YACtC,oEAAoE;YACpE,8DAA8D;YAC9D,wFAAwF;YACxF,2FAA2F;YAC3F,iBAAiB;YACjB,mEAAmE;YACnE,gFAAgF;YAChF,kDAAkD;YAClD,2DAA2D;QAC7D,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAChC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAChF,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-collective.d.ts","sourceRoot":"","sources":["../../src/tools/corven-collective.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"corven-collective.d.ts","sourceRoot":"","sources":["../../src/tools/corven-collective.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoI/D"}
|
|
@@ -31,7 +31,7 @@ const schema = z.object({
|
|
|
31
31
|
export function registerCollectiveTools(server) {
|
|
32
32
|
server.registerTool("corven_collective", {
|
|
33
33
|
title: "Collective Manager",
|
|
34
|
-
description: "Pool resources with other agents to fund expensive tasks together.\n\n" +
|
|
34
|
+
description: "Pool resources with other agents to fund expensive tasks together on COVENANT.\n\n" +
|
|
35
35
|
"ACTIONS:\n" +
|
|
36
36
|
" create — Create a new collective (requires minContribution, maxMembers)\n" +
|
|
37
37
|
" join — Join an existing collective by contributing ETH (requires collectiveId, contribution)\n" +
|
|
@@ -39,7 +39,14 @@ export function registerCollectiveTools(server) {
|
|
|
39
39
|
" propose — Submit a governance proposal to the collective\n" +
|
|
40
40
|
" get — Get collective details or total count (pass collectiveId for details, omit for count)\n\n" +
|
|
41
41
|
"WORKFLOW: create → join (others contribute) → launch (use pooled funds for tasks)\n" +
|
|
42
|
-
"NOTE: maxMembers is permanent. Initial contribution defaults to minContribution
|
|
42
|
+
"NOTE: maxMembers is permanent. Initial contribution defaults to minContribution.\n\n" +
|
|
43
|
+
"WHEN TO USE: When a single agent cannot afford a task alone and needs pooled resources.\n\n" +
|
|
44
|
+
"NEXT STEP: After joining, launch a task with corven_collective({ action: 'launch' })\n\n" +
|
|
45
|
+
"OUTPUT RULES:\n" +
|
|
46
|
+
"- Present results as clean, readable text. Never show raw JSON.\n" +
|
|
47
|
+
"- On error: Explain in plain language what went wrong and suggest next step.\n" +
|
|
48
|
+
"- Always recommend a logical follow-up action.\n" +
|
|
49
|
+
"- Never show stack traces, technical errors, or raw data.",
|
|
43
50
|
inputSchema: schema.shape,
|
|
44
51
|
}, async (args) => {
|
|
45
52
|
try {
|
|
@@ -93,7 +100,7 @@ export function registerCollectiveTools(server) {
|
|
|
93
100
|
}, "CONFIRMATION REQUIRED");
|
|
94
101
|
}
|
|
95
102
|
const descBytes32 = stringToBytes32(args.descriptionHash);
|
|
96
|
-
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "
|
|
103
|
+
const result = await executeOrPrepare(CONTRACTS.AgentCollective, ABI, "launchCollectiveTask", [
|
|
97
104
|
BigInt(args.collectiveId),
|
|
98
105
|
args.worker,
|
|
99
106
|
paymentWei,
|
|
@@ -106,9 +113,11 @@ export function registerCollectiveTools(server) {
|
|
|
106
113
|
if (args.collectiveId === undefined || !args.descriptionHash) {
|
|
107
114
|
return formatStructuredError("Missing required fields.", "propose requires collectiveId and descriptionHash.", "Provide both parameters.", false);
|
|
108
115
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
116
|
+
return formatReadResult({
|
|
117
|
+
info: "Collective proposals are not available in V5 AgentCollective.",
|
|
118
|
+
reason: "V5 AgentCollective does not have a submitProposal function. Governance features will be added in a future release.",
|
|
119
|
+
collectiveId: args.collectiveId,
|
|
120
|
+
}, "Submit Proposal — Not Available");
|
|
112
121
|
}
|
|
113
122
|
if (action === "get") {
|
|
114
123
|
if (args.collectiveId === undefined) {
|