obol-ai 0.2.36 → 0.2.37

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.2.37
2
+ - add rename user option to cli config
3
+ - add upgrade screenshot to readme
4
+
1
5
  ## 0.2.36
2
6
  - changelog and issues updates
3
7
  - auto-send tts voice summary when tts is enabled
package/README.md CHANGED
@@ -500,6 +500,8 @@ Or edit `~/.obol/config.json` directly:
500
500
  /help — Show available commands
501
501
  ```
502
502
 
503
+ ![Upgrade](docs/obol-upgrade.png)
504
+
503
505
  Everything else is natural conversation.
504
506
 
505
507
  ## CLI
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obol-ai",
3
- "version": "0.2.36",
3
+ "version": "0.2.37",
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/config.js CHANGED
@@ -162,6 +162,7 @@ async function manageUsers(cfg) {
162
162
  choices: [
163
163
  { name: 'Add user (detect from bot messages)', value: 'detect' },
164
164
  { name: 'Add user (enter ID manually)', value: 'manual' },
165
+ ...(currentUsers.length > 0 ? [{ name: 'Rename user', value: 'rename' }] : []),
165
166
  ...(currentUsers.length > 0 ? [{ name: 'Remove user', value: 'remove' }] : []),
166
167
  new inquirer.Separator(),
167
168
  { name: 'Back', value: 'back' },
@@ -232,6 +233,35 @@ async function manageUsers(cfg) {
232
233
  }
233
234
  }
234
235
 
236
+ if (action === 'rename') {
237
+ const { renameId } = await inquirer.prompt([{
238
+ type: 'list',
239
+ name: 'renameId',
240
+ message: 'Rename which user?',
241
+ choices: [
242
+ ...currentUsers.map(id => {
243
+ const name = cfg.users?.[String(id)]?.name;
244
+ return { name: name ? `${id} — ${name}` : String(id), value: id };
245
+ }),
246
+ new inquirer.Separator(),
247
+ { name: 'Cancel', value: null },
248
+ ],
249
+ }]);
250
+ if (renameId !== null) {
251
+ const currentName = cfg.users?.[String(renameId)]?.name || '';
252
+ const { newName } = await inquirer.prompt([{
253
+ type: 'input',
254
+ name: 'newName',
255
+ message: `Name for user ${renameId}:`,
256
+ default: currentName,
257
+ validate: (v) => v.trim().length > 0 ? true : 'Required',
258
+ }]);
259
+ if (!cfg.users) cfg.users = {};
260
+ if (!cfg.users[String(renameId)]) cfg.users[String(renameId)] = {};
261
+ cfg.users[String(renameId)].name = newName.trim();
262
+ }
263
+ }
264
+
235
265
  if (action === 'remove') {
236
266
  const { removeId } = await inquirer.prompt([{
237
267
  type: 'list',