empathy-framework 3.2.3__py3-none-any.whl → 3.8.2__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.
Files changed (328) hide show
  1. coach_wizards/__init__.py +11 -12
  2. coach_wizards/accessibility_wizard.py +12 -12
  3. coach_wizards/api_wizard.py +12 -12
  4. coach_wizards/base_wizard.py +26 -20
  5. coach_wizards/cicd_wizard.py +15 -13
  6. coach_wizards/code_reviewer_README.md +60 -0
  7. coach_wizards/code_reviewer_wizard.py +180 -0
  8. coach_wizards/compliance_wizard.py +12 -12
  9. coach_wizards/database_wizard.py +12 -12
  10. coach_wizards/debugging_wizard.py +12 -12
  11. coach_wizards/documentation_wizard.py +12 -12
  12. coach_wizards/generate_wizards.py +1 -2
  13. coach_wizards/localization_wizard.py +101 -19
  14. coach_wizards/migration_wizard.py +12 -12
  15. coach_wizards/monitoring_wizard.py +12 -12
  16. coach_wizards/observability_wizard.py +12 -12
  17. coach_wizards/performance_wizard.py +12 -12
  18. coach_wizards/prompt_engineering_wizard.py +22 -25
  19. coach_wizards/refactoring_wizard.py +12 -12
  20. coach_wizards/scaling_wizard.py +12 -12
  21. coach_wizards/security_wizard.py +12 -12
  22. coach_wizards/testing_wizard.py +12 -12
  23. {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/METADATA +513 -58
  24. empathy_framework-3.8.2.dist-info/RECORD +333 -0
  25. empathy_framework-3.8.2.dist-info/entry_points.txt +22 -0
  26. {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/top_level.txt +5 -1
  27. empathy_healthcare_plugin/__init__.py +1 -2
  28. empathy_healthcare_plugin/monitors/__init__.py +9 -0
  29. empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
  30. empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
  31. empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
  32. empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
  33. empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
  34. empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
  35. empathy_llm_toolkit/__init__.py +7 -7
  36. empathy_llm_toolkit/agent_factory/__init__.py +53 -0
  37. empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
  38. empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
  39. empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
  40. empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
  41. empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
  42. empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
  43. empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
  44. empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
  45. empathy_llm_toolkit/agent_factory/base.py +305 -0
  46. empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
  47. empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
  48. empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
  49. empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
  50. empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
  51. empathy_llm_toolkit/agent_factory/decorators.py +286 -0
  52. empathy_llm_toolkit/agent_factory/factory.py +558 -0
  53. empathy_llm_toolkit/agent_factory/framework.py +192 -0
  54. empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
  55. empathy_llm_toolkit/agent_factory/resilient.py +320 -0
  56. empathy_llm_toolkit/claude_memory.py +14 -15
  57. empathy_llm_toolkit/cli/__init__.py +8 -0
  58. empathy_llm_toolkit/cli/sync_claude.py +487 -0
  59. empathy_llm_toolkit/code_health.py +177 -22
  60. empathy_llm_toolkit/config/__init__.py +29 -0
  61. empathy_llm_toolkit/config/unified.py +295 -0
  62. empathy_llm_toolkit/contextual_patterns.py +11 -12
  63. empathy_llm_toolkit/core.py +51 -49
  64. empathy_llm_toolkit/git_pattern_extractor.py +16 -12
  65. empathy_llm_toolkit/levels.py +6 -13
  66. empathy_llm_toolkit/pattern_confidence.py +14 -18
  67. empathy_llm_toolkit/pattern_resolver.py +10 -12
  68. empathy_llm_toolkit/pattern_summary.py +13 -11
  69. empathy_llm_toolkit/providers.py +194 -28
  70. empathy_llm_toolkit/routing/__init__.py +32 -0
  71. empathy_llm_toolkit/routing/model_router.py +362 -0
  72. empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
  73. empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
  74. empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
  75. empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
  76. empathy_llm_toolkit/security/README.md +262 -0
  77. empathy_llm_toolkit/security/__init__.py +62 -0
  78. empathy_llm_toolkit/security/audit_logger.py +929 -0
  79. empathy_llm_toolkit/security/audit_logger_example.py +152 -0
  80. empathy_llm_toolkit/security/pii_scrubber.py +640 -0
  81. empathy_llm_toolkit/security/secrets_detector.py +678 -0
  82. empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
  83. empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
  84. empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
  85. empathy_llm_toolkit/session_status.py +18 -20
  86. empathy_llm_toolkit/state.py +20 -21
  87. empathy_llm_toolkit/wizards/__init__.py +38 -0
  88. empathy_llm_toolkit/wizards/base_wizard.py +364 -0
  89. empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
  90. empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
  91. empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
  92. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
  93. empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
  94. empathy_os/__init__.py +76 -77
  95. empathy_os/adaptive/__init__.py +13 -0
  96. empathy_os/adaptive/task_complexity.py +127 -0
  97. empathy_os/{monitoring.py → agent_monitoring.py} +27 -27
  98. empathy_os/cache/__init__.py +117 -0
  99. empathy_os/cache/base.py +166 -0
  100. empathy_os/cache/dependency_manager.py +253 -0
  101. empathy_os/cache/hash_only.py +248 -0
  102. empathy_os/cache/hybrid.py +390 -0
  103. empathy_os/cache/storage.py +282 -0
  104. empathy_os/cli.py +515 -109
  105. empathy_os/cli_unified.py +189 -42
  106. empathy_os/config/__init__.py +63 -0
  107. empathy_os/config/xml_config.py +239 -0
  108. empathy_os/config.py +87 -36
  109. empathy_os/coordination.py +48 -54
  110. empathy_os/core.py +90 -99
  111. empathy_os/cost_tracker.py +20 -23
  112. empathy_os/dashboard/__init__.py +15 -0
  113. empathy_os/dashboard/server.py +743 -0
  114. empathy_os/discovery.py +9 -11
  115. empathy_os/emergence.py +20 -21
  116. empathy_os/exceptions.py +18 -30
  117. empathy_os/feedback_loops.py +27 -30
  118. empathy_os/levels.py +31 -34
  119. empathy_os/leverage_points.py +27 -28
  120. empathy_os/logging_config.py +11 -12
  121. empathy_os/memory/__init__.py +195 -0
  122. empathy_os/memory/claude_memory.py +466 -0
  123. empathy_os/memory/config.py +224 -0
  124. empathy_os/memory/control_panel.py +1298 -0
  125. empathy_os/memory/edges.py +179 -0
  126. empathy_os/memory/graph.py +567 -0
  127. empathy_os/memory/long_term.py +1194 -0
  128. empathy_os/memory/nodes.py +179 -0
  129. empathy_os/memory/redis_bootstrap.py +540 -0
  130. empathy_os/memory/security/__init__.py +31 -0
  131. empathy_os/memory/security/audit_logger.py +930 -0
  132. empathy_os/memory/security/pii_scrubber.py +640 -0
  133. empathy_os/memory/security/secrets_detector.py +678 -0
  134. empathy_os/memory/short_term.py +2119 -0
  135. empathy_os/memory/storage/__init__.py +15 -0
  136. empathy_os/memory/summary_index.py +583 -0
  137. empathy_os/memory/unified.py +619 -0
  138. empathy_os/metrics/__init__.py +12 -0
  139. empathy_os/metrics/prompt_metrics.py +190 -0
  140. empathy_os/models/__init__.py +136 -0
  141. empathy_os/models/__main__.py +13 -0
  142. empathy_os/models/cli.py +655 -0
  143. empathy_os/models/empathy_executor.py +354 -0
  144. empathy_os/models/executor.py +252 -0
  145. empathy_os/models/fallback.py +671 -0
  146. empathy_os/models/provider_config.py +563 -0
  147. empathy_os/models/registry.py +382 -0
  148. empathy_os/models/tasks.py +302 -0
  149. empathy_os/models/telemetry.py +548 -0
  150. empathy_os/models/token_estimator.py +378 -0
  151. empathy_os/models/validation.py +274 -0
  152. empathy_os/monitoring/__init__.py +52 -0
  153. empathy_os/monitoring/alerts.py +23 -0
  154. empathy_os/monitoring/alerts_cli.py +268 -0
  155. empathy_os/monitoring/multi_backend.py +271 -0
  156. empathy_os/monitoring/otel_backend.py +363 -0
  157. empathy_os/optimization/__init__.py +19 -0
  158. empathy_os/optimization/context_optimizer.py +272 -0
  159. empathy_os/pattern_library.py +29 -28
  160. empathy_os/persistence.py +30 -34
  161. empathy_os/platform_utils.py +261 -0
  162. empathy_os/plugins/__init__.py +28 -0
  163. empathy_os/plugins/base.py +361 -0
  164. empathy_os/plugins/registry.py +268 -0
  165. empathy_os/project_index/__init__.py +30 -0
  166. empathy_os/project_index/cli.py +335 -0
  167. empathy_os/project_index/crew_integration.py +430 -0
  168. empathy_os/project_index/index.py +425 -0
  169. empathy_os/project_index/models.py +501 -0
  170. empathy_os/project_index/reports.py +473 -0
  171. empathy_os/project_index/scanner.py +538 -0
  172. empathy_os/prompts/__init__.py +61 -0
  173. empathy_os/prompts/config.py +77 -0
  174. empathy_os/prompts/context.py +177 -0
  175. empathy_os/prompts/parser.py +285 -0
  176. empathy_os/prompts/registry.py +313 -0
  177. empathy_os/prompts/templates.py +208 -0
  178. empathy_os/redis_config.py +144 -58
  179. empathy_os/redis_memory.py +53 -56
  180. empathy_os/resilience/__init__.py +56 -0
  181. empathy_os/resilience/circuit_breaker.py +256 -0
  182. empathy_os/resilience/fallback.py +179 -0
  183. empathy_os/resilience/health.py +300 -0
  184. empathy_os/resilience/retry.py +209 -0
  185. empathy_os/resilience/timeout.py +135 -0
  186. empathy_os/routing/__init__.py +43 -0
  187. empathy_os/routing/chain_executor.py +433 -0
  188. empathy_os/routing/classifier.py +217 -0
  189. empathy_os/routing/smart_router.py +234 -0
  190. empathy_os/routing/wizard_registry.py +307 -0
  191. empathy_os/templates.py +12 -11
  192. empathy_os/trust/__init__.py +28 -0
  193. empathy_os/trust/circuit_breaker.py +579 -0
  194. empathy_os/trust_building.py +44 -36
  195. empathy_os/validation/__init__.py +19 -0
  196. empathy_os/validation/xml_validator.py +281 -0
  197. empathy_os/wizard_factory_cli.py +170 -0
  198. empathy_os/{workflows.py → workflow_commands.py} +123 -31
  199. empathy_os/workflows/__init__.py +360 -0
  200. empathy_os/workflows/base.py +1660 -0
  201. empathy_os/workflows/bug_predict.py +962 -0
  202. empathy_os/workflows/code_review.py +960 -0
  203. empathy_os/workflows/code_review_adapters.py +310 -0
  204. empathy_os/workflows/code_review_pipeline.py +720 -0
  205. empathy_os/workflows/config.py +600 -0
  206. empathy_os/workflows/dependency_check.py +648 -0
  207. empathy_os/workflows/document_gen.py +1069 -0
  208. empathy_os/workflows/documentation_orchestrator.py +1205 -0
  209. empathy_os/workflows/health_check.py +679 -0
  210. empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
  211. empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
  212. empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
  213. empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
  214. empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
  215. empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
  216. empathy_os/workflows/manage_documentation.py +804 -0
  217. empathy_os/workflows/new_sample_workflow1.py +146 -0
  218. empathy_os/workflows/new_sample_workflow1_README.md +150 -0
  219. empathy_os/workflows/perf_audit.py +687 -0
  220. empathy_os/workflows/pr_review.py +748 -0
  221. empathy_os/workflows/progress.py +445 -0
  222. empathy_os/workflows/progress_server.py +322 -0
  223. empathy_os/workflows/refactor_plan.py +693 -0
  224. empathy_os/workflows/release_prep.py +808 -0
  225. empathy_os/workflows/research_synthesis.py +404 -0
  226. empathy_os/workflows/secure_release.py +585 -0
  227. empathy_os/workflows/security_adapters.py +297 -0
  228. empathy_os/workflows/security_audit.py +1046 -0
  229. empathy_os/workflows/step_config.py +234 -0
  230. empathy_os/workflows/test5.py +125 -0
  231. empathy_os/workflows/test5_README.md +158 -0
  232. empathy_os/workflows/test_gen.py +1855 -0
  233. empathy_os/workflows/test_lifecycle.py +526 -0
  234. empathy_os/workflows/test_maintenance.py +626 -0
  235. empathy_os/workflows/test_maintenance_cli.py +590 -0
  236. empathy_os/workflows/test_maintenance_crew.py +821 -0
  237. empathy_os/workflows/xml_enhanced_crew.py +285 -0
  238. empathy_software_plugin/__init__.py +1 -2
  239. empathy_software_plugin/cli/__init__.py +120 -0
  240. empathy_software_plugin/cli/inspect.py +362 -0
  241. empathy_software_plugin/cli.py +35 -26
  242. empathy_software_plugin/plugin.py +4 -8
  243. empathy_software_plugin/wizards/__init__.py +42 -0
  244. empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
  245. empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
  246. empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
  247. empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
  248. empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
  249. empathy_software_plugin/wizards/base_wizard.py +288 -0
  250. empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
  251. empathy_software_plugin/wizards/code_review_wizard.py +606 -0
  252. empathy_software_plugin/wizards/debugging/__init__.py +50 -0
  253. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
  254. empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
  255. empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
  256. empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
  257. empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
  258. empathy_software_plugin/wizards/debugging/verification.py +369 -0
  259. empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
  260. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
  261. empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
  262. empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
  263. empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
  264. empathy_software_plugin/wizards/performance/__init__.py +9 -0
  265. empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
  266. empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
  267. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
  268. empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
  269. empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
  270. empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
  271. empathy_software_plugin/wizards/security/__init__.py +32 -0
  272. empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
  273. empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
  274. empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
  275. empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
  276. empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
  277. empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
  278. empathy_software_plugin/wizards/testing/__init__.py +27 -0
  279. empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
  280. empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
  281. empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
  282. empathy_software_plugin/wizards/testing_wizard.py +274 -0
  283. hot_reload/README.md +473 -0
  284. hot_reload/__init__.py +62 -0
  285. hot_reload/config.py +84 -0
  286. hot_reload/integration.py +228 -0
  287. hot_reload/reloader.py +298 -0
  288. hot_reload/watcher.py +179 -0
  289. hot_reload/websocket.py +176 -0
  290. scaffolding/README.md +589 -0
  291. scaffolding/__init__.py +35 -0
  292. scaffolding/__main__.py +14 -0
  293. scaffolding/cli.py +240 -0
  294. test_generator/__init__.py +38 -0
  295. test_generator/__main__.py +14 -0
  296. test_generator/cli.py +226 -0
  297. test_generator/generator.py +325 -0
  298. test_generator/risk_analyzer.py +216 -0
  299. workflow_patterns/__init__.py +33 -0
  300. workflow_patterns/behavior.py +249 -0
  301. workflow_patterns/core.py +76 -0
  302. workflow_patterns/output.py +99 -0
  303. workflow_patterns/registry.py +255 -0
  304. workflow_patterns/structural.py +288 -0
  305. workflow_scaffolding/__init__.py +11 -0
  306. workflow_scaffolding/__main__.py +12 -0
  307. workflow_scaffolding/cli.py +206 -0
  308. workflow_scaffolding/generator.py +265 -0
  309. agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
  310. agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
  311. agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
  312. agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
  313. agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
  314. agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
  315. agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
  316. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
  317. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
  318. agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
  319. agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
  320. agents/compliance_anticipation_agent.py +0 -1427
  321. agents/epic_integration_wizard.py +0 -541
  322. agents/trust_building_behaviors.py +0 -891
  323. empathy_framework-3.2.3.dist-info/RECORD +0 -104
  324. empathy_framework-3.2.3.dist-info/entry_points.txt +0 -7
  325. empathy_llm_toolkit/htmlcov/status.json +0 -1
  326. empathy_llm_toolkit/security/htmlcov/status.json +0 -1
  327. {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
  328. {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,4 @@
1
- """
2
- DatabaseWizard - Database optimization and schema analysis
1
+ """DatabaseWizard - Database optimization and schema analysis
3
2
 
4
3
  Level 4 Anticipatory Empathy for Database using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class DatabaseWizard(BaseCoachWizard):
16
- """
17
- Database optimization and schema analysis
15
+ """Database optimization and schema analysis
18
16
 
19
17
  Detects:
20
18
  - missing indexes
@@ -36,8 +34,7 @@ class DatabaseWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for database issues
37
+ """Analyze code for database issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class DatabaseWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict database issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict database issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class DatabaseWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a database issue
84
+ """Suggest how to fix a database issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- DebuggingWizard - Error detection and debugging assistance
1
+ """DebuggingWizard - Error detection and debugging assistance
3
2
 
4
3
  Level 4 Anticipatory Empathy for Debugging using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class DebuggingWizard(BaseCoachWizard):
16
- """
17
- Error detection and debugging assistance
15
+ """Error detection and debugging assistance
18
16
 
19
17
  Detects:
20
18
  - potential null references
@@ -36,8 +34,7 @@ class DebuggingWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for debugging issues
37
+ """Analyze code for debugging issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class DebuggingWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict debugging issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict debugging issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class DebuggingWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a debugging issue
84
+ """Suggest how to fix a debugging issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- DocumentationWizard - Documentation quality and completeness
1
+ """DocumentationWizard - Documentation quality and completeness
3
2
 
4
3
  Level 4 Anticipatory Empathy for Documentation using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class DocumentationWizard(BaseCoachWizard):
16
- """
17
- Documentation quality and completeness
15
+ """Documentation quality and completeness
18
16
 
19
17
  Detects:
20
18
  - missing docstrings
@@ -36,8 +34,7 @@ class DocumentationWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for documentation issues
37
+ """Analyze code for documentation issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class DocumentationWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict documentation issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict documentation issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class DocumentationWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a documentation issue
84
+ """Suggest how to fix a documentation issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- """
3
- Generate all 16 Coach wizards from template.
2
+ """Generate all 16 Coach wizards from template.
4
3
 
5
4
  This script generates the 16 specialized Coach wizards.
6
5
  This is a development/build utility, excluded from coverage via .coveragerc.
@@ -1,5 +1,4 @@
1
- """
2
- LocalizationWizard - Internationalization and localization
1
+ """LocalizationWizard - Internationalization and localization
3
2
 
4
3
  Level 4 Anticipatory Empathy for Localization using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class LocalizationWizard(BaseCoachWizard):
16
- """
17
- Internationalization and localization
15
+ """Internationalization and localization
18
16
 
19
17
  Detects:
20
18
  - hardcoded strings
@@ -36,8 +34,7 @@ class LocalizationWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for localization issues
37
+ """Analyze code for localization issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -45,22 +42,107 @@ class LocalizationWizard(BaseCoachWizard):
45
42
  - Custom rule engines
46
43
  - AI models (Claude, GPT-4)
47
44
  """
48
- issues = []
45
+ issues: list[WizardIssue] = []
49
46
 
50
- # Example heuristic detection
51
- lines = code.split("\n")
52
- for _i, _line in enumerate(lines, 1):
53
- # Add detection logic based on localization
54
- pass
47
+ # Use generator-based iteration to avoid large list copies
48
+ # splitlines() is more memory-efficient than split("\n")
49
+ for line_num, line in enumerate(code.splitlines(), 1):
50
+ # Detect hardcoded strings (basic heuristic)
51
+ issue = self._check_hardcoded_string(line, line_num, file_path, language)
52
+ if issue:
53
+ issues.append(issue)
55
54
 
56
55
  self.logger.info(f"{self.name} found {len(issues)} issues in {file_path}")
57
56
  return issues
58
57
 
58
+ def _check_hardcoded_string(
59
+ self,
60
+ line: str,
61
+ line_num: int,
62
+ file_path: str,
63
+ language: str,
64
+ ) -> WizardIssue | None:
65
+ """Check a single line for hardcoded user-facing strings."""
66
+ # Skip comments and imports
67
+ stripped = line.strip()
68
+ if not stripped or stripped.startswith(("#", "//", "/*", "*", "import", "from")):
69
+ return None
70
+
71
+ # Basic detection patterns by language
72
+ # In production, use language-specific AST parsing
73
+ patterns = {
74
+ "python": self._check_python_hardcoded,
75
+ "javascript": self._check_js_hardcoded,
76
+ "typescript": self._check_js_hardcoded,
77
+ "jsx": self._check_js_hardcoded,
78
+ "tsx": self._check_js_hardcoded,
79
+ }
80
+
81
+ checker = patterns.get(language)
82
+ if checker:
83
+ return checker(line, line_num, file_path)
84
+ return None
85
+
86
+ def _check_python_hardcoded(
87
+ self,
88
+ line: str,
89
+ line_num: int,
90
+ file_path: str,
91
+ ) -> WizardIssue | None:
92
+ """Check Python code for hardcoded UI strings."""
93
+ # Look for print() or raise with string literals
94
+ # Skip logging, docstrings, and comments
95
+ if "print(" in line or "raise " in line:
96
+ # Check for quoted strings that look like UI text
97
+ if '"' in line or "'" in line:
98
+ # Basic heuristic: strings > 10 chars that aren't paths/URLs
99
+ import re
100
+
101
+ strings = re.findall(r'["\']([^"\']{10,})["\']', line)
102
+ for s in strings:
103
+ if not s.startswith(("/", "http", "\\", ".")):
104
+ return WizardIssue(
105
+ category="hardcoded_string",
106
+ severity="warning",
107
+ message=f"Potential hardcoded UI string: '{s[:30]}...'",
108
+ file_path=file_path,
109
+ line_number=line_num,
110
+ code_snippet=line.strip(),
111
+ fix_suggestion="Consider using i18n translation function",
112
+ confidence=0.7,
113
+ )
114
+ return None
115
+
116
+ def _check_js_hardcoded(self, line: str, line_num: int, file_path: str) -> WizardIssue | None:
117
+ """Check JavaScript/TypeScript for hardcoded UI strings."""
118
+ # Look for JSX text content or string assignments
119
+ import re
120
+
121
+ # Check for text in JSX elements: <div>Hello World</div>
122
+ jsx_text = re.search(r">([A-Z][^<]{5,})<", line)
123
+ if jsx_text:
124
+ text = jsx_text.group(1).strip()
125
+ if text and not text.startswith("{"):
126
+ return WizardIssue(
127
+ category="hardcoded_string",
128
+ severity="warning",
129
+ message=f"Hardcoded JSX text: '{text[:30]}...'",
130
+ file_path=file_path,
131
+ line_number=line_num,
132
+ code_snippet=line.strip(),
133
+ fix_suggestion="Use i18n: {t('key')} instead of hardcoded text",
134
+ confidence=0.8,
135
+ )
136
+ return None
137
+
59
138
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
139
+ self,
140
+ code: str,
141
+ file_path: str,
142
+ project_context: dict[str, Any],
143
+ timeline_days: int = 90,
61
144
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict localization issues {timeline_days} days ahead
145
+ """Level 4 Anticipatory: Predict localization issues {timeline_days} days ahead
64
146
 
65
147
  Uses:
66
148
  - Historical patterns
@@ -69,23 +151,23 @@ class LocalizationWizard(BaseCoachWizard):
69
151
  - Team velocity
70
152
  - Industry trends
71
153
  """
72
- predictions = []
154
+ predictions: list[WizardPrediction] = []
73
155
 
74
156
  # Example prediction logic
75
157
  # In production, use ML models trained on historical data
76
158
 
77
159
  self.logger.info(
78
160
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
161
+ f"for {file_path} ({timeline_days} days ahead)",
80
162
  )
81
163
  return predictions
82
164
 
83
165
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a localization issue
166
+ """Suggest how to fix a localization issue
86
167
 
87
168
  Returns:
88
169
  Detailed fix suggestion with code examples
170
+
89
171
  """
90
172
  # Implementation depends on issue type
91
173
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- MigrationWizard - Code migration and upgrade assistance
1
+ """MigrationWizard - Code migration and upgrade assistance
3
2
 
4
3
  Level 4 Anticipatory Empathy for Migration using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class MigrationWizard(BaseCoachWizard):
16
- """
17
- Code migration and upgrade assistance
15
+ """Code migration and upgrade assistance
18
16
 
19
17
  Detects:
20
18
  - deprecated APIs
@@ -36,8 +34,7 @@ class MigrationWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for migration issues
37
+ """Analyze code for migration issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class MigrationWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict migration issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict migration issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class MigrationWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a migration issue
84
+ """Suggest how to fix a migration issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- MonitoringWizard - System monitoring and alerting
1
+ """MonitoringWizard - System monitoring and alerting
3
2
 
4
3
  Level 4 Anticipatory Empathy for Monitoring using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class MonitoringWizard(BaseCoachWizard):
16
- """
17
- System monitoring and alerting
15
+ """System monitoring and alerting
18
16
 
19
17
  Detects:
20
18
  - missing alerts
@@ -36,8 +34,7 @@ class MonitoringWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for monitoring issues
37
+ """Analyze code for monitoring issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class MonitoringWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict monitoring issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict monitoring issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class MonitoringWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a monitoring issue
84
+ """Suggest how to fix a monitoring issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- ObservabilityWizard - Logging, metrics, and tracing analysis
1
+ """ObservabilityWizard - Logging, metrics, and tracing analysis
3
2
 
4
3
  Level 4 Anticipatory Empathy for Observability using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class ObservabilityWizard(BaseCoachWizard):
16
- """
17
- Logging, metrics, and tracing analysis
15
+ """Logging, metrics, and tracing analysis
18
16
 
19
17
  Detects:
20
18
  - missing logs
@@ -36,8 +34,7 @@ class ObservabilityWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for observability issues
37
+ """Analyze code for observability issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class ObservabilityWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict observability issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict observability issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class ObservabilityWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a observability issue
84
+ """Suggest how to fix a observability issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -1,5 +1,4 @@
1
- """
2
- PerformanceWizard - Performance optimization and bottleneck detection
1
+ """PerformanceWizard - Performance optimization and bottleneck detection
3
2
 
4
3
  Level 4 Anticipatory Empathy for Performance using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class PerformanceWizard(BaseCoachWizard):
16
- """
17
- Performance optimization and bottleneck detection
15
+ """Performance optimization and bottleneck detection
18
16
 
19
17
  Detects:
20
18
  - N+1 queries
@@ -36,8 +34,7 @@ class PerformanceWizard(BaseCoachWizard):
36
34
  )
37
35
 
38
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
39
- """
40
- Analyze code for performance issues
37
+ """Analyze code for performance issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class PerformanceWizard(BaseCoachWizard):
57
54
  return issues
58
55
 
59
56
  def predict_future_issues(
60
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
57
+ self,
58
+ code: str,
59
+ file_path: str,
60
+ project_context: dict[str, Any],
61
+ timeline_days: int = 90,
61
62
  ) -> list[WizardPrediction]:
62
- """
63
- Level 4 Anticipatory: Predict performance issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict performance issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class PerformanceWizard(BaseCoachWizard):
76
76
 
77
77
  self.logger.info(
78
78
  f"{self.name} predicted {len(predictions)} future issues "
79
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
80
80
  )
81
81
  return predictions
82
82
 
83
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
84
- """
85
- Suggest how to fix a performance issue
84
+ """Suggest how to fix a performance issue
86
85
 
87
86
  Returns:
88
87
  Detailed fix suggestion with code examples
88
+
89
89
  """
90
90
  # Implementation depends on issue type
91
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"