ErrorAI 1.8.0__tar.gz → 1.9.1__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 (25) hide show
  1. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/PKG-INFO +1 -1
  2. {errorai-1.8.0 → errorai-1.9.1}/PKG-INFO +1 -1
  3. {errorai-1.8.0 → errorai-1.9.1}/errorai/bootstrap.py +5 -0
  4. {errorai-1.8.0 → errorai-1.9.1}/errorai/config.py +9 -1
  5. {errorai-1.8.0 → errorai-1.9.1}/errorai/runtime.py +14 -3
  6. {errorai-1.8.0 → errorai-1.9.1}/pyproject.toml +1 -1
  7. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/SOURCES.txt +0 -0
  8. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/dependency_links.txt +0 -0
  9. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/entry_points.txt +0 -0
  10. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/requires.txt +0 -0
  11. {errorai-1.8.0 → errorai-1.9.1}/ErrorAI.egg-info/top_level.txt +0 -0
  12. {errorai-1.8.0 → errorai-1.9.1}/README.md +0 -0
  13. {errorai-1.8.0 → errorai-1.9.1}/errorai/__init__.py +0 -0
  14. {errorai-1.8.0 → errorai-1.9.1}/errorai/__main__.py +0 -0
  15. {errorai-1.8.0 → errorai-1.9.1}/errorai/cli.py +0 -0
  16. {errorai-1.8.0 → errorai-1.9.1}/errorai/compat.py +0 -0
  17. {errorai-1.8.0 → errorai-1.9.1}/errorai/environment.py +0 -0
  18. {errorai-1.8.0 → errorai-1.9.1}/errorai/pipeline.py +0 -0
  19. {errorai-1.8.0 → errorai-1.9.1}/errorai/providers.py +0 -0
  20. {errorai-1.8.0 → errorai-1.9.1}/errorai/universal.py +0 -0
  21. {errorai-1.8.0 → errorai-1.9.1}/setup.cfg +0 -0
  22. {errorai-1.8.0 → errorai-1.9.1}/tests/test_bootstrap.py +0 -0
  23. {errorai-1.8.0 → errorai-1.9.1}/tests/test_config.py +0 -0
  24. {errorai-1.8.0 → errorai-1.9.1}/tests/test_runtime.py +0 -0
  25. {errorai-1.8.0 → errorai-1.9.1}/tests/test_safety.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErrorAI
3
- Version: 1.8.0
3
+ Version: 1.9.1
4
4
  Summary: Python-only autonomous runtime that watches/analyzes errors with safe local auto-fix fallbacks.
5
5
  Author: Aswanth R
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErrorAI
3
- Version: 1.8.0
3
+ Version: 1.9.1
4
4
  Summary: Python-only autonomous runtime that watches/analyzes errors with safe local auto-fix fallbacks.
5
5
  Author: Aswanth R
6
6
  License: MIT
@@ -38,6 +38,11 @@ def _download_onnx_model(config: ModelConfig, destination: Path) -> None:
38
38
  snapshot_download(
39
39
  repo_id=config.repo_id,
40
40
  cache_dir=str(config.cache_dir / "hf_cache"),
41
+ allow_patterns=[
42
+ "*.json",
43
+ "*.txt",
44
+ "onnx/model_int8.onnx",
45
+ ],
41
46
  )
42
47
  )
43
48
  if destination.exists() or destination.is_symlink():
@@ -129,7 +129,7 @@ def _coerce_model(base: ModelConfig, values: Dict[str, Any]) -> ModelConfig:
129
129
 
130
130
 
131
131
  def load_config(project_root: Path | None = None) -> ErrorAIConfig:
132
- root = (project_root or Path.cwd()).resolve()
132
+ root = (project_root or _default_project_root()).resolve()
133
133
  config = ErrorAIConfig(runtime=RuntimeConfig(project_root=root))
134
134
  pyproject = _read_toml(root / "pyproject.toml")
135
135
  pyproject_settings = pyproject.get("tool", {}).get("errorai", {})
@@ -160,6 +160,14 @@ name = "onnx-default-python-expert"
160
160
  context_window = 4096
161
161
  temperature = 0.1
162
162
  auto_bootstrap = true
163
+ # To use a free, keyless hosted API instead of a local model, set:
164
+ # provider = "http_api"
165
+ # This sends the erroring line + message to http_api_base_url (default:
166
+ # OVHcloud AI Endpoints' anonymous tier -- no signup, no key, ~2 req/min).
167
+ # Only enable this if you're OK with that line leaving your machine.
168
+ # http_api_base_url = "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/chat/completions"
169
+ # http_api_model = "qwen2.5-coder-32b-instruct"
170
+ # http_api_timeout = 8.0
163
171
  """
164
172
 
165
173
 
@@ -13,7 +13,7 @@ from .bootstrap import BootstrapStatus, ensure_model, model_status
13
13
  from .config import ErrorAIConfig, autostart_enabled, load_config
14
14
  from .environment import Capabilities, detect_capabilities
15
15
  from .pipeline import Analyzer, Applier, Planner, Reporter, Watcher
16
- from .providers import ModelProvider, RulesOnlyProvider
16
+ from .providers import ModelProvider, RulesOnlyProvider, HttpApiProvider
17
17
 
18
18
  try:
19
19
  from .providers import LlamaCppProvider
@@ -67,7 +67,12 @@ class RuntimeManager:
67
67
  self.reporter = Reporter(self.config.runtime.project_root)
68
68
  self.analyzer = Analyzer()
69
69
  self.applier = Applier(self.config.runtime)
70
- self.bootstrap_status = ensure_model(self.config.model, explicit=False)
70
+ if self.config.model.provider in ("onnx", "llama_cpp"):
71
+ self.bootstrap_status = ensure_model(self.config.model, explicit=False)
72
+ else:
73
+ self.bootstrap_status = BootstrapStatus(
74
+ True, "remote", "Using remote HTTP API provider; no local model needed.", None
75
+ )
71
76
  self.provider = self._select_provider(self.bootstrap_status)
72
77
  self.planner = Planner(self.provider)
73
78
  self.watcher = Watcher(self.capabilities, self.reporter)
@@ -91,11 +96,17 @@ class RuntimeManager:
91
96
  return self
92
97
 
93
98
  def _select_provider(self, status: BootstrapStatus) -> ModelProvider:
94
- if not status.ready or status.model_path is None or self.config is None:
99
+ if self.config is None:
95
100
  return RulesOnlyProvider()
96
101
 
97
102
  provider_name = self.config.model.provider
98
103
 
104
+ if provider_name == "http_api":
105
+ return HttpApiProvider(self.config.model)
106
+
107
+ if not status.ready or status.model_path is None:
108
+ return RulesOnlyProvider()
109
+
99
110
  if provider_name == "onnx":
100
111
  if OnnxProvider is None:
101
112
  return RulesOnlyProvider()
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ErrorAI"
7
- version = "1.8.0"
7
+ version = "1.9.1"
8
8
  description = "Python-only autonomous runtime that watches/analyzes errors with safe local auto-fix fallbacks."
9
9
  readme = "README.md"
10
10
  authors = [
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