crackerjack 0.37.9__py3-none-any.whl → 0.38.1__py3-none-any.whl

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.

Potentially problematic release.


This version of crackerjack might be problematic. Click here for more details.

@@ -132,7 +132,7 @@ class PluginLoader:
132
132
 
133
133
  def _try_factory_function(
134
134
  self,
135
- factory: t.Callable,
135
+ factory: t.Callable[..., t.Any],
136
136
  name: str,
137
137
  ) -> PluginBase | None:
138
138
  try:
@@ -67,10 +67,10 @@ class DependencyEdge:
67
67
  class DependencyGraph:
68
68
  """Complete dependency graph data structure."""
69
69
 
70
- nodes: dict[str, DependencyNode] = field(default_factory=dict[str, t.Any])
70
+ nodes: dict[str, DependencyNode] = field(default_factory=dict)
71
71
  edges: list[DependencyEdge] = field(default_factory=list)
72
- clusters: dict[str, list[str]] = field(default_factory=dict[str, t.Any])
73
- metrics: dict[str, t.Any] = field(default_factory=dict[str, t.Any])
72
+ clusters: dict[str, list[str]] = field(default_factory=dict)
73
+ metrics: dict[str, t.Any] = field(default_factory=dict)
74
74
  generated_at: datetime = field(default_factory=datetime.now)
75
75
 
76
76
  def to_dict(self) -> dict[str, t.Any]:
@@ -193,7 +193,7 @@ class DependencyAnalyzer:
193
193
  edges = self.dependency_graph.edges
194
194
 
195
195
  # Basic metrics
196
- metrics = {
196
+ metrics: dict[str, t.Any] = {
197
197
  "total_nodes": len(nodes),
198
198
  "total_edges": len(edges),
199
199
  "total_clusters": len(self.dependency_graph.clusters),
@@ -157,7 +157,7 @@ class ErrorPatternAnalyzer:
157
157
  error_type = pattern.error_type
158
158
  count = pattern.count
159
159
 
160
- file_error_counts[file_path][error_type] += count
160
+ file_error_counts[file_path][error_type] += float(count)
161
161
  max_value = max(max_value, file_error_counts[file_path][error_type])
162
162
 
163
163
  # Create heat map cells
@@ -175,7 +175,7 @@ class ErrorPatternAnalyzer:
175
175
  for error_type in error_types:
176
176
  count = file_error_counts[file_path].get(error_type, 0)
177
177
  if count > 0:
178
- intensity: float = count / max_value if max_value > 0 else 0
178
+ intensity: float = count / max_value if max_value > 0 else 0.0
179
179
  severity = self._get_severity_for_type(error_type)
180
180
 
181
181
  cells.append(
@@ -313,7 +313,7 @@ class ErrorPatternAnalyzer:
313
313
  self, time_label: str, error_type: str, count: float, max_value: float
314
314
  ) -> HeatMapCell:
315
315
  """Create a single temporal heatmap cell."""
316
- intensity: float = count / max_value if max_value > 0 else 0
316
+ intensity: float = count / max_value if max_value > 0 else 0.0
317
317
  severity = self._get_severity_for_type(error_type)
318
318
 
319
319
  return HeatMapCell(
@@ -405,7 +405,7 @@ class ErrorPatternAnalyzer:
405
405
  self, function_id: str, error_type: str, count: float, max_value: float
406
406
  ) -> HeatMapCell:
407
407
  """Create a single function heatmap cell."""
408
- intensity: float = count / max_value if max_value > 0 else 0
408
+ intensity: float = count / max_value if max_value > 0 else 0.0
409
409
  severity = self._get_severity_for_type(error_type)
410
410
 
411
411
  return HeatMapCell(
@@ -239,7 +239,7 @@ class ParallelHookExecutor:
239
239
  f"Hook {hooks[i].name} failed with exception: {result}"
240
240
  )
241
241
  else:
242
- processed_results.append(result)
242
+ processed_results.append(t.cast(ExecutionResult, result))
243
243
 
244
244
  successful = sum(1 for r in processed_results if r.success)
245
245
  self._logger.info(
@@ -307,7 +307,7 @@ class AsyncCommandExecutor:
307
307
  )
308
308
  processed_results.append(error_result)
309
309
  else:
310
- processed_results.append(result)
310
+ processed_results.append(t.cast(ExecutionResult, result))
311
311
 
312
312
  successful = sum(1 for r in processed_results if r.success)
313
313
  self._logger.info(
@@ -7,6 +7,8 @@ from dataclasses import dataclass, field
7
7
  from datetime import datetime
8
8
  from pathlib import Path
9
9
 
10
+ from rich.console import Console
11
+
10
12
  from crackerjack.services.logging import get_logger
11
13
  from crackerjack.services.memory_optimizer import get_memory_optimizer
12
14
  from crackerjack.services.performance_cache import get_performance_cache
@@ -301,7 +303,7 @@ class PerformanceBenchmarker:
301
303
  class PerformanceBenchmarkService:
302
304
  """Service wrapper for performance benchmarking in workflow orchestration."""
303
305
 
304
- def __init__(self, console, pkg_path):
306
+ def __init__(self, console: Console, pkg_path: Path) -> None:
305
307
  self._console = console
306
308
  self._pkg_path = pkg_path
307
309
  self._benchmarker = PerformanceBenchmarker()
@@ -268,7 +268,7 @@ class GitOperationCache:
268
268
  ) -> None:
269
269
  key = self._make_repo_key(repo_path, "branch_info")
270
270
  invalidation_keys = {f"git_repo: {repo_path}"}
271
- self.cache.set[t.Any](key, branch_info, ttl_seconds, invalidation_keys)
271
+ self.cache.set(key, branch_info, ttl_seconds, invalidation_keys)
272
272
 
273
273
  def get_file_status(self, repo_path: Path) -> t.Any:
274
274
  key = self._make_repo_key(repo_path, "file_status")
@@ -282,7 +282,7 @@ class GitOperationCache:
282
282
  ) -> None:
283
283
  key = self._make_repo_key(repo_path, "file_status")
284
284
  invalidation_keys = {f"git_repo: {repo_path}", "git_files"}
285
- self.cache.set[t.Any](key, file_status, ttl_seconds, invalidation_keys)
285
+ self.cache.set(key, file_status, ttl_seconds, invalidation_keys)
286
286
 
287
287
  def invalidate_repo(self, repo_path: Path) -> None:
288
288
  self.cache.invalidate(f"git_repo: {repo_path}")
@@ -312,7 +312,7 @@ class FileSystemCache:
312
312
  ) -> None:
313
313
  key = self._make_file_key(file_path, "stats")
314
314
  invalidation_keys = {f"file: {file_path}"}
315
- self.cache.set[t.Any](key, stats, ttl_seconds, invalidation_keys)
315
+ self.cache.set(key, stats, ttl_seconds, invalidation_keys)
316
316
 
317
317
  def invalidate_file(self, file_path: Path) -> None:
318
318
  self.cache.invalidate(f"file: {file_path}")
@@ -352,7 +352,7 @@ class CommandResultCache:
352
352
  if cwd:
353
353
  invalidation_keys.add(f"cwd: {cwd}")
354
354
 
355
- self.cache.set[t.Any](key, result, ttl_seconds, invalidation_keys)
355
+ self.cache.set(key, result, ttl_seconds, invalidation_keys)
356
356
 
357
357
  def invalidate_commands(self) -> None:
358
358
  self.cache.invalidate("commands")
@@ -264,7 +264,7 @@ class QualityIntelligenceService:
264
264
  metric_name: str,
265
265
  values: list[float],
266
266
  timestamps: list[t.Any],
267
- stats_data: dict[str, float],
267
+ stats_data: dict[str, t.Any],
268
268
  ) -> list[QualityAnomaly]:
269
269
  """Identify outlier anomalies based on z-scores."""
270
270
  anomalies = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.37.9
3
+ Version: 0.38.1
4
4
  Summary: Crackerjack Python project management tool
5
5
  Project-URL: documentation, https://github.com/lesleslie/crackerjack
6
6
  Project-URL: homepage, https://github.com/lesleslie/crackerjack
@@ -67,13 +67,14 @@ Description-Content-Type: text/markdown
67
67
 
68
68
  # Crackerjack: Advanced AI-Driven Python Development Platform
69
69
 
70
+ [![Code style: crackerjack](https://img.shields.io/badge/code%20style-crackerjack-000042)](https://github.com/lesleslie/crackerjack)
70
71
  [![Python: 3.13+](https://img.shields.io/badge/python-3.13%2B-green)](https://www.python.org/downloads/)
71
72
  [![pytest](https://img.shields.io/badge/pytest-coverage%20ratchet-blue)](https://pytest.org)
72
73
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
73
74
  [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
74
75
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
75
76
  [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
76
- ![Coverage](https://img.shields.io/badge/coverage-17.6%25-red)
77
+ ![Coverage](https://img.shields.io/badge/coverage-37.0%25-red)
77
78
 
78
79
  ## 🎯 Purpose
79
80
 
@@ -1,10 +1,10 @@
1
- crackerjack/__init__.py,sha256=k8_Ev_3fWdjFtGNSJdSOvyaSLW54y3j484d3a8k_Ob4,1396
2
- crackerjack/__main__.py,sha256=lE5ZDbAzI9TLCzMTxFGw23Dk1hP-MEhd1i_nNbi_Mag,52515
3
- crackerjack/api.py,sha256=sfKzCphsTMFCvdNizviPdYemwg0H8Oei_5C08LAuDvA,21538
1
+ crackerjack/__init__.py,sha256=DajG9zHB8qBdgdiKMumrrssUbKeMXmtIQ3oOaSTb46Y,1426
2
+ crackerjack/__main__.py,sha256=cAM0ezqddeO5oC3QMr8zpUor-RN0lIG-Zja_WeatDiY,55176
3
+ crackerjack/api.py,sha256=PyCRaZHvKWdu62_2O4t_HcEfKNBdqyrfPdonS_PNn4c,21495
4
4
  crackerjack/code_cleaner.py,sha256=M1zVaq31uW0nOkPneKR8kfR3892gyyVx0VhFgRaxsj4,44338
5
- crackerjack/dynamic_config.py,sha256=nwHVFCf84mokfzXhMo91-DD1ecEB6tXIgGBg0836auU,22017
5
+ crackerjack/dynamic_config.py,sha256=4c8Fts9vyH8Tdon_47OFVT1iTBINSzSgB0WoeSvpzII,22418
6
6
  crackerjack/errors.py,sha256=yYbZ92kn_y6acEWgQvEPvozAYs2HT65uLwAXrtXxGsE,10049
7
- crackerjack/interactive.py,sha256=yjTnk0xWvDnZeCaB11TcRGxVLTXWPRnGBsekiMcyRvU,21317
7
+ crackerjack/interactive.py,sha256=CYu53ySL2I1YCWRRRHmVEYQq3RQ0xDCXFTuPUAw6DTc,21399
8
8
  crackerjack/adapters/__init__.py,sha256=k-8ajMDL9DS9hV2FYOu694nmNQg3HkudJRuNcXmx8N4,451
9
9
  crackerjack/adapters/lsp_client.py,sha256=4kQ3T5JiWC7uc6kOjZuPdtUboseKSDjZpuKQpV74onc,10963
10
10
  crackerjack/adapters/rust_tool_adapter.py,sha256=ui_qMt_WIwInRvRCeT7MnIdp8eln7Fvp4hakXQiVnjg,5999
@@ -34,7 +34,7 @@ crackerjack/cli/cache_handlers_enhanced.py,sha256=6X5rYSo1l-rj9eb7eB8mpA-6BlUagy
34
34
  crackerjack/cli/facade.py,sha256=e4_oB04awqEijI3yqiYAZGc6x09uMBa4ih0SsXpgMuY,3751
35
35
  crackerjack/cli/handlers.py,sha256=mYhwMLUKid6mQLff0ScpcnhP0yUS9IzOIMdM7VLkUCc,17178
36
36
  crackerjack/cli/interactive.py,sha256=E7WgzgNRlgOuKLbi5Io3RQ3BBXS8sIDiUQcJh6b2x9I,17583
37
- crackerjack/cli/options.py,sha256=HzAO8jKkpxOf_34pvAO28Eqo5g51nEFRkcOJDqTZj8o,36546
37
+ crackerjack/cli/options.py,sha256=U31B1UqxtHe4bzW_IEOw0QPCjdj8MbxUvVlL-hCRt9g,36560
38
38
  crackerjack/cli/utils.py,sha256=XC7dT8GNidhORjUe2p2hQOpZgCi2KvVCNu6g3azzgqY,584
39
39
  crackerjack/config/__init__.py,sha256=b0481N2f_JvGufMPcbo5IXu2VjYd111r1BHw0oD3x7o,330
40
40
  crackerjack/config/global_lock_config.py,sha256=PyonoA2__HKEEvn6SD-gEYh9iD7xIAdts2C3lNoTWhw,1996
@@ -54,7 +54,7 @@ crackerjack/core/service_watchdog.py,sha256=Ttj1imOxvUea4Tkf5JO1e2dQtGIK7D-bX1xO
54
54
  crackerjack/core/session_coordinator.py,sha256=TgoGE9DfXe2x-OkH93Ld9dX9ROjx2_mZFkGXen-z5YI,15680
55
55
  crackerjack/core/timeout_manager.py,sha256=_sbEsfYDwWx7y0Pn89QCoAZ5DpWIbCdtR9qkG_Kqj5E,15013
56
56
  crackerjack/core/websocket_lifecycle.py,sha256=74kn6ugu6FLlDQhCNSPgqguCFwRoT1WFOvtl8G2OyFc,12860
57
- crackerjack/core/workflow_orchestrator.py,sha256=y_bYIZ2cn-DD8J1A9xkS9TawUJ8qdeirmB5HHrzTwg8,71867
57
+ crackerjack/core/workflow_orchestrator.py,sha256=rIAIKQkGsKZX4ZOxoKhFupgAIspYND8RfV45TQFFrs4,76039
58
58
  crackerjack/docs/INDEX.md,sha256=a6CGFEeL5DX_FRft_JFWd0nOxoBmCSSp-QHIC3B7ato,342
59
59
  crackerjack/docs/generated/api/API_REFERENCE.md,sha256=mWoqImZA7AhDvRqqF1MhUo70g_pnZr3NoBeZQRotqN8,155816
60
60
  crackerjack/docs/generated/api/CLI_REFERENCE.md,sha256=ikuG0hO5EjIiQlJtAUnvEuAhXDa-JHPULPXNNmUwvk4,2805
@@ -65,7 +65,7 @@ crackerjack/documentation/__init__.py,sha256=gGR--er5oTHhbwLKOHVlU2QgGmQtA0qUXf3
65
65
  crackerjack/documentation/ai_templates.py,sha256=GRBKB5bqWudh9MDLjo1b3vNiFAgpL62ezzRp_WxTews,21629
66
66
  crackerjack/documentation/dual_output_generator.py,sha256=w7rDthOnyFeRPQDWvYiR4aiScPxsHzkwjJ3blMwT9-w,28552
67
67
  crackerjack/documentation/mkdocs_integration.py,sha256=KqU2_9mA-rjP_VDrrfr6KTuPWtTlcvkInPxoH03LTC0,15657
68
- crackerjack/documentation/reference_generator.py,sha256=RezcoengHOnPJp988KB--EYcMfjJqPpWWFIvzvOMNCc,33094
68
+ crackerjack/documentation/reference_generator.py,sha256=NGAIsC5bnjLBQkvEXPDU0pw8bQ5kYzbUUokhlXXFqrU,34520
69
69
  crackerjack/executors/__init__.py,sha256=HF-DmXvKN45uKKDdiMxOT9bYxuy1B-Z91BihOhkK5lg,322
70
70
  crackerjack/executors/async_hook_executor.py,sha256=FmKpiAxpZXKwvOWXnRQ73N-reDfX8NusESQ9a4HeacM,17620
71
71
  crackerjack/executors/cached_hook_executor.py,sha256=izwdW0B22EZcl_2_llmTIyq5oTcZDZTRL2G97ZwYiXg,11173
@@ -84,10 +84,10 @@ crackerjack/intelligence/integration.py,sha256=vVaC2Fp5RbbABpaohCePzGw1XANuRztGl
84
84
  crackerjack/managers/__init__.py,sha256=PFWccXx4hDQA76T02idAViOLVD-aPeVpgjdfSkh_Dmk,298
85
85
  crackerjack/managers/async_hook_manager.py,sha256=c0HFR98sFwfk0uZ3NmAe_6OVZpBrq9I570V8A2DoIxw,5129
86
86
  crackerjack/managers/hook_manager.py,sha256=_FT0ngwPwujqg0KZGpLz-pP07mwDmptJ5pVkiy5yS8k,7820
87
- crackerjack/managers/publish_manager.py,sha256=Pe0zWtLaho5BCTO8-EC9sY0Gl4L1B2guDM2D8B8TryA,22034
87
+ crackerjack/managers/publish_manager.py,sha256=E0jqHuscfn89pI2Ely0R6xyi3EGTvYFQeFTWyRmdjBM,22067
88
88
  crackerjack/managers/test_command_builder.py,sha256=1TlPzddNcDDxRORH6UvAudcbRc6hKwFyknSEVLkiWAo,3459
89
89
  crackerjack/managers/test_executor.py,sha256=2837Ti4OaNsmLxnmELjbQ18hmfL0-Z2EW-W2UeFSDcE,13871
90
- crackerjack/managers/test_manager.py,sha256=BRPBWXx4flPDK0w96xyHhg-9dmUca1vpKQRM2VofSlI,13158
90
+ crackerjack/managers/test_manager.py,sha256=KRU39TLJR_E2zEcqxM3P2IO87N6aPXwNvjaIG8ip_-g,16713
91
91
  crackerjack/managers/test_manager_backup.py,sha256=CR8D7WZ68ZrTADFqYJtVDUWnlznJXJNriPIdsp6ZB1E,37932
92
92
  crackerjack/managers/test_progress.py,sha256=B1013ygUk2nAo37whDXNA7n-FYdsEO4qj17fuDm_fdg,3058
93
93
  crackerjack/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -96,13 +96,13 @@ crackerjack/mcp/client_runner.py,sha256=Mrcsw7oTk1JgIno7OuNlVVM28UtmGjQYItpToTVO
96
96
  crackerjack/mcp/context.py,sha256=T1rhScFxbqi0Kaf6o8NusVUIwc8o7YGxcsLdmlWVsPI,28350
97
97
  crackerjack/mcp/dashboard.py,sha256=eApQekZe1DfKBrlDW5yobyqaN_gdh17ZQlqGmut5TCs,19602
98
98
  crackerjack/mcp/enhanced_progress_monitor.py,sha256=xhACaEjreDw1cLObJmhr5ttowl5mRqeohmMzQfRQj3w,16448
99
- crackerjack/mcp/file_monitor.py,sha256=4OR-nxqH0ettiGInIY6MckFoflwX5VP9bgxXcAZZzfE,12824
99
+ crackerjack/mcp/file_monitor.py,sha256=PVwbWtk7_cUyc9QLUHgKWtoHs88qvO5Fu-8S0BdcbxA,13203
100
100
  crackerjack/mcp/progress_components.py,sha256=URtnrNv1QQzUKY3msO_cBrYHjPlzVDqFbZa_trfZHXY,20535
101
101
  crackerjack/mcp/progress_monitor.py,sha256=3TxQ_Og1md8zuNrH9cltOa8RQf_5lHNiVh9DiBkvbBM,37546
102
- crackerjack/mcp/rate_limiter.py,sha256=oM29wHyvoR9Q9cMBAEqWquHoiBBS1ylrZkUhhFnDkVo,12309
102
+ crackerjack/mcp/rate_limiter.py,sha256=LDefC3CLawIhpyFfFXPmhR-8yZCAkQYbV2sll9JrnD8,12406
103
103
  crackerjack/mcp/server.py,sha256=-AdHHoFNAtoPM1A3_M2giZbIbggUhhvv16uIXk2xqNo,403
104
104
  crackerjack/mcp/server_core.py,sha256=o93_j8nmGRIl-FL-Y5cKCDDJh3J7vTi1SmxIOdoqj0w,11301
105
- crackerjack/mcp/service_watchdog.py,sha256=_z99JrYrmVaXI2tVERts0_xHsl4pjltD5iF47mQVADk,16826
105
+ crackerjack/mcp/service_watchdog.py,sha256=B4hTrdgRZTf9wDHQWplyKio6AxePvpR8gmid511cBAY,16938
106
106
  crackerjack/mcp/state.py,sha256=pNclwUxGTH5YiRMq8hB15B9_rpX9aJ-IVnhMw7q9dtI,14427
107
107
  crackerjack/mcp/task_manager.py,sha256=hxuZGbRHwEBO-W3UTbg7Lx7gMhTcPRaAiQ8I8VIFs6g,8713
108
108
  crackerjack/mcp/websocket_server.py,sha256=Dsw_orJOSeO7t7zRiVErh8GLp5jAaGab6shOeQTynbw,203
@@ -112,9 +112,9 @@ crackerjack/mcp/tools/error_analyzer.py,sha256=8ap3_TIqEfrN0n49w_wJFRE3zu7eHB9E8
112
112
  crackerjack/mcp/tools/execution_tools.py,sha256=iMtcTm45v04wNgfiIdzOjMXyB-lZ9x-yUtN9SuLGxNI,10410
113
113
  crackerjack/mcp/tools/execution_tools_backup.py,sha256=sWOtid00SkuonFLT2XCtljOGZiibbaIXzEdLWsPrXyI,33351
114
114
  crackerjack/mcp/tools/intelligence_tool_registry.py,sha256=eAOBzW3EZTKSz_MeYVzgjD6a1xVZFSXUdgOsgcQLSBk,1262
115
- crackerjack/mcp/tools/intelligence_tools.py,sha256=R0TK-sLuCezJQu0FfTg1xXs-xI_oI2aJeueZgOrM58g,9106
115
+ crackerjack/mcp/tools/intelligence_tools.py,sha256=HRjX6i3wKKniUbffYZFjRP2PdxsTmDwi4D0SAlsyQDs,9124
116
116
  crackerjack/mcp/tools/monitoring_tools.py,sha256=5RYbytBmLjJdz1sE33xYchdrO9LgzGwSvsqRsZIV7oA,21804
117
- crackerjack/mcp/tools/proactive_tools.py,sha256=Geww8uUbdWx1UBoT9JmNc_Q7xr4rcPuZuRVYHKocJoE,12954
117
+ crackerjack/mcp/tools/proactive_tools.py,sha256=EKTCNS8285p6f3p3bd3AdEGN6OWMvAWn8ArTWt_pgSc,12972
118
118
  crackerjack/mcp/tools/progress_tools.py,sha256=S4IkENegGaH06EYNotJ3m2Zuky2OMk-iSd3rLs9T9vs,6930
119
119
  crackerjack/mcp/tools/utility_tools.py,sha256=zt4tES5uhyvZfMdgtStlqItWCBA4MWqGCypQ5u_HPds,10367
120
120
  crackerjack/mcp/tools/workflow_executor.py,sha256=IvHPyvak1UP1MsWgrYScoFvIe52gL7cdPlec0mAHkFc,19628
@@ -141,12 +141,12 @@ crackerjack/monitoring/websocket_server.py,sha256=tmCYh5Qp58iicS_txj5OTdmt3I85M5
141
141
  crackerjack/orchestration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  crackerjack/orchestration/advanced_orchestrator.py,sha256=RFvyJuUrL2-Vrii4XPX1NNtF-tcBWbbnyokqSe6sxmQ,34000
143
143
  crackerjack/orchestration/coverage_improvement.py,sha256=1G88wEvCCL3Gxa1O6jg2U_F3suwJqpu-KKbNJf1e7TI,6745
144
- crackerjack/orchestration/execution_strategies.py,sha256=G34eYqd5fqKPgPcRScASS86PE-mX2hjL8so-7kPhbRI,12456
144
+ crackerjack/orchestration/execution_strategies.py,sha256=M3hplgaCULMwE9TiqP9rWvivnrqdSR6DJTzY_rvueww,12482
145
145
  crackerjack/orchestration/test_progress_streamer.py,sha256=Yu6uHuhoCvX6SZP0QNG3Yt8Q4s2tufEHr40o16QU98c,22541
146
146
  crackerjack/plugins/__init__.py,sha256=B7hy9b9amJVbYLHgIz8kgTI29j-vYxsUY_sZ5ISbXU0,386
147
147
  crackerjack/plugins/base.py,sha256=VFk-xNsgjSlmzJ_iPQALhkr7cguiOtEd3XSR9CcCPkc,5732
148
- crackerjack/plugins/hooks.py,sha256=IOnYYEB366HR0t09bV7G_F7wOf2D9vtMcEiR0PRfwiw,7574
149
- crackerjack/plugins/loader.py,sha256=9RmA5Lkizz5BADn-aJDGekISyL7C_O2Grr1tB6undHY,10814
148
+ crackerjack/plugins/hooks.py,sha256=Much8c_KNbvYMqcBSke90pRWuga5BZvefmGY8GK3j44,7629
149
+ crackerjack/plugins/loader.py,sha256=uj6Qm0mOnjnRcALwi9mrqwSyw0Zv2mkdWdHD_5GJMdw,10826
150
150
  crackerjack/plugins/managers.py,sha256=3kQlxjvcHyHDgZIdr-JZBO1kqz2asqA4kf2XVAA1K6A,8824
151
151
  crackerjack/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
152
  crackerjack/security/audit.py,sha256=NZJRREvjeKJMhusNZkL8GnBf4XiQFnTwKGcu6NqmvgI,6728
@@ -165,13 +165,13 @@ crackerjack/services/contextual_ai_assistant.py,sha256=6Pnb2r824c4JYkP5mtCH8sJ2O
165
165
  crackerjack/services/coverage_badge_service.py,sha256=gzC3LEyVLt4rpf378APsFVRGgNwkLc50w9S_9xEPPoM,6645
166
166
  crackerjack/services/coverage_ratchet.py,sha256=eKxmFyg-7Rnctnk--6P-yNNOFhoKwzTxd4iCJ52dtZE,13439
167
167
  crackerjack/services/debug.py,sha256=kTy2vy6JjjNReNn4z7xmhXDVIj8xImaE67kYi-Pfb3o,23227
168
- crackerjack/services/dependency_analyzer.py,sha256=4MxexuyQ3wyPHVsHr77N22EsAqZTDGOVcSBSm1mOXFQ,16322
168
+ crackerjack/services/dependency_analyzer.py,sha256=28u5zfV_2foVKmjfVbr9ATbxIPq7CPeyOiZJJNw9_ZU,16304
169
169
  crackerjack/services/dependency_monitor.py,sha256=x_PpRUt-LbzHlTyoSt2kiXTQn2fqAiqouiwFSAU9SGg,20560
170
170
  crackerjack/services/documentation_generator.py,sha256=xDJ2dv3Q_HTGCPJADKPVtYzcIpSOhuH5qUxPU2ttICE,16482
171
171
  crackerjack/services/documentation_service.py,sha256=V2fY01u_tP_ep87KMGxIocgP6hfpwbf-YyVqssLQSns,24792
172
172
  crackerjack/services/enhanced_filesystem.py,sha256=IT-obfj2U2Sfy0iJOq0ZAiczEN6LdHf6VAhnugQe1mQ,15487
173
173
  crackerjack/services/enterprise_optimizer.py,sha256=q6srIGxe18N9zH-MNhZ9R34sWnr_-ybGqOWnKyI17Zk,33798
174
- crackerjack/services/error_pattern_analyzer.py,sha256=bTMwhAMAjVPSUXrNkrtm1KDqfxjnyBMGAPwetBUGCM4,24402
174
+ crackerjack/services/error_pattern_analyzer.py,sha256=YKFQi_nXx5dq-Wvi6AngKEaA-Bv5ggTQ2B2ML0AtF0c,24415
175
175
  crackerjack/services/file_hasher.py,sha256=eReytwwK-_-B8JBnpwytDC52cKKgg4qpaxaZKcQjD-0,5211
176
176
  crackerjack/services/filesystem.py,sha256=nmL3mYqylS_BSQpwFbC7EMHoA44K5qUxa9CPg1QFZvc,17480
177
177
  crackerjack/services/git.py,sha256=g0D9K7PFGWiv_-CbPXEhGtxJVJccEsshYNEmGstjXss,12716
@@ -185,16 +185,16 @@ crackerjack/services/logging.py,sha256=aHHrK7Hnke-pqulyJHIoqfymHVyPc5Fxp0WQX_cvb
185
185
  crackerjack/services/lsp_client.py,sha256=6XPnNbKwDWaU5DEJWBCU7w1gii4glkTYgURulzYtWlY,22299
186
186
  crackerjack/services/memory_optimizer.py,sha256=GBRkzWNR1O7lkPV1EmGKMqtaJbRWOKavYYxsdTmKxSg,13328
187
187
  crackerjack/services/metrics.py,sha256=0_tiaK2-lBY0Y5MrS3Rrzyxft_JziGEEPgUXW486rX0,23122
188
- crackerjack/services/parallel_executor.py,sha256=cwKj8KKzaANn6zLmvPRr1v_nije_VqF6O6jSprBFDdM,13604
188
+ crackerjack/services/parallel_executor.py,sha256=cizgEnEeORp0SfBlkfhlLJyWMb1I87KUgR8ulB_5d90,13654
189
189
  crackerjack/services/pattern_cache.py,sha256=fdD-HPoImUnd07rlGuDfyFWG86teWpNVr2LacJkCZ5Q,11097
190
190
  crackerjack/services/pattern_detector.py,sha256=soB9zXsjsNFo5pzMpFhFehNOemPTCQh-ARdKlHi46U0,18032
191
- crackerjack/services/performance_benchmarks.py,sha256=HPH86UM9IArkWQgXm71abAhuGuriUza4i6_zyJNOGPc,11326
192
- crackerjack/services/performance_cache.py,sha256=d_sREaPQAdxFPKgLCgLMC4Iz-DdDc1QDYCbhvNYmUGQ,11858
191
+ crackerjack/services/performance_benchmarks.py,sha256=ssgPyDSl_l_VT-OYGkm55R8GmoQprW0tWCOE7DQQr_I,11383
192
+ crackerjack/services/performance_cache.py,sha256=Q7ziM-6kbbF3O6J89svVdm8fH-36Q3qQFo0jgR7BKhQ,11830
193
193
  crackerjack/services/performance_monitor.py,sha256=cDu6FoiUX2VpslA3vG4JL6YQyIk1JzDcD4g5zR8NdjI,20214
194
194
  crackerjack/services/predictive_analytics.py,sha256=OcZYP0p2_zZuyWqbqzLHDoHTxVfrPm3VtiY-Yq9y7xc,17843
195
195
  crackerjack/services/quality_baseline.py,sha256=ImC1XTFTfrwFIDDDX1F0V7sGquAXI21oVxgjOSYIYFQ,8229
196
196
  crackerjack/services/quality_baseline_enhanced.py,sha256=mBxzXD4lkegPc_q_KNJyorBk0cezud40lOWYDBWeNGU,24064
197
- crackerjack/services/quality_intelligence.py,sha256=iVmYJyyfiU78dR2lsl47PZBee8dj5eCI6f2lYksp0FM,28393
197
+ crackerjack/services/quality_intelligence.py,sha256=xXbfLODo4Ymgv0UsXivGJSoRjhC91gnNR9KcjWYOl8c,28393
198
198
  crackerjack/services/regex_patterns.py,sha256=iis9gSzXZtnX14lODGfSUsf7bcCRTw7rdSgog5DKFNk,117341
199
199
  crackerjack/services/regex_utils.py,sha256=e7AD59_L-T5-oOxzqsGgrLd94uxRE9aKnwasZkohwI8,14966
200
200
  crackerjack/services/secure_path_utils.py,sha256=aHsLwxDch42DidPYtTL_ko40g2rhbXDLnRhcx2LlGk8,16688
@@ -224,8 +224,8 @@ crackerjack/tools/validate_input_validator_patterns.py,sha256=NN7smYlXWrHLQXTb-8
224
224
  crackerjack/tools/validate_regex_patterns.py,sha256=J7GG9EP1fASpRIsG8qRPeiCSkdCwmk0sdo29GgoJ6w8,5863
225
225
  crackerjack/ui/__init__.py,sha256=eMb1OeTU-dSLICAACn0YdYB4Amdr8wHckjKfn0wOIZE,37
226
226
  crackerjack/ui/server_panels.py,sha256=F5IH6SNN06BaZQMsFx_D-OA286aojmaFPJ5kvvSRv_c,4232
227
- crackerjack-0.37.9.dist-info/METADATA,sha256=CCZxJnuN5szGZEggJFKNED1WCXd8B1EY7xHAaqL7E6M,37949
228
- crackerjack-0.37.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
229
- crackerjack-0.37.9.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
230
- crackerjack-0.37.9.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
231
- crackerjack-0.37.9.dist-info/RECORD,,
227
+ crackerjack-0.38.1.dist-info/METADATA,sha256=loyVdeEfQZi1tLq5e7L6selAIPb_Gdgssd7hmLhTz2o,38082
228
+ crackerjack-0.38.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
229
+ crackerjack-0.38.1.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
230
+ crackerjack-0.38.1.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
231
+ crackerjack-0.38.1.dist-info/RECORD,,