plugin-undesirables 2.4.1 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +147 -129
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,136 +6,169 @@
|
|
|
6
6
|
[](https://www.npmjs.org/package/plugin-undesirables)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
[](https://elizaos.ai)
|
|
9
|
-
[](https://oracle.the-undesirables.com)
|
|
9
|
+
[](https://github.com/sailorpepe/undesirables-mcp-server)
|
|
10
|
+
[](https://oracle.the-undesirables.com)
|
|
12
11
|
|
|
13
|
-
>
|
|
12
|
+
> Personality-as-Code for ElizaOS agents. Live market data from 370K+ indexed products. Zero config required.
|
|
14
13
|
|
|
15
14
|
---
|
|
16
15
|
|
|
17
16
|
## What This Does
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
`plugin-undesirables` gives any ElizaOS agent a structured personality, live TCG market data, and 24 specialized skills — with zero configuration required.
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
Install the plugin, and your agent immediately gets:
|
|
22
21
|
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **24
|
|
26
|
-
- **
|
|
27
|
-
- **Meme Machine** — content creation, brand voice setup, content calendars, and industry-specific meme packs. Turn your agent into a social media manager.
|
|
22
|
+
- **A working personality** — a demo soul loads automatically. NFT holders get their unique AI identity.
|
|
23
|
+
- **Live market data** — real product prices from 370K+ indexed TCG products, injected into every relevant conversation.
|
|
24
|
+
- **24 skills** — market analysis, portfolio checks, entry signals, exit strategies, risk assessment, content creation, and more.
|
|
25
|
+
- **Passive market intelligence** — an evaluator that detects card/market topics and enriches the agent's context with live pricing data automatically.
|
|
28
26
|
|
|
29
27
|
---
|
|
30
28
|
|
|
31
|
-
##
|
|
29
|
+
## Architecture
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
The Undesirables ecosystem has three tiers. The plugin is the free entry point.
|
|
34
32
|
|
|
35
|
-
```bash
|
|
36
|
-
npm install plugin-undesirables
|
|
37
33
|
```
|
|
34
|
+
┌─────────────────────────────────────────────────────────┐
|
|
35
|
+
│ PLUGIN (npm install plugin-undesirables) │
|
|
36
|
+
│ Free — no keys, no wallets, no payments │
|
|
37
|
+
│ │
|
|
38
|
+
│ ✓ Demo soul (loads automatically, zero config) │
|
|
39
|
+
│ ✓ All 24 skills │
|
|
40
|
+
│ ✓ 9 personality-driven actions │
|
|
41
|
+
│ ✓ Live Oracle data (search + daily market snapshot) │
|
|
42
|
+
│ ✓ Passive market intelligence evaluator │
|
|
43
|
+
│ ✓ NFT holder souls (unique personality + memory) │
|
|
44
|
+
├──────────────────────────────────────────────────────────┤
|
|
45
|
+
│ ORACLE API (oracle.the-undesirables.com) │
|
|
46
|
+
│ Paid — x402 micropayments, USDC on Base │
|
|
47
|
+
│ │
|
|
48
|
+
│ $0.10 AI card grading (PSA/Beckett via vision model) │
|
|
49
|
+
│ $0.015 Monte Carlo price simulation (Heston/Merton/Kou) │
|
|
50
|
+
│ $0.05 NFT floor price oracle + forecast │
|
|
51
|
+
│ $0.05 Token price simulation (CoinGecko + Monte Carlo) │
|
|
52
|
+
│ $1.00 Cross-platform prediction market arbitrage │
|
|
53
|
+
│ $0.50 Multi-outcome basket arbitrage │
|
|
54
|
+
│ $0.25 Weather derivatives edge scanning │
|
|
55
|
+
├──────────────────────────────────────────────────────────┤
|
|
56
|
+
│ MCP SERVER (pip install undesirables-mcp-server) │
|
|
57
|
+
│ Local — runs on your machine, 35+ tools │
|
|
58
|
+
│ │
|
|
59
|
+
│ Full tool suite for Claude, Cursor, or any MCP client. │
|
|
60
|
+
│ All processing happens locally. Nothing leaves your │
|
|
61
|
+
│ machine unless you configure external API access. │
|
|
62
|
+
└─────────────────────────────────────────────────────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The plugin provides free personality and data. The Oracle API provides paid computational intelligence. The MCP server provides local tool access. Each tier works independently.
|
|
38
66
|
|
|
39
|
-
|
|
67
|
+
---
|
|
40
68
|
|
|
41
|
-
|
|
69
|
+
## Quick Start
|
|
42
70
|
|
|
43
|
-
|
|
44
|
-
- `SOUL.md` — personality profile (Big Five scores, archetype, strategy, backstory)
|
|
45
|
-
- `SYSTEM_PROMPT.txt` — the full instruction set
|
|
46
|
-
- `MEMORY.md` — persistent memory file
|
|
47
|
-
- `PREDICTIONS_LEDGER.json` — track record of market calls
|
|
48
|
-
- `skills/` — 10-24 skill files depending on the agent's traits
|
|
71
|
+
### Option A: Zero Config (Demo Soul)
|
|
49
72
|
|
|
50
|
-
|
|
73
|
+
```bash
|
|
74
|
+
npm install plugin-undesirables
|
|
75
|
+
```
|
|
51
76
|
|
|
52
77
|
Add to your ElizaOS `character.json`:
|
|
53
78
|
|
|
54
|
-
**macOS / Linux:**
|
|
55
79
|
```json
|
|
56
80
|
{
|
|
57
|
-
"plugins": ["plugin-undesirables"]
|
|
58
|
-
"settings": {
|
|
59
|
-
"UNDESIRABLES_WORKSPACE": "/Users/YourName/Desktop/soul_0420"
|
|
60
|
-
}
|
|
81
|
+
"plugins": ["plugin-undesirables"]
|
|
61
82
|
}
|
|
62
83
|
```
|
|
63
84
|
|
|
64
|
-
|
|
85
|
+
That's it. Your agent loads a demo personality with all 24 skills and live Oracle data. No wallet, no API key, no workspace download needed.
|
|
86
|
+
|
|
87
|
+
### Option B: NFT Holder (Unique Soul)
|
|
88
|
+
|
|
89
|
+
If you own an Undesirable NFT, download your soul workspace from [the-undesirables.com](https://the-undesirables.com) and point the plugin to it:
|
|
90
|
+
|
|
65
91
|
```json
|
|
66
92
|
{
|
|
67
93
|
"plugins": ["plugin-undesirables"],
|
|
68
94
|
"settings": {
|
|
69
|
-
"UNDESIRABLES_WORKSPACE": "
|
|
95
|
+
"UNDESIRABLES_WORKSPACE": "/path/to/your/soul_workspace"
|
|
70
96
|
}
|
|
71
97
|
}
|
|
72
98
|
```
|
|
73
99
|
|
|
74
|
-
|
|
100
|
+
Your agent gets a unique personality derived from your NFT's visual traits — Big Five psychology scores, an archetype, a strategy style, persistent memory, and a predictions ledger. No two souls are alike.
|
|
75
101
|
|
|
76
|
-
|
|
77
|
-
elizaos start --character your-character.json
|
|
78
|
-
```
|
|
102
|
+
---
|
|
79
103
|
|
|
80
|
-
|
|
104
|
+
## What's Included
|
|
105
|
+
|
|
106
|
+
### Providers (2)
|
|
107
|
+
|
|
108
|
+
| Provider | What It Does |
|
|
109
|
+
|----------|-------------|
|
|
110
|
+
| `undesirables-oracle` | Fetches live product prices from 370K+ indexed TCG products and daily market snapshots. Triggers automatically when the conversation mentions cards, prices, or market topics. |
|
|
111
|
+
| `undesirables-soul` | Injects the agent's personality context into every response. Loads demo soul by default or the NFT holder's unique soul when configured. |
|
|
112
|
+
|
|
113
|
+
### Evaluators (1)
|
|
114
|
+
|
|
115
|
+
| Evaluator | What It Does |
|
|
116
|
+
|-----------|-------------|
|
|
117
|
+
| `UNDESIRABLE_MARKET_INTELLIGENCE` | Runs passively on every message. When the conversation touches TCG card topics, it auto-enriches the agent's context with live pricing from the Oracle API. The agent becomes market-aware without anyone explicitly asking. |
|
|
118
|
+
|
|
119
|
+
### Actions (9)
|
|
120
|
+
|
|
121
|
+
| Action | What It Does |
|
|
122
|
+
|--------|-------------|
|
|
123
|
+
| `UNDESIRABLE_MARKET_ANALYSIS` | Personality-driven market analysis with conviction scoring and risk guardrails |
|
|
124
|
+
| `UNDESIRABLE_BUSINESS_PILOT` | AI business automation — phone answering, SMS, invoicing, scheduling |
|
|
125
|
+
| `UNDESIRABLE_MEME_MACHINE` | Content creation — meme concepts, brand voice, content calendars |
|
|
126
|
+
| `UNDESIRABLE_LOAD_SKILL` | Routes user messages to the best-matching skill from the 24 available |
|
|
127
|
+
| `UNDESIRABLE_WHALE_TRACKER` | Whale wallet movement analysis and smart money flow tracking |
|
|
128
|
+
| `UNDESIRABLE_ENTRY_SIGNAL` | Entry evaluation — GO / WAIT / NO-GO with support/resistance levels |
|
|
129
|
+
| `UNDESIRABLE_PORTFOLIO_CHECK` | Portfolio health assessment with A–F rating and concentration risk |
|
|
130
|
+
| `UNDESIRABLE_EXIT_STRATEGY` | Exit planning — TP1/TP2/TP3 levels, stop losses, time-based rules |
|
|
131
|
+
| `UNDESIRABLE_RISK_ASSESSMENT` | Risk rating 1–10 with SAFE / CAUTION / DANGER verdict |
|
|
132
|
+
|
|
133
|
+
### Skills (24)
|
|
134
|
+
|
|
135
|
+
All 24 skills are available to every user — demo and NFT holder alike.
|
|
136
|
+
|
|
137
|
+
| Category | Skills |
|
|
138
|
+
|----------|--------|
|
|
139
|
+
| **Trading** | Market Analysis, Entry Signal, Exit Strategy, Conviction Score, Position Sizing |
|
|
140
|
+
| **Portfolio** | Portfolio Check, Rebalance Check, Diversification, Sector Rotation |
|
|
141
|
+
| **Risk** | Risk Assessment, Volatility Scan, Liquidation Watch, MEV Detection |
|
|
142
|
+
| **DeFi** | Farm Yield, Compound Strategy, Snipe Launch, Memecoin Scanner, Ape Checklist |
|
|
143
|
+
| **Social** | Whale Tracker, Copy Trade, Prediction Log |
|
|
144
|
+
| **Content** | Content Creation, Image Generation, Music Generation, Video Production |
|
|
81
145
|
|
|
82
146
|
---
|
|
83
147
|
|
|
84
|
-
##
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
|
89
|
-
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
| `UNDESIRABLE_EXIT_STRATEGY` | "When should I sell my ETH?" / "Set up take profit" | Plans TP1/TP2/TP3 levels, stop loss placement, and time-based exit rules |
|
|
103
|
-
| `UNDESIRABLE_RISK_ASSESSMENT` | "Is this memecoin safe?" / "How risky is leveraged ETH?" | Deep risk analysis — returns SAFE / CAUTION / DANGER with top 3 risk factors |
|
|
104
|
-
|
|
105
|
-
### All 24 Skills
|
|
106
|
-
|
|
107
|
-
| Skill | Trigger Words |
|
|
108
|
-
|-------|--------------|
|
|
109
|
-
| Portfolio Check | "portfolio", "balance", "holdings" |
|
|
110
|
-
| Content Creation | "tweet", "write", "promote", "thread" |
|
|
111
|
-
| Entry Signal | "should I buy", "buy signal", "good time to buy" |
|
|
112
|
-
| Exit Strategy | "sell", "take profit", "stop loss" |
|
|
113
|
-
| Risk Assessment | "risk", "downside", "worst case", "is this safe" |
|
|
114
|
-
| Whale Tracker | "whale", "smart money", "what are whales buying" |
|
|
115
|
-
| Conviction Score | "conviction", "confidence", "how sure" |
|
|
116
|
-
| Snipe Launch | "snipe", "new launch", "just launched" |
|
|
117
|
-
| Memecoin Scanner | "memecoin", "find me a gem", "degen scan" |
|
|
118
|
-
| Ape Checklist | "should I ape", "ape check" |
|
|
119
|
-
| Position Sizing | "position size", "how much should I buy" |
|
|
120
|
-
| Volatility Scan | "volatile", "what's moving" |
|
|
121
|
-
| Liquidation Watch | "liquidation levels", "longs", "shorts" |
|
|
122
|
-
| MEV Detection | "mev", "sandwich", "front-running" |
|
|
123
|
-
| Farm Yield | "yield farming", "liquidity", "best yield" |
|
|
124
|
-
| Compound Strategy | "compound", "auto-compound", "apy" |
|
|
125
|
-
| Copy Trade | "copy trade", "mirror this wallet" |
|
|
126
|
-
| Rebalance Check | "rebalance", "allocation", "portfolio drift" |
|
|
127
|
-
| Diversification | "diversify", "spread", "concentrate" |
|
|
128
|
-
| Sector Rotation | "sector", "rotation", "cycle" |
|
|
129
|
-
| Prediction Log | "predict", "forecast", "call" |
|
|
130
|
-
| Image Generation | "image", "picture", "generate art" |
|
|
131
|
-
| Music Generation | "music", "song", "beat" |
|
|
132
|
-
| Video Production | "video", "promo", "render video" |
|
|
148
|
+
## Access Model
|
|
149
|
+
|
|
150
|
+
| Feature | Demo (Free) | NFT Holder |
|
|
151
|
+
|---------|:-----------:|:----------:|
|
|
152
|
+
| All 24 skills | ✓ | ✓ |
|
|
153
|
+
| Live Oracle data | ✓ | ✓ |
|
|
154
|
+
| Market intelligence evaluator | ✓ | ✓ |
|
|
155
|
+
| All 9 actions | ✓ | ✓ |
|
|
156
|
+
| **Unique personality** | — | ✓ |
|
|
157
|
+
| **Persistent memory** | — | ✓ |
|
|
158
|
+
| **Predictions ledger** | — | ✓ |
|
|
159
|
+
| **Custom voice & archetype** | — | ✓ |
|
|
160
|
+
|
|
161
|
+
Skills are the distribution. Personality is the NFT value.
|
|
162
|
+
|
|
163
|
+
- **4,444** total souls on Ethereum
|
|
164
|
+
- **273** minted
|
|
165
|
+
- **4,171** unclaimed at [scatter.art/the-undesirables](https://scatter.art/the-undesirables)
|
|
133
166
|
|
|
134
167
|
---
|
|
135
168
|
|
|
136
169
|
## How Personality Works
|
|
137
170
|
|
|
138
|
-
Each soul workspace
|
|
171
|
+
Each soul workspace contains a `SOUL.md` with structured personality data:
|
|
139
172
|
|
|
140
173
|
```yaml
|
|
141
174
|
name: "Doña Crypto"
|
|
@@ -149,71 +182,56 @@ agreeableness: 45
|
|
|
149
182
|
neuroticism: 28
|
|
150
183
|
```
|
|
151
184
|
|
|
152
|
-
The `
|
|
185
|
+
The `undesirables-soul` provider injects this context into **every** agent response. Two different Undesirable agents will give completely different takes on the same question, filtered through their individual psychology.
|
|
153
186
|
|
|
154
|
-
|
|
187
|
+
Workspaces are keyed by `runtime.agentId`. Multiple Undesirable agents can run in the same ElizaOS instance without personality collision.
|
|
155
188
|
|
|
156
189
|
---
|
|
157
190
|
|
|
158
|
-
##
|
|
191
|
+
## Security
|
|
159
192
|
|
|
160
|
-
|
|
193
|
+
| Measure | Implementation |
|
|
194
|
+
|---------|---------------|
|
|
195
|
+
| Path traversal protection | `getSafePath()` validates boundaries + resolves symlinks via `fs.realpathSync` |
|
|
196
|
+
| YAML injection | Parsed with `js-yaml` `JSON_SCHEMA` (no function execution). `__proto__`, `constructor`, `prototype` keys stripped. |
|
|
197
|
+
| Prompt isolation | Skill content wrapped with security warning — treated as inert reference material |
|
|
198
|
+
| Oracle fetch | 8-second timeout via `AbortSignal`, `redirect: "error"` prevents SSRF |
|
|
199
|
+
| Error handling | LLM failures return safe user-facing message — no prompt context leaked |
|
|
200
|
+
| Multi-agent safety | Workspace state keyed by `agentId` — no cross-agent state leakage |
|
|
161
201
|
|
|
162
202
|
---
|
|
163
203
|
|
|
164
204
|
## Troubleshooting
|
|
165
205
|
|
|
166
|
-
|
|
|
167
|
-
|
|
168
|
-
| `Workspace /path/ does not exist` | Check the path in your `character.json`.
|
|
169
|
-
|
|
|
170
|
-
|
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## What's New in v2.1.0
|
|
175
|
-
|
|
176
|
-
- **5 new dedicated trading actions** — whale tracking, entry signals, portfolio checks, exit strategies, and risk assessment are now first-class actions (previously bundled in the generic `LOAD_SKILL` action)
|
|
177
|
-
- **Better discoverability** — ElizaOS can now route directly to the right action without keyword matching
|
|
178
|
-
- **Richer responses** — each action has specialized instructions (GO/WAIT/NO-GO for entries, A-F grades for portfolios, SAFE/CAUTION/DANGER for risk)
|
|
179
|
-
- **9 total actions** (was 4)
|
|
180
|
-
|
|
181
|
-
## What's New in v2.0
|
|
182
|
-
|
|
183
|
-
- Action handlers route through `runtime.generateText()` instead of leaking raw prompt instructions
|
|
184
|
-
- Multi-agent state isolation — workspaces keyed by `agentId`
|
|
185
|
-
- Real `@elizaos/core` v2 types (no more hand-written stubs)
|
|
186
|
-
- Async filesystem (`fs.promises`)
|
|
187
|
-
- Secure YAML parsing (`js-yaml` with `JSON_SCHEMA`)
|
|
188
|
-
- ESM module format
|
|
206
|
+
| Issue | Solution |
|
|
207
|
+
|-------|----------|
|
|
208
|
+
| `Workspace /path/ does not exist` | Check the path in your `character.json`. Must be an absolute path. Windows: use double backslashes `\\`. |
|
|
209
|
+
| No personality detected | If no `UNDESIRABLES_WORKSPACE` is set, the demo soul loads automatically. Check the console for `🐸` log messages. |
|
|
210
|
+
| Oracle data not appearing | The Oracle provider triggers on TCG-related keywords. Try asking about a specific card by name. |
|
|
189
211
|
|
|
190
212
|
---
|
|
191
213
|
|
|
192
214
|
## Ecosystem
|
|
193
215
|
|
|
194
|
-
### Plugins
|
|
195
|
-
- [plugin-undesirables](https://www.npmjs.com/package/plugin-undesirables) —
|
|
196
|
-
- [
|
|
216
|
+
### Plugins & SDKs
|
|
217
|
+
- **[plugin-undesirables](https://www.npmjs.com/package/plugin-undesirables)** — ElizaOS personality + market data (this package)
|
|
218
|
+
- **[undesirables-mcp-server](https://pypi.org/project/undesirables-mcp-server/)** — 35+ tool MCP server ([GitHub](https://github.com/sailorpepe/undesirables-mcp-server) · [Glama](https://glama.ai/mcp/servers/sailorpepe/undesirables-mcp-server) · [Official MCP Registry](https://registry.modelcontextprotocol.io))
|
|
219
|
+
- **[tcg-oracle-tools](https://pypi.org/project/tcg-oracle-tools/)** — Python SDK for the Oracle API
|
|
197
220
|
|
|
198
|
-
###
|
|
199
|
-
- [
|
|
200
|
-
- [x402 Oracle API](https://oracle.the-undesirables.com) — Pay-per-request TCG + prediction market intelligence ([Swagger](https://oracle.the-undesirables.com/docs))
|
|
221
|
+
### APIs
|
|
222
|
+
- **[Oracle API](https://oracle.the-undesirables.com)** — x402 pay-per-request intelligence ([Swagger Docs](https://oracle.the-undesirables.com/docs))
|
|
201
223
|
|
|
202
224
|
### Apps
|
|
203
|
-
- [TCG Oracle Desktop](https://github.com/sailorpepe/
|
|
204
|
-
- [Desktop Installer](https://github.com/sailorpepe/undesirables-desktop/releases/tag/v1.3.0) — DMG, DEB, RPM, AppImage, MSI binaries
|
|
205
|
-
- [TCG Oracle Tools](https://pypi.org/project/tcg-oracle-tools/) — Python SDK for the Oracle API
|
|
225
|
+
- **[TCG Oracle Desktop](https://github.com/sailorpepe/undesirables-desktop/releases)** — macOS, Linux, Windows installer with AI card grading UI
|
|
206
226
|
|
|
207
227
|
### Data & Research
|
|
208
|
-
- [Kaggle Dataset](https://www.kaggle.com/datasets/sailorpepe/tcg-market-intelligence) — 370K+ TCG products across 25 games
|
|
209
|
-
- [
|
|
210
|
-
- [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
|
|
228
|
+
- **[Kaggle Dataset](https://www.kaggle.com/datasets/sailorpepe/tcg-market-intelligence)** — 370K+ TCG products across 25 games
|
|
229
|
+
- **[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
|
|
211
230
|
|
|
212
231
|
### Collection
|
|
213
|
-
- [The Undesirables](https://the-undesirables.com) — 4,444
|
|
214
|
-
- [
|
|
215
|
-
- [Etherscan](https://etherscan.io/address/0xa893648a701c03b14bf2fb767b72b2c55ed5c17a) — Contract
|
|
216
|
-
- [Scatter.art](https://scatter.art/the-undesirables) — Mint page
|
|
232
|
+
- **[The Undesirables](https://the-undesirables.com)** — 4,444 AI agents on Ethereum
|
|
233
|
+
- **[Scatter.art](https://scatter.art/the-undesirables)** — Mint page
|
|
234
|
+
- **[Etherscan](https://etherscan.io/address/0xa893648a701c03b14bf2fb767b72b2c55ed5c17a)** — Contract
|
|
217
235
|
|
|
218
236
|
---
|
|
219
237
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plugin-undesirables",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "ElizaOS plugin: Persistent personality via NFT soul workspaces. 4,444 unique AI agents on Ethereum with Big Five psychology, market analysis, Business Pilot, Meme Machine, and 24 skills.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|