Skip to main content

Class: Scheduler

Defined in: packages/orchestration/src/scheduler/scheduler.ts:30

Heartbeat-based scheduler with event-driven triggers. Dispatches queued tickets to available agents.

Constructors

Constructor

new Scheduler(ticketStore, ticketGraph, registry, runManager, events): Scheduler

Defined in: packages/orchestration/src/scheduler/scheduler.ts:40

Parameters

ticketStore

TicketStore

ticketGraph

TicketGraph

registry

AgentRegistry

runManager

RunManager

events

EventBus<OrchestrationEventMap>

Returns

Scheduler

Methods

addTrigger()

addTrigger(trigger, action): void

Defined in: packages/orchestration/src/scheduler/scheduler.ts:76

Add a custom trigger

Parameters

trigger

Trigger

action

() => Promise<void>

Returns

void


awaitInFlight()

awaitInFlight(): Promise<void>

Defined in: packages/orchestration/src/scheduler/scheduler.ts:215

Await all in-flight spawn promises

Returns

Promise<void>


explain()

explain(ticketId): Promise<SkipReason>

Defined in: packages/orchestration/src/scheduler/scheduler.ts:171

Diagnose why a ticket isn't dispatching. Returns a structured reason — useful for debugging and UI status indicators.

Parameters

ticketId

string

Returns

Promise<SkipReason>


start()

start(intervalMs?): void

Defined in: packages/orchestration/src/scheduler/scheduler.ts:49

Start heartbeat loop

Parameters

intervalMs?

number = 30_000

Returns

void


stop()

stop(): void

Defined in: packages/orchestration/src/scheduler/scheduler.ts:60

Stop heartbeat

Returns

void


tick()

tick(): Promise<void>

Defined in: packages/orchestration/src/scheduler/scheduler.ts:105

Single dispatch cycle:

  1. Find queued tickets ordered by priority
  2. Check dependency resolution
  3. Match to available agents
  4. Spawn runs

Returns

Promise<void>