patchpal 0.21.7__tar.gz → 0.21.8__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.21.7/patchpal.egg-info → patchpal-0.21.8}/PKG-INFO +2 -2
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/__init__.py +1 -1
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/agent/function_calling.py +24 -6
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/sandbox.py +10 -2
- {patchpal-0.21.7 → patchpal-0.21.8/patchpal.egg-info}/PKG-INFO +2 -2
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal.egg-info/requires.txt +1 -1
- {patchpal-0.21.7 → patchpal-0.21.8}/pyproject.toml +1 -1
- {patchpal-0.21.7 → patchpal-0.21.8}/LICENSE +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/MANIFEST.in +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/README.md +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/agent/__init__.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/agent/react.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/__init__.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/autopilot.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/interactive.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/mcp.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/cli/streaming.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/config.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/context.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/permissions.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/prompts/react_prompt.md +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/prompts/system_prompt.md +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/skills.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/__init__.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/code_analysis.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/common.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/definitions.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/file_reading.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/file_writing.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/find_tool.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/grep_tool.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/image_handler.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/mcp.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/repo_map.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/shell_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/todo_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/tool_schema.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/user_interaction.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal/tools/web_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal.egg-info/SOURCES.txt +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal.egg-info/dependency_links.txt +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal.egg-info/entry_points.txt +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/patchpal.egg-info/top_level.txt +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/setup.cfg +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_agent.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_cli.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_config_dynamic.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_context.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_custom_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_enabled_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_find_tool.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_guardrails.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_image_blocking.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_maximum_security.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_mcp_config.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_memory.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_operational_safety.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_optional_tools.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_permissions.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_react.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_reasoning_content.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_repo_map.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_simplified_prompt.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_skills.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_streaming.py +0 -0
- {patchpal-0.21.7 → patchpal-0.21.8}/tests/test_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: patchpal
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.8
|
|
4
4
|
Summary: An agentic coding and automation assistant, supporting both local and cloud LLMs
|
|
5
5
|
Author: PatchPal Contributors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -19,7 +19,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
19
19
|
Requires-Python: >=3.10
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: litellm
|
|
22
|
+
Requires-Dist: litellm<=1.82.6
|
|
23
23
|
Requires-Dist: requests>=2.31.0
|
|
24
24
|
Requires-Dist: beautifulsoup4>=4.12.0
|
|
25
25
|
Requires-Dist: ddgs>=1.0.0
|
|
@@ -67,13 +67,21 @@ def _setup_bedrock_env():
|
|
|
67
67
|
"""Set up Bedrock-specific environment variables for LiteLLM.
|
|
68
68
|
|
|
69
69
|
Configures custom region and endpoint URL for AWS Bedrock (including GovCloud and VPC endpoints).
|
|
70
|
-
Maps
|
|
70
|
+
Maps AWS SDK standard variables and PatchPal-specific variables to LiteLLM's expected format.
|
|
71
|
+
|
|
72
|
+
Region precedence:
|
|
73
|
+
1. AWS_BEDROCK_REGION (PatchPal-specific)
|
|
74
|
+
2. AWS_REGION (AWS SDK standard)
|
|
75
|
+
3. AWS_DEFAULT_REGION (AWS SDK standard)
|
|
76
|
+
4. AWS_REGION_NAME (LiteLLM-specific)
|
|
77
|
+
|
|
78
|
+
Endpoint precedence:
|
|
79
|
+
1. AWS_BEDROCK_ENDPOINT (PatchPal-specific)
|
|
80
|
+
2. AWS_ENDPOINT_URL_BEDROCK_RUNTIME (AWS SDK standard, boto3 1.28.0+)
|
|
81
|
+
3. AWS_ENDPOINT_URL (AWS SDK global, boto3 1.28.0+)
|
|
82
|
+
4. AWS_BEDROCK_RUNTIME_ENDPOINT (LiteLLM-specific)
|
|
71
83
|
"""
|
|
72
84
|
# Set custom region (e.g., us-gov-east-1 for GovCloud)
|
|
73
|
-
# LiteLLM checks these environment variables in order:
|
|
74
|
-
# 1. AWS_REGION_NAME (LiteLLM-specific)
|
|
75
|
-
# 2. AWS_REGION (standard AWS)
|
|
76
|
-
# 3. AWS_DEFAULT_REGION (standard AWS)
|
|
77
85
|
bedrock_region = (
|
|
78
86
|
os.getenv("AWS_BEDROCK_REGION")
|
|
79
87
|
or os.getenv("AWS_REGION")
|
|
@@ -90,7 +98,17 @@ def _setup_bedrock_env():
|
|
|
90
98
|
os.environ["AWS_REGION"] = bedrock_region
|
|
91
99
|
|
|
92
100
|
# Set custom endpoint URL (e.g., VPC endpoint or GovCloud endpoint)
|
|
93
|
-
|
|
101
|
+
# Check for custom endpoint in order of precedence:
|
|
102
|
+
# 1. AWS_BEDROCK_ENDPOINT (PatchPal-specific)
|
|
103
|
+
# 2. AWS_ENDPOINT_URL_BEDROCK_RUNTIME (AWS SDK standard, boto3 1.28.0+)
|
|
104
|
+
# 3. AWS_ENDPOINT_URL (AWS SDK global endpoint, boto3 1.28.0+)
|
|
105
|
+
# 4. AWS_BEDROCK_RUNTIME_ENDPOINT (LiteLLM-specific)
|
|
106
|
+
bedrock_endpoint = (
|
|
107
|
+
os.getenv("AWS_BEDROCK_ENDPOINT")
|
|
108
|
+
or os.getenv("AWS_ENDPOINT_URL_BEDROCK_RUNTIME")
|
|
109
|
+
or os.getenv("AWS_ENDPOINT_URL")
|
|
110
|
+
or os.getenv("AWS_BEDROCK_RUNTIME_ENDPOINT")
|
|
111
|
+
)
|
|
94
112
|
if bedrock_endpoint and not os.getenv("AWS_BEDROCK_RUNTIME_ENDPOINT"):
|
|
95
113
|
os.environ["AWS_BEDROCK_RUNTIME_ENDPOINT"] = bedrock_endpoint
|
|
96
114
|
|
|
@@ -246,10 +246,10 @@ def build_container_args(sandbox_args, patchpal_args):
|
|
|
246
246
|
container_args.extend(["-v", f"{ssl_cert_dir}:{ssl_cert_dir}:ro"])
|
|
247
247
|
mounted_paths.add(ssl_cert_dir)
|
|
248
248
|
|
|
249
|
-
# Mount SSL_CERT_FILE and
|
|
249
|
+
# Mount SSL_CERT_FILE, REQUESTS_CA_BUNDLE, and CURL_CA_BUNDLE if set
|
|
250
250
|
# Map host cert files to /tmp inside container since parent dirs may not exist
|
|
251
251
|
cert_mapping = {} # Track host path -> container path mappings
|
|
252
|
-
for env_var in ["SSL_CERT_FILE", "REQUESTS_CA_BUNDLE"]:
|
|
252
|
+
for env_var in ["SSL_CERT_FILE", "REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE"]:
|
|
253
253
|
cert_path = os.environ.get(env_var)
|
|
254
254
|
if cert_path and os.path.isfile(cert_path):
|
|
255
255
|
if cert_path not in cert_mapping:
|
|
@@ -262,6 +262,14 @@ def build_container_args(sandbox_args, patchpal_args):
|
|
|
262
262
|
# Always set the environment variable to point to the container path
|
|
263
263
|
container_args.extend(["-e", f"{env_var}={cert_mapping[cert_path]}"])
|
|
264
264
|
|
|
265
|
+
# Mount SSL_CERT_DIR if set and is a directory
|
|
266
|
+
ssl_cert_dir_env = os.environ.get("SSL_CERT_DIR")
|
|
267
|
+
if ssl_cert_dir_env and os.path.isdir(ssl_cert_dir_env):
|
|
268
|
+
container_cert_dir = "/tmp/ssl-cert-dir"
|
|
269
|
+
container_args.extend(["-v", f"{ssl_cert_dir_env}:{container_cert_dir}:ro"])
|
|
270
|
+
container_args.extend(["-e", f"SSL_CERT_DIR={container_cert_dir}"])
|
|
271
|
+
mounted_paths.add(ssl_cert_dir_env)
|
|
272
|
+
|
|
265
273
|
# Add image
|
|
266
274
|
container_args.append(sandbox_args.image)
|
|
267
275
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: patchpal
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.8
|
|
4
4
|
Summary: An agentic coding and automation assistant, supporting both local and cloud LLMs
|
|
5
5
|
Author: PatchPal Contributors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -19,7 +19,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
19
19
|
Requires-Python: >=3.10
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: litellm
|
|
22
|
+
Requires-Dist: litellm<=1.82.6
|
|
23
23
|
Requires-Dist: requests>=2.31.0
|
|
24
24
|
Requires-Dist: beautifulsoup4>=4.12.0
|
|
25
25
|
Requires-Dist: ddgs>=1.0.0
|
|
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
|