@varun-ai07/covenant-mcp 2.0.0 → 2.0.1

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.
@@ -4,7 +4,8 @@
4
4
  */
5
5
  export declare function loadStore<T>(name: string, defaultValue: T): T;
6
6
  /**
7
- * Persist a store to disk immediately. Call after every mutation.
7
+ * Persist a store to disk atomically.
8
+ * Writes to a temp file first, then renames — prevents corruption on crash.
8
9
  */
9
10
  export declare function saveStore<T>(name: string, data: T): void;
10
11
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lib/store.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAS7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAIxD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lib/store.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAS7D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAYxD"}
package/dist/lib/store.js CHANGED
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Data lives under <cwd>/.covenant-data/<name>.json so it survives server
5
5
  * restarts while keeping the in-memory Map / Set semantics during runtime.
6
+ *
7
+ * Uses atomic writes (write to temp file, then rename) to prevent corruption.
6
8
  */
7
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
9
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync, unlinkSync } from "fs";
8
10
  import { join } from "path";
9
11
  const DATA_DIR = join(process.cwd(), ".covenant-data");
10
12
  function ensureDir() {
@@ -29,11 +31,24 @@ export function loadStore(name, defaultValue) {
29
31
  }
30
32
  }
31
33
  /**
32
- * Persist a store to disk immediately. Call after every mutation.
34
+ * Persist a store to disk atomically.
35
+ * Writes to a temp file first, then renames — prevents corruption on crash.
33
36
  */
34
37
  export function saveStore(name, data) {
35
38
  ensureDir();
36
39
  const filePath = join(DATA_DIR, `${name}.json`);
37
- writeFileSync(filePath, JSON.stringify(data, null, 2), "utf-8");
40
+ const tmpPath = `${filePath}.tmp.${Date.now()}`;
41
+ try {
42
+ writeFileSync(tmpPath, JSON.stringify(data, null, 2), "utf-8");
43
+ renameSync(tmpPath, filePath);
44
+ }
45
+ catch (e) {
46
+ // Clean up temp file on failure
47
+ try {
48
+ unlinkSync(tmpPath);
49
+ }
50
+ catch { }
51
+ throw e;
52
+ }
38
53
  }
39
54
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/lib/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvD,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,YAAe;IACxD,SAAS,EAAE,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAM,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,IAAO;IAChD,SAAS,EAAE,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAChD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/lib/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvD,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,YAAe;IACxD,SAAS,EAAE,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAM,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,IAAO;IAChD,SAAS,EAAE,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,QAAQ,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gCAAgC;QAChC,IAAI,CAAC;YAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACrC,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -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;AA+BpE,wBAAgB,YAAY,IAAI,SAAS,CAkDxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCpE,wBAAgB,YAAY,IAAI,SAAS,CAmDxC"}
package/dist/server.js CHANGED
@@ -30,6 +30,7 @@ import { registerRouterTools } from "./tools/corven-router.js";
30
30
  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
+ import { registerIPFSUploadTool } from "./tools/corven-ipfs.js";
33
34
  // Legacy tools (kept during migration)
34
35
  import { registerCovenantHelpTools } from "./tools/covenant-help.js";
35
36
  export function createServer() {
@@ -68,9 +69,10 @@ export function createServer() {
68
69
  registerRouterTools(server); // corven_router: multicall, quickstart
69
70
  registerStatsTools(server); // corven_stats: stats, leaderboard
70
71
  registerFiatTools(server); // corven_fiat: url, providers
72
+ registerIPFSUploadTool(server); // corven_upload_ipfs: upload to IPFS
71
73
  // ── Help ──────────────────────────────────────────────────────
72
74
  registerCovenantHelpTools(server); // corven_help: protocol guide
73
- info("[SERVER] 23 corven_ domain tools registered");
75
+ info("[SERVER] 25 corven_ domain tools registered");
74
76
  return server;
75
77
  }
76
78
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerIPFSUploadTool(server: McpServer): void;
3
+ //# sourceMappingURL=corven-ipfs.d.ts.map
@@ -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,CA4E9D"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * corven_upload_ipfs — Upload files/content to IPFS via Pinata
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 (Content Identifier) 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
+ // Prepare content
28
+ let content = args.content;
29
+ if (args.type === "base64") {
30
+ content = Buffer.from(args.content, "base64").toString("utf-8");
31
+ }
32
+ else if (args.type === "json") {
33
+ // Validate JSON
34
+ JSON.parse(args.content);
35
+ }
36
+ // Upload to Pinata
37
+ const formData = new FormData();
38
+ const blob = new Blob([content], { type: "text/plain" });
39
+ formData.append("file", blob, args.name || "covenant-upload.txt");
40
+ const metadata = JSON.stringify({
41
+ name: args.name || `covenant-${Date.now()}`,
42
+ keyvalues: {
43
+ project: "covenant",
44
+ timestamp: Date.now().toString(),
45
+ },
46
+ });
47
+ formData.append("pinataMetadata", metadata);
48
+ const response = await fetch("https://api.pinata.cloud/pinning/pinFileToIPFS", {
49
+ method: "POST",
50
+ headers: {
51
+ pinata_api_key: pinataApiKey,
52
+ pinata_secret_api_key: pinataSecretKey,
53
+ },
54
+ body: formData,
55
+ });
56
+ if (!response.ok) {
57
+ const error = await response.text();
58
+ return formatError(new Error(`Pinata upload failed: ${error}`));
59
+ }
60
+ const result = await response.json();
61
+ return formatReadResult({
62
+ cid: result.IpinfsHash,
63
+ size: result.PinSize,
64
+ timestamp: result.Timestamp,
65
+ url: `ipfs://${result.IpinfsHash}`,
66
+ gateway: `https://gateway.pinata.cloud/ipfs/${result.IpinfsHash}`,
67
+ note: "Use this CID in task descriptions and deliverables",
68
+ }, "IPFS Upload");
69
+ }
70
+ catch (e) {
71
+ return formatError(e instanceof Error ? e : new Error(String(e)));
72
+ }
73
+ });
74
+ }
75
+ //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varun-ai07/covenant-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "COVENANT Protocol MCP Server — AI agent access to on-chain task marketplace",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",