obol-ai 0.2.34 → 0.2.35

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,6 @@
1
+ ## 0.2.35
2
+ - pass full user context to agentic cron tasks so tools can access secrets/config
3
+
1
4
  ## 0.2.34
2
5
  - fix cron-parser v5 api: parseExpression → CronExpressionParser.parse
3
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obol-ai",
3
- "version": "0.2.34",
3
+ "version": "0.2.35",
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/background.js CHANGED
@@ -8,7 +8,7 @@ class BackgroundRunner {
8
8
  this.taskCounter = 0;
9
9
  }
10
10
 
11
- spawn(claude, task, ctx, memory, parentContext, opts = {}) {
11
+ spawn(claude, task, ctx, memory, parentContext, opts = {}, extraContext = {}) {
12
12
  let running = 0;
13
13
  for (const t of this.tasks.values()) {
14
14
  if (t.status === 'running') running++;
@@ -30,13 +30,13 @@ class BackgroundRunner {
30
30
  const verbose = parentContext?.verbose || false;
31
31
  const verboseNotify = parentContext?._verboseNotify;
32
32
 
33
- const promise = this._runTask(claude, task, taskState, ctx, memory, verbose, verboseNotify, opts.model);
33
+ const promise = this._runTask(claude, task, taskState, ctx, memory, verbose, verboseNotify, opts.model, opts.extraContext || extraContext);
34
34
  taskState.promise = promise;
35
35
 
36
36
  return taskId;
37
37
  }
38
38
 
39
- async _runTask(claude, task, taskState, ctx, memory, verbose, verboseNotify, model) {
39
+ async _runTask(claude, task, taskState, ctx, memory, verbose, verboseNotify, model, extraContext = {}) {
40
40
  let statusMsgId = null;
41
41
  let statusTimer = null;
42
42
  let statusStart = Date.now();
@@ -73,6 +73,7 @@ TASK: ${task}`;
73
73
 
74
74
  const bgNotify = verboseNotify ? (msg) => verboseNotify(`[bg#${taskState.id}] ${msg}`) : undefined;
75
75
  const { text: result } = await claude.chat(bgPrompt, {
76
+ ...extraContext,
76
77
  chatId: `bg-${taskState.id}`,
77
78
  userName: 'BackgroundTask',
78
79
  verbose,
package/src/heartbeat.js CHANGED
@@ -79,7 +79,14 @@ async function runAgenticEvent(bot, config, event) {
79
79
  fakeCtx,
80
80
  tenant.memory,
81
81
  null,
82
- {}
82
+ {},
83
+ {
84
+ userId: event.user_id,
85
+ chatId: event.chat_id,
86
+ config,
87
+ scheduler: tenant.scheduler,
88
+ toolPrefs: tenant.toolPrefs,
89
+ }
83
90
  );
84
91
 
85
92
  if (taskId === null) {