@cloakedagent/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +90 -0
  2. package/dist/agent.d.ts +321 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +877 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/config.d.ts +33 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +64 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/constants.d.ts +4 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +9 -0
  13. package/dist/constants.js.map +1 -0
  14. package/dist/idl.json +1347 -0
  15. package/dist/index.d.ts +10 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +66 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/mcp/index.d.ts +7 -0
  20. package/dist/mcp/index.d.ts.map +1 -0
  21. package/dist/mcp/index.js +374 -0
  22. package/dist/mcp/index.js.map +1 -0
  23. package/dist/mcp/tools.d.ts +26 -0
  24. package/dist/mcp/tools.d.ts.map +1 -0
  25. package/dist/mcp/tools.js +320 -0
  26. package/dist/mcp/tools.js.map +1 -0
  27. package/dist/mcp/types.d.ts +61 -0
  28. package/dist/mcp/types.d.ts.map +1 -0
  29. package/dist/mcp/types.js +4 -0
  30. package/dist/mcp/types.js.map +1 -0
  31. package/dist/relayer.d.ts +130 -0
  32. package/dist/relayer.d.ts.map +1 -0
  33. package/dist/relayer.js +225 -0
  34. package/dist/relayer.js.map +1 -0
  35. package/dist/signer.d.ts +18 -0
  36. package/dist/signer.d.ts.map +1 -0
  37. package/dist/signer.js +34 -0
  38. package/dist/signer.js.map +1 -0
  39. package/dist/token.d.ts +320 -0
  40. package/dist/token.d.ts.map +1 -0
  41. package/dist/token.js +896 -0
  42. package/dist/token.js.map +1 -0
  43. package/dist/types.d.ts +66 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +3 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/zk/browser-prover.d.ts +85 -0
  48. package/dist/zk/browser-prover.d.ts.map +1 -0
  49. package/dist/zk/browser-prover.js +260 -0
  50. package/dist/zk/browser-prover.js.map +1 -0
  51. package/dist/zk/discovery.d.ts +65 -0
  52. package/dist/zk/discovery.d.ts.map +1 -0
  53. package/dist/zk/discovery.js +143 -0
  54. package/dist/zk/discovery.js.map +1 -0
  55. package/dist/zk/index.d.ts +14 -0
  56. package/dist/zk/index.d.ts.map +1 -0
  57. package/dist/zk/index.js +47 -0
  58. package/dist/zk/index.js.map +1 -0
  59. package/dist/zk/ownership_proof.json +1 -0
  60. package/dist/zk/poseidon.d.ts +31 -0
  61. package/dist/zk/poseidon.d.ts.map +1 -0
  62. package/dist/zk/poseidon.js +103 -0
  63. package/dist/zk/poseidon.js.map +1 -0
  64. package/dist/zk/prover.d.ts +49 -0
  65. package/dist/zk/prover.d.ts.map +1 -0
  66. package/dist/zk/prover.js +120 -0
  67. package/dist/zk/prover.js.map +1 -0
  68. package/dist/zk/secrets.d.ts +62 -0
  69. package/dist/zk/secrets.d.ts.map +1 -0
  70. package/dist/zk/secrets.js +98 -0
  71. package/dist/zk/secrets.js.map +1 -0
  72. package/package.json +74 -0
@@ -0,0 +1,10 @@
1
+ export { CloakedAgent } from "./agent";
2
+ export { CLOAKED_PROGRAM_ID, ZK_VERIFIER_PROGRAM_ID } from "./constants";
3
+ export * from "./types";
4
+ export { Signer, keypairToSigner } from "./signer";
5
+ export { setBackendUrl, getBackendUrl, isBackendUrlConfigured } from "./config";
6
+ export { createPrivateAgentViaRelayer, getRelayerStatus, freezePrivateViaRelayer, unfreezePrivateViaRelayer, updateConstraintsPrivateViaRelayer, withdrawPrivateViaRelayer, closePrivateViaRelayer, type CreatePrivateViaRelayerOptions, type CreatePrivateViaRelayerResult, type RelayerStatus, type PrivateOperationParams, type UpdateConstraintsPrivateParams, type WithdrawPrivateParams, type ClosePrivateParams, } from "./relayer";
7
+ export { poseidon, poseidonHash, initPoseidonSync, isPoseidonReady, deriveMasterSecret, deriveAgentSecrets, commitmentToBytes, bytesToCommitment, getSignMessage, MAX_AGENTS, initProver, isProverReady, generateOwnershipProof, proofToInstructionArgs, findAgentByCommitment, discoverPrivateAgents, getNextPrivateNonce, agentExistsForCommitment, } from "./zk";
8
+ export type { PrivateAgentSecrets, OwnershipProof, DiscoveredPrivateAgent } from "./zk";
9
+ export type { BalanceResponse, StatusResponse, PayResponse, } from "./mcp/types";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACzE,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAEL,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAEf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EAEV,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EAEtB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,MAAM,CAAC;AACd,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAGxF,YAAY,EACV,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.agentExistsForCommitment = exports.getNextPrivateNonce = exports.discoverPrivateAgents = exports.findAgentByCommitment = exports.proofToInstructionArgs = exports.generateOwnershipProof = exports.isProverReady = exports.initProver = exports.MAX_AGENTS = exports.getSignMessage = exports.bytesToCommitment = exports.commitmentToBytes = exports.deriveAgentSecrets = exports.deriveMasterSecret = exports.isPoseidonReady = exports.initPoseidonSync = exports.poseidonHash = exports.poseidon = exports.closePrivateViaRelayer = exports.withdrawPrivateViaRelayer = exports.updateConstraintsPrivateViaRelayer = exports.unfreezePrivateViaRelayer = exports.freezePrivateViaRelayer = exports.getRelayerStatus = exports.createPrivateAgentViaRelayer = exports.isBackendUrlConfigured = exports.getBackendUrl = exports.setBackendUrl = exports.keypairToSigner = exports.ZK_VERIFIER_PROGRAM_ID = exports.CLOAKED_PROGRAM_ID = exports.CloakedAgent = void 0;
18
+ var agent_1 = require("./agent");
19
+ Object.defineProperty(exports, "CloakedAgent", { enumerable: true, get: function () { return agent_1.CloakedAgent; } });
20
+ var constants_1 = require("./constants");
21
+ Object.defineProperty(exports, "CLOAKED_PROGRAM_ID", { enumerable: true, get: function () { return constants_1.CLOAKED_PROGRAM_ID; } });
22
+ Object.defineProperty(exports, "ZK_VERIFIER_PROGRAM_ID", { enumerable: true, get: function () { return constants_1.ZK_VERIFIER_PROGRAM_ID; } });
23
+ __exportStar(require("./types"), exports);
24
+ var signer_1 = require("./signer");
25
+ Object.defineProperty(exports, "keypairToSigner", { enumerable: true, get: function () { return signer_1.keypairToSigner; } });
26
+ // SDK configuration - MUST call setBackendUrl in browser environments
27
+ var config_1 = require("./config");
28
+ Object.defineProperty(exports, "setBackendUrl", { enumerable: true, get: function () { return config_1.setBackendUrl; } });
29
+ Object.defineProperty(exports, "getBackendUrl", { enumerable: true, get: function () { return config_1.getBackendUrl; } });
30
+ Object.defineProperty(exports, "isBackendUrlConfigured", { enumerable: true, get: function () { return config_1.isBackendUrlConfigured; } });
31
+ // Relayer module (Truly Private Agent Creation & Operations)
32
+ var relayer_1 = require("./relayer");
33
+ Object.defineProperty(exports, "createPrivateAgentViaRelayer", { enumerable: true, get: function () { return relayer_1.createPrivateAgentViaRelayer; } });
34
+ Object.defineProperty(exports, "getRelayerStatus", { enumerable: true, get: function () { return relayer_1.getRelayerStatus; } });
35
+ Object.defineProperty(exports, "freezePrivateViaRelayer", { enumerable: true, get: function () { return relayer_1.freezePrivateViaRelayer; } });
36
+ Object.defineProperty(exports, "unfreezePrivateViaRelayer", { enumerable: true, get: function () { return relayer_1.unfreezePrivateViaRelayer; } });
37
+ Object.defineProperty(exports, "updateConstraintsPrivateViaRelayer", { enumerable: true, get: function () { return relayer_1.updateConstraintsPrivateViaRelayer; } });
38
+ Object.defineProperty(exports, "withdrawPrivateViaRelayer", { enumerable: true, get: function () { return relayer_1.withdrawPrivateViaRelayer; } });
39
+ Object.defineProperty(exports, "closePrivateViaRelayer", { enumerable: true, get: function () { return relayer_1.closePrivateViaRelayer; } });
40
+ // ZK Privacy module
41
+ var zk_1 = require("./zk");
42
+ // Poseidon hash
43
+ Object.defineProperty(exports, "poseidon", { enumerable: true, get: function () { return zk_1.poseidon; } });
44
+ Object.defineProperty(exports, "poseidonHash", { enumerable: true, get: function () { return zk_1.poseidonHash; } });
45
+ Object.defineProperty(exports, "initPoseidonSync", { enumerable: true, get: function () { return zk_1.initPoseidonSync; } });
46
+ Object.defineProperty(exports, "isPoseidonReady", { enumerable: true, get: function () { return zk_1.isPoseidonReady; } });
47
+ // Secret derivation
48
+ Object.defineProperty(exports, "deriveMasterSecret", { enumerable: true, get: function () { return zk_1.deriveMasterSecret; } });
49
+ Object.defineProperty(exports, "deriveAgentSecrets", { enumerable: true, get: function () { return zk_1.deriveAgentSecrets; } });
50
+ Object.defineProperty(exports, "commitmentToBytes", { enumerable: true, get: function () { return zk_1.commitmentToBytes; } });
51
+ Object.defineProperty(exports, "bytesToCommitment", { enumerable: true, get: function () { return zk_1.bytesToCommitment; } });
52
+ Object.defineProperty(exports, "getSignMessage", { enumerable: true, get: function () { return zk_1.getSignMessage; } });
53
+ Object.defineProperty(exports, "MAX_AGENTS", { enumerable: true, get: function () { return zk_1.MAX_AGENTS; } });
54
+ // Proof generation
55
+ Object.defineProperty(exports, "initProver", { enumerable: true, get: function () { return zk_1.initProver; } });
56
+ Object.defineProperty(exports, "isProverReady", { enumerable: true, get: function () { return zk_1.isProverReady; } });
57
+ Object.defineProperty(exports, "generateOwnershipProof", { enumerable: true, get: function () { return zk_1.generateOwnershipProof; } });
58
+ Object.defineProperty(exports, "proofToInstructionArgs", { enumerable: true, get: function () { return zk_1.proofToInstructionArgs; } });
59
+ // Discovery
60
+ Object.defineProperty(exports, "findAgentByCommitment", { enumerable: true, get: function () { return zk_1.findAgentByCommitment; } });
61
+ Object.defineProperty(exports, "discoverPrivateAgents", { enumerable: true, get: function () { return zk_1.discoverPrivateAgents; } });
62
+ Object.defineProperty(exports, "getNextPrivateNonce", { enumerable: true, get: function () { return zk_1.getNextPrivateNonce; } });
63
+ Object.defineProperty(exports, "agentExistsForCommitment", { enumerable: true, get: function () { return zk_1.agentExistsForCommitment; } });
64
+ // Note: runMcpServer is available via "@cloakedagent/sdk/mcp" subpath import
65
+ // Not exported here to avoid pulling Node.js deps into browser bundles
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,yCAAyE;AAAhE,+GAAA,kBAAkB,OAAA;AAAE,mHAAA,sBAAsB,OAAA;AACnD,0CAAwB;AACxB,mCAAmD;AAAlC,yGAAA,eAAe,OAAA;AAEhC,sEAAsE;AACtE,mCAAgF;AAAvE,uGAAA,aAAa,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAE7D,6DAA6D;AAC7D,qCAemB;AAdjB,uHAAA,4BAA4B,OAAA;AAC5B,2GAAA,gBAAgB,OAAA;AAChB,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,6HAAA,kCAAkC,OAAA;AAClC,oHAAA,yBAAyB,OAAA;AACzB,iHAAA,sBAAsB,OAAA;AAUxB,oBAAoB;AACpB,2BAuBc;AAtBZ,gBAAgB;AAChB,8FAAA,QAAQ,OAAA;AACR,kGAAA,YAAY,OAAA;AACZ,sGAAA,gBAAgB,OAAA;AAChB,qGAAA,eAAe,OAAA;AACf,oBAAoB;AACpB,wGAAA,kBAAkB,OAAA;AAClB,wGAAA,kBAAkB,OAAA;AAClB,uGAAA,iBAAiB,OAAA;AACjB,uGAAA,iBAAiB,OAAA;AACjB,oGAAA,cAAc,OAAA;AACd,gGAAA,UAAU,OAAA;AACV,mBAAmB;AACnB,gGAAA,UAAU,OAAA;AACV,mGAAA,aAAa,OAAA;AACb,4GAAA,sBAAsB,OAAA;AACtB,4GAAA,sBAAsB,OAAA;AACtB,YAAY;AACZ,2GAAA,qBAAqB,OAAA;AACrB,2GAAA,qBAAqB,OAAA;AACrB,yGAAA,mBAAmB,OAAA;AACnB,8GAAA,wBAAwB,OAAA;AAW1B,6EAA6E;AAC7E,uEAAuE"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Run the MCP server - exported for programmatic use
4
+ * Validates CLOAKED_AGENT_KEY and starts the server
5
+ */
6
+ export declare function runMcpServer(): Promise<void>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAoYA;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAWlD"}
@@ -0,0 +1,374 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ // sdk/src/mcp/index.ts
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.runMcpServer = runMcpServer;
6
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
7
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
8
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
9
+ const tools_1 = require("./tools");
10
+ // ============================================
11
+ // Tool definitions
12
+ // ============================================
13
+ const TOOLS = [
14
+ {
15
+ name: "cloak_balance",
16
+ description: "Get Cloaked Agent balance with spending limits and remaining amounts. Use this to check how much SOL is available and what the daily/total limits are.",
17
+ inputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ agent_key: {
21
+ type: "string",
22
+ description: "Cloaked Agent key (optional, uses env CLOAKED_AGENT_KEY if not provided)",
23
+ },
24
+ },
25
+ required: [],
26
+ },
27
+ },
28
+ {
29
+ name: "cloak_status",
30
+ description: "Get detailed Cloaked Agent status including constraints, spending history, and health indicator. Use this for a comprehensive overview of the agent's spending account.",
31
+ inputSchema: {
32
+ type: "object",
33
+ properties: {
34
+ agent_key: {
35
+ type: "string",
36
+ description: "Cloaked Agent key (optional, uses env CLOAKED_AGENT_KEY if not provided)",
37
+ },
38
+ },
39
+ required: [],
40
+ },
41
+ },
42
+ {
43
+ name: "cloak_pay",
44
+ description: "Pay SOL to a destination address using the Cloaked Agent spending account. Use this for x402 payments or any SOL transfer within the agent's spending limits.",
45
+ inputSchema: {
46
+ type: "object",
47
+ properties: {
48
+ destination: {
49
+ type: "string",
50
+ description: "Destination wallet address (base58 encoded Solana public key)",
51
+ },
52
+ amount: {
53
+ type: "number",
54
+ minimum: 0.000001,
55
+ description: "Amount in SOL to pay (e.g., 0.001 for 1 milliSOL, 0.1 for 100 milliSOL)",
56
+ },
57
+ agent_key: {
58
+ type: "string",
59
+ description: "Cloaked Agent key (optional, uses env CLOAKED_AGENT_KEY if not provided)",
60
+ },
61
+ },
62
+ required: ["destination", "amount"],
63
+ },
64
+ },
65
+ {
66
+ name: "cloak_x402_fetch",
67
+ description: "Fetch x402-protected resources with automatic payment. Makes HTTP request, detects 402 Payment Required, pays using Cloaked Agent, retries with payment proof, returns content. Test server available at https://api.cloakedagent.com/api/x402-test/paid-content (0.001 SOL).",
68
+ inputSchema: {
69
+ type: "object",
70
+ properties: {
71
+ url: {
72
+ type: "string",
73
+ description: "The URL to fetch (must be a valid HTTP/HTTPS URL)",
74
+ },
75
+ method: {
76
+ type: "string",
77
+ enum: ["GET", "POST", "PUT", "DELETE"],
78
+ description: "HTTP method (default: GET)",
79
+ },
80
+ headers: {
81
+ type: "object",
82
+ additionalProperties: { type: "string" },
83
+ description: "Custom request headers (e.g., { \"Accept\": \"application/json\" })",
84
+ },
85
+ body: {
86
+ type: "string",
87
+ description: "Request body for POST/PUT requests",
88
+ },
89
+ agent_key: {
90
+ type: "string",
91
+ description: "Cloaked Agent key (optional, uses env CLOAKED_AGENT_KEY if not provided)",
92
+ },
93
+ },
94
+ required: ["url"],
95
+ },
96
+ },
97
+ ];
98
+ // ============================================
99
+ // Prompt definitions
100
+ // ============================================
101
+ const PROMPTS = [
102
+ {
103
+ name: "check_balance",
104
+ description: "Check the current balance and spending limits of your Cloaked Agent",
105
+ arguments: [],
106
+ },
107
+ {
108
+ name: "spending_report",
109
+ description: "Get a detailed spending report including health status and remaining limits",
110
+ arguments: [],
111
+ },
112
+ {
113
+ name: "pay_for_service",
114
+ description: "Pay for an x402 service or transfer SOL to a destination",
115
+ arguments: [
116
+ {
117
+ name: "destination",
118
+ description: "The Solana wallet address to pay",
119
+ required: true,
120
+ },
121
+ {
122
+ name: "amount",
123
+ description: "Amount in SOL (e.g., 0.01)",
124
+ required: true,
125
+ },
126
+ {
127
+ name: "service_name",
128
+ description: "Name of the service being paid for (for your records)",
129
+ required: false,
130
+ },
131
+ ],
132
+ },
133
+ {
134
+ name: "can_i_afford",
135
+ description: "Check if a specific payment amount is within your current limits",
136
+ arguments: [
137
+ {
138
+ name: "amount",
139
+ description: "Amount in SOL you want to check",
140
+ required: true,
141
+ },
142
+ ],
143
+ },
144
+ {
145
+ name: "fetch_paid_content",
146
+ description: "Fetch content from an x402-protected URL with automatic payment. Test with https://api.cloakedagent.com/api/x402-test/paid-content (0.001 SOL)",
147
+ arguments: [
148
+ {
149
+ name: "url",
150
+ description: "The x402-protected URL to fetch (test: https://api.cloakedagent.com/api/x402-test/paid-content)",
151
+ required: true,
152
+ },
153
+ {
154
+ name: "description",
155
+ description: "What this content is (for your records)",
156
+ required: false,
157
+ },
158
+ ],
159
+ },
160
+ ];
161
+ // ============================================
162
+ // Prompt content generators
163
+ // ============================================
164
+ function getPromptContent(name, args) {
165
+ switch (name) {
166
+ case "check_balance":
167
+ return `Please check my Cloaked Agent's current balance and spending limits.
168
+
169
+ Use the cloak_balance tool to get the current state, then tell me:
170
+ 1. Current balance in SOL
171
+ 2. How much I've spent today vs my daily limit
172
+ 3. How much I've spent total vs my lifetime limit
173
+ 4. Whether I'm frozen or have any restrictions`;
174
+ case "spending_report":
175
+ return `Please give me a comprehensive spending report for my Cloaked Agent.
176
+
177
+ Use the cloak_status tool to get detailed information, then provide:
178
+ 1. Current health status (ok, low_balance, near_limit, frozen, etc.)
179
+ 2. All constraint settings (max per transaction, daily limit, total limit, expiration)
180
+ 3. Current spending statistics
181
+ 4. Any warnings or recommendations based on the current state`;
182
+ case "pay_for_service":
183
+ const dest = args.destination || "[DESTINATION_ADDRESS]";
184
+ const amt = args.amount || "[AMOUNT]";
185
+ const svc = args.service_name ? ` for ${args.service_name}` : "";
186
+ return `Please pay ${amt} SOL to ${dest}${svc}.
187
+
188
+ Steps:
189
+ 1. First use cloak_balance to verify I have sufficient funds and am within limits
190
+ 2. If the balance and limits allow, use cloak_pay with:
191
+ - destination: ${dest}
192
+ - amount: ${amt}
193
+ 3. Report the transaction result including the signature and remaining balance`;
194
+ case "can_i_afford":
195
+ const checkAmt = args.amount || "[AMOUNT]";
196
+ return `Please check if I can afford to spend ${checkAmt} SOL with my Cloaked Agent.
197
+
198
+ Use cloak_balance to check:
199
+ 1. Is my current balance >= ${checkAmt} SOL?
200
+ 2. Would this exceed my per-transaction limit?
201
+ 3. Would this exceed my remaining daily limit?
202
+ 4. Would this exceed my remaining total limit?
203
+ 5. Am I frozen or expired?
204
+
205
+ Give me a clear yes/no answer with explanation.`;
206
+ case "fetch_paid_content":
207
+ const fetchUrl = args.url || "[URL]";
208
+ const desc = args.description ? ` (${args.description})` : "";
209
+ return `Please fetch the x402-protected content from ${fetchUrl}${desc}.
210
+
211
+ Steps:
212
+ 1. First use cloak_balance to verify you have sufficient funds
213
+ 2. Use cloak_x402_fetch with url: ${fetchUrl}
214
+ 3. The tool will automatically:
215
+ - Detect if payment is required (402 response)
216
+ - Parse the payment requirements
217
+ - Pay the required amount
218
+ - Retry and fetch the content
219
+ 4. Report what content was received and what was paid`;
220
+ default:
221
+ return `Unknown prompt: ${name}`;
222
+ }
223
+ }
224
+ // ============================================
225
+ // Server factory
226
+ // ============================================
227
+ function createServer() {
228
+ const server = new index_js_1.Server({
229
+ name: "cloaked-mcp",
230
+ version: "0.8.1",
231
+ }, {
232
+ capabilities: {
233
+ tools: {},
234
+ prompts: {},
235
+ },
236
+ });
237
+ // Handler for listing available tools
238
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
239
+ return { tools: TOOLS };
240
+ });
241
+ // Handler for listing available prompts
242
+ server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
243
+ return { prompts: PROMPTS };
244
+ });
245
+ // Handler for getting a specific prompt
246
+ server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
247
+ const { name, arguments: args } = request.params;
248
+ const prompt = PROMPTS.find(p => p.name === name);
249
+ if (!prompt) {
250
+ throw new Error(`Unknown prompt: ${name}`);
251
+ }
252
+ const content = getPromptContent(name, args || {});
253
+ return {
254
+ description: prompt.description,
255
+ messages: [
256
+ {
257
+ role: "user",
258
+ content: {
259
+ type: "text",
260
+ text: content,
261
+ },
262
+ },
263
+ ],
264
+ };
265
+ });
266
+ // Handler for tool execution
267
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
268
+ const { name, arguments: args } = request.params;
269
+ try {
270
+ let result;
271
+ switch (name) {
272
+ case "cloak_balance": {
273
+ const balanceArgs = args;
274
+ result = await (0, tools_1.handleBalance)(balanceArgs?.agent_key);
275
+ break;
276
+ }
277
+ case "cloak_status": {
278
+ const statusArgs = args;
279
+ result = await (0, tools_1.handleStatus)(statusArgs?.agent_key);
280
+ break;
281
+ }
282
+ case "cloak_pay": {
283
+ const payArgs = args;
284
+ if (!payArgs.destination || payArgs.amount === undefined) {
285
+ throw new Error("destination and amount are required");
286
+ }
287
+ // Ensure amount is treated as a float
288
+ const amount = typeof payArgs.amount === 'string'
289
+ ? parseFloat(payArgs.amount)
290
+ : payArgs.amount;
291
+ if (isNaN(amount) || amount <= 0) {
292
+ throw new Error("amount must be a positive number (e.g., 0.001 for 1 milliSOL)");
293
+ }
294
+ result = await (0, tools_1.handlePay)(payArgs.destination, amount, payArgs.agent_key);
295
+ break;
296
+ }
297
+ case "cloak_x402_fetch": {
298
+ const fetchArgs = args;
299
+ if (!fetchArgs.url) {
300
+ throw new Error("url is required");
301
+ }
302
+ result = await (0, tools_1.handleX402Fetch)(fetchArgs.url, {
303
+ method: fetchArgs.method,
304
+ headers: fetchArgs.headers,
305
+ body: fetchArgs.body,
306
+ }, fetchArgs.agent_key);
307
+ break;
308
+ }
309
+ default:
310
+ throw new Error(`Unknown tool: ${name}`);
311
+ }
312
+ return {
313
+ content: [
314
+ {
315
+ type: "text",
316
+ text: JSON.stringify(result, null, 2),
317
+ },
318
+ ],
319
+ };
320
+ }
321
+ catch (error) {
322
+ const message = error instanceof Error ? error.message : "Unknown error";
323
+ return {
324
+ content: [
325
+ {
326
+ type: "text",
327
+ text: JSON.stringify({ error: message }),
328
+ },
329
+ ],
330
+ isError: true,
331
+ };
332
+ }
333
+ });
334
+ return server;
335
+ }
336
+ // ============================================
337
+ // Run MCP Server
338
+ // ============================================
339
+ /**
340
+ * Run the MCP server - exported for programmatic use
341
+ * Validates CLOAKED_AGENT_KEY and starts the server
342
+ */
343
+ async function runMcpServer() {
344
+ // Validate required environment variable
345
+ const agentKey = process.env.CLOAKED_AGENT_KEY;
346
+ if (!agentKey) {
347
+ throw new Error("CLOAKED_AGENT_KEY environment variable is required");
348
+ }
349
+ const server = createServer();
350
+ const transport = new stdio_js_1.StdioServerTransport();
351
+ await server.connect(transport);
352
+ console.error("Cloaked MCP server started");
353
+ }
354
+ // Auto-run when executed directly (via SDK's bin entry)
355
+ const isMainModule = typeof require !== 'undefined' && require.main === module;
356
+ if (isMainModule) {
357
+ if (!process.env.CLOAKED_AGENT_KEY) {
358
+ console.error("Error: CLOAKED_AGENT_KEY environment variable is required");
359
+ console.error("");
360
+ console.error("Usage:");
361
+ console.error(" CLOAKED_AGENT_KEY=<your-agent-key> npx cloaked-mcp");
362
+ console.error("");
363
+ console.error("Environment variables:");
364
+ console.error(" CLOAKED_AGENT_KEY (required) Base58 encoded Cloaked Agent private key");
365
+ console.error(" CLOAKED_BACKEND_URL (optional) Backend URL, default: http://localhost:3645");
366
+ console.error(" SOLANA_RPC_URL (optional) Solana RPC URL, default: https://api.devnet.solana.com");
367
+ process.exit(1);
368
+ }
369
+ runMcpServer().catch((error) => {
370
+ console.error("Fatal error:", error);
371
+ process.exit(1);
372
+ });
373
+ }
374
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { BalanceResponse, StatusResponse, PayResponse, X402FetchResponse } from "./types";
2
+ /**
3
+ * Tool handler for cloak_balance
4
+ * Returns enhanced balance info with constraints
5
+ */
6
+ export declare function handleBalance(agentKey?: string): Promise<BalanceResponse>;
7
+ /**
8
+ * Tool handler for cloak_status
9
+ * Returns detailed agent status with health indicator
10
+ */
11
+ export declare function handleStatus(agentKey?: string): Promise<StatusResponse>;
12
+ /**
13
+ * Tool handler for cloak_pay
14
+ * Pays to a destination address for x402 services
15
+ */
16
+ export declare function handlePay(destination: string, amountSol: number, agentKey?: string): Promise<PayResponse>;
17
+ /**
18
+ * Tool handler for cloak_x402_fetch
19
+ * Fetches x402-protected resources, automatically handling payment
20
+ */
21
+ export declare function handleX402Fetch(url: string, options?: {
22
+ method?: string;
23
+ headers?: Record<string, string>;
24
+ body?: string;
25
+ }, agentKey?: string): Promise<X402FetchResponse>;
26
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAsBjB;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmC/E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0C7E;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAgCtB;AA0CD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EACD,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CA+I5B"}