"""
Arbitrary constants. Migrated from _constants_part10.py.
"""
from wisent.core.grp_05.sub_constants.arbitrary.sub_arb.sub_arb2._arb_11 import *  # noqa: F401,F403

# --- Steering optimizer defaults ---
STEERING_OPTI_SAMPLE_SIZE = 64
STEERING_OPTI_BATCH_SIZE = 16

# --- Diagnostic MLP hidden sizes ---
DIAGNOSTIC_MLP_HIDDEN_SIZES = (64,)

# --- Clustering defaults ---
KMEANS_N_INIT_DEFAULT = 20

# --- Extraction batch sizes ---
EXTRACTION_RAW_BATCH_SIZE = 5
EXTRACTION_SMALL_BATCH_SIZE = 10

# --- Relevance semantic scoring weights ---
RELEVANCE_CONTENT_MATCH_SCORE = 3
RELEVANCE_TAG_MATCH_SCORE = 2
RELEVANCE_POPULAR_BENCHMARK_BONUS = 0.5
RELEVANCE_FAST_HIGH_SCORING_BONUS = 1.0
RELEVANCE_HIGH_SCORING_BONUS = 0.3
RELEVANCE_MEDIUM_SCORING_BONUS = 0.1

# --- Geometry optimization ---
GEOMETRY_DEFAULT_NUM_COMPONENTS = 5

# --- Default layer weight (used in .get(layer, 1.0) patterns) ---
DEFAULT_LAYER_WEIGHT = 1.0

# --- Parser strength range defaults ---
PARSER_STRENGTH_RANGE_METHODS = (0.1, 2.0)
PARSER_STRENGTH_RANGE_PERSONALIZATION = (0.5, 5.0)
PARSER_STRENGTH_RANGE_WELFARE = (0.5, 3.0)

# --- Optuna pruner ---
OPTUNA_PRUNER_STARTUP_TRIALS = 5

# --- Classifier cache defaults ---
CACHE_MAX_SIZE_GB_DEFAULT = 5.0
CACHE_MAX_AGE_DAYS_DEFAULT = 30.0
CACHE_MEMORY_SIZE_DEFAULT = 10

# --- Test steering ---
TEST_STEERING_SCALE = 0.5

# --- Search space ---
THRESHOLD_RANGE_SHORT = (0.3, 0.5, 0.7)

# --- Minimum pair thresholds ---
MIN_CONCEPT_PAIRS = 10
MIN_PAIRS_FOR_LINEARITY = 10

# --- Zwiad clustering ---
ZWIAD_PCA_COMPONENTS = 3
ZWIAD_KMEANS_PRIMARY_CLUSTERS = 8
ZWIAD_KMEANS_SECONDARY_CLUSTERS = 5

# --- GROM training defaults ---
GROM_SIGNIFICANT_DIRECTIONS_DEFAULT = 3

# --- Diagnostic MLP hidden sizes (large) ---
DIAGNOSTIC_MLP_HIDDEN_SIZES_LARGE = (256, 128)

# --- Comparison module training defaults ---
COMPARISON_LORA_LEARNING_RATE = 2e-4
COMPARISON_REFT_LEARNING_RATE = 5e-4
COMPARISON_NUM_EPOCHS_DEFAULT = 3
COMPARISON_TRAINING_BATCH_SIZE = 2

# --- SAE training defaults ---
SAE_N_EPOCHS_DEFAULT = 500
SAE_L1_COEF_DEFAULT = 5e-4

# --- BOS feature detection defaults ---
BOS_NUM_SAMPLES_DEFAULT = 2000
BOS_MIN_LENGTH_DEFAULT = 50

# --- Visualization ---
VIZ_PLOT_DPI = 300

# --- Comparison module max lengths ---
COMPARISON_MAX_LENGTH = 512
COMPARISON_TOKENIZER_MAX_LENGTH = 128

# --- Comparison module logging ---
COMPARISON_LOGGING_STEPS = 10

# --- Comparison module steering evaluation ---
COMPARISON_STEERING_SCALES = (1.0, 2.0, 4.0)

# --- LoRA DPO training defaults ---
LORA_DPO_LEARNING_RATE = 5e-5
LORA_DPO_NUM_EPOCHS = 1

# --- LoReFT defaults ---
LOREFT_DEFAULT_RANK = 4

# --- SAE feature selection ---
SAE_TOP_K_DEFAULT = 4

# --- K-Means n_init variants ---
KMEANS_N_INIT_SMALL = 3
KMEANS_N_INIT_MEDIUM = 5
KMEANS_N_INIT_LARGE = 10

# --- LM harness sample counts ---
LM_HARNESS_NUM_SAMPLES_SMALL = 3
LM_HARNESS_NUM_SAMPLES_DEFAULT = 5

# --- Progress logging interval ---
PROGRESS_LOG_INTERVAL = 50

# --- Parser default num-pairs (CLI tools) ---
PARSER_DEFAULT_NUM_PAIRS_GENERATE = 30
PARSER_DEFAULT_NUM_PAIRS = 50
PARSER_DEFAULT_NUM_PAIRS_OPTIMIZE = 20
PARSER_DEFAULT_NUM_PAIRS_TRAIT = 10

# --- BOS argparse defaults ---
BOS_TOP_K_DEFAULT = 20
BOS_ARGPARSE_NUM_SAMPLES = 1000

# --- Comparison default batch size (sequential) ---
COMPARISON_DEFAULT_BATCH_SIZE = 1

# --- Extraction single benchmark limit ---
EXTRACTION_SINGLE_PAIR_LIMIT = 200

# --- Visualization marker sizes ---
VIZ_MARKER_SIZE = 50
VIZ_MARKER_SIZE_SMALL = 30

# --- Pair generator defaults ---
PAIR_GENERATORS_DEFAULT_N = 50

# --- Test/inspection defaults ---
NUM_EXAMPLES_DEFAULT = 5
MAX_DOCS_INSPECT = 100

# --- Abliteration ---
ABLITERATION_BASELINE_ACC = 0.44

# --- PCA gallery ---
PCA_GALLERY_COMPONENTS = 50

# --- GROM test defaults ---
GROM_TEST_HIDDEN_DIM = 256
GROM_TEST_N_SAMPLES = 30
GEOMETRY_OPTIMIZATION_STEPS_SMALL = 30

# --- LoRA max-length argparse ---
LORA_ARGPARSE_MAX_LENGTH = 512

# --- Parser steering/epsilon/method defaults ---
PARSER_DEFAULT_EPSILON = 1.0
PARSER_DEFAULT_NUM_STRENGTH_STEPS = 5
PARSER_DEFAULT_MAX_CLUSTERS = 5
PARSER_DEFAULT_TEST_QUESTIONS = 5
PARSER_DEFAULT_RESPONSE_SAMPLES = 5
PARSER_DEFAULT_LAYER_START = 0
MONITOR_DEFAULT_INTERVAL = 1.0

# --- Optuna defaults ---
OPTIMIZE_MAX_COMBINATIONS_DEFAULT = 100

# --- Test/detector defaults ---
TEST_DETECTOR_DEFAULT_LAYER = 6

# --- SAE batch size ---
SAE_BATCH_SIZE_DEFAULT = 64

# --- Histogram bins ---
VIZ_HISTOGRAM_BINS_LARGE = 50

# --- Visualization alpha values ---
VIZ_ALPHA_LIGHT = 0.3
VIZ_ALPHA_MEDIUM = 0.6
VIZ_ALPHA_HIGH = 0.7
VIZ_ALPHA_HALF = 0.5

# --- Visualization linewidth ---
VIZ_LINEWIDTH_THIN = 0.8
VIZ_LINEWIDTH_NORMAL = 2

# --- Visualization marker sizes (extra small) ---
VIZ_MARKER_SIZE_TINY = 10
VIZ_MARKER_SIZE_XS = 20

# --- Detection/bootstrap defaults ---
N_BOOTSTRAP_DEFAULT = 100
MAX_K_DEFAULT = 6
CODING_BENCHMARK_DEFAULT_LIMIT = 5

# --- Test split ratio variants ---
SPLIT_RATIO_HALF = 0.5
SPLIT_RATIO_70 = 0.7

# --- Parser evaluation/generation defaults ---
PARSER_DEFAULT_EVAL_STRENGTH = 2.0
PARSER_DEFAULT_WORKERS = 4
PARSER_DEFAULT_GENERATE_RESPONSES = 10
PARSER_DEFAULT_RANDOM_DIRECTIONS = 20
PARSER_DEFAULT_REF_PAIRS = 200
PARSER_DEFAULT_MIN_QUALITY = 2
PARSER_DEFAULT_TOTAL_SAMPLES = 1000
PARSER_DEFAULT_MAX_REGEN_ATTEMPTS = 3
PARSER_DEFAULT_CLASSIFICATION_THRESHOLD = 0.6
PARSER_DEFAULT_SYNTHETIC_PAIRS = 20
PARSER_DEFAULT_FEW_SHOT = 0

# --- Nonsense/quality detection thresholds ---
NONSENSE_MAX_WORD_LENGTH = 20
MIN_QUALITY_SCORE_OUTPUT = 50.0
MIN_SNR_EARLY_REJECT = 5.0
MIN_CV_SCORE_EARLY_REJECT = 0.1

# --- Monitoring defaults ---
MONITOR_DEFAULT_DURATION = 60

# --- Optuna trial count variants ---
OPTUNA_TRIALS_LARGE = 300
OPTUNA_TRIALS_TUNE = 500

# --- Tune recommendation defaults ---
BENCHMARKS_PER_TYPE = 2
TOPK_OBJECTIVE_K = 2
SENSITIVITY_TOP_CONSTANTS = 20

# --- Optimization time limits (minutes) ---
OPTIMIZE_MAX_TIME_MINUTES_SHORT = 15.0
OPTIMIZE_MAX_TIME_MINUTES = 30.0

# --- Core thresholds ---
DEFAULT_TIMEOUT_DOCKER = 30
DEFAULT_TIMEOUT_REQUEST = 15
KMEANS_MAX_ITERATIONS_DEFAULT = 50
DIRECTIONS_PER_LAYER = 5
