"""Common shared definitions for latentscore and data_work."""

from common.music_schema import (
    MAX_LONG_FIELD_CHARS,
    MAX_TITLE_CHARS,
    MAX_TITLE_WORDS,
    PALETTE_COLOR_DESC,
    PALETTE_DESC,
    PALETTE_WEIGHT_DESC,
    PALETTE_WEIGHT_ORDER,
    PALETTES_DESC,
    PROMPT_DESC,
    PROMPT_REGISTER_MAX,
    PROMPT_REGISTER_MIN,
    AccentStyle,
    AttackStyle,
    BassStyle,
    BrightnessLabel,
    CadenceLabel,
    ChordChangeLabel,
    ChordExtensions,
    ChromaticLabel,
    DensityLevel,
    EchoLabel,
    GrainStyle,
    HarmonyStyle,
    HumanFeelLabel,
    MelodyDensityLabel,
    MelodyEngine,
    MelodyStyle,
    ModeName,
    MotifRepeatLabel,
    MotionLabel,
    MusicConfigPrompt,
    MusicConfigPromptPayload,
    PadStyle,
    Palette,
    PaletteColor,
    PhraseLengthBars,
    RhythmStyle,
    RootNote,
    SpaceLabel,
    StepBiasLabel,
    StereoLabel,
    SwingLabel,
    SyncopationLabel,
    TempoLabel,
    TensionCurve,
    TextureStyle,
    WeightLabel,
    repair_palette_duplicates,
    schema_hash,
    schema_signature,
)
from common.prompt_registry import (
    PromptConfig,
    PromptVersion,
    get_prompt,
    list_prompts,
    register_prompt,
    render_config_prompt,
    render_prompt,
)
from common.prompts import (
    CONFIG_GENERATION_BATCH_SUFFIX,
    CONFIG_GENERATION_PROMPT_TEMPLATE,
    LLM_SCORING_PROMPT_TEMPLATE,
    VIBE_EXTRACTION_PROMPT_TEMPLATE,
    build_config_generation_prompt,
    build_expressive_prompt,
    build_inference_prompt,
    build_litellm_prompt,
    build_llm_scoring_prompt,
    build_music_prompt,
    build_training_prompt,
    build_vibe_extraction_prompt,
)
from common.reward_config import (
    DEFAULT_REWARD_CONFIG,
    ClapScorerConfig,
    RewardConfig,
    RewardWeights,
    ScorerProtocol,
)
from common.training_config import (
    ABLATION_PRESETS,
    BASE_MODELS,
    DEFAULT_TRAINING_CONFIG,
    BatchConfig,
    DataConfig,
    GRPOConfig,
    InfraConfig,
    LoggingConfig,
    LoRAConfig,
    NoiseConfig,
    OptimizerConfig,
    TrainingConfig,
)

__all__ = [
    # Reward configuration
    "ClapScorerConfig",
    "DEFAULT_REWARD_CONFIG",
    "RewardConfig",
    "RewardWeights",
    "ScorerProtocol",
    # Training configuration
    "ABLATION_PRESETS",
    "BASE_MODELS",
    "BatchConfig",
    "DataConfig",
    "DEFAULT_TRAINING_CONFIG",
    "GRPOConfig",
    "InfraConfig",
    "LoggingConfig",
    "LoRAConfig",
    "NoiseConfig",
    "OptimizerConfig",
    "TrainingConfig",
    # Prompt registry
    "PromptConfig",
    "PromptVersion",
    "get_prompt",
    "list_prompts",
    "register_prompt",
    "render_config_prompt",
    "render_prompt",
    # Schema constants
    "MAX_LONG_FIELD_CHARS",
    "MAX_TITLE_CHARS",
    "MAX_TITLE_WORDS",
    "PALETTE_COLOR_DESC",
    "PALETTE_DESC",
    "PALETTE_WEIGHT_DESC",
    "PALETTE_WEIGHT_ORDER",
    "PALETTES_DESC",
    "PROMPT_DESC",
    "PROMPT_REGISTER_MAX",
    "PROMPT_REGISTER_MIN",
    # Schema types
    "AccentStyle",
    "AttackStyle",
    "BassStyle",
    "BrightnessLabel",
    "CadenceLabel",
    "ChordChangeLabel",
    "ChordExtensions",
    "ChromaticLabel",
    "DensityLevel",
    "EchoLabel",
    "GrainStyle",
    "HarmonyStyle",
    "HumanFeelLabel",
    "MelodyDensityLabel",
    "MelodyEngine",
    "MelodyStyle",
    "ModeName",
    "MotifRepeatLabel",
    "MotionLabel",
    "MusicConfigPrompt",
    "MusicConfigPromptPayload",
    "PadStyle",
    "Palette",
    "PaletteColor",
    "PhraseLengthBars",
    "RhythmStyle",
    "RootNote",
    "SpaceLabel",
    "StepBiasLabel",
    "StereoLabel",
    "SwingLabel",
    "SyncopationLabel",
    "TempoLabel",
    "TensionCurve",
    "TextureStyle",
    "WeightLabel",
    # Schema utilities
    "repair_palette_duplicates",
    "schema_hash",
    "schema_signature",
    # Prompt templates
    "CONFIG_GENERATION_PROMPT_TEMPLATE",
    "CONFIG_GENERATION_BATCH_SUFFIX",
    "VIBE_EXTRACTION_PROMPT_TEMPLATE",
    "LLM_SCORING_PROMPT_TEMPLATE",
    # Prompt builders
    "build_config_generation_prompt",
    "build_vibe_extraction_prompt",
    "build_llm_scoring_prompt",
    "build_expressive_prompt",
    "build_inference_prompt",
    "build_litellm_prompt",
    "build_music_prompt",
    "build_training_prompt",
]
