@dotsetlabs/dotclaw 1.1.0 → 1.2.0

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.
Files changed (54) hide show
  1. package/README.md +1 -0
  2. package/config-examples/runtime.json +5 -0
  3. package/container/agent-runner/package-lock.json +2 -2
  4. package/container/agent-runner/package.json +1 -1
  5. package/container/agent-runner/src/container-protocol.ts +3 -0
  6. package/container/agent-runner/src/index.ts +20 -1
  7. package/container/agent-runner/src/ipc.ts +35 -0
  8. package/container/agent-runner/src/tools.ts +115 -0
  9. package/dist/agent-context.d.ts +1 -0
  10. package/dist/agent-context.d.ts.map +1 -1
  11. package/dist/agent-context.js +8 -1
  12. package/dist/agent-context.js.map +1 -1
  13. package/dist/agent-execution.d.ts +7 -0
  14. package/dist/agent-execution.d.ts.map +1 -1
  15. package/dist/agent-execution.js +12 -6
  16. package/dist/agent-execution.js.map +1 -1
  17. package/dist/background-jobs.d.ts +47 -0
  18. package/dist/background-jobs.d.ts.map +1 -0
  19. package/dist/background-jobs.js +406 -0
  20. package/dist/background-jobs.js.map +1 -0
  21. package/dist/container-protocol.d.ts +3 -0
  22. package/dist/container-protocol.d.ts.map +1 -1
  23. package/dist/container-runner.d.ts +1 -0
  24. package/dist/container-runner.d.ts.map +1 -1
  25. package/dist/container-runner.js +2 -2
  26. package/dist/container-runner.js.map +1 -1
  27. package/dist/dashboard.d.ts +1 -0
  28. package/dist/dashboard.d.ts.map +1 -1
  29. package/dist/dashboard.js +8 -0
  30. package/dist/dashboard.js.map +1 -1
  31. package/dist/db.d.ts +34 -1
  32. package/dist/db.d.ts.map +1 -1
  33. package/dist/db.js +181 -0
  34. package/dist/db.js.map +1 -1
  35. package/dist/index.js +144 -221
  36. package/dist/index.js.map +1 -1
  37. package/dist/metrics.d.ts +1 -0
  38. package/dist/metrics.d.ts.map +1 -1
  39. package/dist/metrics.js +9 -0
  40. package/dist/metrics.js.map +1 -1
  41. package/dist/runtime-config.d.ts +8 -4
  42. package/dist/runtime-config.d.ts.map +1 -1
  43. package/dist/runtime-config.js +15 -5
  44. package/dist/runtime-config.js.map +1 -1
  45. package/dist/task-scheduler.d.ts +5 -0
  46. package/dist/task-scheduler.d.ts.map +1 -1
  47. package/dist/task-scheduler.js +121 -2
  48. package/dist/task-scheduler.js.map +1 -1
  49. package/dist/tool-policy.d.ts.map +1 -1
  50. package/dist/tool-policy.js +6 -0
  51. package/dist/tool-policy.js.map +1 -1
  52. package/dist/types.d.ts +41 -0
  53. package/dist/types.d.ts.map +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -8,6 +8,7 @@ Personal OpenRouter-based assistant for Telegram. Each request runs inside an is
8
8
  - Containerized agent runtime with strict mounts
9
9
  - Long-term memory with embeddings and semantic search
10
10
  - Scheduled tasks (cron and one-off)
11
+ - Background jobs for long-running work
11
12
  - Tool policies and daily budgets
12
13
  - Plugin tools and Autotune optimization
13
14
  - Prometheus-compatible metrics
@@ -15,6 +15,11 @@
15
15
  "embeddings": {
16
16
  "enabled": true
17
17
  }
18
+ },
19
+ "backgroundJobs": {
20
+ "enabled": true,
21
+ "maxConcurrent": 2,
22
+ "maxRuntimeMs": 2400000
18
23
  }
19
24
  },
20
25
  "agent": {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "dotclaw-agent-runner",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "dotclaw-agent-runner",
9
- "version": "1.0.0",
9
+ "version": "1.2.0",
10
10
  "dependencies": {
11
11
  "@openrouter/sdk": "^0.3.0",
12
12
  "cron-parser": "^5.0.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dotclaw-agent-runner",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "Container-side agent runner for DotClaw",
6
6
  "main": "dist/index.js",
@@ -9,9 +9,12 @@ export interface ContainerInput {
9
9
  isMain: boolean;
10
10
  isScheduledTask?: boolean;
11
11
  isBackgroundTask?: boolean;
12
+ isBackgroundJob?: boolean;
12
13
  taskId?: string;
14
+ jobId?: string;
13
15
  userId?: string;
14
16
  userName?: string;
17
+ maxToolSteps?: number;
15
18
  memoryRecall?: string[];
16
19
  userProfile?: string | null;
17
20
  memoryStats?: {
@@ -316,6 +316,8 @@ function buildSystemInstructions(params: {
316
316
  isScheduledTask: boolean;
317
317
  isBackgroundTask: boolean;
318
318
  taskId?: string;
319
+ isBackgroundJob: boolean;
320
+ jobId?: string;
319
321
  planBlock?: string;
320
322
  taskExtractionPack?: PromptPack | null;
321
323
  responseQualityPack?: PromptPack | null;
@@ -334,8 +336,13 @@ function buildSystemInstructions(params: {
334
336
  '- `NpmInstall`: install npm dependencies in the workspace.',
335
337
  '- `mcp__dotclaw__send_message`: send Telegram messages.',
336
338
  '- `mcp__dotclaw__schedule_task`: schedule tasks.',
339
+ '- `mcp__dotclaw__run_task`: run a scheduled task immediately.',
337
340
  '- `mcp__dotclaw__list_tasks`, `mcp__dotclaw__pause_task`, `mcp__dotclaw__resume_task`, `mcp__dotclaw__cancel_task`.',
338
341
  '- `mcp__dotclaw__update_task`: update a task (state, prompt, schedule, status).',
342
+ '- `mcp__dotclaw__spawn_job`: start a background job.',
343
+ '- `mcp__dotclaw__job_status`, `mcp__dotclaw__list_jobs`, `mcp__dotclaw__cancel_job`.',
344
+ '- `mcp__dotclaw__job_update`: log job progress or notify the user.',
345
+ 'Tip: For long-running work (multi-step coding, large research), prefer `mcp__dotclaw__spawn_job` and report back when done.',
339
346
  '- `mcp__dotclaw__register_group`: main group only.',
340
347
  '- `mcp__dotclaw__remove_group`, `mcp__dotclaw__list_groups`: main group only.',
341
348
  '- `mcp__dotclaw__set_model`: main group only.',
@@ -424,6 +431,12 @@ function buildSystemInstructions(params: {
424
431
  const backgroundNote = params.isBackgroundTask
425
432
  ? 'You are running in the background for a user request. Focus on completing the task and return a complete response without asking follow-up questions unless strictly necessary.'
426
433
  : '';
434
+ const jobNote = params.isBackgroundJob
435
+ ? `You are running as a background job${params.jobId ? ` (job id: ${params.jobId})` : ''}. Return a complete result. Use \`mcp__dotclaw__job_update\` for progress if needed. Prefer writing large outputs to the job artifacts directory.`
436
+ : '';
437
+ const jobArtifactsNote = params.isBackgroundJob && params.jobId
438
+ ? `Job artifacts directory: /workspace/group/jobs/${params.jobId}`
439
+ : '';
427
440
 
428
441
  const taskExtractionBlock = params.taskExtractionPack
429
442
  ? formatTaskExtractionPack({
@@ -477,6 +490,8 @@ function buildSystemInstructions(params: {
477
490
  `You are ${params.assistantName}, a personal assistant running inside DotClaw.`,
478
491
  scheduledNote,
479
492
  backgroundNote,
493
+ jobNote,
494
+ jobArtifactsNote,
480
495
  toolsDoc,
481
496
  browserAutomation,
482
497
  groupNotes,
@@ -817,7 +832,9 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
817
832
  config.temperature = input.modelTemperature;
818
833
  }
819
834
  const openrouterOptions = getOpenRouterOptions(agentConfig);
820
- const maxToolSteps = agent.tools.maxToolSteps;
835
+ const maxToolSteps = Number.isFinite(input.maxToolSteps)
836
+ ? Math.max(1, Math.floor(input.maxToolSteps as number))
837
+ : agent.tools.maxToolSteps;
821
838
  const memoryExtractionEnabled = agent.memory.extraction.enabled;
822
839
  const isDaemon = process.env.DOTCLAW_DAEMON === '1';
823
840
  const memoryExtractionAsync = agent.memory.extraction.async;
@@ -1064,6 +1081,8 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1064
1081
  isScheduledTask: !!input.isScheduledTask,
1065
1082
  isBackgroundTask: !!input.isBackgroundTask,
1066
1083
  taskId: input.taskId,
1084
+ isBackgroundJob: !!input.isBackgroundJob,
1085
+ jobId: input.jobId,
1067
1086
  planBlock: planBlockValue,
1068
1087
  taskExtractionPack: taskPackResult?.pack || null,
1069
1088
  responseQualityPack: responseQualityResult?.pack || null,
@@ -258,6 +258,41 @@ export function createIpcHandlers(ctx: IpcContext, config: IpcConfig) {
258
258
  return requestResponse('list_groups', {}, config);
259
259
  },
260
260
 
261
+ async runTask(taskId: string) {
262
+ return requestResponse('run_task', { task_id: taskId }, config);
263
+ },
264
+
265
+ async spawnJob(args: {
266
+ prompt: string;
267
+ context_mode?: 'group' | 'isolated';
268
+ timeout_ms?: number;
269
+ max_tool_steps?: number;
270
+ tool_allow?: string[];
271
+ tool_deny?: string[];
272
+ model_override?: string;
273
+ priority?: number;
274
+ tags?: string[];
275
+ target_group?: string;
276
+ }) {
277
+ return requestResponse('spawn_job', args as Record<string, unknown>, config);
278
+ },
279
+
280
+ async jobStatus(jobId: string) {
281
+ return requestResponse('job_status', { job_id: jobId }, config);
282
+ },
283
+
284
+ async listJobs(args: { status?: string; limit?: number; target_group?: string }) {
285
+ return requestResponse('list_jobs', args as Record<string, unknown>, config);
286
+ },
287
+
288
+ async cancelJob(jobId: string) {
289
+ return requestResponse('cancel_job', { job_id: jobId }, config);
290
+ },
291
+
292
+ async jobUpdate(args: { job_id: string; message: string; level?: string; notify?: boolean; data?: Record<string, unknown> }) {
293
+ return requestResponse('job_update', args as Record<string, unknown>, config);
294
+ },
295
+
261
296
  async setModel(args: { model: string; scope?: 'global' | 'group' | 'user'; target_id?: string }) {
262
297
  if (!isMain) {
263
298
  return { ok: false, error: 'Only the main group can change the model.' };
@@ -1456,6 +1456,20 @@ export function createTools(ctx: IpcContext, config: AgentRuntimeConfig['agent']
1456
1456
  ipc.scheduleTask(args))
1457
1457
  });
1458
1458
 
1459
+ const runTaskTool = tool({
1460
+ name: 'mcp__dotclaw__run_task',
1461
+ description: 'Run an existing scheduled task immediately without modifying its schedule.',
1462
+ inputSchema: z.object({
1463
+ task_id: z.string()
1464
+ }),
1465
+ outputSchema: z.object({
1466
+ ok: z.boolean(),
1467
+ result: z.any().optional(),
1468
+ error: z.string().optional()
1469
+ }),
1470
+ execute: wrapExecute('mcp__dotclaw__run_task', async ({ task_id }: { task_id: string }) => ipc.runTask(task_id))
1471
+ });
1472
+
1459
1473
  const listTasksTool = tool({
1460
1474
  name: 'mcp__dotclaw__list_tasks',
1461
1475
  description: 'List all scheduled tasks.',
@@ -1523,6 +1537,101 @@ export function createTools(ctx: IpcContext, config: AgentRuntimeConfig['agent']
1523
1537
  ipc.updateTask(args))
1524
1538
  });
1525
1539
 
1540
+ const spawnJobTool = tool({
1541
+ name: 'mcp__dotclaw__spawn_job',
1542
+ description: 'Start a background job that runs asynchronously and reports results later.',
1543
+ inputSchema: z.object({
1544
+ prompt: z.string(),
1545
+ context_mode: z.enum(['group', 'isolated']).optional(),
1546
+ timeout_ms: z.number().optional(),
1547
+ max_tool_steps: z.number().optional(),
1548
+ tool_allow: z.array(z.string()).optional(),
1549
+ tool_deny: z.array(z.string()).optional(),
1550
+ model_override: z.string().optional(),
1551
+ priority: z.number().optional(),
1552
+ tags: z.array(z.string()).optional(),
1553
+ target_group: z.string().optional()
1554
+ }),
1555
+ outputSchema: z.object({
1556
+ ok: z.boolean(),
1557
+ result: z.any().optional(),
1558
+ error: z.string().optional()
1559
+ }),
1560
+ execute: wrapExecute('mcp__dotclaw__spawn_job', async (args: {
1561
+ prompt: string;
1562
+ context_mode?: 'group' | 'isolated';
1563
+ timeout_ms?: number;
1564
+ max_tool_steps?: number;
1565
+ tool_allow?: string[];
1566
+ tool_deny?: string[];
1567
+ model_override?: string;
1568
+ priority?: number;
1569
+ tags?: string[];
1570
+ target_group?: string;
1571
+ }) => ipc.spawnJob(args))
1572
+ });
1573
+
1574
+ const jobStatusTool = tool({
1575
+ name: 'mcp__dotclaw__job_status',
1576
+ description: 'Get the status of a background job.',
1577
+ inputSchema: z.object({
1578
+ job_id: z.string()
1579
+ }),
1580
+ outputSchema: z.object({
1581
+ ok: z.boolean(),
1582
+ result: z.any().optional(),
1583
+ error: z.string().optional()
1584
+ }),
1585
+ execute: wrapExecute('mcp__dotclaw__job_status', async ({ job_id }: { job_id: string }) => ipc.jobStatus(job_id))
1586
+ });
1587
+
1588
+ const listJobsTool = tool({
1589
+ name: 'mcp__dotclaw__list_jobs',
1590
+ description: 'List background jobs for the group.',
1591
+ inputSchema: z.object({
1592
+ status: z.string().optional(),
1593
+ limit: z.number().optional(),
1594
+ target_group: z.string().optional()
1595
+ }),
1596
+ outputSchema: z.object({
1597
+ ok: z.boolean(),
1598
+ result: z.any().optional(),
1599
+ error: z.string().optional()
1600
+ }),
1601
+ execute: wrapExecute('mcp__dotclaw__list_jobs', async (args: { status?: string; limit?: number; target_group?: string }) => ipc.listJobs(args))
1602
+ });
1603
+
1604
+ const cancelJobTool = tool({
1605
+ name: 'mcp__dotclaw__cancel_job',
1606
+ description: 'Cancel a background job.',
1607
+ inputSchema: z.object({
1608
+ job_id: z.string()
1609
+ }),
1610
+ outputSchema: z.object({
1611
+ ok: z.boolean(),
1612
+ error: z.string().optional()
1613
+ }),
1614
+ execute: wrapExecute('mcp__dotclaw__cancel_job', async ({ job_id }: { job_id: string }) => ipc.cancelJob(job_id))
1615
+ });
1616
+
1617
+ const jobUpdateTool = tool({
1618
+ name: 'mcp__dotclaw__job_update',
1619
+ description: 'Log progress or send a notification for a background job.',
1620
+ inputSchema: z.object({
1621
+ job_id: z.string(),
1622
+ message: z.string(),
1623
+ level: z.enum(['info', 'progress', 'warn', 'error']).optional(),
1624
+ notify: z.boolean().optional(),
1625
+ data: z.record(z.string(), z.any()).optional()
1626
+ }),
1627
+ outputSchema: z.object({
1628
+ ok: z.boolean(),
1629
+ error: z.string().optional()
1630
+ }),
1631
+ execute: wrapExecute('mcp__dotclaw__job_update', async (args: { job_id: string; message: string; level?: string; notify?: boolean; data?: Record<string, unknown> }) =>
1632
+ ipc.jobUpdate(args))
1633
+ });
1634
+
1526
1635
  const registerGroupTool = tool({
1527
1636
  name: 'mcp__dotclaw__register_group',
1528
1637
  description: 'Register a new Telegram chat (main group only).',
@@ -1692,11 +1801,17 @@ export function createTools(ctx: IpcContext, config: AgentRuntimeConfig['agent']
1692
1801
  npmInstallTool,
1693
1802
  sendMessageTool,
1694
1803
  scheduleTaskTool,
1804
+ runTaskTool,
1695
1805
  listTasksTool,
1696
1806
  pauseTaskTool,
1697
1807
  resumeTaskTool,
1698
1808
  cancelTaskTool,
1699
1809
  updateTaskTool,
1810
+ spawnJobTool,
1811
+ jobStatusTool,
1812
+ listJobsTool,
1813
+ cancelJobTool,
1814
+ jobUpdateTool,
1700
1815
  memoryUpsertTool,
1701
1816
  memoryForgetTool,
1702
1817
  memoryListTool,
@@ -37,6 +37,7 @@ export declare function buildAgentContext(params: {
37
37
  recallQuery: string;
38
38
  recallMaxResults: number;
39
39
  recallMaxTokens: number;
40
+ toolAllow?: string[];
40
41
  toolDeny?: string[];
41
42
  }): Promise<AgentContext>;
42
43
  //# sourceMappingURL=agent-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAgB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxJ,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9G,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3H,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACpD,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACjD,aAAa,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AA4BF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgFxB"}
1
+ {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAgB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxJ,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9G,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3H,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACpD,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACjD,aAAa,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AA4BF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFxB"}
@@ -64,9 +64,16 @@ export async function buildAgentContext(params) {
64
64
  userId: params.userId ?? null,
65
65
  toolPolicy: baseToolPolicy
66
66
  });
67
- const toolPolicy = params.toolDeny && params.toolDeny.length > 0
67
+ let toolPolicy = params.toolDeny && params.toolDeny.length > 0
68
68
  ? mergeToolPolicyDeny(budgetedToolPolicy, params.toolDeny)
69
69
  : budgetedToolPolicy;
70
+ if (params.toolAllow && params.toolAllow.length > 0) {
71
+ const allowSet = new Set(params.toolAllow.map(item => item.trim()).filter(Boolean));
72
+ toolPolicy = {
73
+ ...toolPolicy,
74
+ allow: (toolPolicy.allow || []).filter(name => allowSet.has(name))
75
+ };
76
+ }
70
77
  const toolReliability = getToolReliability({ groupFolder: params.groupFolder, limit: 200 })
71
78
  .map(row => ({
72
79
  name: row.tool_name,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"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"}
@@ -31,15 +31,20 @@ export declare function executeAgentRun(params: {
31
31
  recallQuery: string;
32
32
  recallMaxResults: number;
33
33
  recallMaxTokens: number;
34
+ toolAllow?: string[];
34
35
  toolDeny?: string[];
36
+ modelOverride?: string;
35
37
  sessionId?: string;
36
38
  persistSession?: boolean;
37
39
  onSessionUpdate?: (sessionId: string) => void;
38
40
  useGroupLock?: boolean;
41
+ useSemaphore?: boolean;
39
42
  abortSignal?: AbortSignal;
40
43
  isScheduledTask?: boolean;
41
44
  isBackgroundTask?: boolean;
42
45
  taskId?: string;
46
+ jobId?: string;
47
+ isBackgroundJob?: boolean;
43
48
  streaming?: {
44
49
  enabled: boolean;
45
50
  draftId: number;
@@ -52,6 +57,8 @@ export declare function executeAgentRun(params: {
52
57
  lastActivity: string;
53
58
  isRegistered: boolean;
54
59
  }>;
60
+ maxToolSteps?: number;
61
+ timeoutMs?: number;
55
62
  }): Promise<{
56
63
  output: ContainerOutput;
57
64
  context: AgentContext;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-execution.d.ts","sourceRoot":"","sources":["../src/agent-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,OAAO,EAAE,YAAY,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAInD;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAWZ;AAkBD,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrG,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CA+D9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACzC,eAAe,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAsEP"}
1
+ {"version":3,"file":"agent-execution.d.ts","sourceRoot":"","sources":["../src/agent-execution.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export async function executeAgentRun(params) {
47
47
  const isMain = group.folder === MAIN_GROUP_FOLDER;
48
48
  const persistSession = params.persistSession !== false;
49
49
  const useGroupLock = params.useGroupLock !== false;
50
+ const useSemaphore = params.useSemaphore !== false;
50
51
  writeTasksSnapshot(group.folder, isMain, buildTaskSnapshot());
51
52
  if (isMain && params.availableGroups) {
52
53
  writeGroupsSnapshot(group.folder, isMain, params.availableGroups);
@@ -57,6 +58,7 @@ export async function executeAgentRun(params) {
57
58
  recallQuery: params.recallQuery,
58
59
  recallMaxResults: params.recallMaxResults,
59
60
  recallMaxTokens: params.recallMaxTokens,
61
+ toolAllow: params.toolAllow,
60
62
  toolDeny: params.toolDeny
61
63
  });
62
64
  const runContainer = () => runContainerAgent(group, {
@@ -68,6 +70,8 @@ export async function executeAgentRun(params) {
68
70
  isScheduledTask: params.isScheduledTask,
69
71
  isBackgroundTask: params.isBackgroundTask,
70
72
  taskId: params.taskId,
73
+ jobId: params.jobId,
74
+ isBackgroundJob: params.isBackgroundJob,
71
75
  userId: params.userId ?? undefined,
72
76
  userName: params.userName,
73
77
  memoryRecall: context.memoryRecall,
@@ -77,17 +81,19 @@ export async function executeAgentRun(params) {
77
81
  toolReliability: context.toolReliability,
78
82
  behaviorConfig: context.behaviorConfig,
79
83
  toolPolicy: context.toolPolicy,
80
- modelOverride: context.resolvedModel.model,
84
+ modelOverride: params.modelOverride || context.resolvedModel.model,
81
85
  modelContextTokens: context.resolvedModel.override?.context_window,
82
86
  modelMaxOutputTokens: context.resolvedModel.override?.max_output_tokens,
83
87
  modelTemperature: context.resolvedModel.override?.temperature,
84
- streaming: params.streaming
85
- }, { abortSignal: params.abortSignal });
88
+ streaming: params.streaming,
89
+ maxToolSteps: params.maxToolSteps
90
+ }, { abortSignal: params.abortSignal, timeoutMs: params.timeoutMs });
86
91
  let output;
87
92
  try {
88
- output = await runWithAgentSemaphore(() => useGroupLock
89
- ? withGroupLock(group.folder, () => runContainer())
90
- : runContainer());
93
+ const runner = () => (useGroupLock ? withGroupLock(group.folder, () => runContainer()) : runContainer());
94
+ output = useSemaphore
95
+ ? await runWithAgentSemaphore(runner)
96
+ : await runner();
91
97
  }
92
98
  catch (err) {
93
99
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-execution.js","sourceRoot":"","sources":["../src/agent-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-execution.js","sourceRoot":"","sources":["../src/agent-execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { RegisteredGroup, BackgroundJob, BackgroundJobStatus } from './types.js';
2
+ export interface BackgroundJobDependencies {
3
+ sendMessage: (jid: string, text: string) => Promise<void>;
4
+ registeredGroups: () => Record<string, RegisteredGroup>;
5
+ getSessions: () => Record<string, string>;
6
+ setSession: (groupFolder: string, sessionId: string) => void;
7
+ }
8
+ export declare function startBackgroundJobLoop(deps: BackgroundJobDependencies): void;
9
+ export declare function spawnBackgroundJob(params: {
10
+ prompt: string;
11
+ groupFolder: string;
12
+ chatJid: string;
13
+ contextMode?: 'group' | 'isolated';
14
+ timeoutMs?: number;
15
+ maxToolSteps?: number;
16
+ toolAllow?: string[];
17
+ toolDeny?: string[];
18
+ modelOverride?: string;
19
+ priority?: number;
20
+ tags?: string[];
21
+ parentTraceId?: string;
22
+ parentMessageId?: string;
23
+ }): {
24
+ ok: boolean;
25
+ jobId?: string;
26
+ error?: string;
27
+ };
28
+ export declare function getBackgroundJobStatus(jobId: string): BackgroundJob | undefined;
29
+ export declare function listBackgroundJobsForGroup(params: {
30
+ groupFolder: string;
31
+ status?: BackgroundJobStatus;
32
+ limit?: number;
33
+ }): BackgroundJob[];
34
+ export declare function cancelBackgroundJob(jobId: string): {
35
+ ok: boolean;
36
+ error?: string;
37
+ };
38
+ export declare function recordBackgroundJobUpdate(params: {
39
+ jobId: string;
40
+ level: 'info' | 'progress' | 'warn' | 'error';
41
+ message: string;
42
+ data?: Record<string, unknown>;
43
+ }): {
44
+ ok: boolean;
45
+ error?: string;
46
+ };
47
+ //# sourceMappingURL=background-jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-jobs.d.ts","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsBtF,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,gBAAgB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxD,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9D;AA0RD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAsB5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsDlD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE/E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,EAAE,CAEzI;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA6BlF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAalC"}