LemonRouter.Submission (lemon_router v0.1.0)

View Source

Router-owned internal queue contract between orchestration and coordination.

LemonCore.RunRequest remains the permissive router-facing boundary and LemonCore.ExecutionCommand is the runtime-facing execution contract. This struct owns the normalized router handoff in between.

Summary

Types

t()

@type t() :: %LemonRouter.Submission{
  conversation_key: LemonCore.ExecutionCommand.conversation_key(),
  current_phase: LemonCore.RunPhase.t() | nil,
  execution_request: LemonCore.ExecutionCommand.t(),
  meta: map(),
  queue_mode: atom() | term(),
  run_id: binary(),
  run_process_module: module(),
  run_process_opts: map(),
  run_supervisor: module() | pid() | atom(),
  session_key: binary()
}

Functions

new!(submission)

@spec new!(t() | map() | keyword()) :: t()

put_phase(submission, phase)

@spec put_phase(t(), LemonCore.RunPhase.t()) :: t()