createRun method

JsonMap createRun({
  1. required String agentId,
  2. required String triggeringMessageId,
  3. required String triggeredBy,
})

Creates a queued run of agentId for triggeringMessageId and appends run.state_changed; returns the run document.

Implementation

JsonMap createRun({
  required String agentId,
  required String triggeringMessageId,
  required String triggeredBy,
}) {
  final m = messages[triggeringMessageId]!;
  final id = nextId();
  final run = <String, Object?>{
    'id': id,
    'thread_id': m['thread_id'],
    'channel_id': m['channel_id'],
    'agent_id': agentId,
    'trigger_kind': 'message',
    'triggering_message_id': triggeringMessageId,
    'triggered_by': triggeredBy,
    'state': 'queued',
    'version': 1,
    'billing_mode_expected': 'organization',
    'metrics': <String, Object?>{},
    'cost': {'amount_micros': 0, 'currency': 'EUR', 'is_estimate': true},
    'steps': <String, Object?>{},
    'followups': <String, Object?>{},
    'queued_at': stamp(),
  };
  runs[id] = run;
  _runStateEvent(run, triggerState: m['trigger_state'] as String?);
  return run;
}