obol-ai 0.1.0 → 0.1.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/README.md CHANGED
@@ -37,7 +37,7 @@ Named after the AI in [The Last Instruction](https://latentpress.com) — a mach
37
37
  ## Quick Start
38
38
 
39
39
  ```bash
40
- npm install -g obol
40
+ npm install -g obol-ai
41
41
  obol init
42
42
  obol start
43
43
  ```
@@ -314,7 +314,7 @@ Memory lives in Supabase (survives independently).
314
314
  Restore on a new VPS:
315
315
 
316
316
  ```bash
317
- npm install -g obol
317
+ npm install -g obol-ai
318
318
  obol init --restore # Clones brain from GitHub
319
319
  obol start -d
320
320
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obol-ai",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Self-evolving AI assistant that learns, remembers, and acts on its own. Persistent vector memory, self-rewriting personality, proactive heartbeats.",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -10,7 +10,14 @@
10
10
  "start": "node src/index.js",
11
11
  "test": "node tests/run.js"
12
12
  },
13
- "keywords": ["ai", "assistant", "telegram", "anthropic", "claude", "vector-memory"],
13
+ "keywords": [
14
+ "ai",
15
+ "assistant",
16
+ "telegram",
17
+ "anthropic",
18
+ "claude",
19
+ "vector-memory"
20
+ ],
14
21
  "author": "Jo Vinkenroye <jestersimpps@gmail.com>",
15
22
  "license": "MIT",
16
23
  "dependencies": {
package/docs/DEPLOY.md DELETED
@@ -1,277 +0,0 @@
1
- # Deploy OBOL on DigitalOcean
2
-
3
- Complete guide: from zero to a running AI assistant in ~10 minutes.
4
-
5
- ## 1. Create a Droplet
6
-
7
- Go to [cloud.digitalocean.com](https://cloud.digitalocean.com) → **Create** → **Droplets**
8
-
9
- | Setting | Value |
10
- |---------|-------|
11
- | **Region** | Pick the closest to you (e.g. Amsterdam, Frankfurt) |
12
- | **Image** | Ubuntu 24.04 LTS |
13
- | **Size** | Basic → Regular → **$6/mo** (1 vCPU, 1GB RAM, 25GB SSD) |
14
- | **Auth** | SSH key (recommended) or password |
15
- | **Hostname** | `obol` |
16
-
17
- > 💡 The $6 droplet is enough. OBOL is a single Node.js process. The embedding model uses ~200MB RAM on first load, then stays resident. If you plan to run heavy scripts, go $12/mo (2GB RAM).
18
-
19
- Click **Create Droplet**. Copy the IP address.
20
-
21
- ## 2. Connect via SSH
22
-
23
- ```bash
24
- ssh root@YOUR_DROPLET_IP
25
- ```
26
-
27
- > ⚠️ **After first run**, OBOL hardens your server automatically — including moving SSH to port 2222. From then on:
28
- > ```bash
29
- > ssh -p 2222 root@YOUR_DROPLET_IP
30
- > ```
31
-
32
- ## 3. Install Node.js
33
-
34
- ```bash
35
- # Install Node.js 22 LTS via NodeSource
36
- curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
37
- apt-get install -y nodejs
38
-
39
- # Verify
40
- node -v # v22.x.x
41
- npm -v # 10.x.x
42
- ```
43
-
44
- ## 4. Install OBOL
45
-
46
- ```bash
47
- npm install -g obol
48
- ```
49
-
50
- ## 5. Prepare Your Accounts
51
-
52
- Before running `obol init`, have these ready:
53
-
54
- ### Anthropic API Key
55
- 1. Go to [console.anthropic.com](https://console.anthropic.com)
56
- 2. Sign up / log in
57
- 3. Go to **API Keys** → **Create Key**
58
- 4. Copy the key (starts with `sk-ant-`)
59
- 5. Add credits ($5 minimum) — go to **Billing** → **Add funds**
60
-
61
- ### Telegram Bot Token
62
- 1. Open Telegram, search for **@BotFather**
63
- 2. Send `/newbot`
64
- 3. Choose a name (e.g. "My OBOL")
65
- 4. Choose a username (e.g. `my_obol_bot`)
66
- 5. Copy the token (looks like `7123456789:AAF...`)
67
-
68
- ### Your Telegram User ID
69
- 1. Open Telegram, search for **@userinfobot**
70
- 2. Send `/start`
71
- 3. It replies with your numeric ID (e.g. `206639616`)
72
-
73
- ### Supabase Access Token
74
- 1. Go to [supabase.com](https://supabase.com) → sign up (free)
75
- 2. Go to [supabase.com/dashboard/account/tokens](https://supabase.com/dashboard/account/tokens)
76
- 3. **Generate new token** → name it "obol" → copy it
77
-
78
- ### Vercel Token
79
- 1. Go to [vercel.com](https://vercel.com) → sign up (free)
80
- 2. Go to [vercel.com/account/tokens](https://vercel.com/account/tokens)
81
- 3. **Create** → name it "obol" → copy the token
82
-
83
- ### GitHub Token
84
- 1. Go to [github.com/settings/tokens](https://github.com/settings/tokens)
85
- 2. **Generate new token (classic)**
86
- 3. Select scope: `repo`
87
- 4. Copy the token
88
-
89
- ## 6. Run Setup
90
-
91
- ```bash
92
- obol init
93
- ```
94
-
95
- The wizard walks you through everything:
96
-
97
- ```
98
- 🪙 OBOL — Your AI, your rules.
99
-
100
- ─── Anthropic ───
101
- Paste your Anthropic API key: ****
102
- ✅ Anthropic configured
103
-
104
- ─── Telegram ───
105
- Paste BotFather token: ****
106
- ✅ Telegram configured
107
-
108
- ─── Memory (Supabase) ───
109
- Supabase setup: Create new project
110
- Supabase access token: ****
111
- Creating project... ✅
112
- Waiting for project to initialize (~60s)... ✅
113
- Running migrations... ✅
114
-
115
- ─── GitHub (backup) ───
116
- Set up GitHub backup? Yes
117
- GitHub token: ****
118
- Creating private repo: yourname/obol-brain... ✅
119
-
120
- ─── Identity ───
121
- Your name: Jo
122
- Bot name: Mr. Meeseeks
123
- Your Telegram user ID: 206639616
124
-
125
- 🪙 Done! Run: obol start
126
- ```
127
-
128
- ## 7. Test It (Foreground)
129
-
130
- ```bash
131
- obol start
132
- ```
133
-
134
- Go to Telegram, open your bot, send a message. You should get a response from Claude.
135
-
136
- Press `Ctrl+C` to stop.
137
-
138
- ## 8. Run as Daemon
139
-
140
- ```bash
141
- obol start -d
142
- ```
143
-
144
- Check it's running:
145
-
146
- ```bash
147
- obol status
148
- obol logs
149
- ```
150
-
151
- ## 9. Keep It Running (pm2)
152
-
153
- pm2 keeps OBOL alive, auto-restarts on crash, and survives reboots:
154
-
155
- ```bash
156
- # Install pm2 globally
157
- npm install -g pm2
158
-
159
- # Start OBOL with pm2
160
- pm2 start $(which obol) --name obol -- start
161
-
162
- # Auto-start on boot
163
- pm2 startup
164
- pm2 save
165
-
166
- # Useful commands
167
- pm2 status # See running processes
168
- pm2 logs obol # Tail logs
169
- pm2 restart obol # Restart
170
- pm2 stop obol # Stop
171
- pm2 monit # Live monitoring dashboard
172
- ```
173
-
174
- That's it — OBOL auto-starts on boot and restarts if it crashes.
175
-
176
- ## 10. Customize Your Bot
177
-
178
- SSH in and edit the personality files:
179
-
180
- ```bash
181
- nano ~/.obol/personality/SOUL.md # Bot personality
182
- nano ~/.obol/personality/USER.md # About you
183
- nano ~/.obol/personality/AGENTS.md # How it works
184
- ```
185
-
186
- Restart after changes:
187
-
188
- ```bash
189
- pm2 restart obol
190
- ```
191
-
192
- ## Costs
193
-
194
- | Service | Cost |
195
- |---------|------|
196
- | DigitalOcean droplet | $6/mo |
197
- | Anthropic API (Claude Sonnet) | ~$3/mo for moderate use |
198
- | Supabase | Free (500MB) |
199
- | GitHub | Free (private repos) |
200
- | Vercel | Free (100GB bandwidth) |
201
- | Embeddings | Free (runs locally) |
202
- | **Total** | **~$9/mo** |
203
-
204
- ## Updating
205
-
206
- ```bash
207
- npm update -g obol
208
- pm2 restart obol
209
- ```
210
-
211
- ## Backup & Restore
212
-
213
- OBOL automatically backs up to GitHub daily at 3 AM (personality, scripts, commands, daily notes).
214
-
215
- To restore on a new droplet:
216
-
217
- ```bash
218
- npm install -g obol
219
- obol init --restore
220
- # Paste GitHub token → it clones your brain
221
- # Re-enter Telegram token + Anthropic key
222
- obol start -d
223
- ```
224
-
225
- ## Troubleshooting
226
-
227
- ### Can't SSH after first run
228
- OBOL moves SSH to port 2222 during security hardening:
229
- ```bash
230
- ssh -p 2222 root@YOUR_DROPLET_IP
231
- ```
232
-
233
- ### Bot doesn't respond
234
- ```bash
235
- obol status # Is it running?
236
- obol logs # Check for errors
237
- ```
238
-
239
- ### "Not authorized" / bot ignores messages
240
- Check that your Telegram user ID is correct in `~/.obol/config.json`:
241
- ```bash
242
- cat ~/.obol/config.json | grep allowedUsers
243
- ```
244
-
245
- ### Memory not working
246
- ```bash
247
- # Test Supabase connection
248
- curl -s -H "apikey: YOUR_KEY" https://YOUR_PROJECT.supabase.co/rest/v1/obol_memory?limit=1
249
- ```
250
-
251
- ### Out of memory (OOM)
252
- Upgrade to 2GB droplet:
253
- ```bash
254
- # In DigitalOcean dashboard: Droplet → Resize → 2GB ($12/mo)
255
- ```
256
-
257
- Or add swap:
258
- ```bash
259
- fallocate -l 2G /swapfile
260
- chmod 600 /swapfile
261
- mkswap /swapfile
262
- swapon /swapfile
263
- echo '/swapfile none swap sw 0 0' >> /etc/fstab
264
- ```
265
-
266
- ### Firewall
267
- OBOL only makes outbound connections (Telegram, Anthropic, Supabase). No ports need to be opened. But basic hardening is good practice:
268
-
269
- ```bash
270
- ufw allow 2222/tcp
271
- ufw enable
272
- ```
273
- OBOL does this automatically during post-setup.
274
-
275
- ---
276
-
277
- *That's it. One droplet, one process, one bot. 🪙*
Binary file