# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing_extensions import Literal, Required, TypedDict

__all__ = ["RunCreateParams"]


class RunCreateParams(TypedDict, total=False):
    number_of_samples: Required[int]
    """Number of samples to generate"""

    spec_id: Required[str]
    """ID of the spec to use for generation. Spec must be in READY status."""

    enable_revisions: bool
    """Enable revision cycles"""

    generation_model: Literal[
        "anthropic/claude-opus-4-5",
        "anthropic/claude-opus-4-5-thinking",
        "anthropic/claude-sonnet-4-5",
        "anthropic/claude-sonnet-4-5-thinking",
        "anthropic/claude-haiku-4-5",
        "deepseek-ai/DeepSeek-V3.1",
        "deepseek-ai/DeepSeek-R1-0528-tput",
        "Qwen/Qwen2.5-72B-Instruct-Turbo",
        "moonshotai/Kimi-K2-Instruct",
        "openai/gpt-oss-120b",
        "gemini/gemini-3-pro-preview",
        "gemini/gemini-3-pro-preview-thinking",
    ]
    """Model for generation. Use -thinking suffix to enable thinking mode."""

    max_examples_in_prompt: int
    """(advanced) Maximum number of seed examples to include in prompts.

    By default, only as many seeds as fit in 10K tokens are used. Use this to
    override the default.
    """

    max_revision_cycles: int
    """Maximum number of revision cycles"""

    outline_model: Literal[
        "anthropic/claude-opus-4-5",
        "anthropic/claude-opus-4-5-thinking",
        "anthropic/claude-sonnet-4-5",
        "anthropic/claude-sonnet-4-5-thinking",
        "anthropic/claude-haiku-4-5",
        "deepseek-ai/DeepSeek-V3.1",
        "deepseek-ai/DeepSeek-R1-0528-tput",
        "Qwen/Qwen2.5-72B-Instruct-Turbo",
        "moonshotai/Kimi-K2-Instruct",
        "openai/gpt-oss-120b",
        "gemini/gemini-3-pro-preview",
        "gemini/gemini-3-pro-preview-thinking",
    ]
    """Model for outline generation"""

    revision_model: Literal[
        "anthropic/claude-opus-4-5",
        "anthropic/claude-opus-4-5-thinking",
        "anthropic/claude-sonnet-4-5",
        "anthropic/claude-sonnet-4-5-thinking",
        "anthropic/claude-haiku-4-5",
        "deepseek-ai/DeepSeek-V3.1",
        "deepseek-ai/DeepSeek-R1-0528-tput",
        "Qwen/Qwen2.5-72B-Instruct-Turbo",
        "moonshotai/Kimi-K2-Instruct",
        "openai/gpt-oss-120b",
        "gemini/gemini-3-pro-preview",
        "gemini/gemini-3-pro-preview-thinking",
    ]
    """Model for revisions (only used if enable_revisions is true)"""

    seed_shuffling_level: Literal["none", "sample", "field", "prompt"]
    """(advanced) How to shuffle seed examples between samples"""

    spec_version: int
    """Version number to use (optional, defaults to latest)"""

    unified_multifield: bool
    """(advanced) Use unified multifield generation.

    This helps to reduce the generation cost by processing all fields together
    rather than one by one.
    """
