empathy-framework 2.4.0__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 (329) hide show
  1. coach_wizards/__init__.py +13 -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 +661 -0
  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.8.2.dist-info/METADATA +1176 -0
  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-2.4.0.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 +186 -28
  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 +168 -53
  64. empathy_llm_toolkit/git_pattern_extractor.py +17 -13
  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 +16 -14
  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 +20 -22
  86. empathy_llm_toolkit/state.py +28 -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 +125 -84
  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} +28 -28
  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 +1516 -70
  105. empathy_os/cli_unified.py +597 -0
  106. empathy_os/config/__init__.py +63 -0
  107. empathy_os/config/xml_config.py +239 -0
  108. empathy_os/config.py +95 -37
  109. empathy_os/coordination.py +72 -68
  110. empathy_os/core.py +94 -107
  111. empathy_os/cost_tracker.py +74 -55
  112. empathy_os/dashboard/__init__.py +15 -0
  113. empathy_os/dashboard/server.py +743 -0
  114. empathy_os/discovery.py +17 -14
  115. empathy_os/emergence.py +21 -22
  116. empathy_os/exceptions.py +18 -30
  117. empathy_os/feedback_loops.py +30 -33
  118. empathy_os/levels.py +32 -35
  119. empathy_os/leverage_points.py +31 -32
  120. empathy_os/logging_config.py +19 -16
  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 +30 -29
  160. empathy_os/persistence.py +35 -37
  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 +79 -77
  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 +19 -14
  192. empathy_os/trust/__init__.py +28 -0
  193. empathy_os/trust/circuit_breaker.py +579 -0
  194. empathy_os/trust_building.py +67 -58
  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} +131 -37
  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 +49 -27
  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-2.4.0.dist-info/METADATA +0 -485
  324. empathy_framework-2.4.0.dist-info/RECORD +0 -102
  325. empathy_framework-2.4.0.dist-info/entry_points.txt +0 -6
  326. empathy_llm_toolkit/htmlcov/status.json +0 -1
  327. empathy_llm_toolkit/security/htmlcov/status.json +0 -1
  328. {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
  329. {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/licenses/LICENSE +0 -0
coach_wizards/__init__.py CHANGED
@@ -1,5 +1,4 @@
1
- """
2
- Coach Wizards - 16 Specialized Software Development Wizards
1
+ """Coach Wizards - 17 Specialized Software Development Wizards
3
2
 
4
3
  Level 4 Anticipatory Empathy for software development using the Empathy Framework.
5
4
 
@@ -19,26 +18,28 @@ from .migration_wizard import MigrationWizard
19
18
  from .monitoring_wizard import MonitoringWizard
20
19
  from .observability_wizard import ObservabilityWizard
21
20
  from .performance_wizard import PerformanceWizard
21
+ from .prompt_engineering_wizard import PromptEngineeringWizard
22
22
  from .refactoring_wizard import RefactoringWizard
23
23
  from .scaling_wizard import ScalingWizard
24
24
  from .security_wizard import SecurityWizard
25
25
  from .testing_wizard import TestingWizard
26
26
 
27
27
  __all__ = [
28
- "SecurityWizard",
29
- "PerformanceWizard",
28
+ "APIWizard",
30
29
  "AccessibilityWizard",
31
- "TestingWizard",
32
- "RefactoringWizard",
30
+ "CICDWizard",
31
+ "ComplianceWizard",
33
32
  "DatabaseWizard",
34
- "APIWizard",
35
33
  "DebuggingWizard",
36
- "ScalingWizard",
37
- "ObservabilityWizard",
38
- "CICDWizard",
39
34
  "DocumentationWizard",
40
- "ComplianceWizard",
35
+ "LocalizationWizard",
41
36
  "MigrationWizard",
42
37
  "MonitoringWizard",
43
- "LocalizationWizard",
38
+ "ObservabilityWizard",
39
+ "PerformanceWizard",
40
+ "PromptEngineeringWizard",
41
+ "RefactoringWizard",
42
+ "ScalingWizard",
43
+ "SecurityWizard",
44
+ "TestingWizard",
44
45
  ]
@@ -1,5 +1,4 @@
1
- """
2
- AccessibilityWizard - Web accessibility (WCAG) compliance
1
+ """AccessibilityWizard - Web accessibility (WCAG) compliance
3
2
 
4
3
  Level 4 Anticipatory Empathy for Accessibility using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class AccessibilityWizard(BaseCoachWizard):
16
- """
17
- Web accessibility (WCAG) compliance
15
+ """Web accessibility (WCAG) compliance
18
16
 
19
17
  Detects:
20
18
  - missing alt text
@@ -36,8 +34,7 @@ class AccessibilityWizard(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 accessibility issues
37
+ """Analyze code for accessibility issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class AccessibilityWizard(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 accessibility issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict accessibility issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class AccessibilityWizard(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 accessibility issue
84
+ """Suggest how to fix a accessibility 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
- APIWizard - API design and integration analysis
1
+ """APIWizard - API design and integration analysis
3
2
 
4
3
  Level 4 Anticipatory Empathy for API using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class APIWizard(BaseCoachWizard):
16
- """
17
- API design and integration analysis
15
+ """API design and integration analysis
18
16
 
19
17
  Detects:
20
18
  - inconsistent endpoints
@@ -36,8 +34,7 @@ class APIWizard(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 api issues
37
+ """Analyze code for api issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class APIWizard(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 api issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict api issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class APIWizard(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 api issue
84
+ """Suggest how to fix a api 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
- Base Coach Wizard - Foundation for all Coach wizards
1
+ """Base Coach Wizard - Foundation for all Coach wizards
3
2
 
4
3
  Level 4 Anticipatory Empathy implementation using the Empathy Framework.
5
4
 
@@ -56,8 +55,7 @@ class WizardResult:
56
55
 
57
56
 
58
57
  class BaseCoachWizard(ABC):
59
- """
60
- Base class for all Coach wizards
58
+ """Base class for all Coach wizards
61
59
 
62
60
  Implements Level 4 Anticipatory Empathy:
63
61
  - Analyzes current code
@@ -73,8 +71,7 @@ class BaseCoachWizard(ABC):
73
71
 
74
72
  @abstractmethod
75
73
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
76
- """
77
- Analyze code for current issues
74
+ """Analyze code for current issues
78
75
 
79
76
  Args:
80
77
  code: Source code to analyze
@@ -83,15 +80,18 @@ class BaseCoachWizard(ABC):
83
80
 
84
81
  Returns:
85
82
  List of issues found
83
+
86
84
  """
87
- pass
88
85
 
89
86
  @abstractmethod
90
87
  def predict_future_issues(
91
- self, code: str, file_path: str, project_context: dict[str, Any], timeline_days: int = 90
88
+ self,
89
+ code: str,
90
+ file_path: str,
91
+ project_context: dict[str, Any],
92
+ timeline_days: int = 90,
92
93
  ) -> list[WizardPrediction]:
93
- """
94
- Level 4 Anticipatory: Predict issues 30-90 days ahead
94
+ """Level 4 Anticipatory: Predict issues 30-90 days ahead
95
95
 
96
96
  Args:
97
97
  code: Source code to analyze
@@ -101,21 +101,20 @@ class BaseCoachWizard(ABC):
101
101
 
102
102
  Returns:
103
103
  List of predicted future issues
104
+
104
105
  """
105
- pass
106
106
 
107
107
  @abstractmethod
108
108
  def suggest_fixes(self, issue: WizardIssue) -> str:
109
- """
110
- Suggest how to fix an issue
109
+ """Suggest how to fix an issue
111
110
 
112
111
  Args:
113
112
  issue: The issue to fix
114
113
 
115
114
  Returns:
116
115
  Fix suggestion with code examples
116
+
117
117
  """
118
- pass
119
118
 
120
119
  def run_full_analysis(
121
120
  self,
@@ -124,8 +123,7 @@ class BaseCoachWizard(ABC):
124
123
  language: str,
125
124
  project_context: dict[str, Any] | None = None,
126
125
  ) -> WizardResult:
127
- """
128
- Run complete analysis: current issues + future predictions
126
+ """Run complete analysis: current issues + future predictions
129
127
 
130
128
  Args:
131
129
  code: Source code to analyze
@@ -135,6 +133,7 @@ class BaseCoachWizard(ABC):
135
133
 
136
134
  Returns:
137
135
  Complete wizard result
136
+
138
137
  """
139
138
  start_time = datetime.now()
140
139
 
@@ -145,7 +144,10 @@ class BaseCoachWizard(ABC):
145
144
  predictions = []
146
145
  if project_context:
147
146
  predictions = self.predict_future_issues(
148
- code, file_path, project_context, timeline_days=90
147
+ code,
148
+ file_path,
149
+ project_context,
150
+ timeline_days=90,
149
151
  )
150
152
 
151
153
  # Generate recommendations
@@ -167,7 +169,9 @@ class BaseCoachWizard(ABC):
167
169
  )
168
170
 
169
171
  def _generate_recommendations(
170
- self, issues: list[WizardIssue], predictions: list[WizardPrediction]
172
+ self,
173
+ issues: list[WizardIssue],
174
+ predictions: list[WizardPrediction],
171
175
  ) -> list[str]:
172
176
  """Generate actionable recommendations"""
173
177
  recommendations = []
@@ -181,13 +185,15 @@ class BaseCoachWizard(ABC):
181
185
  high_probability_predictions = [p for p in predictions if p.probability > 0.7]
182
186
  if high_probability_predictions:
183
187
  recommendations.append(
184
- f"Prevent {len(high_probability_predictions)} predicted issues with high probability"
188
+ f"Prevent {len(high_probability_predictions)} predicted issues with high probability",
185
189
  )
186
190
 
187
191
  return recommendations
188
192
 
189
193
  def _generate_summary(
190
- self, issues: list[WizardIssue], predictions: list[WizardPrediction]
194
+ self,
195
+ issues: list[WizardIssue],
196
+ predictions: list[WizardPrediction],
191
197
  ) -> str:
192
198
  """Generate human-readable summary"""
193
199
  error_count = len([i for i in issues if i.severity == "error"])
@@ -1,5 +1,4 @@
1
- """
2
- CICDWizard - CI/CD pipeline optimization
1
+ """CICDWizard - CI/CD pipeline optimization
3
2
 
4
3
  Level 4 Anticipatory Empathy for DevOps using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class CICDWizard(BaseCoachWizard):
16
- """
17
- CI/CD pipeline optimization
15
+ """CI/CD pipeline optimization
18
16
 
19
17
  Detects:
20
18
  - slow pipelines
@@ -30,12 +28,13 @@ class CICDWizard(BaseCoachWizard):
30
28
 
31
29
  def __init__(self):
32
30
  super().__init__(
33
- name="CICDWizard", category="DevOps", languages=["yaml", "groovy", "python", "bash"]
31
+ name="CICDWizard",
32
+ category="DevOps",
33
+ languages=["yaml", "groovy", "python", "bash"],
34
34
  )
35
35
 
36
36
  def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
37
- """
38
- Analyze code for devops issues
37
+ """Analyze code for devops issues
39
38
 
40
39
  This is a reference implementation. In production, integrate with:
41
40
  - Static analysis tools
@@ -55,10 +54,13 @@ class CICDWizard(BaseCoachWizard):
55
54
  return issues
56
55
 
57
56
  def predict_future_issues(
58
- 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,
59
62
  ) -> list[WizardPrediction]:
60
- """
61
- Level 4 Anticipatory: Predict devops issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict devops issues {timeline_days} days ahead
62
64
 
63
65
  Uses:
64
66
  - Historical patterns
@@ -74,16 +76,16 @@ class CICDWizard(BaseCoachWizard):
74
76
 
75
77
  self.logger.info(
76
78
  f"{self.name} predicted {len(predictions)} future issues "
77
- f"for {file_path} ({timeline_days} days ahead)"
79
+ f"for {file_path} ({timeline_days} days ahead)",
78
80
  )
79
81
  return predictions
80
82
 
81
83
  def suggest_fixes(self, issue: WizardIssue) -> str:
82
- """
83
- Suggest how to fix a devops issue
84
+ """Suggest how to fix a devops issue
84
85
 
85
86
  Returns:
86
87
  Detailed fix suggestion with code examples
88
+
87
89
  """
88
90
  # Implementation depends on issue type
89
91
  return f"Fix suggestion for {issue.category} issue: {issue.message}"
@@ -0,0 +1,60 @@
1
+ # Code Reviewer Wizard
2
+
3
+ **Domain:** software
4
+ **Type:** Wizard
5
+ **Generated:** Pattern-Compose Methodology
6
+
7
+ ## Overview
8
+
9
+ Auto-generated wizard using proven patterns from the Empathy Framework.
10
+
11
+ ## Patterns Used
12
+
13
+ - **Empathy Level**: 0-4 empathy level configuration
14
+ - **User Guidance**: Help text, examples, and prompts
15
+ - **Code Analysis Input**: Standard code analysis input (code, file_path, language)
16
+ - **Risk Assessment**: Level 4 Anticipatory risk analysis
17
+ - **Prediction**: Level 4 Anticipatory prediction of future issues
18
+ - **Config Validation**: Validate wizard configuration on initialization
19
+
20
+ ## Usage
21
+
22
+ ```python
23
+ from coach_wizards.code_reviewer_wizard import CodeReviewerWizard
24
+
25
+ wizard = CodeReviewerWizard()
26
+ result = await wizard.process(user_input="...")
27
+ ```
28
+
29
+ ## API Endpoints
30
+
31
+ ```bash
32
+ # Process with wizard
33
+ POST /api/wizard/code_reviewer/process
34
+ {
35
+ "input": "your input here",
36
+ "context": {}
37
+ }
38
+ ```
39
+
40
+ ## Testing
41
+
42
+ ```bash
43
+ # Run unit tests
44
+ pytest tests/unit/wizards/test_code_reviewer_wizard.py
45
+
46
+ # Run with coverage
47
+ pytest tests/unit/wizards/test_code_reviewer_wizard.py --cov
48
+ ```
49
+
50
+ ## Next Steps
51
+
52
+ 1. Customize wizard logic as needed
53
+ 2. Add domain-specific validation
54
+ 3. Extend with additional features
55
+ 4. Update tests for custom logic
56
+
57
+ ---
58
+
59
+ **Generated by:** Empathy Framework - Wizard Factory
60
+ **Methodology:** Pattern-Compose
@@ -0,0 +1,180 @@
1
+ """Code reviewer Coach Wizard.
2
+
3
+ Auto-generated by Empathy Framework Scaffolding
4
+ Methodology: pattern-compose
5
+ Domain: software
6
+ Patterns: empathy_level, user_guidance, code_analysis_input, risk_assessment, prediction, config_validation
7
+ Generated: 2026-01-05T20:15:45.111917
8
+ """
9
+
10
+ import logging
11
+ from typing import Any
12
+
13
+ from fastapi import APIRouter, HTTPException
14
+ from pydantic import BaseModel, Field
15
+
16
+ from patterns import get_pattern_registry
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+ router = APIRouter(prefix="/code_reviewer", tags=["code_reviewer"])
21
+
22
+ # Pattern registry for recommendations
23
+ registry = get_pattern_registry()
24
+
25
+
26
+ # Request/Response Models
27
+ class AnalysisRequest(BaseModel):
28
+ """Request to analyze code."""
29
+
30
+ code: str = Field(..., description="Code to analyze")
31
+ context: dict[str, Any] = Field(default_factory=dict, description="Additional context")
32
+ include_risk_assessment: bool = Field(default=True, description="Include risk analysis")
33
+
34
+
35
+ class AnalysisResult(BaseModel):
36
+ """Analysis result."""
37
+
38
+ wizard_id: str
39
+ analysis: dict[str, Any]
40
+ risk_assessment: dict[str, Any] | None = None
41
+ predictions: list[dict[str, Any]] = Field(default_factory=list)
42
+
43
+
44
+ # In-memory session storage (replace with Redis in production)
45
+ sessions: dict[str, dict[str, Any]] = {}
46
+
47
+
48
+ @router.post("/analyze", response_model=AnalysisResult)
49
+ async def analyze_code(request: AnalysisRequest) -> AnalysisResult:
50
+ """Analyze code and provide recommendations.
51
+
52
+ Args:
53
+ request: Analysis request with code and context
54
+
55
+ Returns:
56
+ Analysis results with recommendations
57
+
58
+ Raises:
59
+ HTTPException: If analysis fails
60
+ """
61
+ try:
62
+ # Create session
63
+ wizard_id = f"code_reviewer_{len(sessions) + 1}"
64
+
65
+ # Perform code analysis
66
+ analysis = await _analyze_code(request.code, request.context)
67
+
68
+ result = AnalysisResult(
69
+ wizard_id=wizard_id,
70
+ analysis=analysis,
71
+ )
72
+
73
+ # Perform risk assessment
74
+ if request.include_risk_assessment:
75
+ risk_assessment = await _assess_risk(analysis)
76
+ result.risk_assessment = risk_assessment
77
+
78
+ # Generate predictions
79
+ predictions = await _generate_predictions(analysis)
80
+ result.predictions = predictions
81
+
82
+ # Store session
83
+ sessions[wizard_id] = {
84
+ "wizard_id": wizard_id,
85
+ "code": request.code,
86
+ "analysis": analysis,
87
+ "result": result.model_dump(),
88
+ }
89
+
90
+ logger.info(f"Analysis complete for {wizard_id}")
91
+ return result
92
+
93
+ except Exception as e:
94
+ logger.exception(f"Analysis failed: {e}")
95
+ raise HTTPException(status_code=500, detail=f"Analysis failed: {str(e)}")
96
+
97
+
98
+ @router.get("/{wizard_id}/report", response_model=dict[str, Any])
99
+ async def get_report(wizard_id: str) -> dict[str, Any]:
100
+ """Get analysis report.
101
+
102
+ Args:
103
+ wizard_id: Wizard session ID
104
+
105
+ Returns:
106
+ Complete analysis report
107
+
108
+ Raises:
109
+ HTTPException: If session not found
110
+ """
111
+ if wizard_id not in sessions:
112
+ raise HTTPException(status_code=404, detail="Session not found")
113
+
114
+ session = sessions[wizard_id]
115
+ return {
116
+ "wizard_id": wizard_id,
117
+ "analysis": session["analysis"],
118
+ "result": session["result"],
119
+ }
120
+
121
+
122
+ # Helper functions
123
+ async def _analyze_code(code: str, context: dict[str, Any]) -> dict[str, Any]:
124
+ """Analyze code (placeholder - implement actual analysis).
125
+
126
+ Args:
127
+ code: Code to analyze
128
+ context: Additional context
129
+
130
+ Returns:
131
+ Analysis results
132
+ """
133
+ # TODO: Implement actual code analysis
134
+ return {
135
+ "lines_of_code": len(code.split("\n")),
136
+ "complexity": "medium",
137
+ "issues_found": 0,
138
+ "context": context,
139
+ }
140
+
141
+
142
+ async def _assess_risk(analysis: dict[str, Any]) -> dict[str, Any]:
143
+ """Assess risk based on analysis.
144
+
145
+ Args:
146
+ analysis: Code analysis results
147
+
148
+ Returns:
149
+ Risk assessment
150
+ """
151
+ # TODO: Implement actual risk assessment
152
+ return {
153
+ "alert_level": "LOW",
154
+ "risk_score": 0.2,
155
+ "by_risk_level": {
156
+ "critical": 0,
157
+ "high": 0,
158
+ "medium": 0,
159
+ "low": 0,
160
+ },
161
+ }
162
+
163
+
164
+ async def _generate_predictions(analysis: dict[str, Any]) -> list[dict[str, Any]]:
165
+ """Generate predictions about future issues.
166
+
167
+ Args:
168
+ analysis: Code analysis results
169
+
170
+ Returns:
171
+ List of predictions
172
+ """
173
+ # TODO: Implement actual predictions
174
+ return [
175
+ {
176
+ "type": "performance",
177
+ "confidence": 0.8,
178
+ "description": "May experience performance issues with large datasets",
179
+ }
180
+ ]
@@ -1,5 +1,4 @@
1
- """
2
- ComplianceWizard - Regulatory and compliance checking
1
+ """ComplianceWizard - Regulatory and compliance checking
3
2
 
4
3
  Level 4 Anticipatory Empathy for Compliance using the Empathy Framework.
5
4
 
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
13
12
 
14
13
 
15
14
  class ComplianceWizard(BaseCoachWizard):
16
- """
17
- Regulatory and compliance checking
15
+ """Regulatory and compliance checking
18
16
 
19
17
  Detects:
20
18
  - PII handling issues
@@ -36,8 +34,7 @@ class ComplianceWizard(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 compliance issues
37
+ """Analyze code for compliance issues
41
38
 
42
39
  This is a reference implementation. In production, integrate with:
43
40
  - Static analysis tools
@@ -57,10 +54,13 @@ class ComplianceWizard(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 compliance issues {timeline_days} days ahead
63
+ """Level 4 Anticipatory: Predict compliance issues {timeline_days} days ahead
64
64
 
65
65
  Uses:
66
66
  - Historical patterns
@@ -76,16 +76,16 @@ class ComplianceWizard(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 compliance issue
84
+ """Suggest how to fix a compliance 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}"