code-puppy 0.0.184__tar.gz → 0.0.186__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. {code_puppy-0.0.184 → code_puppy-0.0.186}/PKG-INFO +1 -1
  2. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/model_factory.py +40 -2
  3. code_puppy-0.0.186/code_puppy/models.json +71 -0
  4. {code_puppy-0.0.184 → code_puppy-0.0.186}/pyproject.toml +1 -1
  5. code_puppy-0.0.184/code_puppy/models.json +0 -128
  6. {code_puppy-0.0.184 → code_puppy-0.0.186}/.gitignore +0 -0
  7. {code_puppy-0.0.184 → code_puppy-0.0.186}/LICENSE +0 -0
  8. {code_puppy-0.0.184 → code_puppy-0.0.186}/README.md +0 -0
  9. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/__init__.py +0 -0
  10. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/__main__.py +0 -0
  11. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/__init__.py +0 -0
  12. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_c_reviewer.py +0 -0
  13. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_code_puppy.py +0 -0
  14. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_code_reviewer.py +0 -0
  15. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_cpp_reviewer.py +0 -0
  16. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_creator_agent.py +0 -0
  17. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_golang_reviewer.py +0 -0
  18. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_javascript_reviewer.py +0 -0
  19. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_manager.py +0 -0
  20. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_python_reviewer.py +0 -0
  21. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_qa_expert.py +0 -0
  22. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_qa_kitten.py +0 -0
  23. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_security_auditor.py +0 -0
  24. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/agent_typescript_reviewer.py +0 -0
  25. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/base_agent.py +0 -0
  26. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/agents/json_agent.py +0 -0
  27. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/callbacks.py +0 -0
  28. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/__init__.py +0 -0
  29. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/command_handler.py +0 -0
  30. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/file_path_completion.py +0 -0
  31. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/load_context_completion.py +0 -0
  32. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/__init__.py +0 -0
  33. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/add_command.py +0 -0
  34. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/base.py +0 -0
  35. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/handler.py +0 -0
  36. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/help_command.py +0 -0
  37. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/install_command.py +0 -0
  38. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/list_command.py +0 -0
  39. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/logs_command.py +0 -0
  40. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/remove_command.py +0 -0
  41. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/restart_command.py +0 -0
  42. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/search_command.py +0 -0
  43. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/start_all_command.py +0 -0
  44. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/start_command.py +0 -0
  45. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/status_command.py +0 -0
  46. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
  47. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/stop_command.py +0 -0
  48. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/test_command.py +0 -0
  49. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/utils.py +0 -0
  50. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
  51. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/model_picker_completion.py +0 -0
  52. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/motd.py +0 -0
  53. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
  54. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/command_line/utils.py +0 -0
  55. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/config.py +0 -0
  56. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/http_utils.py +0 -0
  57. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/main.py +0 -0
  58. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/__init__.py +0 -0
  59. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/async_lifecycle.py +0 -0
  60. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/blocking_startup.py +0 -0
  61. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/captured_stdio_server.py +0 -0
  62. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/circuit_breaker.py +0 -0
  63. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/config_wizard.py +0 -0
  64. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/dashboard.py +0 -0
  65. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/error_isolation.py +0 -0
  66. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/examples/retry_example.py +0 -0
  67. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/health_monitor.py +0 -0
  68. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/managed_server.py +0 -0
  69. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/manager.py +0 -0
  70. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/registry.py +0 -0
  71. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/retry_manager.py +0 -0
  72. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/server_registry_catalog.py +0 -0
  73. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/status_tracker.py +0 -0
  74. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/mcp_/system_tools.py +0 -0
  75. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/__init__.py +0 -0
  76. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/message_queue.py +0 -0
  77. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/queue_console.py +0 -0
  78. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/renderers.py +0 -0
  79. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/spinner/__init__.py +0 -0
  80. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/spinner/console_spinner.py +0 -0
  81. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/spinner/spinner_base.py +0 -0
  82. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/messaging/spinner/textual_spinner.py +0 -0
  83. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/plugins/__init__.py +0 -0
  84. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/reopenable_async_client.py +0 -0
  85. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/round_robin_model.py +0 -0
  86. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/status_display.py +0 -0
  87. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/summarization_agent.py +0 -0
  88. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/__init__.py +0 -0
  89. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/agent_tools.py +0 -0
  90. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/__init__.py +0 -0
  91. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_control.py +0 -0
  92. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_interactions.py +0 -0
  93. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_locators.py +0 -0
  94. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_navigation.py +0 -0
  95. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_screenshot.py +0 -0
  96. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_scripts.py +0 -0
  97. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/browser_workflows.py +0 -0
  98. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/camoufox_manager.py +0 -0
  99. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/browser/vqa_agent.py +0 -0
  100. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/command_runner.py +0 -0
  101. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/common.py +0 -0
  102. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/file_modifications.py +0 -0
  103. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/file_operations.py +0 -0
  104. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tools/tools_content.py +0 -0
  105. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/__init__.py +0 -0
  106. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/app.py +0 -0
  107. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/__init__.py +0 -0
  108. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/chat_view.py +0 -0
  109. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/command_history_modal.py +0 -0
  110. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/copy_button.py +0 -0
  111. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/custom_widgets.py +0 -0
  112. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/human_input_modal.py +0 -0
  113. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/input_area.py +0 -0
  114. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/sidebar.py +0 -0
  115. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/components/status_bar.py +0 -0
  116. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/messages.py +0 -0
  117. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/models/__init__.py +0 -0
  118. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/models/chat_message.py +0 -0
  119. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/models/command_history.py +0 -0
  120. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/models/enums.py +0 -0
  121. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/screens/__init__.py +0 -0
  122. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/screens/help.py +0 -0
  123. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/screens/mcp_install_wizard.py +0 -0
  124. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/screens/settings.py +0 -0
  125. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui/screens/tools.py +0 -0
  126. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/tui_state.py +0 -0
  127. {code_puppy-0.0.184 → code_puppy-0.0.186}/code_puppy/version_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-puppy
3
- Version: 0.0.184
3
+ Version: 0.0.186
4
4
  Summary: Code generation agent
5
5
  Project-URL: repository, https://github.com/mpfaffenberger/code_puppy
6
6
  Project-URL: HomePage, https://github.com/mpfaffenberger/code_puppy
@@ -31,6 +31,12 @@ from .round_robin_model import RoundRobinModel
31
31
  # Example: "X-Api-Key": "$OPENAI_API_KEY" will use the value from os.environ.get("OPENAI_API_KEY")
32
32
 
33
33
 
34
+ class ZaiChatModel(OpenAIChatModel):
35
+ def _process_response(self, response):
36
+ response.object = 'chat.completion'
37
+ return super()._process_response(response)
38
+
39
+
34
40
  def get_custom_config(model_config):
35
41
  custom_config = model_config.get("custom_endpoint", {})
36
42
  if not custom_config:
@@ -51,8 +57,23 @@ def get_custom_config(model_config):
51
57
  f"Please set the environment variable: export {env_var_name}=your_value"
52
58
  )
53
59
  value = resolved_value
60
+ elif "$" in value:
61
+ tokens = value.split(" ")
62
+ resolved_values = []
63
+ for token in tokens:
64
+ if token.startswith("$"):
65
+ env_var = token[1:]
66
+ resolved_value = os.environ.get(env_var)
67
+ if resolved_value is None:
68
+ raise ValueError(
69
+ f"Environment variable '{env_var}' is required for custom endpoint headers but is not set. "
70
+ f"Please set the environment variable: export {env_var}=your_value"
71
+ )
72
+ resolved_values.append(resolved_value)
73
+ else:
74
+ resolved_values.append(token)
75
+ value = " ".join(resolved_values)
54
76
  headers[key] = value
55
-
56
77
  api_key = None
57
78
  if "api_key" in custom_config:
58
79
  if custom_config["api_key"].startswith("$"):
@@ -223,7 +244,24 @@ class ModelFactory:
223
244
  model = OpenAIChatModel(model_name=model_config["name"], provider=provider)
224
245
  setattr(model, "provider", provider)
225
246
  return model
226
-
247
+ elif model_type == "zai_coding":
248
+ zai_model = ZaiChatModel(
249
+ model_name=model_config["name"],
250
+ provider=OpenAIProvider(
251
+ api_key=os.getenv('ZAI_API_KEY'),
252
+ base_url='https://api.z.ai/api/coding/paas/v4'
253
+ )
254
+ )
255
+ return zai_model
256
+ elif model_type == "zai_api":
257
+ zai_model = ZaiChatModel(
258
+ model_name=model_config["name"],
259
+ provider=OpenAIProvider(
260
+ api_key=os.getenv('ZAI_API_KEY'),
261
+ base_url='https://api.z.ai/api/paas/v4/'
262
+ )
263
+ )
264
+ return zai_model
227
265
  elif model_type == "custom_gemini":
228
266
  url, headers, verify, api_key = get_custom_config(model_config)
229
267
  os.environ["GEMINI_API_KEY"] = api_key
@@ -0,0 +1,71 @@
1
+ {
2
+ "gpt-5": {
3
+ "type": "openai",
4
+ "name": "gpt-5",
5
+ "context_length": 400000
6
+ },
7
+ "Cerebras-Qwen3-Coder-480b": {
8
+ "type": "cerebras",
9
+ "name": "qwen-3-coder-480b",
10
+ "custom_endpoint": {
11
+ "url": "https://api.cerebras.ai/v1",
12
+ "api_key": "$CEREBRAS_API_KEY"
13
+ },
14
+ "context_length": 131072
15
+ },
16
+ "Cerebras-Qwen3-235b-a22b-instruct-2507": {
17
+ "type": "cerebras",
18
+ "name": "qwen-3-235b-a22b-instruct-2507",
19
+ "custom_endpoint": {
20
+ "url": "https://api.cerebras.ai/v1",
21
+ "api_key": "$CEREBRAS_API_KEY"
22
+ },
23
+ "context_length": 64000
24
+ },
25
+ "Cerebras-gpt-oss-120b": {
26
+ "type": "cerebras",
27
+ "name": "gpt-oss-120b",
28
+ "custom_endpoint": {
29
+ "url": "https://api.cerebras.ai/v1",
30
+ "api_key": "$CEREBRAS_API_KEY"
31
+ },
32
+ "context_length": 131072
33
+ },
34
+ "Cerebras-Qwen-3-32b": {
35
+ "type": "cerebras",
36
+ "name": "qwen-3-32b",
37
+ "custom_endpoint": {
38
+ "url": "https://api.cerebras.ai/v1",
39
+ "api_key": "$CEREBRAS_API_KEY"
40
+ },
41
+ "context_length": 65536
42
+ },
43
+ "claude-4-0-sonnet": {
44
+ "type": "anthropic",
45
+ "name": "claude-sonnet-4-20250514",
46
+ "context_length": 200000
47
+ },
48
+ "claude-4-5-sonnet": {
49
+ "type": "anthropic",
50
+ "name": "claude-sonnet-4-5-20250929",
51
+ "context_length": 200000
52
+ },
53
+ "glm-4.5-coding": {
54
+ "type": "zai_coding",
55
+ "name": "glm-4.5"
56
+ },
57
+ "glm-4.6-coding": {
58
+ "type": "zai_coding",
59
+ "name": "glm-4.6",
60
+ "context_length": 200000
61
+ },
62
+ "glm-4.5": {
63
+ "type": "zai_api",
64
+ "name": "glm-4.5"
65
+ },
66
+ "glm-4.6": {
67
+ "type": "zai_api",
68
+ "name": "glm-4.6",
69
+ "context_length": 200000
70
+ }
71
+ }
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy"
7
- version = "0.0.184"
7
+ version = "0.0.186"
8
8
  description = "Code generation agent"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,128 +0,0 @@
1
- {
2
- "gpt-5": {
3
- "type": "openai",
4
- "name": "gpt-5",
5
- "context_length": 400000
6
- },
7
- "Cerebras-Qwen3-Coder-480b": {
8
- "type": "cerebras",
9
- "name": "qwen-3-coder-480b",
10
- "custom_endpoint": {
11
- "url": "https://api.cerebras.ai/v1",
12
- "api_key": "$CEREBRAS_API_KEY"
13
- },
14
- "context_length": 131072
15
- },
16
- "Cerebras-Qwen3-235b-a22b-instruct-2507": {
17
- "type": "cerebras",
18
- "name": "qwen-3-235b-a22b-instruct-2507",
19
- "custom_endpoint": {
20
- "url": "https://api.cerebras.ai/v1",
21
- "api_key": "$CEREBRAS_API_KEY"
22
- },
23
- "context_length": 64000
24
- },
25
- "Cerebras-gpt-oss-120b": {
26
- "type": "cerebras",
27
- "name": "gpt-oss-120b",
28
- "custom_endpoint": {
29
- "url": "https://api.cerebras.ai/v1",
30
- "api_key": "$CEREBRAS_API_KEY"
31
- },
32
- "context_length": 131072
33
- },
34
- "Cerebras-Qwen-3-32b": {
35
- "type": "cerebras",
36
- "name": "qwen-3-32b",
37
- "custom_endpoint": {
38
- "url": "https://api.cerebras.ai/v1",
39
- "api_key": "$CEREBRAS_API_KEY"
40
- },
41
- "context_length": 65536
42
- },
43
- "claude-4-0-sonnet": {
44
- "type": "anthropic",
45
- "name": "claude-sonnet-4-20250514",
46
- "context_length": 200000
47
- },
48
- "o3": {
49
- "type": "openai",
50
- "name": "o3",
51
- "context_length": 200000
52
- },
53
- "grok-4": {
54
- "type": "custom_openai",
55
- "name": "grok-4",
56
- "custom_endpoint": {
57
- "url": "https://api.x.ai/v1",
58
- "api_key": "$XAI_API_KEY"
59
- },
60
- "context_length": 256000
61
- },
62
- "grok-code-fast-1": {
63
- "type": "custom_openai",
64
- "name": "grok-code-fast-1",
65
- "custom_endpoint": {
66
- "url": "https://api.x.ai/v1",
67
- "api_key": "$XAI_API_KEY"
68
- },
69
- "context_length": 256000
70
- },
71
- "gemini-2.5-flash-preview-05-20": {
72
- "type": "gemini",
73
- "name": "gemini-2.5-flash-preview-05-20",
74
- "context_length": 1048576
75
- },
76
- "gpt-4.1": {
77
- "type": "openai",
78
- "name": "gpt-4.1",
79
- "context_length": 1000000
80
- },
81
- "Qwen/Qwen3-235B-A22B-fp8-tput": {
82
- "type": "custom_openai",
83
- "name": "Qwen/Qwen3-235B-A22B-fp8-tput",
84
- "custom_endpoint": {
85
- "url": "https://api.together.xyz/v1",
86
- "api_key": "$TOGETHER_API_KEY"
87
- },
88
- "context_length": 64000
89
- },
90
- "azure-gpt-4.1": {
91
- "type": "azure_openai",
92
- "name": "gpt-4.1",
93
- "api_version": "2024-12-01-preview",
94
- "api_key": "$AZURE_OPENAI_API_KEY",
95
- "azure_endpoint": "$AZURE_OPENAI_ENDPOINT",
96
- "context_length": 128000
97
- },
98
- "gpt-4.1-mini": {
99
- "type": "openai",
100
- "name": "gpt-4.1-mini",
101
- "context_length": 128000
102
- },
103
- "gpt-4.1-nano": {
104
- "type": "openai",
105
- "name": "gpt-4.1-nano",
106
- "context_length": 128000
107
- },
108
- "gpt-4.1-custom": {
109
- "type": "custom_openai",
110
- "name": "gpt-4.1-custom",
111
- "custom_endpoint": {
112
- "url": "https://my.cute.endpoint:8080",
113
- "headers": {
114
- "X-Api-Key": "$OPENAI_API_KEY"
115
- },
116
- "ca_certs_path": "/path/to/cert.pem"
117
- },
118
- "context_length": 128000
119
- },
120
- "ollama-llama3.3": {
121
- "type": "custom_openai",
122
- "name": "llama3.3",
123
- "custom_endpoint": {
124
- "url": "http://localhost:11434/v1"
125
- },
126
- "context_length": 8192
127
- }
128
- }
File without changes
File without changes
File without changes