// This file is auto-generated by @hey-api/openapi-ts

export type SafeError = {
    request_id: string;
    correlation_id?: string;
    code: 'invalid_request' | 'unauthenticated' | 'permission_denied' | 'not_found' | 'conflict' | 'stale_version' | 'downstream_unavailable' | 'rate_limited';
    message: string;
    retryable: boolean;
};

export type PageInfo = {
    next_page_token?: string;
};

export type ScopeType = 'platform' | 'organization' | 'project' | 'repository' | 'service';

export type AgentScopeType = 'platform' | 'organization' | 'project' | 'repository';

export type ScopeRef = {
    type: ScopeType;
    ref: string;
};

export type RequestKind = 'feedback' | 'approval' | 'human_gate';

export type RequestStatus = 'created' | 'routed' | 'waiting' | 'answered' | 'expired' | 'cancelled' | 'failed';

export type SourceOwnerKind = 'agent_manager' | 'slot_agent' | 'governance_manager' | 'provider_hub' | 'operations_hub' | 'user' | 'system';

export type DecisionOwnerKind = 'agent_manager' | 'governance_manager' | 'provider_hub' | 'operations_hub' | 'system';

export type ResponseAction = 'answer' | 'approve' | 'reject' | 'request_changes' | 'defer' | 'acknowledge' | 'custom';

export type ResponseSourceKind = 'web_console' | 'mcp' | 'channel_callback' | 'system' | 'service';

export type AgentRunStatus = 'unspecified' | 'requested' | 'starting' | 'running' | 'waiting' | 'completed' | 'failed' | 'cancelled';

export type AgentSessionStatus = 'unspecified' | 'open' | 'waiting' | 'completed' | 'failed' | 'cancelled';

export type RuntimeObservationState = 'unspecified' | 'not_created' | 'stored_ref' | 'live' | 'unavailable' | 'conflict';

export type AgentRuntimeJobStatus = 'unspecified' | 'pending' | 'claimed' | 'running' | 'succeeded' | 'failed' | 'cancelled' | 'timed_out';

export type AgentActivityKind = 'unspecified' | 'lifecycle' | 'tool_use' | 'tool_result' | 'permission' | 'provider_signal' | 'runtime_signal' | 'checkpoint' | 'other';

export type AgentActivityStatus = 'unspecified' | 'planned' | 'started' | 'succeeded' | 'failed' | 'denied' | 'waiting' | 'cancelled' | 'skipped';

export type GovernanceTargetType = 'unspecified' | 'transition' | 'pull_request' | 'release_candidate' | 'runtime_job' | 'policy_change' | 'document' | 'merge' | 'postdeploy' | 'rollback' | 'self_deploy_plan';

export type GovernanceDecisionSummaryKind = 'unspecified' | 'risk_assessment' | 'review_signal' | 'gate_request' | 'gate_decision' | 'release_decision_package' | 'release_decision' | 'blocking_signal' | 'release_safety_state';

export type GovernanceDecisionAttention = 'unspecified' | 'pending' | 'completed' | 'blocked' | 'informational';

export type GovernanceRiskClass = 'unspecified' | 'r0' | 'r1' | 'r2' | 'r3';

export type GovernanceReviewOutcome = 'unspecified' | 'pass' | 'pass_with_notes' | 'block' | 'request_changes' | 'raise_risk' | 'informational';

export type GovernanceGateRequestStatus = 'unspecified' | 'requested' | 'delivering' | 'awaiting_decision' | 'resolved' | 'expired' | 'cancelled';

export type GovernanceGateOutcome = 'unspecified' | 'approve' | 'approve_with_conditions' | 'revise' | 'reject' | 'hold' | 'rollback' | 'escalate';

export type GovernanceReleasePackageStatus = 'unspecified' | 'draft' | 'ready' | 'decision_requested' | 'closed';

export type GovernanceReleaseDecisionStatus = 'unspecified' | 'requested' | 'resolved' | 'cancelled';

export type GovernanceReleaseDecisionOutcome = 'unspecified' | 'go' | 'go_with_conditions' | 'no_go' | 'hold' | 'rollback' | 'follow_up_required';

export type GovernanceBlockingSignalStatus = 'unspecified' | 'active' | 'resolved' | 'dismissed';

export type GovernanceSignalSeverity = 'unspecified' | 'info' | 'warning' | 'blocking' | 'critical';

export type GovernanceEvidenceKind = 'unspecified' | 'provider_comment' | 'provider_review' | 'provider_check' | 'runtime_summary' | 'document' | 'risk_factor' | 'review_signal' | 'interaction_callback' | 'object_ref' | 'custom' | 'agent_acceptance' | 'agent_run' | 'agent_human_gate';

export type SelfDeploySummaryAvailability = 'unavailable' | 'ready';

export type SelfDeployChainStatus = 'not_configured' | 'project_missing' | 'repository_binding_missing' | 'waiting_for_provider_signal' | 'provider_signal_found' | 'needs_services_policy_reconcile' | 'plan_created' | 'governance_gate_pending' | 'approved_ready_for_build' | 'blocked';

export type SelfDeployNextStepCode = 'configure_project' | 'restore_project' | 'bind_repository' | 'wait_provider_signal' | 'reconcile_services_policy' | 'wait_self_deploy_plan' | 'review_governance_gate' | 'ready_for_build' | 'inspect_blocker' | 'none';

export type SelfDeployProviderSignalStatus = 'unavailable' | 'stored_ref';

export type SelfDeployPlanStatus = 'unavailable' | 'unspecified' | 'pending_approval' | 'approved' | 'rejected' | 'cancelled' | 'failed';

export type SelfDeployPlanStatusFilter = 'unspecified' | 'pending_approval' | 'approved' | 'rejected' | 'cancelled' | 'failed';

export type SelfDeployPathCategory = 'unspecified' | 'service_source' | 'service_config' | 'deploy_manifest' | 'runtime_config' | 'documentation' | 'test' | 'platform_policy' | 'other' | 'services_policy';

export type SelfDeployGovernanceStatus = 'unavailable' | 'pending' | 'resolved';

export type SelfDeployGateDecisionAction = 'approve' | 'reject' | 'request_changes';

export type SelfDeployRuntimeStatus = 'unavailable' | 'pending' | 'stored_ref' | 'running' | 'completed' | 'failed';

export type DeliveryAttemptStatus = 'unspecified' | 'queued' | 'sent' | 'accepted' | 'delivered' | 'failed' | 'cancelled' | 'expired';

export type DeliveryErrorClass = 'unspecified' | 'temporary' | 'permanent' | 'auth' | 'rate_limited' | 'policy';

export type CallbackSignatureStatus = 'unspecified' | 'verified' | 'trusted_internal' | 'rejected_before_domain';

export type CallbackProcessingStatus = 'unspecified' | 'accepted' | 'duplicate' | 'rejected' | 'failed';

export type SourceOwnerRef = {
    kind: SourceOwnerKind;
    ref?: string;
};

export type DecisionOwnerRef = {
    owner_kind: DecisionOwnerKind;
    owner_request_ref: string;
    owner_decision_ref?: string;
};

export type ActorRef = {
    ref_kind: string;
    ref: string;
};

export type ExternalRef = {
    ref_kind: string;
    ref: string;
};

export type InteractionAction = {
    action_key: string;
    label_template_ref?: string;
    is_terminal: boolean;
};

export type ObjectRef = {
    object_uri: string;
    object_digest: string;
    object_size_bytes?: number;
};

export type OwnerInboxDeliverySummary = {
    attempt_count: number;
    latest_delivery_attempt_id?: string;
    latest_delivery_id?: string;
    latest_status: DeliveryAttemptStatus;
    latest_error_code?: string;
    latest_error_class: DeliveryErrorClass;
    next_retry_at?: string;
    latest_updated_at?: string;
    route_id?: string;
    channel_message_ref?: string;
};

export type OwnerInboxCallbackSummary = {
    callback_ref: string;
    callback_id: string;
    delivery_id?: string;
    signature_status: CallbackSignatureStatus;
    processing_status: CallbackProcessingStatus;
    actor_ref?: string;
    action?: string;
    error_code?: string;
    received_at: string;
    gateway_ref?: string;
    correlation_id?: string;
};

export type OwnerInboxResponseSummary = {
    response_id: string;
    response_action: ResponseAction;
    responded_by_actor_ref: string;
    source_kind: ResponseSourceKind;
    source_ref?: string;
    owner_decision_ref?: string;
    created_at: string;
    response_summary?: string;
    response_summary_digest?: string;
    response_object?: ObjectRef;
    interaction_response_ref?: string;
};

export type OwnerInboxItem = {
    request_id: string;
    request_kind: RequestKind;
    request_status: RequestStatus;
    scope: ScopeRef;
    requester: SourceOwnerRef;
    decision_owner?: DecisionOwnerRef;
    assignee_refs: Array<ActorRef>;
    context_refs: Array<ExternalRef>;
    title: string;
    summary: string;
    deadline_at?: string;
    reminder_policy_ref?: string;
    delivery_summary: OwnerInboxDeliverySummary;
    latest_callback?: OwnerInboxCallbackSummary;
    latest_response?: OwnerInboxResponseSummary;
    created_at: string;
    updated_at: string;
    resolved_at?: string;
    version: number;
    allowed_actions: Array<InteractionAction>;
};

export type OwnerInboxListResponse = {
    request_id: string;
    correlation_id?: string;
    items: Array<OwnerInboxItem>;
    page: PageInfo;
};

export type OwnerInboxItemResponse = {
    request_id: string;
    correlation_id?: string;
    item: OwnerInboxItem;
};

/**
 * Для идемпотентности должен быть передан command_id или idempotency_key.
 */
export type OwnerInboxRespondRequest = {
    action: ResponseAction;
    expected_version: number;
    command_id?: string;
    idempotency_key?: string;
    response_summary?: string;
    response_object?: ObjectRef;
    owner_decision_ref?: string;
    reason?: string;
};

export type OwnerInboxRespondResponse = {
    request_id: string;
    correlation_id?: string;
    item: OwnerInboxItem;
    response: OwnerInboxResponseSummary;
};

export type GovernanceSummaryResponse = {
    request_id: string;
    correlation_id?: string;
    summary: GovernanceSummary;
};

export type SelfDeploySummaryResponse = {
    request_id: string;
    correlation_id?: string;
    summary: SelfDeploySummary;
};

export type SelfDeployGateDecisionRequest = {
    self_deploy_plan_ref: string;
    action: SelfDeployGateDecisionAction;
    comment?: string;
    idempotency_key: string;
    expected_version: number;
    expected_status?: SelfDeployGovernanceStatus;
    decision_policy_ref?: string;
    interaction_request_ref?: string;
    interaction_delivery_ref?: string;
    interaction_callback_ref?: string;
    interaction_decision_ref?: string;
};

export type SelfDeployGateDecisionResponse = {
    request_id: string;
    correlation_id?: string;
    decision: SelfDeployGateDecisionSummary;
};

export type SelfDeployGateDecisionSummary = {
    self_deploy_plan_ref: string;
    gate_request_ref: string;
    gate_request_id?: string;
    gate_decision_ref?: string;
    outcome: GovernanceGateOutcome;
    action: SelfDeployGateDecisionAction;
    status: SelfDeployGovernanceStatus;
    gate_request_status?: GovernanceGateRequestStatus;
    summary: string;
    decided_at?: string;
    version?: number;
};

export type SelfDeploySummary = {
    availability: SelfDeploySummaryAvailability;
    chain_status: SelfDeployChainStatus;
    next_step: SelfDeployNextStep;
    self_deploy_plan_id?: string;
    project_ref?: string;
    repository_ref?: string;
    source_ref?: string;
    merge_commit_sha?: string;
    services_yaml_ref?: string;
    services_yaml_digest?: string;
    plan_fingerprint?: string;
    safe_summary?: string;
    affected_service_keys: Array<string>;
    path_categories: Array<SelfDeployPathCategory>;
    expected_runtime_job_types: Array<string>;
    provider_signal: SelfDeployProviderSignalSummary;
    deploy_plan: SelfDeployPlanSummary;
    governance: SelfDeployGovernanceSummary;
    runtime: SelfDeployRuntimeSummary;
    safe_error?: SelfDeploySafeError;
    created_at?: string;
    updated_at?: string;
    version?: number;
};

export type SelfDeployNextStep = {
    code: SelfDeployNextStepCode;
    summary: string;
};

export type SelfDeployProviderSignalSummary = {
    status: SelfDeployProviderSignalStatus;
    ref?: string;
};

export type SelfDeployPlanSummary = {
    status: SelfDeployPlanStatus;
};

export type SelfDeployGovernanceSummary = {
    status: SelfDeployGovernanceStatus;
    gate_request_ref?: string;
    gate_request_id?: string;
    gate_decision_ref?: string;
    release_decision_package_ref?: string;
    release_decision_ref?: string;
    gate_policy_ref?: string;
    gate_request_version?: number;
    allowed_actions?: Array<SelfDeployGateDecisionAction>;
};

export type SelfDeployRuntimeSummary = {
    status: SelfDeployRuntimeStatus;
    runtime_job_ref?: string;
    runtime_status_summary?: string;
};

export type SelfDeploySafeError = {
    code: string;
    summary: string;
};

export type GovernanceSummary = {
    scope: GovernanceSummaryScope;
    pending_decisions: Array<GovernanceDecisionSummary>;
    completed_decisions: Array<GovernanceDecisionSummary>;
    evidence_summaries: Array<GovernanceEvidenceSummary>;
    diagnostics: Array<string>;
};

export type GovernanceSummaryScope = {
    target?: GovernanceTargetRef;
    project_context?: GovernanceProjectContextRef;
    release_candidate_ref?: string;
    release_decision_package_id?: string;
    integration_ref?: GovernanceReleaseIntegrationRef;
};

export type GovernanceTargetRef = {
    type: GovernanceTargetType;
    ref: string;
};

export type GovernanceProjectContextRef = {
    project_ref?: string;
    repository_ref?: string;
    service_ref?: string;
    branch_rules_ref?: string;
    release_policy_ref?: string;
    release_line_ref?: string;
};

export type GovernanceReleaseIntegrationRef = {
    domain: string;
    kind: string;
    ref: string;
    status?: string;
    summary?: string;
    digest?: string;
    observed_at?: string;
    version?: string;
    error_code?: string;
};

export type GovernanceEvidenceRef = {
    kind: GovernanceEvidenceKind;
    ref: string;
    summary?: string;
    digest?: string;
    retention_class?: string;
};

export type GovernanceProviderContextRef = {
    work_item_ref?: string;
    pull_request_ref?: string;
    comment_ref?: string;
    review_signal_ref?: string;
    provider_operation_ref?: string;
    changed_files_summary_ref?: string;
};

export type GovernanceRuntimeContextRef = {
    slot_ref?: string;
    job_ref?: string;
    environment_ref?: string;
    artifact_ref?: string;
    summary_ref?: string;
};

export type GovernanceAgentContextRef = {
    session_ref?: string;
    run_ref?: string;
    stage_ref?: string;
    acceptance_ref?: string;
    role_ref?: string;
};

export type GovernanceDecisionSummary = {
    kind: GovernanceDecisionSummaryKind;
    attention: GovernanceDecisionAttention;
    id: string;
    parent_id?: string;
    target?: GovernanceTargetRef;
    project_context?: GovernanceProjectContextRef;
    release_candidate_ref?: string;
    release_decision_package_id?: string;
    risk_class?: GovernanceRiskClass;
    review_outcome?: GovernanceReviewOutcome;
    gate_request_status?: GovernanceGateRequestStatus;
    gate_outcome?: GovernanceGateOutcome;
    release_package_status?: GovernanceReleasePackageStatus;
    release_decision_status?: GovernanceReleaseDecisionStatus;
    release_decision_outcome?: GovernanceReleaseDecisionOutcome;
    blocking_signal_status?: GovernanceBlockingSignalStatus;
    severity?: GovernanceSignalSeverity;
    safe_summary: string;
    evidence_refs: Array<GovernanceEvidenceRef>;
    integration_refs: Array<GovernanceReleaseIntegrationRef>;
    provider_refs: Array<GovernanceProviderContextRef>;
    runtime_refs: Array<GovernanceRuntimeContextRef>;
    agent_context?: GovernanceAgentContextRef;
    version: number;
    created_at: string;
    updated_at: string;
    observed_at?: string;
};

export type GovernanceEvidenceSummary = {
    source_kind: string;
    source_ref: string;
    status?: string;
    outcome?: string;
    safe_summary: string;
    error_code?: string;
    digest?: string;
    observed_at?: string;
    version?: string;
    evidence_refs: Array<GovernanceEvidenceRef>;
    integration_refs: Array<GovernanceReleaseIntegrationRef>;
};

export type AgentSessionListResponse = {
    request_id: string;
    correlation_id?: string;
    sessions: Array<AgentSessionSummary>;
    page: PageInfo;
};

export type AgentSessionSummary = {
    session_id: string;
    scope: ScopeRef;
    provider_work_item_ref?: string;
    flow_version_id?: string;
    current_stage_id?: string;
    latest_state_snapshot_id?: string;
    status: AgentSessionStatus;
    created_by_actor_ref: string;
    latest_run_id?: string;
    latest_run_status?: AgentRunStatus;
    latest_runtime_job_ref?: string;
    latest_run_safe_summary?: string;
    active_run_count: number;
    human_gate_waiting: boolean;
    human_gate_request_ref?: string;
    human_gate_reason_code?: string;
    latest_activity?: AgentActivitySummary;
    follow_up_waiting: boolean;
    follow_up_ref?: string;
    created_at: string;
    updated_at: string;
    version: number;
};

export type AgentRunSummaryListResponse = {
    request_id: string;
    correlation_id?: string;
    runs: Array<AgentRunSummary>;
    page: PageInfo;
};

export type AgentRunSummary = {
    run_id: string;
    session_id: string;
    flow_version_id?: string;
    stage_id?: string;
    role_profile_id: string;
    role_profile_version: number;
    provider_target?: ProviderTargetRef;
    runtime_slot_ref?: string;
    runtime_context_ref?: string;
    runtime_job_ref?: string;
    status: AgentRunStatus;
    result_summary?: string;
    failure_code?: string;
    runtime_observation_state: RuntimeObservationState;
    runtime_safe_error_code?: string;
    runtime_safe_summary?: string;
    human_gate_waiting: boolean;
    human_gate_request_ref?: string;
    human_gate_reason_code?: string;
    follow_up_waiting: boolean;
    latest_activity?: AgentActivitySummary;
    started_at?: string;
    finished_at?: string;
    created_at: string;
    updated_at: string;
    version: number;
};

export type ProviderTargetRef = {
    work_item_ref?: string;
    pull_request_ref?: string;
    comment_ref?: string;
    review_signal_ref?: string;
};

export type AgentActivitySummary = {
    activity_id: string;
    activity_kind: AgentActivityKind;
    status: AgentActivityStatus;
    tool_name?: string;
    tool_category?: string;
    safe_summary?: string;
    payload_digest?: string;
    bounded_error?: string;
    started_at?: string;
    finished_at?: string;
    updated_at: string;
    version: number;
};

export type AgentRunRuntimeStatusResponse = {
    request_id: string;
    correlation_id?: string;
    runtime_status: AgentRunRuntimeStatus;
};

export type AgentRunRuntimeStatus = {
    run_id: string;
    run_status: AgentRunStatus;
    observation_state: RuntimeObservationState;
    runtime_slot_ref?: string;
    runtime_context_ref?: string;
    runtime_job_ref?: string;
    runtime_job_status: AgentRuntimeJobStatus;
    runtime_job_command_ref?: string;
    runtime_job_version?: number;
    runtime_job_created_at?: string;
    runtime_job_started_at?: string;
    runtime_job_finished_at?: string;
    runtime_job_updated_at?: string;
    safe_error_code?: string;
    safe_summary?: string;
    run_started_at?: string;
    run_finished_at?: string;
    run_updated_at: string;
    run_version: number;
    human_gate_waiting: boolean;
    human_gate_request_ref?: string;
    human_gate_reason_code?: string;
    follow_up_waiting: boolean;
};

export type AgentRunActivitiesResponse = {
    request_id: string;
    correlation_id?: string;
    run_id?: string;
    activities: Array<AgentRunActivity>;
    page: PageInfo;
};

export type AgentRunActivity = {
    activity_id: string;
    session_id: string;
    run_id?: string;
    turn_id?: string;
    tool_use_id?: string;
    activity_kind: AgentActivityKind;
    tool_name?: string;
    tool_category?: string;
    status: AgentActivityStatus;
    started_at?: string;
    finished_at?: string;
    duration_ms?: number;
    safe_summary?: string;
    payload_digest?: string;
    bounded_error?: string;
    /**
     * Bounded JSON object with refs only; never raw payload.
     */
    safe_refs_json?: string;
    /**
     * Bounded JSON object with safe display details only.
     */
    safe_details_json?: string;
    correlation_id?: string;
    created_at: string;
    updated_at: string;
    version: number;
};

/**
 * Safe id `AgentRun`.
 */
export type RunIdPath = string;

/**
 * Тип области `agent-manager`.
 */
export type AgentScopeTypeQuery = AgentScopeType;

/**
 * Safe ref области `agent-manager`.
 */
export type AgentScopeRefQuery = string;

/**
 * Фильтр session по lifecycle status.
 */
export type AgentSessionStatusQuery = AgentSessionStatus;

/**
 * Фильтр Run по lifecycle status.
 */
export type AgentRunStatusQuery = AgentRunStatus;

/**
 * Safe id `AgentSession`.
 */
export type AgentRunSessionIdQuery = string;

/**
 * Safe id роли агента.
 */
export type AgentRoleProfileIdQuery = string;

/**
 * Safe ref provider-native work item.
 */
export type ProviderWorkItemRefQuery = string;

/**
 * Safe ref provider-native PR/MR.
 */
export type ProviderPullRequestRefQuery = string;

/**
 * Safe ref actor, создавшего session.
 */
export type CreatedByActorRefQuery = string;

/**
 * Нижняя граница времени создания.
 */
export type CreatedAfterQuery = string;

/**
 * Верхняя граница времени создания.
 */
export type CreatedBeforeQuery = string;

/**
 * Фильтр по виду safe activity entry.
 */
export type AgentActivityKindQuery = AgentActivityKind;

/**
 * Фильтр по статусу safe activity entry.
 */
export type AgentActivityStatusQuery = AgentActivityStatus;

/**
 * Тип governance target. Должен передаваться вместе с `target_ref`.
 */
export type GovernanceTargetTypeQuery = GovernanceTargetType;

/**
 * Safe ref governance target.
 */
export type GovernanceTargetRefQuery = string;

/**
 * Safe ref проекта из `project-catalog`.
 */
export type GovernanceProjectRefQuery = string;

/**
 * Safe ref репозитория из `project-catalog`.
 */
export type GovernanceRepositoryRefQuery = string;

/**
 * Safe ref сервиса в проектной политике.
 */
export type GovernanceServiceRefQuery = string;

/**
 * Safe ref branch rules.
 */
export type GovernanceBranchRulesRefQuery = string;

/**
 * Safe ref release policy.
 */
export type GovernanceReleasePolicyRefQuery = string;

/**
 * Safe ref release line.
 */
export type GovernanceReleaseLineRefQuery = string;

/**
 * Safe ref кандидата релиза.
 */
export type GovernanceReleaseCandidateRefQuery = string;

/**
 * Local id release decision package.
 */
export type GovernanceReleaseDecisionPackageIdQuery = string;

/**
 * Owner domain safe ref, например `provider`, `agent`, `runtime` или `governance`.
 */
export type GovernanceIntegrationDomainQuery = string;

/**
 * Тип safe ref внутри owner domain.
 */
export type GovernanceIntegrationKindQuery = string;

/**
 * Safe ref owner-domain факта.
 */
export type GovernanceIntegrationRefQuery = string;

/**
 * Safe ref проекта для фильтра self-deploy plan.
 */
export type SelfDeployProjectRefQuery = string;

/**
 * Safe ref репозитория для фильтра self-deploy plan.
 */
export type SelfDeployRepositoryRefQuery = string;

/**
 * Safe ref provider signal для фильтра self-deploy plan.
 */
export type SelfDeployProviderSignalRefQuery = string;

/**
 * Фильтр self-deploy plan по статусу.
 */
export type SelfDeployPlanStatusQuery = SelfDeployPlanStatusFilter;

/**
 * Local id governance gate request.
 */
export type GovernanceGateRequestIdPath = string;

/**
 * Interaction request id.
 */
export type RequestIdPath = string;

/**
 * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
 */
export type RequestIdHeader = string;

/**
 * Безопасная ссылка на трассу.
 */
export type TraceIdHeader = string;

/**
 * Безопасная ссылка на пользовательскую сессию.
 */
export type SessionIdHeader = string;

/**
 * Тип проверенного субъекта от внешнего auth boundary.
 */
export type ActorTypeHeader = 'user' | 'service' | 'agent' | 'external_account';

/**
 * Safe id проверенного субъекта без email и имени.
 */
export type ActorIdHeader = string;

/**
 * Тип области interaction request.
 */
export type ScopeTypeQuery = ScopeType;

/**
 * Safe ref области.
 */
export type ScopeRefQuery = string;

/**
 * Список kind через запятую.
 */
export type RequestKindsQuery = Array<RequestKind>;

/**
 * Список статусов через запятую. Пустое значение оставляет default interaction-hub.
 */
export type RequestStatusesQuery = Array<RequestStatus>;

export type SourceOwnerKindQuery = SourceOwnerKind;

export type SourceOwnerRefQuery = string;

export type AssigneeKindQuery = string;

export type AssigneeRefQuery = string;

export type ActorRefQuery = string;

export type CorrelationKindQuery = string;

export type CorrelationRefQuery = string;

export type CorrelationIdQuery = string;

export type IncludeDiagnosticsQuery = boolean;

export type PageSizeQuery = number;

export type PageTokenQuery = string;

export type ListOwnerInboxItemsData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path?: never;
    query: {
        /**
         * Тип области interaction request.
         */
        scope_type: ScopeType;
        /**
         * Safe ref области.
         */
        scope_ref: string;
        /**
         * Список kind через запятую.
         */
        request_kind?: Array<RequestKind>;
        /**
         * Список статусов через запятую. Пустое значение оставляет default interaction-hub.
         */
        status?: Array<RequestStatus>;
        source_owner_kind?: SourceOwnerKind;
        source_owner_ref?: string;
        assignee_kind?: string;
        assignee_ref?: string;
        actor_ref?: string;
        correlation_kind?: string;
        correlation_ref?: string;
        correlation_id?: string;
        include_diagnostics?: boolean;
        page_size?: number;
        page_token?: string;
    };
    url: '/v1/owner-inbox/items';
};

export type ListOwnerInboxItemsErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type ListOwnerInboxItemsError = ListOwnerInboxItemsErrors[keyof ListOwnerInboxItemsErrors];

export type ListOwnerInboxItemsResponses = {
    /**
     * Список входящих решений получен.
     */
    200: OwnerInboxListResponse;
};

export type ListOwnerInboxItemsResponse = ListOwnerInboxItemsResponses[keyof ListOwnerInboxItemsResponses];

export type GetOwnerInboxItemData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path: {
        /**
         * Interaction request id.
         */
        request_id: string;
    };
    query: {
        /**
         * Тип области interaction request.
         */
        scope_type: ScopeType;
        /**
         * Safe ref области.
         */
        scope_ref: string;
        assignee_kind?: string;
        assignee_ref?: string;
        include_diagnostics?: boolean;
    };
    url: '/v1/owner-inbox/items/{request_id}';
};

export type GetOwnerInboxItemErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type GetOwnerInboxItemError = GetOwnerInboxItemErrors[keyof GetOwnerInboxItemErrors];

export type GetOwnerInboxItemResponses = {
    /**
     * Карточка входящего решения получена.
     */
    200: OwnerInboxItemResponse;
};

export type GetOwnerInboxItemResponse = GetOwnerInboxItemResponses[keyof GetOwnerInboxItemResponses];

export type RespondOwnerInboxItemData = {
    body: OwnerInboxRespondRequest;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path: {
        /**
         * Interaction request id.
         */
        request_id: string;
    };
    query?: never;
    url: '/v1/owner-inbox/items/{request_id}/response';
};

export type RespondOwnerInboxItemErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Конфликт версии, lifecycle или action вне allowed actions.
     */
    409: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type RespondOwnerInboxItemError = RespondOwnerInboxItemErrors[keyof RespondOwnerInboxItemErrors];

export type RespondOwnerInboxItemResponses = {
    /**
     * Ответ владельца записан или идемпотентно подтверждён.
     */
    200: OwnerInboxRespondResponse;
};

export type RespondOwnerInboxItemResponse = RespondOwnerInboxItemResponses[keyof RespondOwnerInboxItemResponses];

export type ListAgentSessionsData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path?: never;
    query: {
        /**
         * Тип области `agent-manager`.
         */
        scope_type: AgentScopeType;
        /**
         * Safe ref области `agent-manager`.
         */
        scope_ref: string;
        /**
         * Фильтр session по lifecycle status.
         */
        status?: AgentSessionStatus;
        /**
         * Safe ref provider-native work item.
         */
        provider_work_item_ref?: string;
        /**
         * Safe ref actor, создавшего session.
         */
        created_by_actor_ref?: string;
        /**
         * Нижняя граница времени создания.
         */
        created_after?: string;
        /**
         * Верхняя граница времени создания.
         */
        created_before?: string;
        page_size?: number;
        page_token?: string;
    };
    url: '/v1/agent-sessions';
};

export type ListAgentSessionsErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type ListAgentSessionsError = ListAgentSessionsErrors[keyof ListAgentSessionsErrors];

export type ListAgentSessionsResponses = {
    /**
     * Список agent sessions получен.
     */
    200: AgentSessionListResponse;
};

export type ListAgentSessionsResponse = ListAgentSessionsResponses[keyof ListAgentSessionsResponses];

export type ListAgentRunSummariesData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path?: never;
    query: {
        /**
         * Тип области `agent-manager`.
         */
        scope_type: AgentScopeType;
        /**
         * Safe ref области `agent-manager`.
         */
        scope_ref: string;
        /**
         * Safe id `AgentSession`.
         */
        session_id?: string;
        /**
         * Safe id роли агента.
         */
        role_profile_id?: string;
        /**
         * Фильтр Run по lifecycle status.
         */
        status?: AgentRunStatus;
        /**
         * Safe ref provider-native work item.
         */
        provider_work_item_ref?: string;
        /**
         * Safe ref provider-native PR/MR.
         */
        provider_pull_request_ref?: string;
        /**
         * Нижняя граница времени создания.
         */
        created_after?: string;
        /**
         * Верхняя граница времени создания.
         */
        created_before?: string;
        page_size?: number;
        page_token?: string;
    };
    url: '/v1/agent-runs';
};

export type ListAgentRunSummariesErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type ListAgentRunSummariesError = ListAgentRunSummariesErrors[keyof ListAgentRunSummariesErrors];

export type ListAgentRunSummariesResponses = {
    /**
     * Список agent Run summaries получен.
     */
    200: AgentRunSummaryListResponse;
};

export type ListAgentRunSummariesResponse = ListAgentRunSummariesResponses[keyof ListAgentRunSummariesResponses];

export type GetAgentRunRuntimeStatusData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path: {
        /**
         * Safe id `AgentRun`.
         */
        run_id: string;
    };
    query?: never;
    url: '/v1/agent-runs/{run_id}/runtime-status';
};

export type GetAgentRunRuntimeStatusErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Конфликт версии, lifecycle или action вне allowed actions.
     */
    409: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type GetAgentRunRuntimeStatusError = GetAgentRunRuntimeStatusErrors[keyof GetAgentRunRuntimeStatusErrors];

export type GetAgentRunRuntimeStatusResponses = {
    /**
     * Runtime summary получен.
     */
    200: AgentRunRuntimeStatusResponse;
};

export type GetAgentRunRuntimeStatusResponse = GetAgentRunRuntimeStatusResponses[keyof GetAgentRunRuntimeStatusResponses];

export type ListAgentRunActivitiesData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path: {
        /**
         * Safe id `AgentRun`.
         */
        run_id: string;
    };
    query?: {
        /**
         * Фильтр по виду safe activity entry.
         */
        activity_kind?: AgentActivityKind;
        /**
         * Фильтр по статусу safe activity entry.
         */
        status?: AgentActivityStatus;
        page_size?: number;
        page_token?: string;
    };
    url: '/v1/agent-runs/{run_id}/activities';
};

export type ListAgentRunActivitiesErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type ListAgentRunActivitiesError = ListAgentRunActivitiesErrors[keyof ListAgentRunActivitiesErrors];

export type ListAgentRunActivitiesResponses = {
    /**
     * Activity timeline получена.
     */
    200: AgentRunActivitiesResponse;
};

export type ListAgentRunActivitiesResponse = ListAgentRunActivitiesResponses[keyof ListAgentRunActivitiesResponses];

export type GetGovernanceSummaryData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path?: never;
    query?: {
        /**
         * Тип governance target. Должен передаваться вместе с `target_ref`.
         */
        target_type?: GovernanceTargetType;
        /**
         * Safe ref governance target.
         */
        target_ref?: string;
        /**
         * Safe ref проекта из `project-catalog`.
         */
        project_ref?: string;
        /**
         * Safe ref репозитория из `project-catalog`.
         */
        repository_ref?: string;
        /**
         * Safe ref сервиса в проектной политике.
         */
        service_ref?: string;
        /**
         * Safe ref branch rules.
         */
        branch_rules_ref?: string;
        /**
         * Safe ref release policy.
         */
        release_policy_ref?: string;
        /**
         * Safe ref release line.
         */
        release_line_ref?: string;
        /**
         * Safe ref кандидата релиза.
         */
        release_candidate_ref?: string;
        /**
         * Local id release decision package.
         */
        release_decision_package_id?: string;
        /**
         * Owner domain safe ref, например `provider`, `agent`, `runtime` или `governance`.
         */
        integration_domain?: string;
        /**
         * Тип safe ref внутри owner domain.
         */
        integration_kind?: string;
        /**
         * Safe ref owner-domain факта.
         */
        integration_ref?: string;
    };
    url: '/v1/governance/summary';
};

export type GetGovernanceSummaryErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Конфликт версии, lifecycle или action вне allowed actions.
     */
    409: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type GetGovernanceSummaryError = GetGovernanceSummaryErrors[keyof GetGovernanceSummaryErrors];

export type GetGovernanceSummaryResponses = {
    /**
     * Governance summary получена.
     */
    200: GovernanceSummaryResponse;
};

export type GetGovernanceSummaryResponse = GetGovernanceSummaryResponses[keyof GetGovernanceSummaryResponses];

export type GetSelfDeploySummaryData = {
    body?: never;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path?: never;
    query: {
        /**
         * Тип области `agent-manager`.
         */
        scope_type: AgentScopeType;
        /**
         * Safe ref области `agent-manager`.
         */
        scope_ref: string;
        /**
         * Safe ref проекта для фильтра self-deploy plan.
         */
        project_ref?: string;
        /**
         * Safe ref репозитория для фильтра self-deploy plan.
         */
        repository_ref?: string;
        /**
         * Safe ref provider signal для фильтра self-deploy plan.
         */
        provider_signal_ref?: string;
        /**
         * Фильтр self-deploy plan по статусу.
         */
        status?: SelfDeployPlanStatusFilter;
    };
    url: '/v1/self-deploy/summary';
};

export type GetSelfDeploySummaryErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type GetSelfDeploySummaryError = GetSelfDeploySummaryErrors[keyof GetSelfDeploySummaryErrors];

export type GetSelfDeploySummaryResponses = {
    /**
     * Self-deploy сводка получена или честно недоступна.
     */
    200: SelfDeploySummaryResponse;
};

export type GetSelfDeploySummaryResponse = GetSelfDeploySummaryResponses[keyof GetSelfDeploySummaryResponses];

export type SubmitSelfDeployGateDecisionData = {
    body: SelfDeployGateDecisionRequest;
    headers: {
        /**
         * Идентификатор запроса для трассировки. Gateway может заменить невалидное значение.
         */
        'X-Kodex-Request-Id'?: string;
        /**
         * Безопасная ссылка на трассу.
         */
        'X-Kodex-Trace-Id'?: string;
        /**
         * Безопасная ссылка на пользовательскую сессию.
         */
        'X-Kodex-Session-Id'?: string;
        /**
         * Тип проверенного субъекта от внешнего auth boundary.
         */
        'X-Kodex-Actor-Type': 'user' | 'service' | 'agent' | 'external_account';
        /**
         * Safe id проверенного субъекта без email и имени.
         */
        'X-Kodex-Actor-Id': string;
    };
    path: {
        /**
         * Local id governance gate request.
         */
        gate_request_id: string;
    };
    query?: never;
    url: '/v1/self-deploy/gates/{gate_request_id}/decision';
};

export type SubmitSelfDeployGateDecisionErrors = {
    /**
     * Невалидный запрос.
     */
    400: SafeError;
    /**
     * Не передан проверенный actor context.
     */
    401: SafeError;
    /**
     * Доменный сервис отказал в доступе.
     */
    403: SafeError;
    /**
     * Ресурс не найден или не виден вызывающей стороне.
     */
    404: SafeError;
    /**
     * Конфликт версии, lifecycle или action вне allowed actions.
     */
    409: SafeError;
    /**
     * Доменный сервис ограничил частоту запросов.
     */
    429: SafeError;
    /**
     * Доменный сервис временно недоступен.
     */
    503: SafeError;
};

export type SubmitSelfDeployGateDecisionError = SubmitSelfDeployGateDecisionErrors[keyof SubmitSelfDeployGateDecisionErrors];

export type SubmitSelfDeployGateDecisionResponses = {
    /**
     * Решение владельца записано или идемпотентно подтверждено.
     */
    200: SelfDeployGateDecisionResponse;
};

export type SubmitSelfDeployGateDecisionResponse = SubmitSelfDeployGateDecisionResponses[keyof SubmitSelfDeployGateDecisionResponses];

export type ClientOptions = {
    baseURL: `${string}://${string}` | (string & {});
};