@agent-shield/plugin-solana-agent-kit 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -31
- package/dist/factory.d.ts +29 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +47 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +30 -102
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -50
- package/dist/index.js.map +1 -1
- package/dist/tools/index.d.ts +4 -6
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -19
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/pauseResume.d.ts +12 -0
- package/dist/tools/pauseResume.d.ts.map +1 -0
- package/dist/tools/pauseResume.js +21 -0
- package/dist/tools/pauseResume.js.map +1 -0
- package/dist/tools/status.d.ts +6 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/status.js +35 -0
- package/dist/tools/status.js.map +1 -0
- package/dist/tools/transactionHistory.d.ts +6 -0
- package/dist/tools/transactionHistory.d.ts.map +1 -0
- package/dist/tools/transactionHistory.js +40 -0
- package/dist/tools/transactionHistory.js.map +1 -0
- package/dist/tools/updatePolicy.d.ts +15 -0
- package/dist/tools/updatePolicy.d.ts.map +1 -0
- package/dist/tools/updatePolicy.js +34 -0
- package/dist/tools/updatePolicy.js.map +1 -0
- package/dist/types.d.ts +27 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -1
- package/package.json +13 -9
- package/dist/client-factory.d.ts +0 -4
- package/dist/client-factory.d.ts.map +0 -1
- package/dist/client-factory.js +0 -23
- package/dist/client-factory.js.map +0 -1
- package/dist/tools/checkBalance.d.ts +0 -12
- package/dist/tools/checkBalance.d.ts.map +0 -1
- package/dist/tools/checkBalance.js +0 -38
- package/dist/tools/checkBalance.js.map +0 -1
- package/dist/tools/checkPolicy.d.ts +0 -12
- package/dist/tools/checkPolicy.d.ts.map +0 -1
- package/dist/tools/checkPolicy.js +0 -38
- package/dist/tools/checkPolicy.js.map +0 -1
- package/dist/tools/checkSpending.d.ts +0 -12
- package/dist/tools/checkSpending.d.ts.map +0 -1
- package/dist/tools/checkSpending.js +0 -63
- package/dist/tools/checkSpending.js.map +0 -1
- package/dist/tools/closePosition.d.ts +0 -27
- package/dist/tools/closePosition.d.ts.map +0 -1
- package/dist/tools/closePosition.js +0 -35
- package/dist/tools/closePosition.js.map +0 -1
- package/dist/tools/openPosition.d.ts +0 -33
- package/dist/tools/openPosition.d.ts.map +0 -1
- package/dist/tools/openPosition.js +0 -41
- package/dist/tools/openPosition.js.map +0 -1
- package/dist/tools/swap.d.ts +0 -21
- package/dist/tools/swap.d.ts.map +0 -1
- package/dist/tools/swap.js +0 -32
- package/dist/tools/swap.js.map +0 -1
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export { checkBalance, checkBalanceSchema, type CheckBalanceInput } from "./checkBalance";
|
|
6
|
-
export { checkSpending, checkSpendingSchema, type CheckSpendingInput } from "./checkSpending";
|
|
1
|
+
export { status, statusSchema, type StatusInput } from "./status";
|
|
2
|
+
export { updatePolicy, updatePolicySchema, type UpdatePolicyInput, } from "./updatePolicy";
|
|
3
|
+
export { pauseResume, pauseResumeSchema, type PauseResumeInput, } from "./pauseResume";
|
|
4
|
+
export { transactionHistory, transactionHistorySchema, type TransactionHistoryInput, } from "./transactionHistory";
|
|
7
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
-
var
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
Object.defineProperty(exports, "
|
|
13
|
-
var
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
Object.defineProperty(exports, "
|
|
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; } });
|
|
3
|
+
exports.transactionHistorySchema = exports.transactionHistory = exports.pauseResumeSchema = exports.pauseResume = exports.updatePolicySchema = exports.updatePolicy = exports.statusSchema = exports.status = void 0;
|
|
4
|
+
var status_1 = require("./status");
|
|
5
|
+
Object.defineProperty(exports, "status", { enumerable: true, get: function () { return status_1.status; } });
|
|
6
|
+
Object.defineProperty(exports, "statusSchema", { enumerable: true, get: function () { return status_1.statusSchema; } });
|
|
7
|
+
var updatePolicy_1 = require("./updatePolicy");
|
|
8
|
+
Object.defineProperty(exports, "updatePolicy", { enumerable: true, get: function () { return updatePolicy_1.updatePolicy; } });
|
|
9
|
+
Object.defineProperty(exports, "updatePolicySchema", { enumerable: true, get: function () { return updatePolicy_1.updatePolicySchema; } });
|
|
10
|
+
var pauseResume_1 = require("./pauseResume");
|
|
11
|
+
Object.defineProperty(exports, "pauseResume", { enumerable: true, get: function () { return pauseResume_1.pauseResume; } });
|
|
12
|
+
Object.defineProperty(exports, "pauseResumeSchema", { enumerable: true, get: function () { return pauseResume_1.pauseResumeSchema; } });
|
|
13
|
+
var transactionHistory_1 = require("./transactionHistory");
|
|
14
|
+
Object.defineProperty(exports, "transactionHistory", { enumerable: true, get: function () { return transactionHistory_1.transactionHistory; } });
|
|
15
|
+
Object.defineProperty(exports, "transactionHistorySchema", { enumerable: true, get: function () { return transactionHistory_1.transactionHistorySchema; } });
|
|
22
16
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkE;AAAzD,gGAAA,MAAM,OAAA;AAAE,sGAAA,YAAY,OAAA;AAC7B,+CAIwB;AAHtB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAGpB,6CAIuB;AAHrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AAGnB,2DAI8B;AAH5B,wHAAA,kBAAkB,OAAA;AAClB,8HAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ResolvedConfig } from "../types";
|
|
3
|
+
export declare const pauseResumeSchema: z.ZodObject<{
|
|
4
|
+
action: z.ZodEnum<["pause", "resume"]>;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
action: "pause" | "resume";
|
|
7
|
+
}, {
|
|
8
|
+
action: "pause" | "resume";
|
|
9
|
+
}>;
|
|
10
|
+
export type PauseResumeInput = z.infer<typeof pauseResumeSchema>;
|
|
11
|
+
export declare function pauseResume(_agent: any, config: ResolvedConfig, input: PauseResumeInput): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=pauseResume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pauseResume.d.ts","sourceRoot":"","sources":["../../src/tools/pauseResume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,iBAAiB;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pauseResumeSchema = void 0;
|
|
4
|
+
exports.pauseResume = pauseResume;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.pauseResumeSchema = zod_1.z.object({
|
|
7
|
+
action: zod_1.z
|
|
8
|
+
.enum(["pause", "resume"])
|
|
9
|
+
.describe("Whether to pause or resume shield enforcement."),
|
|
10
|
+
});
|
|
11
|
+
async function pauseResume(_agent, config, input) {
|
|
12
|
+
if (input.action === "pause") {
|
|
13
|
+
config.wallet.pause();
|
|
14
|
+
return "Shield enforcement paused. Transactions will pass through without policy checks.";
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
config.wallet.resume();
|
|
18
|
+
return "Shield enforcement resumed. Policy checks are active.";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=pauseResume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pauseResume.js","sourceRoot":"","sources":["../../src/tools/pauseResume.ts"],"names":[],"mappings":";;;AAWA,kCAYC;AAvBD,6BAAwB;AAGX,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,OAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACzB,QAAQ,CAAC,gDAAgD,CAAC;CAC9D,CAAC,CAAC;AAII,KAAK,UAAU,WAAW,CAC/B,MAAW,EACX,MAAsB,EACtB,KAAuB;IAEvB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,kFAAkF,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,uDAAuD,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ResolvedConfig } from "../types";
|
|
3
|
+
export declare const statusSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
4
|
+
export type StatusInput = z.infer<typeof statusSchema>;
|
|
5
|
+
export declare function status(_agent: any, config: ResolvedConfig, _input: StatusInput): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,YAAY,gDAAe,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.statusSchema = void 0;
|
|
4
|
+
exports.status = status;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.statusSchema = zod_1.z.object({});
|
|
7
|
+
async function status(_agent, config, _input) {
|
|
8
|
+
const summary = config.wallet.getSpendingSummary();
|
|
9
|
+
const lines = [
|
|
10
|
+
`=== AgentShield Status ===`,
|
|
11
|
+
`Paused: ${summary.isPaused}`,
|
|
12
|
+
``,
|
|
13
|
+
`--- Spending Limits ---`,
|
|
14
|
+
];
|
|
15
|
+
if (summary.tokens.length === 0) {
|
|
16
|
+
lines.push("No spending limits configured.");
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
for (const t of summary.tokens) {
|
|
20
|
+
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
21
|
+
const windowHrs = t.windowMs / 3600000;
|
|
22
|
+
const pct = t.limit > BigInt(0)
|
|
23
|
+
? Number((t.spent * BigInt(100)) / t.limit)
|
|
24
|
+
: 0;
|
|
25
|
+
lines.push(` ${label}: ${t.spent.toString()} / ${t.limit.toString()} (${pct}% used, ${windowHrs}h window)`);
|
|
26
|
+
lines.push(` Remaining: ${t.remaining.toString()}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
lines.push("", `--- Rate Limit ---`);
|
|
30
|
+
lines.push(` Transactions: ${summary.rateLimit.count} / ${summary.rateLimit.limit} (${summary.rateLimit.remaining} remaining)`);
|
|
31
|
+
const rlWindowHrs = summary.rateLimit.windowMs / 3600000;
|
|
32
|
+
lines.push(` Window: ${rlWindowHrs}h`);
|
|
33
|
+
return lines.join("\n");
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":";;;AAOA,wBAuCC;AA9CD,6BAAwB;AAGX,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAIlC,KAAK,UAAU,MAAM,CAC1B,MAAW,EACX,MAAsB,EACtB,MAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG;QACZ,4BAA4B;QAC5B,WAAW,OAAO,CAAC,QAAQ,EAAE;QAC7B,EAAE;QACF,yBAAyB;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YACrD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAS,CAAC;YACzC,MAAM,GAAG,GACP,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,CAAC,CAAC;YACR,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,WAAW,SAAS,WAAW,CACjG,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CACR,mBAAmB,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,aAAa,CACrH,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAS,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,GAAG,CAAC,CAAC;IAExC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ResolvedConfig } from "../types";
|
|
3
|
+
export declare const transactionHistorySchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
4
|
+
export type TransactionHistoryInput = z.infer<typeof transactionHistorySchema>;
|
|
5
|
+
export declare function transactionHistory(_agent: any, config: ResolvedConfig, _input: TransactionHistoryInput): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=transactionHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionHistory.d.ts","sourceRoot":"","sources":["../../src/tools/transactionHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,wBAAwB,gDAAe,CAAC;AAErD,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transactionHistorySchema = void 0;
|
|
4
|
+
exports.transactionHistory = transactionHistory;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.transactionHistorySchema = zod_1.z.object({});
|
|
7
|
+
async function transactionHistory(_agent, config, _input) {
|
|
8
|
+
const wallet = config.wallet;
|
|
9
|
+
const summary = wallet.getSpendingSummary();
|
|
10
|
+
const lines = [
|
|
11
|
+
`=== AgentShield Transaction History ===`,
|
|
12
|
+
`Enforcement: ${summary.isPaused ? "PAUSED" : "ACTIVE"}`,
|
|
13
|
+
``,
|
|
14
|
+
`--- Per-Token Usage ---`,
|
|
15
|
+
];
|
|
16
|
+
if (summary.tokens.length === 0) {
|
|
17
|
+
lines.push("No spending limits configured.");
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
for (const t of summary.tokens) {
|
|
21
|
+
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
22
|
+
const pct = t.limit > BigInt(0)
|
|
23
|
+
? Number((t.spent * BigInt(100)) / t.limit)
|
|
24
|
+
: 0;
|
|
25
|
+
const windowHrs = t.windowMs / 3600000;
|
|
26
|
+
lines.push(` ${label}:`);
|
|
27
|
+
lines.push(` Spent: ${t.spent.toString()} / ${t.limit.toString()}`);
|
|
28
|
+
lines.push(` Usage: ${pct}%`);
|
|
29
|
+
lines.push(` Remaining: ${t.remaining.toString()}`);
|
|
30
|
+
lines.push(` Window: ${windowHrs}h rolling`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
lines.push("", `--- Rate Limit ---`);
|
|
34
|
+
lines.push(` Transactions: ${summary.rateLimit.count} / ${summary.rateLimit.limit}`);
|
|
35
|
+
lines.push(` Remaining: ${summary.rateLimit.remaining}`);
|
|
36
|
+
const rlWindowHrs = summary.rateLimit.windowMs / 3600000;
|
|
37
|
+
lines.push(` Window: ${rlWindowHrs}h`);
|
|
38
|
+
return lines.join("\n");
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=transactionHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionHistory.js","sourceRoot":"","sources":["../../src/tools/transactionHistory.ts"],"names":[],"mappings":";;;AAOA,gDA0CC;AAjDD,6BAAwB;AAGX,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAI9C,KAAK,UAAU,kBAAkB,CACtC,MAAW,EACX,MAAsB,EACtB,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAG;QACZ,yCAAyC;QACzC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxD,EAAE;QACF,yBAAyB;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YACrD,MAAM,GAAG,GACP,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAS,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CACR,mBAAmB,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAC1E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAS,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,GAAG,CAAC,CAAC;IAExC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ResolvedConfig } from "../types";
|
|
3
|
+
export declare const updatePolicySchema: z.ZodObject<{
|
|
4
|
+
maxSpend: z.ZodOptional<z.ZodString>;
|
|
5
|
+
blockUnknownPrograms: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
maxSpend?: string | undefined;
|
|
8
|
+
blockUnknownPrograms?: boolean | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
maxSpend?: string | undefined;
|
|
11
|
+
blockUnknownPrograms?: boolean | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export type UpdatePolicyInput = z.infer<typeof updatePolicySchema>;
|
|
14
|
+
export declare function updatePolicy(_agent: any, config: ResolvedConfig, input: UpdatePolicyInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=updatePolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePolicy.d.ts","sourceRoot":"","sources":["../../src/tools/updatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,kBAAkB;;;;;;;;;EAW7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updatePolicySchema = void 0;
|
|
4
|
+
exports.updatePolicy = updatePolicy;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.updatePolicySchema = zod_1.z.object({
|
|
7
|
+
maxSpend: zod_1.z
|
|
8
|
+
.string()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe('Spending limit string, e.g. "500 USDC/day". Replaces current spend limits.'),
|
|
11
|
+
blockUnknownPrograms: zod_1.z
|
|
12
|
+
.boolean()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Whether to block unknown (unregistered) program IDs."),
|
|
15
|
+
});
|
|
16
|
+
async function updatePolicy(_agent, config, input) {
|
|
17
|
+
const newPolicies = {};
|
|
18
|
+
if (input.maxSpend !== undefined) {
|
|
19
|
+
newPolicies.maxSpend = input.maxSpend;
|
|
20
|
+
}
|
|
21
|
+
if (input.blockUnknownPrograms !== undefined) {
|
|
22
|
+
newPolicies.blockUnknownPrograms = input.blockUnknownPrograms;
|
|
23
|
+
}
|
|
24
|
+
config.wallet.updatePolicies(newPolicies);
|
|
25
|
+
const parts = [];
|
|
26
|
+
if (input.maxSpend !== undefined) {
|
|
27
|
+
parts.push(`maxSpend: ${input.maxSpend}`);
|
|
28
|
+
}
|
|
29
|
+
if (input.blockUnknownPrograms !== undefined) {
|
|
30
|
+
parts.push(`blockUnknownPrograms: ${input.blockUnknownPrograms}`);
|
|
31
|
+
}
|
|
32
|
+
return `Shield policies updated: ${parts.join(", ")}`;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=updatePolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatePolicy.js","sourceRoot":"","sources":["../../src/tools/updatePolicy.ts"],"names":[],"mappings":";;;AAmBA,oCAyBC;AA5CD,6BAAwB;AAIX,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4EAA4E,CAC7E;IACH,oBAAoB,EAAE,OAAC;SACpB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC,CAAC;AAII,KAAK,UAAU,YAAY,CAChC,MAAW,EACX,MAAsB,EACtB,KAAwB;IAExB,MAAM,WAAW,GAAmB,EAAE,CAAC;IAEvC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC7C,WAAW,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,11 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type { ShieldedWallet, WalletLike, ShieldPolicies, ShieldOptions } from "@agent-shield/solana";
|
|
2
|
+
/**
|
|
3
|
+
* Plugin configuration — accepts either a pre-created ShieldedWallet
|
|
4
|
+
* or a raw wallet + policies for auto-creation via the factory.
|
|
5
|
+
*/
|
|
3
6
|
export interface AgentShieldPluginConfig {
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
|
|
7
|
+
/** A pre-created ShieldedWallet (from shield()). Mutually exclusive with rawWallet. */
|
|
8
|
+
wallet?: ShieldedWallet;
|
|
9
|
+
/** A raw WalletLike to wrap with shield(). Mutually exclusive with wallet. */
|
|
10
|
+
rawWallet?: WalletLike;
|
|
11
|
+
/** Shield policies (used when rawWallet is provided). */
|
|
12
|
+
policies?: ShieldPolicies;
|
|
13
|
+
/** Logger for shield event callbacks (used when rawWallet is provided). */
|
|
14
|
+
logger?: {
|
|
15
|
+
info?: (...args: any[]) => void;
|
|
16
|
+
warn?: (...args: any[]) => void;
|
|
17
|
+
};
|
|
18
|
+
/** Additional ShieldOptions (used when rawWallet is provided). */
|
|
19
|
+
options?: ShieldOptions;
|
|
10
20
|
}
|
|
21
|
+
/** Resolved config that always has a ShieldedWallet. */
|
|
22
|
+
export interface ResolvedConfig {
|
|
23
|
+
wallet: ShieldedWallet;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolves plugin config to always have a ShieldedWallet.
|
|
27
|
+
* If a rawWallet is provided, uses the factory to create one.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveWallet(config: AgentShieldPluginConfig): ResolvedConfig;
|
|
11
30
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KACjC,CAAC;IACF,kEAAkE;IAClE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,cAAc,CAkB7E"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveWallet = resolveWallet;
|
|
4
|
+
const factory_1 = require("./factory");
|
|
5
|
+
/**
|
|
6
|
+
* Resolves plugin config to always have a ShieldedWallet.
|
|
7
|
+
* If a rawWallet is provided, uses the factory to create one.
|
|
8
|
+
*/
|
|
9
|
+
function resolveWallet(config) {
|
|
10
|
+
if (config.wallet) {
|
|
11
|
+
return { wallet: config.wallet };
|
|
12
|
+
}
|
|
13
|
+
if (config.rawWallet) {
|
|
14
|
+
const wallet = (0, factory_1.createShieldedWallet)({
|
|
15
|
+
wallet: config.rawWallet,
|
|
16
|
+
policies: config.policies,
|
|
17
|
+
logger: config.logger,
|
|
18
|
+
options: config.options,
|
|
19
|
+
});
|
|
20
|
+
return { wallet };
|
|
21
|
+
}
|
|
22
|
+
throw new Error("AgentShield: config must provide either 'wallet' (ShieldedWallet) or 'rawWallet' (WalletLike).");
|
|
23
|
+
}
|
|
3
24
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAqCA,sCAkBC;AAjDD,uCAAiD;AA2BjD;;;GAGG;AACH,SAAgB,aAAa,CAAC,MAA+B;IAC3D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAA,8BAAoB,EAAC;YAClC,MAAM,EAAE,MAAM,CAAC,SAAS;YACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-shield/plugin-solana-agent-kit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AgentShield plugin for Solana Agent Kit —
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "AgentShield plugin for Solana Agent Kit — shield() wrapper monitoring and management tools",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
9
|
"clean": "rm -rf dist",
|
|
10
|
+
"test": "mocha --require ts-node/register tests/**/*.test.ts --timeout 30000",
|
|
10
11
|
"prepublishOnly": "npm run build"
|
|
11
12
|
},
|
|
12
13
|
"files": [
|
|
@@ -15,17 +16,20 @@
|
|
|
15
16
|
],
|
|
16
17
|
"peerDependencies": {
|
|
17
18
|
"solana-agent-kit": ">=2.0.0",
|
|
18
|
-
"@agent-shield/
|
|
19
|
-
"@solana/web3.js": ">=1.90.0"
|
|
20
|
-
"@coral-xyz/anchor": ">=0.30.0"
|
|
19
|
+
"@agent-shield/solana": ">=0.1.0",
|
|
20
|
+
"@solana/web3.js": ">=1.90.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"
|
|
23
|
+
"@agent-shield/solana": "workspace:*",
|
|
24
24
|
"solana-agent-kit": "^2.0.0",
|
|
25
|
-
"@agent-shield/sdk": "0.1.2",
|
|
26
25
|
"@solana/web3.js": "^1.95.0",
|
|
27
|
-
"
|
|
28
|
-
"zod": "^3.22.0"
|
|
26
|
+
"typescript": "^5.3.3",
|
|
27
|
+
"zod": "^3.22.0",
|
|
28
|
+
"@types/chai": "^4.3.11",
|
|
29
|
+
"@types/mocha": "^10.0.6",
|
|
30
|
+
"chai": "^4.4.1",
|
|
31
|
+
"mocha": "^10.3.0",
|
|
32
|
+
"ts-node": "^10.9.2"
|
|
29
33
|
},
|
|
30
34
|
"dependencies": {
|
|
31
35
|
"zod": "^3.22.0"
|
package/dist/client-factory.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/client-factory.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
-
`Developer Fee Rate: ${policy.developerFeeRate} (${(policy.developerFeeRate / 10000).toFixed(4)}%)`,
|
|
36
|
-
].join("\n");
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=checkPolicy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,uBAAuB,MAAM,CAAC,gBAAgB,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|