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.
Files changed (2) hide show
  1. package/README.md +147 -129
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -6,136 +6,169 @@
6
6
  [![npm downloads](https://img.shields.io/npm/dw/plugin-undesirables.svg)](https://www.npmjs.org/package/plugin-undesirables)
7
7
  [![License: BUSL-1.1](https://img.shields.io/badge/License-BUSL--1.1-blue.svg)](LICENSE)
8
8
  [![ElizaOS](https://img.shields.io/badge/ElizaOS-v2_Compatible-purple.svg)](https://elizaos.ai)
9
- [![MCP Server](https://img.shields.io/badge/MCP_Server-34_Tools-green.svg)](https://github.com/sailorpepe/undesirables-mcp-server)
10
- [![Actions](https://img.shields.io/badge/Actions-9_Total-brightgreen.svg)](https://www.npmjs.org/package/plugin-undesirables)
11
- [![x402](https://img.shields.io/badge/x402-Pay_Per_Request-orange.svg)](https://oracle.the-undesirables.com)
9
+ [![MCP Server](https://img.shields.io/badge/MCP_Server-35+_Tools-green.svg)](https://github.com/sailorpepe/undesirables-mcp-server)
10
+ [![x402](https://img.shields.io/badge/x402-Oracle_API-orange.svg)](https://oracle.the-undesirables.com)
12
11
 
13
- > Give any ElizaOS agent a persistent personality, market analysis skills, business automation, and content creation — all driven by a downloadable "soul workspace."
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
- Each of the 4,444 NFTs in [The Undesirables](https://the-undesirables.com) collection has a downloadable "soul workspace" — a structured personality profile with Big Five psychology scores, an archetype, a strategy style, guardrails, and a backstory. This plugin loads that workspace and injects the personality into every ElizaOS agent response.
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
- When you install `plugin-undesirables`, your agent gets:
20
+ Install the plugin, and your agent immediately gets:
22
21
 
23
- - **Persistent personality** — structured workspace data (not a system prompt) with Big Five scores, an archetype, strategy, adjectives, guardrails, and backstory. Persists across sessions and colors every response.
24
- - **Market analysis with conviction** — filters market data through the agent's own risk tolerance and strategy. Returns opinionated takes with conviction scores.
25
- - **24 built-in skills** — portfolio checks, entry signals, exit strategies, whale tracking, meme creation, video production, music generation, and more. Auto-matches the right skill to your message.
26
- - **Business Pilot** — phone answering, SMS autoresponders, invoice chasers, appointment scheduling. Turn your agent into a business operations assistant.
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
- ## Quick Start
29
+ ## Architecture
32
30
 
33
- ### 1. Install
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
- ### 2. Get a Soul Workspace
67
+ ---
40
68
 
41
- Go to [the-undesirables.com/soul](https://the-undesirables.com/soul), connect your wallet, and download your workspace. Unzip it somewhere on your machine.
69
+ ## Quick Start
42
70
 
43
- Each workspace contains:
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
- ### 3. Configure
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
- **Windows:**
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": "C:\\Users\\YourName\\Desktop\\soul_0420"
95
+ "UNDESIRABLES_WORKSPACE": "/path/to/your/soul_workspace"
70
96
  }
71
97
  }
72
98
  ```
73
99
 
74
- ### 4. Run
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
- ```bash
77
- elizaos start --character your-character.json
78
- ```
102
+ ---
79
103
 
80
- Your agent now has a persistent personality that influences every conversation.
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
- ## Actions (9 Total)
85
-
86
- ### Core Actions
87
-
88
- | Action | Trigger Examples | What Happens |
89
- |--------|-----------------|--------------|
90
- | `UNDESIRABLE_MARKET_ANALYSIS` | "What do you think about ETH?" | Personality-driven market analysis with risk guardrails and conviction scoring |
91
- | `UNDESIRABLE_BUSINESS_PILOT` | "Set up phone answering for my barbershop" | Loads the Business Pilot skill, recommends top modules with setup steps |
92
- | `UNDESIRABLE_MEME_MACHINE` | "Create memes for my coffee shop" | Generates meme concepts, captions, content calendars, brand voice |
93
- | `UNDESIRABLE_LOAD_SKILL` | "Check my portfolio" / "Should I ape?" | Auto-matches your message to one of 24 skills and executes it |
94
-
95
- ### Dedicated Trading Actions (NEW in v2.1.0)
96
-
97
- | Action | Trigger Examples | What Happens |
98
- |--------|-----------------|--------------|
99
- | `UNDESIRABLE_WHALE_TRACKER` | "What are whales buying?" / "Smart money flows" | Tracks whale wallet movements, institutional buys/sells, and smart money flows |
100
- | `UNDESIRABLE_ENTRY_SIGNAL` | "Is now a good time to buy ETH?" / "Buy signal" | Evaluates price action, momentum, support/resistance — returns GO / WAIT / NO-GO |
101
- | `UNDESIRABLE_PORTFOLIO_CHECK` | "How does my portfolio look?" / "Am I diversified?" | Reviews portfolio health, concentration risk, and grades it A-F against guardrails |
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 has a `SOUL.md` file with structured personality data:
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 `soulProvider` injects this context into **every** agent response automatically. Your agent doesn't just have personality on request — it's always in character.
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
- This means two different Undesirable agents will give you completely different takes on the same market question, filtered through their individual psychology.
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
- ## Multi-Agent Safety
191
+ ## Security
159
192
 
160
- 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.
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
- | Error | Fix |
167
- |-------|-----|
168
- | `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 `\\`. |
169
- | `Invalid JSON Error` | Your `character.json` has a syntax error. Open it in VS Code or Cursor and fix the formatting. |
170
- | `No soul workspace loaded` | The `UNDESIRABLES_WORKSPACE` setting is missing or the path doesn't exist. |
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) — Soul personality + business tools (this package)
196
- - [@undesirables/plugin-tcg-oracle](https://github.com/sailorpepe/elizaos-tcg-oracle-plugin) — TCG market intelligence (search, grade, simulate)
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
- ### Servers & APIs
199
- - [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))
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/tcg-oracle-app) — macOS / Linux / Windows desktop app with AI card grading
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
- - [HuggingFace Space](https://huggingface.co/spaces/sailorpepe/tcg-oracle) — Live demo
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 NFTs on Ethereum
214
- - [Soul Workspace](https://the-undesirables.com/soul) — Download your agent's personality
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.1",
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",