defmodule AgentSea.Bid do @moduledoc """ An agent's bid on a task, produced by `AgentSea.Agent.bid/2`. Used by the auction delegation strategy. `estimated_cost` combines the model's price tier with the estimated effort, so the `:cheapest` criterion can distinguish a cheap-but-slower model from an expensive-but-faster one. """ @enforce_keys [:agent_name, :confidence] defstruct [ :agent_name, :task_id, :confidence, :estimated_time, :estimated_cost, :reasoning, capabilities: [] ] @type t :: %__MODULE__{ agent_name: term(), task_id: term() | nil, confidence: float(), estimated_time: number() | nil, estimated_cost: number() | nil, reasoning: String.t() | nil, capabilities: [String.t()] } end