@agent-shield/plugin-elizaos 0.3.0 → 0.3.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/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +3 -1
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/pauseResume.js +2 -2
- package/dist/actions/pauseResume.js.map +1 -1
- package/dist/actions/provision.d.ts +21 -0
- package/dist/actions/provision.d.ts.map +1 -0
- package/dist/actions/provision.js +98 -0
- package/dist/actions/provision.js.map +1 -0
- package/dist/actions/status.d.ts.map +1 -1
- package/dist/actions/status.js +3 -5
- package/dist/actions/status.js.map +1 -1
- package/dist/actions/transactionHistory.d.ts.map +1 -1
- package/dist/actions/transactionHistory.js +3 -5
- package/dist/actions/transactionHistory.js.map +1 -1
- package/dist/actions/updatePolicy.js +2 -2
- package/dist/actions/updatePolicy.js.map +1 -1
- package/dist/client-factory.d.ts +7 -2
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +76 -11
- package/dist/client-factory.js.map +1 -1
- package/dist/evaluators/policyCheck.js +1 -1
- package/dist/evaluators/policyCheck.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +1 -0
- package/dist/plugin.js.map +1 -1
- package/dist/providers/spendTracking.d.ts.map +1 -1
- package/dist/providers/spendTracking.js +3 -7
- package/dist/providers/spendTracking.js.map +1 -1
- package/dist/providers/vaultStatus.js +1 -1
- package/dist/providers/vaultStatus.js.map +1 -1
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -2
package/dist/actions/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { statusAction } from "./status";
|
|
|
2
2
|
export { updatePolicyAction } from "./updatePolicy";
|
|
3
3
|
export { pauseResumeAction } from "./pauseResume";
|
|
4
4
|
export { transactionHistoryAction } from "./transactionHistory";
|
|
5
|
+
export { provisionAction } from "./provision";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/actions/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transactionHistoryAction = exports.pauseResumeAction = exports.updatePolicyAction = exports.statusAction = void 0;
|
|
3
|
+
exports.provisionAction = exports.transactionHistoryAction = exports.pauseResumeAction = exports.updatePolicyAction = exports.statusAction = void 0;
|
|
4
4
|
var status_1 = require("./status");
|
|
5
5
|
Object.defineProperty(exports, "statusAction", { enumerable: true, get: function () { return status_1.statusAction; } });
|
|
6
6
|
var updatePolicy_1 = require("./updatePolicy");
|
|
@@ -9,4 +9,6 @@ var pauseResume_1 = require("./pauseResume");
|
|
|
9
9
|
Object.defineProperty(exports, "pauseResumeAction", { enumerable: true, get: function () { return pauseResume_1.pauseResumeAction; } });
|
|
10
10
|
var transactionHistory_1 = require("./transactionHistory");
|
|
11
11
|
Object.defineProperty(exports, "transactionHistoryAction", { enumerable: true, get: function () { return transactionHistory_1.transactionHistoryAction; } });
|
|
12
|
+
var provision_1 = require("./provision");
|
|
13
|
+
Object.defineProperty(exports, "provisionAction", { enumerable: true, get: function () { return provision_1.provisionAction; } });
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA;AAC1B,2DAAgE;AAAvD,8HAAA,wBAAwB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA;AAC1B,2DAAgE;AAAvD,8HAAA,wBAAwB,OAAA;AACjC,yCAA8C;AAArC,4GAAA,eAAe,OAAA"}
|
|
@@ -16,7 +16,7 @@ exports.pauseResumeAction = {
|
|
|
16
16
|
],
|
|
17
17
|
validate: async (runtime, message) => {
|
|
18
18
|
try {
|
|
19
|
-
(0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
19
|
+
await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
20
20
|
}
|
|
21
21
|
catch {
|
|
22
22
|
return false;
|
|
@@ -34,7 +34,7 @@ exports.pauseResumeAction = {
|
|
|
34
34
|
},
|
|
35
35
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
36
36
|
try {
|
|
37
|
-
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
37
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
38
38
|
const text = (message.content?.text || "").toLowerCase();
|
|
39
39
|
// Determine intent from message text
|
|
40
40
|
const resumeKeywords = ["resume", "enable", "unpause", "activate"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pauseResume.js","sourceRoot":"","sources":["../../src/actions/pauseResume.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAEjD,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,qEAAqE;QACrE,wDAAwD;IAC1D,OAAO,EAAE;QACP,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,oBAAoB;QACpB,gBAAgB;QAChB,eAAe;KAChB;IAED,QAAQ,EAAE,KAAK,EAAE,OAAY,EAAE,OAAY,EAAoB,EAAE;QAC/D,IAAI,CAAC;YACH,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pauseResume.js","sourceRoot":"","sources":["../../src/actions/pauseResume.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAEjD,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,qEAAqE;QACrE,wDAAwD;IAC1D,OAAO,EAAE;QACP,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,oBAAoB;QACpB,gBAAgB;QAChB,eAAe;KAChB;IAED,QAAQ,EAAE,KAAK,EAAE,OAAY,EAAE,OAAY,EAAoB,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;QAC3C,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,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,oBAAoB;YACpB,gBAAgB;YAChB,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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzD,qCAAqC;YACrC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,QAAQ,CAAC;oBACP,IAAI,EAAE,uDAAuD;iBAC9D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC;oBACP,IAAI,EAAE,kFAAkF;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,QAAQ,CAAC;gBACP,IAAI,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE;gBACvD,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ,EAAE;QACR;YACE;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;aAClD;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,kFAAkF;iBACzF;aACF;SACF;QACD;YACE;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;aAC/C;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,uDAAuD;iBAC9D;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SHIELD_PROVISION action for ElizaOS.
|
|
3
|
+
*
|
|
4
|
+
* Generates a Solana Action URL for one-click vault provisioning.
|
|
5
|
+
* The user clicks the link (blink or Action URL) to approve vault creation
|
|
6
|
+
* with a TEE-backed agent wallet.
|
|
7
|
+
*/
|
|
8
|
+
export declare const provisionAction: {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
similes: string[];
|
|
12
|
+
validate: (_runtime: any, message: any) => Promise<boolean>;
|
|
13
|
+
handler: (runtime: any, _message: any, _state: any, _options: any, callback: (response: any) => void) => Promise<void>;
|
|
14
|
+
examples: {
|
|
15
|
+
user: string;
|
|
16
|
+
content: {
|
|
17
|
+
text: string;
|
|
18
|
+
};
|
|
19
|
+
}[][];
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=provision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../src/actions/provision.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe;;;;yBAeC,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAepD,GAAG,YACF,GAAG,UACL,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;CAwEpC,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SHIELD_PROVISION action for ElizaOS.
|
|
4
|
+
*
|
|
5
|
+
* Generates a Solana Action URL for one-click vault provisioning.
|
|
6
|
+
* The user clicks the link (blink or Action URL) to approve vault creation
|
|
7
|
+
* with a TEE-backed agent wallet.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.provisionAction = void 0;
|
|
11
|
+
exports.provisionAction = {
|
|
12
|
+
name: "SHIELD_PROVISION",
|
|
13
|
+
description: "Request a protected vault with a TEE-backed agent wallet. " +
|
|
14
|
+
"Generates a Solana Action URL for the user to approve.",
|
|
15
|
+
similes: [
|
|
16
|
+
"provision wallet",
|
|
17
|
+
"create vault",
|
|
18
|
+
"need a wallet",
|
|
19
|
+
"setup trading",
|
|
20
|
+
"get agent wallet",
|
|
21
|
+
"shield provision",
|
|
22
|
+
"create protected wallet",
|
|
23
|
+
],
|
|
24
|
+
validate: async (_runtime, message) => {
|
|
25
|
+
const text = (message.content?.text || "").toLowerCase();
|
|
26
|
+
const keywords = [
|
|
27
|
+
"provision",
|
|
28
|
+
"create vault",
|
|
29
|
+
"need a wallet",
|
|
30
|
+
"setup trading",
|
|
31
|
+
"agent wallet",
|
|
32
|
+
"protected wallet",
|
|
33
|
+
"shield provision",
|
|
34
|
+
];
|
|
35
|
+
return keywords.some((kw) => text.includes(kw));
|
|
36
|
+
},
|
|
37
|
+
handler: async (runtime, _message, _state, _options, callback) => {
|
|
38
|
+
try {
|
|
39
|
+
const platformUrl = runtime.getSetting?.("AGENT_SHIELD_PLATFORM_URL") ||
|
|
40
|
+
process.env.AGENT_SHIELD_PLATFORM_URL ||
|
|
41
|
+
"https://app.agentshield.dev";
|
|
42
|
+
const template = runtime.getSetting?.("AGENT_SHIELD_DEFAULT_TEMPLATE") ||
|
|
43
|
+
process.env.AGENT_SHIELD_DEFAULT_TEMPLATE ||
|
|
44
|
+
"conservative";
|
|
45
|
+
const dailyCapStr = runtime.getSetting?.("AGENT_SHIELD_DAILY_CAP") ||
|
|
46
|
+
process.env.AGENT_SHIELD_DAILY_CAP;
|
|
47
|
+
const dailyCap = dailyCapStr ? parseInt(dailyCapStr, 10) : undefined;
|
|
48
|
+
const baseUrl = platformUrl.replace(/\/$/, "");
|
|
49
|
+
const params = new URLSearchParams();
|
|
50
|
+
params.set("template", template);
|
|
51
|
+
if (dailyCap) {
|
|
52
|
+
params.set("dailyCap", dailyCap.toString());
|
|
53
|
+
}
|
|
54
|
+
const actionUrl = `${baseUrl}/api/actions/provision?${params.toString()}`;
|
|
55
|
+
const blinkUrl = `https://dial.to/?action=solana-action:${encodeURIComponent(actionUrl)}`;
|
|
56
|
+
const capDisplay = dailyCap ||
|
|
57
|
+
{
|
|
58
|
+
conservative: 500,
|
|
59
|
+
moderate: 2000,
|
|
60
|
+
aggressive: 10000,
|
|
61
|
+
}[template] ||
|
|
62
|
+
500;
|
|
63
|
+
const lines = [
|
|
64
|
+
"I need a protected wallet to trade. Please approve the vault creation:",
|
|
65
|
+
"",
|
|
66
|
+
`**Policy:** ${template} (${capDisplay} USDC/day cap)`,
|
|
67
|
+
"",
|
|
68
|
+
`**Blink URL:** ${blinkUrl}`,
|
|
69
|
+
`**Action URL:** ${actionUrl}`,
|
|
70
|
+
"",
|
|
71
|
+
"Click the link above to approve. You'll sign ONE transaction that creates",
|
|
72
|
+
"the vault and registers a TEE-backed agent wallet — all-or-nothing.",
|
|
73
|
+
];
|
|
74
|
+
callback({ text: lines.join("\n") });
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
callback({
|
|
78
|
+
text: `Failed to generate provision URL: ${error.message}`,
|
|
79
|
+
error: true,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
examples: [
|
|
84
|
+
[
|
|
85
|
+
{
|
|
86
|
+
user: "{{user1}}",
|
|
87
|
+
content: { text: "I need you to set up a protected trading wallet" },
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
user: "{{agent}}",
|
|
91
|
+
content: {
|
|
92
|
+
text: "I need a protected wallet to trade. Please approve the vault creation:\n\n**Policy:** conservative (500 USDC/day cap)\n\n**Blink URL:** https://dial.to/?action=solana-action:...\n**Action URL:** https://app.agentshield.dev/api/actions/provision?template=conservative",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
],
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=provision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/actions/provision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/actions/status.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;wBAYG,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAmBnD,GAAG,YACF,GAAG,UACL,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/actions/status.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;wBAYG,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAmBnD,GAAG,YACF,GAAG,UACL,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;CAkDpC,CAAC"}
|
package/dist/actions/status.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.statusAction = {
|
|
|
14
14
|
],
|
|
15
15
|
validate: async (runtime, message) => {
|
|
16
16
|
try {
|
|
17
|
-
(0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
17
|
+
await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
18
18
|
}
|
|
19
19
|
catch {
|
|
20
20
|
return false;
|
|
@@ -31,7 +31,7 @@ exports.statusAction = {
|
|
|
31
31
|
},
|
|
32
32
|
handler: async (runtime, _message, _state, _options, callback) => {
|
|
33
33
|
try {
|
|
34
|
-
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
34
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
35
35
|
const summary = wallet.getSpendingSummary();
|
|
36
36
|
const lines = [
|
|
37
37
|
`=== AgentShield Status ===`,
|
|
@@ -40,9 +40,7 @@ exports.statusAction = {
|
|
|
40
40
|
];
|
|
41
41
|
for (const t of summary.tokens) {
|
|
42
42
|
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
43
|
-
const pct = t.limit > BigInt(0)
|
|
44
|
-
? Number((t.spent * BigInt(100)) / t.limit)
|
|
45
|
-
: 0;
|
|
43
|
+
const pct = t.limit > BigInt(0) ? Number((t.spent * BigInt(100)) / t.limit) : 0;
|
|
46
44
|
lines.push(`${label}: ${t.spent.toString()} / ${t.limit.toString()} (${pct}% used)`);
|
|
47
45
|
lines.push(` Remaining: ${t.remaining.toString()}`);
|
|
48
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/actions/status.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAEjD,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,qFAAqF;IACvF,OAAO,EAAE;QACP,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;KAClB;IAED,QAAQ,EAAE,KAAK,EAAE,OAAY,EAAE,OAAY,EAAoB,EAAE;QAC/D,IAAI,CAAC;YACH,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/actions/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionHistory.d.ts","sourceRoot":"","sources":["../../src/actions/transactionHistory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;wBAaT,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAmBnD,GAAG,YACF,GAAG,UACL,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;
|
|
1
|
+
{"version":3,"file":"transactionHistory.d.ts","sourceRoot":"","sources":["../../src/actions/transactionHistory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;wBAaT,GAAG,WAAW,GAAG,KAAG,OAAO,CAAC,OAAO,CAAC;uBAmBnD,GAAG,YACF,GAAG,UACL,GAAG,YACD,GAAG,YACH,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI;;;;;;;CA8DpC,CAAC"}
|
|
@@ -15,7 +15,7 @@ exports.transactionHistoryAction = {
|
|
|
15
15
|
],
|
|
16
16
|
validate: async (runtime, message) => {
|
|
17
17
|
try {
|
|
18
|
-
(0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
18
|
+
await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
21
21
|
return false;
|
|
@@ -32,7 +32,7 @@ exports.transactionHistoryAction = {
|
|
|
32
32
|
},
|
|
33
33
|
handler: async (runtime, _message, _state, _options, callback) => {
|
|
34
34
|
try {
|
|
35
|
-
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
35
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
36
36
|
const summary = wallet.getSpendingSummary();
|
|
37
37
|
const lines = [
|
|
38
38
|
`=== AgentShield Transaction History ===`,
|
|
@@ -46,9 +46,7 @@ exports.transactionHistoryAction = {
|
|
|
46
46
|
else {
|
|
47
47
|
for (const t of summary.tokens) {
|
|
48
48
|
const label = t.symbol ?? t.mint.slice(0, 8) + "...";
|
|
49
|
-
const pct = t.limit > BigInt(0)
|
|
50
|
-
? Number((t.spent * BigInt(100)) / t.limit)
|
|
51
|
-
: 0;
|
|
49
|
+
const pct = t.limit > BigInt(0) ? Number((t.spent * BigInt(100)) / t.limit) : 0;
|
|
52
50
|
const windowHrs = t.windowMs / 3600000;
|
|
53
51
|
lines.push(` ${label}:`);
|
|
54
52
|
lines.push(` Spent: ${t.spent.toString()} / ${t.limit.toString()}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionHistory.js","sourceRoot":"","sources":["../../src/actions/transactionHistory.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAEjD,QAAA,wBAAwB,GAAG;IACtC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EACT,iEAAiE;QACjE,oCAAoC;IACtC,OAAO,EAAE;QACP,qBAAqB;QACrB,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,cAAc;KACf;IAED,QAAQ,EAAE,KAAK,EAAE,OAAY,EAAE,OAAY,EAAoB,EAAE;QAC/D,IAAI,CAAC;YACH,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionHistory.js","sourceRoot":"","sources":["../../src/actions/transactionHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ exports.updatePolicyAction = {
|
|
|
14
14
|
],
|
|
15
15
|
validate: async (runtime, message) => {
|
|
16
16
|
try {
|
|
17
|
-
(0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
17
|
+
await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
18
18
|
}
|
|
19
19
|
catch {
|
|
20
20
|
return false;
|
|
@@ -31,7 +31,7 @@ exports.updatePolicyAction = {
|
|
|
31
31
|
},
|
|
32
32
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
33
33
|
try {
|
|
34
|
-
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
34
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
35
35
|
const params = message.content;
|
|
36
36
|
const newPolicies = {};
|
|
37
37
|
const changes = [];
|
|
@@ -1 +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;
|
|
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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;QAC3C,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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAC5D,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"}
|
package/dist/client-factory.d.ts
CHANGED
|
@@ -3,14 +3,19 @@ import type { ShieldedWallet } from "@agent-shield/solana";
|
|
|
3
3
|
import { AgentShieldElizaConfig } from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* Reads AgentShield config from ElizaOS runtime settings.
|
|
6
|
+
* Supports both raw keypair and TEE custody provider paths.
|
|
6
7
|
*/
|
|
7
8
|
export declare function getConfig(runtime: any): AgentShieldElizaConfig;
|
|
8
9
|
/**
|
|
9
10
|
* Gets or creates a ShieldedWallet for the given ElizaOS runtime.
|
|
10
11
|
* Cached per runtime instance via WeakMap.
|
|
12
|
+
*
|
|
13
|
+
* Supports two paths:
|
|
14
|
+
* 1. TEE custody: AGENT_SHIELD_CUSTODY=crossmint → uses Crossmint TEE adapter
|
|
15
|
+
* 2. Raw keypair: SOLANA_WALLET_PRIVATE_KEY → wraps local keypair (legacy)
|
|
11
16
|
*/
|
|
12
|
-
export declare function getOrCreateShieldedWallet(runtime: any): {
|
|
17
|
+
export declare function getOrCreateShieldedWallet(runtime: any): Promise<{
|
|
13
18
|
wallet: ShieldedWallet;
|
|
14
19
|
publicKey: PublicKey;
|
|
15
|
-
}
|
|
20
|
+
}>;
|
|
16
21
|
//# 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,EAEL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAY,sBAAsB,
|
|
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,EAAmB,MAAM,SAAS,CAAC;AAyB5E;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,sBAAsB,CAsC9D;AAmED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IACrE,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,CAuDD"}
|
package/dist/client-factory.js
CHANGED
|
@@ -24,20 +24,35 @@ class KeypairWallet {
|
|
|
24
24
|
const walletCache = new WeakMap();
|
|
25
25
|
/**
|
|
26
26
|
* Reads AgentShield config from ElizaOS runtime settings.
|
|
27
|
+
* Supports both raw keypair and TEE custody provider paths.
|
|
27
28
|
*/
|
|
28
29
|
function getConfig(runtime) {
|
|
29
|
-
const get = (key) => {
|
|
30
|
-
const val = runtime.getSetting(key);
|
|
31
|
-
if (!val)
|
|
32
|
-
throw new Error(`AgentShield: missing required setting '${key}'`);
|
|
33
|
-
return val;
|
|
34
|
-
};
|
|
35
30
|
const blockRaw = runtime.getSetting(types_1.ENV_KEYS.BLOCK_UNKNOWN);
|
|
36
31
|
const blockUnknown = blockRaw !== "false";
|
|
32
|
+
const custodyRaw = runtime.getSetting(types_1.ENV_KEYS.CUSTODY_PROVIDER);
|
|
33
|
+
const custodyProvider = custodyRaw
|
|
34
|
+
? custodyRaw
|
|
35
|
+
: undefined;
|
|
36
|
+
if (custodyProvider) {
|
|
37
|
+
// TEE custody path — no raw private key needed
|
|
38
|
+
return {
|
|
39
|
+
maxSpend: runtime.getSetting(types_1.ENV_KEYS.MAX_SPEND) || undefined,
|
|
40
|
+
blockUnknown,
|
|
41
|
+
custodyProvider,
|
|
42
|
+
crossmintApiKey: runtime.getSetting(types_1.ENV_KEYS.CROSSMINT_API_KEY) || undefined,
|
|
43
|
+
crossmintLocator: runtime.getSetting(types_1.ENV_KEYS.CROSSMINT_LOCATOR) || undefined,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Legacy path — raw private key
|
|
47
|
+
const walletPrivateKey = runtime.getSetting(types_1.ENV_KEYS.WALLET_PRIVATE_KEY);
|
|
48
|
+
if (!walletPrivateKey) {
|
|
49
|
+
throw new Error(`AgentShield: either set '${types_1.ENV_KEYS.CUSTODY_PROVIDER}' to a custody provider ` +
|
|
50
|
+
`(crossmint, turnkey, privy) or provide '${types_1.ENV_KEYS.WALLET_PRIVATE_KEY}'.`);
|
|
51
|
+
}
|
|
37
52
|
return {
|
|
38
53
|
maxSpend: runtime.getSetting(types_1.ENV_KEYS.MAX_SPEND) || undefined,
|
|
39
54
|
blockUnknown,
|
|
40
|
-
walletPrivateKey
|
|
55
|
+
walletPrivateKey,
|
|
41
56
|
};
|
|
42
57
|
}
|
|
43
58
|
/**
|
|
@@ -56,18 +71,68 @@ function parseKeypair(raw) {
|
|
|
56
71
|
const bs58 = require("bs58");
|
|
57
72
|
return web3_js_1.Keypair.fromSecretKey(bs58.decode(raw));
|
|
58
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a WalletLike from a TEE custody provider.
|
|
76
|
+
* Dynamically imports the provider adapter to avoid hard dependencies.
|
|
77
|
+
*/
|
|
78
|
+
async function createCustodyWallet(config) {
|
|
79
|
+
switch (config.custodyProvider) {
|
|
80
|
+
case "crossmint": {
|
|
81
|
+
if (!config.crossmintApiKey) {
|
|
82
|
+
throw new Error(`AgentShield: '${types_1.ENV_KEYS.CROSSMINT_API_KEY}' is required when ` +
|
|
83
|
+
`'${types_1.ENV_KEYS.CUSTODY_PROVIDER}' is set to 'crossmint'.`);
|
|
84
|
+
}
|
|
85
|
+
// Dynamic require to avoid hard dependency on custody adapter.
|
|
86
|
+
// The package is optional — only needed when AGENT_SHIELD_CUSTODY=crossmint.
|
|
87
|
+
let mod;
|
|
88
|
+
try {
|
|
89
|
+
mod = require("@agent-shield/custody-crossmint");
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
throw new Error("AgentShield: @agent-shield/custody-crossmint is not installed. " +
|
|
93
|
+
"Run: npm install @agent-shield/custody-crossmint");
|
|
94
|
+
}
|
|
95
|
+
return mod.crossmint({
|
|
96
|
+
apiKey: config.crossmintApiKey,
|
|
97
|
+
locator: config.crossmintLocator,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
case "turnkey":
|
|
101
|
+
throw new Error("AgentShield: Turnkey custody adapter is not yet available. " +
|
|
102
|
+
"Install @agent-shield/custody-turnkey when released.");
|
|
103
|
+
case "privy":
|
|
104
|
+
throw new Error("AgentShield: Privy custody adapter is not yet available. " +
|
|
105
|
+
"Install @agent-shield/custody-privy when released.");
|
|
106
|
+
default:
|
|
107
|
+
throw new Error(`AgentShield: unknown custody provider '${config.custodyProvider}'. ` +
|
|
108
|
+
"Supported: crossmint, turnkey, privy.");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
59
111
|
/**
|
|
60
112
|
* Gets or creates a ShieldedWallet for the given ElizaOS runtime.
|
|
61
113
|
* Cached per runtime instance via WeakMap.
|
|
114
|
+
*
|
|
115
|
+
* Supports two paths:
|
|
116
|
+
* 1. TEE custody: AGENT_SHIELD_CUSTODY=crossmint → uses Crossmint TEE adapter
|
|
117
|
+
* 2. Raw keypair: SOLANA_WALLET_PRIVATE_KEY → wraps local keypair (legacy)
|
|
62
118
|
*/
|
|
63
|
-
function getOrCreateShieldedWallet(runtime) {
|
|
119
|
+
async function getOrCreateShieldedWallet(runtime) {
|
|
64
120
|
const cached = walletCache.get(runtime);
|
|
65
121
|
if (cached)
|
|
66
122
|
return cached;
|
|
67
123
|
const config = getConfig(runtime);
|
|
68
|
-
const keypair = parseKeypair(config.walletPrivateKey);
|
|
69
|
-
const innerWallet = new KeypairWallet(keypair);
|
|
70
124
|
const logger = runtime.logger ?? console;
|
|
125
|
+
let innerWallet;
|
|
126
|
+
if (config.custodyProvider) {
|
|
127
|
+
// Level 2: TEE custody — private key never leaves the enclave
|
|
128
|
+
(logger.info ?? console.info)(`[AgentShield] Using TEE custody provider: ${config.custodyProvider}`);
|
|
129
|
+
innerWallet = await createCustodyWallet(config);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// Legacy: raw keypair in memory
|
|
133
|
+
const keypair = parseKeypair(config.walletPrivateKey);
|
|
134
|
+
innerWallet = new KeypairWallet(keypair);
|
|
135
|
+
}
|
|
71
136
|
const shielded = (0, solana_1.shield)(innerWallet, {
|
|
72
137
|
maxSpend: config.maxSpend,
|
|
73
138
|
blockUnknownPrograms: config.blockUnknown,
|
|
@@ -88,7 +153,7 @@ function getOrCreateShieldedWallet(runtime) {
|
|
|
88
153
|
(logger.info ?? console.info)("[AgentShield] Policies updated");
|
|
89
154
|
},
|
|
90
155
|
});
|
|
91
|
-
const result = { wallet: shielded, publicKey:
|
|
156
|
+
const result = { wallet: shielded, publicKey: innerWallet.publicKey };
|
|
92
157
|
walletCache.set(runtime, result);
|
|
93
158
|
return result;
|
|
94
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ exports.policyCheckEvaluator = {
|
|
|
19
19
|
},
|
|
20
20
|
handler: async (runtime, _message) => {
|
|
21
21
|
try {
|
|
22
|
-
const { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
22
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
23
23
|
const summary = wallet.getSpendingSummary();
|
|
24
24
|
if (summary.isPaused)
|
|
25
25
|
return null;
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAC5D,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,7 +1,7 @@
|
|
|
1
1
|
export { agentShieldPlugin } from "./plugin";
|
|
2
2
|
export { ENV_KEYS, type AgentShieldElizaConfig } from "./types";
|
|
3
3
|
export { getOrCreateShieldedWallet, getConfig } from "./client-factory";
|
|
4
|
-
export { statusAction, updatePolicyAction, pauseResumeAction, transactionHistoryAction, } from "./actions";
|
|
4
|
+
export { statusAction, updatePolicyAction, pauseResumeAction, transactionHistoryAction, provisionAction, } from "./actions";
|
|
5
5
|
export { shieldStatusProvider, spendTrackingProvider } from "./providers";
|
|
6
6
|
export { policyCheckEvaluator } from "./evaluators";
|
|
7
7
|
import { agentShieldPlugin } from "./plugin";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,
|
|
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,EACxB,eAAe,GAChB,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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
3
|
+
exports.policyCheckEvaluator = exports.spendTrackingProvider = exports.shieldStatusProvider = exports.provisionAction = 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");
|
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "statusAction", { enumerable: true, get: function
|
|
|
13
13
|
Object.defineProperty(exports, "updatePolicyAction", { enumerable: true, get: function () { return actions_1.updatePolicyAction; } });
|
|
14
14
|
Object.defineProperty(exports, "pauseResumeAction", { enumerable: true, get: function () { return actions_1.pauseResumeAction; } });
|
|
15
15
|
Object.defineProperty(exports, "transactionHistoryAction", { enumerable: true, get: function () { return actions_1.transactionHistoryAction; } });
|
|
16
|
+
Object.defineProperty(exports, "provisionAction", { enumerable: true, get: function () { return actions_1.provisionAction; } });
|
|
16
17
|
var providers_1 = require("./providers");
|
|
17
18
|
Object.defineProperty(exports, "shieldStatusProvider", { enumerable: true, get: function () { return providers_1.shieldStatusProvider; } });
|
|
18
19
|
Object.defineProperty(exports, "spendTrackingProvider", { enumerable: true, get: function () { return providers_1.spendTrackingProvider; } });
|
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,mDAAwE;AAA/D,2HAAA,yBAAyB,OAAA;AAAE,2GAAA,SAAS,OAAA;AAC7C,
|
|
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,qCAMmB;AALjB,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,mHAAA,wBAAwB,OAAA;AACxB,0GAAA,eAAe,OAAA;AAEjB,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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB7B,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -29,6 +29,7 @@ exports.agentShieldPlugin = {
|
|
|
29
29
|
actions_1.updatePolicyAction,
|
|
30
30
|
actions_1.pauseResumeAction,
|
|
31
31
|
actions_1.transactionHistoryAction,
|
|
32
|
+
actions_1.provisionAction,
|
|
32
33
|
],
|
|
33
34
|
providers: [providers_1.shieldStatusProvider, providers_1.spendTrackingProvider],
|
|
34
35
|
evaluators: [evaluators_1.policyCheckEvaluator],
|
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,uCAMmB;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;QACxB,yBAAe;KAChB;IAED,SAAS,EAAE,CAAC,gCAAoB,EAAE,iCAAqB,CAAC;IAExD,UAAU,EAAE,CAAC,iCAAoB,CAAC;CACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;;;;CA8CrD,CAAC"}
|
|
@@ -11,14 +11,12 @@ exports.spendTrackingProvider = {
|
|
|
11
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 { wallet } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
14
|
+
const { wallet } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
15
15
|
const summary = wallet.getSpendingSummary();
|
|
16
16
|
const lines = [`AgentShield Spending:`];
|
|
17
17
|
for (const t of summary.tokens) {
|
|
18
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;
|
|
19
|
+
const pct = t.limit > BigInt(0) ? Number((t.spent * BigInt(100)) / t.limit) : 0;
|
|
22
20
|
const windowHrs = t.windowMs / 3600000;
|
|
23
21
|
lines.push(` ${label}: ${t.spent.toString()} / ${t.limit.toString()} (${pct}%, ${windowHrs}h window)`);
|
|
24
22
|
lines.push(` Remaining: ${t.remaining.toString()}`);
|
|
@@ -29,9 +27,7 @@ exports.spendTrackingProvider = {
|
|
|
29
27
|
const text = lines.join("\n");
|
|
30
28
|
// Compute aggregate values for context
|
|
31
29
|
const maxUsagePct = summary.tokens.reduce((max, t) => {
|
|
32
|
-
const pct = t.limit > BigInt(0)
|
|
33
|
-
? Number((t.spent * BigInt(100)) / t.limit)
|
|
34
|
-
: 0;
|
|
30
|
+
const pct = t.limit > BigInt(0) ? Number((t.spent * BigInt(100)) / t.limit) : 0;
|
|
35
31
|
return Math.max(max, pct);
|
|
36
32
|
}, 0);
|
|
37
33
|
return {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAC5D,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,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,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,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,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"}
|
|
@@ -11,7 +11,7 @@ exports.shieldStatusProvider = {
|
|
|
11
11
|
description: "Provides current AgentShield enforcement state, wallet address, and pause status",
|
|
12
12
|
get: async (runtime, _message, _state) => {
|
|
13
13
|
try {
|
|
14
|
-
const { wallet, publicKey } = (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
14
|
+
const { wallet, publicKey } = await (0, client_factory_1.getOrCreateShieldedWallet)(runtime);
|
|
15
15
|
const paused = wallet.isPaused;
|
|
16
16
|
const summary = wallet.getSpendingSummary();
|
|
17
17
|
const tokenLines = summary.tokens.map((t) => {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,MAAM,IAAA,0CAAyB,EAAC,OAAO,CAAC,CAAC;YAEvE,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
|
@@ -9,12 +9,27 @@ export declare const ENV_KEYS: {
|
|
|
9
9
|
readonly BLOCK_UNKNOWN: "AGENT_SHIELD_BLOCK_UNKNOWN";
|
|
10
10
|
/** Solana RPC URL */
|
|
11
11
|
readonly RPC_URL: "SOLANA_RPC_URL";
|
|
12
|
-
/** Solana wallet private key (base58 or JSON array) */
|
|
12
|
+
/** Solana wallet private key (base58 or JSON array) — not needed when using custody */
|
|
13
13
|
readonly WALLET_PRIVATE_KEY: "SOLANA_WALLET_PRIVATE_KEY";
|
|
14
|
+
/** Custody provider: "crossmint", "turnkey", "privy" — if set, uses TEE-backed signing */
|
|
15
|
+
readonly CUSTODY_PROVIDER: "AGENT_SHIELD_CUSTODY";
|
|
16
|
+
/** Crossmint server-side API key (required when CUSTODY=crossmint) */
|
|
17
|
+
readonly CROSSMINT_API_KEY: "CROSSMINT_API_KEY";
|
|
18
|
+
/** Crossmint wallet locator (optional — creates new wallet if omitted) */
|
|
19
|
+
readonly CROSSMINT_LOCATOR: "CROSSMINT_WALLET_LOCATOR";
|
|
14
20
|
};
|
|
21
|
+
/** Supported custody provider identifiers. */
|
|
22
|
+
export type CustodyProvider = "crossmint" | "turnkey" | "privy";
|
|
15
23
|
export interface AgentShieldElizaConfig {
|
|
16
24
|
maxSpend?: string;
|
|
17
25
|
blockUnknown: boolean;
|
|
18
|
-
|
|
26
|
+
/** Raw private key — used when no custody provider is set. */
|
|
27
|
+
walletPrivateKey?: string;
|
|
28
|
+
/** TEE custody provider — when set, walletPrivateKey is not required. */
|
|
29
|
+
custodyProvider?: CustodyProvider;
|
|
30
|
+
/** Crossmint API key (when custodyProvider = "crossmint") */
|
|
31
|
+
crossmintApiKey?: string;
|
|
32
|
+
/** Crossmint wallet locator (when custodyProvider = "crossmint") */
|
|
33
|
+
crossmintLocator?: string;
|
|
19
34
|
}
|
|
20
35
|
//# 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,0CAA0C;;IAE1C,gEAAgE;;IAEhE,qBAAqB;;IAErB,
|
|
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,uFAAuF;;IAEvF,0FAA0F;;IAE1F,sEAAsE;;IAEtE,0EAA0E;;CAElE,CAAC;AAEX,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
package/dist/types.js
CHANGED
|
@@ -12,7 +12,13 @@ exports.ENV_KEYS = {
|
|
|
12
12
|
BLOCK_UNKNOWN: "AGENT_SHIELD_BLOCK_UNKNOWN",
|
|
13
13
|
/** Solana RPC URL */
|
|
14
14
|
RPC_URL: "SOLANA_RPC_URL",
|
|
15
|
-
/** Solana wallet private key (base58 or JSON array) */
|
|
15
|
+
/** Solana wallet private key (base58 or JSON array) — not needed when using custody */
|
|
16
16
|
WALLET_PRIVATE_KEY: "SOLANA_WALLET_PRIVATE_KEY",
|
|
17
|
+
/** Custody provider: "crossmint", "turnkey", "privy" — if set, uses TEE-backed signing */
|
|
18
|
+
CUSTODY_PROVIDER: "AGENT_SHIELD_CUSTODY",
|
|
19
|
+
/** Crossmint server-side API key (required when CUSTODY=crossmint) */
|
|
20
|
+
CROSSMINT_API_KEY: "CROSSMINT_API_KEY",
|
|
21
|
+
/** Crossmint wallet locator (optional — creates new wallet if omitted) */
|
|
22
|
+
CROSSMINT_LOCATOR: "CROSSMINT_WALLET_LOCATOR",
|
|
17
23
|
};
|
|
18
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":";;;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,
|
|
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,uFAAuF;IACvF,kBAAkB,EAAE,2BAA2B;IAC/C,0FAA0F;IAC1F,gBAAgB,EAAE,sBAAsB;IACxC,sEAAsE;IACtE,iBAAiB,EAAE,mBAAmB;IACtC,0EAA0E;IAC1E,iBAAiB,EAAE,0BAA0B;CACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-shield/plugin-elizaos",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
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",
|
|
@@ -14,15 +14,25 @@
|
|
|
14
14
|
"dist/**/*",
|
|
15
15
|
"README.md"
|
|
16
16
|
],
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=18.0.0"
|
|
19
|
+
},
|
|
17
20
|
"peerDependencies": {
|
|
18
21
|
"@elizaos/core": ">=0.1.0",
|
|
19
|
-
"@agent-shield/solana": ">=0.1.
|
|
22
|
+
"@agent-shield/solana": ">=0.1.1",
|
|
23
|
+
"@agent-shield/custody-crossmint": ">=0.1.0",
|
|
20
24
|
"@solana/web3.js": ">=1.90.0"
|
|
21
25
|
},
|
|
26
|
+
"peerDependenciesMeta": {
|
|
27
|
+
"@agent-shield/custody-crossmint": {
|
|
28
|
+
"optional": true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
22
31
|
"devDependencies": {
|
|
23
32
|
"typescript": "^5.3.3",
|
|
24
33
|
"@elizaos/core": "^0.1.0",
|
|
25
34
|
"@agent-shield/solana": "workspace:*",
|
|
35
|
+
"@agent-shield/custody-crossmint": "workspace:*",
|
|
26
36
|
"@solana/web3.js": "^1.95.0",
|
|
27
37
|
"@types/chai": "^4.3.11",
|
|
28
38
|
"@types/mocha": "^10.0.6",
|