patchpal 0.22.4__tar.gz → 0.22.5__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.
- {patchpal-0.22.4/patchpal.egg-info → patchpal-0.22.5}/PKG-INFO +1 -1
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/__init__.py +1 -1
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/agent/function_calling.py +2 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/context.py +4 -1
- {patchpal-0.22.4 → patchpal-0.22.5/patchpal.egg-info}/PKG-INFO +1 -1
- {patchpal-0.22.4 → patchpal-0.22.5}/LICENSE +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/MANIFEST.in +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/README.md +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/agent/__init__.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/agent/react.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/__init__.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/autopilot.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/interactive.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/mcp.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/sandbox.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/cli/streaming.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/config.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/permissions.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/prompts/react_prompt.md +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/prompts/system_prompt.md +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/skills.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/__init__.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/audit.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/code_analysis.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/common.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/definitions.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/file_reading.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/file_writing.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/find_tool.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/grep_tool.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/image_handler.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/mcp.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/repo_map.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/shell_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/todo_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/tool_schema.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/user_interaction.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal/tools/web_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal.egg-info/SOURCES.txt +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal.egg-info/dependency_links.txt +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal.egg-info/entry_points.txt +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal.egg-info/requires.txt +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/patchpal.egg-info/top_level.txt +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/pyproject.toml +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/setup.cfg +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_agent.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_cli.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_config_dynamic.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_context.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_custom_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_enabled_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_find_tool.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_guardrails.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_image_blocking.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_maximum_security.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_mcp_config.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_memory.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_operational_safety.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_optional_tools.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_permissions.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_react.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_reasoning_content.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_repo_map.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_simplified_prompt.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_skills.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_streaming.py +0 -0
- {patchpal-0.22.4 → patchpal-0.22.5}/tests/test_tools.py +0 -0
|
@@ -741,6 +741,7 @@ It's currently empty (just the template). The file is automatically loaded at se
|
|
|
741
741
|
response = litellm.completion(
|
|
742
742
|
model=self.model_id,
|
|
743
743
|
messages=messages,
|
|
744
|
+
max_tokens=32000, # Explicit output token limit for predictable context usage
|
|
744
745
|
timeout=LLM_TIMEOUT,
|
|
745
746
|
**self.litellm_kwargs,
|
|
746
747
|
)
|
|
@@ -1078,6 +1079,7 @@ It's currently empty (just the template). The file is automatically loaded at se
|
|
|
1078
1079
|
"messages": messages,
|
|
1079
1080
|
"tools": tools,
|
|
1080
1081
|
"tool_choice": "auto",
|
|
1082
|
+
"max_tokens": 32000, # Explicit output token limit for predictable context usage
|
|
1081
1083
|
"timeout": LLM_TIMEOUT,
|
|
1082
1084
|
"stream": stream,
|
|
1083
1085
|
**self.litellm_kwargs,
|
|
@@ -257,7 +257,10 @@ Be comprehensive but concise. The goal is to continue work seamlessly without lo
|
|
|
257
257
|
self.system_prompt = system_prompt
|
|
258
258
|
self.estimator = TokenEstimator(model_id)
|
|
259
259
|
self.context_limit = self._get_context_limit()
|
|
260
|
-
|
|
260
|
+
# Reserve 16% of context for output (min 4K, max 32K)
|
|
261
|
+
# This ensures older models like GPT-4 (8K) get 1.28K reserve
|
|
262
|
+
# while modern models get full 32K reserve
|
|
263
|
+
self.output_reserve = min(32_000, max(4_000, int(self.context_limit * 0.16)))
|
|
261
264
|
|
|
262
265
|
def _get_context_limit(self) -> int:
|
|
263
266
|
"""Get context limit for model.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|