plugin-undesirables 2.0.0 → 2.0.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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -85
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +81 -85
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,MAAM,EAUP,MAAM,eAAe,CAAC;AAUvB,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAsBD,iBAAe,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA+D1E;AAkZD,QAAA,MAAM,iBAAiB,EAAE,MAexB,CAAC;AAEF,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -48,13 +48,12 @@ async function loadWorkspace(workspacePath) {
|
|
|
48
48
|
const soulPath = getSafePath(workspacePath, "SOUL.md");
|
|
49
49
|
if (fs.existsSync(soulPath)) {
|
|
50
50
|
workspace.soulMd = await fs.promises.readFile(soulPath, "utf-8");
|
|
51
|
-
// Parse YAML frontmatter securely via js-yaml with JSON_SCHEMA
|
|
51
|
+
// Parse YAML frontmatter securely via js-yaml with JSON_SCHEMA
|
|
52
52
|
const fmMatch = workspace.soulMd.match(/^---\n([\s\S]*?)\n---/);
|
|
53
53
|
if (fmMatch) {
|
|
54
54
|
try {
|
|
55
55
|
const parsed = yaml.load(fmMatch[1], { schema: yaml.JSON_SCHEMA });
|
|
56
56
|
if (parsed && typeof parsed === "object") {
|
|
57
|
-
// Block prototype pollution vectors
|
|
58
57
|
for (const key of Object.keys(parsed)) {
|
|
59
58
|
if (key === "__proto__" || key === "constructor" || key === "prototype")
|
|
60
59
|
continue;
|
|
@@ -101,7 +100,7 @@ function getWorkspace(runtime) {
|
|
|
101
100
|
return workspaces.get(runtime.agentId) || null;
|
|
102
101
|
}
|
|
103
102
|
// ============================================================
|
|
104
|
-
// Helper: Build context for LLM
|
|
103
|
+
// Helper: Build context string for LLM
|
|
105
104
|
// ============================================================
|
|
106
105
|
function buildSkillContext(skillContent, workspace, userMessage, instructions) {
|
|
107
106
|
return `You are an Undesirable AI agent with a unique personality.
|
|
@@ -125,6 +124,26 @@ ${instructions}
|
|
|
125
124
|
Respond in character using your archetype, risk tolerance, and guardrails.`;
|
|
126
125
|
}
|
|
127
126
|
// ============================================================
|
|
127
|
+
// Helper: Generate response through LLM via runtime.generateText
|
|
128
|
+
// ============================================================
|
|
129
|
+
async function generateResponse(runtime, context, callback, actionName) {
|
|
130
|
+
try {
|
|
131
|
+
const result = await runtime.generateText(context);
|
|
132
|
+
const text = typeof result === "string" ? result : result?.text || context;
|
|
133
|
+
if (callback) {
|
|
134
|
+
await callback({ text, source: "plugin-undesirables" }, actionName);
|
|
135
|
+
}
|
|
136
|
+
return { success: true, text };
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Fallback: return context as-is if generateText unavailable
|
|
140
|
+
if (callback) {
|
|
141
|
+
await callback({ text: context, source: "plugin-undesirables" }, actionName);
|
|
142
|
+
}
|
|
143
|
+
return { success: true, text: context };
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// ============================================================
|
|
128
147
|
// ACTIONS
|
|
129
148
|
// ============================================================
|
|
130
149
|
const marketAnalysisAction = {
|
|
@@ -140,11 +159,11 @@ const marketAnalysisAction = {
|
|
|
140
159
|
examples: [
|
|
141
160
|
[
|
|
142
161
|
{
|
|
143
|
-
|
|
162
|
+
name: "{{user1}}",
|
|
144
163
|
content: { text: "What do you think about ETH right now?" },
|
|
145
164
|
},
|
|
146
165
|
{
|
|
147
|
-
|
|
166
|
+
name: "{{agentName}}",
|
|
148
167
|
content: {
|
|
149
168
|
text: "Let me run my market analysis on ETH...",
|
|
150
169
|
action: "UNDESIRABLE_MARKET_ANALYSIS",
|
|
@@ -159,28 +178,12 @@ const marketAnalysisAction = {
|
|
|
159
178
|
const workspace = getWorkspace(runtime);
|
|
160
179
|
if (!workspace) {
|
|
161
180
|
if (callback)
|
|
162
|
-
callback({ text: "No soul workspace loaded. Set UNDESIRABLES_WORKSPACE in your character.json settings." });
|
|
163
|
-
return false;
|
|
181
|
+
await callback({ text: "No soul workspace loaded. Set UNDESIRABLES_WORKSPACE in your character.json settings." });
|
|
182
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
164
183
|
}
|
|
165
184
|
const skill = workspace.skills["market_analysis"] || "";
|
|
166
185
|
const context = buildSkillContext(skill, workspace, message.content.text || "", "Provide a detailed market analysis with conviction score, risk assessment, and actionable levels.");
|
|
167
|
-
|
|
168
|
-
try {
|
|
169
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
170
|
-
const responseText = await generateText({
|
|
171
|
-
runtime,
|
|
172
|
-
context,
|
|
173
|
-
modelClass: ModelClass.LARGE,
|
|
174
|
-
});
|
|
175
|
-
if (callback)
|
|
176
|
-
callback({ text: responseText, action: "UNDESIRABLE_MARKET_ANALYSIS" });
|
|
177
|
-
}
|
|
178
|
-
catch {
|
|
179
|
-
// Fallback for environments where generateText isn't available
|
|
180
|
-
if (callback)
|
|
181
|
-
callback({ text: `[Market Analysis]\n\n${context}` });
|
|
182
|
-
}
|
|
183
|
-
return true;
|
|
186
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_MARKET_ANALYSIS");
|
|
184
187
|
},
|
|
185
188
|
};
|
|
186
189
|
const businessPilotAction = {
|
|
@@ -196,13 +199,11 @@ const businessPilotAction = {
|
|
|
196
199
|
examples: [
|
|
197
200
|
[
|
|
198
201
|
{
|
|
199
|
-
|
|
200
|
-
content: {
|
|
201
|
-
text: "I run a barbershop. Help me set up phone answering.",
|
|
202
|
-
},
|
|
202
|
+
name: "{{user1}}",
|
|
203
|
+
content: { text: "I run a barbershop. Help me set up phone answering." },
|
|
203
204
|
},
|
|
204
205
|
{
|
|
205
|
-
|
|
206
|
+
name: "{{agentName}}",
|
|
206
207
|
content: {
|
|
207
208
|
text: "Loading Business Pilot skill for your barbershop...",
|
|
208
209
|
action: "UNDESIRABLE_BUSINESS_PILOT",
|
|
@@ -218,22 +219,12 @@ const businessPilotAction = {
|
|
|
218
219
|
const workspace = getWorkspace(runtime);
|
|
219
220
|
if (!workspace) {
|
|
220
221
|
if (callback)
|
|
221
|
-
callback({ text: "No soul workspace loaded." });
|
|
222
|
-
return false;
|
|
222
|
+
await callback({ text: "No soul workspace loaded." });
|
|
223
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
223
224
|
}
|
|
224
225
|
const skill = workspace.skills["business_pilot"] || "";
|
|
225
226
|
const context = buildSkillContext(skill, workspace, message.content.text || "", "Recommend the top 3-5 modules they should set up first with exact steps.");
|
|
226
|
-
|
|
227
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
228
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
229
|
-
if (callback)
|
|
230
|
-
callback({ text: responseText, action: "UNDESIRABLE_BUSINESS_PILOT" });
|
|
231
|
-
}
|
|
232
|
-
catch {
|
|
233
|
-
if (callback)
|
|
234
|
-
callback({ text: `[Business Pilot]\n\n${context}` });
|
|
235
|
-
}
|
|
236
|
-
return true;
|
|
227
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_BUSINESS_PILOT");
|
|
237
228
|
},
|
|
238
229
|
};
|
|
239
230
|
const memeMachineAction = {
|
|
@@ -249,11 +240,11 @@ const memeMachineAction = {
|
|
|
249
240
|
examples: [
|
|
250
241
|
[
|
|
251
242
|
{
|
|
252
|
-
|
|
243
|
+
name: "{{user1}}",
|
|
253
244
|
content: { text: "Create some memes for my barbershop" },
|
|
254
245
|
},
|
|
255
246
|
{
|
|
256
|
-
|
|
247
|
+
name: "{{agentName}}",
|
|
257
248
|
content: {
|
|
258
249
|
text: "Firing up the Meme Machine for barbershop content...",
|
|
259
250
|
action: "UNDESIRABLE_MEME_MACHINE",
|
|
@@ -269,22 +260,12 @@ const memeMachineAction = {
|
|
|
269
260
|
const workspace = getWorkspace(runtime);
|
|
270
261
|
if (!workspace) {
|
|
271
262
|
if (callback)
|
|
272
|
-
callback({ text: "No soul workspace loaded." });
|
|
273
|
-
return false;
|
|
263
|
+
await callback({ text: "No soul workspace loaded." });
|
|
264
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
274
265
|
}
|
|
275
266
|
const skill = workspace.skills["meme_machine"] || "";
|
|
276
267
|
const context = buildSkillContext(skill, workspace, message.content.text || "", "Create 3 meme concepts with template, text, caption, and export size.");
|
|
277
|
-
|
|
278
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
279
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
280
|
-
if (callback)
|
|
281
|
-
callback({ text: responseText, action: "UNDESIRABLE_MEME_MACHINE" });
|
|
282
|
-
}
|
|
283
|
-
catch {
|
|
284
|
-
if (callback)
|
|
285
|
-
callback({ text: `[Meme Machine]\n\n${context}` });
|
|
286
|
-
}
|
|
287
|
-
return true;
|
|
268
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_MEME_MACHINE");
|
|
288
269
|
},
|
|
289
270
|
};
|
|
290
271
|
const loadSkillAction = {
|
|
@@ -302,11 +283,11 @@ const loadSkillAction = {
|
|
|
302
283
|
examples: [
|
|
303
284
|
[
|
|
304
285
|
{
|
|
305
|
-
|
|
286
|
+
name: "{{user1}}",
|
|
306
287
|
content: { text: "Check my portfolio" },
|
|
307
288
|
},
|
|
308
289
|
{
|
|
309
|
-
|
|
290
|
+
name: "{{agentName}}",
|
|
310
291
|
content: {
|
|
311
292
|
text: "Loading portfolio check skill...",
|
|
312
293
|
action: "UNDESIRABLE_LOAD_SKILL",
|
|
@@ -321,15 +302,14 @@ const loadSkillAction = {
|
|
|
321
302
|
const workspace = getWorkspace(runtime);
|
|
322
303
|
if (!workspace) {
|
|
323
304
|
if (callback)
|
|
324
|
-
callback({ text: "No soul workspace loaded." });
|
|
325
|
-
return false;
|
|
305
|
+
await callback({ text: "No soul workspace loaded." });
|
|
306
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
326
307
|
}
|
|
327
308
|
const text = message.content.text?.toLowerCase() || "";
|
|
328
309
|
let matchedSkill = "";
|
|
329
310
|
let matchedName = "";
|
|
330
311
|
// All 23 unique skills mapped with trigger words
|
|
331
312
|
const skillMatches = {
|
|
332
|
-
// --- 10 Universal Skills ---
|
|
333
313
|
check_portfolio: ["portfolio", "balance", "holdings", "how am i doing"],
|
|
334
314
|
content_creation: ["tweet", "write", "promote", "content", "thread"],
|
|
335
315
|
conviction_score: ["conviction", "confidence", "how sure"],
|
|
@@ -337,27 +317,21 @@ const loadSkillAction = {
|
|
|
337
317
|
music_generation: ["music", "song", "beat", "audio"],
|
|
338
318
|
prediction_log: ["predict", "forecast", "call"],
|
|
339
319
|
video_production: ["video", "promo", "cinematic", "render video", "edit video"],
|
|
340
|
-
// --- Yield Optimizer Skills ---
|
|
341
320
|
farm_yield: ["farm", "yield farming", "liquidity", "lp", "best yield"],
|
|
342
321
|
compound_strategy: ["compound", "auto-compound", "compounding", "apy", "harvest"],
|
|
343
322
|
risk_assessment: ["risk", "downside", "worst case", "is this safe"],
|
|
344
|
-
// --- Degen Ape Skills ---
|
|
345
323
|
snipe_launch: ["snipe", "new launch", "token launching", "just launched"],
|
|
346
324
|
memecoin_scanner: ["memecoin", "find me a gem", "degen scan", "what memecoins"],
|
|
347
325
|
ape_checklist: ["should i ape", "ape check", "is this a good ape"],
|
|
348
|
-
// --- Smart Money Mirror Skills ---
|
|
349
326
|
whale_tracker: ["whale", "smart money", "whale watch", "what are whales buying"],
|
|
350
327
|
copy_trade: ["copy trade", "mirror this", "follow this wallet"],
|
|
351
328
|
position_sizing: ["position size", "how much should i buy", "how big"],
|
|
352
|
-
// --- Volatility Hunter Skills ---
|
|
353
329
|
volatility_scan: ["volatile", "volatility", "what's moving", "find volatile"],
|
|
354
330
|
liquidation_watch: ["liquidation", "liquidation levels", "longs", "shorts"],
|
|
355
331
|
mev_detect: ["mev", "sandwich", "front-running", "front run"],
|
|
356
|
-
// --- Structured Trader Skills ---
|
|
357
332
|
entry_signal: ["entry", "should i buy", "good time to buy", "buy signal"],
|
|
358
333
|
exit_strategy: ["exit", "sell", "take profit", "stop loss", "when should i sell"],
|
|
359
334
|
rebalance_check: ["rebalance", "allocation", "portfolio drift"],
|
|
360
|
-
// --- Balanced Portfolio Skills ---
|
|
361
335
|
diversify_check: ["diversify", "diversification", "spread", "concentrate"],
|
|
362
336
|
sector_rotation: ["sector", "rotation", "rotate", "cycle"],
|
|
363
337
|
};
|
|
@@ -373,31 +347,23 @@ const loadSkillAction = {
|
|
|
373
347
|
.filter((k) => k !== "_index")
|
|
374
348
|
.join(", ");
|
|
375
349
|
if (callback) {
|
|
376
|
-
callback({
|
|
350
|
+
await callback({
|
|
377
351
|
text: `Available skills: ${available}. Tell me what you need and I'll load the right one.`,
|
|
378
352
|
});
|
|
379
353
|
}
|
|
380
|
-
return true;
|
|
354
|
+
return { success: true, text: `Listed ${available.split(", ").length} available skills` };
|
|
381
355
|
}
|
|
382
356
|
const context = buildSkillContext(matchedSkill, workspace, message.content.text || "", `Execute the ${matchedName.replace(/_/g, " ")} skill thoroughly.`);
|
|
383
|
-
|
|
384
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
385
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
386
|
-
if (callback)
|
|
387
|
-
callback({ text: responseText, action: "UNDESIRABLE_LOAD_SKILL" });
|
|
388
|
-
}
|
|
389
|
-
catch {
|
|
390
|
-
if (callback)
|
|
391
|
-
callback({ text: `[${matchedName}]\n\n${context}` });
|
|
392
|
-
}
|
|
393
|
-
return true;
|
|
357
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_LOAD_SKILL");
|
|
394
358
|
},
|
|
395
359
|
};
|
|
396
360
|
// ============================================================
|
|
397
361
|
// PROVIDERS
|
|
398
362
|
// ============================================================
|
|
399
363
|
const soulProvider = {
|
|
400
|
-
|
|
364
|
+
name: "undesirables-soul",
|
|
365
|
+
description: "Injects Undesirable soul personality context into every agent response",
|
|
366
|
+
get: async (runtime, _message, _state) => {
|
|
401
367
|
// Load workspace if not already loaded for this agent
|
|
402
368
|
if (!workspaces.has(runtime.agentId)) {
|
|
403
369
|
const workspacePath = runtime.getSetting?.("UNDESIRABLES_WORKSPACE") ||
|
|
@@ -411,9 +377,12 @@ const soulProvider = {
|
|
|
411
377
|
}
|
|
412
378
|
const workspace = getWorkspace(runtime);
|
|
413
379
|
if (!workspace) {
|
|
414
|
-
return
|
|
380
|
+
return {
|
|
381
|
+
text: "No Undesirable soul workspace loaded. Set UNDESIRABLES_WORKSPACE env var to your downloaded workspace path.",
|
|
382
|
+
};
|
|
415
383
|
}
|
|
416
|
-
return
|
|
384
|
+
return {
|
|
385
|
+
text: `[SOUL CONTEXT]
|
|
417
386
|
Name: ${workspace.meta.name || "Unknown Undesirable"}
|
|
418
387
|
Archetype: ${workspace.meta.archetype || "Unknown"}
|
|
419
388
|
Strategy: ${workspace.meta.strategy || "Unknown"}
|
|
@@ -426,7 +395,14 @@ Personality: ${(workspace.meta.adjectives || []).join(", ")}
|
|
|
426
395
|
|
|
427
396
|
The agent should respond using the personality and style defined in its soul.
|
|
428
397
|
Collection: The Undesirables — 4,444 autonomous AI agents on Ethereum.
|
|
429
|
-
Website: https://the-undesirables.com
|
|
398
|
+
Website: https://the-undesirables.com`,
|
|
399
|
+
values: {
|
|
400
|
+
soulName: workspace.meta.name || "Unknown",
|
|
401
|
+
archetype: workspace.meta.archetype || "Unknown",
|
|
402
|
+
strategy: workspace.meta.strategy || "Unknown",
|
|
403
|
+
tokenId: workspace.meta.token_id || "?",
|
|
404
|
+
},
|
|
405
|
+
};
|
|
430
406
|
},
|
|
431
407
|
};
|
|
432
408
|
// ============================================================
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plugin-undesirables",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "ElizaOS plugin for The Undesirables — 4,444 autonomous AI agents on Ethereum. Pioneers 'Personality-as-Code' via verifiable soul workspaces. Adds soul personality loading, market analysis, Business Pilot, Meme Machine, and 23 skills to any ElizaOS agent.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,4 +45,4 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"js-yaml": "^4.1.0"
|
|
47
47
|
}
|
|
48
|
-
}
|
|
48
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -27,6 +27,8 @@ import type {
|
|
|
27
27
|
State,
|
|
28
28
|
HandlerCallback,
|
|
29
29
|
ActionExample,
|
|
30
|
+
ActionResult,
|
|
31
|
+
ProviderResult,
|
|
30
32
|
} from "@elizaos/core";
|
|
31
33
|
|
|
32
34
|
import * as fs from "fs";
|
|
@@ -80,13 +82,12 @@ async function loadWorkspace(workspacePath: string): Promise<SoulWorkspace> {
|
|
|
80
82
|
if (fs.existsSync(soulPath)) {
|
|
81
83
|
workspace.soulMd = await fs.promises.readFile(soulPath, "utf-8");
|
|
82
84
|
|
|
83
|
-
// Parse YAML frontmatter securely via js-yaml with JSON_SCHEMA
|
|
85
|
+
// Parse YAML frontmatter securely via js-yaml with JSON_SCHEMA
|
|
84
86
|
const fmMatch = workspace.soulMd.match(/^---\n([\s\S]*?)\n---/);
|
|
85
87
|
if (fmMatch) {
|
|
86
88
|
try {
|
|
87
89
|
const parsed = yaml.load(fmMatch[1], { schema: yaml.JSON_SCHEMA }) as Record<string, any>;
|
|
88
90
|
if (parsed && typeof parsed === "object") {
|
|
89
|
-
// Block prototype pollution vectors
|
|
90
91
|
for (const key of Object.keys(parsed)) {
|
|
91
92
|
if (key === "__proto__" || key === "constructor" || key === "prototype") continue;
|
|
92
93
|
workspace.meta[key] = parsed[key];
|
|
@@ -141,7 +142,7 @@ function getWorkspace(runtime: IAgentRuntime): SoulWorkspace | null {
|
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
// ============================================================
|
|
144
|
-
// Helper: Build context for LLM
|
|
145
|
+
// Helper: Build context string for LLM
|
|
145
146
|
// ============================================================
|
|
146
147
|
|
|
147
148
|
function buildSkillContext(
|
|
@@ -171,6 +172,32 @@ ${instructions}
|
|
|
171
172
|
Respond in character using your archetype, risk tolerance, and guardrails.`;
|
|
172
173
|
}
|
|
173
174
|
|
|
175
|
+
// ============================================================
|
|
176
|
+
// Helper: Generate response through LLM via runtime.generateText
|
|
177
|
+
// ============================================================
|
|
178
|
+
|
|
179
|
+
async function generateResponse(
|
|
180
|
+
runtime: IAgentRuntime,
|
|
181
|
+
context: string,
|
|
182
|
+
callback?: HandlerCallback,
|
|
183
|
+
actionName?: string
|
|
184
|
+
): Promise<ActionResult> {
|
|
185
|
+
try {
|
|
186
|
+
const result = await runtime.generateText(context);
|
|
187
|
+
const text = typeof result === "string" ? result : result?.text || context;
|
|
188
|
+
if (callback) {
|
|
189
|
+
await callback({ text, source: "plugin-undesirables" }, actionName);
|
|
190
|
+
}
|
|
191
|
+
return { success: true, text };
|
|
192
|
+
} catch {
|
|
193
|
+
// Fallback: return context as-is if generateText unavailable
|
|
194
|
+
if (callback) {
|
|
195
|
+
await callback({ text: context, source: "plugin-undesirables" }, actionName);
|
|
196
|
+
}
|
|
197
|
+
return { success: true, text: context };
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
174
201
|
// ============================================================
|
|
175
202
|
// ACTIONS
|
|
176
203
|
// ============================================================
|
|
@@ -189,11 +216,11 @@ const marketAnalysisAction: Action = {
|
|
|
189
216
|
examples: [
|
|
190
217
|
[
|
|
191
218
|
{
|
|
192
|
-
|
|
219
|
+
name: "{{user1}}",
|
|
193
220
|
content: { text: "What do you think about ETH right now?" },
|
|
194
221
|
} as ActionExample,
|
|
195
222
|
{
|
|
196
|
-
|
|
223
|
+
name: "{{agentName}}",
|
|
197
224
|
content: {
|
|
198
225
|
text: "Let me run my market analysis on ETH...",
|
|
199
226
|
action: "UNDESIRABLE_MARKET_ANALYSIS",
|
|
@@ -207,14 +234,14 @@ const marketAnalysisAction: Action = {
|
|
|
207
234
|
handler: async (
|
|
208
235
|
runtime: IAgentRuntime,
|
|
209
236
|
message: Memory,
|
|
210
|
-
_state
|
|
211
|
-
_options
|
|
237
|
+
_state?: State,
|
|
238
|
+
_options?: Record<string, unknown>,
|
|
212
239
|
callback?: HandlerCallback
|
|
213
|
-
) => {
|
|
240
|
+
): Promise<ActionResult | undefined> => {
|
|
214
241
|
const workspace = getWorkspace(runtime);
|
|
215
242
|
if (!workspace) {
|
|
216
|
-
if (callback) callback({ text: "No soul workspace loaded. Set UNDESIRABLES_WORKSPACE in your character.json settings." });
|
|
217
|
-
return false;
|
|
243
|
+
if (callback) await callback({ text: "No soul workspace loaded. Set UNDESIRABLES_WORKSPACE in your character.json settings." });
|
|
244
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
218
245
|
}
|
|
219
246
|
|
|
220
247
|
const skill = workspace.skills["market_analysis"] || "";
|
|
@@ -225,20 +252,7 @@ const marketAnalysisAction: Action = {
|
|
|
225
252
|
"Provide a detailed market analysis with conviction score, risk assessment, and actionable levels."
|
|
226
253
|
);
|
|
227
254
|
|
|
228
|
-
|
|
229
|
-
try {
|
|
230
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
231
|
-
const responseText = await generateText({
|
|
232
|
-
runtime,
|
|
233
|
-
context,
|
|
234
|
-
modelClass: ModelClass.LARGE,
|
|
235
|
-
});
|
|
236
|
-
if (callback) callback({ text: responseText, action: "UNDESIRABLE_MARKET_ANALYSIS" });
|
|
237
|
-
} catch {
|
|
238
|
-
// Fallback for environments where generateText isn't available
|
|
239
|
-
if (callback) callback({ text: `[Market Analysis]\n\n${context}` });
|
|
240
|
-
}
|
|
241
|
-
return true;
|
|
255
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_MARKET_ANALYSIS");
|
|
242
256
|
},
|
|
243
257
|
};
|
|
244
258
|
|
|
@@ -256,13 +270,11 @@ const businessPilotAction: Action = {
|
|
|
256
270
|
examples: [
|
|
257
271
|
[
|
|
258
272
|
{
|
|
259
|
-
|
|
260
|
-
content: {
|
|
261
|
-
text: "I run a barbershop. Help me set up phone answering.",
|
|
262
|
-
},
|
|
273
|
+
name: "{{user1}}",
|
|
274
|
+
content: { text: "I run a barbershop. Help me set up phone answering." },
|
|
263
275
|
} as ActionExample,
|
|
264
276
|
{
|
|
265
|
-
|
|
277
|
+
name: "{{agentName}}",
|
|
266
278
|
content: {
|
|
267
279
|
text: "Loading Business Pilot skill for your barbershop...",
|
|
268
280
|
action: "UNDESIRABLE_BUSINESS_PILOT",
|
|
@@ -277,14 +289,14 @@ const businessPilotAction: Action = {
|
|
|
277
289
|
handler: async (
|
|
278
290
|
runtime: IAgentRuntime,
|
|
279
291
|
message: Memory,
|
|
280
|
-
_state
|
|
281
|
-
_options
|
|
292
|
+
_state?: State,
|
|
293
|
+
_options?: Record<string, unknown>,
|
|
282
294
|
callback?: HandlerCallback
|
|
283
|
-
) => {
|
|
295
|
+
): Promise<ActionResult | undefined> => {
|
|
284
296
|
const workspace = getWorkspace(runtime);
|
|
285
297
|
if (!workspace) {
|
|
286
|
-
if (callback) callback({ text: "No soul workspace loaded." });
|
|
287
|
-
return false;
|
|
298
|
+
if (callback) await callback({ text: "No soul workspace loaded." });
|
|
299
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
288
300
|
}
|
|
289
301
|
|
|
290
302
|
const skill = workspace.skills["business_pilot"] || "";
|
|
@@ -295,14 +307,7 @@ const businessPilotAction: Action = {
|
|
|
295
307
|
"Recommend the top 3-5 modules they should set up first with exact steps."
|
|
296
308
|
);
|
|
297
309
|
|
|
298
|
-
|
|
299
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
300
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
301
|
-
if (callback) callback({ text: responseText, action: "UNDESIRABLE_BUSINESS_PILOT" });
|
|
302
|
-
} catch {
|
|
303
|
-
if (callback) callback({ text: `[Business Pilot]\n\n${context}` });
|
|
304
|
-
}
|
|
305
|
-
return true;
|
|
310
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_BUSINESS_PILOT");
|
|
306
311
|
},
|
|
307
312
|
};
|
|
308
313
|
|
|
@@ -320,11 +325,11 @@ const memeMachineAction: Action = {
|
|
|
320
325
|
examples: [
|
|
321
326
|
[
|
|
322
327
|
{
|
|
323
|
-
|
|
328
|
+
name: "{{user1}}",
|
|
324
329
|
content: { text: "Create some memes for my barbershop" },
|
|
325
330
|
} as ActionExample,
|
|
326
331
|
{
|
|
327
|
-
|
|
332
|
+
name: "{{agentName}}",
|
|
328
333
|
content: {
|
|
329
334
|
text: "Firing up the Meme Machine for barbershop content...",
|
|
330
335
|
action: "UNDESIRABLE_MEME_MACHINE",
|
|
@@ -339,14 +344,14 @@ const memeMachineAction: Action = {
|
|
|
339
344
|
handler: async (
|
|
340
345
|
runtime: IAgentRuntime,
|
|
341
346
|
message: Memory,
|
|
342
|
-
_state
|
|
343
|
-
_options
|
|
347
|
+
_state?: State,
|
|
348
|
+
_options?: Record<string, unknown>,
|
|
344
349
|
callback?: HandlerCallback
|
|
345
|
-
) => {
|
|
350
|
+
): Promise<ActionResult | undefined> => {
|
|
346
351
|
const workspace = getWorkspace(runtime);
|
|
347
352
|
if (!workspace) {
|
|
348
|
-
if (callback) callback({ text: "No soul workspace loaded." });
|
|
349
|
-
return false;
|
|
353
|
+
if (callback) await callback({ text: "No soul workspace loaded." });
|
|
354
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
350
355
|
}
|
|
351
356
|
|
|
352
357
|
const skill = workspace.skills["meme_machine"] || "";
|
|
@@ -357,14 +362,7 @@ const memeMachineAction: Action = {
|
|
|
357
362
|
"Create 3 meme concepts with template, text, caption, and export size."
|
|
358
363
|
);
|
|
359
364
|
|
|
360
|
-
|
|
361
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
362
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
363
|
-
if (callback) callback({ text: responseText, action: "UNDESIRABLE_MEME_MACHINE" });
|
|
364
|
-
} catch {
|
|
365
|
-
if (callback) callback({ text: `[Meme Machine]\n\n${context}` });
|
|
366
|
-
}
|
|
367
|
-
return true;
|
|
365
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_MEME_MACHINE");
|
|
368
366
|
},
|
|
369
367
|
};
|
|
370
368
|
|
|
@@ -384,11 +382,11 @@ const loadSkillAction: Action = {
|
|
|
384
382
|
examples: [
|
|
385
383
|
[
|
|
386
384
|
{
|
|
387
|
-
|
|
385
|
+
name: "{{user1}}",
|
|
388
386
|
content: { text: "Check my portfolio" },
|
|
389
387
|
} as ActionExample,
|
|
390
388
|
{
|
|
391
|
-
|
|
389
|
+
name: "{{agentName}}",
|
|
392
390
|
content: {
|
|
393
391
|
text: "Loading portfolio check skill...",
|
|
394
392
|
action: "UNDESIRABLE_LOAD_SKILL",
|
|
@@ -402,14 +400,14 @@ const loadSkillAction: Action = {
|
|
|
402
400
|
handler: async (
|
|
403
401
|
runtime: IAgentRuntime,
|
|
404
402
|
message: Memory,
|
|
405
|
-
_state
|
|
406
|
-
_options
|
|
403
|
+
_state?: State,
|
|
404
|
+
_options?: Record<string, unknown>,
|
|
407
405
|
callback?: HandlerCallback
|
|
408
|
-
) => {
|
|
406
|
+
): Promise<ActionResult | undefined> => {
|
|
409
407
|
const workspace = getWorkspace(runtime);
|
|
410
408
|
if (!workspace) {
|
|
411
|
-
if (callback) callback({ text: "No soul workspace loaded." });
|
|
412
|
-
return false;
|
|
409
|
+
if (callback) await callback({ text: "No soul workspace loaded." });
|
|
410
|
+
return { success: false, error: "No soul workspace loaded" };
|
|
413
411
|
}
|
|
414
412
|
|
|
415
413
|
const text = message.content.text?.toLowerCase() || "";
|
|
@@ -418,7 +416,6 @@ const loadSkillAction: Action = {
|
|
|
418
416
|
|
|
419
417
|
// All 23 unique skills mapped with trigger words
|
|
420
418
|
const skillMatches: Record<string, string[]> = {
|
|
421
|
-
// --- 10 Universal Skills ---
|
|
422
419
|
check_portfolio: ["portfolio", "balance", "holdings", "how am i doing"],
|
|
423
420
|
content_creation: ["tweet", "write", "promote", "content", "thread"],
|
|
424
421
|
conviction_score: ["conviction", "confidence", "how sure"],
|
|
@@ -426,27 +423,21 @@ const loadSkillAction: Action = {
|
|
|
426
423
|
music_generation: ["music", "song", "beat", "audio"],
|
|
427
424
|
prediction_log: ["predict", "forecast", "call"],
|
|
428
425
|
video_production: ["video", "promo", "cinematic", "render video", "edit video"],
|
|
429
|
-
// --- Yield Optimizer Skills ---
|
|
430
426
|
farm_yield: ["farm", "yield farming", "liquidity", "lp", "best yield"],
|
|
431
427
|
compound_strategy: ["compound", "auto-compound", "compounding", "apy", "harvest"],
|
|
432
428
|
risk_assessment: ["risk", "downside", "worst case", "is this safe"],
|
|
433
|
-
// --- Degen Ape Skills ---
|
|
434
429
|
snipe_launch: ["snipe", "new launch", "token launching", "just launched"],
|
|
435
430
|
memecoin_scanner: ["memecoin", "find me a gem", "degen scan", "what memecoins"],
|
|
436
431
|
ape_checklist: ["should i ape", "ape check", "is this a good ape"],
|
|
437
|
-
// --- Smart Money Mirror Skills ---
|
|
438
432
|
whale_tracker: ["whale", "smart money", "whale watch", "what are whales buying"],
|
|
439
433
|
copy_trade: ["copy trade", "mirror this", "follow this wallet"],
|
|
440
434
|
position_sizing: ["position size", "how much should i buy", "how big"],
|
|
441
|
-
// --- Volatility Hunter Skills ---
|
|
442
435
|
volatility_scan: ["volatile", "volatility", "what's moving", "find volatile"],
|
|
443
436
|
liquidation_watch: ["liquidation", "liquidation levels", "longs", "shorts"],
|
|
444
437
|
mev_detect: ["mev", "sandwich", "front-running", "front run"],
|
|
445
|
-
// --- Structured Trader Skills ---
|
|
446
438
|
entry_signal: ["entry", "should i buy", "good time to buy", "buy signal"],
|
|
447
439
|
exit_strategy: ["exit", "sell", "take profit", "stop loss", "when should i sell"],
|
|
448
440
|
rebalance_check: ["rebalance", "allocation", "portfolio drift"],
|
|
449
|
-
// --- Balanced Portfolio Skills ---
|
|
450
441
|
diversify_check: ["diversify", "diversification", "spread", "concentrate"],
|
|
451
442
|
sector_rotation: ["sector", "rotation", "rotate", "cycle"],
|
|
452
443
|
};
|
|
@@ -464,11 +455,11 @@ const loadSkillAction: Action = {
|
|
|
464
455
|
.filter((k) => k !== "_index")
|
|
465
456
|
.join(", ");
|
|
466
457
|
if (callback) {
|
|
467
|
-
callback({
|
|
458
|
+
await callback({
|
|
468
459
|
text: `Available skills: ${available}. Tell me what you need and I'll load the right one.`,
|
|
469
460
|
});
|
|
470
461
|
}
|
|
471
|
-
return true;
|
|
462
|
+
return { success: true, text: `Listed ${available.split(", ").length} available skills` };
|
|
472
463
|
}
|
|
473
464
|
|
|
474
465
|
const context = buildSkillContext(
|
|
@@ -478,14 +469,7 @@ const loadSkillAction: Action = {
|
|
|
478
469
|
`Execute the ${matchedName.replace(/_/g, " ")} skill thoroughly.`
|
|
479
470
|
);
|
|
480
471
|
|
|
481
|
-
|
|
482
|
-
const { generateText, ModelClass } = await import("@elizaos/core");
|
|
483
|
-
const responseText = await generateText({ runtime, context, modelClass: ModelClass.LARGE });
|
|
484
|
-
if (callback) callback({ text: responseText, action: "UNDESIRABLE_LOAD_SKILL" });
|
|
485
|
-
} catch {
|
|
486
|
-
if (callback) callback({ text: `[${matchedName}]\n\n${context}` });
|
|
487
|
-
}
|
|
488
|
-
return true;
|
|
472
|
+
return generateResponse(runtime, context, callback, "UNDESIRABLE_LOAD_SKILL");
|
|
489
473
|
},
|
|
490
474
|
};
|
|
491
475
|
|
|
@@ -494,7 +478,9 @@ const loadSkillAction: Action = {
|
|
|
494
478
|
// ============================================================
|
|
495
479
|
|
|
496
480
|
const soulProvider: Provider = {
|
|
497
|
-
|
|
481
|
+
name: "undesirables-soul",
|
|
482
|
+
description: "Injects Undesirable soul personality context into every agent response",
|
|
483
|
+
get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {
|
|
498
484
|
// Load workspace if not already loaded for this agent
|
|
499
485
|
if (!workspaces.has(runtime.agentId)) {
|
|
500
486
|
const workspacePath =
|
|
@@ -513,10 +499,13 @@ const soulProvider: Provider = {
|
|
|
513
499
|
|
|
514
500
|
const workspace = getWorkspace(runtime);
|
|
515
501
|
if (!workspace) {
|
|
516
|
-
return
|
|
502
|
+
return {
|
|
503
|
+
text: "No Undesirable soul workspace loaded. Set UNDESIRABLES_WORKSPACE env var to your downloaded workspace path.",
|
|
504
|
+
};
|
|
517
505
|
}
|
|
518
506
|
|
|
519
|
-
return
|
|
507
|
+
return {
|
|
508
|
+
text: `[SOUL CONTEXT]
|
|
520
509
|
Name: ${workspace.meta.name || "Unknown Undesirable"}
|
|
521
510
|
Archetype: ${workspace.meta.archetype || "Unknown"}
|
|
522
511
|
Strategy: ${workspace.meta.strategy || "Unknown"}
|
|
@@ -529,7 +518,14 @@ Personality: ${(workspace.meta.adjectives || []).join(", ")}
|
|
|
529
518
|
|
|
530
519
|
The agent should respond using the personality and style defined in its soul.
|
|
531
520
|
Collection: The Undesirables — 4,444 autonomous AI agents on Ethereum.
|
|
532
|
-
Website: https://the-undesirables.com
|
|
521
|
+
Website: https://the-undesirables.com`,
|
|
522
|
+
values: {
|
|
523
|
+
soulName: workspace.meta.name || "Unknown",
|
|
524
|
+
archetype: workspace.meta.archetype || "Unknown",
|
|
525
|
+
strategy: workspace.meta.strategy || "Unknown",
|
|
526
|
+
tokenId: workspace.meta.token_id || "?",
|
|
527
|
+
},
|
|
528
|
+
};
|
|
533
529
|
},
|
|
534
530
|
};
|
|
535
531
|
|