obol-ai 0.2.29 → 0.2.30
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 +3 -0
- package/package.json +1 -1
- package/src/cli/init.js +4 -62
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obol-ai",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.30",
|
|
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": {
|
package/src/cli/init.js
CHANGED
|
@@ -6,7 +6,7 @@ const { execSync } = require('child_process');
|
|
|
6
6
|
const { getConfigDir, saveConfig, loadConfig, CONFIG_FILE, ensureUserDir } = require('../config');
|
|
7
7
|
const { generatePKCE, buildAuthorizationUrl, exchangeCodeForTokens } = require('../oauth');
|
|
8
8
|
const {
|
|
9
|
-
validateAnthropic, validateTelegram, validateSupabase,
|
|
9
|
+
validateAnthropic, validateTelegram, validateSupabase,
|
|
10
10
|
} = require('../validators');
|
|
11
11
|
|
|
12
12
|
const OBOL_DIR = getConfigDir();
|
|
@@ -120,7 +120,7 @@ async function init(opts = {}) {
|
|
|
120
120
|
|
|
121
121
|
const config = {};
|
|
122
122
|
let step = 0;
|
|
123
|
-
const totalSteps =
|
|
123
|
+
const totalSteps = 5;
|
|
124
124
|
const stepLabel = (name) => `─── Step ${++step}/${totalSteps}: ${name} ───`;
|
|
125
125
|
|
|
126
126
|
// Step 1: Anthropic
|
|
@@ -223,65 +223,7 @@ async function init(opts = {}) {
|
|
|
223
223
|
console.log('');
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
// Step 4:
|
|
227
|
-
console.log(stepLabel('GitHub (backup)') + '\n');
|
|
228
|
-
const { setupGithub } = await inquirer.prompt([{
|
|
229
|
-
type: 'confirm',
|
|
230
|
-
name: 'setupGithub',
|
|
231
|
-
message: 'Set up GitHub backup?',
|
|
232
|
-
default: true,
|
|
233
|
-
}]);
|
|
234
|
-
if (setupGithub) {
|
|
235
|
-
console.log(' OBOL backs up its personality, scripts, and commands to a');
|
|
236
|
-
console.log(' private GitHub repo daily. This lets you restore on any server.\n');
|
|
237
|
-
console.log(' How to get a token:');
|
|
238
|
-
console.log(' 1. Go to https://github.com/settings/tokens');
|
|
239
|
-
console.log(' 2. Click "Generate new token (classic)"');
|
|
240
|
-
console.log(' 3. Name it "obol"');
|
|
241
|
-
console.log(' 4. Check the "repo" scope (full control of private repos)');
|
|
242
|
-
console.log(' 5. Click "Generate token" and copy it\n');
|
|
243
|
-
const { githubToken } = await inquirer.prompt([{
|
|
244
|
-
type: 'password',
|
|
245
|
-
name: 'githubToken',
|
|
246
|
-
message: 'GitHub personal access token:',
|
|
247
|
-
mask: '*',
|
|
248
|
-
}]);
|
|
249
|
-
config.github = await setupGitHub(githubToken);
|
|
250
|
-
} else {
|
|
251
|
-
config.github = null;
|
|
252
|
-
console.log(' Skipped — no backup configured\n');
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// Step 5: Vercel
|
|
256
|
-
console.log(stepLabel('Vercel (deploy sites)') + '\n');
|
|
257
|
-
const { setupVercel } = await inquirer.prompt([{
|
|
258
|
-
type: 'confirm',
|
|
259
|
-
name: 'setupVercel',
|
|
260
|
-
message: 'Set up Vercel deployments?',
|
|
261
|
-
default: true,
|
|
262
|
-
}]);
|
|
263
|
-
if (setupVercel) {
|
|
264
|
-
console.log(' OBOL can deploy websites and apps to Vercel for you.\n');
|
|
265
|
-
console.log(' How to get a token:');
|
|
266
|
-
console.log(' 1. Go to https://vercel.com (sign up free if needed)');
|
|
267
|
-
console.log(' 2. Go to https://vercel.com/account/tokens');
|
|
268
|
-
console.log(' 3. Click "Create" and name it "obol"');
|
|
269
|
-
console.log(' 4. Copy the token\n');
|
|
270
|
-
const { vercelToken } = await inquirer.prompt([{
|
|
271
|
-
type: 'password',
|
|
272
|
-
name: 'vercelToken',
|
|
273
|
-
message: 'Vercel token:',
|
|
274
|
-
mask: '*',
|
|
275
|
-
}]);
|
|
276
|
-
config.vercel = { token: vercelToken };
|
|
277
|
-
await validateCredential('Vercel', () => validateVercel(vercelToken));
|
|
278
|
-
} else {
|
|
279
|
-
config.vercel = null;
|
|
280
|
-
console.log(' Skipped — no deploy target configured\n');
|
|
281
|
-
}
|
|
282
|
-
console.log('');
|
|
283
|
-
|
|
284
|
-
// Step 6: Identity
|
|
226
|
+
// Step 4: Identity
|
|
285
227
|
console.log(stepLabel('Identity') + '\n');
|
|
286
228
|
console.log(' Give your bot a name and tell it who you are.');
|
|
287
229
|
console.log(' The bot name appears in personality files. Change later with `obol config`.\n');
|
|
@@ -292,7 +234,7 @@ async function init(opts = {}) {
|
|
|
292
234
|
config.owner = { name: ownerName };
|
|
293
235
|
config.bot = { name: botName };
|
|
294
236
|
|
|
295
|
-
// Step
|
|
237
|
+
// Step 5: Allowed Telegram users
|
|
296
238
|
console.log('\n' + stepLabel('Access control') + '\n');
|
|
297
239
|
console.log(' Each allowed user gets their own isolated brain — separate');
|
|
298
240
|
console.log(' personality, memory, evolution cycle, and workspace.');
|