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 +7 -4
- crackerjack/core/workflow_orchestrator.py +38 -3
- {crackerjack-0.39.9.dist-info → crackerjack-0.39.11.dist-info}/METADATA +2 -2
- {crackerjack-0.39.9.dist-info → crackerjack-0.39.11.dist-info}/RECORD +7 -7
- {crackerjack-0.39.9.dist-info → crackerjack-0.39.11.dist-info}/WHEEL +0 -0
- {crackerjack-0.39.9.dist-info → crackerjack-0.39.11.dist-info}/entry_points.txt +0 -0
- {crackerjack-0.39.9.dist-info → crackerjack-0.39.11.dist-info}/licenses/LICENSE +0 -0
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
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
[](https://github.com/astral-sh/uv)
|
|
80
80
|
[](https://github.com/pre-commit/pre-commit)
|
|
81
81
|
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
82
|
-

|
|
83
83
|
|
|
84
84
|
## 🎯 Purpose
|
|
85
85
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
crackerjack/__init__.py,sha256=DajG9zHB8qBdgdiKMumrrssUbKeMXmtIQ3oOaSTb46Y,1426
|
|
2
|
-
crackerjack/__main__.py,sha256=
|
|
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=
|
|
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.
|
|
239
|
-
crackerjack-0.39.
|
|
240
|
-
crackerjack-0.39.
|
|
241
|
-
crackerjack-0.39.
|
|
242
|
-
crackerjack-0.39.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|