crackerjack 0.39.9__py3-none-any.whl → 0.39.11__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.

crackerjack/__main__.py CHANGED
@@ -474,14 +474,15 @@ def _handle_version_analysis(
474
474
 
475
475
 
476
476
  def _setup_debug_and_verbose_flags(
477
- ai_debug: bool, debug: bool, verbose: bool, options: t.Any
477
+ ai_fix: bool, ai_debug: bool, debug: bool, verbose: bool, options: t.Any
478
478
  ) -> tuple[bool, bool]:
479
479
  """Configure debug and verbose flags and update options.
480
480
 
481
+ Preserves the user's ai_fix flag value, but ai_debug can override it to True.
482
+
481
483
  Returns tuple of (ai_fix, verbose) flags.
482
484
  """
483
- ai_fix = False
484
-
485
+ # Preserve user's ai_fix flag, but ai_debug implies ai_fix
485
486
  if ai_debug:
486
487
  ai_fix = True
487
488
  verbose = True
@@ -1462,7 +1463,9 @@ def main(
1462
1463
  options.remove_from_index = remove_from_index
1463
1464
 
1464
1465
  # Setup debug and verbose flags
1465
- ai_fix, verbose = _setup_debug_and_verbose_flags(ai_debug, debug, verbose, options)
1466
+ ai_fix, verbose = _setup_debug_and_verbose_flags(
1467
+ ai_fix, ai_debug, debug, verbose, options
1468
+ )
1466
1469
  setup_ai_agent_env(ai_fix, ai_debug or debug)
1467
1470
 
1468
1471
  # Process all commands - returns True if should continue to main workflow
@@ -1860,16 +1860,36 @@ class WorkflowPipeline:
1860
1860
  async def _run_fast_hooks_phase_monitored(
1861
1861
  self, options: OptionsProtocol, workflow_id: str
1862
1862
  ) -> bool:
1863
+ iteration = self._start_iteration_tracking(options)
1864
+
1863
1865
  with phase_monitor(workflow_id, "fast_hooks") as monitor:
1864
1866
  monitor.record_sequential_op()
1865
- return self._run_fast_hooks_phase(options)
1867
+ fast_hooks_success = self._run_fast_hooks_phase(options)
1868
+
1869
+ # Delegate to AI workflow completion handler if AI agent enabled
1870
+ if options.ai_agent:
1871
+ return await self._handle_ai_workflow_completion(
1872
+ options, iteration, fast_hooks_success, True, workflow_id
1873
+ )
1874
+
1875
+ return fast_hooks_success
1866
1876
 
1867
1877
  async def _run_comprehensive_hooks_phase_monitored(
1868
1878
  self, options: OptionsProtocol, workflow_id: str
1869
1879
  ) -> bool:
1880
+ iteration = self._start_iteration_tracking(options)
1881
+
1870
1882
  with phase_monitor(workflow_id, "comprehensive_hooks") as monitor:
1871
1883
  monitor.record_sequential_op()
1872
- return self._run_comprehensive_hooks_phase(options)
1884
+ comprehensive_success = self._run_comprehensive_hooks_phase(options)
1885
+
1886
+ # Delegate to AI workflow completion handler if AI agent enabled
1887
+ if options.ai_agent:
1888
+ return await self._handle_ai_workflow_completion(
1889
+ options, iteration, True, comprehensive_success, workflow_id
1890
+ )
1891
+
1892
+ return comprehensive_success
1873
1893
 
1874
1894
  async def _run_testing_phase_async(
1875
1895
  self, options: OptionsProtocol, workflow_id: str
@@ -1933,6 +1953,8 @@ class WorkflowPipeline:
1933
1953
  async def _execute_standard_hooks_workflow_monitored(
1934
1954
  self, options: OptionsProtocol, workflow_id: str
1935
1955
  ) -> bool:
1956
+ iteration = self._start_iteration_tracking(options)
1957
+
1936
1958
  with phase_monitor(workflow_id, "hooks") as monitor:
1937
1959
  self._update_hooks_status_running()
1938
1960
 
@@ -1941,6 +1963,11 @@ class WorkflowPipeline:
1941
1963
  )
1942
1964
  if not fast_hooks_success:
1943
1965
  self._handle_hooks_completion(False)
1966
+ # If AI agent is enabled and hooks failed, delegate to AI workflow completion
1967
+ if options.ai_agent:
1968
+ return await self._handle_ai_workflow_completion(
1969
+ options, iteration, fast_hooks_success, False, workflow_id
1970
+ )
1944
1971
  return False
1945
1972
 
1946
1973
  if not self._execute_monitored_cleaning_phase(options):
@@ -1953,7 +1980,15 @@ class WorkflowPipeline:
1953
1980
 
1954
1981
  hooks_success = fast_hooks_success and comprehensive_success
1955
1982
  self._handle_hooks_completion(hooks_success)
1956
- return hooks_success
1983
+
1984
+ # Delegate to AI workflow completion handler to check if AI fixing is needed
1985
+ return await self._handle_ai_workflow_completion(
1986
+ options,
1987
+ iteration,
1988
+ fast_hooks_success,
1989
+ comprehensive_success,
1990
+ workflow_id,
1991
+ )
1957
1992
 
1958
1993
  def _execute_monitored_fast_hooks_phase(
1959
1994
  self, options: OptionsProtocol, monitor: t.Any
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.39.9
3
+ Version: 0.39.11
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
@@ -79,7 +79,7 @@ Description-Content-Type: text/markdown
79
79
  [![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)
80
80
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
81
81
  [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
82
- ![Coverage](https://img.shields.io/badge/coverage-18.0%25-red)
82
+ ![Coverage](https://img.shields.io/badge/coverage-17.9%25-red)
83
83
 
84
84
  ## 🎯 Purpose
85
85
 
@@ -1,5 +1,5 @@
1
1
  crackerjack/__init__.py,sha256=DajG9zHB8qBdgdiKMumrrssUbKeMXmtIQ3oOaSTb46Y,1426
2
- crackerjack/__main__.py,sha256=gS8PIp-98GUlZodL8vgOQNKUIo9qL-TY2FWQ2WXpqSk,58923
2
+ crackerjack/__main__.py,sha256=jf-77hiq9_OVWFUN3qaX1eiuFEg-GMDRnszwyujx22I,59085
3
3
  crackerjack/api.py,sha256=PyCRaZHvKWdu62_2O4t_HcEfKNBdqyrfPdonS_PNn4c,21495
4
4
  crackerjack/code_cleaner.py,sha256=M1zVaq31uW0nOkPneKR8kfR3892gyyVx0VhFgRaxsj4,44338
5
5
  crackerjack/dynamic_config.py,sha256=MQpZpTcGeWruPb98XMJrsQWinSgVnZlAh1vPGwcETh8,21757
@@ -61,7 +61,7 @@ crackerjack/core/service_watchdog.py,sha256=Ttj1imOxvUea4Tkf5JO1e2dQtGIK7D-bX1xO
61
61
  crackerjack/core/session_coordinator.py,sha256=TgoGE9DfXe2x-OkH93Ld9dX9ROjx2_mZFkGXen-z5YI,15680
62
62
  crackerjack/core/timeout_manager.py,sha256=_sbEsfYDwWx7y0Pn89QCoAZ5DpWIbCdtR9qkG_Kqj5E,15013
63
63
  crackerjack/core/websocket_lifecycle.py,sha256=74kn6ugu6FLlDQhCNSPgqguCFwRoT1WFOvtl8G2OyFc,12860
64
- crackerjack/core/workflow_orchestrator.py,sha256=Bnir2ojfq4u6J0npw1qqvYlPgCHjE8E8nIx1Y7cVEx0,78355
64
+ crackerjack/core/workflow_orchestrator.py,sha256=ysIhhSPwZF1OFcRO0gr4yb5fLss8Ag3jJRvgYFJcGWE,79794
65
65
  crackerjack/docs/INDEX.md,sha256=a6CGFEeL5DX_FRft_JFWd0nOxoBmCSSp-QHIC3B7ato,342
66
66
  crackerjack/docs/generated/api/API_REFERENCE.md,sha256=mWoqImZA7AhDvRqqF1MhUo70g_pnZr3NoBeZQRotqN8,155816
67
67
  crackerjack/docs/generated/api/CLI_REFERENCE.md,sha256=ikuG0hO5EjIiQlJtAUnvEuAhXDa-JHPULPXNNmUwvk4,2805
@@ -235,8 +235,8 @@ crackerjack/tools/validate_input_validator_patterns.py,sha256=NN7smYlXWrHLQXTb-8
235
235
  crackerjack/tools/validate_regex_patterns.py,sha256=J7GG9EP1fASpRIsG8qRPeiCSkdCwmk0sdo29GgoJ6w8,5863
236
236
  crackerjack/ui/__init__.py,sha256=eMb1OeTU-dSLICAACn0YdYB4Amdr8wHckjKfn0wOIZE,37
237
237
  crackerjack/ui/server_panels.py,sha256=F5IH6SNN06BaZQMsFx_D-OA286aojmaFPJ5kvvSRv_c,4232
238
- crackerjack-0.39.9.dist-info/METADATA,sha256=3LNLV29-k6if-5195KRHbFfjTFurn7L5uYkUBaEO8ss,42313
239
- crackerjack-0.39.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
240
- crackerjack-0.39.9.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
241
- crackerjack-0.39.9.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
242
- crackerjack-0.39.9.dist-info/RECORD,,
238
+ crackerjack-0.39.11.dist-info/METADATA,sha256=9c24Ghkza-ehvBuzxolKU6qg63_E3aqFF8sIOznD4qg,42314
239
+ crackerjack-0.39.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
240
+ crackerjack-0.39.11.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
241
+ crackerjack-0.39.11.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
242
+ crackerjack-0.39.11.dist-info/RECORD,,