@agent-shield/plugin-elizaos 0.1.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +215 -29
  2. package/dist/actions/index.d.ts +4 -3
  3. package/dist/actions/index.d.ts.map +1 -1
  4. package/dist/actions/index.js +9 -7
  5. package/dist/actions/index.js.map +1 -1
  6. package/dist/actions/pauseResume.d.ts +14 -0
  7. package/dist/actions/pauseResume.d.ts.map +1 -0
  8. package/dist/actions/pauseResume.js +89 -0
  9. package/dist/actions/pauseResume.js.map +1 -0
  10. package/dist/actions/status.d.ts +14 -0
  11. package/dist/actions/status.d.ts.map +1 -0
  12. package/dist/actions/status.js +74 -0
  13. package/dist/actions/status.js.map +1 -0
  14. package/dist/actions/transactionHistory.d.ts +14 -0
  15. package/dist/actions/transactionHistory.d.ts.map +1 -0
  16. package/dist/actions/transactionHistory.js +89 -0
  17. package/dist/actions/transactionHistory.js.map +1 -0
  18. package/dist/actions/{swap.d.ts → updatePolicy.d.ts} +4 -8
  19. package/dist/actions/updatePolicy.d.ts.map +1 -0
  20. package/dist/actions/updatePolicy.js +83 -0
  21. package/dist/actions/updatePolicy.js.map +1 -0
  22. package/dist/client-factory.d.ts +5 -8
  23. package/dist/client-factory.d.ts.map +1 -1
  24. package/dist/client-factory.js +53 -33
  25. package/dist/client-factory.js.map +1 -1
  26. package/dist/evaluators/policyCheck.d.ts +2 -2
  27. package/dist/evaluators/policyCheck.d.ts.map +1 -1
  28. package/dist/evaluators/policyCheck.js +25 -29
  29. package/dist/evaluators/policyCheck.js.map +1 -1
  30. package/dist/index.d.ts +3 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +7 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/plugin.d.ts +24 -68
  35. package/dist/plugin.d.ts.map +1 -1
  36. package/dist/plugin.js +14 -20
  37. package/dist/plugin.js.map +1 -1
  38. package/dist/providers/index.d.ts +1 -1
  39. package/dist/providers/index.d.ts.map +1 -1
  40. package/dist/providers/index.js +2 -2
  41. package/dist/providers/index.js.map +1 -1
  42. package/dist/providers/spendTracking.d.ts +7 -9
  43. package/dist/providers/spendTracking.d.ts.map +1 -1
  44. package/dist/providers/spendTracking.js +25 -32
  45. package/dist/providers/spendTracking.js.map +1 -1
  46. package/dist/providers/vaultStatus.d.ts +11 -15
  47. package/dist/providers/vaultStatus.d.ts.map +1 -1
  48. package/dist/providers/vaultStatus.js +22 -30
  49. package/dist/providers/vaultStatus.js.map +1 -1
  50. package/dist/types.d.ts +6 -10
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +4 -6
  53. package/dist/types.js.map +1 -1
  54. package/package.json +20 -14
  55. package/dist/actions/closePosition.d.ts +0 -27
  56. package/dist/actions/closePosition.d.ts.map +0 -1
  57. package/dist/actions/closePosition.js +0 -86
  58. package/dist/actions/closePosition.js.map +0 -1
  59. package/dist/actions/openPosition.d.ts +0 -31
  60. package/dist/actions/openPosition.d.ts.map +0 -1
  61. package/dist/actions/openPosition.js +0 -91
  62. package/dist/actions/openPosition.js.map +0 -1
  63. package/dist/actions/swap.d.ts.map +0 -1
  64. package/dist/actions/swap.js +0 -82
  65. package/dist/actions/swap.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export declare const swapAction: {
1
+ export declare const updatePolicyAction: {
2
2
  name: string;
3
3
  description: string;
4
4
  similes: string[];
@@ -8,18 +8,14 @@ export declare const swapAction: {
8
8
  user: string;
9
9
  content: {
10
10
  text: string;
11
- inputMint: string;
12
- outputMint: string;
13
- amount: string;
11
+ maxSpend: string;
14
12
  };
15
13
  } | {
16
14
  user: string;
17
15
  content: {
18
16
  text: string;
19
- inputMint?: undefined;
20
- outputMint?: undefined;
21
- amount?: undefined;
17
+ maxSpend?: undefined;
22
18
  };
23
19
  })[][];
24
20
  };
25
- //# sourceMappingURL=swap.d.ts.map
21
+ //# sourceMappingURL=updatePolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updatePolicy.d.ts","sourceRoot":"","sources":["../../src/actions/updatePolicy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;wBAYH,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAmBnD,GAAG,WACH,GAAG,UACJ,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;;;;;;;;CAyDpC,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updatePolicyAction = void 0;
4
+ const client_factory_1 = require("../client-factory");
5
+ exports.updatePolicyAction = {
6
+ name: "SHIELD_UPDATE_POLICY",
7
+ description: "Update AgentShield spending limits or program blocking at runtime.",
8
+ similes: [
9
+ "update policy",
10
+ "change limit",
11
+ "change spending cap",
12
+ "set budget",
13
+ "update shield",
14
+ ],
15
+ validate: async (runtime, message) => {
16
+ try {
17
+ (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ const text = (message.content?.text || "").toLowerCase();
23
+ const keywords = [
24
+ "update policy",
25
+ "change limit",
26
+ "change cap",
27
+ "set budget",
28
+ "update shield",
29
+ ];
30
+ return keywords.some((kw) => text.includes(kw));
31
+ },
32
+ handler: async (runtime, message, _state, _options, callback) => {
33
+ try {
34
+ const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
35
+ const params = message.content;
36
+ const newPolicies = {};
37
+ const changes = [];
38
+ if (params.maxSpend) {
39
+ newPolicies.maxSpend = params.maxSpend;
40
+ changes.push(`maxSpend: ${params.maxSpend}`);
41
+ }
42
+ if (params.blockUnknownPrograms !== undefined) {
43
+ newPolicies.blockUnknownPrograms = params.blockUnknownPrograms;
44
+ changes.push(`blockUnknownPrograms: ${params.blockUnknownPrograms}`);
45
+ }
46
+ if (changes.length === 0) {
47
+ callback({
48
+ text: "No policy changes specified. Provide maxSpend or blockUnknownPrograms.",
49
+ error: true,
50
+ });
51
+ return;
52
+ }
53
+ wallet.updatePolicies(newPolicies);
54
+ callback({
55
+ text: `Shield policies updated: ${changes.join(", ")}`,
56
+ });
57
+ }
58
+ catch (error) {
59
+ callback({
60
+ text: `Failed to update policies: ${error.message}`,
61
+ error: true,
62
+ });
63
+ }
64
+ },
65
+ examples: [
66
+ [
67
+ {
68
+ user: "{{user1}}",
69
+ content: {
70
+ text: "Update my shield limit to 1000 USDC per day",
71
+ maxSpend: "1000 USDC/day",
72
+ },
73
+ },
74
+ {
75
+ user: "{{agent}}",
76
+ content: {
77
+ text: "Shield policies updated: maxSpend: 1000 USDC/day",
78
+ },
79
+ },
80
+ ],
81
+ ],
82
+ };
83
+ //# sourceMappingURL=updatePolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updatePolicy.js","sourceRoot":"","sources":["../../src/actions/updatePolicy.ts"],"names":[],"mappings":";;;AACA,sDAA8D;AAEjD,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,oEAAoE;IACtE,OAAO,EAAE;QACP,eAAe;QACf,cAAc;QACd,qBAAqB;QACrB,YAAY;QACZ,eAAe;KAChB;IAED,QAAQ,EAAE,KAAK,EAAE,OAAY,EAAE,OAAY,EAAoB,EAAE;QAC/D,IAAI,CAAC;YACH,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG;YACf,eAAe;YACf,cAAc;YACd,YAAY;YACZ,YAAY;YACZ,eAAe;SAChB,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,OAAY,EACZ,OAAY,EACZ,MAAW,EACX,QAAa,EACb,QAAiC,EACjC,EAAE;QACF,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAE/B,MAAM,WAAW,GAAmB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAC9C,WAAW,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC;oBACP,IAAI,EAAE,wEAAwE;oBAC9E,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAEnC,QAAQ,CAAC;gBACP,IAAI,EAAE,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,QAAQ,CAAC;gBACP,IAAI,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE;gBACnD,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ,EAAE;QACR;YACE;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,6CAA6C;oBACnD,QAAQ,EAAE,eAAe;iBAC1B;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,kDAAkD;iBACzD;aACF;SACF;KACF;CACF,CAAC"}
@@ -1,19 +1,16 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
- import { BN } from "@coral-xyz/anchor";
3
- import { AgentShieldClient } from "@agent-shield/sdk";
2
+ import type { ShieldedWallet } from "@agent-shield/solana";
4
3
  import { AgentShieldElizaConfig } from "./types";
5
4
  /**
6
5
  * Reads AgentShield config from ElizaOS runtime settings.
7
6
  */
8
7
  export declare function getConfig(runtime: any): AgentShieldElizaConfig;
9
8
  /**
10
- * Gets or creates an AgentShieldClient for the given ElizaOS runtime.
9
+ * Gets or creates a ShieldedWallet for the given ElizaOS runtime.
11
10
  * Cached per runtime instance via WeakMap.
12
11
  */
13
- export declare function getOrCreateClient(runtime: any): {
14
- client: AgentShieldClient;
15
- vaultOwner: PublicKey;
16
- vaultId: BN;
17
- agentKey: PublicKey;
12
+ export declare function getOrCreateShieldedWallet(runtime: any): {
13
+ wallet: ShieldedWallet;
14
+ publicKey: PublicKey;
18
15
  };
19
16
  //# sourceMappingURL=client-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAU,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAY,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAI3D;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,sBAAsB,CAc9D;AAmBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG;IAC/C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACrB,CA8BA"}
1
+ {"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAY,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAyB3D;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,sBAAsB,CAgB9D;AAkBD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,GAAG;IACvD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB,CA4CA"}
@@ -1,12 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getConfig = getConfig;
4
- exports.getOrCreateClient = getOrCreateClient;
4
+ exports.getOrCreateShieldedWallet = getOrCreateShieldedWallet;
5
5
  const web3_js_1 = require("@solana/web3.js");
6
- const anchor_1 = require("@coral-xyz/anchor");
7
- const sdk_1 = require("@agent-shield/sdk");
6
+ const solana_1 = require("@agent-shield/solana");
8
7
  const types_1 = require("./types");
9
- const clientCache = new WeakMap();
8
+ /** Minimal wallet wrapper around a Keypair (no Anchor dependency). */
9
+ class KeypairWallet {
10
+ constructor(keypair) {
11
+ this.keypair = keypair;
12
+ this.publicKey = keypair.publicKey;
13
+ }
14
+ async signTransaction(tx) {
15
+ if (tx instanceof web3_js_1.Transaction) {
16
+ tx.partialSign(this.keypair);
17
+ }
18
+ else {
19
+ tx.sign([this.keypair]);
20
+ }
21
+ return tx;
22
+ }
23
+ }
24
+ const walletCache = new WeakMap();
10
25
  /**
11
26
  * Reads AgentShield config from ElizaOS runtime settings.
12
27
  */
@@ -17,11 +32,11 @@ function getConfig(runtime) {
17
32
  throw new Error(`AgentShield: missing required setting '${key}'`);
18
33
  return val;
19
34
  };
35
+ const blockRaw = runtime.getSetting(types_1.ENV_KEYS.BLOCK_UNKNOWN);
36
+ const blockUnknown = blockRaw !== "false";
20
37
  return {
21
- vaultOwner: get(types_1.ENV_KEYS.VAULT_OWNER),
22
- vaultId: get(types_1.ENV_KEYS.VAULT_ID),
23
- programId: runtime.getSetting(types_1.ENV_KEYS.PROGRAM_ID) || undefined,
24
- rpcUrl: get(types_1.ENV_KEYS.RPC_URL),
38
+ maxSpend: runtime.getSetting(types_1.ENV_KEYS.MAX_SPEND) || undefined,
39
+ blockUnknown,
25
40
  walletPrivateKey: get(types_1.ENV_KEYS.WALLET_PRIVATE_KEY),
26
41
  };
27
42
  }
@@ -38,38 +53,43 @@ function parseKeypair(raw) {
38
53
  catch {
39
54
  // Not JSON — try base58
40
55
  }
41
- // base58 secret key (64 bytes)
42
56
  const bs58 = require("bs58");
43
57
  return web3_js_1.Keypair.fromSecretKey(bs58.decode(raw));
44
58
  }
45
59
  /**
46
- * Gets or creates an AgentShieldClient for the given ElizaOS runtime.
60
+ * Gets or creates a ShieldedWallet for the given ElizaOS runtime.
47
61
  * Cached per runtime instance via WeakMap.
48
62
  */
49
- function getOrCreateClient(runtime) {
50
- const cached = clientCache.get(runtime);
63
+ function getOrCreateShieldedWallet(runtime) {
64
+ const cached = walletCache.get(runtime);
65
+ if (cached)
66
+ return cached;
51
67
  const config = getConfig(runtime);
52
- if (cached) {
53
- return {
54
- client: cached,
55
- vaultOwner: new web3_js_1.PublicKey(config.vaultOwner),
56
- vaultId: new anchor_1.BN(config.vaultId),
57
- agentKey: parseKeypair(config.walletPrivateKey).publicKey,
58
- };
59
- }
60
- const connection = new web3_js_1.Connection(config.rpcUrl, "confirmed");
61
68
  const keypair = parseKeypair(config.walletPrivateKey);
62
- const wallet = new anchor_1.Wallet(keypair);
63
- const programId = config.programId
64
- ? new web3_js_1.PublicKey(config.programId)
65
- : undefined;
66
- const client = new sdk_1.AgentShieldClient(connection, wallet, programId);
67
- clientCache.set(runtime, client);
68
- return {
69
- client,
70
- vaultOwner: new web3_js_1.PublicKey(config.vaultOwner),
71
- vaultId: new anchor_1.BN(config.vaultId),
72
- agentKey: keypair.publicKey,
73
- };
69
+ const innerWallet = new KeypairWallet(keypair);
70
+ const logger = runtime.logger ?? console;
71
+ const shielded = (0, solana_1.shield)(innerWallet, {
72
+ maxSpend: config.maxSpend,
73
+ blockUnknownPrograms: config.blockUnknown,
74
+ }, {
75
+ onDenied: (error) => {
76
+ (logger.warn ?? console.warn)("[AgentShield] Transaction denied:", error.message);
77
+ },
78
+ onApproved: (txHash) => {
79
+ (logger.info ?? console.info)("[AgentShield] Transaction approved", txHash ?? "");
80
+ },
81
+ onPause: () => {
82
+ (logger.info ?? console.info)("[AgentShield] Enforcement paused");
83
+ },
84
+ onResume: () => {
85
+ (logger.info ?? console.info)("[AgentShield] Enforcement resumed");
86
+ },
87
+ onPolicyUpdate: () => {
88
+ (logger.info ?? console.info)("[AgentShield] Policies updated");
89
+ },
90
+ });
91
+ const result = { wallet: shielded, publicKey: keypair.publicKey };
92
+ walletCache.set(runtime, result);
93
+ return result;
74
94
  }
75
95
  //# sourceMappingURL=client-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Policy Check Evaluator — runs after SHIELD actions and warns
3
- * if the vault is approaching its daily spending cap.
2
+ * Policy Check Evaluator — runs after agent actions and warns
3
+ * if spending is approaching any token's cap (>=80%).
4
4
  */
5
5
  export declare const policyCheckEvaluator: {
6
6
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"policyCheck.d.ts","sourceRoot":"","sources":["../../src/evaluators/policyCheck.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;yBAOJ,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAUtC,GAAG,YAAY,GAAG;;;;;;;;;;;;;;CAyD5C,CAAC"}
1
+ {"version":3,"file":"policyCheck.d.ts","sourceRoot":"","sources":["../../src/evaluators/policyCheck.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;yBAOJ,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAStC,GAAG,YAAY,GAAG;;;;;;;;;;;;;;CAsD5C,CAAC"}
@@ -3,45 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.policyCheckEvaluator = void 0;
4
4
  const client_factory_1 = require("../client-factory");
5
5
  /**
6
- * Policy Check Evaluator — runs after SHIELD actions and warns
7
- * if the vault is approaching its daily spending cap.
6
+ * Policy Check Evaluator — runs after agent actions and warns
7
+ * if spending is approaching any token's cap (>=80%).
8
8
  */
9
9
  exports.policyCheckEvaluator = {
10
10
  name: "AGENT_SHIELD_POLICY_CHECK",
11
- description: "Post-action evaluator that checks spending against the daily cap " +
12
- "and warns if usage exceeds 80%.",
11
+ description: "Post-action evaluator that checks spending against caps " +
12
+ "and warns if any token usage exceeds 80%.",
13
13
  similes: ["check spending limits", "policy warning"],
14
14
  validate: async (_runtime, message) => {
15
- // Only evaluate after shield actions
16
15
  const text = (message.content?.text || "").toLowerCase();
17
16
  return (text.includes("agentshield") ||
18
- text.includes("shield vault") ||
17
+ text.includes("shield") ||
19
18
  text.includes("transaction:"));
20
19
  },
21
20
  handler: async (runtime, _message) => {
22
21
  try {
23
- const { client, vaultOwner, vaultId } = (0, client_factory_1.getOrCreateClient)(runtime);
24
- const [vaultPda] = client.getVaultPDA(vaultOwner, vaultId);
25
- const tracker = await client.fetchTracker(vaultPda);
26
- const policy = await client.fetchPolicy(vaultPda);
27
- const now = Math.floor(Date.now() / 1000);
28
- const windowStart = now - 24 * 60 * 60;
29
- let totalSpent = BigInt(0);
30
- for (const entry of tracker.rollingSpends) {
31
- if (entry.timestamp.toNumber() >= windowStart) {
32
- totalSpent += BigInt(entry.amountSpent.toString());
22
+ const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
23
+ const summary = wallet.getSpendingSummary();
24
+ if (summary.isPaused)
25
+ return null;
26
+ const warnings = [];
27
+ for (const t of summary.tokens) {
28
+ if (t.limit === BigInt(0))
29
+ continue;
30
+ const pct = Number((t.spent * BigInt(100)) / t.limit);
31
+ if (pct >= 80) {
32
+ const label = t.symbol ?? t.mint.slice(0, 8) + "...";
33
+ warnings.push(`${label}: ${pct}% used (${t.remaining.toString()} remaining)`);
33
34
  }
34
35
  }
35
- const cap = BigInt(policy.dailySpendingCap.toString());
36
- if (cap === BigInt(0))
37
- return null;
38
- const usagePct = Number((totalSpent * BigInt(100)) / cap);
39
- if (usagePct >= 80) {
40
- const remaining = cap > totalSpent ? cap - totalSpent : BigInt(0);
36
+ if (warnings.length > 0) {
41
37
  return {
42
- text: `WARNING: AgentShield vault has used ${usagePct}% of the daily spending cap. ` +
43
- `Remaining budget: ${remaining.toString()} lamports. ` +
44
- `Consider reducing trade sizes or waiting for the rolling window to reset.`,
38
+ text: `WARNING: AgentShield spending approaching limits:\n` +
39
+ warnings.map((w) => ` ${w}`).join("\n") +
40
+ `\nConsider reducing trade sizes or waiting for the rolling window to reset.`,
45
41
  action: "POLICY_WARNING",
46
42
  };
47
43
  }
@@ -54,17 +50,17 @@ exports.policyCheckEvaluator = {
54
50
  },
55
51
  examples: [
56
52
  {
57
- context: "Agent just executed a swap that pushed spending to 85% of daily cap",
53
+ context: "Agent just executed a swap that pushed USDC spending to 85% of cap",
58
54
  messages: [
59
55
  {
60
56
  user: "{{agent}}",
61
57
  content: {
62
- text: "Swap executed successfully through AgentShield vault.\nTransaction: 5xYz...",
58
+ text: "Swap executed successfully.\nTransaction: 5xYz...",
63
59
  },
64
60
  },
65
61
  ],
66
- outcome: "WARNING: AgentShield vault has used 85% of the daily spending cap. " +
67
- "Remaining budget: 150000000 lamports.",
62
+ outcome: "WARNING: AgentShield spending approaching limits:\n" +
63
+ " USDC: 85% used (75000000 remaining)",
68
64
  },
69
65
  ],
70
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"policyCheck.js","sourceRoot":"","sources":["../../src/evaluators/policyCheck.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAEtD;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,mEAAmE;QACnE,iCAAiC;IACnC,OAAO,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IAEpD,QAAQ,EAAE,KAAK,EAAE,QAAa,EAAE,OAAY,EAAoB,EAAE;QAChE,qCAAqC;QACrC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAiB,EAAC,OAAO,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAEvC,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC9C,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvD,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAE1D,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClE,OAAO;oBACL,IAAI,EACF,uCAAuC,QAAQ,+BAA+B;wBAC9E,qBAAqB,SAAS,CAAC,QAAQ,EAAE,aAAa;wBACtD,2EAA2E;oBAC7E,MAAM,EAAE,gBAAgB;iBACzB,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,qEAAqE;YAC9E,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,6EAA6E;qBACpF;iBACF;aACF;YACD,OAAO,EACL,qEAAqE;gBACrE,uCAAuC;SAC1C;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"policyCheck.js","sourceRoot":"","sources":["../../src/evaluators/policyCheck.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAE9D;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,0DAA0D;QAC1D,2CAA2C;IAC7C,OAAO,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IAEpD,QAAQ,EAAE,KAAK,EAAE,QAAa,EAAE,OAAY,EAAoB,EAAE;QAChE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAE5C,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACpC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrD,QAAQ,CAAC,IAAI,CACX,GAAG,KAAK,KAAK,GAAG,WAAW,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,IAAI,EACF,qDAAqD;wBACrD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxC,6EAA6E;oBAC/E,MAAM,EAAE,gBAAgB;iBACzB,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,QAAQ,EAAE;QACR;YACE,OAAO,EACL,oEAAoE;YACtE,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,mDAAmD;qBAC1D;iBACF;aACF;YACD,OAAO,EACL,qDAAqD;gBACrD,uCAAuC;SAC1C;KACF;CACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { agentShieldPlugin } from "./plugin";
2
2
  export { ENV_KEYS, type AgentShieldElizaConfig } from "./types";
3
- export { getOrCreateClient, getConfig } from "./client-factory";
4
- export { swapAction, openPositionAction, closePositionAction } from "./actions";
5
- export { vaultStatusProvider, spendTrackingProvider } from "./providers";
3
+ export { getOrCreateShieldedWallet, getConfig } from "./client-factory";
4
+ export { statusAction, updatePolicyAction, pauseResumeAction, transactionHistoryAction, } from "./actions";
5
+ export { shieldStatusProvider, spendTrackingProvider } from "./providers";
6
6
  export { policyCheckEvaluator } from "./evaluators";
7
7
  import { agentShieldPlugin } from "./plugin";
8
8
  export default agentShieldPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,eAAe,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.policyCheckEvaluator = exports.spendTrackingProvider = exports.vaultStatusProvider = exports.closePositionAction = exports.openPositionAction = exports.swapAction = exports.getConfig = exports.getOrCreateClient = exports.ENV_KEYS = exports.agentShieldPlugin = void 0;
3
+ exports.policyCheckEvaluator = exports.spendTrackingProvider = exports.shieldStatusProvider = exports.transactionHistoryAction = exports.pauseResumeAction = exports.updatePolicyAction = exports.statusAction = exports.getConfig = exports.getOrCreateShieldedWallet = exports.ENV_KEYS = exports.agentShieldPlugin = void 0;
4
4
  var plugin_1 = require("./plugin");
5
5
  Object.defineProperty(exports, "agentShieldPlugin", { enumerable: true, get: function () { return plugin_1.agentShieldPlugin; } });
6
6
  var types_1 = require("./types");
7
7
  Object.defineProperty(exports, "ENV_KEYS", { enumerable: true, get: function () { return types_1.ENV_KEYS; } });
8
8
  var client_factory_1 = require("./client-factory");
9
- Object.defineProperty(exports, "getOrCreateClient", { enumerable: true, get: function () { return client_factory_1.getOrCreateClient; } });
9
+ Object.defineProperty(exports, "getOrCreateShieldedWallet", { enumerable: true, get: function () { return client_factory_1.getOrCreateShieldedWallet; } });
10
10
  Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return client_factory_1.getConfig; } });
11
11
  var actions_1 = require("./actions");
12
- Object.defineProperty(exports, "swapAction", { enumerable: true, get: function () { return actions_1.swapAction; } });
13
- Object.defineProperty(exports, "openPositionAction", { enumerable: true, get: function () { return actions_1.openPositionAction; } });
14
- Object.defineProperty(exports, "closePositionAction", { enumerable: true, get: function () { return actions_1.closePositionAction; } });
12
+ Object.defineProperty(exports, "statusAction", { enumerable: true, get: function () { return actions_1.statusAction; } });
13
+ Object.defineProperty(exports, "updatePolicyAction", { enumerable: true, get: function () { return actions_1.updatePolicyAction; } });
14
+ Object.defineProperty(exports, "pauseResumeAction", { enumerable: true, get: function () { return actions_1.pauseResumeAction; } });
15
+ Object.defineProperty(exports, "transactionHistoryAction", { enumerable: true, get: function () { return actions_1.transactionHistoryAction; } });
15
16
  var providers_1 = require("./providers");
16
- Object.defineProperty(exports, "vaultStatusProvider", { enumerable: true, get: function () { return providers_1.vaultStatusProvider; } });
17
+ Object.defineProperty(exports, "shieldStatusProvider", { enumerable: true, get: function () { return providers_1.shieldStatusProvider; } });
17
18
  Object.defineProperty(exports, "spendTrackingProvider", { enumerable: true, get: function () { return providers_1.spendTrackingProvider; } });
18
19
  var evaluators_1 = require("./evaluators");
19
20
  Object.defineProperty(exports, "policyCheckEvaluator", { enumerable: true, get: function () { return evaluators_1.policyCheckEvaluator; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,iCAAgE;AAAvD,iGAAA,QAAQ,OAAA;AACjB,mDAAgE;AAAvD,mHAAA,iBAAiB,OAAA;AAAE,2GAAA,SAAS,OAAA;AACrC,qCAAgF;AAAvE,qGAAA,UAAU,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAC5D,yCAAyE;AAAhE,gHAAA,mBAAmB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AACnD,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA;AAE7B,2CAA2C;AAC3C,qCAA6C;AAC7C,kBAAe,0BAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,iCAAgE;AAAvD,iGAAA,QAAQ,OAAA;AACjB,mDAAwE;AAA/D,2HAAA,yBAAyB,OAAA;AAAE,2GAAA,SAAS,OAAA;AAC7C,qCAKmB;AAJjB,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,mHAAA,wBAAwB,OAAA;AAE1B,yCAA0E;AAAjE,iHAAA,oBAAoB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AACpD,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA;AAE7B,2CAA2C;AAC3C,qCAA6C;AAC7C,kBAAe,0BAAiB,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -2,93 +2,51 @@
2
2
  * AgentShield Plugin for ElizaOS.
3
3
  *
4
4
  * Provides:
5
- * - Actions: SHIELD_SWAP, SHIELD_OPEN_POSITION, SHIELD_CLOSE_POSITION
6
- * - Providers: vault status, spend tracking (injected into agent context)
7
- * - Evaluators: policy cap warning (runs after shield actions)
5
+ * - Actions: SHIELD_STATUS, SHIELD_UPDATE_POLICY, SHIELD_PAUSE_RESUME, SHIELD_TRANSACTION_HISTORY
6
+ * - Providers: shield status, spend tracking (injected into agent context)
7
+ * - Evaluators: policy cap warning (runs after actions)
8
8
  *
9
9
  * Required environment variables:
10
- * - AGENT_SHIELD_VAULT_OWNER — vault owner public key
11
- * - AGENT_SHIELD_VAULT_ID — vault identifier
12
- * - SOLANA_RPC_URL — Solana RPC endpoint
13
10
  * - SOLANA_WALLET_PRIVATE_KEY — agent wallet key
14
11
  *
15
12
  * Optional:
16
- * - AGENT_SHIELD_PROGRAM_IDcustom program ID override
13
+ * - AGENT_SHIELD_MAX_SPENDe.g. "500 USDC/day"
14
+ * - AGENT_SHIELD_BLOCK_UNKNOWN — "true" or "false" (default: true)
17
15
  */
18
16
  export declare const agentShieldPlugin: {
19
17
  name: string;
20
18
  description: string;
21
- actions: ({
19
+ actions: {
22
20
  name: string;
23
21
  description: string;
24
22
  similes: string[];
25
23
  validate: (runtime: any, message: any) => Promise<boolean>;
26
- handler: (runtime: any, message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
27
- examples: ({
28
- user: string;
29
- content: {
30
- text: string;
31
- inputMint: string;
32
- outputMint: string;
33
- amount: string;
34
- };
35
- } | {
36
- user: string;
37
- content: {
38
- text: string;
39
- inputMint?: undefined;
40
- outputMint?: undefined;
41
- amount?: undefined;
42
- };
43
- })[][];
44
- } | {
45
- name: string;
46
- description: string;
47
- similes: string[];
48
- validate: (runtime: any, message: any) => Promise<boolean>;
49
- handler: (runtime: any, message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
50
- examples: ({
51
- user: string;
52
- content: {
53
- text: string;
54
- targetSymbol: string;
55
- collateralSymbol: string;
56
- collateralAmount: string;
57
- side: string;
58
- };
59
- } | {
24
+ handler: (runtime: any, _message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
25
+ examples: {
60
26
  user: string;
61
27
  content: {
62
28
  text: string;
63
- targetSymbol?: undefined;
64
- collateralSymbol?: undefined;
65
- collateralAmount?: undefined;
66
- side?: undefined;
67
29
  };
68
- })[][];
69
- })[];
30
+ }[][];
31
+ }[];
70
32
  providers: ({
71
33
  name: string;
72
34
  description: string;
73
35
  get: (runtime: any, _message: any, _state: any) => Promise<{
74
36
  text: string;
75
37
  values: {
76
- vaultAddress: string;
77
- vaultStatus: string;
78
- dailySpendingCap: string;
79
- maxTransactionSize: string;
80
- openPositions: string;
81
- maxPositions: string;
38
+ walletAddress: string;
39
+ isPaused: string;
40
+ tokenCount: string;
41
+ rateLimitUsage: string;
82
42
  };
83
43
  } | {
84
44
  text: string;
85
45
  values: {
86
- vaultAddress?: undefined;
87
- vaultStatus?: undefined;
88
- dailySpendingCap?: undefined;
89
- maxTransactionSize?: undefined;
90
- openPositions?: undefined;
91
- maxPositions?: undefined;
46
+ walletAddress?: undefined;
47
+ isPaused?: undefined;
48
+ tokenCount?: undefined;
49
+ rateLimitUsage?: undefined;
92
50
  };
93
51
  }>;
94
52
  } | {
@@ -97,18 +55,16 @@ export declare const agentShieldPlugin: {
97
55
  get: (runtime: any, _message: any, _state: any) => Promise<{
98
56
  text: string;
99
57
  values: {
100
- totalSpent24h: string;
101
- dailyCap: string;
102
- remainingBudget: string;
103
- usagePercent: string;
58
+ tokenCount: string;
59
+ maxUsagePercent: string;
60
+ isPaused: string;
104
61
  };
105
62
  } | {
106
63
  text: string;
107
64
  values: {
108
- totalSpent24h?: undefined;
109
- dailyCap?: undefined;
110
- remainingBudget?: undefined;
111
- usagePercent?: undefined;
65
+ tokenCount?: undefined;
66
+ maxUsagePercent?: undefined;
67
+ isPaused?: undefined;
112
68
  };
113
69
  }>;
114
70
  })[];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB7B,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB7B,CAAC"}