/**
 * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
 *
 *   - `isTerminalState(state)` returns true iff state ∈ {completed,
 *     failed, canceled, rejected}.
 *   - `runStatusToA2AState(status)` is a table lookup:
 *     queued → pending; running → running; completed → completed;
 *     failed → failed; cancelled → canceled; cancelling → running;
 *     expired → failed.
 *   - `runToA2ATask(run, messages?)`:
 *     - `id` comes from `run.id`; `contextId` comes from
 *       `run.project_id ?? undefined`.
 *     - `status.timestamp` picks the first defined of
 *       `completed_at`, `started_at`, `created_at` (in that order).
 *     - `status.message` is agent-text of `run.result` if present,
 *       else of `run.last_error` if present, else undefined.
 *     - `artifacts` is present iff `run.result` is present; the single
 *       artifact carries a subset of usage + timing metadata.
 *     - `history` is mapped through `messageToA2A` only when `messages`
 *       is supplied.
 *     - Top-level `metadata` carries agent_id, agent_name, stop_reason
 *       (even if undefined).
 *   - `a2aMessageToCreateRun(agentId, params)` only sets a metadata
 *     field on `config` when the source value has the expected type
 *     (string for model/systemPrompt; number for numeric fields;
 *     'plan' | 'auto' for permissionMode). Everything else is omitted.
 */
export {};
//# sourceMappingURL=task.test.d.ts.map