crackerjack 0.34.1__tar.gz → 0.35.0__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.

Potentially problematic release.


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

Files changed (396) hide show
  1. {crackerjack-0.34.1 → crackerjack-0.35.0}/CHANGELOG.md +16 -0
  2. {crackerjack-0.34.1 → crackerjack-0.35.0}/CLAUDE.md +2 -0
  3. {crackerjack-0.34.1 → crackerjack-0.35.0}/PKG-INFO +1 -1
  4. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/__main__.py +3 -4
  5. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/documentation_agent.py +2 -2
  6. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/options.py +41 -9
  7. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/publish_manager.py +3 -3
  8. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/progress_components.py +3 -5
  9. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/dependency_monitor.py +2 -2
  10. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/health_metrics.py +2 -2
  11. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/secure_subprocess.py +42 -3
  12. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/security_logger.py +10 -4
  13. {crackerjack-0.34.1 → crackerjack-0.35.0}/pyproject.toml +1 -1
  14. {crackerjack-0.34.1 → crackerjack-0.35.0}/uv.lock +13 -13
  15. {crackerjack-0.34.1 → crackerjack-0.35.0}/.github/FUNDING.yml +0 -0
  16. {crackerjack-0.34.1 → crackerjack-0.35.0}/.gitignore +0 -0
  17. {crackerjack-0.34.1 → crackerjack-0.35.0}/.pre-commit-config.yaml +0 -0
  18. {crackerjack-0.34.1 → crackerjack-0.35.0}/AGENTS.md +0 -0
  19. {crackerjack-0.34.1 → crackerjack-0.35.0}/LICENSE +0 -0
  20. {crackerjack-0.34.1 → crackerjack-0.35.0}/QWEN.md +0 -0
  21. {crackerjack-0.34.1 → crackerjack-0.35.0}/README.md +0 -0
  22. {crackerjack-0.34.1 → crackerjack-0.35.0}/RULES.md +0 -0
  23. {crackerjack-0.34.1 → crackerjack-0.35.0}/SECURITY.md +0 -0
  24. {crackerjack-0.34.1 → crackerjack-0.35.0}/ai/AGENT-CAPABILITIES.json +0 -0
  25. {crackerjack-0.34.1 → crackerjack-0.35.0}/ai/AGENT_SELECTION.md +0 -0
  26. {crackerjack-0.34.1 → crackerjack-0.35.0}/ai/AI-REFERENCE.md +0 -0
  27. {crackerjack-0.34.1 → crackerjack-0.35.0}/ai/ERROR-PATTERNS.yaml +0 -0
  28. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/__init__.py +0 -0
  29. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/__init__.py +0 -0
  30. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/lsp_client.py +0 -0
  31. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/rust_tool_adapter.py +0 -0
  32. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/rust_tool_manager.py +0 -0
  33. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/skylos_adapter.py +0 -0
  34. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/adapters/zuban_adapter.py +0 -0
  35. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/__init__.py +0 -0
  36. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/architect_agent.py +0 -0
  37. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/base.py +0 -0
  38. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/coordinator.py +0 -0
  39. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/dry_agent.py +0 -0
  40. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/formatting_agent.py +0 -0
  41. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/import_optimization_agent.py +0 -0
  42. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/performance_agent.py +0 -0
  43. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/performance_helpers.py +0 -0
  44. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/proactive_agent.py +0 -0
  45. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/refactoring_agent.py +0 -0
  46. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/refactoring_helpers.py +0 -0
  47. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/security_agent.py +0 -0
  48. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/test_creation_agent.py +0 -0
  49. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/test_specialist_agent.py +0 -0
  50. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/agents/tracker.py +0 -0
  51. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/api.py +0 -0
  52. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/__init__.py +0 -0
  53. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/cache_handlers.py +0 -0
  54. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/cache_handlers_enhanced.py +0 -0
  55. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/facade.py +0 -0
  56. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/handlers.py +0 -0
  57. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/interactive.py +0 -0
  58. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/cli/utils.py +0 -0
  59. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/code_cleaner.py +0 -0
  60. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/config/__init__.py +0 -0
  61. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/config/global_lock_config.py +0 -0
  62. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/config/hooks.py +0 -0
  63. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/__init__.py +0 -0
  64. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/async_workflow_orchestrator.py +0 -0
  65. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/autofix_coordinator.py +0 -0
  66. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/container.py +0 -0
  67. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/enhanced_container.py +0 -0
  68. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/file_lifecycle.py +0 -0
  69. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/performance.py +0 -0
  70. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/performance_monitor.py +0 -0
  71. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/phase_coordinator.py +0 -0
  72. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/proactive_workflow.py +0 -0
  73. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/resource_manager.py +0 -0
  74. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/service_watchdog.py +0 -0
  75. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/session_coordinator.py +0 -0
  76. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/timeout_manager.py +0 -0
  77. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/websocket_lifecycle.py +0 -0
  78. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/core/workflow_orchestrator.py +0 -0
  79. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/INDEX.md +0 -0
  80. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/generated/api/API_REFERENCE.md +0 -0
  81. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/generated/api/CLI_REFERENCE.md +0 -0
  82. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/generated/api/CROSS_REFERENCES.md +0 -0
  83. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/generated/api/PROTOCOLS.md +0 -0
  84. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/docs/generated/api/SERVICES.md +0 -0
  85. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/documentation/__init__.py +0 -0
  86. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/documentation/ai_templates.py +0 -0
  87. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/documentation/dual_output_generator.py +0 -0
  88. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/documentation/mkdocs_integration.py +0 -0
  89. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/documentation/reference_generator.py +0 -0
  90. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/dynamic_config.py +0 -0
  91. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/errors.py +0 -0
  92. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/__init__.py +0 -0
  93. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/async_hook_executor.py +0 -0
  94. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/cached_hook_executor.py +0 -0
  95. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/hook_executor.py +0 -0
  96. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/hook_lock_manager.py +0 -0
  97. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/individual_hook_executor.py +0 -0
  98. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/lsp_aware_hook_executor.py +0 -0
  99. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/executors/tool_proxy.py +0 -0
  100. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/hooks/lsp_hook.py +0 -0
  101. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/__init__.py +0 -0
  102. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/adaptive_learning.py +0 -0
  103. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/agent_orchestrator.py +0 -0
  104. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/agent_registry.py +0 -0
  105. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/agent_selector.py +0 -0
  106. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/intelligence/integration.py +0 -0
  107. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/interactive.py +0 -0
  108. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/__init__.py +0 -0
  109. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/async_hook_manager.py +0 -0
  110. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/hook_manager.py +0 -0
  111. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/test_command_builder.py +0 -0
  112. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/test_executor.py +0 -0
  113. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/test_manager.py +0 -0
  114. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/test_manager_backup.py +0 -0
  115. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/managers/test_progress.py +0 -0
  116. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/__init__.py +0 -0
  117. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/cache.py +0 -0
  118. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/client_runner.py +0 -0
  119. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/context.py +0 -0
  120. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/dashboard.py +0 -0
  121. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/enhanced_progress_monitor.py +0 -0
  122. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/enhanced_progress_monitor.tcss +0 -0
  123. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/file_monitor.py +0 -0
  124. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/progress_monitor.py +0 -0
  125. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/progress_monitor.tcss +0 -0
  126. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/rate_limiter.py +0 -0
  127. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/server.py +0 -0
  128. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/server_core.py +0 -0
  129. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/service_watchdog.py +0 -0
  130. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/state.py +0 -0
  131. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/task_manager.py +0 -0
  132. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/__init__.py +0 -0
  133. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/core_tools.py +0 -0
  134. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/error_analyzer.py +0 -0
  135. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/execution_tools.py +0 -0
  136. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/execution_tools_backup.py +0 -0
  137. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/intelligence_tool_registry.py +0 -0
  138. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/intelligence_tools.py +0 -0
  139. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/monitoring_tools.py +0 -0
  140. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/monitoring_tools.py.backup +0 -0
  141. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/proactive_tools.py +0 -0
  142. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/progress_tools.py +0 -0
  143. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/utility_tools.py +0 -0
  144. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/tools/workflow_executor.py +0 -0
  145. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/__init__.py +0 -0
  146. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/app.py +0 -0
  147. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/endpoints.py +0 -0
  148. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/jobs.py +0 -0
  149. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/monitoring_endpoints.py +0 -0
  150. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/server.py +0 -0
  151. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket/websocket_handler.py +0 -0
  152. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mcp/websocket_server.py +0 -0
  153. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mixins/__init__.py +0 -0
  154. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/mixins/error_handling.py +0 -0
  155. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/__init__.py +0 -0
  156. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/config.py +0 -0
  157. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/config_adapter.py +0 -0
  158. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/protocols.py +0 -0
  159. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/resource_protocols.py +0 -0
  160. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/models/task.py +0 -0
  161. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/monitoring/__init__.py +0 -0
  162. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/monitoring/ai_agent_watchdog.py +0 -0
  163. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/monitoring/metrics_collector.py +0 -0
  164. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/monitoring/regression_prevention.py +0 -0
  165. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/monitoring/websocket_server.py +0 -0
  166. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/orchestration/__init__.py +0 -0
  167. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/orchestration/advanced_orchestrator.py +0 -0
  168. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/orchestration/coverage_improvement.py +0 -0
  169. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/orchestration/execution_strategies.py +0 -0
  170. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/orchestration/test_progress_streamer.py +0 -0
  171. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/plugins/__init__.py +0 -0
  172. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/plugins/base.py +0 -0
  173. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/plugins/hooks.py +0 -0
  174. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/plugins/loader.py +0 -0
  175. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/plugins/managers.py +0 -0
  176. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/pyproject.toml +0 -0
  177. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/security/__init__.py +0 -0
  178. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/security/audit.py +0 -0
  179. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/__init__.py +0 -0
  180. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/anomaly_detector.py +0 -0
  181. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/api_extractor.py +0 -0
  182. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/backup_service.py +0 -0
  183. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/bounded_status_operations.py +0 -0
  184. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/cache.py +0 -0
  185. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/changelog_automation.py +0 -0
  186. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/config.py +0 -0
  187. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/config_integrity.py +0 -0
  188. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/config_merge.py +0 -0
  189. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/config_template.py +0 -0
  190. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/contextual_ai_assistant.py +0 -0
  191. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/coverage_badge_service.py +0 -0
  192. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/coverage_ratchet.py +0 -0
  193. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/debug.py +0 -0
  194. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/dependency_analyzer.py +0 -0
  195. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/documentation_generator.py +0 -0
  196. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/documentation_service.py +0 -0
  197. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/enhanced_filesystem.py +0 -0
  198. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/enterprise_optimizer.py +0 -0
  199. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/error_pattern_analyzer.py +0 -0
  200. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/file_hasher.py +0 -0
  201. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/filesystem.py +0 -0
  202. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/git.py +0 -0
  203. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/heatmap_generator.py +0 -0
  204. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/initialization.py +0 -0
  205. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/input_validator.py +0 -0
  206. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/intelligent_commit.py +0 -0
  207. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/log_manager.py +0 -0
  208. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/logging.py +0 -0
  209. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/lsp_client.py +0 -0
  210. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/memory_optimizer.py +0 -0
  211. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/metrics.py +0 -0
  212. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/parallel_executor.py +0 -0
  213. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/pattern_cache.py +0 -0
  214. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/pattern_detector.py +0 -0
  215. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/performance_benchmarks.py +0 -0
  216. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/performance_cache.py +0 -0
  217. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/performance_monitor.py +0 -0
  218. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/predictive_analytics.py +0 -0
  219. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/quality_baseline.py +0 -0
  220. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/quality_baseline_enhanced.py +0 -0
  221. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/quality_intelligence.py +0 -0
  222. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/regex_patterns.py +0 -0
  223. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/regex_utils.py +0 -0
  224. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/secure_path_utils.py +0 -0
  225. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/secure_status_formatter.py +0 -0
  226. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/security.py +0 -0
  227. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/server_manager.py +0 -0
  228. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/smart_scheduling.py +0 -0
  229. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/status_authentication.py +0 -0
  230. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/status_security_manager.py +0 -0
  231. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/terminal_utils.py +0 -0
  232. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/thread_safe_status_collector.py +0 -0
  233. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/tool_version_service.py +0 -0
  234. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/unified_config.py +0 -0
  235. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/validation_rate_limiter.py +0 -0
  236. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/version_analyzer.py +0 -0
  237. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/version_checker.py +0 -0
  238. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/websocket_resource_limiter.py +0 -0
  239. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/services/zuban_lsp_service.py +0 -0
  240. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/slash_commands/__init__.py +0 -0
  241. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/slash_commands/init.md +0 -0
  242. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/slash_commands/run.md +0 -0
  243. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/slash_commands/status.md +0 -0
  244. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/tools/__init__.py +0 -0
  245. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/tools/fix_terminal.sh +0 -0
  246. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/tools/validate_input_validator_patterns.py +0 -0
  247. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/tools/validate_regex_patterns.py +0 -0
  248. {crackerjack-0.34.1 → crackerjack-0.35.0}/crackerjack/uv.lock +0 -0
  249. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/architecture/API_REFERENCE.md +0 -0
  250. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/architecture/ARCHITECTURE.md +0 -0
  251. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/archive/CONFIG_MANAGEMENT_REPLACEMENT_PLAN.md +0 -0
  252. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/archive/CONFIG_MERGE_REMOVAL_PLAN.md +0 -0
  253. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/archive/DOCUMENTATION_REORGANIZATION_PLAN.md +0 -0
  254. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/development/IDE-SETUP.md +0 -0
  255. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/development/RUST_TOOLING_FRAMEWORK.md +0 -0
  256. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/COMPLEXITY_REFACTORING_PLAN.md +0 -0
  257. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/COVERAGE_BADGE_IMPLEMENTATION_PLAN.md +0 -0
  258. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/CURRENT_IMPLEMENTATION_STATUS.md +0 -0
  259. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/DOCUMENTATION_SYSTEM_ARCHITECTURE.md +0 -0
  260. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/EXPERIMENTAL-EVALUATION.md +0 -0
  261. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/FEATURE_IMPLEMENTATION_PLAN.md +0 -0
  262. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_IMPLEMENTATION_SUMMARY.md +0 -0
  263. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_PLAN.md +0 -0
  264. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/STAGE_HEADERS_IMPLEMENTATION_PLAN.md +0 -0
  265. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/TIMEOUT_ARCHITECTURE_SOLUTION.md +0 -0
  266. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/TYPE_ANNOTATION_FIXING_PLAN.md +0 -0
  267. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/UVXUSAGE.md +0 -0
  268. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/ZUBAN_LSP_INTEGRATION_PLAN.md +0 -0
  269. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/planning/ZUBAN_TOML_PARSING_BUG_ANALYSIS.md +0 -0
  270. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/INPUT_VALIDATOR_SECURITY_AUDIT.md +0 -0
  271. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/SECURITY-AUDIT.md +0 -0
  272. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/SECURITY_AUDIT_REPORT.md +0 -0
  273. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/SECURITY_AUDIT_STATUS_DISCLOSURE.md +0 -0
  274. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/SECURITY_HARDENING_REPORT.md +0 -0
  275. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/security/SECURITY_SUBPROCESS_HARDENING_REPORT.md +0 -0
  276. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/BACKUP_SYSTEM.md +0 -0
  277. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/CACHING_SYSTEM.md +0 -0
  278. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/DASHBOARD_ARCHITECTURE.md +0 -0
  279. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/MCP_INTEGRATION.md +0 -0
  280. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/MONITORING_INTEGRATION.md +0 -0
  281. {crackerjack-0.34.1 → crackerjack-0.35.0}/docs/systems/UNIFIED_MONITORING_ARCHITECTURE.md +0 -0
  282. {crackerjack-0.34.1 → crackerjack-0.35.0}/example.mcp.json +0 -0
  283. {crackerjack-0.34.1 → crackerjack-0.35.0}/excalidraw.log +0 -0
  284. {crackerjack-0.34.1 → crackerjack-0.35.0}/fix_typing_imports.py +0 -0
  285. {crackerjack-0.34.1 → crackerjack-0.35.0}/mypy.ini +0 -0
  286. {crackerjack-0.34.1 → crackerjack-0.35.0}/scripts/__init__.py +0 -0
  287. {crackerjack-0.34.1 → crackerjack-0.35.0}/scripts/integrate_resource_management.py +0 -0
  288. {crackerjack-0.34.1 → crackerjack-0.35.0}/scripts/performance_benchmark.py +0 -0
  289. {crackerjack-0.34.1 → crackerjack-0.35.0}/templates/api_reference.md.template +0 -0
  290. {crackerjack-0.34.1 → crackerjack-0.35.0}/templates/changelog_entry.md.template +0 -0
  291. {crackerjack-0.34.1 → crackerjack-0.35.0}/templates/user_guide.md.template +0 -0
  292. {crackerjack-0.34.1 → crackerjack-0.35.0}/test_docs_site/site/docs/api-reference.md +0 -0
  293. {crackerjack-0.34.1 → crackerjack-0.35.0}/test_docs_site/site/docs/getting-started.md +0 -0
  294. {crackerjack-0.34.1 → crackerjack-0.35.0}/test_docs_site/site/docs/index.md +0 -0
  295. {crackerjack-0.34.1 → crackerjack-0.35.0}/test_docs_site/site/docs/stylesheets/extra.css +0 -0
  296. {crackerjack-0.34.1 → crackerjack-0.35.0}/test_docs_site/site/mkdocs.yml +0 -0
  297. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/__init__.py +0 -0
  298. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/base_test.py +0 -0
  299. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/conftest.py +0 -0
  300. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/coverage.json +0 -0
  301. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/data/__init__.py +0 -0
  302. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/data/comments_sample.txt +0 -0
  303. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/data/docstrings_sample.txt +0 -0
  304. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/data/expected_comments_sample.txt +0 -0
  305. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/data/init.py +0 -0
  306. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/docs/HEALTH_METRICS_TESTING_SUMMARY.md +0 -0
  307. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/docs/TEST_COVERAGE_PLAN.md +0 -0
  308. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/docs/TEST_IMPLEMENTATION_PLAN.md +0 -0
  309. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/run_tests.py +0 -0
  310. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/scripts/__init__.py +0 -0
  311. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/scripts/agent_audit_report.py +0 -0
  312. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/scripts/run_test_suite.py +0 -0
  313. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test___main__.py +0 -0
  314. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_ai_agent_workflow.py +0 -0
  315. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_ai_optimized_documentation.py +0 -0
  316. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_async_hook_executor.py +0 -0
  317. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_changelog_generation.py +0 -0
  318. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_cli/__init__.py +0 -0
  319. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_cli/test_global_lock_options.py +0 -0
  320. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_cli_semantic_naming.py +0 -0
  321. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_coordinator_performance.py +0 -0
  322. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_autofix_coordinator.py +0 -0
  323. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_comprehensive.py +0 -0
  324. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_coverage.py +0 -0
  325. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_enhanced_container.py +0 -0
  326. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_modules.py +0 -0
  327. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_core_performance.py +0 -0
  328. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_documentation_agent_simple.py +0 -0
  329. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_dynamic_config.py +0 -0
  330. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_dynamic_config_coverage.py +0 -0
  331. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_end_to_end_integration.py +0 -0
  332. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_enhanced_filesystem.py +0 -0
  333. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_enhanced_filesystem_comprehensive.py +0 -0
  334. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_enhanced_filesystem_coverage.py +0 -0
  335. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_execution_speed_optimization.py +0 -0
  336. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_executors/__init__.py +0 -0
  337. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_executors/test_lock_integration.py +0 -0
  338. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_fast_hooks_behavior.py +0 -0
  339. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_filesystem_coverage.py +0 -0
  340. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_final_validation.py +0 -0
  341. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_global_lock_config.py +0 -0
  342. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_hook_lock_manager.py +0 -0
  343. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_hook_manager_simple.py +0 -0
  344. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_import_coverage_consolidated.py +0 -0
  345. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_input_validation.py +0 -0
  346. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_intelligence_system.py +0 -0
  347. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_large_modules_coverage.py +0 -0
  348. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_main_entry_coverage.py +0 -0
  349. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_main_module.py +0 -0
  350. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_managers_consolidated.py +0 -0
  351. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_mcp_progress_monitor.py +0 -0
  352. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_mcp_server.py +0 -0
  353. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_models_comprehensive.py +0 -0
  354. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_models_config_adapter_coverage.py +0 -0
  355. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_models_focused.py +0 -0
  356. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_models_task_coverage.py +0 -0
  357. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_modernized_code.py +0 -0
  358. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_performance_agent_enhanced.py +0 -0
  359. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_performance_agent_simple.py +0 -0
  360. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_performance_benchmarks_focused.py.bak +0 -0
  361. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_phase_coordinator_simple.py +0 -0
  362. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_plugins_coverage.py +0 -0
  363. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_proactive_agent_system.py +0 -0
  364. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_protocol_compliance.py +0 -0
  365. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_publish_manager_coverage.py +0 -0
  366. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_pytest_features.py +0 -0
  367. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_regex_patterns.py +0 -0
  368. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_resource_cleanup_integration.py +0 -0
  369. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_secure_path_utils.py +0 -0
  370. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_secure_status_formatter.py +0 -0
  371. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_security_audit.py +0 -0
  372. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_security_hardening.py +0 -0
  373. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_security_integration.py +0 -0
  374. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_services_coverage.py +0 -0
  375. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_session_coordinator.py +0 -0
  376. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_session_coordinator_coverage.py +0 -0
  377. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_simple_tool_version_service.py +0 -0
  378. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_simple_workflow.py +0 -0
  379. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_stage_workflow_execution_order.py +0 -0
  380. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_structured_errors.py +0 -0
  381. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_structured_logging.py +0 -0
  382. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_syntax_validation.py +0 -0
  383. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_terminal_restoration.py +0 -0
  384. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_terminal_state.py +0 -0
  385. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_timeout_system.py +0 -0
  386. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_unified_api.py +0 -0
  387. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_unified_config.py +0 -0
  388. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_unified_monitoring_dashboard.py +0 -0
  389. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_validate_regex_patterns_tool.py +0 -0
  390. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_version_analyzer.py +0 -0
  391. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_version_bump_analyzer.py +0 -0
  392. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_websocket_endpoints.py +0 -0
  393. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_workflow_fast_hooks.py +0 -0
  394. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_workflow_integration.py +0 -0
  395. {crackerjack-0.34.1 → crackerjack-0.35.0}/tests/test_workflow_orchestrator.py +0 -0
  396. {crackerjack-0.34.1 → crackerjack-0.35.0}/tools/validate_regex_patterns_standalone.py +0 -0
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.35.0] - 2025-09-15
9
+
10
+ ### Fixed
11
+
12
+ - cli: Add 'auto' option to BumpOption enum and fix URL formatting
13
+
14
+ ### Documentation
15
+
16
+ - config: Update CHANGELOG, CLAUDE, pyproject
17
+
18
+ ## [0.34.2] - 2025-09-15
19
+
20
+ ### Fixed
21
+
22
+ - security: Suppress verbose logging and fix commit validation error (parentheses allowed)
23
+
8
24
  ## [0.34.0] - 2025-09-15
9
25
 
10
26
  ### Changed
@@ -347,3 +347,5 @@ from ..models.protocols import TestManagerProtocol
347
347
  - make sure to run `python -m crackerjack` after every editing/debugging cycle for quality checking
348
348
  - always put implementation plans in a md doc for review and reference
349
349
  - think when you need to think, think harder when you need to think harder
350
+
351
+ # Test debug logging
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.34.1
3
+ Version: 0.35.0
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
@@ -11,7 +11,6 @@ from crackerjack.services.git import GitService
11
11
 
12
12
  from .cli import (
13
13
  CLI_OPTIONS,
14
- BumpOption,
15
14
  create_options,
16
15
  handle_interactive_mode,
17
16
  handle_standard_mode,
@@ -1220,9 +1219,9 @@ def main(
1220
1219
  update_precommit: bool = CLI_OPTIONS["update_precommit"],
1221
1220
  verbose: bool = CLI_OPTIONS["verbose"],
1222
1221
  debug: bool = CLI_OPTIONS["debug"],
1223
- publish: BumpOption | None = CLI_OPTIONS["publish"],
1224
- all: BumpOption | None = CLI_OPTIONS["all"],
1225
- bump: BumpOption | None = CLI_OPTIONS["bump"],
1222
+ publish: str | None = CLI_OPTIONS["publish"],
1223
+ all: str | None = CLI_OPTIONS["all"],
1224
+ bump: str | None = CLI_OPTIONS["bump"],
1226
1225
  strip_code: bool = CLI_OPTIONS["strip_code"],
1227
1226
  run_tests: bool = CLI_OPTIONS["run_tests"],
1228
1227
  benchmark: bool = CLI_OPTIONS["benchmark"],
@@ -325,8 +325,8 @@ class DocumentationAgent(SubAgent):
325
325
 
326
326
  All notable changes to this project will be documented in this file.
327
327
 
328
- The format is based on [Keep a Changelog](https: //keepachangelog.com/en/1.0.0/),
329
- and this project adheres to [Semantic Versioning](https: //semver.org/spec/v2.0.0.html).
328
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
329
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
330
330
 
331
331
  {entry}
332
332
  """
@@ -2,15 +2,36 @@ import typing as t
2
2
  import warnings
3
3
  from enum import Enum
4
4
 
5
+ import click
5
6
  import typer
6
7
  from pydantic import BaseModel, field_validator, model_validator
7
8
 
8
9
 
10
+ def parse_bump_option_with_flag_support(
11
+ ctx: click.Context, param: click.Parameter, value: str | None
12
+ ) -> str | None:
13
+ """Parse bump option that supports both flag usage (-p) and value usage (-p patch)."""
14
+ if value is None:
15
+ return None
16
+
17
+ # If the value starts with a dash, it's likely another flag that typer mistakenly captured
18
+ if value.startswith("-"):
19
+ # Put the value back into the arguments for typer to process
20
+ if hasattr(ctx, "protected_args"):
21
+ ctx.protected_args.insert(0, value)
22
+ elif hasattr(ctx, "args"):
23
+ ctx.args.insert(0, value)
24
+ return "interactive"
25
+
26
+ return value
27
+
28
+
9
29
  class BumpOption(str, Enum):
10
30
  patch = "patch"
11
31
  minor = "minor"
12
32
  major = "major"
13
33
  interactive = "interactive"
34
+ auto = "auto"
14
35
 
15
36
  def __str__(self) -> str:
16
37
  return str(self.value)
@@ -91,7 +112,7 @@ class Options(BaseModel):
91
112
  strip_code: bool | None = None # Replaces clean
92
113
  run_tests: bool = False # Replaces test
93
114
  ai_fix: bool | None = None # Replaces ai_agent
94
- full_release: BumpOption | None = None # Replaces all
115
+ full_release: str | None = None # Replaces all
95
116
  show_progress: bool | None = None # Replaces track_progress
96
117
  advanced_monitor: bool | None = None # Replaces enhanced_monitor
97
118
  coverage_report: bool | None = None # Replaces coverage_status
@@ -223,6 +244,11 @@ class Options(BaseModel):
223
244
  return None
224
245
  if value == "":
225
246
  return BumpOption.interactive
247
+
248
+ # Handle case where typer parsed a flag as the value (e.g., -p -c becomes value="-c")
249
+ if isinstance(value, str) and value.startswith("-"):
250
+ return BumpOption.interactive
251
+
226
252
  try:
227
253
  return BumpOption(value.lower())
228
254
  except ValueError:
@@ -275,9 +301,12 @@ CLI_OPTIONS = {
275
301
  None,
276
302
  "-p",
277
303
  "--publish",
304
+ callback=parse_bump_option_with_flag_support,
278
305
  help=(
279
- "Bump version and publish to PyPI (patch, minor, major). "
280
- "Use 'interactive' to be prompted for version selection."
306
+ "Bump version and publish to PyPI (patch, minor, major, auto). "
307
+ "Use 'interactive' to be prompted for version selection. "
308
+ "Use 'auto' to automatically use AI recommendations. "
309
+ "When used as a flag (-p), defaults to 'interactive'."
281
310
  ),
282
311
  case_sensitive=False,
283
312
  ),
@@ -285,14 +314,16 @@ CLI_OPTIONS = {
285
314
  None,
286
315
  "-a",
287
316
  "--all",
288
- help="Full release workflow: bump version, run quality checks, and publish (patch, minor, major).",
317
+ callback=parse_bump_option_with_flag_support,
318
+ help="Full release workflow: bump version, run quality checks, and publish (patch, minor, major, auto). When used as a flag (-a), defaults to 'interactive'.",
289
319
  case_sensitive=False,
290
320
  ),
291
321
  "bump": typer.Option(
292
322
  None,
293
323
  "-b",
294
324
  "--bump",
295
- help="Bump version (patch, minor, major).",
325
+ callback=parse_bump_option_with_flag_support,
326
+ help="Bump version (patch, minor, major, auto). When used as a flag (-b), defaults to 'interactive'.",
296
327
  case_sensitive=False,
297
328
  ),
298
329
  "benchmark": typer.Option(
@@ -644,7 +675,8 @@ CLI_OPTIONS = {
644
675
  None,
645
676
  "-a",
646
677
  "--full-release",
647
- help="Complete release workflow: strip code, run tests, bump version, and publish. Equivalent to `-x -t -p <version> -c`.",
678
+ callback=parse_bump_option_with_flag_support,
679
+ help="Complete release workflow: strip code, run tests, bump version, and publish (patch, minor, major, auto). Equivalent to `-x -t -p <version> -c`. When used as a flag (-a), defaults to 'interactive'.",
648
680
  case_sensitive=False,
649
681
  ),
650
682
  "show_progress": typer.Option(
@@ -869,8 +901,8 @@ def create_options(
869
901
  update_precommit: bool,
870
902
  verbose: bool,
871
903
  debug: bool,
872
- publish: BumpOption | None,
873
- bump: BumpOption | None,
904
+ publish: str | None,
905
+ bump: str | None,
874
906
  benchmark: bool,
875
907
  test_workers: int,
876
908
  test_timeout: int,
@@ -953,7 +985,7 @@ def create_options(
953
985
  strip_code: bool | None = None,
954
986
  run_tests: bool = False,
955
987
  ai_fix: bool | None = None,
956
- full_release: BumpOption | None = None,
988
+ full_release: str | None = None,
957
989
  show_progress: bool | None = None,
958
990
  advanced_monitor: bool | None = None,
959
991
  coverage_report: bool | None = None,
@@ -284,7 +284,7 @@ class PublishManagerImpl:
284
284
  [
285
285
  "keyring",
286
286
  "get",
287
- "https: //upload.pypi.org/legacy/",
287
+ "https://upload.pypi.org/legacy/",
288
288
  "__token__",
289
289
  ],
290
290
  )
@@ -315,7 +315,7 @@ class PublishManagerImpl:
315
315
  " 1. Set environment variable: export UV_PUBLISH_TOKEN=<your-pypi-token>",
316
316
  )
317
317
  self.console.print(
318
- " 2. Use keyring: keyring set[t.Any] https: //upload.pypi.org/legacy/ __token__",
318
+ " 2. Use keyring: keyring set[t.Any] https://upload.pypi.org/legacy/ __token__",
319
319
  )
320
320
  self.console.print(
321
321
  " 3. Ensure token starts with 'pypi-' and is properly formatted",
@@ -434,7 +434,7 @@ class PublishManagerImpl:
434
434
  package_name = self._get_package_name()
435
435
 
436
436
  if package_name and current_version:
437
- url = f"https: //pypi.org/project/{package_name}/{current_version}/"
437
+ url = f"https://pypi.org/project/{package_name}/{current_version}/"
438
438
  self.console.print(f"[cyan]🔗[/ cyan] Package URL: {url}")
439
439
 
440
440
  def _get_package_name(self) -> str | None:
@@ -157,11 +157,9 @@ class JobDataCollector:
157
157
  "network_operations",
158
158
  timeout=5.0,
159
159
  ):
160
- websocket_base = self.websocket_url.replace(
161
- "ws: //", "http: //"
162
- ).replace(
163
- "wss: //",
164
- "https: //",
160
+ websocket_base = self.websocket_url.replace("ws://", "http://").replace(
161
+ "wss://",
162
+ "https://",
165
163
  )
166
164
 
167
165
  async with (
@@ -452,13 +452,13 @@ class DependencyMonitorService:
452
452
 
453
453
  import requests
454
454
 
455
- url = f"https: //pypi.org/pypi/{package}/json"
455
+ url = f"https://pypi.org/pypi/{package}/json"
456
456
  self._validate_pypi_url(url)
457
457
 
458
458
  parsed = urlparse(url)
459
459
 
460
460
  if parsed.scheme != "https" or parsed.netloc != "pypi.org":
461
- msg = f"Invalid URL: only https: //pypi.org URLs are allowed, got {url}"
461
+ msg = f"Invalid URL: only https://pypi.org URLs are allowed, got {url}"
462
462
  raise ValueError(msg)
463
463
 
464
464
  response = requests.get(url, timeout=10, verify=True)
@@ -347,11 +347,11 @@ class HealthMetricsService:
347
347
  try:
348
348
  from urllib.parse import urlparse
349
349
 
350
- url = f"https: //pypi.org/pypi/{package_name}/json"
350
+ url = f"https://pypi.org/pypi/{package_name}/json"
351
351
 
352
352
  parsed = urlparse(url)
353
353
  if parsed.scheme != "https" or parsed.netloc != "pypi.org":
354
- msg = f"Invalid URL: only https: //pypi.org URLs are allowed, got {url}"
354
+ msg = f"Invalid URL: only https://pypi.org URLs are allowed, got {url}"
355
355
  raise ValueError(msg)
356
356
 
357
357
  if not parsed.path.startswith("/pypi/") or not parsed.path.endswith(
@@ -318,20 +318,47 @@ class SecureSubprocessExecutor:
318
318
  )
319
319
  continue
320
320
 
321
- if self._has_dangerous_patterns(arg, i, issues):
321
+ if self._has_dangerous_patterns(arg, i, issues, command):
322
322
  continue
323
323
 
324
324
  validated_command.append(arg)
325
325
 
326
326
  return validated_command, issues
327
327
 
328
- def _has_dangerous_patterns(self, arg: str, index: int, issues: list[str]) -> bool:
328
+ def _has_dangerous_patterns(
329
+ self, arg: str, index: int, issues: list[str], command: list[str]
330
+ ) -> bool:
329
331
  # First check if this is an allowed git pattern
330
332
  for git_pattern in self.allowed_git_patterns:
331
333
  if re.match(git_pattern, arg):
332
334
  return False # It's an allowed git pattern, don't flag as dangerous
333
335
 
334
- # Check for dangerous patterns
336
+ # Special handling for git commit messages
337
+ if self._is_git_commit_message(index, command):
338
+ # For git commit messages, only check for truly dangerous patterns
339
+ # Parentheses are common in commit messages and should be allowed
340
+ safe_commit_patterns = [
341
+ r"[;&|`$]", # Still dangerous in commit messages
342
+ r"\.\./", # Path traversal
343
+ r"\$\{.*\}", # Variable expansion
344
+ r"`.*`", # Command substitution
345
+ r"\$\(.*\)", # Command substitution (but allow simple parentheses)
346
+ r">\s*/", # Redirection to paths
347
+ r"<\s*/", # Redirection from paths
348
+ ]
349
+
350
+ for pattern in safe_commit_patterns:
351
+ if re.search(pattern, arg):
352
+ # Allow simple parentheses that don't look like command substitution
353
+ if pattern == r"\$\(.*\)" and not re.search(r"\$\(", arg):
354
+ continue
355
+ issues.append(
356
+ f"Dangerous pattern '{pattern}' in argument {index}: {arg[:50]}"
357
+ )
358
+ return True
359
+ return False
360
+
361
+ # Check for dangerous patterns in other contexts
335
362
  for pattern in self.dangerous_patterns:
336
363
  if re.search(pattern, arg):
337
364
  issues.append(
@@ -340,6 +367,18 @@ class SecureSubprocessExecutor:
340
367
  return True
341
368
  return False
342
369
 
370
+ def _is_git_commit_message(self, index: int, command: list[str]) -> bool:
371
+ """Check if the current argument is likely a git commit message."""
372
+ # Check if we have a git commit command structure: git commit -m <message>
373
+ if (
374
+ len(command) >= 3
375
+ and command[0] == "git"
376
+ and command[1] == "commit"
377
+ and command[2] == "-m"
378
+ ):
379
+ return index == 3
380
+ return False
381
+
343
382
  def _validate_executable_permissions(
344
383
  self, validated_command: list[str], issues: list[str]
345
384
  ) -> None:
@@ -122,20 +122,26 @@ class SecurityLogger:
122
122
  self._setup_security_logger()
123
123
 
124
124
  def _setup_security_logger(self) -> None:
125
- self.logger.setLevel(logging.DEBUG)
125
+ debug_enabled = os.environ.get("CRACKERJACK_DEBUG", "0") == "1"
126
+
127
+ # Set appropriate logger level based on debug mode
128
+ if debug_enabled:
129
+ self.logger.setLevel(logging.DEBUG)
130
+ else:
131
+ # Suppress all security logs during normal operation
132
+ self.logger.setLevel(logging.CRITICAL + 10)
126
133
 
127
134
  if not self.logger.handlers:
128
135
  console_handler = logging.StreamHandler()
129
136
 
130
- debug_enabled = os.environ.get("CRACKERJACK_DEBUG", "0") == "1"
131
137
  if debug_enabled:
132
- console_handler.setLevel(logging.WARNING)
138
+ console_handler.setLevel(logging.DEBUG)
133
139
  else:
134
140
  # Suppress all security logs during normal operation
135
141
  console_handler.setLevel(logging.CRITICAL + 10)
136
142
 
137
143
  formatter = logging.Formatter(
138
- "%(asctime)s - SECURITY - %(levelname)s-%(message)s"
144
+ "%(asctime)s - SECURITY - %(levelname)s - %(message)s"
139
145
  )
140
146
  console_handler.setFormatter(formatter)
141
147
  self.logger.addHandler(console_handler)
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "crackerjack"
9
- version = "0.34.1"
9
+ version = "0.35.0"
10
10
  description = "Crackerjack Python project management tool"
11
11
  readme = "README.md"
12
12
  authors = [
@@ -165,15 +165,15 @@ css = [
165
165
 
166
166
  [[package]]
167
167
  name = "blessed"
168
- version = "1.21.0"
168
+ version = "1.22.0"
169
169
  source = { registry = "https://pypi.org/simple" }
170
170
  dependencies = [
171
171
  { name = "jinxed", marker = "sys_platform == 'win32'" },
172
172
  { name = "wcwidth" },
173
173
  ]
174
- sdist = { url = "https://files.pythonhosted.org/packages/0c/5e/3cada2f7514ee2a76bb8168c71f9b65d056840ebb711962e1ec08eeaa7b0/blessed-1.21.0.tar.gz", hash = "sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec", size = 6660011, upload-time = "2025-04-26T21:56:58.199Z" }
174
+ sdist = { url = "https://files.pythonhosted.org/packages/7c/51/a72df7730aa34a94bc43cebecb7b63ffa42f019868637dbeb45e0620d26e/blessed-1.22.0.tar.gz", hash = "sha256:1818efb7c10015478286f21a412fcdd31a3d8b94a18f6d926e733827da7a844b", size = 6660050, upload-time = "2025-09-15T19:15:26.551Z" }
175
175
  wheels = [
176
- { url = "https://files.pythonhosted.org/packages/ea/8e/0a37e44878fd76fac9eff5355a1bf760701f53cb5c38cdcd59a8fd9ab2a2/blessed-1.21.0-py2.py3-none-any.whl", hash = "sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588", size = 84727, upload-time = "2025-04-26T16:58:29.919Z" },
176
+ { url = "https://files.pythonhosted.org/packages/11/b7/a19b55c4cd0b5ca5009ca11d3634994758a1a446976b8e7afa25e719613c/blessed-1.22.0-py2.py3-none-any.whl", hash = "sha256:a1fed52d708a1aa26dfb8d3eaecf6f4714bff590e728baeefcb44f2c16c8de82", size = 85078, upload-time = "2025-09-15T19:15:24.787Z" },
177
177
  ]
178
178
 
179
179
  [[package]]
@@ -398,7 +398,7 @@ wheels = [
398
398
 
399
399
  [[package]]
400
400
  name = "crackerjack"
401
- version = "0.34.1"
401
+ version = "0.34.2"
402
402
  source = { editable = "." }
403
403
  dependencies = [
404
404
  { name = "aiofiles" },
@@ -963,7 +963,7 @@ wheels = [
963
963
 
964
964
  [[package]]
965
965
  name = "huggingface-hub"
966
- version = "0.34.4"
966
+ version = "0.34.5"
967
967
  source = { registry = "https://pypi.org/simple" }
968
968
  dependencies = [
969
969
  { name = "filelock" },
@@ -975,9 +975,9 @@ dependencies = [
975
975
  { name = "tqdm" },
976
976
  { name = "typing-extensions" },
977
977
  ]
978
- sdist = { url = "https://files.pythonhosted.org/packages/45/c9/bdbe19339f76d12985bc03572f330a01a93c04dffecaaea3061bdd7fb892/huggingface_hub-0.34.4.tar.gz", hash = "sha256:a4228daa6fb001be3f4f4bdaf9a0db00e1739235702848df00885c9b5742c85c", size = 459768, upload-time = "2025-08-08T09:14:52.365Z" }
978
+ sdist = { url = "https://files.pythonhosted.org/packages/1f/08/306b0d3db3679b3c07cab9ce117a920de77f3ea4dba6ba27646660518619/huggingface_hub-0.34.5.tar.gz", hash = "sha256:f676c6db41bc3fbd4020f520c842a0548f4c9a3f698dbfa6514bd8e41c3ab52a", size = 460006, upload-time = "2025-09-15T14:24:24.734Z" }
979
979
  wheels = [
980
- { url = "https://files.pythonhosted.org/packages/39/7b/bb06b061991107cd8783f300adff3e7b7f284e330fd82f507f2a1417b11d/huggingface_hub-0.34.4-py3-none-any.whl", hash = "sha256:9b365d781739c93ff90c359844221beef048403f1bc1f1c123c191257c3c890a", size = 561452, upload-time = "2025-08-08T09:14:50.159Z" },
980
+ { url = "https://files.pythonhosted.org/packages/79/3d/55ef77a0539b0124efd47d8b3759bf49e880f57729f7123c0311b41a9bb8/huggingface_hub-0.34.5-py3-none-any.whl", hash = "sha256:fea377adc6e9b6c239c1450e41a1409cbf2c6364d289c04c31d7dbaa222842e3", size = 562219, upload-time = "2025-09-15T14:24:22.851Z" },
981
981
  ]
982
982
 
983
983
  [[package]]
@@ -1003,15 +1003,15 @@ wheels = [
1003
1003
 
1004
1004
  [[package]]
1005
1005
  name = "hypothesis"
1006
- version = "6.138.16"
1006
+ version = "6.138.17"
1007
1007
  source = { registry = "https://pypi.org/simple" }
1008
1008
  dependencies = [
1009
1009
  { name = "attrs" },
1010
1010
  { name = "sortedcontainers" },
1011
1011
  ]
1012
- sdist = { url = "https://files.pythonhosted.org/packages/21/2f/3f41181a7054f8049c0c2ef2eb8a86f43c2bfb0da7b0aba69c24019f56eb/hypothesis-6.138.16.tar.gz", hash = "sha256:08f9015dadc877ce5ca04752efc56df797238148a44d1c69db656ed29bfbbf73", size = 466040, upload-time = "2025-09-13T23:26:07.448Z" }
1012
+ sdist = { url = "https://files.pythonhosted.org/packages/d2/d9/933014091e35e849a1555bc87866809dd985bb558d43734e5b9cd2191c1f/hypothesis-6.138.17.tar.gz", hash = "sha256:2419eef387211c63bed091938cf17fa909898f064d320e996bcd90383f5ce3c6", size = 466016, upload-time = "2025-09-15T22:09:21.512Z" }
1013
1013
  wheels = [
1014
- { url = "https://files.pythonhosted.org/packages/ac/f3/6aa509411e72828ad1c6ed107e9efe7b3e1464e8ef620bb39338954bff58/hypothesis-6.138.16-py3-none-any.whl", hash = "sha256:63dde4b45a04caef2a59ccae5541083cbadfe7605435e7a23454fe7c2113577c", size = 533690, upload-time = "2025-09-13T23:26:03.93Z" },
1014
+ { url = "https://files.pythonhosted.org/packages/92/81/fbb1beddafb8bfc1deff69cbf6e2aaba10c1c7bdafe7a323845539ba14af/hypothesis-6.138.17-py3-none-any.whl", hash = "sha256:b2cf91f1926445cf4d44f5ec9a955c7f637f93e34247ac04e4fb44d010141c85", size = 533688, upload-time = "2025-09-15T22:09:18.063Z" },
1015
1015
  ]
1016
1016
 
1017
1017
  [[package]]
@@ -2604,7 +2604,7 @@ wheels = [
2604
2604
 
2605
2605
  [[package]]
2606
2606
  name = "session-mgmt-mcp"
2607
- version = "0.3.6"
2607
+ version = "0.3.7"
2608
2608
  source = { registry = "https://pypi.org/simple" }
2609
2609
  dependencies = [
2610
2610
  { name = "crackerjack" },
@@ -2622,9 +2622,9 @@ dependencies = [
2622
2622
  { name = "transformers" },
2623
2623
  { name = "typer" },
2624
2624
  ]
2625
- sdist = { url = "https://files.pythonhosted.org/packages/35/d2/ae271696455f988eee9334874775340799cd1834329ed0b1926cdbec1fc9/session_mgmt_mcp-0.3.6.tar.gz", hash = "sha256:ab83b1010ce9d2230442610b892d9405cb541f38b07539244fecbb1944d1de0f", size = 489393, upload-time = "2025-09-15T10:20:29.602Z" }
2625
+ sdist = { url = "https://files.pythonhosted.org/packages/ed/ce/c062659fbb3b4b05f71ad5c5229b80310d1297aa38abe8f1ca14447272a6/session_mgmt_mcp-0.3.7.tar.gz", hash = "sha256:e8c2a251772ee06d4e8b1d53b7f413af1d745e2886467ca9db96b058adfba23d", size = 491514, upload-time = "2025-09-16T02:27:32.692Z" }
2626
2626
  wheels = [
2627
- { url = "https://files.pythonhosted.org/packages/ce/50/1865f3ad40a7ced8342530729e0fbf494b2fb9a4e2c8dd4a507ef0d2d135/session_mgmt_mcp-0.3.6-py3-none-any.whl", hash = "sha256:219e5e06c589747e1400ba5dd2935e7886707d5ed7ed56eeaf9041d9308f72d0", size = 218158, upload-time = "2025-09-15T10:20:27.697Z" },
2627
+ { url = "https://files.pythonhosted.org/packages/bf/41/ffb2a66455d9fe29efe7c46387295a604f29fc006f522edda0fe7784114e/session_mgmt_mcp-0.3.7-py3-none-any.whl", hash = "sha256:eacf82edd79d9a012642181c5769eb5d9f768d3ad98ee17c06dc16600517d483", size = 219032, upload-time = "2025-09-16T02:27:30.908Z" },
2628
2628
  ]
2629
2629
 
2630
2630
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes