@agent-shield/mcp 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 (86) hide show
  1. package/README.md +124 -0
  2. package/dist/config.d.ts +12 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +75 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/errors.d.ts +22 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +244 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +206 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/resources/activity.d.ts +3 -0
  15. package/dist/resources/activity.d.ts.map +1 -0
  16. package/dist/resources/activity.js +33 -0
  17. package/dist/resources/activity.js.map +1 -0
  18. package/dist/resources/index.d.ts +4 -0
  19. package/dist/resources/index.d.ts.map +1 -0
  20. package/dist/resources/index.js +10 -0
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/policy.d.ts +3 -0
  23. package/dist/resources/policy.d.ts.map +1 -0
  24. package/dist/resources/policy.js +36 -0
  25. package/dist/resources/policy.js.map +1 -0
  26. package/dist/resources/spending.d.ts +3 -0
  27. package/dist/resources/spending.d.ts.map +1 -0
  28. package/dist/resources/spending.js +39 -0
  29. package/dist/resources/spending.js.map +1 -0
  30. package/dist/tools/check-spending.d.ts +24 -0
  31. package/dist/tools/check-spending.d.ts.map +1 -0
  32. package/dist/tools/check-spending.js +60 -0
  33. package/dist/tools/check-spending.js.map +1 -0
  34. package/dist/tools/check-vault.d.ts +36 -0
  35. package/dist/tools/check-vault.d.ts.map +1 -0
  36. package/dist/tools/check-vault.js +110 -0
  37. package/dist/tools/check-vault.js.map +1 -0
  38. package/dist/tools/close-position.d.ts +49 -0
  39. package/dist/tools/close-position.d.ts.map +1 -0
  40. package/dist/tools/close-position.js +65 -0
  41. package/dist/tools/close-position.js.map +1 -0
  42. package/dist/tools/create-vault.d.ts +72 -0
  43. package/dist/tools/create-vault.d.ts.map +1 -0
  44. package/dist/tools/create-vault.js +75 -0
  45. package/dist/tools/create-vault.js.map +1 -0
  46. package/dist/tools/deposit.d.ts +36 -0
  47. package/dist/tools/deposit.d.ts.map +1 -0
  48. package/dist/tools/deposit.js +35 -0
  49. package/dist/tools/deposit.js.map +1 -0
  50. package/dist/tools/execute-swap.d.ts +49 -0
  51. package/dist/tools/execute-swap.d.ts.map +1 -0
  52. package/dist/tools/execute-swap.js +58 -0
  53. package/dist/tools/execute-swap.js.map +1 -0
  54. package/dist/tools/index.d.ts +13 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +52 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/open-position.d.ts +61 -0
  59. package/dist/tools/open-position.d.ts.map +1 -0
  60. package/dist/tools/open-position.js +70 -0
  61. package/dist/tools/open-position.js.map +1 -0
  62. package/dist/tools/reactivate-vault.d.ts +30 -0
  63. package/dist/tools/reactivate-vault.d.ts.map +1 -0
  64. package/dist/tools/reactivate-vault.js +41 -0
  65. package/dist/tools/reactivate-vault.js.map +1 -0
  66. package/dist/tools/register-agent.d.ts +30 -0
  67. package/dist/tools/register-agent.d.ts.map +1 -0
  68. package/dist/tools/register-agent.js +36 -0
  69. package/dist/tools/register-agent.js.map +1 -0
  70. package/dist/tools/revoke-agent.d.ts +24 -0
  71. package/dist/tools/revoke-agent.d.ts.map +1 -0
  72. package/dist/tools/revoke-agent.js +34 -0
  73. package/dist/tools/revoke-agent.js.map +1 -0
  74. package/dist/tools/update-policy.d.ts +72 -0
  75. package/dist/tools/update-policy.d.ts.map +1 -0
  76. package/dist/tools/update-policy.js +90 -0
  77. package/dist/tools/update-policy.js.map +1 -0
  78. package/dist/tools/withdraw.d.ts +36 -0
  79. package/dist/tools/withdraw.d.ts.map +1 -0
  80. package/dist/tools/withdraw.js +34 -0
  81. package/dist/tools/withdraw.js.map +1 -0
  82. package/dist/utils.d.ts +11 -0
  83. package/dist/utils.d.ts.map +1 -0
  84. package/dist/utils.js +69 -0
  85. package/dist/utils.js.map +1 -0
  86. package/package.json +51 -0
@@ -0,0 +1,110 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.checkVaultTool = exports.checkVaultSchema = void 0;
37
+ exports.checkVault = checkVault;
38
+ const zod_1 = require("zod");
39
+ const utils_1 = require("../utils");
40
+ const errors_1 = require("../errors");
41
+ exports.checkVaultSchema = zod_1.z.object({
42
+ vault: zod_1.z
43
+ .string()
44
+ .describe("Vault PDA address (base58). Provide this OR owner+vaultId."),
45
+ owner: zod_1.z
46
+ .string()
47
+ .optional()
48
+ .describe("Owner public key (base58). Used with vaultId to derive the vault PDA."),
49
+ vaultId: zod_1.z
50
+ .string()
51
+ .optional()
52
+ .describe("Vault ID number. Used with owner to derive the vault PDA."),
53
+ });
54
+ async function checkVault(client, input) {
55
+ try {
56
+ let vaultAddress;
57
+ if (input.vault) {
58
+ vaultAddress = (0, utils_1.toPublicKey)(input.vault);
59
+ }
60
+ else if (input.owner && input.vaultId) {
61
+ const { BN } = await Promise.resolve().then(() => __importStar(require("@coral-xyz/anchor")));
62
+ const [pda] = client.getVaultPDA((0, utils_1.toPublicKey)(input.owner), new BN(input.vaultId));
63
+ vaultAddress = pda;
64
+ }
65
+ else {
66
+ return "Error: Provide either 'vault' (address) or both 'owner' and 'vaultId'.";
67
+ }
68
+ const vault = await client.fetchVaultByAddress(vaultAddress);
69
+ const policy = await client.fetchPolicy(vaultAddress);
70
+ const allowedTokens = policy.allowedTokens
71
+ .map((t) => t.toBase58())
72
+ .join(", ") || "Any";
73
+ const allowedProtocols = policy.allowedProtocols
74
+ .map((p) => p.toBase58())
75
+ .join(", ") || "Any";
76
+ return [
77
+ `## Vault: ${vaultAddress.toBase58()}`,
78
+ `- **Status:** ${(0, utils_1.formatVaultStatus)(vault.status)}`,
79
+ `- **Owner:** ${vault.owner.toBase58()}`,
80
+ `- **Agent:** ${vault.agent.toBase58()}`,
81
+ `- **Fee Destination:** ${vault.feeDestination.toBase58()}`,
82
+ `- **Created:** ${(0, utils_1.formatTimestamp)(vault.createdAt)}`,
83
+ `- **Total Transactions:** ${(0, utils_1.formatBN)(vault.totalTransactions)}`,
84
+ `- **Total Volume:** ${(0, utils_1.formatBN)(vault.totalVolume)}`,
85
+ `- **Open Positions:** ${vault.openPositions}`,
86
+ `- **Total Fees Collected:** ${(0, utils_1.formatBN)(vault.totalFeesCollected)}`,
87
+ "",
88
+ "### Policy",
89
+ `- **Daily Spending Cap:** ${(0, utils_1.formatBN)(policy.dailySpendingCap)}`,
90
+ `- **Max Transaction Size:** ${(0, utils_1.formatBN)(policy.maxTransactionSize)}`,
91
+ `- **Allowed Tokens:** ${allowedTokens}`,
92
+ `- **Allowed Protocols:** ${allowedProtocols}`,
93
+ `- **Max Leverage:** ${policy.maxLeverageBps} BPS`,
94
+ `- **Can Open Positions:** ${policy.canOpenPositions}`,
95
+ `- **Max Concurrent Positions:** ${policy.maxConcurrentPositions}`,
96
+ `- **Developer Fee Rate:** ${policy.developerFeeRate}`,
97
+ ].join("\n");
98
+ }
99
+ catch (error) {
100
+ return (0, errors_1.formatError)(error);
101
+ }
102
+ }
103
+ exports.checkVaultTool = {
104
+ name: "shield_check_vault",
105
+ description: "Check the status and policy configuration of an AgentShield vault. " +
106
+ "Provide either the vault address directly, or owner + vaultId to derive it.",
107
+ schema: exports.checkVaultSchema,
108
+ handler: checkVault,
109
+ };
110
+ //# sourceMappingURL=check-vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-vault.js","sourceRoot":"","sources":["../../src/tools/check-vault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ import type { AgentShieldClient } from "@agent-shield/sdk";
3
+ import { type McpConfig } from "../config";
4
+ export declare const closePositionSchema: z.ZodObject<{
5
+ vault: z.ZodString;
6
+ market: z.ZodString;
7
+ side: z.ZodEnum<["long", "short"]>;
8
+ priceWithSlippage: z.ZodString;
9
+ priceExponent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ vault: string;
12
+ market: string;
13
+ side: "long" | "short";
14
+ priceWithSlippage: string;
15
+ priceExponent: number;
16
+ }, {
17
+ vault: string;
18
+ market: string;
19
+ side: "long" | "short";
20
+ priceWithSlippage: string;
21
+ priceExponent?: number | undefined;
22
+ }>;
23
+ export type ClosePositionInput = z.infer<typeof closePositionSchema>;
24
+ export declare function closePosition(client: AgentShieldClient, config: McpConfig, input: ClosePositionInput): Promise<string>;
25
+ export declare const closePositionTool: {
26
+ name: string;
27
+ description: string;
28
+ schema: z.ZodObject<{
29
+ vault: z.ZodString;
30
+ market: z.ZodString;
31
+ side: z.ZodEnum<["long", "short"]>;
32
+ priceWithSlippage: z.ZodString;
33
+ priceExponent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ vault: string;
36
+ market: string;
37
+ side: "long" | "short";
38
+ priceWithSlippage: string;
39
+ priceExponent: number;
40
+ }, {
41
+ vault: string;
42
+ market: string;
43
+ side: "long" | "short";
44
+ priceWithSlippage: string;
45
+ priceExponent?: number | undefined;
46
+ }>;
47
+ handler: typeof closePosition;
48
+ };
49
+ //# sourceMappingURL=close-position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-position.d.ts","sourceRoot":"","sources":["../../src/tools/close-position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAc9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAQrE,wBAAsB,aAAa,CACjC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;CAO7B,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.closePositionTool = exports.closePositionSchema = void 0;
4
+ exports.closePosition = closePosition;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const errors_1 = require("../errors");
8
+ const config_1 = require("../config");
9
+ exports.closePositionSchema = zod_1.z.object({
10
+ vault: zod_1.z.string().describe("Vault PDA address (base58)"),
11
+ market: zod_1.z.string().describe("Market/pool name (e.g. 'SOL', 'ETH')"),
12
+ side: zod_1.z
13
+ .enum(["long", "short"])
14
+ .describe("Position side: 'long' or 'short'"),
15
+ priceWithSlippage: zod_1.z
16
+ .string()
17
+ .describe("Exit price in base units (for slippage protection)"),
18
+ priceExponent: zod_1.z
19
+ .number()
20
+ .optional()
21
+ .default(0)
22
+ .describe("Price exponent (default: 0)"),
23
+ });
24
+ function parseSide(side) {
25
+ return side === "long" ? { long: {} } : { short: {} };
26
+ }
27
+ async function closePosition(client, config, input) {
28
+ try {
29
+ const agentKeypair = (0, config_1.loadAgentKeypair)(config);
30
+ const vaultAddress = (0, utils_1.toPublicKey)(input.vault);
31
+ const vault = await client.fetchVaultByAddress(vaultAddress);
32
+ const result = await client.flashTradeClose({
33
+ owner: vault.owner,
34
+ vaultId: vault.vaultId,
35
+ agent: agentKeypair.publicKey,
36
+ targetSymbol: input.market,
37
+ collateralSymbol: input.market,
38
+ collateralAmount: (0, utils_1.toBN)("0"),
39
+ side: parseSide(input.side),
40
+ priceWithSlippage: {
41
+ price: (0, utils_1.toBN)(input.priceWithSlippage),
42
+ exponent: input.priceExponent ?? 0,
43
+ },
44
+ });
45
+ const sig = await client.executeFlashTrade(result, agentKeypair.publicKey, [agentKeypair]);
46
+ return [
47
+ "## Position Closed",
48
+ `- **Vault:** ${input.vault}`,
49
+ `- **Market:** ${input.market}`,
50
+ `- **Side:** ${input.side.toUpperCase()}`,
51
+ `- **Transaction:** ${sig}`,
52
+ ].join("\n");
53
+ }
54
+ catch (error) {
55
+ return (0, errors_1.formatError)(error);
56
+ }
57
+ }
58
+ exports.closePositionTool = {
59
+ name: "shield_close_position",
60
+ description: "Close a leveraged perpetual position via Flash Trade through an AgentShield vault. " +
61
+ "Requires AGENTSHIELD_AGENT_KEYPAIR_PATH.",
62
+ schema: exports.closePositionSchema,
63
+ handler: closePosition,
64
+ };
65
+ //# sourceMappingURL=close-position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-position.js","sourceRoot":"","sources":["../../src/tools/close-position.ts"],"names":[],"mappings":";;;AA8BA,sCAwCC;AAtED,6BAAwB;AAExB,oCAA6C;AAC7C,sCAAwC;AACxC,sCAA6D;AAEhD,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACnE,IAAI,EAAE,OAAC;SACJ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACvB,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,iBAAiB,EAAE,OAAC;SACjB,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,6BAA6B,CAAC;CAC3C,CAAC,CAAC;AAIH,SAAS,SAAS,CAChB,IAAsB;IAEtB,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,MAAyB,EACzB,MAAiB,EACjB,KAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,gBAAgB,EAAE,KAAK,CAAC,MAAM;YAC9B,gBAAgB,EAAE,IAAA,YAAI,EAAC,GAAG,CAAC;YAC3B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,iBAAiB,EAAE;gBACjB,KAAK,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,iBAAiB,CAAC;gBACpC,QAAQ,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;aACnC;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACxC,MAAM,EACN,YAAY,CAAC,SAAS,EACtB,CAAC,YAAY,CAAC,CACf,CAAC;QAEF,OAAO;YACL,oBAAoB;YACpB,gBAAgB,KAAK,CAAC,KAAK,EAAE;YAC7B,iBAAiB,KAAK,CAAC,MAAM,EAAE;YAC/B,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACzC,sBAAsB,GAAG,EAAE;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAEY,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,qFAAqF;QACrF,0CAA0C;IAC5C,MAAM,EAAE,2BAAmB;IAC3B,OAAO,EAAE,aAAa;CACvB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ import type { AgentShieldClient } from "@agent-shield/sdk";
3
+ export declare const createVaultSchema: z.ZodObject<{
4
+ vaultId: z.ZodString;
5
+ dailySpendingCap: z.ZodString;
6
+ maxTransactionSize: z.ZodString;
7
+ allowedTokens: z.ZodArray<z.ZodString, "many">;
8
+ allowedProtocols: z.ZodArray<z.ZodString, "many">;
9
+ maxLeverageBps: z.ZodNumber;
10
+ maxConcurrentPositions: z.ZodNumber;
11
+ feeDestination: z.ZodString;
12
+ developerFeeRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ vaultId: string;
15
+ dailySpendingCap: string;
16
+ maxTransactionSize: string;
17
+ allowedTokens: string[];
18
+ allowedProtocols: string[];
19
+ maxLeverageBps: number;
20
+ maxConcurrentPositions: number;
21
+ feeDestination: string;
22
+ developerFeeRate: number;
23
+ }, {
24
+ vaultId: string;
25
+ dailySpendingCap: string;
26
+ maxTransactionSize: string;
27
+ allowedTokens: string[];
28
+ allowedProtocols: string[];
29
+ maxLeverageBps: number;
30
+ maxConcurrentPositions: number;
31
+ feeDestination: string;
32
+ developerFeeRate?: number | undefined;
33
+ }>;
34
+ export type CreateVaultInput = z.infer<typeof createVaultSchema>;
35
+ export declare function createVault(client: AgentShieldClient, input: CreateVaultInput): Promise<string>;
36
+ export declare const createVaultTool: {
37
+ name: string;
38
+ description: string;
39
+ schema: z.ZodObject<{
40
+ vaultId: z.ZodString;
41
+ dailySpendingCap: z.ZodString;
42
+ maxTransactionSize: z.ZodString;
43
+ allowedTokens: z.ZodArray<z.ZodString, "many">;
44
+ allowedProtocols: z.ZodArray<z.ZodString, "many">;
45
+ maxLeverageBps: z.ZodNumber;
46
+ maxConcurrentPositions: z.ZodNumber;
47
+ feeDestination: z.ZodString;
48
+ developerFeeRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ vaultId: string;
51
+ dailySpendingCap: string;
52
+ maxTransactionSize: string;
53
+ allowedTokens: string[];
54
+ allowedProtocols: string[];
55
+ maxLeverageBps: number;
56
+ maxConcurrentPositions: number;
57
+ feeDestination: string;
58
+ developerFeeRate: number;
59
+ }, {
60
+ vaultId: string;
61
+ dailySpendingCap: string;
62
+ maxTransactionSize: string;
63
+ allowedTokens: string[];
64
+ allowedProtocols: string[];
65
+ maxLeverageBps: number;
66
+ maxConcurrentPositions: number;
67
+ feeDestination: string;
68
+ developerFeeRate?: number | undefined;
69
+ }>;
70
+ handler: typeof createVault;
71
+ };
72
+ //# sourceMappingURL=create-vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-vault.d.ts","sourceRoot":"","sources":["../../src/tools/create-vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO3B,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createVaultTool = exports.createVaultSchema = void 0;
4
+ exports.createVault = createVault;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const errors_1 = require("../errors");
8
+ exports.createVaultSchema = zod_1.z.object({
9
+ vaultId: zod_1.z.string().describe("Unique vault ID number"),
10
+ dailySpendingCap: zod_1.z
11
+ .string()
12
+ .describe("Maximum daily spending in token base units (e.g. lamports)"),
13
+ maxTransactionSize: zod_1.z
14
+ .string()
15
+ .describe("Maximum single transaction size in token base units"),
16
+ allowedTokens: zod_1.z
17
+ .array(zod_1.z.string())
18
+ .describe("Array of allowed token mint addresses (base58). Max 10."),
19
+ allowedProtocols: zod_1.z
20
+ .array(zod_1.z.string())
21
+ .describe("Array of allowed protocol program IDs (base58). Max 10."),
22
+ maxLeverageBps: zod_1.z
23
+ .number()
24
+ .describe("Maximum leverage in basis points (e.g. 30000 = 3x)"),
25
+ maxConcurrentPositions: zod_1.z
26
+ .number()
27
+ .describe("Maximum number of concurrent open positions"),
28
+ feeDestination: zod_1.z
29
+ .string()
30
+ .describe("Fee destination wallet address (base58). Immutable after creation."),
31
+ developerFeeRate: zod_1.z
32
+ .number()
33
+ .optional()
34
+ .default(0)
35
+ .describe("Developer fee rate (max 50 = 0.5 BPS)"),
36
+ });
37
+ async function createVault(client, input) {
38
+ try {
39
+ const params = {
40
+ vaultId: (0, utils_1.toBN)(input.vaultId),
41
+ dailySpendingCap: (0, utils_1.toBN)(input.dailySpendingCap),
42
+ maxTransactionSize: (0, utils_1.toBN)(input.maxTransactionSize),
43
+ allowedTokens: input.allowedTokens.map(utils_1.toPublicKey),
44
+ allowedProtocols: input.allowedProtocols.map(utils_1.toPublicKey),
45
+ maxLeverageBps: input.maxLeverageBps,
46
+ maxConcurrentPositions: input.maxConcurrentPositions,
47
+ feeDestination: (0, utils_1.toPublicKey)(input.feeDestination),
48
+ developerFeeRate: input.developerFeeRate,
49
+ };
50
+ const sig = await client.createVault(params);
51
+ const owner = client.provider.wallet.publicKey;
52
+ const [vaultPDA] = client.getVaultPDA(owner, params.vaultId);
53
+ return [
54
+ "## Vault Created Successfully",
55
+ `- **Vault Address:** ${vaultPDA.toBase58()}`,
56
+ `- **Owner:** ${owner.toBase58()}`,
57
+ `- **Vault ID:** ${input.vaultId}`,
58
+ `- **Transaction:** ${sig}`,
59
+ "",
60
+ "Next steps: Use shield_register_agent to register an agent key, " +
61
+ "then shield_deposit to fund the vault.",
62
+ ].join("\n");
63
+ }
64
+ catch (error) {
65
+ return (0, errors_1.formatError)(error);
66
+ }
67
+ }
68
+ exports.createVaultTool = {
69
+ name: "shield_create_vault",
70
+ description: "Create a new AgentShield vault with policy configuration. " +
71
+ "Sets spending caps, allowed tokens/protocols, leverage limits, and fee settings.",
72
+ schema: exports.createVaultSchema,
73
+ handler: createVault,
74
+ };
75
+ //# sourceMappingURL=create-vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-vault.js","sourceRoot":"","sources":["../../src/tools/create-vault.ts"],"names":[],"mappings":";;;AAsCA,kCAkCC;AAxED,6BAAwB;AAGxB,oCAA6C;AAC7C,sCAAwC;AAE3B,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACtD,gBAAgB,EAAE,OAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CAAC,4DAA4D,CAAC;IACzE,kBAAkB,EAAE,OAAC;SAClB,MAAM,EAAE;SACR,QAAQ,CAAC,qDAAqD,CAAC;IAClE,aAAa,EAAE,OAAC;SACb,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,yDAAyD,CAAC;IACtE,gBAAgB,EAAE,OAAC;SAChB,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,yDAAyD,CAAC;IACtE,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,sBAAsB,EAAE,OAAC;SACtB,MAAM,EAAE;SACR,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,oEAAoE,CAAC;IACjF,gBAAgB,EAAE,OAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC,CAAC;AAII,KAAK,UAAU,WAAW,CAC/B,MAAyB,EACzB,KAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,OAAO,CAAC;YAC5B,gBAAgB,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,gBAAgB,CAAC;YAC9C,kBAAkB,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,kBAAkB,CAAC;YAClD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAW,CAAC;YACnD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAW,CAAC;YACzD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,cAAc,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,cAAc,CAAC;YACjD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO;YACL,+BAA+B;YAC/B,wBAAwB,QAAQ,CAAC,QAAQ,EAAE,EAAE;YAC7C,gBAAgB,KAAK,CAAC,QAAQ,EAAE,EAAE;YAClC,mBAAmB,KAAK,CAAC,OAAO,EAAE;YAClC,sBAAsB,GAAG,EAAE;YAC3B,EAAE;YACF,kEAAkE;gBAChE,wCAAwC;SAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,4DAA4D;QAC5D,kFAAkF;IACpF,MAAM,EAAE,yBAAiB;IACzB,OAAO,EAAE,WAAW;CACrB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ import type { AgentShieldClient } from "@agent-shield/sdk";
3
+ export declare const depositSchema: z.ZodObject<{
4
+ vault: z.ZodString;
5
+ mint: z.ZodString;
6
+ amount: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ vault: string;
9
+ mint: string;
10
+ amount: string;
11
+ }, {
12
+ vault: string;
13
+ mint: string;
14
+ amount: string;
15
+ }>;
16
+ export type DepositInput = z.infer<typeof depositSchema>;
17
+ export declare function deposit(client: AgentShieldClient, input: DepositInput): Promise<string>;
18
+ export declare const depositTool: {
19
+ name: string;
20
+ description: string;
21
+ schema: z.ZodObject<{
22
+ vault: z.ZodString;
23
+ mint: z.ZodString;
24
+ amount: z.ZodString;
25
+ }, "strip", z.ZodTypeAny, {
26
+ vault: string;
27
+ mint: string;
28
+ amount: string;
29
+ }, {
30
+ vault: string;
31
+ mint: string;
32
+ amount: string;
33
+ }>;
34
+ handler: typeof deposit;
35
+ };
36
+ //# sourceMappingURL=deposit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../src/tools/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,eAAO,MAAM,aAAa;;;;;;;;;;;;EAIxB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEzD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAOvB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.depositTool = exports.depositSchema = void 0;
4
+ exports.deposit = deposit;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const errors_1 = require("../errors");
8
+ exports.depositSchema = zod_1.z.object({
9
+ vault: zod_1.z.string().describe("Vault PDA address (base58)"),
10
+ mint: zod_1.z.string().describe("Token mint address (base58)"),
11
+ amount: zod_1.z.string().describe("Amount in token base units (e.g. lamports)"),
12
+ });
13
+ async function deposit(client, input) {
14
+ try {
15
+ const sig = await client.deposit((0, utils_1.toPublicKey)(input.vault), (0, utils_1.toPublicKey)(input.mint), (0, utils_1.toBN)(input.amount));
16
+ return [
17
+ "## Deposit Successful",
18
+ `- **Vault:** ${input.vault}`,
19
+ `- **Token:** ${input.mint}`,
20
+ `- **Amount:** ${input.amount}`,
21
+ `- **Transaction:** ${sig}`,
22
+ ].join("\n");
23
+ }
24
+ catch (error) {
25
+ return (0, errors_1.formatError)(error);
26
+ }
27
+ }
28
+ exports.depositTool = {
29
+ name: "shield_deposit",
30
+ description: "Deposit tokens into an AgentShield vault. " +
31
+ "The owner must have sufficient token balance.",
32
+ schema: exports.depositSchema,
33
+ handler: deposit,
34
+ };
35
+ //# sourceMappingURL=deposit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/tools/deposit.ts"],"names":[],"mappings":";;;AAaA,0BAqBC;AAlCD,6BAAwB;AAExB,oCAA6C;AAC7C,sCAAwC;AAE3B,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACxD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC1E,CAAC,CAAC;AAII,KAAK,UAAU,OAAO,CAC3B,MAAyB,EACzB,KAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,IAAA,mBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EACxB,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,EACvB,IAAA,YAAI,EAAC,KAAK,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,OAAO;YACL,uBAAuB;YACvB,gBAAgB,KAAK,CAAC,KAAK,EAAE;YAC7B,gBAAgB,KAAK,CAAC,IAAI,EAAE;YAC5B,iBAAiB,KAAK,CAAC,MAAM,EAAE;YAC/B,sBAAsB,GAAG,EAAE;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,4CAA4C;QAC5C,+CAA+C;IACjD,MAAM,EAAE,qBAAa;IACrB,OAAO,EAAE,OAAO;CACjB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ import type { AgentShieldClient } from "@agent-shield/sdk";
3
+ import { type McpConfig } from "../config";
4
+ export declare const executeSwapSchema: z.ZodObject<{
5
+ vault: z.ZodString;
6
+ inputMint: z.ZodString;
7
+ outputMint: z.ZodString;
8
+ amount: z.ZodString;
9
+ slippageBps: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ vault: string;
12
+ amount: string;
13
+ inputMint: string;
14
+ outputMint: string;
15
+ slippageBps: number;
16
+ }, {
17
+ vault: string;
18
+ amount: string;
19
+ inputMint: string;
20
+ outputMint: string;
21
+ slippageBps?: number | undefined;
22
+ }>;
23
+ export type ExecuteSwapInput = z.infer<typeof executeSwapSchema>;
24
+ export declare function executeSwap(client: AgentShieldClient, config: McpConfig, input: ExecuteSwapInput): Promise<string>;
25
+ export declare const executeSwapTool: {
26
+ name: string;
27
+ description: string;
28
+ schema: z.ZodObject<{
29
+ vault: z.ZodString;
30
+ inputMint: z.ZodString;
31
+ outputMint: z.ZodString;
32
+ amount: z.ZodString;
33
+ slippageBps: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ vault: string;
36
+ amount: string;
37
+ inputMint: string;
38
+ outputMint: string;
39
+ slippageBps: number;
40
+ }, {
41
+ vault: string;
42
+ amount: string;
43
+ inputMint: string;
44
+ outputMint: string;
45
+ slippageBps?: number | undefined;
46
+ }>;
47
+ handler: typeof executeSwap;
48
+ };
49
+ //# sourceMappingURL=execute-swap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-swap.d.ts","sourceRoot":"","sources":["../../src/tools/execute-swap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAU5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;CAQ3B,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeSwapTool = exports.executeSwapSchema = void 0;
4
+ exports.executeSwap = executeSwap;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const errors_1 = require("../errors");
8
+ const config_1 = require("../config");
9
+ exports.executeSwapSchema = zod_1.z.object({
10
+ vault: zod_1.z.string().describe("Vault PDA address (base58)"),
11
+ inputMint: zod_1.z.string().describe("Input token mint address (base58)"),
12
+ outputMint: zod_1.z.string().describe("Output token mint address (base58)"),
13
+ amount: zod_1.z.string().describe("Input amount in token base units"),
14
+ slippageBps: zod_1.z
15
+ .number()
16
+ .optional()
17
+ .default(50)
18
+ .describe("Slippage tolerance in basis points (default: 50 = 0.5%)"),
19
+ });
20
+ async function executeSwap(client, config, input) {
21
+ try {
22
+ const agentKeypair = (0, config_1.loadAgentKeypair)(config);
23
+ const vaultAddress = (0, utils_1.toPublicKey)(input.vault);
24
+ // Fetch vault to get owner and vaultId for the swap params
25
+ const vault = await client.fetchVaultByAddress(vaultAddress);
26
+ // Execute swap through AgentShield
27
+ // executeJupiterSwap fetches the quote internally if not provided
28
+ const sig = await client.executeJupiterSwap({
29
+ owner: vault.owner,
30
+ vaultId: vault.vaultId,
31
+ agent: agentKeypair.publicKey,
32
+ inputMint: (0, utils_1.toPublicKey)(input.inputMint),
33
+ outputMint: (0, utils_1.toPublicKey)(input.outputMint),
34
+ amount: (0, utils_1.toBN)(input.amount),
35
+ slippageBps: input.slippageBps,
36
+ }, [agentKeypair]);
37
+ return [
38
+ "## Swap Executed",
39
+ `- **Vault:** ${input.vault}`,
40
+ `- **Input:** ${input.amount} of ${input.inputMint}`,
41
+ `- **Output Token:** ${input.outputMint}`,
42
+ `- **Slippage:** ${input.slippageBps} BPS`,
43
+ `- **Transaction:** ${sig}`,
44
+ ].join("\n");
45
+ }
46
+ catch (error) {
47
+ return (0, errors_1.formatError)(error);
48
+ }
49
+ }
50
+ exports.executeSwapTool = {
51
+ name: "shield_execute_swap",
52
+ description: "Execute a Jupiter token swap through an AgentShield vault. " +
53
+ "Requires AGENTSHIELD_AGENT_KEYPAIR_PATH to be set. " +
54
+ "The swap is policy-checked: spending caps, token allowlist, and transaction size limits apply.",
55
+ schema: exports.executeSwapSchema,
56
+ handler: executeSwap,
57
+ };
58
+ //# sourceMappingURL=execute-swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-swap.js","sourceRoot":"","sources":["../../src/tools/execute-swap.ts"],"names":[],"mappings":";;;AAoBA,kCAsCC;AA1DD,6BAAwB;AAExB,oCAA6C;AAC7C,sCAAwC;AACxC,sCAA6D;AAEhD,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACnE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACrE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC/D,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,yDAAyD,CAAC;CACvE,CAAC,CAAC;AAII,KAAK,UAAU,WAAW,CAC/B,MAAyB,EACzB,MAAiB,EACjB,KAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE9C,2DAA2D;QAC3D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE7D,mCAAmC;QACnC,kEAAkE;QAClE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CACzC;YACE,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,SAAS,CAAC;YACvC,UAAU,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,UAAU,CAAC;YACzC,MAAM,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,EACD,CAAC,YAAY,CAAC,CACf,CAAC;QAEF,OAAO;YACL,kBAAkB;YAClB,gBAAgB,KAAK,CAAC,KAAK,EAAE;YAC7B,gBAAgB,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,SAAS,EAAE;YACpD,uBAAuB,KAAK,CAAC,UAAU,EAAE;YACzC,mBAAmB,KAAK,CAAC,WAAW,MAAM;YAC1C,sBAAsB,GAAG,EAAE;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,6DAA6D;QAC7D,qDAAqD;QACrD,gGAAgG;IAClG,MAAM,EAAE,yBAAiB;IACzB,OAAO,EAAE,WAAW;CACrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { checkVaultTool, checkVault, checkVaultSchema } from "./check-vault";
2
+ export { checkSpendingTool, checkSpending, checkSpendingSchema, } from "./check-spending";
3
+ export { createVaultTool, createVault, createVaultSchema, } from "./create-vault";
4
+ export { depositTool, deposit, depositSchema } from "./deposit";
5
+ export { withdrawTool, withdraw, withdrawSchema } from "./withdraw";
6
+ export { registerAgentTool, registerAgent, registerAgentSchema, } from "./register-agent";
7
+ export { updatePolicyTool, updatePolicy, updatePolicySchema, } from "./update-policy";
8
+ export { revokeAgentTool, revokeAgent, revokeAgentSchema, } from "./revoke-agent";
9
+ export { reactivateVaultTool, reactivateVault, reactivateVaultSchema, } from "./reactivate-vault";
10
+ export { executeSwapTool, executeSwap, executeSwapSchema, } from "./execute-swap";
11
+ export { openPositionTool, openPosition, openPositionSchema, } from "./open-position";
12
+ export { closePositionTool, closePosition, closePositionSchema, } from "./close-position";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}