@agent-shield/plugin-elizaos 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 +215 -29
- package/dist/actions/index.d.ts +4 -3
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +9 -7
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/pauseResume.d.ts +14 -0
- package/dist/actions/pauseResume.d.ts.map +1 -0
- package/dist/actions/pauseResume.js +89 -0
- package/dist/actions/pauseResume.js.map +1 -0
- package/dist/actions/status.d.ts +14 -0
- package/dist/actions/status.d.ts.map +1 -0
- package/dist/actions/status.js +74 -0
- package/dist/actions/status.js.map +1 -0
- package/dist/actions/transactionHistory.d.ts +14 -0
- package/dist/actions/transactionHistory.d.ts.map +1 -0
- package/dist/actions/transactionHistory.js +89 -0
- package/dist/actions/transactionHistory.js.map +1 -0
- package/dist/actions/{swap.d.ts → updatePolicy.d.ts} +4 -8
- package/dist/actions/updatePolicy.d.ts.map +1 -0
- package/dist/actions/updatePolicy.js +83 -0
- package/dist/actions/updatePolicy.js.map +1 -0
- package/dist/client-factory.d.ts +5 -8
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +53 -33
- package/dist/client-factory.js.map +1 -1
- package/dist/evaluators/policyCheck.d.ts +2 -2
- package/dist/evaluators/policyCheck.d.ts.map +1 -1
- package/dist/evaluators/policyCheck.js +25 -29
- package/dist/evaluators/policyCheck.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +24 -68
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +14 -20
- package/dist/plugin.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/spendTracking.d.ts +7 -9
- package/dist/providers/spendTracking.d.ts.map +1 -1
- package/dist/providers/spendTracking.js +25 -32
- package/dist/providers/spendTracking.js.map +1 -1
- package/dist/providers/vaultStatus.d.ts +11 -15
- package/dist/providers/vaultStatus.d.ts.map +1 -1
- package/dist/providers/vaultStatus.js +22 -30
- package/dist/providers/vaultStatus.js.map +1 -1
- package/dist/types.d.ts +6 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -6
- package/dist/types.js.map +1 -1
- package/package.json +12 -8
- package/dist/actions/closePosition.d.ts +0 -27
- package/dist/actions/closePosition.d.ts.map +0 -1
- package/dist/actions/closePosition.js +0 -86
- package/dist/actions/closePosition.js.map +0 -1
- package/dist/actions/openPosition.d.ts +0 -31
- package/dist/actions/openPosition.d.ts.map +0 -1
- package/dist/actions/openPosition.js +0 -91
- package/dist/actions/openPosition.js.map +0 -1
- package/dist/actions/swap.d.ts.map +0 -1
- package/dist/actions/swap.js +0 -82
- package/dist/actions/swap.js.map +0 -1
package/dist/plugin.js
CHANGED
|
@@ -8,35 +8,29 @@ const evaluators_1 = require("./evaluators");
|
|
|
8
8
|
* AgentShield Plugin for ElizaOS.
|
|
9
9
|
*
|
|
10
10
|
* Provides:
|
|
11
|
-
* - Actions:
|
|
12
|
-
* - Providers:
|
|
13
|
-
* - Evaluators: policy cap warning (runs after
|
|
11
|
+
* - Actions: SHIELD_STATUS, SHIELD_UPDATE_POLICY, SHIELD_PAUSE_RESUME, SHIELD_TRANSACTION_HISTORY
|
|
12
|
+
* - Providers: shield status, spend tracking (injected into agent context)
|
|
13
|
+
* - Evaluators: policy cap warning (runs after actions)
|
|
14
14
|
*
|
|
15
15
|
* Required environment variables:
|
|
16
|
-
* - AGENT_SHIELD_VAULT_OWNER — vault owner public key
|
|
17
|
-
* - AGENT_SHIELD_VAULT_ID — vault identifier
|
|
18
|
-
* - SOLANA_RPC_URL — Solana RPC endpoint
|
|
19
16
|
* - SOLANA_WALLET_PRIVATE_KEY — agent wallet key
|
|
20
17
|
*
|
|
21
18
|
* Optional:
|
|
22
|
-
* -
|
|
19
|
+
* - AGENT_SHIELD_MAX_SPEND — e.g. "500 USDC/day"
|
|
20
|
+
* - AGENT_SHIELD_BLOCK_UNKNOWN — "true" or "false" (default: true)
|
|
23
21
|
*/
|
|
24
22
|
exports.agentShieldPlugin = {
|
|
25
23
|
name: "agent-shield",
|
|
26
|
-
description: "AgentShield —
|
|
27
|
-
"
|
|
28
|
-
"
|
|
24
|
+
description: "AgentShield — Client-side spending controls for AI agents. " +
|
|
25
|
+
"Wraps wallet signing with policy enforcement, spending caps, " +
|
|
26
|
+
"and rate limiting. Zero on-chain setup required.",
|
|
29
27
|
actions: [
|
|
30
|
-
actions_1.
|
|
31
|
-
actions_1.
|
|
32
|
-
actions_1.
|
|
33
|
-
|
|
34
|
-
providers: [
|
|
35
|
-
providers_1.vaultStatusProvider,
|
|
36
|
-
providers_1.spendTrackingProvider,
|
|
37
|
-
],
|
|
38
|
-
evaluators: [
|
|
39
|
-
evaluators_1.policyCheckEvaluator,
|
|
28
|
+
actions_1.statusAction,
|
|
29
|
+
actions_1.updatePolicyAction,
|
|
30
|
+
actions_1.pauseResumeAction,
|
|
31
|
+
actions_1.transactionHistoryAction,
|
|
40
32
|
],
|
|
33
|
+
providers: [providers_1.shieldStatusProvider, providers_1.spendTrackingProvider],
|
|
34
|
+
evaluators: [evaluators_1.policyCheckEvaluator],
|
|
41
35
|
};
|
|
42
36
|
//# sourceMappingURL=plugin.js.map
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAAA,uCAKmB;AACnB,2CAA0E;AAC1E,6CAAoD;AAEpD;;;;;;;;;;;;;;GAcG;AACU,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,6DAA6D;QAC7D,+DAA+D;QAC/D,kDAAkD;IAEpD,OAAO,EAAE;QACP,sBAAY;QACZ,4BAAkB;QAClB,2BAAiB;QACjB,kCAAwB;KACzB;IAED,SAAS,EAAE,CAAC,gCAAoB,EAAE,iCAAqB,CAAC;IAExD,UAAU,EAAE,CAAC,iCAAoB,CAAC;CACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.spendTrackingProvider = exports.
|
|
3
|
+
exports.spendTrackingProvider = exports.shieldStatusProvider = void 0;
|
|
4
4
|
var vaultStatus_1 = require("./vaultStatus");
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "shieldStatusProvider", { enumerable: true, get: function () { return vaultStatus_1.shieldStatusProvider; } });
|
|
6
6
|
var spendTracking_1 = require("./spendTracking");
|
|
7
7
|
Object.defineProperty(exports, "spendTrackingProvider", { enumerable: true, get: function () { return spendTracking_1.spendTrackingProvider; } });
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAC7B,iDAAwD;AAA/C,sHAAA,qBAAqB,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Spend Tracking Provider — injects
|
|
2
|
+
* Spend Tracking Provider — injects per-token spending data and
|
|
3
3
|
* remaining budget into agent context.
|
|
4
4
|
*/
|
|
5
5
|
export declare const spendTrackingProvider: {
|
|
@@ -8,18 +8,16 @@ export declare const spendTrackingProvider: {
|
|
|
8
8
|
get: (runtime: any, _message: any, _state: any) => Promise<{
|
|
9
9
|
text: string;
|
|
10
10
|
values: {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
usagePercent: string;
|
|
11
|
+
tokenCount: string;
|
|
12
|
+
maxUsagePercent: string;
|
|
13
|
+
isPaused: string;
|
|
15
14
|
};
|
|
16
15
|
} | {
|
|
17
16
|
text: string;
|
|
18
17
|
values: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
usagePercent?: undefined;
|
|
18
|
+
tokenCount?: undefined;
|
|
19
|
+
maxUsagePercent?: undefined;
|
|
20
|
+
isPaused?: undefined;
|
|
23
21
|
};
|
|
24
22
|
}>;
|
|
25
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spendTracking.d.ts","sourceRoot":"","sources":["../../src/providers/spendTracking.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;
|
|
1
|
+
{"version":3,"file":"spendTracking.d.ts","sourceRoot":"","sources":["../../src/providers/spendTracking.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;mBAKX,GAAG,YAAY,GAAG,UAAU,GAAG;;;;;;;;;;;;;;;CAkDrD,CAAC"}
|
|
@@ -3,50 +3,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.spendTrackingProvider = void 0;
|
|
4
4
|
const client_factory_1 = require("../client-factory");
|
|
5
5
|
/**
|
|
6
|
-
* Spend Tracking Provider — injects
|
|
6
|
+
* Spend Tracking Provider — injects per-token spending data and
|
|
7
7
|
* remaining budget into agent context.
|
|
8
8
|
*/
|
|
9
9
|
exports.spendTrackingProvider = {
|
|
10
10
|
name: "AGENT_SHIELD_SPEND_TRACKING",
|
|
11
|
-
description: "Provides
|
|
11
|
+
description: "Provides per-token spending data and remaining budget from the shield wrapper",
|
|
12
12
|
get: async (runtime, _message, _state) => {
|
|
13
13
|
try {
|
|
14
|
-
const {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const amount = BigInt(entry.amountSpent.toString());
|
|
26
|
-
totalSpent += amount;
|
|
27
|
-
const mint = entry.tokenMint.toBase58();
|
|
28
|
-
spendByToken.set(mint, (spendByToken.get(mint) || BigInt(0)) + amount);
|
|
29
|
-
}
|
|
14
|
+
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
15
|
+
const summary = wallet.getSpendingSummary();
|
|
16
|
+
const lines = [`AgentShield Spending:`];
|
|
17
|
+
for (const t of summary.tokens) {
|
|
18
|
+
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
19
|
+
const pct = t.limit > BigInt(0)
|
|
20
|
+
? Number((t.spent * BigInt(100)) / t.limit)
|
|
21
|
+
: 0;
|
|
22
|
+
const windowHrs = t.windowMs / 3600000;
|
|
23
|
+
lines.push(` ${label}: ${t.spent.toString()} / ${t.limit.toString()} (${pct}%, ${windowHrs}h window)`);
|
|
24
|
+
lines.push(` Remaining: ${t.remaining.toString()}`);
|
|
30
25
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const usagePct = cap > BigInt(0) ? Number((totalSpent * BigInt(100)) / cap) : 0;
|
|
34
|
-
const lines = [
|
|
35
|
-
`AgentShield Spending (24h rolling):`,
|
|
36
|
-
` Total Spent: ${totalSpent.toString()} / ${cap.toString()} lamports (${usagePct}%)`,
|
|
37
|
-
` Remaining Budget: ${remaining.toString()} lamports`,
|
|
38
|
-
];
|
|
39
|
-
for (const [mint, spent] of spendByToken.entries()) {
|
|
40
|
-
lines.push(` ${mint.slice(0, 8)}...: ${spent.toString()} lamports`);
|
|
26
|
+
if (summary.tokens.length === 0) {
|
|
27
|
+
lines.push(" No spending limits configured.");
|
|
41
28
|
}
|
|
42
29
|
const text = lines.join("\n");
|
|
30
|
+
// Compute aggregate values for context
|
|
31
|
+
const maxUsagePct = summary.tokens.reduce((max, t) => {
|
|
32
|
+
const pct = t.limit > BigInt(0)
|
|
33
|
+
? Number((t.spent * BigInt(100)) / t.limit)
|
|
34
|
+
: 0;
|
|
35
|
+
return Math.max(max, pct);
|
|
36
|
+
}, 0);
|
|
43
37
|
return {
|
|
44
38
|
text,
|
|
45
39
|
values: {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
usagePercent: usagePct.toString(),
|
|
40
|
+
tokenCount: summary.tokens.length.toString(),
|
|
41
|
+
maxUsagePercent: maxUsagePct.toString(),
|
|
42
|
+
isPaused: summary.isPaused.toString(),
|
|
50
43
|
},
|
|
51
44
|
};
|
|
52
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spendTracking.js","sourceRoot":"","sources":["../../src/providers/spendTracking.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"spendTracking.js","sourceRoot":"","sources":["../../src/providers/spendTracking.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAE9D;;;GAGG;AACU,QAAA,qBAAqB,GAAG;IACnC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,+EAA+E;IAEjF,GAAG,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,MAAW,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAE5C,MAAM,KAAK,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrD,MAAM,GAAG,GACP,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;oBACjB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAC3C,CAAC,CAAC,CAAC,CAAC;gBACR,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAS,CAAC;gBACzC,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,SAAS,WAAW,CAC5F,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9B,uCAAuC;YACvC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACnD,MAAM,GAAG,GACP,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;oBACjB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAC3C,CAAC,CAAC,CAAC,CAAC;gBACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE;oBACN,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC5C,eAAe,EAAE,WAAW,CAAC,QAAQ,EAAE;oBACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;iBACtC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,6CAA6C,KAAK,CAAC,OAAO,EAAE;gBAClE,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* into every agent conversation turn.
|
|
2
|
+
* Shield Status Provider — injects shield enforcement state and
|
|
3
|
+
* policy summary into every agent conversation turn.
|
|
4
4
|
*/
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const shieldStatusProvider: {
|
|
6
6
|
name: string;
|
|
7
7
|
description: string;
|
|
8
8
|
get: (runtime: any, _message: any, _state: any) => Promise<{
|
|
9
9
|
text: string;
|
|
10
10
|
values: {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
openPositions: string;
|
|
16
|
-
maxPositions: string;
|
|
11
|
+
walletAddress: string;
|
|
12
|
+
isPaused: string;
|
|
13
|
+
tokenCount: string;
|
|
14
|
+
rateLimitUsage: string;
|
|
17
15
|
};
|
|
18
16
|
} | {
|
|
19
17
|
text: string;
|
|
20
18
|
values: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
openPositions?: undefined;
|
|
26
|
-
maxPositions?: undefined;
|
|
19
|
+
walletAddress?: undefined;
|
|
20
|
+
isPaused?: undefined;
|
|
21
|
+
tokenCount?: undefined;
|
|
22
|
+
rateLimitUsage?: undefined;
|
|
27
23
|
};
|
|
28
24
|
}>;
|
|
29
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaultStatus.d.ts","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"vaultStatus.d.ts","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;mBAKV,GAAG,YAAY,GAAG,UAAU,GAAG;;;;;;;;;;;;;;;;;CAmCrD,CAAC"}
|
|
@@ -1,50 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.shieldStatusProvider = void 0;
|
|
4
4
|
const client_factory_1 = require("../client-factory");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* into every agent conversation turn.
|
|
6
|
+
* Shield Status Provider — injects shield enforcement state and
|
|
7
|
+
* policy summary into every agent conversation turn.
|
|
8
8
|
*/
|
|
9
|
-
exports.
|
|
10
|
-
name: "
|
|
11
|
-
description: "Provides current AgentShield
|
|
9
|
+
exports.shieldStatusProvider = {
|
|
10
|
+
name: "AGENT_SHIELD_STATUS",
|
|
11
|
+
description: "Provides current AgentShield enforcement state, wallet address, and pause status",
|
|
12
12
|
get: async (runtime, _message, _state) => {
|
|
13
13
|
try {
|
|
14
|
-
const {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const { wallet, publicKey } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
15
|
+
const paused = wallet.isPaused;
|
|
16
|
+
const summary = wallet.getSpendingSummary();
|
|
17
|
+
const tokenLines = summary.tokens.map((t) => {
|
|
18
|
+
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
19
|
+
return `${label}: ${t.spent.toString()} / ${t.limit.toString()}`;
|
|
20
|
+
});
|
|
21
21
|
const text = [
|
|
22
|
-
`AgentShield
|
|
23
|
-
`
|
|
24
|
-
`
|
|
25
|
-
`
|
|
26
|
-
`Daily Cap: ${policy.dailySpendingCap.toString()} lamports`,
|
|
27
|
-
`Max Tx Size: ${policy.maxTransactionSize.toString()} lamports`,
|
|
28
|
-
`Whitelisted: ${tokenCount} tokens, ${protocolCount} protocols`,
|
|
29
|
-
`Max Leverage: ${(policy.maxLeverageBps / 100).toFixed(1)}x`,
|
|
30
|
-
`Positions: ${vault.openPositions}/${policy.maxConcurrentPositions}`,
|
|
31
|
-
`Developer Fee Rate: ${(policy.developerFeeRate / 10000).toFixed(4)}%`,
|
|
22
|
+
`AgentShield: ${publicKey.toBase58()}`,
|
|
23
|
+
`Enforcement: ${paused ? "PAUSED" : "ACTIVE"}`,
|
|
24
|
+
`Spending: ${tokenLines.join(", ") || "no limits configured"}`,
|
|
25
|
+
`Rate limit: ${summary.rateLimit.count}/${summary.rateLimit.limit}`,
|
|
32
26
|
].join("\n");
|
|
33
27
|
return {
|
|
34
28
|
text,
|
|
35
29
|
values: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
openPositions: vault.openPositions.toString(),
|
|
41
|
-
maxPositions: policy.maxConcurrentPositions.toString(),
|
|
30
|
+
walletAddress: publicKey.toBase58(),
|
|
31
|
+
isPaused: paused.toString(),
|
|
32
|
+
tokenCount: summary.tokens.length.toString(),
|
|
33
|
+
rateLimitUsage: `${summary.rateLimit.count}/${summary.rateLimit.limit}`,
|
|
42
34
|
},
|
|
43
35
|
};
|
|
44
36
|
}
|
|
45
37
|
catch (error) {
|
|
46
38
|
return {
|
|
47
|
-
text: `AgentShield: Unable to fetch
|
|
39
|
+
text: `AgentShield: Unable to fetch status — ${error.message}`,
|
|
48
40
|
values: {},
|
|
49
41
|
};
|
|
50
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaultStatus.js","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"vaultStatus.js","sourceRoot":"","sources":["../../src/providers/vaultStatus.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAE9D;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,kFAAkF;IAEpF,GAAG,EAAE,KAAK,EAAE,OAAY,EAAE,QAAa,EAAE,MAAW,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrD,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,gBAAgB,SAAS,CAAC,QAAQ,EAAE,EAAE;gBACtC,gBAAgB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC9C,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE;gBAC9D,eAAe,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE;aACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE;oBACN,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE;oBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAC3B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC5C,cAAc,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE;iBACxE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,yCAAyC,KAAK,CAAC,OAAO,EAAE;gBAC9D,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,22 +3,18 @@
|
|
|
3
3
|
* Configure these in your ElizaOS `.env` or character settings.
|
|
4
4
|
*/
|
|
5
5
|
export declare const ENV_KEYS: {
|
|
6
|
-
/**
|
|
7
|
-
readonly
|
|
8
|
-
/**
|
|
9
|
-
readonly
|
|
10
|
-
/** Optional AgentShield program ID override */
|
|
11
|
-
readonly PROGRAM_ID: "AGENT_SHIELD_PROGRAM_ID";
|
|
6
|
+
/** Spending limit, e.g. "500 USDC/day" */
|
|
7
|
+
readonly MAX_SPEND: "AGENT_SHIELD_MAX_SPEND";
|
|
8
|
+
/** Block unknown programs: "true" or "false" (default: true) */
|
|
9
|
+
readonly BLOCK_UNKNOWN: "AGENT_SHIELD_BLOCK_UNKNOWN";
|
|
12
10
|
/** Solana RPC URL */
|
|
13
11
|
readonly RPC_URL: "SOLANA_RPC_URL";
|
|
14
12
|
/** Solana wallet private key (base58 or JSON array) */
|
|
15
13
|
readonly WALLET_PRIVATE_KEY: "SOLANA_WALLET_PRIVATE_KEY";
|
|
16
14
|
};
|
|
17
15
|
export interface AgentShieldElizaConfig {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
programId?: string;
|
|
21
|
-
rpcUrl: string;
|
|
16
|
+
maxSpend?: string;
|
|
17
|
+
blockUnknown: boolean;
|
|
22
18
|
walletPrivateKey: string;
|
|
23
19
|
}
|
|
24
20
|
//# 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;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,0CAA0C;;IAE1C,gEAAgE;;IAEhE,qBAAqB;;IAErB,uDAAuD;;CAE/C,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
|
package/dist/types.js
CHANGED
|
@@ -6,12 +6,10 @@ exports.ENV_KEYS = void 0;
|
|
|
6
6
|
* Configure these in your ElizaOS `.env` or character settings.
|
|
7
7
|
*/
|
|
8
8
|
exports.ENV_KEYS = {
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
/** Optional AgentShield program ID override */
|
|
14
|
-
PROGRAM_ID: "AGENT_SHIELD_PROGRAM_ID",
|
|
9
|
+
/** Spending limit, e.g. "500 USDC/day" */
|
|
10
|
+
MAX_SPEND: "AGENT_SHIELD_MAX_SPEND",
|
|
11
|
+
/** Block unknown programs: "true" or "false" (default: true) */
|
|
12
|
+
BLOCK_UNKNOWN: "AGENT_SHIELD_BLOCK_UNKNOWN",
|
|
15
13
|
/** Solana RPC URL */
|
|
16
14
|
RPC_URL: "SOLANA_RPC_URL",
|
|
17
15
|
/** Solana wallet private key (base58 or JSON array) */
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,0CAA0C;IAC1C,SAAS,EAAE,wBAAwB;IACnC,gEAAgE;IAChE,aAAa,EAAE,4BAA4B;IAC3C,qBAAqB;IACrB,OAAO,EAAE,gBAAgB;IACzB,uDAAuD;IACvD,kBAAkB,EAAE,2BAA2B;CACvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-shield/plugin-elizaos",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AgentShield plugin for ElizaOS —
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "AgentShield plugin for ElizaOS — shield() wrapper actions, providers, and policy evaluators",
|
|
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,16 +16,19 @@
|
|
|
15
16
|
],
|
|
16
17
|
"peerDependencies": {
|
|
17
18
|
"@elizaos/core": ">=0.1.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
|
-
"typescript": "^5.3.
|
|
23
|
+
"typescript": "^5.3.3",
|
|
24
24
|
"@elizaos/core": "^0.1.0",
|
|
25
|
-
"@agent-shield/
|
|
25
|
+
"@agent-shield/solana": "workspace:*",
|
|
26
26
|
"@solana/web3.js": "^1.95.0",
|
|
27
|
-
"@
|
|
27
|
+
"@types/chai": "^4.3.11",
|
|
28
|
+
"@types/mocha": "^10.0.6",
|
|
29
|
+
"chai": "^4.4.1",
|
|
30
|
+
"mocha": "^10.3.0",
|
|
31
|
+
"ts-node": "^10.9.2"
|
|
28
32
|
},
|
|
29
33
|
"license": "MIT",
|
|
30
34
|
"repository": {
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare const closePositionAction: {
|
|
2
|
-
name: string;
|
|
3
|
-
description: string;
|
|
4
|
-
similes: string[];
|
|
5
|
-
validate: (runtime: any, message: any) => Promise<boolean>;
|
|
6
|
-
handler: (runtime: any, message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
|
|
7
|
-
examples: ({
|
|
8
|
-
user: string;
|
|
9
|
-
content: {
|
|
10
|
-
text: string;
|
|
11
|
-
targetSymbol: string;
|
|
12
|
-
collateralSymbol: string;
|
|
13
|
-
collateralAmount: string;
|
|
14
|
-
side: string;
|
|
15
|
-
};
|
|
16
|
-
} | {
|
|
17
|
-
user: string;
|
|
18
|
-
content: {
|
|
19
|
-
text: string;
|
|
20
|
-
targetSymbol?: undefined;
|
|
21
|
-
collateralSymbol?: undefined;
|
|
22
|
-
collateralAmount?: undefined;
|
|
23
|
-
side?: undefined;
|
|
24
|
-
};
|
|
25
|
-
})[][];
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=closePosition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"closePosition.d.ts","sourceRoot":"","sources":["../../src/actions/closePosition.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;;;;wBAYJ,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAanD,GAAG,WACH,GAAG,UACJ,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;CAgEpC,CAAC"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.closePositionAction = void 0;
|
|
4
|
-
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
|
-
const client_factory_1 = require("../client-factory");
|
|
6
|
-
exports.closePositionAction = {
|
|
7
|
-
name: "SHIELD_CLOSE_POSITION",
|
|
8
|
-
description: "Close an existing perpetual position on Flash Trade through the AgentShield vault.",
|
|
9
|
-
similes: [
|
|
10
|
-
"close my position",
|
|
11
|
-
"close the long",
|
|
12
|
-
"close the short",
|
|
13
|
-
"exit position through shield",
|
|
14
|
-
"close leveraged trade",
|
|
15
|
-
],
|
|
16
|
-
validate: async (runtime, message) => {
|
|
17
|
-
try {
|
|
18
|
-
(0, client_factory_1.getOrCreateClient)(runtime);
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
const text = (message.content?.text || "").toLowerCase();
|
|
24
|
-
const keywords = ["close position", "close long", "close short", "exit position"];
|
|
25
|
-
return keywords.some((kw) => text.includes(kw));
|
|
26
|
-
},
|
|
27
|
-
handler: async (runtime, message, _state, _options, callback) => {
|
|
28
|
-
try {
|
|
29
|
-
const { client, vaultOwner, vaultId, agentKey } = (0, client_factory_1.getOrCreateClient)(runtime);
|
|
30
|
-
const params = message.content;
|
|
31
|
-
if (!params.targetSymbol || !params.collateralSymbol || !params.collateralAmount || !params.side) {
|
|
32
|
-
callback({
|
|
33
|
-
text: "Missing required fields: targetSymbol, collateralSymbol, collateralAmount, and side are required.",
|
|
34
|
-
error: true,
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const sideObj = params.side === "long" ? { long: {} } : { short: {} };
|
|
39
|
-
const result = await client.flashTradeClose({
|
|
40
|
-
owner: vaultOwner,
|
|
41
|
-
vaultId,
|
|
42
|
-
agent: agentKey,
|
|
43
|
-
targetSymbol: params.targetSymbol,
|
|
44
|
-
collateralSymbol: params.collateralSymbol,
|
|
45
|
-
collateralAmount: new anchor_1.BN(params.collateralAmount),
|
|
46
|
-
side: sideObj,
|
|
47
|
-
priceWithSlippage: {
|
|
48
|
-
price: new anchor_1.BN(params.price || "0"),
|
|
49
|
-
exponent: params.priceExponent || -8,
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
const txSig = await client.executeFlashTrade(result, agentKey);
|
|
53
|
-
callback({
|
|
54
|
-
text: `Position closed through AgentShield vault.\nSide: ${params.side}\nTarget: ${params.targetSymbol}\nTransaction: ${txSig}`,
|
|
55
|
-
data: { txSig },
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
callback({
|
|
60
|
-
text: `Close position failed: ${error.message}`,
|
|
61
|
-
error: true,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
examples: [
|
|
66
|
-
[
|
|
67
|
-
{
|
|
68
|
-
user: "{{user1}}",
|
|
69
|
-
content: {
|
|
70
|
-
text: "Close my long SOL position",
|
|
71
|
-
targetSymbol: "SOL",
|
|
72
|
-
collateralSymbol: "USDC",
|
|
73
|
-
collateralAmount: "100000000",
|
|
74
|
-
side: "long",
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
user: "{{agent}}",
|
|
79
|
-
content: {
|
|
80
|
-
text: "Position closed through AgentShield vault.\nSide: long\nTarget: SOL\nTransaction: 7dEf...",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
],
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=closePosition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"closePosition.js","sourceRoot":"","sources":["../../src/actions/closePosition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export declare const openPositionAction: {
|
|
2
|
-
name: string;
|
|
3
|
-
description: string;
|
|
4
|
-
similes: string[];
|
|
5
|
-
validate: (runtime: any, message: any) => Promise<boolean>;
|
|
6
|
-
handler: (runtime: any, message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
|
|
7
|
-
examples: ({
|
|
8
|
-
user: string;
|
|
9
|
-
content: {
|
|
10
|
-
text: string;
|
|
11
|
-
targetSymbol: string;
|
|
12
|
-
collateralSymbol: string;
|
|
13
|
-
collateralAmount: string;
|
|
14
|
-
sizeAmount: string;
|
|
15
|
-
side: string;
|
|
16
|
-
leverageBps: number;
|
|
17
|
-
};
|
|
18
|
-
} | {
|
|
19
|
-
user: string;
|
|
20
|
-
content: {
|
|
21
|
-
text: string;
|
|
22
|
-
targetSymbol?: undefined;
|
|
23
|
-
collateralSymbol?: undefined;
|
|
24
|
-
collateralAmount?: undefined;
|
|
25
|
-
sizeAmount?: undefined;
|
|
26
|
-
side?: undefined;
|
|
27
|
-
leverageBps?: undefined;
|
|
28
|
-
};
|
|
29
|
-
})[][];
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=openPosition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openPosition.d.ts","sourceRoot":"","sources":["../../src/actions/openPosition.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;wBAaH,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAanD,GAAG,WACH,GAAG,UACJ,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;CAoEpC,CAAC"}
|