From f00870dccb79eaec40ca1ffd59f2e786d6b94210 Mon Sep 17 00:00:00 2001 From: Salman Paracha Date: Mon, 29 Sep 2025 19:23:08 -0700 Subject: [PATCH 1/3] adding support for claude code routing (#575) * fixed for claude code routing. first commit * removing redundant enum tags for cache_control * making sure that claude code can run via the archgw cli * fixing broken config * adding a README.md and updated the cli to use more of our defined patterns for params * fixed config.yaml * minor fixes to make sure PR is clean. Ready to ship * adding claude-sonnet-4-5 to the config * fixes based on PR * fixed alias for README * fixed 400 error handling tests, now that we write temperature to 1.0 for GPT-5 --------- Co-authored-by: Salman Paracha Co-authored-by: Salman Paracha --- arch/envoy.template.yaml | 10 +- arch/tools/cli/config_generator.py | 2 +- arch/tools/cli/core.py | 91 +++++ arch/tools/cli/main.py | 72 +++- arch/tools/cli/utils.py | 29 ++ .../src/handlers/chat_completions.rs | 5 +- crates/hermesllm/src/apis/anthropic.rs | 367 ++++++++++++++++-- crates/hermesllm/src/apis/openai.rs | 9 + crates/hermesllm/src/clients/transformer.rs | 99 +++-- crates/hermesllm/src/providers/response.rs | 57 ++- crates/llm_gateway/src/stream_context.rs | 19 +- demos/use_cases/claude_code/README.md | 133 +++++++ demos/use_cases/claude_code/config.yaml | 41 ++ .../arch_config_with_aliases.yaml | 8 +- tests/e2e/test_model_alias_routing.py | 57 ++- tests/e2e/test_prompt_gateway.py | 10 +- 16 files changed, 903 insertions(+), 106 deletions(-) create mode 100644 demos/use_cases/claude_code/README.md create mode 100644 demos/use_cases/claude_code/config.yaml diff --git a/arch/envoy.template.yaml b/arch/envoy.template.yaml index 5ee4c899..16b14343 100644 --- a/arch/envoy.template.yaml +++ b/arch/envoy.template.yaml @@ -140,7 +140,7 @@ static_resources: route: auto_host_rewrite: true cluster: {{ llm_cluster_name }} - timeout: 60s + timeout: 300s {% endfor %} {% if agent_orchestrator %} @@ -153,7 +153,7 @@ static_resources: route: auto_host_rewrite: true cluster: {{ agent_orchestrator }} - timeout: 60s + timeout: 300s {% endif %} http_filters: - name: envoy.filters.http.compressor @@ -266,7 +266,7 @@ static_resources: route: auto_host_rewrite: true cluster: {{ internal_cluster }} - timeout: 60s + timeout: 300s {% endfor %} {% for cluster_name, cluster in arch_clusters.items() %} @@ -279,7 +279,7 @@ static_resources: route: auto_host_rewrite: true cluster: {{ cluster_name }} - timeout: 60s + timeout: 300s {% endfor %} http_filters: - name: envoy.filters.http.router @@ -434,7 +434,7 @@ static_resources: route: auto_host_rewrite: true cluster: {{ llm_cluster_name }} - timeout: 60s + timeout: 300s {% endfor %} - match: prefix: "/" diff --git a/arch/tools/cli/config_generator.py b/arch/tools/cli/config_generator.py index 8f0dcefd..965bf040 100644 --- a/arch/tools/cli/config_generator.py +++ b/arch/tools/cli/config_generator.py @@ -242,7 +242,7 @@ def validate_and_render_schema(): if llm_gateway_listener.get("address") == None: llm_gateway_listener["address"] = "127.0.0.1" if llm_gateway_listener.get("timeout") == None: - llm_gateway_listener["timeout"] = "10s" + llm_gateway_listener["timeout"] = "300s" use_agent_orchestrator = config_yaml.get("overrides", {}).get( "use_agent_orchestrator", False diff --git a/arch/tools/cli/core.py b/arch/tools/cli/core.py index 59d42ab4..0846a51a 100644 --- a/arch/tools/cli/core.py +++ b/arch/tools/cli/core.py @@ -1,3 +1,4 @@ +import json import subprocess import os import time @@ -185,3 +186,93 @@ def stop_arch_modelserver(): except subprocess.CalledProcessError as e: log.info(f"Failed to start model_server. Please check archgw_modelserver logs") sys.exit(1) + + +def start_cli_agent(arch_config_file=None, settings_json="{}"): + """Start a CLI client connected to Arch.""" + + with open(arch_config_file, "r") as file: + arch_config = file.read() + arch_config_yaml = yaml.safe_load(arch_config) + + # Get egress listener configuration + egress_config = arch_config_yaml.get("listeners", {}).get("egress_traffic", {}) + host = egress_config.get("host", "127.0.0.1") + port = egress_config.get("port", 12000) + + # Parse additional settings from command line + try: + additional_settings = json.loads(settings_json) if settings_json else {} + except json.JSONDecodeError: + log.error("Settings must be valid JSON") + sys.exit(1) + + # Set up environment variables + env = os.environ.copy() + env.update( + { + "ANTHROPIC_AUTH_TOKEN": "test", # Use test token for arch + "ANTHROPIC_API_KEY": "", + "ANTHROPIC_BASE_URL": f"http://{host}:{port}", + "NO_PROXY": host, + "DISABLE_TELEMETRY": "true", + "DISABLE_COST_WARNINGS": "true", + "API_TIMEOUT_MS": "600000", + } + ) + + # Set ANTHROPIC_SMALL_FAST_MODEL from additional_settings or model alias + if "ANTHROPIC_SMALL_FAST_MODEL" in additional_settings: + env["ANTHROPIC_SMALL_FAST_MODEL"] = additional_settings[ + "ANTHROPIC_SMALL_FAST_MODEL" + ] + else: + # Check if arch.claude.code.small.fast alias exists in model_aliases + model_aliases = arch_config_yaml.get("model_aliases", {}) + if "arch.claude.code.small.fast" in model_aliases: + env["ANTHROPIC_SMALL_FAST_MODEL"] = "arch.claude.code.small.fast" + else: + log.info( + "Tip: Set an alias 'arch.claude.code.small.fast' in your model_aliases config to set a small fast model Claude Code" + ) + log.info("Or provide ANTHROPIC_SMALL_FAST_MODEL in --settings JSON") + + # Non-interactive mode configuration from additional_settings only + if additional_settings.get("NON_INTERACTIVE_MODE", False): + env.update( + { + "CI": "true", + "FORCE_COLOR": "0", + "NODE_NO_READLINE": "1", + "TERM": "dumb", + } + ) + + # Build claude command arguments + claude_args = [] + + # Add settings if provided, excluding those already handled as environment variables + if additional_settings: + # Filter out settings that are already processed as environment variables + claude_settings = { + k: v + for k, v in additional_settings.items() + if k not in ["ANTHROPIC_SMALL_FAST_MODEL", "NON_INTERACTIVE_MODE"] + } + if claude_settings: + claude_args.append(f"--settings={json.dumps(claude_settings)}") + + # Use claude from PATH + claude_path = "claude" + log.info(f"Connecting Claude Code Agent to Arch at {host}:{port}") + + try: + subprocess.run([claude_path] + claude_args, env=env, check=True) + except subprocess.CalledProcessError as e: + log.error(f"Error starting claude: {e}") + sys.exit(1) + except FileNotFoundError: + log.error( + f"{claude_path} not found. Make sure Claude Code is installed: npm install -g @anthropic-ai/claude-code" + ) + sys.exit(1) diff --git a/arch/tools/cli/main.py b/arch/tools/cli/main.py index 001f3d9c..25c00404 100644 --- a/arch/tools/cli/main.py +++ b/arch/tools/cli/main.py @@ -4,13 +4,20 @@ import sys import subprocess import multiprocessing import importlib.metadata +import json from cli import targets -from cli.docker_cli import docker_validate_archgw_schema, stream_gateway_logs +from cli.docker_cli import ( + docker_validate_archgw_schema, + stream_gateway_logs, + docker_container_status, +) from cli.utils import ( getLogger, get_llm_provider_access_keys, + has_ingress_listener, load_env_file_to_dict, stream_access_logs, + find_config_file, ) from cli.core import ( start_arch_modelserver, @@ -18,9 +25,11 @@ from cli.core import ( start_arch, stop_docker_container, download_models_from_hf, + start_cli_agent, ) from cli.consts import ( ARCHGW_DOCKER_IMAGE, + ARCHGW_DOCKER_NAME, KATANEMO_DOCKERHUB_REPO, SERVICE_NAME_ARCHGW, SERVICE_NAME_MODEL_SERVER, @@ -170,12 +179,8 @@ def up(file, path, service, foreground): start_arch_modelserver(foreground) return - if file: - # If a file is provided, process that file - arch_config_file = os.path.abspath(file) - else: - # If no file is provided, use the path and look for arch_config.yaml - arch_config_file = os.path.abspath(os.path.join(path, "arch_config.yaml")) + # Use the utility function to find config file + arch_config_file = find_config_file(path, file) # Check if the file exists if not os.path.exists(arch_config_file): @@ -183,7 +188,6 @@ def up(file, path, service, foreground): return log.info(f"Validating {arch_config_file}") - ( validation_return_code, validation_stdout, @@ -240,8 +244,15 @@ def up(file, path, service, foreground): if service == SERVICE_NAME_ARCHGW: start_arch(arch_config_file, env, foreground=foreground) else: - download_models_from_hf() - start_arch_modelserver(foreground) + # Check if ingress_traffic listener is configured before starting model_server + if has_ingress_listener(arch_config_file): + download_models_from_hf() + start_arch_modelserver(foreground) + else: + log.info( + "Skipping model_server startup: no ingress_traffic listener configured in arch_config.yaml" + ) + start_arch(arch_config_file, env, foreground=foreground) @@ -321,10 +332,51 @@ def logs(debug, follow): archgw_process.terminate() +@click.command() +@click.argument("type", type=click.Choice(["claude"]), required=True) +@click.argument("file", required=False) # Optional file argument +@click.option( + "--path", default=".", help="Path to the directory containing arch_config.yaml" +) +@click.option( + "--settings", + default="{}", + help="Additional settings as JSON string for the CLI agent.", +) +def cli_agent(type, file, path, settings): + """Start a CLI agent connected to Arch. + + CLI_AGENT: The type of CLI agent to start (currently only 'claude' is supported) + """ + + # Check if archgw docker container is running + archgw_status = docker_container_status(ARCHGW_DOCKER_NAME) + if archgw_status != "running": + log.error(f"archgw docker container is not running (status: {archgw_status})") + log.error("Please start archgw using the 'archgw up' command.") + sys.exit(1) + + # Determine arch_config.yaml path + arch_config_file = find_config_file(path, file) + if not os.path.exists(arch_config_file): + log.error(f"Config file not found: {arch_config_file}") + sys.exit(1) + + try: + start_cli_agent(arch_config_file, settings) + except SystemExit: + # Re-raise SystemExit to preserve exit codes + raise + except Exception as e: + click.echo(f"Error: {e}") + sys.exit(1) + + main.add_command(up) main.add_command(down) main.add_command(build) main.add_command(logs) +main.add_command(cli_agent) main.add_command(generate_prompt_targets) if __name__ == "__main__": diff --git a/arch/tools/cli/utils.py b/arch/tools/cli/utils.py index 019e181c..c7d39d66 100644 --- a/arch/tools/cli/utils.py +++ b/arch/tools/cli/utils.py @@ -21,6 +21,22 @@ def getLogger(name="cli"): log = getLogger(__name__) +def has_ingress_listener(arch_config_file): + """Check if the arch config file has ingress_traffic listener configured.""" + try: + with open(arch_config_file) as f: + arch_config_dict = yaml.safe_load(f) + + ingress_traffic = arch_config_dict.get("listeners", {}).get( + "ingress_traffic", {} + ) + + return bool(ingress_traffic) + except Exception as e: + log.error(f"Error reading config file {arch_config_file}: {e}") + return False + + def get_llm_provider_access_keys(arch_config_file): with open(arch_config_file, "r") as file: arch_config = file.read() @@ -72,6 +88,19 @@ def load_env_file_to_dict(file_path): return env_dict +def find_config_file(path=".", file=None): + """Find the appropriate config file path.""" + if file: + # If a file is provided, process that file + return os.path.abspath(file) + else: + # If no file is provided, use the path and look for arch_config.yaml first, then config.yaml for convenience + arch_config_file = os.path.abspath(os.path.join(path, "config.yaml")) + if not os.path.exists(arch_config_file): + arch_config_file = os.path.abspath(os.path.join(path, "arch_config.yaml")) + return arch_config_file + + def stream_access_logs(follow): """ Get the archgw access logs diff --git a/crates/brightstaff/src/handlers/chat_completions.rs b/crates/brightstaff/src/handlers/chat_completions.rs index 3b95b15f..2989fec5 100644 --- a/crates/brightstaff/src/handlers/chat_completions.rs +++ b/crates/brightstaff/src/handlers/chat_completions.rs @@ -126,8 +126,9 @@ pub async fn chat( }); const MAX_MESSAGE_LENGTH: usize = 50; - let latest_message_for_log = if latest_message_for_log.len() > MAX_MESSAGE_LENGTH { - format!("{}...", &latest_message_for_log[..MAX_MESSAGE_LENGTH]) + let latest_message_for_log = if latest_message_for_log.chars().count() > MAX_MESSAGE_LENGTH { + let truncated: String = latest_message_for_log.chars().take(MAX_MESSAGE_LENGTH).collect(); + format!("{}...", truncated) } else { latest_message_for_log }; diff --git a/crates/hermesllm/src/apis/anthropic.rs b/crates/hermesllm/src/apis/anthropic.rs index ae61e2fe..abfde5b7 100644 --- a/crates/hermesllm/src/apis/anthropic.rs +++ b/crates/hermesllm/src/apis/anthropic.rs @@ -70,7 +70,9 @@ pub enum ServiceTier { #[skip_serializing_none] #[derive(Serialize, Deserialize, Debug, Clone)] pub struct ThinkingConfig { - pub enabled: bool, + #[serde(rename = "type")] + pub thinking_type: String, + pub budget_tokens: Option, } // MCP Server types @@ -131,6 +133,31 @@ pub enum MessagesRole { Assistant, } +/// Cache control types for content blocks +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +#[serde(tag = "type")] +pub enum MessagesCacheControl { + Ephemeral, +} + +/// Tool result content can be either a string or array of content blocks +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(untagged)] +pub enum ToolResultContent { + Text(String), + Blocks(Vec), +} + +impl ExtractText for ToolResultContent { + fn extract_text(&self) -> String { + match self { + ToolResultContent::Text(text) => text.clone(), + ToolResultContent::Blocks(blocks) => blocks.extract_text(), + } + } +} + #[skip_serializing_none] #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "snake_case")] @@ -138,9 +165,12 @@ pub enum MessagesRole { pub enum MessagesContentBlock { Text { text: String, + cache_control: Option, }, Thinking { - text: String, + thinking: String, + signature: Option, + cache_control: Option, }, Image { source: MessagesImageSource, @@ -152,11 +182,13 @@ pub enum MessagesContentBlock { id: String, name: String, input: Value, + cache_control: Option, }, ToolResult { tool_use_id: String, is_error: Option, - content: Vec, + content: ToolResultContent, + cache_control: Option, }, ServerToolUse { id: String, @@ -195,7 +227,7 @@ impl ExtractText for Vec { fn extract_text(&self) -> String { self.iter() .filter_map(|block| match block { - MessagesContentBlock::Text { text } => Some(text.as_str()), + MessagesContentBlock::Text { text, .. } => Some(text.as_str()), _ => None, }) .collect::>() @@ -206,6 +238,7 @@ impl ExtractText for Vec { #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "snake_case")] +#[serde(tag = "type")] pub enum MessagesImageSource { Base64 { media_type: String, @@ -218,6 +251,7 @@ pub enum MessagesImageSource { #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "snake_case")] +#[serde(tag = "type")] pub enum MessagesDocumentSource { Base64 { media_type: String, @@ -380,6 +414,8 @@ pub enum MessagesContentDelta { TextDelta { text: String }, #[serde(rename = "input_json_delta")] InputJsonDelta { partial_json: String }, + #[serde(rename = "thinking_delta")] + ThinkingDelta { thinking: String }, } #[skip_serializing_none] @@ -447,7 +483,7 @@ impl ProviderRequest for MessagesRequest { MessagesSystemPrompt::Single(s) => text_parts.push(s.clone()), MessagesSystemPrompt::Blocks(blocks) => { for block in blocks { - if let MessagesContentBlock::Text { text } = block { + if let MessagesContentBlock::Text { text, .. } = block { text_parts.push(text.clone()); } } @@ -461,7 +497,7 @@ impl ProviderRequest for MessagesRequest { MessagesMessageContent::Single(text) => text_parts.push(text.clone()), MessagesMessageContent::Blocks(blocks) => { for block in blocks { - if let MessagesContentBlock::Text { text } = block { + if let MessagesContentBlock::Text { text, .. } = block { text_parts.push(text.clone()); } } @@ -480,7 +516,7 @@ impl ProviderRequest for MessagesRequest { MessagesMessageContent::Single(text) => return Some(text.clone()), MessagesMessageContent::Blocks(blocks) => { for block in blocks { - if let MessagesContentBlock::Text { text } = block { + if let MessagesContentBlock::Text { text, .. } = block { return Some(text.clone()); } } @@ -537,10 +573,10 @@ impl ProviderStreamResponse for MessagesStreamEvent { fn content_delta(&self) -> Option<&str> { match self { MessagesStreamEvent::ContentBlockDelta { delta, .. } => { - if let MessagesContentDelta::TextDelta { text } = delta { - Some(text) - } else { - None + match delta { + MessagesContentDelta::TextDelta { text } => Some(text), + MessagesContentDelta::ThinkingDelta { thinking } => Some(thinking), + _ => None, } } _ => None, @@ -643,7 +679,7 @@ mod tests { "system": "You are a helpful assistant", "service_tier": "auto", "thinking": { - "enabled": true + "type": "enabled" }, "metadata": { "user_id": "123" @@ -670,7 +706,7 @@ mod tests { } if let Some(thinking) = &deserialized_request.thinking { - assert_eq!(thinking.enabled, true); + assert_eq!(thinking.thinking_type, "enabled"); } else { panic!("Expected thinking config"); } @@ -725,10 +761,9 @@ mod tests { { "type": "image", "source": { - "base64": { - "media_type": "image/jpeg", - "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" - } + "type": "base64", + "media_type": "image/jpeg", + "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" } } ] @@ -738,7 +773,7 @@ mod tests { "content": [ { "type": "thinking", - "text": "Let me analyze the image and then check the weather..." + "thinking": "Let me analyze the image and then check the weather..." }, { "type": "text", @@ -797,7 +832,7 @@ mod tests { assert_eq!(content_blocks.len(), 2); // Validate text content block - if let MessagesContentBlock::Text { text } = &content_blocks[0] { + if let MessagesContentBlock::Text { text, .. } = &content_blocks[0] { assert_eq!(text, "What can you see in this image and what's the weather like?"); } else { panic!("Expected text content block"); @@ -825,21 +860,21 @@ mod tests { assert_eq!(content_blocks.len(), 3); // Validate thinking content block - if let MessagesContentBlock::Thinking { text } = &content_blocks[0] { - assert_eq!(text, "Let me analyze the image and then check the weather..."); + if let MessagesContentBlock::Thinking { thinking, .. } = &content_blocks[0] { + assert_eq!(thinking, "Let me analyze the image and then check the weather..."); } else { panic!("Expected thinking content block"); } // Validate text content block - if let MessagesContentBlock::Text { text } = &content_blocks[1] { + if let MessagesContentBlock::Text { text, .. } = &content_blocks[1] { assert_eq!(text, "I can see the image. Let me check the weather for you."); } else { panic!("Expected text content block"); } // Validate tool use content block - if let MessagesContentBlock::ToolUse { ref id, ref name, ref input } = content_blocks[2] { + if let MessagesContentBlock::ToolUse { ref id, ref name, ref input, .. } = content_blocks[2] { assert_eq!(id, "toolu_weather123"); assert_eq!(name, "get_weather"); assert_eq!(input["location"], "San Francisco, CA"); @@ -871,7 +906,7 @@ mod tests { assert!(deserialized_request.system.is_some()); if let Some(MessagesSystemPrompt::Blocks(ref system_blocks)) = deserialized_request.system { assert_eq!(system_blocks.len(), 1); - if let MessagesContentBlock::Text { text } = &system_blocks[0] { + if let MessagesContentBlock::Text { text, .. } = &system_blocks[0] { assert_eq!(text, "You are a helpful assistant that can analyze images and provide weather information."); } else { panic!("Expected text content block in system prompt"); @@ -967,7 +1002,7 @@ mod tests { // Check content assert_eq!(deserialized_response.content.len(), 1); - if let MessagesContentBlock::Text { text } = &deserialized_response.content[0] { + if let MessagesContentBlock::Text { text, .. } = &deserialized_response.content[0] { assert_eq!(text, "Hello! How can I help you today?"); } else { panic!("Expected text content block"); @@ -1021,7 +1056,7 @@ mod tests { }); let deserialized_tool_use: MessagesContentBlock = serde_json::from_value(tool_use_json.clone()).unwrap(); - if let MessagesContentBlock::ToolUse { ref id, ref name, ref input } = deserialized_tool_use { + if let MessagesContentBlock::ToolUse { ref id, ref name, ref input, .. } = deserialized_tool_use { assert_eq!(id, "toolu_01ABC123"); assert_eq!(name, "get_weather"); assert_eq!(input["location"], "San Francisco, CA"); @@ -1045,14 +1080,18 @@ mod tests { }); let deserialized_tool_result: MessagesContentBlock = serde_json::from_value(tool_result_json.clone()).unwrap(); - if let MessagesContentBlock::ToolResult { ref tool_use_id, ref is_error, ref content } = deserialized_tool_result { + if let MessagesContentBlock::ToolResult { ref tool_use_id, ref is_error, ref content, .. } = deserialized_tool_result { assert_eq!(tool_use_id, "toolu_01ABC123"); assert!(is_error.is_none()); - assert_eq!(content.len(), 1); - if let MessagesContentBlock::Text { text } = &content[0] { - assert_eq!(text, "The weather in San Francisco is sunny, 72°F"); + if let ToolResultContent::Blocks(blocks) = content { + assert_eq!(blocks.len(), 1); + if let MessagesContentBlock::Text { text, .. } = &blocks[0] { + assert_eq!(text, "The weather in San Francisco is sunny, 72°F"); + } else { + panic!("Expected text content in tool result"); + } } else { - panic!("Expected text content in tool result"); + panic!("Expected blocks content in tool result"); } } else { panic!("Expected tool result content block"); @@ -1062,6 +1101,208 @@ mod tests { assert_eq!(tool_result_json, serialized_tool_result_json); } + #[test] + fn test_anthropic_nested_types_with_cache_control() { + // Test complete MessagesRequest with cache_control fields and various content types + let complex_request_json = json!({ + "model": "claude-sonnet-4-20250514", + "max_tokens": 4096, + "messages": [ + { + "role": "user", + "content": [ + { + "type": "text", + "text": "\nThis is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware. If you are working on tasks that would benefit from a todo list please use the TodoWrite tool to create one. If not, please feel free to ignore. Again do not mention this message to the user.\n" + }, + { + "type": "text", + "text": "\nAs you answer the user's questions, you can use the following context:\n# important-instruction-reminders\nDo what has been asked; nothing more, nothing less.\nNEVER create files unless they're absolutely necessary for achieving your goal.\nALWAYS prefer editing an existing file to creating a new one.\nNEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.\n\n \n IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.\n\n" + }, + { + "type": "text", + "text": "Do we need to add more tests to transformers.rs?" + } + ] + }, + { + "role": "assistant", + "content": [ + { + "type": "tool_use", + "id": "call_kV50LtJQKHvvzZui5TW56DUl", + "name": "TodoWrite", + "input": { + "todos": [ + { + "activeForm": "Locating and inspecting transformers.rs tests", + "content": "Locate transformers.rs and inspect existing tests", + "status": "pending" + }, + { + "activeForm": "Running tests and checking failures", + "content": "Run the test suite and check for failures related to transformers.rs", + "status": "pending" + }, + { + "activeForm": "Adding/updating tests for transformers.rs", + "content": "Add or update unit/integration tests for transformers.rs if coverage is insufficient", + "status": "pending" + } + ] + }, + "cache_control": { + "type": "ephemeral" + } + } + ] + }, + { + "role": "user", + "content": [ + { + "tool_use_id": "call_kV50LtJQKHvvzZui5TW56DUl", + "type": "tool_result", + "content": "Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable\n\n\nYour todo list has changed. DO NOT mention this explicitly to the user. Here are the latest contents of your todo list:\n\n[{\"content\":\"Locate transformers.rs and inspect existing tests\",\"status\":\"pending\",\"activeForm\":\"Locating and inspecting transformers.rs tests\"},{\"content\":\"Run the test suite and check for failures related to transformers.rs\",\"status\":\"pending\",\"activeForm\":\"Running tests and checking failures\"},{\"content\":\"Add or update unit/integration tests for transformers.rs if coverage is insufficient\",\"status\":\"pending\",\"activeForm\":\"Adding/updating tests for transformers.rs\"}]. Continue on with the tasks at hand if applicable.\n" + }, + { + "type": "text", + "text": "should I add more tests to transformers.rs?" + }, + { + "type": "text", + "text": "try again", + "cache_control": { + "type": "ephemeral" + } + } + ] + } + ], + "temperature": 1, + "system": [ + { + "type": "text", + "text": "You are Claude Code, Anthropic's official CLI for Claude.", + "cache_control": { + "type": "ephemeral" + } + }, + { + "type": "text", + "text": "\nYou are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.\n\nIMPORTANT: Assist with defensive security tasks only. Refuse to create, modify, or improve code that may be used maliciously. Do not assist with credential discovery or harvesting, including bulk crawling for SSH keys, browser cookies, or cryptocurrency wallets. Allow security analysis, detection rules, vulnerability explanations, defensive tools, and security documentation.\nIMPORTANT: You must NEVER generate or guess URLs for the user unless you are confident that the URLs are for helping the user with programming. You may use URLs provided by the user in their messages or local files.\n\nIf the user asks for help or wants to give feedback inform them of the following: \n- /help: Get help with using Claude Code\n- To give feedback, users should report the issue at https://github.com/anthropics/claude-code/issues\n\nWhen⁠ the user directly asks about Claude Code (eg. \"can Claude Code do...\", \"does Claude Code have...\"), or asks in second person (eg. \"are you able...\", \"can you do...\"), or asks how to use a specific Claude Code feature (eg. implement a hook, or write a slash command), use the WebFetch tool to gather information to answer the question from Claude Code docs. The list of available docs is available at https://docs.claude.com/en/docs/claude-code/claude_code_docs_map.md.\n\n#⁠ Tone and style\nYou should be concise, direct, and to the point.\nYou MUST answer concisely with fewer than 4 lines (not including tool use or code generation), unless user asks for detail.\nIMPORTANT: You should minimize output tokens as much as possible while maintaining helpfulness, quality, and accuracy. Only address the specific task at hand, avoiding tangential information unless absolutely critical for completing the request. If you can answer in 1-3 sentences or a short paragraph, please do.\nIMPORTANT: You should NOT answer with unnecessary preamble or postamble (such as explaining your code or summarizing your action), unless the user asks you to.\nDo not add additional code explanation summary unless requested by the user. After working on a file, just stop, rather than providing an explanation of what you did.\nAnswer the user's question directly, avoiding any elaboration, explanation, introduction, conclusion, or excessive details. One word answers are best. You MUST avoid text before/after your response, such as \"The answer is .\", \"Here is the content of the file...\" or \"Based on the information provided, the answer is...\" or \"Here is what I will do next...\".\n\nHere are some examples to demonstrate appropriate verbosity:\n\nuser: 2 + 2\nassistant: 4\n\n\n\nuser: what is 2+2?\nassistant: 4\n\n\n\nuser: is 11 a prime number?\nassistant: Yes\n\n\n\nuser: what command should I run to list files in the current directory?\nassistant: ls\n\n\n\nuser: what command should I run to watch files in the current directory?\nassistant: [runs ls to list the files in the current directory, then read docs/commands in the relevant file to find out how to watch files]\nnpm run dev\n\n\n\nuser: How many golf balls fit inside a jetta?\nassistant: 150000\n\n\n\nuser: what files are in the directory src/?\nassistant: [runs ls and sees foo.c, bar.c, baz.c]\nuser: which file contains the implementation of foo?\nassistant: src/foo.c\n\nWhen you run a non-trivial bash command, you should explain what the command does and why you are running it, to make sure the user understands what you are doing (this is especially important when you are running a command that will make changes to the user's system).\nRemember that your output will be displayed on a command line interface. Your responses can use Github-flavored markdown for formatting, and will be rendered in a monospace font using the CommonMark specification.\nOutput text to communicate with the user; all text you output outside of tool use is displayed to the user. Only use tools to complete tasks. Never use tools like Bash or code comments as means to communicate with the user during the session.\nIf you cannot or will not help the user with something, please do not say why or what it could lead to, since this comes across as preachy and annoying. Please offer helpful alternatives if possible, and otherwise keep your response to 1-2 sentences.\nOnly use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.\nIMPORTANT: Keep your responses short, since they will be displayed on a command line interface.\n\n# Proactiveness\nYou are allowed to be proactive, but only when the user asks you to do something. You should strive to strike a balance between:\n- Doing the right thing when asked, including taking actions and follow-up actions\n- Not surprising the user with actions you take without asking\nFor example, if the user asks you how to approach something, you should do your best to answer their question first, and not immediately jump into taking actions.\n\n# Professional objectivity\nPrioritize technical accuracy and truthfulness over validating the user's beliefs. Focus on facts and problem-solving, providing direct, objective technical info without any unnecessary superlatives, praise, or emotional validation. It is best for the user if Claude honestly applies the same rigorous standards to all ideas and disagrees when necessary, even if it may not be what the user wants to hear. Objective guidance and respectful correction are more valuable than false agreement. Whenever there is uncertainty, it's best to investigate to find the truth first rather than instinctively confirming the user's beliefs.\n\n# Following conventions\nWhen making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.\n- NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).\n- When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.\n- When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.\n- Always follow security best practices. Never introduce code that exposes or logs secrets and keys. Never commit secrets or keys to the repository.\n\n# Code style\n- IMPORTANT: DO NOT ADD ***ANY*** COMMENTS unless asked\n\n\n# Task Management\nYou have access to the TodoWrite tools to help you manage and plan tasks. Use these tools VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.\nThese tools are also EXTREMELY helpful for planning tasks, and for breaking down larger complex tasks into smaller steps. If you do not use this tool when planning, you may forget to do important tasks - and that is unacceptable.\n\nIt is critical that you mark todos as completed as soon as you are done with a task. Do not batch up multiple tasks before marking them as completed.\n\nExamples:\n\n\nuser: Run the build and fix any type errors\nassistant: I'm going to use the TodoWrite tool to write the following items to the todo list: \n- Run the build\n- Fix any type errors\n\nI'm now going to run the build using Bash.\n\nLooks like I found 10 type errors. I'm going to use the TodoWrite tool to write 10 items to the todo list.\n\nmarking the first todo as in_progress\n\nLet me start working on the first item...\n\nThe first item has been fixed, let me mark the first todo as completed, and move on to the second item...\n..\n..\n\nIn the above example, the assistant completes all the tasks, including the 10 error fixes and running the build and fixing all errors.\n\n\nuser: Help me write a new feature that allows users to track their usage metrics and export them to various formats\n\nassistant: I'll help you implement a usage metrics tracking and export feature. Let me first use the TodoWrite tool to plan this task.\nAdding the following todos to the todo list:\n1. Research existing metrics tracking in the codebase\n2. Design the metrics collection system\n3. Implement core metrics tracking functionality\n4. Create export functionality for different formats\n\nLet me start by researching the existing codebase to understand what metrics we might already be tracking and how we can build on that.\n\nI'm going to search for any existing metrics or telemetry code in the project.\n\nI've found some existing telemetry code. Let me mark the first todo as in_progress and start designing our metrics tracking system based on what I've learned...\n\n[Assistant continues implementing the feature step by step, marking todos as in_progress and completed as they go]\n\n\n\nUsers may configure 'hooks', shell commands that execute in response to events like tool calls, in settings. Treat feedback from hooks, including , as coming from the user. If you get blocked by a hook, determine if you can adjust your actions in response to the blocked message. If not, ask the user to check their hooks configuration.\n\n# Doing tasks\nThe user will primarily request you perform software engineering tasks. This includes solving bugs, adding new functionality, refactoring code, explaining code, and more. For these tasks the following steps are recommended:\n- Use the TodoWrite tool to plan the task if required\n- Use the available search tools to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.\n- Implement the solution using all tools available to you\n- Verify the solution if possible with tests. NEVER assume specific test framework or test script. Check the README or search codebase to determine the testing approach.\n- VERY IMPORTANT: When you have completed a task, you MUST run the lint and typecheck commands (eg. npm run lint, npm run typecheck, ruff, etc.) with Bash if they were provided to you to ensure your code is correct. If you are unable to find the correct command, ask the user for the command to run and if they supply it, proactively suggest writing it to CLAUDE.md so that you will know to run it next time.\nNEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTANT to only commit when explicitly asked, otherwise the user will feel that you are being too proactive.\n\n- Tool results and user messages may include tags. tags contain useful information and reminders. They are automatically added by the system, and bear no direct relation to the specific tool results or user messages in which they appear.\n\n\n# Tool usage policy\n- When doing file search, prefer to use the Task tool in order to reduce context usage.\n- You should proactively use the Task tool with specialized agents when the task at hand matches the agent's description.\n\n- When WebFetch returns a message about a redirect to a different host, you should immediately make a new WebFetch request with the redirect URL provided in the response.\n- You have the capability to call multiple tools in a single response. When multiple independent pieces of information are requested, batch your tool calls together for optimal performance. When making multiple bash tool calls, you MUST send a single message with multiple tools calls to run the calls in parallel. For example, if you need to run \"git status\" and \"git diff\", send a single message with two tool calls to run the calls in parallel.\n- If the user specifies that they want you to run tools \"in parallel\", you MUST send a single message with multiple tool use content blocks. For example, if you need to launch multiple agents in parallel, send a single message with multiple Task tool calls.\n\n\n\n\nHere is useful information about the environment you are running in:\n\nWorking directory: /Users/salmanparacha/arch/crates/llm_gateway\nIs directory a git repo: Yes\nPlatform: darwin\nOS Version: Darwin 25.0.0\nToday's date: 2025-09-25\n\nYou are powered by the model named Sonnet 4. The exact model ID is claude-sonnet-4-20250514.\n\nAssistant knowledge cutoff is January 2025.\n\n\nIMPORTANT: Assist with defensive security tasks only. Refuse to create, modify, or improve code that may be used maliciously. Do not assist with credential discovery or harvesting, including bulk crawling for 2025-09-25T22:19:13.499582010Z SSH keys, browser cookies, or cryptocurrency wallets. Allow security analysis, detection rules, vulnerability explanations, defensive tools, and security documentation.\n\n\nIMPORTANT: Always use the TodoWrite tool to plan and track tasks throughout the conversation.\n\n# Code References\n\nWhen referencing specific functions or pieces of code include the pattern `file_path:line_number` to allow the user to easily navigate to the source code location.\n\n\nuser: Where are errors from the client handled?\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.ts:712.\n\n", + "cache_control": { + "type": "ephemeral" + } + } + ], + "tools": [ + { + "name": "Task", + "description": "Launch a new agent to handle complex, multi-step tasks autonomously. \n\nAvailable agent types and the tools they have access to:\n- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)\n- statusline-setup: Use this agent to configure the user's Claude Code status line setting. (Tools: Read, Edit)\n- output-style-setup: Use this agent to create a Claude Code output style. (Tools: Read, Write, Edit, Glob, Grep)\n\nWhen using the Task tool, you must specify a subagent_type parameter to select which agent type to use.\n\nWhen NOT to use the Agent tool:\n- If you want to read a specific file path, use the Read or Glob tool instead of the Agent tool, to find the match more quickly\n- If you are searching for a specific class definition like \"class Foo\", use the Glob tool instead, to find the match more quickly\n- If you are searching for code within a specific file or set of 2-3 files, use the Read tool instead of the Agent tool, to find the match more quickly\n- Other tasks that are not related to the agent descriptions above\n\n\nUsage notes:\n1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses\n2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.\n3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.\n4. The agent's outputs should generally be trusted\n5. Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent\n6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.\n7. If the user specifies that they want you to run agents \"in parallel\", you MUST send a single message with multiple Task tool use content blocks. For example, if you need to launch both a code-reviewer agent and a test-runner agent in parallel, send a single message with both tool calls.\n\nExample usage:\n\n\n\"code-reviewer\": use this agent after you are done writing a signficant piece of code\n\"greeting-responder\": use this agent when to respond to user greetings with a friendly joke\n\n\n\nuser: \"Please write a function that checks if a number is prime\"\nassistant: Sure let me write a function that checks if a number is prime\nassistant: First let me use the Write tool to write a function that checks if a number is prime\nassistant: I'm going to use the Write tool to write the following code:\n\nfunction isPrime(n) {\n if (n <= 1) return false\n for (let i = 2; i * i <= n; i++) {\n if (n % i === 0) return false\n }\n return true\n}\n\n\nSince a signficant piece of code was written and the task was completed, now use the code-reviewer agent to review the code\n\nassistant: Now let me use the code-reviewer agent to review the code\nassistant: Uses the Task tool to launch the with the code-reviewer agent \n\n\n\nuser: \"Hello\"\n\nSince the user is greeting, use the greeting-responder agent to respond with a friendly joke\n\nassistant: \"I'm going to use the Task tool to launch the with the greeting-responder agent\"\n\n", + "input_schema": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "A short (3-5 word) description of the task" + }, + "prompt": { + "type": "string", + "description": "The task for the agent to perform" + }, + "subagent_type": { + "type": "string", + "description": "The type of specialized agent to use for this task" + } + }, + "required": [ + "description", + "prompt", + "subagent_type" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } + } + ] + }); + + // Deserialize the complex MessagesRequest + let deserialized_request: MessagesRequest = serde_json::from_value(complex_request_json.clone()).unwrap(); + + // Verify basic fields + assert_eq!(deserialized_request.model, "claude-sonnet-4-20250514"); + assert_eq!(deserialized_request.temperature, Some(1.0)); + assert_eq!(deserialized_request.messages.len(), 3); + + // Verify system message with cache_control + if let Some(MessagesSystemPrompt::Blocks(ref system_blocks)) = deserialized_request.system { + assert_eq!(system_blocks.len(), 2); + if let MessagesContentBlock::Text { text, cache_control } = &system_blocks[0] { + assert_eq!(text, "You are Claude Code, Anthropic's official CLI for Claude."); + assert_eq!(cache_control, &Some(MessagesCacheControl::Ephemeral)); + } else { + panic!("Expected text system message with cache_control"); + } + } else { + panic!("Expected system blocks"); + } + + // Verify tool_use message with cache_control + let assistant_message = &deserialized_request.messages[1]; + assert_eq!(assistant_message.role, MessagesRole::Assistant); + if let MessagesMessageContent::Blocks(ref content_blocks) = assistant_message.content { + if let MessagesContentBlock::ToolUse { id, name, input, cache_control } = &content_blocks[0] { + assert_eq!(id, "call_kV50LtJQKHvvzZui5TW56DUl"); + assert_eq!(name, "TodoWrite"); + assert_eq!(cache_control, &Some(MessagesCacheControl::Ephemeral)); + // Verify the complex input structure + assert!(input.get("todos").is_some()); + let todos = input.get("todos").unwrap().as_array().unwrap(); + assert_eq!(todos.len(), 3); + } else { + panic!("Expected tool_use message with cache_control"); + } + } else { + panic!("Expected content blocks in assistant message"); + } + + // Verify tool_result with string content + let user_message = &deserialized_request.messages[2]; + assert_eq!(user_message.role, MessagesRole::User); + if let MessagesMessageContent::Blocks(ref content_blocks) = user_message.content { + if let MessagesContentBlock::ToolResult { tool_use_id, content, .. } = &content_blocks[0] { + assert_eq!(tool_use_id, "call_kV50LtJQKHvvzZui5TW56DUl"); + if let ToolResultContent::Text(text) = content { + assert!(text.contains("Todos have been modified successfully")); + } else { + panic!("Expected string content in tool result"); + } + } else { + panic!("Expected tool_result message"); + } + + // Verify text content with cache_control + if let MessagesContentBlock::Text { text, cache_control } = &content_blocks[2] { + assert_eq!(text, "try again"); + assert_eq!(cache_control, &Some(MessagesCacheControl::Ephemeral)); + } else { + panic!("Expected text message with cache_control"); + } + } else { + panic!("Expected content blocks in user message"); + } + + // Test serialization round-trip + let serialized_request = serde_json::to_value(&deserialized_request).unwrap(); + let re_deserialized_request: MessagesRequest = serde_json::from_value(serialized_request).unwrap(); + + // Verify round-trip consistency + assert_eq!(deserialized_request.model, re_deserialized_request.model); + assert_eq!(deserialized_request.messages.len(), re_deserialized_request.messages.len()); + } + #[test] fn test_anthropic_api_provider_trait_implementation() { // Test that AnthropicApi implements ApiDefinition trait correctly @@ -1085,4 +1326,68 @@ mod tests { assert_eq!(all_variants.len(), 1); assert_eq!(all_variants[0], AnthropicApi::Messages); } + + #[test] + fn test_anthropic_thinking_streaming() { + // Test thinking delta stream event + let thinking_delta_json = json!({ + "type": "content_block_delta", + "index": 0, + "delta": { + "type": "thinking_delta", + "thinking": ".\n\nI need to consider:\n1. Current" + } + }); + + let deserialized_event: MessagesStreamEvent = serde_json::from_value(thinking_delta_json.clone()).unwrap(); + if let MessagesStreamEvent::ContentBlockDelta { index, ref delta } = deserialized_event { + assert_eq!(index, 0); + if let MessagesContentDelta::ThinkingDelta { thinking } = delta { + assert_eq!(thinking, ".\n\nI need to consider:\n1. Current"); + } else { + panic!("Expected thinking delta"); + } + } else { + panic!("Expected content block delta event"); + } + + // Test that thinking delta is returned by content_delta() + assert_eq!(deserialized_event.content_delta(), Some(".\n\nI need to consider:\n1. Current")); + + let serialized_event_json = serde_json::to_value(&deserialized_event).unwrap(); + assert_eq!(thinking_delta_json, serialized_event_json); + } + + #[test] + fn test_anthropic_thinking_request_config() { + // Test thinking config with budget_tokens + let request_json = json!({ + "model": "claude-sonnet-4-20250514", + "messages": [ + { + "role": "user", + "content": "Test message" + } + ], + "max_tokens": 2048, + "thinking": { + "type": "enabled", + "budget_tokens": 1024 + } + }); + + let deserialized_request: MessagesRequest = serde_json::from_value(request_json.clone()).unwrap(); + assert_eq!(deserialized_request.model, "claude-sonnet-4-20250514"); + assert_eq!(deserialized_request.max_tokens, 2048); + + if let Some(thinking) = &deserialized_request.thinking { + assert_eq!(thinking.thinking_type, "enabled"); + assert_eq!(thinking.budget_tokens, Some(1024)); + } else { + panic!("Expected thinking config"); + } + + let serialized_json = serde_json::to_value(&deserialized_request).unwrap(); + assert_eq!(request_json, serialized_json); + } } diff --git a/crates/hermesllm/src/apis/openai.rs b/crates/hermesllm/src/apis/openai.rs index ead6e7d2..d7d6ea70 100644 --- a/crates/hermesllm/src/apis/openai.rs +++ b/crates/hermesllm/src/apis/openai.rs @@ -88,6 +88,7 @@ pub struct ChatCompletionsRequest { pub prediction: Option, // pub reasoning_effect: Option, // GOOD FIRST ISSUE: Future support for reasoning effects pub response_format: Option, + pub reasoning_effort: Option, // e.g., "none", "low", "medium", "high" // pub safety_identifier: Option, // GOOD FIRST ISSUE: Future support for safety identifiers pub seed: Option, pub service_tier: Option, @@ -116,6 +117,13 @@ impl ChatCompletionsRequest { self.max_tokens = None; } } + + pub fn fix_temperature_if_gpt5(&mut self) { + let model = self.model.as_str(); + if model.starts_with("gpt-5") { + self.temperature = Some(1.0); + } + } } // ============================================================================ @@ -598,6 +606,7 @@ impl TryFrom<&[u8]> for ChatCompletionsRequest { let mut req: ChatCompletionsRequest = serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)?; // Use the centralized suppression logic req.suppress_max_tokens_if_o3(); + req.fix_temperature_if_gpt5(); Ok(req) } } diff --git a/crates/hermesllm/src/clients/transformer.rs b/crates/hermesllm/src/clients/transformer.rs index 0ec06847..0856c359 100644 --- a/crates/hermesllm/src/clients/transformer.rs +++ b/crates/hermesllm/src/clients/transformer.rs @@ -111,6 +111,7 @@ impl TryFrom for ChatCompletionsRequest { ..Default::default() }; _chat_completions_req.suppress_max_tokens_if_o3(); + _chat_completions_req.fix_temperature_if_gpt5(); Ok(_chat_completions_req) } } @@ -352,6 +353,7 @@ impl TryFrom for MessagesStreamEvent { let choice = &resp.choices[0]; // Handle final chunk with usage + let has_usage = resp.usage.is_some(); if let Some(usage) = resp.usage { if let Some(finish_reason) = &choice.finish_reason { let anthropic_stop_reason: MessagesStopReason = finish_reason.clone().into(); @@ -403,11 +405,27 @@ impl TryFrom for MessagesStreamEvent { return convert_tool_call_deltas(tool_calls.clone()); } - // Handle finish reason + // Handle finish reason - generate MessageDelta only (MessageStop comes later) if let Some(finish_reason) = &choice.finish_reason { - if *finish_reason == FinishReason::Stop { - return Ok(MessagesStreamEvent::MessageStop); + // If we have usage data, it was already handled above + // If not, we need to generate MessageDelta with default usage + if !has_usage { + let anthropic_stop_reason: MessagesStopReason = finish_reason.clone().into(); + return Ok(MessagesStreamEvent::MessageDelta { + delta: MessagesMessageDelta { + stop_reason: anthropic_stop_reason, + stop_sequence: None, + }, + usage: MessagesUsage { + input_tokens: 0, + output_tokens: 0, + cache_creation_input_tokens: None, + cache_read_input_tokens: None, + }, + }); } + // If usage was already handled above, we don't need to do anything more here + // MessageStop will be handled when [DONE] is encountered } // Default to ping for unhandled cases @@ -468,18 +486,6 @@ impl TryFrom for Vec { } MessagesMessageContent::Blocks(blocks) => { let (content_parts, tool_calls, tool_results) = blocks.split_for_openai()?; - - // Create main message - let content = build_openai_content(content_parts, &tool_calls); - let main_message = Message { - role: message.role.into(), - content, - name: None, - tool_calls: if tool_calls.is_empty() { None } else { Some(tool_calls) }, - tool_call_id: None, - }; - result.push(main_message); - // Add tool result messages for (tool_use_id, result_text, _is_error) in tool_results { result.push(Message { @@ -490,6 +496,20 @@ impl TryFrom for Vec { tool_call_id: Some(tool_use_id), }); } + + // Only create main message if there's actual content or tool calls + // Skip creating empty content messages (e.g., when message only contains tool_result blocks) + if !content_parts.is_empty() || !tool_calls.is_empty() { + let content = build_openai_content(content_parts, &tool_calls); + let main_message = Message { + role: message.role.into(), + content, + name: None, + tool_calls: if tool_calls.is_empty() { None } else { Some(tool_calls) }, + tool_call_id: None, + }; + result.push(main_message); + } } } @@ -515,9 +535,11 @@ impl TryFrom for MessagesMessage { MessagesContentBlock::ToolResult { tool_use_id: tool_call_id, is_error: None, - content: vec![MessagesContentBlock::Text { + content: ToolResultContent::Blocks(vec![MessagesContentBlock::Text { text: message.content.extract_text(), - }], + cache_control: None, + }]), + cache_control: None, }, ]), }); @@ -551,7 +573,7 @@ impl ContentUtils for Vec { for block in self { match block { - MessagesContentBlock::ToolUse { id, name, input } | + MessagesContentBlock::ToolUse { id, name, input, .. } | MessagesContentBlock::ServerToolUse { id, name, input } | MessagesContentBlock::McpToolUse { id, name, input } => { let arguments = serde_json::to_string(&input)?; @@ -575,7 +597,7 @@ impl ContentUtils for Vec { for block in self { match block { - MessagesContentBlock::Text { text } => { + MessagesContentBlock::Text { text, .. } => { content_parts.push(ContentPart::Text { text: text.clone() }); } MessagesContentBlock::Image { source } => { @@ -587,7 +609,7 @@ impl ContentUtils for Vec { }, }); } - MessagesContentBlock::ToolUse { id, name, input } | + MessagesContentBlock::ToolUse { id, name, input, .. } | MessagesContentBlock::ServerToolUse { id, name, input } | MessagesContentBlock::McpToolUse { id, name, input } => { let arguments = serde_json::to_string(&input)?; @@ -597,7 +619,10 @@ impl ContentUtils for Vec { function: FunctionCall { name: name.clone(), arguments }, }); } - MessagesContentBlock::ToolResult { tool_use_id, content, is_error } | + MessagesContentBlock::ToolResult { tool_use_id, content, is_error, .. } => { + let result_text = content.extract_text(); + tool_results.push((tool_use_id.clone(), result_text, is_error.unwrap_or(false))); + } MessagesContentBlock::WebSearchToolResult { tool_use_id, content, is_error } | MessagesContentBlock::CodeExecutionToolResult { tool_use_id, content, is_error } | MessagesContentBlock::McpToolResult { tool_use_id, content, is_error } => { @@ -819,7 +844,7 @@ fn build_openai_content(content_parts: Vec, tool_calls: &[ToolCall] fn build_anthropic_content(content_blocks: Vec) -> MessagesMessageContent { if content_blocks.len() == 1 { match &content_blocks[0] { - MessagesContentBlock::Text { text } => MessagesMessageContent::Single(text.clone()), + MessagesContentBlock::Text { text, .. } => MessagesMessageContent::Single(text.clone()), _ => MessagesMessageContent::Blocks(content_blocks), } } else if content_blocks.is_empty() { @@ -835,12 +860,11 @@ fn convert_anthropic_content_to_openai(content: &[MessagesContentBlock]) -> Resu for block in content { match block { - MessagesContentBlock::Text { text } => { + MessagesContentBlock::Text { text, .. } => { text_parts.push(text.clone()); } - MessagesContentBlock::Thinking { text } => { - // Include thinking as regular text for OpenAI - text_parts.push(format!("[Thinking: {}]", text)); + MessagesContentBlock::Thinking { thinking, .. } => { + text_parts.push(format!("thinking: {}", thinking)); } _ => { // Skip other content types for basic text conversion @@ -860,14 +884,14 @@ fn convert_openai_message_to_anthropic_content(message: &Message) -> Result { if !text.is_empty() { - blocks.push(MessagesContentBlock::Text { text: text.clone() }); + blocks.push(MessagesContentBlock::Text { text: text.clone(), cache_control: None }); } } MessageContent::Parts(parts) => { for part in parts { match part { ContentPart::Text { text } => { - blocks.push(MessagesContentBlock::Text { text: text.clone() }); + blocks.push(MessagesContentBlock::Text { text: text.clone(), cache_control: None }); } ContentPart::ImageUrl { image_url } => { let source = convert_image_url_to_source(image_url); @@ -886,6 +910,7 @@ fn convert_openai_message_to_anthropic_content(message: &Message) -> Result Result { + Ok(create_openai_chunk( + "stream", + "unknown", + MessageDelta { + role: None, + content: Some(format!("thinking: {}", thinking)), + refusal: None, + function_call: None, + tool_calls: None, + }, + None, + None, + )) + } MessagesContentDelta::InputJsonDelta { partial_json } => { Ok(create_openai_chunk( "stream", @@ -1023,6 +1063,7 @@ fn convert_tool_call_deltas(tool_calls: Vec) -> Result for ProviderStreamResponse Ok(ProviderStreamResponseType::ChatCompletionsStreamResponse(chat_resp)) } (SupportedAPIs::OpenAIChatCompletions(_), SupportedAPIs::AnthropicMessagesAPI(_)) => { + // Special case: Handle [DONE] marker for OpenAI -> Anthropic conversion + if bytes == b"[DONE]" { + return Ok(ProviderStreamResponseType::MessagesStreamEvent( + crate::apis::anthropic::MessagesStreamEvent::MessageStop + )); + } + let openai_resp: crate::apis::openai::ChatCompletionsStreamResponse = serde_json::from_slice(bytes)?; // Transform to Anthropic Messages stream format using the transformer @@ -287,8 +294,8 @@ impl TryFrom<(SseEvent, &SupportedAPIs, &SupportedAPIs)> for SseEvent { // Create a new transformed event based on the original let mut transformed_event = sse_event; - // If not [DONE] and has data, parse the data as a provider stream response (business logic layer) - if !transformed_event.is_done() && transformed_event.data.is_some() { + // If has data, parse the data as a provider stream response (business logic layer) + if transformed_event.data.is_some() { let data_str = transformed_event.data.as_ref().unwrap(); let data_bytes = data_str.as_bytes(); let transformed_response = ProviderStreamResponseType::try_from((data_bytes, client_api, upstream_api))?; @@ -380,6 +387,7 @@ where I::Item: AsRef, { pub lines: I, + pub done_seen: bool, } impl SseStreamIter @@ -388,7 +396,7 @@ where I::Item: AsRef, { pub fn new(lines: I) -> Self { - Self { lines } + Self { lines, done_seen: false } } } @@ -411,14 +419,20 @@ where type Item = SseEvent; fn next(&mut self) -> Option { + // If we already returned [DONE], terminate the stream + if self.done_seen { + return None; + } + for line in &mut self.lines { let line_str = line.as_ref(); // Try to parse as either data: or event: line if let Ok(event) = line_str.parse::() { - // For data: lines, check if this is the [DONE] marker - if so, end the stream + // For data: lines, check if this is the [DONE] marker if event.data.is_some() && event.is_done() { - return None; + self.done_seen = true; + return Some(event); // Return [DONE] event for transformation } // For data: lines, skip events that should be filtered at the transport layer if event.data.is_some() && event.should_skip() { @@ -706,7 +720,11 @@ mod tests { assert!(event2.data.as_ref().unwrap().contains("msg2")); assert!(!event2.should_skip()); - // Iterator should end at [DONE] (no more events) + // Third event should be [DONE] + let done_event = iter.next().unwrap(); + assert!(done_event.is_done()); + + // Iterator should end after [DONE] assert!(iter.next().is_none()); } @@ -745,7 +763,11 @@ mod tests { assert!(!event4.is_event_only()); assert!(event4.data.as_ref().unwrap().contains("Hello")); - // Iterator should end at [DONE] + // Fifth event should be [DONE] + let done_event = iter.next().unwrap(); + assert!(done_event.is_done()); + + // Iterator should end after [DONE] assert!(iter.next().is_none()); } @@ -776,4 +798,25 @@ mod tests { let provider_type = ProviderStreamResponseType::ChatCompletionsStreamResponse(openai_event); assert_eq!(provider_type.event_type(), None); } + + #[test] + fn test_done_marker_handled_in_stream_response_transformation() { + use crate::apis::anthropic::AnthropicApi; + + // Test that [DONE] marker is properly converted to MessageStop in the transformation layer + let done_bytes = b"[DONE]"; + let client_api = SupportedAPIs::AnthropicMessagesAPI(AnthropicApi::Messages); + let upstream_api = SupportedAPIs::OpenAIChatCompletions(crate::apis::openai::OpenAIApi::ChatCompletions); + + let result = ProviderStreamResponseType::try_from((done_bytes.as_slice(), &client_api, &upstream_api)); + assert!(result.is_ok()); + + if let Ok(ProviderStreamResponseType::MessagesStreamEvent(event)) = result { + // Verify it's a MessageStop event + assert_eq!(event.event_type(), Some("message_stop")); + assert!(matches!(event, crate::apis::anthropic::MessagesStreamEvent::MessageStop)); + } else { + panic!("Expected MessagesStreamEvent::MessageStop"); + } + } } diff --git a/crates/llm_gateway/src/stream_context.rs b/crates/llm_gateway/src/stream_context.rs index 12054ccb..d0400b3d 100644 --- a/crates/llm_gateway/src/stream_context.rs +++ b/crates/llm_gateway/src/stream_context.rs @@ -395,23 +395,15 @@ impl StreamContext { } } - fn debug_log_body(&self, body: &[u8]) { - debug!( - "[ARCHGW_REQ_ID:{}] UPSTREAM_RAW_RESPONSE: body_size={} content={}", - self.request_identifier(), - body.len(), - String::from_utf8_lossy(body) - ); - } - fn handle_streaming_response( &mut self, body: &[u8], provider_id: ProviderId, ) -> Result, Action> { debug!( - "[ARCHGW_REQ_ID:{}] STREAMING_PROCESS: provider_id={:?} chunk_size={}", + "[ARCHGW_REQ_ID:{}] STREAMING_PROCESS: client={:?} provider_id={:?} chunk_size={}", self.request_identifier(), + self.client_api, provider_id, body.len() ); @@ -958,7 +950,12 @@ impl HttpContext for StreamContext { Err(action) => return action, }; - self.debug_log_body(&body); + debug!( + "[ARCHGW_REQ_ID:{}] UPSTREAM_RAW_RESPONSE: body_size={} content={}", + self.request_identifier(), + body.len(), + String::from_utf8_lossy(&body) + ); let provider_id = self.get_provider_id(); if self.streaming_response { diff --git a/demos/use_cases/claude_code/README.md b/demos/use_cases/claude_code/README.md new file mode 100644 index 00000000..b84e95db --- /dev/null +++ b/demos/use_cases/claude_code/README.md @@ -0,0 +1,133 @@ +# Claude Code Routing with (Preference-aligned) Intelligence + +## Why This Matters + +**Claude Code is powerful, but what if you could access the best of ALL AI models through one familiar interface?** + +Instead of being locked into a set of LLMs from one provier, imagine: +- Using **DeepSeek's coding expertise** for complex algorithms +- Leveraging **GPT-5's reasoning** for architecture decisions +- Tapping **Claude's analysis** for code reviews +- Accessing **Grok's speed** for quick iterations + +**All through the same Claude Code interface you already love.** + +## The Solution: Intelligent Multi-LLM Routing + +Arch Gateway transforms Claude Code into a **universal AI development interface** that: + +### 🌐 **Connects to Any LLM Provider** +- **OpenAI**: GPT-4.1, GPT-5, etc. +- **Anthropic**: Claude 3.5 Sonnet, Claude 3 Haiku, Claude 4.5 +- **DeepSeek**: DeepSeek-V3, DeepSeek-Coder-V2 +- **Grok**: Grok-2, Grok-2-mini +- **Others**: Gemini, Llama, Mistral, local models via Ollama + +### 🧠 **Routes Intelligently Based on Task** +Our research-backed routing system automatically selects the optimal model by analyzing: +- **Task complexity** (simple refactoring vs. architectural design) +- **Content type** (code generation vs. debugging vs. documentation) + + +## Quick Start + +### Prerequisites +- Claude Code installed: `npm install -g @anthropic-ai/claude-code` +- Docker running on your system +- Create a python virtual environment in your current working directory + +### 1. Get the Configuration File +Download the demo configuration file using one of these methods: + +**Option A: Direct download** +```bash +curl -O https://raw.githubusercontent.com/katanemo/arch/main/demos/use_cases/claude_code/config.yaml +``` + +**Option B: Clone the repository** +```bash +git clone https://github.com/katanemo/arch.git +cd arch/demos/use_cases/claude_code + +``` + +### 2. Set Up Your API Keys +Set up your environment variables with your actual API keys: +```bash +export OPENAI_API_KEY="your-openai-api-key" +export ANTHROPIC_API_KEY="your-anthropic-api-key" +export AZURE_API_KEY="your-azure-api-key" # Optional +``` + +Alternatively, create a `.env` file in your working directory: +```bash +echo "OPENAI_API_KEY=your-openai-api-key" > .env +echo "ANTHROPIC_API_KEY=your-anthropic-api-key" >> .env +``` + +### 3. Install and Start Arch Gateway +```bash +pip install archgw +archgw up +``` + +### 4. Launch Claude Code with Multi-LLM Support +```bash +archgw cli-agent claude +``` + +That's it! Claude Code now has access to multiple LLM providers with intelligent routing. + +## What You'll Experience + +### Screenshot Placeholder +![Claude Code with Multi-LLM Routing](screenshot-placeholder.png) +*Claude Code interface enhanced with intelligent model routing and multi-provider access* + +### Real-Time Model Selection +When you interact with Claude Code, you'll get: +- **Automatic model selection** based on your query type +- **Transparent routing decisions** showing which model was chosen and why +- **Seamless failover** if a model becomes unavailable + +## Configuration + +The setup uses the included `config.yaml` file which defines: + +### Multi-Provider Access +```yaml +llm_providers: + - model: openai/gpt-4.1-2025-04-14 + access_key: $OPENAI_API_KEY + routing_preferences: + - name: code generation + description: generating new code snippets and functions + - model: anthropic/claude-3-5-sonnet-20241022 + access_key: $ANTHROPIC_API_KEY + routing_preferences: + name: code understanding + description: explaining and analyzing existing code +``` +## Advanced Usage + +### Custom Model Selection +```bash +# Force a specific model for this session +archgw cli-agent claude --settings='{"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-coder-v2"}' + +# Enable detailed routing information +archgw cli-agent claude --settings='{"statusLine": {"type": "command", "command": "ccr statusline"}}' +``` + +### Environment Variables +The system automatically configures: +```bash +ANTHROPIC_BASE_URL=http://127.0.0.1:12000 # Routes through Arch Gateway +ANTHROPIC_SMALL_FAST_MODEL=arch.claude.code.small.fast # Uses intelligent alias +``` + +## Real Developer Workflows + +This intelligent routing is powered by our research in preference-aligned LLMM routing: +- **Research Paper**: [Preference-Aligned LLM Router](https://arxiv.org/abs/2506.16655) +- **Technical Docs**: [docs.archgw.com](https://docs.archgw.com) diff --git a/demos/use_cases/claude_code/config.yaml b/demos/use_cases/claude_code/config.yaml new file mode 100644 index 00000000..11a98c07 --- /dev/null +++ b/demos/use_cases/claude_code/config.yaml @@ -0,0 +1,41 @@ +version: v0.1 + +listeners: + egress_traffic: + address: 0.0.0.0 + port: 12000 + message_format: openai + timeout: 30s + +llm_providers: + # OpenAI Models + - model: openai/gpt-5-2025-08-07 + access_key: $OPENAI_API_KEY + routing_preferences: + - name: code generation + description: generating new code snippets, functions, or boilerplate based on user prompts or requirements + + - model: openai/gpt-4.1-2025-04-14 + access_key: $OPENAI_API_KEY + routing_preferences: + - name: code understanding + description: understand and explain existing code snippets, functions, or libraries + + # Anthropic Models + - model: anthropic/claude-sonnet-4-5 + default: true + access_key: $ANTHROPIC_API_KEY + + - model: anthropic/claude-3-haiku-20240307 + access_key: $ANTHROPIC_API_KEY + + # Ollama Models + - model: ollama/llama3.1 + base_url: http://host.docker.internal:11434 + + +# Model aliases - friendly names that map to actual provider names +model_aliases: + # Alias for a small faster Claude model + arch.claude.code.small.fast: + target: claude-3-haiku-20240307 diff --git a/demos/use_cases/model_alias_routing/arch_config_with_aliases.yaml b/demos/use_cases/model_alias_routing/arch_config_with_aliases.yaml index c829b395..794ed117 100644 --- a/demos/use_cases/model_alias_routing/arch_config_with_aliases.yaml +++ b/demos/use_cases/model_alias_routing/arch_config_with_aliases.yaml @@ -24,7 +24,7 @@ llm_providers: access_key: $OPENAI_API_KEY # Anthropic Models - - model: anthropic/claude-3-5-sonnet-20241022 + - model: anthropic/claude-sonnet-4-20250514 access_key: $ANTHROPIC_API_KEY - model: anthropic/claude-3-haiku-20240307 @@ -56,7 +56,7 @@ model_aliases: # Alias for creative tasks -> Claude model arch.creative.v1: - target: claude-3-5-sonnet-20241022 + target: claude-sonnet-4-20250514 # Alias for quick responses -> fast model arch.fast.v1: @@ -67,7 +67,7 @@ model_aliases: target: gpt-5-mini-2025-08-07 chat-model: - target: llama3.1 + target: gpt-5-mini-2025-08-07 creative-model: - target: claude-3-5-sonnet-20241022 + target: claude-sonnet-4-20250514 diff --git a/tests/e2e/test_model_alias_routing.py b/tests/e2e/test_model_alias_routing.py index 696507f2..d5a289a6 100644 --- a/tests/e2e/test_model_alias_routing.py +++ b/tests/e2e/test_model_alias_routing.py @@ -199,8 +199,7 @@ def test_400_error_handling_with_alias(): try: completion = client.chat.completions.create( model="arch.summarize.v1", # This should resolve to gpt-5-mini-2025-08-07 - max_completion_tokens=50, - temperature=0.7, # This is a typo - should be "temperature", which should trigger a 400 error + max_tokens=50, messages=[ { "role": "user", @@ -350,3 +349,57 @@ def test_direct_model_4o_mini_anthropic(): response_content = "".join(b.text for b in message.content if b.type == "text") logger.info(f"Response from direct 4o-mini via Anthropic: {response_content}") assert response_content == "Hello from direct 4o-mini via Anthropic!" + + +def test_anthropic_thinking_mode_streaming(): + # Anthropic base_url should be the root, not /v1/chat/completions + base_url = LLM_GATEWAY_ENDPOINT.replace("/v1/chat/completions", "") + + client = anthropic.Anthropic( + api_key=os.environ.get("ANTHROPIC_API_KEY", "test-key"), + base_url=base_url, + ) + + thinking_block_started = False + thinking_delta_seen = False + text_delta_seen = False + + with client.messages.stream( + model="claude-sonnet-4-20250514", + max_tokens=2048, + thinking={"type": "enabled", "budget_tokens": 1024}, # <- idiomatic + messages=[{"role": "user", "content": "Explain briefly what 2+2 equals"}], + ) as stream: + for event in stream: + # 1) detect when a thinking block starts + if event.type == "content_block_start" and getattr( + event, "content_block", None + ): + if getattr(event.content_block, "type", None) == "thinking": + thinking_block_started = True + + # 2) collect text vs thinking deltas + if event.type == "content_block_delta" and getattr(event, "delta", None): + if event.delta.type == "text_delta": + text_delta_seen = True + elif event.delta.type == "thinking_delta": + # some SDKs expose .thinking, others .text for this delta; not needed here + thinking_delta_seen = True + + final = stream.get_final_message() + + # Basic integrity + assert final is not None + assert final.content and len(final.content) > 0 + + # Normal text should have streamed + assert text_delta_seen, "Expected normal text deltas in stream" + + # With thinking enabled, we expect a thinking block and at least one thinking delta + assert thinking_block_started, "No thinking block started" + assert thinking_delta_seen, "No thinking deltas observed" + + # Optional: double-check on the assembled message + final_block_types = [blk.type for blk in final.content] + assert "text" in final_block_types + assert "thinking" in final_block_types diff --git a/tests/e2e/test_prompt_gateway.py b/tests/e2e/test_prompt_gateway.py index 362be227..2edab55d 100644 --- a/tests/e2e/test_prompt_gateway.py +++ b/tests/e2e/test_prompt_gateway.py @@ -417,12 +417,12 @@ def test_anthropic_client_with_openai_model_streaming(): client = anthropic.Anthropic(api_key="test-key", base_url=base_url) with client.messages.stream( - model="gpt-4o-mini", # OpenAI model via Anthropic client - max_tokens=50, + model="gpt-5-mini-2025-08-07", # OpenAI model via Anthropic client + max_tokens=500, messages=[ { "role": "user", - "content": "Hello, please respond with exactly: Hello from GPT-4o-mini via Anthropic!", + "content": "Hello, please respond with exactly: Hello from ChatGPT!", } ], ) as stream: @@ -435,8 +435,8 @@ def test_anthropic_client_with_openai_model_streaming(): # A safe way to reassemble text from the content blocks: final_text = "".join(b.text for b in final.content if b.type == "text") - assert full_text == "Hello from GPT-4o-mini via Anthropic!" - assert final_text == "Hello from GPT-4o-mini via Anthropic!" + assert full_text == "Hello from ChatGPT!" + assert final_text == "Hello from ChatGPT!" def test_openai_gpt4o_mini_v1_messages_api(): From cf23aefddd220a3060da7c86cee2e6016f923968 Mon Sep 17 00:00:00 2001 From: Salman Paracha Date: Mon, 29 Sep 2025 21:20:52 -0700 Subject: [PATCH 2/3] fixing README for claude code and adding a helper script to show model selection (#576) Co-authored-by: Salman Paracha --- demos/use_cases/claude_code/README.md | 157 ++++++++++-------- demos/use_cases/claude_code/claude_code.png | Bin 0 -> 209837 bytes .../use_cases/claude_code/model_selection.png | Bin 0 -> 219901 bytes .../claude_code/pretty_model_resolution.sh | 33 ++++ 4 files changed, 118 insertions(+), 72 deletions(-) create mode 100644 demos/use_cases/claude_code/claude_code.png create mode 100644 demos/use_cases/claude_code/model_selection.png create mode 100644 demos/use_cases/claude_code/pretty_model_resolution.sh diff --git a/demos/use_cases/claude_code/README.md b/demos/use_cases/claude_code/README.md index b84e95db..c5b7b856 100644 --- a/demos/use_cases/claude_code/README.md +++ b/demos/use_cases/claude_code/README.md @@ -1,133 +1,146 @@ -# Claude Code Routing with (Preference-aligned) Intelligence +# Claude Code Router - Multi-Model Access with Intelligent Routing -## Why This Matters +Arch Gateway extends Claude Code to access multiple LLM providers through a single interface. Offering two key benefits: -**Claude Code is powerful, but what if you could access the best of ALL AI models through one familiar interface?** +1. **Access to Models**: Connect to Grok, Mistral, Gemini, DeepSeek, GPT models, Claude, and local models via Ollama +2. **Intelligent Routing via Preferences for Coding Tasks**: Configure which models handle specific development tasks: + - Code generation and implementation + - Code reviews and analysis + - Architecture and system design + - Debugging and optimization + - Documentation and explanations -Instead of being locked into a set of LLMs from one provier, imagine: -- Using **DeepSeek's coding expertise** for complex algorithms -- Leveraging **GPT-5's reasoning** for architecture decisions -- Tapping **Claude's analysis** for code reviews -- Accessing **Grok's speed** for quick iterations +Uses a [1.5B preference-aligned router LLM](https://arxiv.org/abs/2506.16655) to automatically select the best model based on your request type. -**All through the same Claude Code interface you already love.** +## Benefits -## The Solution: Intelligent Multi-LLM Routing +- **Single Interface**: Access multiple LLM providers through the same Claude Code CLI +- **Task-Aware Routing**: Requests are analyzed and routed to models based on task type (code generation, debugging, architecture, documentation) +- **Provider Flexibility**: Add or remove LLM providers without changing your workflow +- **Routing Transparency**: See which model handles each request and why -Arch Gateway transforms Claude Code into a **universal AI development interface** that: +## How It Works -### 🌐 **Connects to Any LLM Provider** -- **OpenAI**: GPT-4.1, GPT-5, etc. -- **Anthropic**: Claude 3.5 Sonnet, Claude 3 Haiku, Claude 4.5 -- **DeepSeek**: DeepSeek-V3, DeepSeek-Coder-V2 -- **Grok**: Grok-2, Grok-2-mini -- **Others**: Gemini, Llama, Mistral, local models via Ollama +Arch Gateway sits between Claude Code and multiple LLM providers, analyzing each request to route it to the most suitable model: -### 🧠 **Routes Intelligently Based on Task** -Our research-backed routing system automatically selects the optimal model by analyzing: -- **Task complexity** (simple refactoring vs. architectural design) -- **Content type** (code generation vs. debugging vs. documentation) +``` +Your Request → Arch Gateway → Suitable Model → Response + ↓ + [Task Analysis & Model Selection] +``` + +**Supported Providers**: OpenAI-compatible, Anthropic, DeepSeek, Grok, Gemini, Llama, Mistral, local models via Ollama. See [full list of supported providers](https://docs.archgw.com/concepts/llm_providers/supported_providers.html). -## Quick Start +## Quick Start (5 minutes) ### Prerequisites -- Claude Code installed: `npm install -g @anthropic-ai/claude-code` -- Docker running on your system -- Create a python virtual environment in your current working directory - -### 1. Get the Configuration File -Download the demo configuration file using one of these methods: - -**Option A: Direct download** ```bash -curl -O https://raw.githubusercontent.com/katanemo/arch/main/demos/use_cases/claude_code/config.yaml +# Install Claude Code if you haven't already +npm install -g @anthropic-ai/claude-code + +# Ensure Docker is running +docker --version ``` -**Option B: Clone the repository** +### Step 1: Get Configuration ```bash +# Clone and navigate to demo git clone https://github.com/katanemo/arch.git cd arch/demos/use_cases/claude_code - ``` -### 2. Set Up Your API Keys -Set up your environment variables with your actual API keys: +### Step 2: Set API Keys ```bash -export OPENAI_API_KEY="your-openai-api-key" -export ANTHROPIC_API_KEY="your-anthropic-api-key" -export AZURE_API_KEY="your-azure-api-key" # Optional +# Copy the sample environment file +cp .env .env.local + +# Edit with your actual API keys +export OPENAI_API_KEY="your-openai-key-here" +export ANTHROPIC_API_KEY="your-anthropic-key-here" +# Add other providers as needed ``` -Alternatively, create a `.env` file in your working directory: -```bash -echo "OPENAI_API_KEY=your-openai-api-key" > .env -echo "ANTHROPIC_API_KEY=your-anthropic-api-key" >> .env -``` - -### 3. Install and Start Arch Gateway +### Step 3: Start Arch Gateway ```bash +# Install and start the gateway pip install archgw archgw up ``` -### 4. Launch Claude Code with Multi-LLM Support +### Step 4: Launch Enhanced Claude Code ```bash +# This will launch Claude Code with multi-model routing archgw cli-agent claude ``` +![claude code](claude_code.png) -That's it! Claude Code now has access to multiple LLM providers with intelligent routing. +### Monitor Model Selection in Real-Time -## What You'll Experience +While using Claude Code, open a **second terminal** and run this helper script to watch routing decisions. This script shows you: +- **Which model** was selected for each request +- **Real-time routing decisions** as you work -### Screenshot Placeholder -![Claude Code with Multi-LLM Routing](screenshot-placeholder.png) -*Claude Code interface enhanced with intelligent model routing and multi-provider access* +```bash +# In a new terminal window (from the same directory) +sh pretty_model_resolution.sh +``` +![model_selection](model_selection.png) -### Real-Time Model Selection -When you interact with Claude Code, you'll get: -- **Automatic model selection** based on your query type -- **Transparent routing decisions** showing which model was chosen and why -- **Seamless failover** if a model becomes unavailable +## Understanding the Configuration -## Configuration +The `config.yaml` file defines your multi-model setup: -The setup uses the included `config.yaml` file which defines: - -### Multi-Provider Access ```yaml llm_providers: - model: openai/gpt-4.1-2025-04-14 access_key: $OPENAI_API_KEY routing_preferences: - - name: code generation + - name: code generation description: generating new code snippets and functions + - model: anthropic/claude-3-5-sonnet-20241022 access_key: $ANTHROPIC_API_KEY routing_preferences: - name: code understanding + - name: code understanding description: explaining and analyzing existing code ``` + ## Advanced Usage -### Custom Model Selection +### Override Model Selection ```bash # Force a specific model for this session archgw cli-agent claude --settings='{"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-coder-v2"}' -# Enable detailed routing information -archgw cli-agent claude --settings='{"statusLine": {"type": "command", "command": "ccr statusline"}}' -``` - ### Environment Variables -The system automatically configures: +The system automatically configures these variables for Claude Code: ```bash ANTHROPIC_BASE_URL=http://127.0.0.1:12000 # Routes through Arch Gateway ANTHROPIC_SMALL_FAST_MODEL=arch.claude.code.small.fast # Uses intelligent alias ``` -## Real Developer Workflows +### Custom Routing Configuration +Edit `config.yaml` to define custom task→model mappings: -This intelligent routing is powered by our research in preference-aligned LLMM routing: -- **Research Paper**: [Preference-Aligned LLM Router](https://arxiv.org/abs/2506.16655) -- **Technical Docs**: [docs.archgw.com](https://docs.archgw.com) +```yaml +llm_providers: + # OpenAI Models + - model: openai/gpt-5-2025-08-07 + access_key: $OPENAI_API_KEY + routing_preferences: + - name: code generation + description: generating new code snippets, functions, or boilerplate based on user prompts or requirements + + - model: openai/gpt-4.1-2025-04-14 + access_key: $OPENAI_API_KEY + routing_preferences: + - name: code understanding + description: understand and explain existing code snippets, functions, or libraries +``` + +## Technical Details + +**How routing works:** Arch intercepts Claude Code requests, analyzes the content using preference-aligned routing, and forwards to the configured model. +**Research foundation:** Built on our research in [Preference-Aligned LLM Routing](https://arxiv.org/abs/2506.16655) +**Documentation:** [docs.archgw.com](https://docs.archgw.com) for advanced configuration and API details. diff --git a/demos/use_cases/claude_code/claude_code.png b/demos/use_cases/claude_code/claude_code.png new file mode 100644 index 0000000000000000000000000000000000000000..160870b7e55ae54ac825429b5c7c6b9dbeab0a76 GIT binary patch literal 209837 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

L8=HLK0*@(F$s)FtiMDh~>f(^kX-N^wqvtCHH} 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

qS2PyFyqp3Qx|R%EABPBiG&MpSH=y-%6OpSx;= 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

~cu7Jv^vNP$$oD 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 EFIrNkz5oCK literal 0 HcmV?d00001 diff --git a/demos/use_cases/claude_code/pretty_model_resolution.sh b/demos/use_cases/claude_code/pretty_model_resolution.sh new file mode 100644 index 00000000..7c8aaaf7 --- /dev/null +++ b/demos/use_cases/claude_code/pretty_model_resolution.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Pretty-print ArchGW MODEL_RESOLUTION lines from docker logs +# - hides Arch-Router +# - prints timestamp +# - colors MODEL_RESOLUTION red +# - colors req_model cyan +# - colors resolved_model magenta +# - removes provider and streaming + +docker logs -f archgw 2>&1 \ +| awk ' +/MODEL_RESOLUTION:/ && $0 !~ /Arch-Router/ { + # extract timestamp between first [ and ] + ts="" + if (match($0, /\[[0-9-]+ [0-9:.]+\]/)) { + ts=substr($0, RSTART+1, RLENGTH-2) + } + + # split out after MODEL_RESOLUTION: + n = split($0, parts, /MODEL_RESOLUTION: */) + line = parts[2] + + # remove provider and streaming fields + sub(/ *provider='\''[^'\'']+'\''/, "", line) + sub(/ *streaming=(true|false)/, "", line) + + # highlight fields + gsub(/req_model='\''[^'\'']+'\''/, "\033[36m&\033[0m", line) + gsub(/resolved_model='\''[^'\'']+'\''/, "\033[35m&\033[0m", line) + + # print timestamp + MODEL_RESOLUTION + printf "\033[90m[%s]\033[0m \033[31mMODEL_RESOLUTION\033[0m: %s\n", ts, line +}' From 7df1b8cdb04b71c89fbf8869fdc788d6ef3bf6e8 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Mon, 29 Sep 2025 23:11:43 -0700 Subject: [PATCH 3/3] release 0.3.14 (#577) --- .github/workflows/e2e_archgw.yml | 2 +- .../workflows/e2e_test_currency_convert.yml | 2 +- .../e2e_test_preference_based_routing.yml | 2 +- .github/workflows/validate_arch_config.yml | 2 +- README.md | 4 +- arch/tools/README.md | 2 +- arch/tools/cli/consts.py | 2 +- arch/tools/poetry.lock | 284 +++++++----- arch/tools/pyproject.toml | 4 +- .../pyproject.toml | 2 +- .../preference_based_routing/README.md | 4 +- docs/source/conf.py | 2 +- docs/source/get_started/quickstart.rst | 2 +- model_server/poetry.lock | 422 ++++++++++-------- model_server/pyproject.toml | 2 +- 15 files changed, 422 insertions(+), 316 deletions(-) diff --git a/.github/workflows/e2e_archgw.yml b/.github/workflows/e2e_archgw.yml index 91bd1e2d..6fdc0820 100644 --- a/.github/workflows/e2e_archgw.yml +++ b/.github/workflows/e2e_archgw.yml @@ -30,7 +30,7 @@ jobs: - name: build arch docker image run: | - cd ../../ && docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.13 -t katanemo/archgw:latest + cd ../../ && docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.14 -t katanemo/archgw:latest - name: start archgw env: diff --git a/.github/workflows/e2e_test_currency_convert.yml b/.github/workflows/e2e_test_currency_convert.yml index b0377572..9955a5d9 100644 --- a/.github/workflows/e2e_test_currency_convert.yml +++ b/.github/workflows/e2e_test_currency_convert.yml @@ -24,7 +24,7 @@ jobs: - name: build arch docker image run: | - docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.13 + docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.14 - name: install poetry run: | diff --git a/.github/workflows/e2e_test_preference_based_routing.yml b/.github/workflows/e2e_test_preference_based_routing.yml index 4f46dfd7..286441d4 100644 --- a/.github/workflows/e2e_test_preference_based_routing.yml +++ b/.github/workflows/e2e_test_preference_based_routing.yml @@ -24,7 +24,7 @@ jobs: - name: build arch docker image run: | - docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.13 + docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.14 - name: install poetry run: | diff --git a/.github/workflows/validate_arch_config.yml b/.github/workflows/validate_arch_config.yml index 24fa449e..c192eb4d 100644 --- a/.github/workflows/validate_arch_config.yml +++ b/.github/workflows/validate_arch_config.yml @@ -24,7 +24,7 @@ jobs: - name: build arch docker image run: | - docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.13 + docker build -f arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.14 - name: validate arch config run: | diff --git a/README.md b/README.md index a728fc78..80a54b12 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Arch's CLI allows you to manage and interact with the Arch gateway efficiently. ```console $ python3.12 -m venv venv $ source venv/bin/activate # On Windows, use: venv\Scripts\activate -$ pip install archgw==0.3.13 +$ pip install archgw==0.3.14 ``` ### Use Arch as a LLM Router @@ -272,7 +272,7 @@ endpoints: ```sh $ archgw up arch_config.yaml -2024-12-05 16:56:27,979 - cli.main - INFO - Starting archgw cli version: 0.3.13 +2024-12-05 16:56:27,979 - cli.main - INFO - Starting archgw cli version: 0.3.14 2024-12-05 16:56:28,485 - cli.utils - INFO - Schema validation successful! 2024-12-05 16:56:28,485 - cli.main - INFO - Starting arch model server and arch gateway 2024-12-05 16:56:51,647 - cli.core - INFO - Container is healthy! diff --git a/arch/tools/README.md b/arch/tools/README.md index b6d5124e..573633a3 100644 --- a/arch/tools/README.md +++ b/arch/tools/README.md @@ -19,7 +19,7 @@ source venv/bin/activate ### Step 3: Run the build script ```bash -pip install archgw==0.3.13 +pip install archgw==0.3.14 ``` ## Uninstall Instructions: archgw CLI diff --git a/arch/tools/cli/consts.py b/arch/tools/cli/consts.py index 88659953..e00230fd 100644 --- a/arch/tools/cli/consts.py +++ b/arch/tools/cli/consts.py @@ -10,4 +10,4 @@ SERVICE_NAME_MODEL_SERVER = "model_server" SERVICE_ALL = "all" MODEL_SERVER_LOG_FILE = "~/archgw_logs/modelserver.log" ARCHGW_DOCKER_NAME = "archgw" -ARCHGW_DOCKER_IMAGE = os.getenv("ARCHGW_DOCKER_IMAGE", "katanemo/archgw:0.3.13") +ARCHGW_DOCKER_IMAGE = os.getenv("ARCHGW_DOCKER_IMAGE", "katanemo/archgw:0.3.14") diff --git a/arch/tools/poetry.lock b/arch/tools/poetry.lock index 01d0dbdc..fa35c631 100644 --- a/arch/tools/poetry.lock +++ b/arch/tools/poetry.lock @@ -2,7 +2,7 @@ [[package]] name = "archgw_modelserver" -version = "0.3.13" +version = "0.3.14" description = "A model server for serving models" optional = false python-versions = "*" @@ -139,72 +139,100 @@ referencing = ">=0.31.0" [[package]] name = "markupsafe" -version = "3.0.2" +version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"}, + {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"}, + {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"}, + {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"}, + {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"}, + {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"}, + {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, + {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, ] [[package]] @@ -272,64 +300,84 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests [[package]] name = "pyyaml" -version = "6.0.2" +version = "6.0.3" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, + {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6"}, + {file = "PyYAML-6.0.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369"}, + {file = "PyYAML-6.0.3-cp38-cp38-win32.whl", hash = "sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295"}, + {file = "PyYAML-6.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69"}, + {file = "pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e"}, + {file = "pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4"}, + {file = "pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b"}, + {file = "pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea"}, + {file = "pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be"}, + {file = "pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7"}, + {file = "pyyaml-6.0.3-cp39-cp39-win32.whl", hash = "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0"}, + {file = "pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007"}, + {file = "pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"}, ] [[package]] @@ -587,4 +635,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "9b8ccf6f43b7bdd14d8e0bb20decbb4dca099737c54cc93999b78d58956dd9ab" +content-hash = "18a3144509286d68efc9711706943ace163d0d35cd3e700511b77d8c2ac1b303" diff --git a/arch/tools/pyproject.toml b/arch/tools/pyproject.toml index e9264e09..ac568e79 100644 --- a/arch/tools/pyproject.toml +++ b/arch/tools/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "archgw" -version = "0.3.13" +version = "0.3.14" description = "Python-based CLI tool to manage Arch Gateway." authors = ["Katanemo Labs, Inc."] packages = [ @@ -10,7 +10,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.10" -archgw_modelserver = "^0.3.13" +archgw_modelserver = "^0.3.14" click = "^8.1.7" jinja2 = "^3.1.4" jsonschema = "^4.23.0" diff --git a/demos/use_cases/model_choice_with_test_harness/pyproject.toml b/demos/use_cases/model_choice_with_test_harness/pyproject.toml index ef78f5be..cbdb83d9 100644 --- a/demos/use_cases/model_choice_with_test_harness/pyproject.toml +++ b/demos/use_cases/model_choice_with_test_harness/pyproject.toml @@ -12,7 +12,7 @@ python = ">=3.10,<3.13.3" pydantic = "^2.0" openai = "^1.0" pyyaml = "^6.0" -archgw ="^0.3.13" +archgw ="^0.3.14" [tool.poetry.group.dev.dependencies] pytest = "^8.3" diff --git a/demos/use_cases/preference_based_routing/README.md b/demos/use_cases/preference_based_routing/README.md index 1665f757..ad26bf11 100644 --- a/demos/use_cases/preference_based_routing/README.md +++ b/demos/use_cases/preference_based_routing/README.md @@ -14,9 +14,9 @@ Make sure your machine is up to date with [latest version of archgw]([url](https 2. start archgw in the foreground ```bash (venv) $ archgw up --service archgw --foreground -2025-05-30 18:00:09,953 - cli.main - INFO - Starting archgw cli version: 0.3.13 +2025-05-30 18:00:09,953 - cli.main - INFO - Starting archgw cli version: 0.3.14 2025-05-30 18:00:09,953 - cli.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/use_cases/preference_based_routing/arch_config.yaml -2025-05-30 18:00:10,422 - cli.core - INFO - Starting arch gateway, image name: archgw, tag: katanemo/archgw:0.3.13 +2025-05-30 18:00:10,422 - cli.core - INFO - Starting arch gateway, image name: archgw, tag: katanemo/archgw:0.3.14 2025-05-30 18:00:10,662 - cli.core - INFO - archgw status: running, health status: starting 2025-05-30 18:00:11,712 - cli.core - INFO - archgw status: running, health status: starting 2025-05-30 18:00:12,761 - cli.core - INFO - archgw is running and is healthy! diff --git a/docs/source/conf.py b/docs/source/conf.py index be2bfb76..2c66c3ce 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -15,7 +15,7 @@ from sphinxawesome_theme.postprocess import Icons project = "Arch Docs" copyright = "2025, Katanemo Labs, Inc" author = "Katanemo Labs, Inc" -release = " v0.3.13" +release = " v0.3.14" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/source/get_started/quickstart.rst b/docs/source/get_started/quickstart.rst index 4c459b59..7d7cfa7c 100644 --- a/docs/source/get_started/quickstart.rst +++ b/docs/source/get_started/quickstart.rst @@ -25,7 +25,7 @@ Arch's CLI allows you to manage and interact with the Arch gateway efficiently. $ python -m venv venv $ source venv/bin/activate # On Windows, use: venv\Scripts\activate - $ pip install archgw==0.3.13 + $ pip install archgw==0.3.14 Build AI Agent with Arch Gateway diff --git a/model_server/poetry.lock b/model_server/poetry.lock index d54788ce..1f08df9f 100644 --- a/model_server/poetry.lock +++ b/model_server/poetry.lock @@ -45,13 +45,13 @@ files = [ [[package]] name = "anyio" -version = "4.10.0" +version = "4.11.0" description = "High-level concurrency and networking framework on top of asyncio or Trio" optional = false python-versions = ">=3.9" files = [ - {file = "anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1"}, - {file = "anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6"}, + {file = "anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc"}, + {file = "anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4"}, ] [package.dependencies] @@ -61,17 +61,17 @@ sniffio = ">=1.1" typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -trio = ["trio (>=0.26.1)"] +trio = ["trio (>=0.31.0)"] [[package]] name = "asgiref" -version = "3.9.1" +version = "3.9.2" description = "ASGI specs, helper code, and adapters" optional = false python-versions = ">=3.9" files = [ - {file = "asgiref-3.9.1-py3-none-any.whl", hash = "sha256:f3bba7092a48005b5f5bacd747d36ee4a5a61f4a269a6df590b43144355ebd2c"}, - {file = "asgiref-3.9.1.tar.gz", hash = "sha256:a5ab6582236218e5ef1648f242fd9f10626cfd4de8dc377db215d5d5098e3142"}, + {file = "asgiref-3.9.2-py3-none-any.whl", hash = "sha256:0b61526596219d70396548fc003635056856dba5d0d086f86476f10b33c75960"}, + {file = "asgiref-3.9.2.tar.gz", hash = "sha256:a0249afacb66688ef258ffe503528360443e2b9a8d8c4581b6ebefa58c841ef1"}, ] [package.dependencies] @@ -371,69 +371,79 @@ grpc = ["grpcio (>=1.44.0,<2.0.0)"] [[package]] name = "grpcio" -version = "1.75.0" +version = "1.75.1" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" files = [ - {file = "grpcio-1.75.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:1ec9cbaec18d9597c718b1ed452e61748ac0b36ba350d558f9ded1a94cc15ec7"}, - {file = "grpcio-1.75.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7ee5ee42bfae8238b66a275f9ebcf6f295724375f2fa6f3b52188008b6380faf"}, - {file = "grpcio-1.75.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9146e40378f551eed66c887332afc807fcce593c43c698e21266a4227d4e20d2"}, - {file = "grpcio-1.75.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0c40f368541945bb664857ecd7400acb901053a1abbcf9f7896361b2cfa66798"}, - {file = "grpcio-1.75.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:50a6e43a9adc6938e2a16c9d9f8a2da9dd557ddd9284b73b07bd03d0e098d1e9"}, - {file = "grpcio-1.75.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dce15597ca11913b78e1203c042d5723e3ea7f59e7095a1abd0621be0e05b895"}, - {file = "grpcio-1.75.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:851194eec47755101962da423f575ea223c9dd7f487828fe5693920e8745227e"}, - {file = "grpcio-1.75.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca123db0813eef80625a4242a0c37563cb30a3edddebe5ee65373854cf187215"}, - {file = "grpcio-1.75.0-cp310-cp310-win32.whl", hash = "sha256:222b0851e20c04900c63f60153503e918b08a5a0fad8198401c0b1be13c6815b"}, - {file = "grpcio-1.75.0-cp310-cp310-win_amd64.whl", hash = "sha256:bb58e38a50baed9b21492c4b3f3263462e4e37270b7ea152fc10124b4bd1c318"}, - {file = "grpcio-1.75.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:7f89d6d0cd43170a80ebb4605cad54c7d462d21dc054f47688912e8bf08164af"}, - {file = "grpcio-1.75.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:cb6c5b075c2d092f81138646a755f0dad94e4622300ebef089f94e6308155d82"}, - {file = "grpcio-1.75.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:494dcbade5606128cb9f530ce00331a90ecf5e7c5b243d373aebdb18e503c346"}, - {file = "grpcio-1.75.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:050760fd29c8508844a720f06c5827bb00de8f5e02f58587eb21a4444ad706e5"}, - {file = "grpcio-1.75.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:266fa6209b68a537b2728bb2552f970e7e78c77fe43c6e9cbbe1f476e9e5c35f"}, - {file = "grpcio-1.75.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:06d22e1d8645e37bc110f4c589cb22c283fd3de76523065f821d6e81de33f5d4"}, - {file = "grpcio-1.75.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9880c323595d851292785966cadb6c708100b34b163cab114e3933f5773cba2d"}, - {file = "grpcio-1.75.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:55a2d5ae79cd0f68783fb6ec95509be23746e3c239290b2ee69c69a38daa961a"}, - {file = "grpcio-1.75.0-cp311-cp311-win32.whl", hash = "sha256:352dbdf25495eef584c8de809db280582093bc3961d95a9d78f0dfb7274023a2"}, - {file = "grpcio-1.75.0-cp311-cp311-win_amd64.whl", hash = "sha256:678b649171f229fb16bda1a2473e820330aa3002500c4f9fd3a74b786578e90f"}, - {file = "grpcio-1.75.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fa35ccd9501ffdd82b861809cbfc4b5b13f4b4c5dc3434d2d9170b9ed38a9054"}, - {file = "grpcio-1.75.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:0fcb77f2d718c1e58cc04ef6d3b51e0fa3b26cf926446e86c7eba105727b6cd4"}, - {file = "grpcio-1.75.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36764a4ad9dc1eb891042fab51e8cdf7cc014ad82cee807c10796fb708455041"}, - {file = "grpcio-1.75.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:725e67c010f63ef17fc052b261004942763c0b18dcd84841e6578ddacf1f9d10"}, - {file = "grpcio-1.75.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91fbfc43f605c5ee015c9056d580a70dd35df78a7bad97e05426795ceacdb59f"}, - {file = "grpcio-1.75.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a9337ac4ce61c388e02019d27fa837496c4b7837cbbcec71b05934337e51531"}, - {file = "grpcio-1.75.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ee16e232e3d0974750ab5f4da0ab92b59d6473872690b5e40dcec9a22927f22e"}, - {file = "grpcio-1.75.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:55dfb9122973cc69520b23d39867726722cafb32e541435707dc10249a1bdbc6"}, - {file = "grpcio-1.75.0-cp312-cp312-win32.whl", hash = "sha256:fb64dd62face3d687a7b56cd881e2ea39417af80f75e8b36f0f81dfd93071651"}, - {file = "grpcio-1.75.0-cp312-cp312-win_amd64.whl", hash = "sha256:6b365f37a9c9543a9e91c6b4103d68d38d5bcb9965b11d5092b3c157bd6a5ee7"}, - {file = "grpcio-1.75.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:1bb78d052948d8272c820bb928753f16a614bb2c42fbf56ad56636991b427518"}, - {file = "grpcio-1.75.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:9dc4a02796394dd04de0b9673cb79a78901b90bb16bf99ed8cb528c61ed9372e"}, - {file = "grpcio-1.75.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:437eeb16091d31498585d73b133b825dc80a8db43311e332c08facf820d36894"}, - {file = "grpcio-1.75.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c2c39984e846bd5da45c5f7bcea8fafbe47c98e1ff2b6f40e57921b0c23a52d0"}, - {file = "grpcio-1.75.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38d665f44b980acdbb2f0e1abf67605ba1899f4d2443908df9ec8a6f26d2ed88"}, - {file = "grpcio-1.75.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2e8e752ab5cc0a9c5b949808c000ca7586223be4f877b729f034b912364c3964"}, - {file = "grpcio-1.75.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3a6788b30aa8e6f207c417874effe3f79c2aa154e91e78e477c4825e8b431ce0"}, - {file = "grpcio-1.75.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc33e67cab6141c54e75d85acd5dec616c5095a957ff997b4330a6395aa9b51"}, - {file = "grpcio-1.75.0-cp313-cp313-win32.whl", hash = "sha256:c8cfc780b7a15e06253aae5f228e1e84c0d3c4daa90faf5bc26b751174da4bf9"}, - {file = "grpcio-1.75.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c91d5b16eff3cbbe76b7a1eaaf3d91e7a954501e9d4f915554f87c470475c3d"}, - {file = "grpcio-1.75.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:0b85f4ebe6b56d2a512201bb0e5f192c273850d349b0a74ac889ab5d38959d16"}, - {file = "grpcio-1.75.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:68c95b1c1e3bf96ceadf98226e9dfe2bc92155ce352fa0ee32a1603040e61856"}, - {file = "grpcio-1.75.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:153c5a7655022c3626ad70be3d4c2974cb0967f3670ee49ece8b45b7a139665f"}, - {file = "grpcio-1.75.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:53067c590ac3638ad0c04272f2a5e7e32a99fec8824c31b73bc3ef93160511fa"}, - {file = "grpcio-1.75.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:78dcc025a144319b66df6d088bd0eda69e1719eb6ac6127884a36188f336df19"}, - {file = "grpcio-1.75.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1ec2937fd92b5b4598cbe65f7e57d66039f82b9e2b7f7a5f9149374057dde77d"}, - {file = "grpcio-1.75.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:597340a41ad4b619aaa5c9b94f7e6ba4067885386342ab0af039eda945c255cd"}, - {file = "grpcio-1.75.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0aa795198b28807d28570c0a5f07bb04d5facca7d3f27affa6ae247bbd7f312a"}, - {file = "grpcio-1.75.0-cp39-cp39-win32.whl", hash = "sha256:585147859ff4603798e92605db28f4a97c821c69908e7754c44771c27b239bbd"}, - {file = "grpcio-1.75.0-cp39-cp39-win_amd64.whl", hash = "sha256:eafbe3563f9cb378370a3fa87ef4870539cf158124721f3abee9f11cd8162460"}, - {file = "grpcio-1.75.0.tar.gz", hash = "sha256:b989e8b09489478c2d19fecc744a298930f40d8b27c3638afbfe84d22f36ce4e"}, + {file = "grpcio-1.75.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:1712b5890b22547dd29f3215c5788d8fc759ce6dd0b85a6ba6e2731f2d04c088"}, + {file = "grpcio-1.75.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8d04e101bba4b55cea9954e4aa71c24153ba6182481b487ff376da28d4ba46cf"}, + {file = "grpcio-1.75.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:683cfc70be0c1383449097cba637317e4737a357cfc185d887fd984206380403"}, + {file = "grpcio-1.75.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:491444c081a54dcd5e6ada57314321ae526377f498d4aa09d975c3241c5b9e1c"}, + {file = "grpcio-1.75.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ce08d4e112d0d38487c2b631ec8723deac9bc404e9c7b1011426af50a79999e4"}, + {file = "grpcio-1.75.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5a2acda37fc926ccc4547977ac3e56b1df48fe200de968e8c8421f6e3093df6c"}, + {file = "grpcio-1.75.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:745c5fe6bf05df6a04bf2d11552c7d867a2690759e7ab6b05c318a772739bd75"}, + {file = "grpcio-1.75.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:259526a7159d39e2db40d566fe3e8f8e034d0fb2db5bf9c00e09aace655a4c2b"}, + {file = "grpcio-1.75.1-cp310-cp310-win32.whl", hash = "sha256:f4b29b9aabe33fed5df0a85e5f13b09ff25e2c05bd5946d25270a8bd5682dac9"}, + {file = "grpcio-1.75.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf2e760978dcce7ff7d465cbc7e276c3157eedc4c27aa6de7b594c7a295d3d61"}, + {file = "grpcio-1.75.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:573855ca2e58e35032aff30bfbd1ee103fbcf4472e4b28d4010757700918e326"}, + {file = "grpcio-1.75.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:6a4996a2c8accc37976dc142d5991adf60733e223e5c9a2219e157dc6a8fd3a2"}, + {file = "grpcio-1.75.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b1ea1bbe77ecbc1be00af2769f4ae4a88ce93be57a4f3eebd91087898ed749f9"}, + {file = "grpcio-1.75.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e5b425aee54cc5e3e3c58f00731e8a33f5567965d478d516d35ef99fd648ab68"}, + {file = "grpcio-1.75.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0049a7bf547dafaeeb1db17079ce79596c298bfe308fc084d023c8907a845b9a"}, + {file = "grpcio-1.75.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b8ea230c7f77c0a1a3208a04a1eda164633fb0767b4cefd65a01079b65e5b1f"}, + {file = "grpcio-1.75.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:36990d629c3c9fb41e546414e5af52d0a7af37ce7113d9682c46d7e2919e4cca"}, + {file = "grpcio-1.75.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b10ad908118d38c2453ade7ff790e5bce36580c3742919007a2a78e3a1e521ca"}, + {file = "grpcio-1.75.1-cp311-cp311-win32.whl", hash = "sha256:d6be2b5ee7bea656c954dcf6aa8093c6f0e6a3ef9945c99d99fcbfc88c5c0bfe"}, + {file = "grpcio-1.75.1-cp311-cp311-win_amd64.whl", hash = "sha256:61c692fb05956b17dd6d1ab480f7f10ad0536dba3bc8fd4e3c7263dc244ed772"}, + {file = "grpcio-1.75.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:7b888b33cd14085d86176b1628ad2fcbff94cfbbe7809465097aa0132e58b018"}, + {file = "grpcio-1.75.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8775036efe4ad2085975531d221535329f5dac99b6c2a854a995456098f99546"}, + {file = "grpcio-1.75.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb658f703468d7fbb5dcc4037c65391b7dc34f808ac46ed9136c24fc5eeb041d"}, + {file = "grpcio-1.75.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4b7177a1cdb3c51b02b0c0a256b0a72fdab719600a693e0e9037949efffb200b"}, + {file = "grpcio-1.75.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4fa6ccc3ec2e68a04f7b883d354d7fea22a34c44ce535a2f0c0049cf626ddf"}, + {file = "grpcio-1.75.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3d86880ecaeb5b2f0a8afa63824de93adb8ebe4e49d0e51442532f4e08add7d6"}, + {file = "grpcio-1.75.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a8041d2f9e8a742aeae96f4b047ee44e73619f4f9d24565e84d5446c623673b6"}, + {file = "grpcio-1.75.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3652516048bf4c314ce12be37423c79829f46efffb390ad64149a10c6071e8de"}, + {file = "grpcio-1.75.1-cp312-cp312-win32.whl", hash = "sha256:44b62345d8403975513af88da2f3d5cc76f73ca538ba46596f92a127c2aea945"}, + {file = "grpcio-1.75.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1e191c5c465fa777d4cafbaacf0c01e0d5278022082c0abbd2ee1d6454ed94d"}, + {file = "grpcio-1.75.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:3bed22e750d91d53d9e31e0af35a7b0b51367e974e14a4ff229db5b207647884"}, + {file = "grpcio-1.75.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5b8f381eadcd6ecaa143a21e9e80a26424c76a0a9b3d546febe6648f3a36a5ac"}, + {file = "grpcio-1.75.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5bf4001d3293e3414d0cf99ff9b1139106e57c3a66dfff0c5f60b2a6286ec133"}, + {file = "grpcio-1.75.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f82ff474103e26351dacfe8d50214e7c9322960d8d07ba7fa1d05ff981c8b2d"}, + {file = "grpcio-1.75.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ee119f4f88d9f75414217823d21d75bfe0e6ed40135b0cbbfc6376bc9f7757d"}, + {file = "grpcio-1.75.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:664eecc3abe6d916fa6cf8dd6b778e62fb264a70f3430a3180995bf2da935446"}, + {file = "grpcio-1.75.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c32193fa08b2fbebf08fe08e84f8a0aad32d87c3ad42999c65e9449871b1c66e"}, + {file = "grpcio-1.75.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5cebe13088b9254f6e615bcf1da9131d46cfa4e88039454aca9cb65f639bd3bc"}, + {file = "grpcio-1.75.1-cp313-cp313-win32.whl", hash = "sha256:4b4c678e7ed50f8ae8b8dbad15a865ee73ce12668b6aaf411bf3258b5bc3f970"}, + {file = "grpcio-1.75.1-cp313-cp313-win_amd64.whl", hash = "sha256:5573f51e3f296a1bcf71e7a690c092845fb223072120f4bdb7a5b48e111def66"}, + {file = "grpcio-1.75.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:c05da79068dd96723793bffc8d0e64c45f316248417515f28d22204d9dae51c7"}, + {file = "grpcio-1.75.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06373a94fd16ec287116a825161dca179a0402d0c60674ceeec8c9fba344fe66"}, + {file = "grpcio-1.75.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4484f4b7287bdaa7a5b3980f3c7224c3c622669405d20f69549f5fb956ad0421"}, + {file = "grpcio-1.75.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2720c239c1180eee69f7883c1d4c83fc1a495a2535b5fa322887c70bf02b16e8"}, + {file = "grpcio-1.75.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:07a554fa31c668cf0e7a188678ceeca3cb8fead29bbe455352e712ec33ca701c"}, + {file = "grpcio-1.75.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3e71a2105210366bfc398eef7f57a664df99194f3520edb88b9c3a7e46ee0d64"}, + {file = "grpcio-1.75.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8679aa8a5b67976776d3c6b0521e99d1c34db8a312a12bcfd78a7085cb9b604e"}, + {file = "grpcio-1.75.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aad1c774f4ebf0696a7f148a56d39a3432550612597331792528895258966dc0"}, + {file = "grpcio-1.75.1-cp314-cp314-win32.whl", hash = "sha256:62ce42d9994446b307649cb2a23335fa8e927f7ab2cbf5fcb844d6acb4d85f9c"}, + {file = "grpcio-1.75.1-cp314-cp314-win_amd64.whl", hash = "sha256:f86e92275710bea3000cb79feca1762dc0ad3b27830dd1a74e82ab321d4ee464"}, + {file = "grpcio-1.75.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:c09fba33327c3ac11b5c33dbdd8218eef8990d78f83b1656d628831812a8c0fb"}, + {file = "grpcio-1.75.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:7e21400b037be29545704889e72e586c238e346dcb2d08d8a7288d16c883a9ec"}, + {file = "grpcio-1.75.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c12121e509b9f8b0914d10054d24120237d19e870b1cd82acbb8a9b9ddd198a3"}, + {file = "grpcio-1.75.1-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:73577a93e692b3474b1bfe84285d098de36705dbd838bb4d6a056d326e4dc880"}, + {file = "grpcio-1.75.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e19e7dfa0d7ca7dea22be464339e18ac608fd75d88c56770c646cdabe54bc724"}, + {file = "grpcio-1.75.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4e1c28f51c1cf67eccdfc1065e8e866c9ed622f09773ca60947089c117f848a1"}, + {file = "grpcio-1.75.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:030a6164bc2ca726052778c0cf8e3249617a34e368354f9e6107c27ad4af8c28"}, + {file = "grpcio-1.75.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:67697efef5a98d46d5db7b1720fa4043536f8b8e5072a5d61cfca762f287e939"}, + {file = "grpcio-1.75.1-cp39-cp39-win32.whl", hash = "sha256:52015cf73eb5d76f6404e0ce0505a69b51fd1f35810b3a01233b34b10baafb41"}, + {file = "grpcio-1.75.1-cp39-cp39-win_amd64.whl", hash = "sha256:9fe51e4a1f896ea84ac750900eae34d9e9b896b5b1e4a30b02dc31ad29f36383"}, + {file = "grpcio-1.75.1.tar.gz", hash = "sha256:3e81d89ece99b9ace23a6916880baca613c03a799925afb2857887efa8b1b3d2"}, ] [package.dependencies] typing-extensions = ">=4.12,<5.0" [package.extras] -protobuf = ["grpcio-tools (>=1.75.0)"] +protobuf = ["grpcio-tools (>=1.75.1)"] [[package]] name = "h11" @@ -514,13 +524,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "huggingface-hub" -version = "0.35.0" +version = "0.35.3" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.8.0" files = [ - {file = "huggingface_hub-0.35.0-py3-none-any.whl", hash = "sha256:f2e2f693bca9a26530b1c0b9bcd4c1495644dad698e6a0060f90e22e772c31e9"}, - {file = "huggingface_hub-0.35.0.tar.gz", hash = "sha256:ccadd2a78eef75effff184ad89401413629fabc52cefd76f6bbacb9b1c0676ac"}, + {file = "huggingface_hub-0.35.3-py3-none-any.whl", hash = "sha256:0e3a01829c19d86d03793e4577816fe3bdfc1602ac62c7fb220d593d351224ba"}, + {file = "huggingface_hub-0.35.3.tar.gz", hash = "sha256:350932eaa5cc6a4747efae85126ee220e4ef1b54e29d31c3b45c5612ddf0b32a"}, ] [package.dependencies] @@ -704,72 +714,100 @@ files = [ [[package]] name = "markupsafe" -version = "3.0.2" +version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"}, + {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"}, + {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"}, + {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"}, + {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"}, + {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"}, + {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, + {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, ] [[package]] @@ -1041,13 +1079,13 @@ files = [ [[package]] name = "openai" -version = "1.108.1" +version = "1.109.1" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" files = [ - {file = "openai-1.108.1-py3-none-any.whl", hash = "sha256:952fc027e300b2ac23be92b064eac136a2bc58274cec16f5d2906c361340d59b"}, - {file = "openai-1.108.1.tar.gz", hash = "sha256:6648468c1aec4eacfa554001e933a9fa075f57bacfc27588c2e34456cee9fef9"}, + {file = "openai-1.109.1-py3-none-any.whl", hash = "sha256:6bcaf57086cf59159b8e27447e4e7dd019db5d29a438072fbd49c290c7e65315"}, + {file = "openai-1.109.1.tar.gz", hash = "sha256:d173ed8dbca665892a6db099b4a2dfac624f94d20a93f46eb0b56aae940ed869"}, ] [package.dependencies] @@ -1591,64 +1629,84 @@ files = [ [[package]] name = "pyyaml" -version = "6.0.2" +version = "6.0.3" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, + {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6"}, + {file = "PyYAML-6.0.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369"}, + {file = "PyYAML-6.0.3-cp38-cp38-win32.whl", hash = "sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295"}, + {file = "PyYAML-6.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69"}, + {file = "pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e"}, + {file = "pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4"}, + {file = "pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b"}, + {file = "pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea"}, + {file = "pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be"}, + {file = "pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7"}, + {file = "pyyaml-6.0.3-cp39-cp39-win32.whl", hash = "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0"}, + {file = "pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007"}, + {file = "pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"}, ] [[package]] diff --git a/model_server/pyproject.toml b/model_server/pyproject.toml index 5d219b50..3c0373ec 100644 --- a/model_server/pyproject.toml +++ b/model_server/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "archgw_modelserver" -version = "0.3.13" +version = "0.3.14" description = "A model server for serving models" authors = ["Katanemo Labs, Inc "] license = "Apache 2.0"