@agent-shield/plugin-solana-agent-kit 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 (41) hide show
  1. package/dist/client-factory.d.ts +4 -0
  2. package/dist/client-factory.d.ts.map +1 -0
  3. package/dist/client-factory.js +23 -0
  4. package/dist/client-factory.js.map +1 -0
  5. package/dist/index.d.ts +140 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +90 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/tools/checkBalance.d.ts +12 -0
  10. package/dist/tools/checkBalance.d.ts.map +1 -0
  11. package/dist/tools/checkBalance.js +38 -0
  12. package/dist/tools/checkBalance.js.map +1 -0
  13. package/dist/tools/checkPolicy.d.ts +12 -0
  14. package/dist/tools/checkPolicy.d.ts.map +1 -0
  15. package/dist/tools/checkPolicy.js +38 -0
  16. package/dist/tools/checkPolicy.js.map +1 -0
  17. package/dist/tools/checkSpending.d.ts +12 -0
  18. package/dist/tools/checkSpending.d.ts.map +1 -0
  19. package/dist/tools/checkSpending.js +63 -0
  20. package/dist/tools/checkSpending.js.map +1 -0
  21. package/dist/tools/closePosition.d.ts +27 -0
  22. package/dist/tools/closePosition.d.ts.map +1 -0
  23. package/dist/tools/closePosition.js +35 -0
  24. package/dist/tools/closePosition.js.map +1 -0
  25. package/dist/tools/index.d.ts +7 -0
  26. package/dist/tools/index.d.ts.map +1 -0
  27. package/dist/tools/index.js +22 -0
  28. package/dist/tools/index.js.map +1 -0
  29. package/dist/tools/openPosition.d.ts +33 -0
  30. package/dist/tools/openPosition.d.ts.map +1 -0
  31. package/dist/tools/openPosition.js +41 -0
  32. package/dist/tools/openPosition.js.map +1 -0
  33. package/dist/tools/swap.d.ts +21 -0
  34. package/dist/tools/swap.d.ts.map +1 -0
  35. package/dist/tools/swap.js +32 -0
  36. package/dist/tools/swap.js.map +1 -0
  37. package/dist/types.d.ts +11 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/dist/types.js +3 -0
  40. package/dist/types.js.map +1 -0
  41. package/package.json +38 -0
@@ -0,0 +1,4 @@
1
+ import { AgentShieldClient } from "@agent-shield/sdk";
2
+ import { AgentShieldPluginConfig } from "./types";
3
+ export declare function getOrCreateClient(agent: any, config: AgentShieldPluginConfig): AgentShieldClient;
4
+ //# sourceMappingURL=client-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAQlD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,GAC9B,iBAAiB,CAqBnB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrCreateClient = getOrCreateClient;
4
+ const sdk_1 = require("@agent-shield/sdk");
5
+ /**
6
+ * WeakMap-cached client factory. One AgentShieldClient per agent instance.
7
+ * Uses WeakMap so clients are GC'd when the agent instance is collected.
8
+ */
9
+ const clientCache = new WeakMap();
10
+ function getOrCreateClient(agent, config) {
11
+ const cached = clientCache.get(agent);
12
+ if (cached)
13
+ return cached;
14
+ const connection = agent.connection;
15
+ const wallet = agent.wallet;
16
+ if (!connection || !wallet) {
17
+ throw new Error("AgentShield plugin requires agent to have 'connection' and 'wallet' properties");
18
+ }
19
+ const client = new sdk_1.AgentShieldClient(connection, wallet, config.programId);
20
+ clientCache.set(agent, client);
21
+ return client;
22
+ }
23
+ //# sourceMappingURL=client-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":";;AASA,8CAwBC;AAjCD,2CAAsD;AAGtD;;;GAGG;AACH,MAAM,WAAW,GAAG,IAAI,OAAO,EAA6B,CAAC;AAE7D,SAAgB,iBAAiB,CAC/B,KAAU,EACV,MAA+B;IAE/B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,uBAAiB,CAClC,UAAU,EACV,MAAM,EACN,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,140 @@
1
+ import { AgentShieldPluginConfig } from "./types";
2
+ export { AgentShieldPluginConfig } from "./types";
3
+ export { getOrCreateClient } from "./client-factory";
4
+ export * from "./tools";
5
+ /**
6
+ * Creates the AgentShield plugin for Solana Agent Kit.
7
+ *
8
+ * Usage:
9
+ * ```ts
10
+ * import { createAgentShieldPlugin } from "@agent-shield/plugin-solana-agent-kit";
11
+ *
12
+ * const plugin = createAgentShieldPlugin({
13
+ * vaultOwner: ownerPubkey,
14
+ * vaultId: new BN(1),
15
+ * });
16
+ *
17
+ * const agent = new SolanaAgentKit(wallet, rpcUrl, {
18
+ * plugins: [plugin],
19
+ * });
20
+ * ```
21
+ */
22
+ export declare function createAgentShieldPlugin(config: AgentShieldPluginConfig): {
23
+ name: string;
24
+ description: string;
25
+ methods: {
26
+ shield_swap: {
27
+ description: string;
28
+ schema: import("zod").ZodObject<{
29
+ inputMint: import("zod").ZodString;
30
+ outputMint: import("zod").ZodString;
31
+ amount: import("zod").ZodString;
32
+ slippageBps: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
33
+ }, "strip", import("zod").ZodTypeAny, {
34
+ inputMint: string;
35
+ outputMint: string;
36
+ amount: string;
37
+ slippageBps: number;
38
+ }, {
39
+ inputMint: string;
40
+ outputMint: string;
41
+ amount: string;
42
+ slippageBps?: number | undefined;
43
+ }>;
44
+ handler: (agent: any, input: any) => Promise<string>;
45
+ };
46
+ shield_open_position: {
47
+ description: string;
48
+ schema: import("zod").ZodObject<{
49
+ targetSymbol: import("zod").ZodString;
50
+ collateralSymbol: import("zod").ZodString;
51
+ collateralAmount: import("zod").ZodString;
52
+ sizeAmount: import("zod").ZodString;
53
+ side: import("zod").ZodEnum<["long", "short"]>;
54
+ leverageBps: import("zod").ZodNumber;
55
+ price: import("zod").ZodString;
56
+ priceExponent: import("zod").ZodNumber;
57
+ }, "strip", import("zod").ZodTypeAny, {
58
+ targetSymbol: string;
59
+ collateralSymbol: string;
60
+ collateralAmount: string;
61
+ sizeAmount: string;
62
+ side: "long" | "short";
63
+ leverageBps: number;
64
+ price: string;
65
+ priceExponent: number;
66
+ }, {
67
+ targetSymbol: string;
68
+ collateralSymbol: string;
69
+ collateralAmount: string;
70
+ sizeAmount: string;
71
+ side: "long" | "short";
72
+ leverageBps: number;
73
+ price: string;
74
+ priceExponent: number;
75
+ }>;
76
+ handler: (agent: any, input: any) => Promise<string>;
77
+ };
78
+ shield_close_position: {
79
+ description: string;
80
+ schema: import("zod").ZodObject<{
81
+ targetSymbol: import("zod").ZodString;
82
+ collateralSymbol: import("zod").ZodString;
83
+ collateralAmount: import("zod").ZodString;
84
+ side: import("zod").ZodEnum<["long", "short"]>;
85
+ price: import("zod").ZodString;
86
+ priceExponent: import("zod").ZodNumber;
87
+ }, "strip", import("zod").ZodTypeAny, {
88
+ targetSymbol: string;
89
+ collateralSymbol: string;
90
+ collateralAmount: string;
91
+ side: "long" | "short";
92
+ price: string;
93
+ priceExponent: number;
94
+ }, {
95
+ targetSymbol: string;
96
+ collateralSymbol: string;
97
+ collateralAmount: string;
98
+ side: "long" | "short";
99
+ price: string;
100
+ priceExponent: number;
101
+ }>;
102
+ handler: (agent: any, input: any) => Promise<string>;
103
+ };
104
+ shield_check_policy: {
105
+ description: string;
106
+ schema: import("zod").ZodObject<{
107
+ vaultAddress: import("zod").ZodOptional<import("zod").ZodString>;
108
+ }, "strip", import("zod").ZodTypeAny, {
109
+ vaultAddress?: string | undefined;
110
+ }, {
111
+ vaultAddress?: string | undefined;
112
+ }>;
113
+ handler: (agent: any, input: any) => Promise<string>;
114
+ };
115
+ shield_check_balance: {
116
+ description: string;
117
+ schema: import("zod").ZodObject<{
118
+ vaultAddress: import("zod").ZodOptional<import("zod").ZodString>;
119
+ }, "strip", import("zod").ZodTypeAny, {
120
+ vaultAddress?: string | undefined;
121
+ }, {
122
+ vaultAddress?: string | undefined;
123
+ }>;
124
+ handler: (agent: any, input: any) => Promise<string>;
125
+ };
126
+ shield_check_spending: {
127
+ description: string;
128
+ schema: import("zod").ZodObject<{
129
+ vaultAddress: import("zod").ZodOptional<import("zod").ZodString>;
130
+ }, "strip", import("zod").ZodTypeAny, {
131
+ vaultAddress?: string | undefined;
132
+ }, {
133
+ vaultAddress?: string | undefined;
134
+ }>;
135
+ handler: (agent: any, input: any) => Promise<string>;
136
+ };
137
+ };
138
+ initialize: (agent: any) => void;
139
+ };
140
+ //# 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,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAUlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,cAAc,SAAS,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;6BAc9C,GAAG,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAOf,GAAG,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;6BAMf,GAAG,SAAS,GAAG;;;;;;;;;;;6BAOf,GAAG,SAAS,GAAG;;;;;;;;;;;6BAOf,GAAG,SAAS,GAAG;;;;;;;;;;;6BAOf,GAAG,SAAS,GAAG;;;wBAIhB,GAAG;EAM1B"}
package/dist/index.js ADDED
@@ -0,0 +1,90 @@
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.getOrCreateClient = void 0;
18
+ exports.createAgentShieldPlugin = createAgentShieldPlugin;
19
+ const tools_1 = require("./tools");
20
+ var client_factory_1 = require("./client-factory");
21
+ Object.defineProperty(exports, "getOrCreateClient", { enumerable: true, get: function () { return client_factory_1.getOrCreateClient; } });
22
+ __exportStar(require("./tools"), exports);
23
+ /**
24
+ * Creates the AgentShield plugin for Solana Agent Kit.
25
+ *
26
+ * Usage:
27
+ * ```ts
28
+ * import { createAgentShieldPlugin } from "@agent-shield/plugin-solana-agent-kit";
29
+ *
30
+ * const plugin = createAgentShieldPlugin({
31
+ * vaultOwner: ownerPubkey,
32
+ * vaultId: new BN(1),
33
+ * });
34
+ *
35
+ * const agent = new SolanaAgentKit(wallet, rpcUrl, {
36
+ * plugins: [plugin],
37
+ * });
38
+ * ```
39
+ */
40
+ function createAgentShieldPlugin(config) {
41
+ return {
42
+ name: "agent-shield",
43
+ description: "AgentShield — Permission-guarded DeFi vault for AI agents on Solana. " +
44
+ "Routes swaps through Jupiter and perp trades through Flash Trade, " +
45
+ "enforcing spending caps, token whitelists, and leverage limits.",
46
+ methods: {
47
+ shield_swap: {
48
+ description: "Execute a token swap through Jupiter, routed through the AgentShield vault " +
49
+ "with permission checks and spending limits enforced.",
50
+ schema: tools_1.swapSchema,
51
+ handler: (agent, input) => (0, tools_1.swap)(agent, config, input),
52
+ },
53
+ shield_open_position: {
54
+ description: "Open a leveraged perpetual position on Flash Trade through the AgentShield vault. " +
55
+ "Enforces leverage limits and position count caps.",
56
+ schema: tools_1.openPositionSchema,
57
+ handler: (agent, input) => (0, tools_1.openPosition)(agent, config, input),
58
+ },
59
+ shield_close_position: {
60
+ description: "Close an existing perpetual position on Flash Trade through the AgentShield vault.",
61
+ schema: tools_1.closePositionSchema,
62
+ handler: (agent, input) => (0, tools_1.closePosition)(agent, config, input),
63
+ },
64
+ shield_check_policy: {
65
+ description: "Read the current vault policy: spending caps, allowed tokens/protocols, " +
66
+ "leverage limits, and fee configuration.",
67
+ schema: tools_1.checkPolicySchema,
68
+ handler: (agent, input) => (0, tools_1.checkPolicy)(agent, config, input),
69
+ },
70
+ shield_check_balance: {
71
+ description: "Read vault balances, status, and high-level statistics (total volume, " +
72
+ "open positions, fees collected).",
73
+ schema: tools_1.checkBalanceSchema,
74
+ handler: (agent, input) => (0, tools_1.checkBalance)(agent, config, input),
75
+ },
76
+ shield_check_spending: {
77
+ description: "Read the rolling 24-hour spending tracker: per-token spend vs daily cap, " +
78
+ "and recent transaction history.",
79
+ schema: tools_1.checkSpendingSchema,
80
+ handler: (agent, input) => (0, tools_1.checkSpending)(agent, config, input),
81
+ },
82
+ },
83
+ initialize: (agent) => {
84
+ // Eagerly create the client so connection errors surface early
85
+ const { getOrCreateClient: getClient } = require("./client-factory");
86
+ getClient(agent, config);
87
+ },
88
+ };
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA+BA,0DA0DC;AAxFD,mCAOiB;AAGjB,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAC1B,0CAAwB;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,uBAAuB,CAAC,MAA+B;IACrE,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,uEAAuE;YACvE,oEAAoE;YACpE,iEAAiE;QAEnE,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,WAAW,EACT,6EAA6E;oBAC7E,sDAAsD;gBACxD,MAAM,EAAE,kBAAU;gBAClB,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,YAAI,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aAChE;YACD,oBAAoB,EAAE;gBACpB,WAAW,EACT,oFAAoF;oBACpF,mDAAmD;gBACrD,MAAM,EAAE,0BAAkB;gBAC1B,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aACxE;YACD,qBAAqB,EAAE;gBACrB,WAAW,EACT,oFAAoF;gBACtF,MAAM,EAAE,2BAAmB;gBAC3B,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aACzE;YACD,mBAAmB,EAAE;gBACnB,WAAW,EACT,0EAA0E;oBAC1E,yCAAyC;gBAC3C,MAAM,EAAE,yBAAiB;gBACzB,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aACvE;YACD,oBAAoB,EAAE;gBACpB,WAAW,EACT,wEAAwE;oBACxE,kCAAkC;gBACpC,MAAM,EAAE,0BAAkB;gBAC1B,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aACxE;YACD,qBAAqB,EAAE;gBACrB,WAAW,EACT,2EAA2E;oBAC3E,iCAAiC;gBACnC,MAAM,EAAE,2BAAmB;gBAC3B,OAAO,EAAE,CAAC,KAAU,EAAE,KAAU,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;aACzE;SACF;QAED,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE;YACzB,+DAA+D;YAC/D,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACrE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const checkBalanceSchema: z.ZodObject<{
4
+ vaultAddress: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ vaultAddress?: string | undefined;
7
+ }, {
8
+ vaultAddress?: string | undefined;
9
+ }>;
10
+ export type CheckBalanceInput = z.infer<typeof checkBalanceSchema>;
11
+ export declare function checkBalance(agent: any, config: AgentShieldPluginConfig, input: CheckBalanceInput): Promise<string>;
12
+ //# sourceMappingURL=checkBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkBalance.d.ts","sourceRoot":"","sources":["../../src/tools/checkBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,kBAAkB;;;;;;EAK7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkBalanceSchema = void 0;
4
+ exports.checkBalance = checkBalance;
5
+ const zod_1 = require("zod");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const client_factory_1 = require("../client-factory");
8
+ exports.checkBalanceSchema = zod_1.z.object({
9
+ vaultAddress: zod_1.z
10
+ .string()
11
+ .optional()
12
+ .describe("Optional vault PDA address override. Uses configured vault if omitted."),
13
+ });
14
+ async function checkBalance(agent, config, input) {
15
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
16
+ let vaultPda;
17
+ if (input.vaultAddress) {
18
+ vaultPda = new web3_js_1.PublicKey(input.vaultAddress);
19
+ }
20
+ else {
21
+ [vaultPda] = client.getVaultPDA(config.vaultOwner, config.vaultId);
22
+ }
23
+ const vault = await client.fetchVaultByAddress(vaultPda);
24
+ const solBalance = await client.connection.getBalance(vaultPda);
25
+ return [
26
+ `=== Vault Balances ===`,
27
+ `Vault Address: ${vaultPda.toBase58()}`,
28
+ `Owner: ${vault.owner.toBase58()}`,
29
+ `Agent: ${vault.agent.toBase58()}`,
30
+ `Status: ${Object.keys(vault.status)[0]}`,
31
+ `SOL Balance: ${(solBalance / 1e9).toFixed(4)} SOL`,
32
+ `Total Transactions: ${vault.totalTransactions.toString()}`,
33
+ `Total Volume: ${vault.totalVolume.toString()} lamports`,
34
+ `Open Positions: ${vault.openPositions}`,
35
+ `Total Fees Collected: ${vault.totalFeesCollected.toString()} lamports`,
36
+ ].join("\n");
37
+ }
38
+ //# sourceMappingURL=checkBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../src/tools/checkBalance.ts"],"names":[],"mappings":";;;AAcA,oCA8BC;AA5CD,6BAAwB;AACxB,6CAA4C;AAC5C,sDAAsD;AAGzC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;CACtF,CAAC,CAAC;AAII,KAAK,UAAU,YAAY,CAChC,KAAU,EACV,MAA+B,EAC/B,KAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,QAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAI,mBAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,MAAO,MAAc,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO;QACL,wBAAwB;QACxB,kBAAkB,QAAQ,CAAC,QAAQ,EAAE,EAAE;QACvC,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;QAClC,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;QAClC,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACzC,gBAAgB,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QACnD,uBAAuB,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE;QAC3D,iBAAiB,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW;QACxD,mBAAmB,KAAK,CAAC,aAAa,EAAE;QACxC,yBAAyB,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW;KACxE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const checkPolicySchema: z.ZodObject<{
4
+ vaultAddress: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ vaultAddress?: string | undefined;
7
+ }, {
8
+ vaultAddress?: string | undefined;
9
+ }>;
10
+ export type CheckPolicyInput = z.infer<typeof checkPolicySchema>;
11
+ export declare function checkPolicy(agent: any, config: AgentShieldPluginConfig, input: CheckPolicyInput): Promise<string>;
12
+ //# sourceMappingURL=checkPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkPolicy.d.ts","sourceRoot":"","sources":["../../src/tools/checkPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,iBAAiB;;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkPolicySchema = void 0;
4
+ exports.checkPolicy = checkPolicy;
5
+ const zod_1 = require("zod");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const client_factory_1 = require("../client-factory");
8
+ exports.checkPolicySchema = zod_1.z.object({
9
+ vaultAddress: zod_1.z
10
+ .string()
11
+ .optional()
12
+ .describe("Optional vault PDA address override. Uses configured vault if omitted."),
13
+ });
14
+ async function checkPolicy(agent, config, input) {
15
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
16
+ let vaultPda;
17
+ if (input.vaultAddress) {
18
+ vaultPda = new web3_js_1.PublicKey(input.vaultAddress);
19
+ }
20
+ else {
21
+ [vaultPda] = client.getVaultPDA(config.vaultOwner, config.vaultId);
22
+ }
23
+ const policy = await client.fetchPolicy(vaultPda);
24
+ const tokenList = policy.allowedTokens.map((t) => t.toBase58()).join(", ") || "none";
25
+ const protocolList = policy.allowedProtocols.map((p) => p.toBase58()).join(", ") || "none";
26
+ return [
27
+ `=== Vault Policy ===`,
28
+ `Daily Spending Cap: ${policy.dailySpendingCap.toString()} lamports`,
29
+ `Max Transaction Size: ${policy.maxTransactionSize.toString()} lamports`,
30
+ `Allowed Tokens: ${tokenList}`,
31
+ `Allowed Protocols: ${protocolList}`,
32
+ `Max Leverage: ${policy.maxLeverageBps} bps (${(policy.maxLeverageBps / 100).toFixed(1)}x)`,
33
+ `Can Open Positions: ${policy.canOpenPositions}`,
34
+ `Max Concurrent Positions: ${policy.maxConcurrentPositions}`,
35
+ `Fee: ${policy.feeBps} bps (${(policy.feeBps / 100).toFixed(2)}%)`,
36
+ ].join("\n");
37
+ }
38
+ //# sourceMappingURL=checkPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkPolicy.js","sourceRoot":"","sources":["../../src/tools/checkPolicy.ts"],"names":[],"mappings":";;;AAcA,kCA8BC;AA5CD,6BAAwB;AACxB,6CAA4C;AAC5C,sDAAsD;AAGzC,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;CACtF,CAAC,CAAC;AAII,KAAK,UAAU,WAAW,CAC/B,KAAU,EACV,MAA+B,EAC/B,KAAuB;IAEvB,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,QAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAI,mBAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACrF,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IAE3F,OAAO;QACL,sBAAsB;QACtB,uBAAuB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW;QACpE,yBAAyB,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW;QACxE,mBAAmB,SAAS,EAAE;QAC9B,sBAAsB,YAAY,EAAE;QACpC,iBAAiB,MAAM,CAAC,cAAc,SAAS,CAAC,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAC3F,uBAAuB,MAAM,CAAC,gBAAgB,EAAE;QAChD,6BAA6B,MAAM,CAAC,sBAAsB,EAAE;QAC5D,QAAQ,MAAM,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const checkSpendingSchema: z.ZodObject<{
4
+ vaultAddress: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ vaultAddress?: string | undefined;
7
+ }, {
8
+ vaultAddress?: string | undefined;
9
+ }>;
10
+ export type CheckSpendingInput = z.infer<typeof checkSpendingSchema>;
11
+ export declare function checkSpending(agent: any, config: AgentShieldPluginConfig, input: CheckSpendingInput): Promise<string>;
12
+ //# sourceMappingURL=checkSpending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSpending.d.ts","sourceRoot":"","sources":["../../src/tools/checkSpending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,mBAAmB;;;;;;EAK9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,aAAa,CACjC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkSpendingSchema = void 0;
4
+ exports.checkSpending = checkSpending;
5
+ const zod_1 = require("zod");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const client_factory_1 = require("../client-factory");
8
+ exports.checkSpendingSchema = zod_1.z.object({
9
+ vaultAddress: zod_1.z
10
+ .string()
11
+ .optional()
12
+ .describe("Optional vault PDA address override. Uses configured vault if omitted."),
13
+ });
14
+ async function checkSpending(agent, config, input) {
15
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
16
+ let vaultPda;
17
+ if (input.vaultAddress) {
18
+ vaultPda = new web3_js_1.PublicKey(input.vaultAddress);
19
+ }
20
+ else {
21
+ [vaultPda] = client.getVaultPDA(config.vaultOwner, config.vaultId);
22
+ }
23
+ const tracker = await client.fetchTracker(vaultPda);
24
+ const policy = await client.fetchPolicy(vaultPda);
25
+ const now = Math.floor(Date.now() / 1000);
26
+ const windowStart = now - 24 * 60 * 60;
27
+ // Calculate rolling 24h spend per token
28
+ const spendByToken = new Map();
29
+ for (const entry of tracker.rollingSpends) {
30
+ if (entry.timestamp.toNumber() >= windowStart) {
31
+ const mint = entry.tokenMint.toBase58();
32
+ const prev = spendByToken.get(mint) || BigInt(0);
33
+ spendByToken.set(mint, prev + BigInt(entry.amountSpent.toString()));
34
+ }
35
+ }
36
+ const cap = policy.dailySpendingCap.toString();
37
+ const lines = [
38
+ `=== Spending Tracker ===`,
39
+ `Daily Cap: ${cap} lamports`,
40
+ `Rolling 24h Window: ${tracker.rollingSpends.length} entries`,
41
+ ``,
42
+ `--- Active Spend by Token (24h) ---`,
43
+ ];
44
+ if (spendByToken.size === 0) {
45
+ lines.push("No spending in the last 24 hours.");
46
+ }
47
+ else {
48
+ for (const [mint, spent] of spendByToken.entries()) {
49
+ const capBN = BigInt(cap);
50
+ const pct = capBN > BigInt(0) ? Number((spent * BigInt(100)) / capBN) : 0;
51
+ lines.push(` ${mint}: ${spent.toString()} lamports (${pct}% of cap)`);
52
+ }
53
+ }
54
+ lines.push("", `--- Recent Transactions (last ${tracker.recentTransactions.length}) ---`);
55
+ const recent = tracker.recentTransactions.slice(-5);
56
+ for (const tx of recent) {
57
+ const action = Object.keys(tx.actionType)[0];
58
+ const status = tx.success ? "OK" : "FAIL";
59
+ lines.push(` [${status}] ${action} | ${tx.amount.toString()} lamports | slot ${tx.slot.toString()}`);
60
+ }
61
+ return lines.join("\n");
62
+ }
63
+ //# sourceMappingURL=checkSpending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSpending.js","sourceRoot":"","sources":["../../src/tools/checkSpending.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const closePositionSchema: z.ZodObject<{
4
+ targetSymbol: z.ZodString;
5
+ collateralSymbol: z.ZodString;
6
+ collateralAmount: z.ZodString;
7
+ side: z.ZodEnum<["long", "short"]>;
8
+ price: z.ZodString;
9
+ priceExponent: z.ZodNumber;
10
+ }, "strip", z.ZodTypeAny, {
11
+ targetSymbol: string;
12
+ collateralSymbol: string;
13
+ collateralAmount: string;
14
+ side: "long" | "short";
15
+ price: string;
16
+ priceExponent: number;
17
+ }, {
18
+ targetSymbol: string;
19
+ collateralSymbol: string;
20
+ collateralAmount: string;
21
+ side: "long" | "short";
22
+ price: string;
23
+ priceExponent: number;
24
+ }>;
25
+ export type ClosePositionInput = z.infer<typeof closePositionSchema>;
26
+ export declare function closePosition(agent: any, config: AgentShieldPluginConfig, input: ClosePositionInput): Promise<string>;
27
+ //# sourceMappingURL=closePosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closePosition.d.ts","sourceRoot":"","sources":["../../src/tools/closePosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,aAAa,CACjC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.closePositionSchema = void 0;
4
+ exports.closePosition = closePosition;
5
+ const zod_1 = require("zod");
6
+ const anchor_1 = require("@coral-xyz/anchor");
7
+ const client_factory_1 = require("../client-factory");
8
+ exports.closePositionSchema = zod_1.z.object({
9
+ targetSymbol: zod_1.z.string().describe("Target market symbol (e.g., 'SOL', 'BTC', 'ETH')"),
10
+ collateralSymbol: zod_1.z.string().describe("Collateral token symbol (e.g., 'USDC')"),
11
+ collateralAmount: zod_1.z.string().describe("Collateral amount in base units"),
12
+ side: zod_1.z.enum(["long", "short"]).describe("Trade direction of the position to close"),
13
+ price: zod_1.z.string().describe("Current oracle price as integer"),
14
+ priceExponent: zod_1.z.number().describe("Price exponent (e.g., -8 for 8 decimal places)"),
15
+ });
16
+ async function closePosition(agent, config, input) {
17
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
18
+ const sideObj = input.side === "long" ? { long: {} } : { short: {} };
19
+ const result = await client.flashTradeClose({
20
+ owner: config.vaultOwner,
21
+ vaultId: config.vaultId,
22
+ agent: agent.wallet.publicKey,
23
+ targetSymbol: input.targetSymbol,
24
+ collateralSymbol: input.collateralSymbol,
25
+ collateralAmount: new anchor_1.BN(input.collateralAmount),
26
+ side: sideObj,
27
+ priceWithSlippage: {
28
+ price: new anchor_1.BN(input.price),
29
+ exponent: input.priceExponent,
30
+ },
31
+ });
32
+ const txSig = await client.executeFlashTrade(result, agent.wallet.publicKey);
33
+ return `Position closed successfully.\nSide: ${input.side}\nTarget: ${input.targetSymbol}\nTransaction: ${txSig}`;
34
+ }
35
+ //# sourceMappingURL=closePosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closePosition.js","sourceRoot":"","sources":["../../src/tools/closePosition.ts"],"names":[],"mappings":";;;AAiBA,sCA6BC;AA9CD,6BAAwB;AAExB,8CAAuC;AACvC,sDAAsD;AAGzC,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACrF,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC/E,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACxE,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACpF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7D,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CACrF,CAAC,CAAC;AAII,KAAK,UAAU,aAAa,CACjC,KAAU,EACV,MAA+B,EAC/B,KAAyB;IAEzB,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,gBAAgB,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAChD,IAAI,EAAE,OAAc;QACpB,iBAAiB,EAAE;YACjB,KAAK,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,KAAK,CAAC,aAAa;SAC9B;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAC1C,MAAM,EACN,KAAK,CAAC,MAAM,CAAC,SAAS,CACvB,CAAC;IAEF,OAAO,wCAAwC,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,YAAY,kBAAkB,KAAK,EAAE,CAAC;AACpH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { swap, swapSchema, type SwapInput } from "./swap";
2
+ export { openPosition, openPositionSchema, type OpenPositionInput } from "./openPosition";
3
+ export { closePosition, closePositionSchema, type ClosePositionInput } from "./closePosition";
4
+ export { checkPolicy, checkPolicySchema, type CheckPolicyInput } from "./checkPolicy";
5
+ export { checkBalance, checkBalanceSchema, type CheckBalanceInput } from "./checkBalance";
6
+ export { checkSpending, checkSpendingSchema, type CheckSpendingInput } from "./checkSpending";
7
+ //# 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,IAAI,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkSpendingSchema = exports.checkSpending = exports.checkBalanceSchema = exports.checkBalance = exports.checkPolicySchema = exports.checkPolicy = exports.closePositionSchema = exports.closePosition = exports.openPositionSchema = exports.openPosition = exports.swapSchema = exports.swap = void 0;
4
+ var swap_1 = require("./swap");
5
+ Object.defineProperty(exports, "swap", { enumerable: true, get: function () { return swap_1.swap; } });
6
+ Object.defineProperty(exports, "swapSchema", { enumerable: true, get: function () { return swap_1.swapSchema; } });
7
+ var openPosition_1 = require("./openPosition");
8
+ Object.defineProperty(exports, "openPosition", { enumerable: true, get: function () { return openPosition_1.openPosition; } });
9
+ Object.defineProperty(exports, "openPositionSchema", { enumerable: true, get: function () { return openPosition_1.openPositionSchema; } });
10
+ var closePosition_1 = require("./closePosition");
11
+ Object.defineProperty(exports, "closePosition", { enumerable: true, get: function () { return closePosition_1.closePosition; } });
12
+ Object.defineProperty(exports, "closePositionSchema", { enumerable: true, get: function () { return closePosition_1.closePositionSchema; } });
13
+ var checkPolicy_1 = require("./checkPolicy");
14
+ Object.defineProperty(exports, "checkPolicy", { enumerable: true, get: function () { return checkPolicy_1.checkPolicy; } });
15
+ Object.defineProperty(exports, "checkPolicySchema", { enumerable: true, get: function () { return checkPolicy_1.checkPolicySchema; } });
16
+ var checkBalance_1 = require("./checkBalance");
17
+ Object.defineProperty(exports, "checkBalance", { enumerable: true, get: function () { return checkBalance_1.checkBalance; } });
18
+ Object.defineProperty(exports, "checkBalanceSchema", { enumerable: true, get: function () { return checkBalance_1.checkBalanceSchema; } });
19
+ var checkSpending_1 = require("./checkSpending");
20
+ Object.defineProperty(exports, "checkSpending", { enumerable: true, get: function () { return checkSpending_1.checkSpending; } });
21
+ Object.defineProperty(exports, "checkSpendingSchema", { enumerable: true, get: function () { return checkSpending_1.checkSpendingSchema; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,+BAA0D;AAAjD,4FAAA,IAAI,OAAA;AAAE,kGAAA,UAAU,OAAA;AACzB,+CAA0F;AAAjF,4GAAA,YAAY,OAAA;AAAE,kHAAA,kBAAkB,OAAA;AACzC,iDAA8F;AAArF,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAC3C,6CAAsF;AAA7E,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AACvC,+CAA0F;AAAjF,4GAAA,YAAY,OAAA;AAAE,kHAAA,kBAAkB,OAAA;AACzC,iDAA8F;AAArF,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const openPositionSchema: z.ZodObject<{
4
+ targetSymbol: z.ZodString;
5
+ collateralSymbol: z.ZodString;
6
+ collateralAmount: z.ZodString;
7
+ sizeAmount: z.ZodString;
8
+ side: z.ZodEnum<["long", "short"]>;
9
+ leverageBps: z.ZodNumber;
10
+ price: z.ZodString;
11
+ priceExponent: z.ZodNumber;
12
+ }, "strip", z.ZodTypeAny, {
13
+ targetSymbol: string;
14
+ collateralSymbol: string;
15
+ collateralAmount: string;
16
+ sizeAmount: string;
17
+ side: "long" | "short";
18
+ leverageBps: number;
19
+ price: string;
20
+ priceExponent: number;
21
+ }, {
22
+ targetSymbol: string;
23
+ collateralSymbol: string;
24
+ collateralAmount: string;
25
+ sizeAmount: string;
26
+ side: "long" | "short";
27
+ leverageBps: number;
28
+ price: string;
29
+ priceExponent: number;
30
+ }>;
31
+ export type OpenPositionInput = z.infer<typeof openPositionSchema>;
32
+ export declare function openPosition(agent: any, config: AgentShieldPluginConfig, input: OpenPositionInput): Promise<string>;
33
+ //# sourceMappingURL=openPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openPosition.d.ts","sourceRoot":"","sources":["../../src/tools/openPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openPositionSchema = void 0;
4
+ exports.openPosition = openPosition;
5
+ const zod_1 = require("zod");
6
+ const anchor_1 = require("@coral-xyz/anchor");
7
+ const client_factory_1 = require("../client-factory");
8
+ exports.openPositionSchema = zod_1.z.object({
9
+ targetSymbol: zod_1.z.string().describe("Target market symbol (e.g., 'SOL', 'BTC', 'ETH')"),
10
+ collateralSymbol: zod_1.z.string().describe("Collateral token symbol (e.g., 'USDC')"),
11
+ collateralAmount: zod_1.z.string().describe("Collateral amount in base units"),
12
+ sizeAmount: zod_1.z.string().describe("Position size in base units"),
13
+ side: zod_1.z.enum(["long", "short"]).describe("Trade direction: 'long' or 'short'"),
14
+ leverageBps: zod_1.z
15
+ .number()
16
+ .describe("Leverage in basis points (e.g., 20000 = 2x, 50000 = 5x)"),
17
+ price: zod_1.z.string().describe("Current oracle price as integer"),
18
+ priceExponent: zod_1.z.number().describe("Price exponent (e.g., -8 for 8 decimal places)"),
19
+ });
20
+ async function openPosition(agent, config, input) {
21
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
22
+ const sideObj = input.side === "long" ? { long: {} } : { short: {} };
23
+ const result = await client.flashTradeOpen({
24
+ owner: config.vaultOwner,
25
+ vaultId: config.vaultId,
26
+ agent: agent.wallet.publicKey,
27
+ targetSymbol: input.targetSymbol,
28
+ collateralSymbol: input.collateralSymbol,
29
+ collateralAmount: new anchor_1.BN(input.collateralAmount),
30
+ sizeAmount: new anchor_1.BN(input.sizeAmount),
31
+ side: sideObj,
32
+ priceWithSlippage: {
33
+ price: new anchor_1.BN(input.price),
34
+ exponent: input.priceExponent,
35
+ },
36
+ leverageBps: input.leverageBps,
37
+ });
38
+ const txSig = await client.executeFlashTrade(result, agent.wallet.publicKey);
39
+ return `Position opened successfully.\nSide: ${input.side}\nTarget: ${input.targetSymbol}\nCollateral: ${input.collateralAmount} ${input.collateralSymbol}\nLeverage: ${(input.leverageBps / 10000).toFixed(1)}x\nTransaction: ${txSig}`;
40
+ }
41
+ //# sourceMappingURL=openPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openPosition.js","sourceRoot":"","sources":["../../src/tools/openPosition.ts"],"names":[],"mappings":";;;AAqBA,oCA+BC;AApDD,6BAAwB;AAExB,8CAAuC;AACvC,sDAAsD;AAGzC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACrF,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC/E,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACxE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC9D,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC9E,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7D,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CACrF,CAAC,CAAC;AAII,KAAK,UAAU,YAAY,CAChC,KAAU,EACV,MAA+B,EAC/B,KAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,gBAAgB,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAChD,UAAU,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,EAAE,OAAc;QACpB,iBAAiB,EAAE;YACjB,KAAK,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,KAAK,CAAC,aAAa;SAC9B;QACD,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAC1C,MAAM,EACN,KAAK,CAAC,MAAM,CAAC,SAAS,CACvB,CAAC;IAEF,OAAO,wCAAwC,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,YAAY,iBAAiB,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,eAAe,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,KAAK,EAAE,CAAC;AAC3O,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { AgentShieldPluginConfig } from "../types";
3
+ export declare const swapSchema: z.ZodObject<{
4
+ inputMint: z.ZodString;
5
+ outputMint: z.ZodString;
6
+ amount: z.ZodString;
7
+ slippageBps: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ inputMint: string;
10
+ outputMint: string;
11
+ amount: string;
12
+ slippageBps: number;
13
+ }, {
14
+ inputMint: string;
15
+ outputMint: string;
16
+ amount: string;
17
+ slippageBps?: number | undefined;
18
+ }>;
19
+ export type SwapInput = z.infer<typeof swapSchema>;
20
+ export declare function swap(agent: any, config: AgentShieldPluginConfig, input: SwapInput): Promise<string>;
21
+ //# sourceMappingURL=swap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,wBAAsB,IAAI,CACxB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,CAcjB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.swapSchema = void 0;
4
+ exports.swap = swap;
5
+ const zod_1 = require("zod");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const anchor_1 = require("@coral-xyz/anchor");
8
+ const client_factory_1 = require("../client-factory");
9
+ exports.swapSchema = zod_1.z.object({
10
+ inputMint: zod_1.z.string().describe("Input token mint address"),
11
+ outputMint: zod_1.z.string().describe("Output token mint address"),
12
+ amount: zod_1.z.string().describe("Amount to swap in base units (lamports/smallest denomination)"),
13
+ slippageBps: zod_1.z
14
+ .number()
15
+ .optional()
16
+ .default(50)
17
+ .describe("Slippage tolerance in basis points (default: 50 = 0.5%)"),
18
+ });
19
+ async function swap(agent, config, input) {
20
+ const client = (0, client_factory_1.getOrCreateClient)(agent, config);
21
+ const txSig = await client.executeJupiterSwap({
22
+ owner: config.vaultOwner,
23
+ vaultId: config.vaultId,
24
+ agent: agent.wallet.publicKey,
25
+ inputMint: new web3_js_1.PublicKey(input.inputMint),
26
+ outputMint: new web3_js_1.PublicKey(input.outputMint),
27
+ amount: new anchor_1.BN(input.amount),
28
+ slippageBps: input.slippageBps,
29
+ });
30
+ return `Swap executed successfully.\nTransaction: ${txSig}`;
31
+ }
32
+ //# sourceMappingURL=swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":";;;AAmBA,oBAkBC;AArCD,6BAAwB;AACxB,6CAA4C;AAC5C,8CAAuC;AACvC,sDAAsD;AAGzC,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC1D,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC5D,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IAC5F,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,IAAI,CACxB,KAAU,EACV,MAA+B,EAC/B,KAAgB;IAEhB,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;QAC5C,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QAC7B,SAAS,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QACzC,UAAU,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,MAAM,EAAE,IAAI,WAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC;IAEH,OAAO,6CAA6C,KAAK,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { BN } from "@coral-xyz/anchor";
3
+ export interface AgentShieldPluginConfig {
4
+ /** Vault owner public key */
5
+ vaultOwner: PublicKey;
6
+ /** Vault identifier (u64) */
7
+ vaultId: BN;
8
+ /** Optional program ID override (defaults to mainnet deployment) */
9
+ programId?: PublicKey;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,6BAA6B;IAC7B,OAAO,EAAE,EAAE,CAAC;IACZ,oEAAoE;IACpE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@agent-shield/plugin-solana-agent-kit",
3
+ "version": "0.1.0",
4
+ "description": "AgentShield plugin for Solana Agent Kit — routes agent DeFi actions through permission-guarded vaults",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "clean": "rm -rf dist",
10
+ "prepublishOnly": "npm run build"
11
+ },
12
+ "files": [
13
+ "dist/**/*"
14
+ ],
15
+ "peerDependencies": {
16
+ "solana-agent-kit": ">=2.0.0",
17
+ "@agent-shield/sdk": ">=0.1.0",
18
+ "@solana/web3.js": ">=1.90.0",
19
+ "@coral-xyz/anchor": ">=0.30.0"
20
+ },
21
+ "devDependencies": {
22
+ "typescript": "^5.3.0",
23
+ "solana-agent-kit": "^2.0.0",
24
+ "@agent-shield/sdk": "0.1.0",
25
+ "@solana/web3.js": "^1.95.0",
26
+ "@coral-xyz/anchor": "^0.32.0",
27
+ "zod": "^3.22.0"
28
+ },
29
+ "dependencies": {
30
+ "zod": "^3.22.0"
31
+ },
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/agent-shield/agent-shield",
36
+ "directory": "plugins/solana-agent-kit"
37
+ }
38
+ }