obol-ai 0.2.38 → 0.2.39
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obol-ai",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.39",
|
|
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": {
|
|
@@ -9,6 +9,7 @@ const { sendHtml, splitMessage, startTyping } = require('../utils');
|
|
|
9
9
|
const pkg = require('../../../package.json');
|
|
10
10
|
|
|
11
11
|
function register(bot, config, createAsk) {
|
|
12
|
+
const botName = config.bot?.name || 'OBOL';
|
|
12
13
|
bot.command('backup', async (ctx) => {
|
|
13
14
|
if (!ctx.from) return;
|
|
14
15
|
try {
|
|
@@ -173,7 +174,7 @@ Summarize what was cleaned and secrets migrated.`);
|
|
|
173
174
|
const current = getMaxToolIterations();
|
|
174
175
|
|
|
175
176
|
if (!args[0]) {
|
|
176
|
-
await ctx.reply(`🔧 Max tool iterations: ${current}\n\nThis limits how many tool calls
|
|
177
|
+
await ctx.reply(`🔧 Max tool iterations: ${current}\n\nThis limits how many tool calls ${botName} can make per message. Higher = more complex tasks, but slower responses.\n\nSet: /toolimit <number>\nExample: /toolimit 50`);
|
|
177
178
|
return;
|
|
178
179
|
}
|
|
179
180
|
|
|
@@ -3,8 +3,9 @@ const { TERM_SEP } = require('../constants');
|
|
|
3
3
|
const pkg = require('../../../package.json');
|
|
4
4
|
|
|
5
5
|
function register(bot, config) {
|
|
6
|
+
const botName = config.bot?.name || 'OBOL';
|
|
6
7
|
bot.command('start', async (ctx) => {
|
|
7
|
-
await ctx.reply(`<pre>◈
|
|
8
|
+
await ctx.reply(`<pre>◈ ${botName} v${pkg.version}\n${TERM_SEP}\nSYSTEM ONLINE\n${TERM_SEP}</pre>`, { parse_mode: 'HTML' });
|
|
8
9
|
});
|
|
9
10
|
|
|
10
11
|
bot.command('new', async (ctx) => {
|
|
@@ -7,6 +7,7 @@ const { termBar, formatTraits } = require('../utils');
|
|
|
7
7
|
const { TERM_SEP } = require('../constants');
|
|
8
8
|
|
|
9
9
|
function register(bot, config) {
|
|
10
|
+
const botName = config.bot?.name || 'OBOL';
|
|
10
11
|
bot.command('status', async (ctx) => {
|
|
11
12
|
if (!ctx.from) return;
|
|
12
13
|
const tenant = await getTenant(ctx.from.id, config);
|
|
@@ -18,7 +19,7 @@ function register(bot, config) {
|
|
|
18
19
|
const pkg = require('../../../package.json');
|
|
19
20
|
|
|
20
21
|
const lines = [
|
|
21
|
-
`◈
|
|
22
|
+
`◈ ${botName} SYSTEM STATUS`,
|
|
22
23
|
TERM_SEP,
|
|
23
24
|
``,
|
|
24
25
|
`RUNTIME`,
|
|
@@ -66,7 +67,7 @@ function register(bot, config) {
|
|
|
66
67
|
const state = loadEvolutionState(tenant.userDir);
|
|
67
68
|
|
|
68
69
|
const lines = [
|
|
69
|
-
`◈
|
|
70
|
+
`◈ ${botName} EVOLUTION CYCLE`,
|
|
70
71
|
TERM_SEP,
|
|
71
72
|
``,
|
|
72
73
|
` ${state.evolutionCount || 0} completed`,
|
|
@@ -108,7 +109,7 @@ function register(bot, config) {
|
|
|
108
109
|
if (!ctx.from) return;
|
|
109
110
|
const tenant = await getTenant(ctx.from.id, config);
|
|
110
111
|
const running = tenant.bg.getStatus();
|
|
111
|
-
const lines = [`◈
|
|
112
|
+
const lines = [`◈ ${botName} ACTIVE TASKS`, TERM_SEP];
|
|
112
113
|
if (running.length === 0) {
|
|
113
114
|
lines.push(``, ` (none)`);
|
|
114
115
|
} else {
|
|
@@ -5,6 +5,7 @@ const { formatTraits } = require('../utils');
|
|
|
5
5
|
const { TERM_SEP } = require('../constants');
|
|
6
6
|
|
|
7
7
|
function register(bot, config) {
|
|
8
|
+
const botName = config.bot?.name || 'OBOL';
|
|
8
9
|
bot.command('traits', async (ctx) => {
|
|
9
10
|
if (!ctx.from) return;
|
|
10
11
|
const tenant = await getTenant(ctx.from.id, config);
|
|
@@ -15,7 +16,7 @@ function register(bot, config) {
|
|
|
15
16
|
saveTraits(personalityDir, { ...DEFAULT_TRAITS });
|
|
16
17
|
tenant.claude.reloadPersonality();
|
|
17
18
|
const traits = { ...DEFAULT_TRAITS };
|
|
18
|
-
const lines = [`◈
|
|
19
|
+
const lines = [`◈ ${botName} PERSONALITY MATRIX`, TERM_SEP, `RESET TO DEFAULTS`, ``, formatTraits(traits), TERM_SEP];
|
|
19
20
|
await ctx.reply(`<pre>${lines.join('\n')}</pre>`, { parse_mode: 'HTML' });
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
@@ -35,13 +36,13 @@ function register(bot, config) {
|
|
|
35
36
|
traits[traitName] = value;
|
|
36
37
|
saveTraits(personalityDir, traits);
|
|
37
38
|
tenant.claude.reloadPersonality();
|
|
38
|
-
const lines = [`◈
|
|
39
|
+
const lines = [`◈ ${botName} PERSONALITY MATRIX`, TERM_SEP, `UPDATED ${traitName} → ${value}`, ``, formatTraits(traits), TERM_SEP];
|
|
39
40
|
await ctx.reply(`<pre>${lines.join('\n')}</pre>`, { parse_mode: 'HTML' });
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
const traits = loadTraits(personalityDir);
|
|
44
|
-
const lines = [`◈
|
|
45
|
+
const lines = [`◈ ${botName} PERSONALITY MATRIX`, TERM_SEP, ``, formatTraits(traits), ``, `/traits <name> <0-100>`, `/traits reset`, TERM_SEP];
|
|
45
46
|
await ctx.reply(`<pre>${lines.join('\n')}</pre>`, { parse_mode: 'HTML' });
|
|
46
47
|
});
|
|
47
48
|
}
|