code-puppy 0.0.184__tar.gz → 0.0.185__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.
- {code_puppy-0.0.184 → code_puppy-0.0.185}/PKG-INFO +1 -1
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/model_factory.py +40 -2
- code_puppy-0.0.185/code_puppy/models.json +71 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/pyproject.toml +1 -1
- code_puppy-0.0.184/code_puppy/models.json +0 -128
- {code_puppy-0.0.184 → code_puppy-0.0.185}/.gitignore +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/LICENSE +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/README.md +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_c_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_code_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_cpp_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_golang_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_javascript_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_python_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_qa_expert.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_security_auditor.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/agent_typescript_reviewer.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/add_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/test_command.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/motd.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/config.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/main.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/spinner/console_spinner.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/spinner/spinner_base.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/messaging/spinner/textual_spinner.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/camoufox_manager.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/browser/vqa_agent.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/app.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/chat_view.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/command_history_modal.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/copy_button.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/custom_widgets.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/human_input_modal.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/input_area.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/sidebar.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/status_bar.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/messages.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/models/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/models/chat_message.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/models/command_history.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/models/enums.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/screens/__init__.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/screens/help.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/screens/mcp_install_wizard.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/screens/settings.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/screens/tools.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui_state.py +0 -0
- {code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/version_checker.py +0 -0
@@ -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
|
+
}
|
@@ -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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/load_context_completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/model_picker_completion.py
RENAMED
File without changes
|
File without changes
|
{code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/command_line/prompt_toolkit_completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.184 → code_puppy-0.0.185}/code_puppy/tui/components/command_history_modal.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|