@action-llama/action-llama 0.5.0 → 0.6.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 (60) hide show
  1. package/AGENTS.md +420 -0
  2. package/dist/agents/container-runner.d.ts.map +1 -1
  3. package/dist/agents/container-runner.js +1 -0
  4. package/dist/agents/container-runner.js.map +1 -1
  5. package/dist/agents/prompt.d.ts +8 -4
  6. package/dist/agents/prompt.d.ts.map +1 -1
  7. package/dist/agents/prompt.js +74 -8
  8. package/dist/agents/prompt.js.map +1 -1
  9. package/dist/cli/commands/doctor.d.ts +1 -0
  10. package/dist/cli/commands/doctor.d.ts.map +1 -1
  11. package/dist/cli/commands/doctor.js +76 -1
  12. package/dist/cli/commands/doctor.js.map +1 -1
  13. package/dist/cli/commands/start.js +1 -1
  14. package/dist/cli/commands/start.js.map +1 -1
  15. package/dist/docker/ecs-runtime.d.ts.map +1 -1
  16. package/dist/docker/ecs-runtime.js +58 -2
  17. package/dist/docker/ecs-runtime.js.map +1 -1
  18. package/dist/gateway/index.d.ts +3 -0
  19. package/dist/gateway/index.d.ts.map +1 -1
  20. package/dist/gateway/index.js +14 -2
  21. package/dist/gateway/index.js.map +1 -1
  22. package/dist/gateway/lock-store.d.ts +36 -0
  23. package/dist/gateway/lock-store.d.ts.map +1 -0
  24. package/dist/gateway/lock-store.js +119 -0
  25. package/dist/gateway/lock-store.js.map +1 -0
  26. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  27. package/dist/gateway/routes/dashboard.js +32 -0
  28. package/dist/gateway/routes/dashboard.js.map +1 -1
  29. package/dist/gateway/routes/locks.d.ts +6 -0
  30. package/dist/gateway/routes/locks.d.ts.map +1 -0
  31. package/dist/gateway/routes/locks.js +100 -0
  32. package/dist/gateway/routes/locks.js.map +1 -0
  33. package/dist/gateway/types.d.ts +1 -0
  34. package/dist/gateway/types.d.ts.map +1 -1
  35. package/dist/scheduler/event-queue.d.ts +1 -1
  36. package/dist/scheduler/event-queue.d.ts.map +1 -1
  37. package/dist/scheduler/event-queue.js +2 -2
  38. package/dist/scheduler/event-queue.js.map +1 -1
  39. package/dist/scheduler/index.d.ts +2 -10
  40. package/dist/scheduler/index.d.ts.map +1 -1
  41. package/dist/scheduler/index.js +150 -83
  42. package/dist/scheduler/index.js.map +1 -1
  43. package/dist/scheduler/runner-pool.d.ts +42 -0
  44. package/dist/scheduler/runner-pool.d.ts.map +1 -0
  45. package/dist/scheduler/runner-pool.js +59 -0
  46. package/dist/scheduler/runner-pool.js.map +1 -0
  47. package/dist/setup/scaffold.d.ts.map +1 -1
  48. package/dist/setup/scaffold.js +19 -423
  49. package/dist/setup/scaffold.js.map +1 -1
  50. package/dist/shared/config.d.ts +2 -0
  51. package/dist/shared/config.d.ts.map +1 -1
  52. package/dist/shared/config.js.map +1 -1
  53. package/dist/tui/App.d.ts.map +1 -1
  54. package/dist/tui/App.js +40 -10
  55. package/dist/tui/App.js.map +1 -1
  56. package/dist/tui/status-tracker.d.ts +4 -0
  57. package/dist/tui/status-tracker.d.ts.map +1 -1
  58. package/dist/tui/status-tracker.js +22 -0
  59. package/dist/tui/status-tracker.js.map +1 -1
  60. package/package.json +2 -1
@@ -11,6 +11,7 @@ import { GitHubWebhookProvider } from "../webhooks/providers/github.js";
11
11
  import { SentryWebhookProvider } from "../webhooks/providers/sentry.js";
12
12
  import { AWS_CONSTANTS } from "../shared/aws-constants.js";
13
13
  import { WebhookEventQueue } from "./event-queue.js";
14
+ import { RunnerPool } from "./runner-pool.js";
14
15
  // Provider type → credential type for loading secrets
15
16
  const PROVIDER_TO_CREDENTIAL = {
16
17
  github: "github_webhook_secret",
@@ -69,14 +70,15 @@ function dispatchTriggers(triggers, sourceAgent, depth, ctx) {
69
70
  ctx.logger.warn({ source: sourceAgent, target: agent }, "trigger target agent not found, skipping");
70
71
  continue;
71
72
  }
72
- const runner = ctx.runners[agent];
73
- if (runner.isRunning) {
74
- ctx.logger.warn({ source: sourceAgent, target: agent }, "trigger target agent is busy, skipping");
73
+ const pool = ctx.runnerPools[agent];
74
+ const availableRunner = pool.getAvailableRunner();
75
+ if (!availableRunner) {
76
+ ctx.logger.warn({ source: sourceAgent, target: agent, running: pool.runningJobCount, scale: pool.size }, "all agent runners busy, skipping trigger");
75
77
  continue;
76
78
  }
77
- ctx.logger.info({ source: sourceAgent, target: agent, depth }, "agent trigger firing");
78
- const prompt = buildTriggeredPrompt(targetConfig, sourceAgent, context);
79
- runTriggered(runner, targetConfig, prompt, sourceAgent, depth + 1, ctx).catch((err) => {
79
+ ctx.logger.info({ source: sourceAgent, target: agent, depth, running: pool.runningJobCount, scale: pool.size }, "agent trigger firing");
80
+ const prompt = buildTriggeredPrompt(targetConfig, sourceAgent, context, ctx.skills);
81
+ runTriggered(availableRunner, targetConfig, prompt, sourceAgent, depth + 1, ctx).catch((err) => {
80
82
  ctx.logger.error({ err, target: agent }, "triggered run failed");
81
83
  });
82
84
  }
@@ -91,13 +93,20 @@ async function runTriggered(runner, agentConfig, prompt, sourceAgent, depth, ctx
91
93
  ctx.logger.info(`${agentConfig.name} triggered run completed`);
92
94
  }
93
95
  }
94
- async function drainWebhookQueue(runner, agentConfig, ctx) {
96
+ async function drainWebhookQueue(agentConfig, ctx) {
97
+ const pool = ctx.runnerPools[agentConfig.name];
95
98
  let event;
96
99
  while (!ctx.shuttingDown && (event = ctx.webhookQueue.dequeue(agentConfig.name)) !== undefined) {
100
+ const runner = pool.getAvailableRunner();
101
+ if (!runner) {
102
+ // Put the event back in the queue if no runners are available
103
+ ctx.webhookQueue.enqueue(agentConfig.name, event.context, event.receivedAt);
104
+ break;
105
+ }
97
106
  const ageMs = Date.now() - event.receivedAt.getTime();
98
- ctx.logger.info({ agent: agentConfig.name, event: event.context.event, ageMs, remaining: ctx.webhookQueue.size(agentConfig.name) }, "processing queued webhook event");
107
+ ctx.logger.info({ agent: agentConfig.name, event: event.context.event, ageMs, remaining: ctx.webhookQueue.size(agentConfig.name), running: pool.runningJobCount, scale: pool.size }, "processing queued webhook event");
99
108
  try {
100
- const prompt = buildWebhookPrompt(agentConfig, event.context);
109
+ const prompt = buildWebhookPrompt(agentConfig, event.context, ctx.skills);
101
110
  const { triggers } = await runner.run(prompt, { type: 'webhook', source: event.context.event });
102
111
  if (triggers.length > 0) {
103
112
  dispatchTriggers(triggers, agentConfig.name, 0, ctx);
@@ -109,7 +118,7 @@ async function drainWebhookQueue(runner, agentConfig, ctx) {
109
118
  }
110
119
  }
111
120
  async function runWithReruns(runner, agentConfig, depth, ctx) {
112
- let { result, triggers } = await runner.run(buildScheduledPrompt(agentConfig), { type: 'schedule' });
121
+ let { result, triggers } = await runner.run(buildScheduledPrompt(agentConfig, ctx.skills), { type: 'schedule' });
113
122
  if (triggers.length > 0) {
114
123
  dispatchTriggers(triggers, agentConfig.name, depth, ctx);
115
124
  }
@@ -117,7 +126,7 @@ async function runWithReruns(runner, agentConfig, depth, ctx) {
117
126
  while (result === "completed" && reruns < ctx.maxReruns) {
118
127
  reruns++;
119
128
  ctx.logger.info({ rerun: reruns, maxReruns: ctx.maxReruns }, `${agentConfig.name} did work, re-running immediately`);
120
- ({ result, triggers } = await runner.run(buildScheduledPrompt(agentConfig), { type: 'schedule' }));
129
+ ({ result, triggers } = await runner.run(buildScheduledPrompt(agentConfig, ctx.skills), { type: 'schedule' }));
121
130
  if (triggers.length > 0) {
122
131
  dispatchTriggers(triggers, agentConfig.name, depth, ctx);
123
132
  }
@@ -126,7 +135,7 @@ async function runWithReruns(runner, agentConfig, depth, ctx) {
126
135
  ctx.logger.warn({ maxReruns: ctx.maxReruns }, `${agentConfig.name} hit max reruns limit`);
127
136
  }
128
137
  // Drain any webhook events that arrived during the rerun cycle
129
- await drainWebhookQueue(runner, agentConfig, ctx);
138
+ await drainWebhookQueue(agentConfig, ctx);
130
139
  }
131
140
  export async function startScheduler(projectPath, globalConfigOverride, statusTracker, cloudMode, webUI) {
132
141
  const mkLogger = statusTracker ? createFileOnlyLogger : createLogger;
@@ -148,6 +157,22 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
148
157
  for (const credRef of allCredentials) {
149
158
  await backendRequireCredentialRef(credRef);
150
159
  }
160
+ // Validate ECS IAM roles exist if using cloud ECS mode
161
+ if (cloudMode && globalConfig.cloud?.provider === "ecs") {
162
+ logger.info("Validating ECS IAM task roles...");
163
+ const { validateEcsRoles } = await import("../cli/commands/doctor.js");
164
+ try {
165
+ await validateEcsRoles(projectPath, globalConfig.cloud);
166
+ logger.info("All ECS IAM task roles validated successfully");
167
+ }
168
+ catch (err) {
169
+ logger.error("ECS IAM role validation failed");
170
+ throw new Error(`❌ ECS IAM role validation failed\n\n` +
171
+ `${err.message}\n\n` +
172
+ `This validation prevents runtime failures when agents try to start.\n` +
173
+ `Fix the IAM roles before starting the scheduler.`);
174
+ }
175
+ }
151
176
  const maxReruns = globalConfig.maxReruns ?? DEFAULT_MAX_RERUNS;
152
177
  const maxTriggerDepth = globalConfig.maxTriggerDepth ?? DEFAULT_MAX_TRIGGER_DEPTH;
153
178
  const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
@@ -199,7 +224,6 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
199
224
  }
200
225
  }
201
226
  }
202
- let gateway;
203
227
  let runtime;
204
228
  let baseImage = AWS_CONSTANTS.DEFAULT_IMAGE;
205
229
  const agentImages = {};
@@ -210,6 +234,25 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
210
234
  for (const agentConfig of agentConfigs) {
211
235
  statusTracker?.registerAgent(agentConfig.name);
212
236
  }
237
+ // Start gateway early if needed (before Docker builds) so users can see build status
238
+ let gateway;
239
+ const shouldStartGateway = anyWebhooks || webUI || dockerEnabled;
240
+ if (shouldStartGateway) {
241
+ const { startGateway } = await import("../gateway/index.js");
242
+ const gatewayPort = globalConfig.gateway?.port || 8080;
243
+ gateway = await startGateway({
244
+ port: gatewayPort,
245
+ logger: mkLogger(projectPath, "gateway"),
246
+ killContainer: undefined, // Runtime not ready yet, will handle container ops later
247
+ webhookRegistry,
248
+ webhookSecrets,
249
+ statusTracker,
250
+ projectPath,
251
+ webUI,
252
+ lockTimeout: globalConfig.gateway?.lockTimeout,
253
+ });
254
+ logger.info({ port: gatewayPort }, "Gateway started early to show build progress");
255
+ }
213
256
  if (dockerEnabled) {
214
257
  logger.info({ runtime: runtimeType }, "Docker mode enabled — initializing infrastructure");
215
258
  // 1. Create the container runtime
@@ -344,69 +387,45 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
344
387
  statusTracker?.setAgentState(ac.name, "idle");
345
388
  }
346
389
  logger.info("Docker infrastructure ready");
347
- // 6. Start gateway if the runtime needs it, webhooks are configured, or web UI is enabled
348
- if (runtime.needsGateway || anyWebhooks || webUI) {
349
- const { startGateway } = await import("../gateway/index.js");
350
- const gatewayPort = globalConfig.gateway?.port || 8080;
351
- gateway = await startGateway({
352
- port: gatewayPort,
353
- logger: mkLogger(projectPath, "gateway"),
354
- killContainer: (name) => runtime.kill(name),
355
- webhookRegistry,
356
- webhookSecrets,
357
- statusTracker,
358
- projectPath,
359
- webUI,
360
- });
361
- }
362
- }
363
- else if (anyWebhooks || webUI) {
364
- // Start gateway even without docker when webhooks are configured or web UI is enabled
365
- logger.info("Starting gateway for webhook support (no docker)");
366
- const { startGateway } = await import("../gateway/index.js");
367
- const gatewayPort = globalConfig.gateway?.port || 8080;
368
- gateway = await startGateway({
369
- port: gatewayPort,
370
- logger: mkLogger(projectPath, "gateway"),
371
- webhookRegistry,
372
- webhookSecrets,
373
- statusTracker,
374
- projectPath,
375
- webUI,
376
- });
377
390
  }
378
- // Create runners for each agent
379
- const runners = {};
380
- if (dockerEnabled && runtime) {
381
- const { ContainerAgentRunner } = await import("../agents/container-runner.js");
382
- const gatewayPort = globalConfig.gateway?.port || 8080;
383
- const gatewayUrl = `http://host.docker.internal:${gatewayPort}`;
384
- // Gateway callbacks — no-ops if gateway isn't running (remote runtimes)
385
- const registerContainer = gateway
386
- ? gateway.registerContainer
387
- : (_secret, _reg) => { };
388
- const unregisterContainer = gateway
389
- ? gateway.unregisterContainer
390
- : (_secret) => { };
391
- for (const agentConfig of agentConfigs) {
392
- runners[agentConfig.name] = new ContainerAgentRunner(runtime, globalConfig, agentConfig, mkLogger(projectPath, agentConfig.name), registerContainer, unregisterContainer, gatewayUrl, projectPath, agentImages[agentConfig.name] || baseImage, statusTracker);
393
- }
394
- }
395
- else {
396
- for (const agentConfig of agentConfigs) {
397
- mkdirSync(agentDir(projectPath, agentConfig.name), { recursive: true });
398
- runners[agentConfig.name] = new AgentRunner(agentConfig, mkLogger(projectPath, agentConfig.name), projectPath, statusTracker);
391
+ // Create runner pools for each agent with configurable scale
392
+ const runnerPools = {};
393
+ // Import necessary classes once if docker is enabled
394
+ const ContainerAgentRunnerClass = dockerEnabled && runtime ? (await import("../agents/container-runner.js")).ContainerAgentRunner : null;
395
+ const gatewayPort = globalConfig.gateway?.port || 8080;
396
+ const gatewayUrl = `http://host.docker.internal:${gatewayPort}`;
397
+ // Gateway callbacks — no-ops if gateway isn't running (remote runtimes)
398
+ const registerContainer = gateway
399
+ ? gateway.registerContainer
400
+ : (_secret, _reg) => { };
401
+ const unregisterContainer = gateway
402
+ ? gateway.unregisterContainer
403
+ : (_secret) => { };
404
+ for (const agentConfig of agentConfigs) {
405
+ const scale = agentConfig.scale || 1;
406
+ const runners = [];
407
+ for (let i = 0; i < scale; i++) {
408
+ if (dockerEnabled && runtime && ContainerAgentRunnerClass) {
409
+ runners.push(new ContainerAgentRunnerClass(runtime, globalConfig, agentConfig, mkLogger(projectPath, `${agentConfig.name}-${i + 1}`), registerContainer, unregisterContainer, gatewayUrl, projectPath, agentImages[agentConfig.name] || baseImage, statusTracker));
410
+ }
411
+ else {
412
+ mkdirSync(agentDir(projectPath, agentConfig.name), { recursive: true });
413
+ runners.push(new AgentRunner(agentConfig, mkLogger(projectPath, `${agentConfig.name}-${i + 1}`), projectPath, statusTracker));
414
+ }
399
415
  }
416
+ runnerPools[agentConfig.name] = new RunnerPool(runners);
417
+ logger.info({ agent: agentConfig.name, scale }, "Created runner pool");
400
418
  }
401
419
  const webhookQueueSize = globalConfig.webhookQueueSize ?? 20;
402
420
  const webhookQueue = new WebhookEventQueue(webhookQueueSize);
403
- const schedulerCtx = { runners, agentConfigs, maxReruns, maxTriggerDepth, logger, webhookQueue, shuttingDown: false };
421
+ const skills = dockerEnabled ? { locking: true } : undefined;
422
+ const schedulerCtx = { runnerPools, agentConfigs, maxReruns, maxTriggerDepth, logger, webhookQueue, shuttingDown: false, skills };
404
423
  // Set up webhook bindings
405
424
  if (webhookRegistry) {
406
425
  for (const agentConfig of agentConfigs) {
407
426
  if (!agentConfig.webhooks?.length)
408
427
  continue;
409
- const runner = runners[agentConfig.name];
428
+ const pool = runnerPools[agentConfig.name];
410
429
  for (const trigger of agentConfig.webhooks) {
411
430
  const sourceConfig = webhookSources[trigger.source];
412
431
  const providerType = sourceConfig.type;
@@ -417,24 +436,30 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
417
436
  type: providerType,
418
437
  filter,
419
438
  trigger: (context) => {
420
- if (runner.isRunning) {
439
+ // Skip if agent is disabled
440
+ if (statusTracker && !statusTracker.isAgentEnabled(agentConfig.name)) {
441
+ logger.info({ agent: agentConfig.name, event: context.event }, "agent is disabled, ignoring webhook event");
442
+ return;
443
+ }
444
+ const availableRunner = pool.getAvailableRunner();
445
+ if (!availableRunner) {
421
446
  const { accepted, dropped } = webhookQueue.enqueue(agentConfig.name, context);
422
447
  if (accepted) {
423
- logger.info({ agent: agentConfig.name, event: context.event, queueSize: webhookQueue.size(agentConfig.name) }, "agent busy, webhook event queued");
448
+ logger.info({ agent: agentConfig.name, event: context.event, queueSize: webhookQueue.size(agentConfig.name), running: pool.runningJobCount, scale: pool.size }, "all agent runners busy, webhook event queued");
424
449
  }
425
450
  if (dropped) {
426
451
  logger.warn({ agent: agentConfig.name, droppedEvent: dropped.context.event }, "webhook queue full, oldest event dropped");
427
452
  }
428
453
  return;
429
454
  }
430
- logger.info({ agent: agentConfig.name, event: context.event, action: context.action }, "webhook triggering agent");
431
- const prompt = buildWebhookPrompt(agentConfig, context);
432
- runner.run(prompt, { type: 'webhook', source: context.event }).then(({ triggers }) => {
455
+ logger.info({ agent: agentConfig.name, event: context.event, action: context.action, running: pool.runningJobCount, scale: pool.size }, "webhook triggering agent");
456
+ const prompt = buildWebhookPrompt(agentConfig, context, schedulerCtx.skills);
457
+ availableRunner.run(prompt, { type: 'webhook', source: context.event }).then(({ triggers }) => {
433
458
  if (triggers.length > 0) {
434
459
  dispatchTriggers(triggers, agentConfig.name, 0, schedulerCtx);
435
460
  }
436
461
  // Drain any events that queued while this webhook run was executing
437
- return drainWebhookQueue(runner, agentConfig, schedulerCtx);
462
+ return drainWebhookQueue(agentConfig, schedulerCtx);
438
463
  }).catch((err) => {
439
464
  logger.error({ err }, `${agentConfig.name} webhook run failed`);
440
465
  });
@@ -448,14 +473,20 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
448
473
  for (const agentConfig of agentConfigs) {
449
474
  if (!agentConfig.schedule)
450
475
  continue;
451
- const runner = runners[agentConfig.name];
476
+ const pool = runnerPools[agentConfig.name];
452
477
  const job = new Cron(agentConfig.schedule, { timezone }, async () => {
453
- if (runner.isRunning) {
454
- logger.warn(`${agentConfig.name} is busy, skipping scheduled run`);
478
+ // Skip if agent is disabled
479
+ if (statusTracker && !statusTracker.isAgentEnabled(agentConfig.name)) {
480
+ logger.info({ agent: agentConfig.name }, "agent is disabled, skipping scheduled run");
455
481
  return;
456
482
  }
457
- logger.info(`Triggering ${agentConfig.name} (scheduled)`);
458
- await runWithReruns(runner, agentConfig, 0, schedulerCtx);
483
+ const availableRunner = pool.getAvailableRunner();
484
+ if (!availableRunner) {
485
+ logger.warn({ agent: agentConfig.name, running: pool.runningJobCount, scale: pool.size }, "all agent runners busy, skipping scheduled run");
486
+ return;
487
+ }
488
+ logger.info({ agent: agentConfig.name, running: pool.runningJobCount, scale: pool.size }, "triggering scheduled run");
489
+ await runWithReruns(availableRunner, agentConfig, 0, schedulerCtx);
459
490
  });
460
491
  cronJobs.push(job);
461
492
  const nextRun = job.nextRun();
@@ -476,15 +507,51 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
476
507
  logger.info({ url }, "Webhook endpoint registered");
477
508
  }
478
509
  logger.info(`Scheduler running with ${cronJobs.length} scheduled jobs`);
510
+ // Handle agent enable/disable events
511
+ if (statusTracker) {
512
+ // Create a map of agent name to cron job for easy lookup
513
+ const agentCronJobs = new Map();
514
+ for (let i = 0; i < agentConfigs.length; i++) {
515
+ const config = agentConfigs[i];
516
+ if (config.schedule && cronJobs[i]) {
517
+ agentCronJobs.set(config.name, cronJobs[i]);
518
+ }
519
+ }
520
+ statusTracker.on("agent-enabled", (agentName) => {
521
+ const job = agentCronJobs.get(agentName);
522
+ if (job) {
523
+ job.resume();
524
+ const nextRun = job.nextRun();
525
+ if (nextRun) {
526
+ statusTracker.setNextRunAt(agentName, nextRun);
527
+ }
528
+ logger.info({ agent: agentName }, "agent enabled, cron job resumed");
529
+ }
530
+ });
531
+ statusTracker.on("agent-disabled", (agentName) => {
532
+ const job = agentCronJobs.get(agentName);
533
+ if (job) {
534
+ job.pause();
535
+ statusTracker.setNextRunAt(agentName, null);
536
+ logger.info({ agent: agentName }, "agent disabled, cron job paused");
537
+ }
538
+ });
539
+ }
479
540
  // Fire initial run for scheduled agents
480
541
  for (const agentConfig of agentConfigs) {
481
542
  if (!agentConfig.schedule)
482
543
  continue;
483
- const runner = runners[agentConfig.name];
484
- logger.info(`Initial run for ${agentConfig.name}`);
485
- runWithReruns(runner, agentConfig, 0, schedulerCtx).catch((err) => {
486
- logger.error({ err }, `Initial ${agentConfig.name} run failed`);
487
- });
544
+ const pool = runnerPools[agentConfig.name];
545
+ const availableRunner = pool.getAvailableRunner();
546
+ if (availableRunner) {
547
+ logger.info(`Initial run for ${agentConfig.name}`);
548
+ runWithReruns(availableRunner, agentConfig, 0, schedulerCtx).catch((err) => {
549
+ logger.error({ err }, `Initial ${agentConfig.name} run failed`);
550
+ });
551
+ }
552
+ else {
553
+ logger.warn(`${agentConfig.name}: all runners busy, skipping initial run`);
554
+ }
488
555
  }
489
556
  // Graceful shutdown
490
557
  const shutdown = async () => {
@@ -503,6 +570,6 @@ export async function startScheduler(projectPath, globalConfigOverride, statusTr
503
570
  };
504
571
  process.on("SIGINT", shutdown);
505
572
  process.on("SIGTERM", shutdown);
506
- return { cronJobs, runners, gateway, webhookRegistry, webhookUrls, statusTracker };
573
+ return { cronJobs, runnerPools, gateway, webhookRegistry, webhookUrls, statusTracker };
507
574
  }
508
575
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * RunnerPool manages multiple instances of the same agent for parallel execution.
3
+ * It provides load balancing across available runners and handles queuing when all are busy.
4
+ */
5
+ export interface PoolRunner {
6
+ isRunning: boolean;
7
+ run(prompt: string, triggerInfo?: {
8
+ type: 'schedule' | 'webhook' | 'agent';
9
+ source?: string;
10
+ }): Promise<any>;
11
+ }
12
+ export declare class RunnerPool {
13
+ private runners;
14
+ private roundRobinIndex;
15
+ constructor(runners: PoolRunner[]);
16
+ /**
17
+ * Get the next available runner, or null if all are busy
18
+ */
19
+ getAvailableRunner(): PoolRunner | null;
20
+ /**
21
+ * Get the next runner using round-robin, regardless of availability
22
+ * Used for scheduled runs where we want to distribute evenly
23
+ */
24
+ getNextRunner(): PoolRunner;
25
+ /**
26
+ * Check if any runner in the pool is currently running
27
+ */
28
+ get hasRunningJobs(): boolean;
29
+ /**
30
+ * Get the count of running jobs
31
+ */
32
+ get runningJobCount(): number;
33
+ /**
34
+ * Get the total number of runners in the pool
35
+ */
36
+ get size(): number;
37
+ /**
38
+ * Get all runners (for debugging/introspection)
39
+ */
40
+ get allRunners(): PoolRunner[];
41
+ }
42
+ //# sourceMappingURL=runner-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-pool.d.ts","sourceRoot":"","sources":["../../src/scheduler/runner-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9G;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,eAAe,CAAK;gBAEhB,OAAO,EAAE,UAAU,EAAE;IAOjC;;OAEG;IACH,kBAAkB,IAAI,UAAU,GAAG,IAAI;IASvC;;;OAGG;IACH,aAAa,IAAI,UAAU;IAM3B;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,EAAE,CAE7B;CACF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * RunnerPool manages multiple instances of the same agent for parallel execution.
3
+ * It provides load balancing across available runners and handles queuing when all are busy.
4
+ */
5
+ export class RunnerPool {
6
+ runners = [];
7
+ roundRobinIndex = 0;
8
+ constructor(runners) {
9
+ if (runners.length === 0) {
10
+ throw new Error("RunnerPool requires at least one runner");
11
+ }
12
+ this.runners = runners;
13
+ }
14
+ /**
15
+ * Get the next available runner, or null if all are busy
16
+ */
17
+ getAvailableRunner() {
18
+ // Look for any available runner
19
+ const availableRunner = this.runners.find(r => !r.isRunning);
20
+ if (availableRunner) {
21
+ return availableRunner;
22
+ }
23
+ return null;
24
+ }
25
+ /**
26
+ * Get the next runner using round-robin, regardless of availability
27
+ * Used for scheduled runs where we want to distribute evenly
28
+ */
29
+ getNextRunner() {
30
+ const runner = this.runners[this.roundRobinIndex];
31
+ this.roundRobinIndex = (this.roundRobinIndex + 1) % this.runners.length;
32
+ return runner;
33
+ }
34
+ /**
35
+ * Check if any runner in the pool is currently running
36
+ */
37
+ get hasRunningJobs() {
38
+ return this.runners.some(r => r.isRunning);
39
+ }
40
+ /**
41
+ * Get the count of running jobs
42
+ */
43
+ get runningJobCount() {
44
+ return this.runners.filter(r => r.isRunning).length;
45
+ }
46
+ /**
47
+ * Get the total number of runners in the pool
48
+ */
49
+ get size() {
50
+ return this.runners.length;
51
+ }
52
+ /**
53
+ * Get all runners (for debugging/introspection)
54
+ */
55
+ get allRunners() {
56
+ return [...this.runners];
57
+ }
58
+ }
59
+ //# sourceMappingURL=runner-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-pool.js","sourceRoot":"","sources":["../../src/scheduler/runner-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,OAAO,UAAU;IACb,OAAO,GAAiB,EAAE,CAAC;IAC3B,eAAe,GAAG,CAAC,CAAC;IAE5B,YAAY,OAAqB;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,gCAAgC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAwavD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAgB7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,aAAa,EAAO,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAkDN"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAYvD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAgB7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,aAAa,EAAO,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAwDN"}