use crate::run::pricing::{ModelPricing, ProviderPricing};

pub const FIREWORKS: ProviderPricing = ProviderPricing {
	name: "fireworks",
	models: FIREWORKS_MODELS,
};

const FIREWORKS_MODELS: &[ModelPricing] = &[
	ModelPricing {
		name: "qwen3-coder-480b-a35b-instruct",
		input_cached: Some(0.225),
		input_normal: 0.45,
		output_normal: 1.8,
		output_reasoning: None,
	},
	ModelPricing {
		name: "gpt-oss-20b",
		input_cached: Some(0.035),
		input_normal: 0.07,
		output_normal: 0.3,
		output_reasoning: None,
	},
	ModelPricing {
		name: "gpt-oss-120b",
		input_cached: Some(0.075),
		input_normal: 0.15,
		output_normal: 0.6,
		output_reasoning: None,
	},
	ModelPricing {
		name: "glm-4p6",
		input_cached: Some(0.275),
		input_normal: 0.55,
		output_normal: 2.19,
		output_reasoning: None,
	},
	ModelPricing {
		name: "kimi-k2-instruct",
		input_cached: Some(0.3),
		input_normal: 0.6,
		output_normal: 2.5,
		output_reasoning: None,
	},
	ModelPricing {
		name: "chronos-hermes-13b-v2",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-13b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-13b-instruct",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-13b-python",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-34b",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-34b-instruct",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-34b-python",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-70b",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-70b-instruct",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-70b-python",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-7b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-7b-instruct",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "code-llama-7b-python",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "codeqwen-1.5-7b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "codegemma-2b",
		input_cached: Some(0.05),
		input_normal: 0.1,
		output_normal: 0.1,
		output_reasoning: None,
	},
	ModelPricing {
		name: "codegemma-7b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-671b-v2.1",
		input_cached: Some(0.6),
		input_normal: 1.2,
		output_normal: 1.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-v1-preview-llama-3b",
		input_cached: Some(0.05),
		input_normal: 0.1,
		output_normal: 0.1,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-v1-preview-llama-70b",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-v1-preview-llama-8b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-v1-preview-qwen-14b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "cogito-v1-preview-qwen-32b",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "dbrx-instruct",
		input_cached: Some(0.6),
		input_normal: 1.2,
		output_normal: 1.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-coder-1.3b-base",
		input_cached: Some(0.05),
		input_normal: 0.1,
		output_normal: 0.1,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-coder-33b-instruct",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-coder-7b-base",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-coder-7b-base-v1.5",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-coder-7b-instruct-v1.5",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "deepseek-r1-(fast)",
		input_cached: Some(0.675),
		input_normal: 1.35,
		output_normal: 5.4,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-13b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-13b-chat",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-70b",
		input_cached: Some(0.05),
		input_normal: 0.1,
		output_normal: 0.1,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-70b-chat",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-7b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-2-7b-chat",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-3-8b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-3-8b-instruct",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-3-70b-instruct",
		input_cached: Some(0.45),
		input_normal: 0.9,
		output_normal: 0.9,
		output_reasoning: None,
	},
	ModelPricing {
		name: "llama-3.1-405b-instruct",
		input_cached: Some(1.5),
		input_normal: 3.0,
		output_normal: 3.0,
		output_reasoning: None,
	},
	ModelPricing {
		name: "mistral-7b",
		input_cached: Some(0.1),
		input_normal: 0.2,
		output_normal: 0.2,
		output_reasoning: None,
	},
	ModelPricing {
		name: "mixtral-8x7b",
		input_cached: Some(0.25),
		input_normal: 0.5,
		output_normal: 0.5,
		output_reasoning: None,
	},
	ModelPricing {
		name: "glm-5",
		input_cached: Some(0.5),
		input_normal: 1.0,
		output_normal: 3.2,
		output_reasoning: None,
	},
];
