plugin-undesirables 2.0.1 → 2.0.3
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/CHANGELOG.md +55 -0
- package/README.md +148 -70
- package/dist/index.d.ts +7 -6
- package/dist/index.js +435 -365
- package/dist/index.js.map +1 -1
- package/images/banner.jpg +0 -0
- package/images/logo.jpg +0 -0
- package/package.json +26 -5
- package/plugin.json +1 -1
- package/dist/index.d.ts.map +0 -1
- package/og_preview.png +0 -0
- package/src/index.ts +0 -554
- package/tsconfig.json +0 -20
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [2.0.3] - 2026-05-10
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- Optimized npm description for search result truncation (130-char limit)
|
|
9
|
+
- Expanded Related Projects into full Ecosystem section (14 links across 4 categories)
|
|
10
|
+
- Fixed MCP server tool count reference (36 → 34)
|
|
11
|
+
- Fixed skill count consistency (23 → 24 to match actual source code)
|
|
12
|
+
- Added npm download, ElizaOS, MCP Server, and x402 badges to README
|
|
13
|
+
- Added `funding` field to package.json
|
|
14
|
+
- Added 8 new discovery keywords (x402, trading-cards, tcg, coinbase, base, usdc, content-creation, business-automation)
|
|
15
|
+
- Synced `plugin.json` version with `package.json` (was drifted at 2.0.0)
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- License updated from MIT to BUSL-1.1 across all files (v2.0.1)
|
|
19
|
+
|
|
20
|
+
## [2.0.2] - 2026-04-24
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- Vitest test suite (`src/index.test.ts`)
|
|
24
|
+
- `plugin.json` registry metadata for ElizaOS submission
|
|
25
|
+
- `MemeTrendService` background service scaffold
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- 21 TypeScript compilation errors against real `@elizaos/core` v2 API
|
|
29
|
+
- `ActionExample` uses `name` field (was `user`) per v2 protobuf schema
|
|
30
|
+
- `Handler` returns `Promise<ActionResult>` (was `Promise<boolean>`)
|
|
31
|
+
- `Provider` has required `name` field and returns `ProviderResult`
|
|
32
|
+
|
|
33
|
+
## [2.0.1] - 2026-04-24
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
- **CRITICAL**: Action handlers were leaking raw prompt instructions to end users via `callback()`. Now routes through `runtime.generateText()`
|
|
37
|
+
- **CRITICAL**: Global state collision — second agent overwrote first agent's personality. Now uses `Map<string, SoulWorkspace>` keyed by `runtime.agentId`
|
|
38
|
+
- Replaced hand-written `elizaos-core.d.ts` type stubs with real `@elizaos/core@2.0.0-alpha.77`
|
|
39
|
+
- All `fs.readFileSync` calls replaced with `await fs.promises.readFile()`
|
|
40
|
+
- Replaced regex YAML parser with `js-yaml` using `JSON_SCHEMA` (no custom types)
|
|
41
|
+
- LICENSE file corrected from MIT to BUSL-1.1
|
|
42
|
+
|
|
43
|
+
## [2.0.0] - 2026-04-24
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- Full ElizaOS v2 API compatibility
|
|
47
|
+
- 4 actions: `UNDESIRABLE_MARKET_ANALYSIS`, `UNDESIRABLE_BUSINESS_PILOT`, `UNDESIRABLE_MEME_MACHINE`, `UNDESIRABLE_LOAD_SKILL`
|
|
48
|
+
- `soulProvider` — injects personality context into every agent response
|
|
49
|
+
- 24-skill keyword matcher with trigger word routing
|
|
50
|
+
- Path traversal protection via `getSafePath()`
|
|
51
|
+
- Prototype pollution blocking in YAML parser
|
|
52
|
+
- ESM module format with `tsup` bundler
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
- Complete rewrite from v1.x Python G.A.M.E. SDK architecture to native TypeScript
|
package/README.md
CHANGED
|
@@ -1,124 +1,202 @@
|
|
|
1
1
|
# plugin-undesirables
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.org/package/plugin-undesirables)
|
|
6
|
+
[](https://www.npmjs.org/package/plugin-undesirables)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://elizaos.ai)
|
|
9
|
+
[](https://github.com/sailorpepe/undesirables-mcp-server)
|
|
10
|
+
[](https://oracle.the-undesirables.com)
|
|
7
11
|
|
|
8
|
-
> ElizaOS
|
|
12
|
+
> Give any ElizaOS agent a persistent personality, market analysis skills, business automation, and content creation — all driven by a downloadable "soul workspace."
|
|
9
13
|
|
|
10
14
|
---
|
|
11
15
|
|
|
12
|
-
##
|
|
13
|
-
If you are new to running AI agents, you **must** have the following installed on your computer before continuing:
|
|
14
|
-
1. **[Node.js](https://nodejs.org)** (Version 23+ recommended).
|
|
15
|
-
2. **An existing ElizaOS bot**. This is a huge multi-agent framework. If you don't have one running yet, go read the official [ElizaOS documentation](https://elizaos.github.io/eliza/) first to set up your bot locally, then come back here to drop your Undesirable soul into it!
|
|
16
|
+
## What This Does
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## 📂 Step 1: Downloading Your Soul Workspace
|
|
18
|
+
Most AI agents are blank slates. They answer questions but have no personality, no memory, no conviction. This plugin changes that.
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
When you install `plugin-undesirables`, your ElizaOS agent gets:
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
- **A real personality** — not a system prompt hack, but a structured workspace with Big Five psychology scores, an archetype, a strategy style, adjectives, guardrails, and a backstory. The personality persists across sessions and colors every response.
|
|
23
|
+
- **Market analysis with conviction** — your agent doesn't just parrot data. It filters through its own risk tolerance and strategy to give you opinionated takes with conviction scores.
|
|
24
|
+
- **24 built-in skills** — portfolio checks, entry signals, exit strategies, whale tracking, meme creation, video production, music generation, and more. The agent auto-matches the right skill to your message.
|
|
25
|
+
- **Business Pilot** — AI-powered business automation modules: phone answering, SMS autoresponders, invoice chasers, appointment scheduling. Your agent becomes a business operations assistant.
|
|
26
|
+
- **Meme Machine** — content creation, brand voice setup, content calendars, and industry-specific meme packs. Your agent becomes a social media manager.
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## Quick Start
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
### 1. Install
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
# Mac / Linux / Windows
|
|
36
35
|
npm install plugin-undesirables
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
### 2. Get a Soul Workspace
|
|
39
|
+
|
|
40
|
+
Go to [the-undesirables.com/soul](https://the-undesirables.com/soul), connect your wallet, and download your workspace. Unzip it somewhere on your machine.
|
|
41
|
+
|
|
42
|
+
Each workspace contains:
|
|
43
|
+
- `SOUL.md` — personality profile (Big Five scores, archetype, strategy, backstory)
|
|
44
|
+
- `SYSTEM_PROMPT.txt` — the full instruction set
|
|
45
|
+
- `MEMORY.md` — persistent memory file
|
|
46
|
+
- `PREDICTIONS_LEDGER.json` — track record of market calls
|
|
47
|
+
- `skills/` — 10-24 skill files depending on the agent's traits
|
|
42
48
|
|
|
43
|
-
|
|
49
|
+
### 3. Configure
|
|
50
|
+
|
|
51
|
+
Add to your ElizaOS `character.json`:
|
|
52
|
+
|
|
53
|
+
**macOS / Linux:**
|
|
44
54
|
```json
|
|
45
55
|
{
|
|
56
|
+
"plugins": ["plugin-undesirables"],
|
|
46
57
|
"settings": {
|
|
47
|
-
"UNDESIRABLES_WORKSPACE": "/Users/YourName/Desktop/
|
|
48
|
-
}
|
|
49
|
-
"plugins": ["plugin-undesirables"]
|
|
58
|
+
"UNDESIRABLES_WORKSPACE": "/Users/YourName/Desktop/soul_0420"
|
|
59
|
+
}
|
|
50
60
|
}
|
|
51
61
|
```
|
|
52
62
|
|
|
53
|
-
|
|
63
|
+
**Windows:**
|
|
54
64
|
```json
|
|
55
65
|
{
|
|
66
|
+
"plugins": ["plugin-undesirables"],
|
|
56
67
|
"settings": {
|
|
57
|
-
"UNDESIRABLES_WORKSPACE": "C:\\Users\\YourName\\Desktop\\
|
|
58
|
-
}
|
|
59
|
-
"plugins": ["plugin-undesirables"]
|
|
68
|
+
"UNDESIRABLES_WORKSPACE": "C:\\Users\\YourName\\Desktop\\soul_0420"
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
71
|
```
|
|
62
72
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
## 🏃 Step 3: Run It!
|
|
73
|
+
### 4. Run
|
|
66
74
|
|
|
67
|
-
Simply start your ElizaOS framework like normal. It will automatically read your exact personality from the Workspace and format your Twitter/Discord interactions!
|
|
68
75
|
```bash
|
|
69
76
|
elizaos start --character your-character.json
|
|
70
77
|
```
|
|
71
78
|
|
|
79
|
+
Your agent now has a persistent personality that influences every conversation.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Actions
|
|
84
|
+
|
|
85
|
+
| Action | Trigger Examples | What Happens |
|
|
86
|
+
|--------|-----------------|--------------|
|
|
87
|
+
| `UNDESIRABLE_MARKET_ANALYSIS` | "What do you think about ETH?" | Personality-driven market analysis with risk guardrails and conviction scoring |
|
|
88
|
+
| `UNDESIRABLE_BUSINESS_PILOT` | "Set up phone answering for my barbershop" | Loads the Business Pilot skill, recommends top modules with setup steps |
|
|
89
|
+
| `UNDESIRABLE_MEME_MACHINE` | "Create memes for my coffee shop" | Generates meme concepts, captions, content calendars, brand voice |
|
|
90
|
+
| `UNDESIRABLE_LOAD_SKILL` | "Check my portfolio" / "Should I ape?" | Auto-matches your message to one of 24 skills and executes it |
|
|
91
|
+
|
|
92
|
+
### All 24 Skills
|
|
93
|
+
|
|
94
|
+
| Skill | Trigger Words |
|
|
95
|
+
|-------|--------------|
|
|
96
|
+
| Portfolio Check | "portfolio", "balance", "holdings" |
|
|
97
|
+
| Content Creation | "tweet", "write", "promote", "thread" |
|
|
98
|
+
| Entry Signal | "should I buy", "buy signal", "good time to buy" |
|
|
99
|
+
| Exit Strategy | "sell", "take profit", "stop loss" |
|
|
100
|
+
| Risk Assessment | "risk", "downside", "worst case", "is this safe" |
|
|
101
|
+
| Whale Tracker | "whale", "smart money", "what are whales buying" |
|
|
102
|
+
| Conviction Score | "conviction", "confidence", "how sure" |
|
|
103
|
+
| Snipe Launch | "snipe", "new launch", "just launched" |
|
|
104
|
+
| Memecoin Scanner | "memecoin", "find me a gem", "degen scan" |
|
|
105
|
+
| Ape Checklist | "should I ape", "ape check" |
|
|
106
|
+
| Position Sizing | "position size", "how much should I buy" |
|
|
107
|
+
| Volatility Scan | "volatile", "what's moving" |
|
|
108
|
+
| Liquidation Watch | "liquidation levels", "longs", "shorts" |
|
|
109
|
+
| MEV Detection | "mev", "sandwich", "front-running" |
|
|
110
|
+
| Farm Yield | "yield farming", "liquidity", "best yield" |
|
|
111
|
+
| Compound Strategy | "compound", "auto-compound", "apy" |
|
|
112
|
+
| Copy Trade | "copy trade", "mirror this wallet" |
|
|
113
|
+
| Rebalance Check | "rebalance", "allocation", "portfolio drift" |
|
|
114
|
+
| Diversification | "diversify", "spread", "concentrate" |
|
|
115
|
+
| Sector Rotation | "sector", "rotation", "cycle" |
|
|
116
|
+
| Prediction Log | "predict", "forecast", "call" |
|
|
117
|
+
| Image Generation | "image", "picture", "generate art" |
|
|
118
|
+
| Music Generation | "music", "song", "beat" |
|
|
119
|
+
| Video Production | "video", "promo", "render video" |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## How Personality Works
|
|
124
|
+
|
|
125
|
+
Each soul workspace has a `SOUL.md` file with structured personality data:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
name: "Doña Crypto"
|
|
129
|
+
archetype: "The Oracle"
|
|
130
|
+
strategy: "Long-term accumulation with high conviction"
|
|
131
|
+
adjectives: ["analytical", "patient", "contrarian"]
|
|
132
|
+
openness: 82
|
|
133
|
+
conscientiousness: 91
|
|
134
|
+
extraversion: 34
|
|
135
|
+
agreeableness: 45
|
|
136
|
+
neuroticism: 28
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The `soulProvider` injects this context into **every** agent response automatically. Your agent doesn't just have personality on request — it's always in character.
|
|
140
|
+
|
|
141
|
+
This means two different Undesirable agents will give you completely different takes on the same market question, filtered through their individual psychology.
|
|
142
|
+
|
|
72
143
|
---
|
|
73
144
|
|
|
74
|
-
##
|
|
145
|
+
## Multi-Agent Safety
|
|
146
|
+
|
|
147
|
+
Workspaces are keyed by `runtime.agentId`. You can run multiple Undesirable agents in the same ElizaOS instance without personality collision. Agent #420 won't leak into Agent #69's responses.
|
|
75
148
|
|
|
76
|
-
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Troubleshooting
|
|
77
152
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
153
|
+
| Error | Fix |
|
|
154
|
+
|-------|-----|
|
|
155
|
+
| `Workspace /path/ does not exist` | Check the path in your `character.json`. It must be the **absolute** path to the unzipped workspace. Windows users: use double backslashes `\\`. |
|
|
156
|
+
| `Invalid JSON Error` | Your `character.json` has a syntax error. Open it in VS Code or Cursor and fix the formatting. |
|
|
157
|
+
| `No soul workspace loaded` | The `UNDESIRABLES_WORKSPACE` setting is missing or the path doesn't exist. |
|
|
83
158
|
|
|
84
159
|
---
|
|
85
|
-
|
|
86
|
-
## What It Does (Architecture)
|
|
87
160
|
|
|
88
|
-
|
|
161
|
+
## What's New in v2.0
|
|
89
162
|
|
|
90
|
-
|
|
163
|
+
- Action handlers route through `runtime.generateText()` instead of leaking raw prompt instructions
|
|
164
|
+
- Multi-agent state isolation — workspaces keyed by `agentId`
|
|
165
|
+
- Real `@elizaos/core` v2 types (no more hand-written stubs)
|
|
166
|
+
- Async filesystem (`fs.promises`)
|
|
167
|
+
- Secure YAML parsing (`js-yaml` with `JSON_SCHEMA`)
|
|
168
|
+
- ESM module format
|
|
91
169
|
|
|
92
|
-
|
|
93
|
-
|--------|---------|-------------|
|
|
94
|
-
| `UNDESIRABLE_MARKET_ANALYSIS` | "What do you think about ETH?" | Personality-driven market analysis with risk guardrails |
|
|
95
|
-
| `UNDESIRABLE_BUSINESS_PILOT` | "Set up phone answering for my business" | 23 AI-powered business automation modules |
|
|
96
|
-
| `UNDESIRABLE_MEME_MACHINE` | "Create memes for my barbershop" | Content creation, meme templates, industry packs |
|
|
97
|
-
| `UNDESIRABLE_LOAD_SKILL` | "Check my portfolio" | Auto-matches and loads any of 23 skills |
|
|
170
|
+
---
|
|
98
171
|
|
|
99
|
-
|
|
172
|
+
## Ecosystem
|
|
100
173
|
|
|
101
|
-
|
|
174
|
+
### Plugins
|
|
175
|
+
- [plugin-undesirables](https://www.npmjs.com/package/plugin-undesirables) — Soul personality + business tools (this package)
|
|
176
|
+
- [@undesirables/plugin-tcg-oracle](https://github.com/sailorpepe/elizaos-tcg-oracle-plugin) — TCG market intelligence (search, grade, simulate)
|
|
102
177
|
|
|
103
|
-
|
|
178
|
+
### Servers & APIs
|
|
179
|
+
- [MCP Server](https://github.com/sailorpepe/undesirables-mcp-server) — 34-tool MCP server ([PyPI](https://pypi.org/project/undesirables-mcp-server/) · [Glama](https://glama.ai/mcp/servers/sailorpepe/undesirables-mcp-server) · [Official Registry](https://registry.modelcontextprotocol.io))
|
|
180
|
+
- [x402 Oracle API](https://oracle.the-undesirables.com) — Pay-per-request TCG + prediction market intelligence ([Swagger](https://oracle.the-undesirables.com/docs))
|
|
104
181
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
182
|
+
### Apps
|
|
183
|
+
- [TCG Oracle Desktop](https://github.com/sailorpepe/tcg-oracle-app) — macOS / Linux / Windows desktop app with AI card grading
|
|
184
|
+
- [Desktop Installer](https://github.com/sailorpepe/undesirables-desktop/releases/tag/v1.3.0) — DMG, DEB, RPM, AppImage, MSI binaries
|
|
185
|
+
- [TCG Oracle Tools](https://pypi.org/project/tcg-oracle-tools/) — Python SDK for the Oracle API
|
|
186
|
+
|
|
187
|
+
### Data & Research
|
|
188
|
+
- [Kaggle Dataset](https://www.kaggle.com/datasets/sailorpepe/tcg-market-intelligence) — 370K+ TCG products across 25 games
|
|
189
|
+
- [HuggingFace Space](https://huggingface.co/spaces/sailorpepe/tcg-oracle) — Live demo
|
|
190
|
+
- [Dev.to Tutorial](https://dev.to/sailor_pepe_7920f552c5b9a/build-an-autonomous-pokemon-card-trading-agent-with-ai-grading-monte-carlo-pricing-2b86) — Build guide
|
|
111
191
|
|
|
112
|
-
|
|
192
|
+
### Collection
|
|
193
|
+
- [The Undesirables](https://the-undesirables.com) — 4,444 NFTs on Ethereum
|
|
194
|
+
- [Soul Workspace](https://the-undesirables.com/soul) — Download your agent's personality
|
|
195
|
+
- [Etherscan](https://etherscan.io/address/0xa893648a701c03b14bf2fb767b72b2c55ed5c17a) — Contract
|
|
196
|
+
- [Scatter.art](https://scatter.art/the-undesirables) — Mint page
|
|
113
197
|
|
|
114
|
-
|
|
198
|
+
---
|
|
115
199
|
|
|
116
|
-
|
|
117
|
-
- **Mint**: [scatter.art/the-undesirables](https://scatter.art/the-undesirables)
|
|
118
|
-
- **MCP Server**: [gitlab.com/meme-merchants/undesirables-mcp-server](https://gitlab.com/meme-merchants/undesirables-mcp-server)
|
|
119
|
-
- **TCG Oracle Tools**: [pypi.org/project/tcg-oracle-tools](https://pypi.org/project/tcg-oracle-tools/)
|
|
120
|
-
- **MCP on PyPI**: [pypi.org/project/undesirables-mcp-server](https://pypi.org/project/undesirables-mcp-server/)
|
|
121
|
-
- **Kaggle Dataset**: [370K+ TCG products](https://www.kaggle.com/datasets/sailorpepe/tcg-market-intelligence)
|
|
122
|
-
- **Contract**: [0xa893...17a](https://etherscan.io/token/0xa893648a701c03b14bf2fb767b72b2c55ed5c17a)
|
|
200
|
+
## License
|
|
123
201
|
|
|
124
|
-
|
|
202
|
+
[BUSL-1.1](LICENSE) — Business Source License 1.1. Copyright © 2026 The Undesirables LLC.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Plugin } from '@elizaos/core';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The Undesirables — ElizaOS Plugin v2.0
|
|
3
5
|
* ========================================
|
|
@@ -6,7 +8,7 @@
|
|
|
6
8
|
*
|
|
7
9
|
* Features:
|
|
8
10
|
* - Load any of 4,444 unique soul personalities
|
|
9
|
-
* -
|
|
11
|
+
* - 34 unique tools across the collection
|
|
10
12
|
* - Market analysis with personality-driven perspective
|
|
11
13
|
* - Business Pilot — 23 AI-powered business modules
|
|
12
14
|
* - Meme Machine — content creation & marketing
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
* - Multi-agent safe (workspaces keyed by agentId)
|
|
16
18
|
*
|
|
17
19
|
* @see https://the-undesirables.com
|
|
18
|
-
* @see https://
|
|
20
|
+
* @see https://github.com/sailorpepe/undesirables-mcp-server
|
|
19
21
|
*/
|
|
20
|
-
|
|
22
|
+
|
|
21
23
|
interface SoulWorkspace {
|
|
22
24
|
soulMd: string;
|
|
23
25
|
systemPrompt: string;
|
|
@@ -28,6 +30,5 @@ interface SoulWorkspace {
|
|
|
28
30
|
}
|
|
29
31
|
declare function loadWorkspace(workspacePath: string): Promise<SoulWorkspace>;
|
|
30
32
|
declare const undesirablePlugin: Plugin;
|
|
31
|
-
|
|
32
|
-
export {
|
|
33
|
-
//# sourceMappingURL=index.d.ts.map
|
|
33
|
+
|
|
34
|
+
export { type SoulWorkspace, undesirablePlugin as default, loadWorkspace };
|