@agent-shield/plugin-elizaos 0.1.0 → 0.1.2

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 ADDED
@@ -0,0 +1,77 @@
1
+ # @agent-shield/plugin-elizaos
2
+
3
+ AgentShield plugin for [ElizaOS](https://github.com/elizaOS/eliza) — provides DeFi actions, vault status providers, and policy evaluators for AI agents operating through permission-guarded Solana vaults.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @agent-shield/plugin-elizaos @agent-shield/sdk
9
+ ```
10
+
11
+ Peer dependencies: `@elizaos/core >=0.1.0`, `@agent-shield/sdk >=0.1.0`, `@solana/web3.js >=1.90.0`, `@coral-xyz/anchor >=0.30.0`
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import { agentShieldPlugin } from "@agent-shield/plugin-elizaos";
17
+
18
+ // Register in your ElizaOS character config
19
+ const character = {
20
+ name: "DeFi Agent",
21
+ plugins: [agentShieldPlugin],
22
+ settings: {
23
+ // ... other settings
24
+ },
25
+ };
26
+ ```
27
+
28
+ ## Environment Variables
29
+
30
+ | Variable | Required | Description |
31
+ |----------|----------|-------------|
32
+ | `AGENT_SHIELD_VAULT_OWNER` | Yes | Vault owner public key (base58) |
33
+ | `AGENT_SHIELD_VAULT_ID` | Yes | Vault identifier (u64 as string) |
34
+ | `SOLANA_RPC_URL` | Yes | Solana RPC endpoint |
35
+ | `SOLANA_WALLET_PRIVATE_KEY` | Yes | Agent wallet private key (base58 or JSON array) |
36
+ | `AGENT_SHIELD_PROGRAM_ID` | No | Custom program ID override |
37
+
38
+ ## Actions
39
+
40
+ The plugin provides 3 actions that agents can invoke conversationally:
41
+
42
+ | Action | Description |
43
+ |--------|-------------|
44
+ | `SHIELD_SWAP` | Execute a token swap through Jupiter, routed through the AgentShield vault with on-chain policy enforcement (spending caps, token whitelists) |
45
+ | `SHIELD_OPEN_POSITION` | Open a leveraged perpetual position on Flash Trade through the vault. Enforces leverage limits and position count caps |
46
+ | `SHIELD_CLOSE_POSITION` | Close an existing perpetual position on Flash Trade through the vault |
47
+
48
+ ## Providers
49
+
50
+ Providers inject vault context into the agent's memory before each response:
51
+
52
+ | Provider | Description |
53
+ |----------|-------------|
54
+ | `vaultStatusProvider` | Injects current vault status, agent key, total volume, open positions, and fees collected into the agent's context |
55
+ | `spendTrackingProvider` | Injects rolling 24h spending data per token and recent transaction history so the agent is aware of remaining budget |
56
+
57
+ ## Evaluators
58
+
59
+ Evaluators run after shield actions to assess state:
60
+
61
+ | Evaluator | Description |
62
+ |-----------|-------------|
63
+ | `policyCheckEvaluator` | Runs after any shield action. Warns in agent memory when rolling 24h spend exceeds 80% of the daily cap, helping the agent self-regulate |
64
+
65
+ ## How It Works
66
+
67
+ The plugin reads environment variables at runtime to create an `AgentShieldClient`. All actions build atomic composed transactions:
68
+
69
+ ```
70
+ [ValidateAndAuthorize, DeFi instruction(s), FinalizeSession]
71
+ ```
72
+
73
+ Providers run before agent responses to inject vault context. The evaluator runs after shield actions to track budget usage.
74
+
75
+ ## License
76
+
77
+ MIT
@@ -28,7 +28,7 @@ exports.vaultStatusProvider = {
28
28
  `Whitelisted: ${tokenCount} tokens, ${protocolCount} protocols`,
29
29
  `Max Leverage: ${(policy.maxLeverageBps / 100).toFixed(1)}x`,
30
30
  `Positions: ${vault.openPositions}/${policy.maxConcurrentPositions}`,
31
- `Fee: ${(policy.feeBps / 100).toFixed(2)}%`,
31
+ `Developer Fee Rate: ${(policy.developerFeeRate / 10000).toFixed(4)}%`,
32
32
  ].join("\n");
33
33
  return {
34
34
  text,
@@ -1 +1 @@
1
- {"version":3,"file":"vaultStatus.js","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAEtD;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,6EAA6E;IAE1F,GAAG,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,MAAW,EAAE,EAAE;QACtD,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,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAErD,MAAM,IAAI,GAAG;gBACX,sBAAsB,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3C,WAAW,MAAM,EAAE;gBACnB,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAClC,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAClC,cAAc,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW;gBAC3D,gBAAgB,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW;gBAC/D,gBAAgB,UAAU,YAAY,aAAa,YAAY;gBAC/D,iBAAiB,CAAC,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC5D,cAAc,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,sBAAsB,EAAE;gBACpE,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE;oBACN,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;oBACjC,WAAW,EAAE,MAAM;oBACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACpD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBACxD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC7C,YAAY,EAAE,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE;iBACvD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,+CAA+C,KAAK,CAAC,OAAO,EAAE;gBACpE,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"vaultStatus.js","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAEtD;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,6EAA6E;IAE1F,GAAG,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,MAAW,EAAE,EAAE;QACtD,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,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAErD,MAAM,IAAI,GAAG;gBACX,sBAAsB,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3C,WAAW,MAAM,EAAE;gBACnB,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAClC,UAAU,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAClC,cAAc,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW;gBAC3D,gBAAgB,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW;gBAC/D,gBAAgB,UAAU,YAAY,aAAa,YAAY;gBAC/D,iBAAiB,CAAC,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC5D,cAAc,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,sBAAsB,EAAE;gBACpE,uBAAuB,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE;oBACN,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;oBACjC,WAAW,EAAE,MAAM;oBACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACpD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBACxD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC7C,YAAY,EAAE,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE;iBACvD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,+CAA+C,KAAK,CAAC,OAAO,EAAE;gBACpE,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-shield/plugin-elizaos",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "AgentShield plugin for ElizaOS — provides DeFi actions, vault providers, and policy evaluators",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,7 +10,8 @@
10
10
  "prepublishOnly": "npm run build"
11
11
  },
12
12
  "files": [
13
- "dist/**/*"
13
+ "dist/**/*",
14
+ "README.md"
14
15
  ],
15
16
  "peerDependencies": {
16
17
  "@elizaos/core": ">=0.1.0",
@@ -21,7 +22,7 @@
21
22
  "devDependencies": {
22
23
  "typescript": "^5.3.0",
23
24
  "@elizaos/core": "^0.1.0",
24
- "@agent-shield/sdk": "0.1.0",
25
+ "@agent-shield/sdk": "0.1.2",
25
26
  "@solana/web3.js": "^1.95.0",
26
27
  "@coral-xyz/anchor": "^0.32.0"
27
28
  },