kernhell 0.1.0__tar.gz → 0.1.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 (43) hide show
  1. {kernhell-0.1.0 → kernhell-0.1.1}/PKG-INFO +22 -2
  2. {kernhell-0.1.0 → kernhell-0.1.1}/README.md +21 -1
  3. {kernhell-0.1.0 → kernhell-0.1.1}/pyproject.toml +1 -1
  4. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/__init__.py +1 -1
  5. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/analyzer/analyzer.py +19 -11
  6. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/analyzer/healer.py +19 -11
  7. {kernhell-0.1.0 → kernhell-0.1.1}/.gitignore +0 -0
  8. {kernhell-0.1.0 → kernhell-0.1.1}/.kernhellrc.toml +0 -0
  9. {kernhell-0.1.0 → kernhell-0.1.1}/LICENSE +0 -0
  10. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/__main__.py +0 -0
  11. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/analyzer/prompts.py +0 -0
  12. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/api/__init__.py +0 -0
  13. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/api/server.py +0 -0
  14. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cache/__init__.py +0 -0
  15. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cache/cache_manager.py +0 -0
  16. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cache/embedder.py +0 -0
  17. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cache/schemas.py +0 -0
  18. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/__init__.py +0 -0
  19. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/app.py +0 -0
  20. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/__init__.py +0 -0
  21. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/cache.py +0 -0
  22. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/config.py +0 -0
  23. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/dashboard.py +0 -0
  24. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/heal.py +0 -0
  25. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/commands/scan.py +0 -0
  26. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/cli/ui.py +0 -0
  27. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/core/__init__.py +0 -0
  28. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/core/config.py +0 -0
  29. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/core/exceptions.py +0 -0
  30. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/core/models.py +0 -0
  31. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/core/orchestrator.py +0 -0
  32. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/patcher/patcher.py +0 -0
  33. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/patcher/verifier.py +0 -0
  34. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/pruner/__init__.py +0 -0
  35. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/pruner/dom_pruner.py +0 -0
  36. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/reporter/__init__.py +0 -0
  37. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/reporter/reporter.py +0 -0
  38. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/scanner/__init__.py +0 -0
  39. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/scanner/parser.py +0 -0
  40. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/scanner/runner.py +0 -0
  41. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/utils/__init__.py +0 -0
  42. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/utils/file_utils.py +0 -0
  43. {kernhell-0.1.0 → kernhell-0.1.1}/src/kernhell/utils/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: kernhell
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: AI-Powered Autonomous Self-Healing Testing Engine — The Heart of Your System Where Innovation Meets Precision
5
5
  Project-URL: Homepage, https://github.com/riteshkumar072/KernHell
6
6
  Project-URL: Documentation, https://github.com/riteshkumar072/KernHell#readme
@@ -116,12 +116,32 @@ flowchart TD
116
116
 
117
117
  ## 📦 Installation
118
118
 
119
+ ### Quick Install (from PyPI)
120
+
121
+ ```bash
122
+ pip install kernhell
123
+ ```
124
+
125
+ That's it! Now run `kernhell --help` to get started.
126
+
127
+ ### With Optional Dependencies
128
+
129
+ ```bash
130
+ # Install with dashboard support
131
+ pip install kernhell[dashboard]
132
+
133
+ # Install everything (dev + dashboard)
134
+ pip install kernhell[all]
135
+ ```
136
+
137
+ ### 🔧 Developer Setup (Contributing)
138
+
119
139
  ```bash
120
140
  # Clone the repository
121
141
  git clone https://github.com/riteshkumar072/KernHell.git
122
142
  cd KernHell
123
143
 
124
- # Install Python package in editable mode with all dependencies
144
+ # Install in editable mode with all dev dependencies
125
145
  pip install -e ".[all]"
126
146
 
127
147
  # Install Mission Control dashboard dependencies
@@ -55,12 +55,32 @@ flowchart TD
55
55
 
56
56
  ## 📦 Installation
57
57
 
58
+ ### Quick Install (from PyPI)
59
+
60
+ ```bash
61
+ pip install kernhell
62
+ ```
63
+
64
+ That's it! Now run `kernhell --help` to get started.
65
+
66
+ ### With Optional Dependencies
67
+
68
+ ```bash
69
+ # Install with dashboard support
70
+ pip install kernhell[dashboard]
71
+
72
+ # Install everything (dev + dashboard)
73
+ pip install kernhell[all]
74
+ ```
75
+
76
+ ### 🔧 Developer Setup (Contributing)
77
+
58
78
  ```bash
59
79
  # Clone the repository
60
80
  git clone https://github.com/riteshkumar072/KernHell.git
61
81
  cd KernHell
62
82
 
63
- # Install Python package in editable mode with all dependencies
83
+ # Install in editable mode with all dev dependencies
64
84
  pip install -e ".[all]"
65
85
 
66
86
  # Install Mission Control dashboard dependencies
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "kernhell"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "AI-Powered Autonomous Self-Healing Testing Engine — The Heart of Your System Where Innovation Meets Precision"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -4,5 +4,5 @@ KernHell — AI-Powered Autonomous Self-Healing Testing Engine.
4
4
  "The Heart of Your System Where Innovation Meets Precision"
5
5
  """
6
6
 
7
- __version__ = "0.1.0"
7
+ __version__ = "0.1.1"
8
8
  __app_name__ = "kernhell"
@@ -136,17 +136,25 @@ class FailureAnalyzer:
136
136
 
137
137
  model_name = self.llm_cfg.get_litellm_model_name()
138
138
 
139
- response = litellm.completion(
140
- model=model_name,
141
- api_key=api_key,
142
- temperature=self.llm_cfg.temperature,
143
- max_tokens=self.llm_cfg.max_tokens,
144
- messages=[
145
- {"role": "system", "content": system_prompt},
146
- {"role": "user", "content": user_prompt},
147
- ],
148
- )
149
- return response.choices[0].message.content or ""
139
+ try:
140
+ response = litellm.completion(
141
+ model=model_name,
142
+ api_key=api_key,
143
+ temperature=self.llm_cfg.temperature,
144
+ max_tokens=self.llm_cfg.max_tokens,
145
+ messages=[
146
+ {"role": "system", "content": system_prompt},
147
+ {"role": "user", "content": user_prompt},
148
+ ],
149
+ )
150
+ return response.choices[0].message.content or ""
151
+ except Exception as exc:
152
+ logger.warning(
153
+ "analyzer.llm_call_failed.falling_back_to_heuristic",
154
+ model=model_name,
155
+ error=str(exc),
156
+ )
157
+ return self._heuristic_diagnosis_fallback(user_prompt)
150
158
 
151
159
  def _heuristic_diagnosis_fallback(self, user_prompt: str) -> str:
152
160
  """Deterministic heuristic for offline testing without LLM API key."""
@@ -207,17 +207,25 @@ class SelectorHealer:
207
207
 
208
208
  model_name = self.llm_cfg.get_litellm_model_name()
209
209
 
210
- response = litellm.completion(
211
- model=model_name,
212
- api_key=api_key,
213
- temperature=self.llm_cfg.temperature,
214
- max_tokens=self.llm_cfg.max_tokens,
215
- messages=[
216
- {"role": "system", "content": system_prompt},
217
- {"role": "user", "content": user_prompt},
218
- ],
219
- )
220
- return response.choices[0].message.content or ""
210
+ try:
211
+ response = litellm.completion(
212
+ model=model_name,
213
+ api_key=api_key,
214
+ temperature=self.llm_cfg.temperature,
215
+ max_tokens=self.llm_cfg.max_tokens,
216
+ messages=[
217
+ {"role": "system", "content": system_prompt},
218
+ {"role": "user", "content": user_prompt},
219
+ ],
220
+ )
221
+ return response.choices[0].message.content or ""
222
+ except Exception as exc:
223
+ logger.warning(
224
+ "healer.llm_call_failed.falling_back_to_heuristic",
225
+ model=model_name,
226
+ error=str(exc),
227
+ )
228
+ return self._heuristic_healing_fallback(user_prompt)
221
229
 
222
230
  def _heuristic_healing_fallback(self, user_prompt: str) -> str:
223
231
  """Deterministic heuristic fallback when running offline."""
File without changes
File without changes
File without changes