/* tslint:disable */
/* eslint-disable */
/**
 * Fabro Run API
 * HTTP API for managing Fabro workflow run executions.
 *
 * The version of the OpenAPI document: 0.2.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { BillingModelRef } from './billing-model-ref';
// May contain unused imports in some cases
// @ts-ignore
import type { LlmOutputKind } from './llm-output-kind';

/**
 * One open inference bracket: a dispatched LLM request that has not yet produced a message, error, or interrupt. Carries no usage or cost — none exists until the turn completes.
 */
export interface StageInferenceProjection {
    /**
     * Agent session that opened the bracket, copied from the event envelope. Transitions are gated on it so sub-agent rounds cannot overwrite the root session\'s bracket.
     */
    'session_id': string;
    /**
     * When the request was dispatched.
     */
    'started_at': string;
    /**
     * Provider and model the request was sent to. Failover can re-target, so `StageProjection.model` stays authoritative for what answered.
     */
    'requested_model': BillingModelRef;
    /**
     * When the provider produced its first output, if it has.
     */
    'first_output_at'?: string | null;
    'first_output_kind'?: LlmOutputKind | null;
    /**
     * Attempts that failed and restarted within this bracket.
     */
    'retries': number;
}
