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.
- coach_wizards/__init__.py +11 -12
- coach_wizards/accessibility_wizard.py +12 -12
- coach_wizards/api_wizard.py +12 -12
- coach_wizards/base_wizard.py +26 -20
- coach_wizards/cicd_wizard.py +15 -13
- coach_wizards/code_reviewer_README.md +60 -0
- coach_wizards/code_reviewer_wizard.py +180 -0
- coach_wizards/compliance_wizard.py +12 -12
- coach_wizards/database_wizard.py +12 -12
- coach_wizards/debugging_wizard.py +12 -12
- coach_wizards/documentation_wizard.py +12 -12
- coach_wizards/generate_wizards.py +1 -2
- coach_wizards/localization_wizard.py +101 -19
- coach_wizards/migration_wizard.py +12 -12
- coach_wizards/monitoring_wizard.py +12 -12
- coach_wizards/observability_wizard.py +12 -12
- coach_wizards/performance_wizard.py +12 -12
- coach_wizards/prompt_engineering_wizard.py +22 -25
- coach_wizards/refactoring_wizard.py +12 -12
- coach_wizards/scaling_wizard.py +12 -12
- coach_wizards/security_wizard.py +12 -12
- coach_wizards/testing_wizard.py +12 -12
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/METADATA +513 -58
- empathy_framework-3.8.2.dist-info/RECORD +333 -0
- empathy_framework-3.8.2.dist-info/entry_points.txt +22 -0
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/top_level.txt +5 -1
- empathy_healthcare_plugin/__init__.py +1 -2
- empathy_healthcare_plugin/monitors/__init__.py +9 -0
- empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
- empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
- empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
- empathy_llm_toolkit/__init__.py +7 -7
- empathy_llm_toolkit/agent_factory/__init__.py +53 -0
- empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
- empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
- empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
- empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
- empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
- empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
- empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
- empathy_llm_toolkit/agent_factory/base.py +305 -0
- empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
- empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
- empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
- empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
- empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
- empathy_llm_toolkit/agent_factory/decorators.py +286 -0
- empathy_llm_toolkit/agent_factory/factory.py +558 -0
- empathy_llm_toolkit/agent_factory/framework.py +192 -0
- empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
- empathy_llm_toolkit/agent_factory/resilient.py +320 -0
- empathy_llm_toolkit/claude_memory.py +14 -15
- empathy_llm_toolkit/cli/__init__.py +8 -0
- empathy_llm_toolkit/cli/sync_claude.py +487 -0
- empathy_llm_toolkit/code_health.py +177 -22
- empathy_llm_toolkit/config/__init__.py +29 -0
- empathy_llm_toolkit/config/unified.py +295 -0
- empathy_llm_toolkit/contextual_patterns.py +11 -12
- empathy_llm_toolkit/core.py +51 -49
- empathy_llm_toolkit/git_pattern_extractor.py +16 -12
- empathy_llm_toolkit/levels.py +6 -13
- empathy_llm_toolkit/pattern_confidence.py +14 -18
- empathy_llm_toolkit/pattern_resolver.py +10 -12
- empathy_llm_toolkit/pattern_summary.py +13 -11
- empathy_llm_toolkit/providers.py +194 -28
- empathy_llm_toolkit/routing/__init__.py +32 -0
- empathy_llm_toolkit/routing/model_router.py +362 -0
- empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
- empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
- empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
- empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
- empathy_llm_toolkit/security/README.md +262 -0
- empathy_llm_toolkit/security/__init__.py +62 -0
- empathy_llm_toolkit/security/audit_logger.py +929 -0
- empathy_llm_toolkit/security/audit_logger_example.py +152 -0
- empathy_llm_toolkit/security/pii_scrubber.py +640 -0
- empathy_llm_toolkit/security/secrets_detector.py +678 -0
- empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
- empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
- empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
- empathy_llm_toolkit/session_status.py +18 -20
- empathy_llm_toolkit/state.py +20 -21
- empathy_llm_toolkit/wizards/__init__.py +38 -0
- empathy_llm_toolkit/wizards/base_wizard.py +364 -0
- empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
- empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
- empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
- empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
- empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
- empathy_os/__init__.py +76 -77
- empathy_os/adaptive/__init__.py +13 -0
- empathy_os/adaptive/task_complexity.py +127 -0
- empathy_os/{monitoring.py → agent_monitoring.py} +27 -27
- empathy_os/cache/__init__.py +117 -0
- empathy_os/cache/base.py +166 -0
- empathy_os/cache/dependency_manager.py +253 -0
- empathy_os/cache/hash_only.py +248 -0
- empathy_os/cache/hybrid.py +390 -0
- empathy_os/cache/storage.py +282 -0
- empathy_os/cli.py +515 -109
- empathy_os/cli_unified.py +189 -42
- empathy_os/config/__init__.py +63 -0
- empathy_os/config/xml_config.py +239 -0
- empathy_os/config.py +87 -36
- empathy_os/coordination.py +48 -54
- empathy_os/core.py +90 -99
- empathy_os/cost_tracker.py +20 -23
- empathy_os/dashboard/__init__.py +15 -0
- empathy_os/dashboard/server.py +743 -0
- empathy_os/discovery.py +9 -11
- empathy_os/emergence.py +20 -21
- empathy_os/exceptions.py +18 -30
- empathy_os/feedback_loops.py +27 -30
- empathy_os/levels.py +31 -34
- empathy_os/leverage_points.py +27 -28
- empathy_os/logging_config.py +11 -12
- empathy_os/memory/__init__.py +195 -0
- empathy_os/memory/claude_memory.py +466 -0
- empathy_os/memory/config.py +224 -0
- empathy_os/memory/control_panel.py +1298 -0
- empathy_os/memory/edges.py +179 -0
- empathy_os/memory/graph.py +567 -0
- empathy_os/memory/long_term.py +1194 -0
- empathy_os/memory/nodes.py +179 -0
- empathy_os/memory/redis_bootstrap.py +540 -0
- empathy_os/memory/security/__init__.py +31 -0
- empathy_os/memory/security/audit_logger.py +930 -0
- empathy_os/memory/security/pii_scrubber.py +640 -0
- empathy_os/memory/security/secrets_detector.py +678 -0
- empathy_os/memory/short_term.py +2119 -0
- empathy_os/memory/storage/__init__.py +15 -0
- empathy_os/memory/summary_index.py +583 -0
- empathy_os/memory/unified.py +619 -0
- empathy_os/metrics/__init__.py +12 -0
- empathy_os/metrics/prompt_metrics.py +190 -0
- empathy_os/models/__init__.py +136 -0
- empathy_os/models/__main__.py +13 -0
- empathy_os/models/cli.py +655 -0
- empathy_os/models/empathy_executor.py +354 -0
- empathy_os/models/executor.py +252 -0
- empathy_os/models/fallback.py +671 -0
- empathy_os/models/provider_config.py +563 -0
- empathy_os/models/registry.py +382 -0
- empathy_os/models/tasks.py +302 -0
- empathy_os/models/telemetry.py +548 -0
- empathy_os/models/token_estimator.py +378 -0
- empathy_os/models/validation.py +274 -0
- empathy_os/monitoring/__init__.py +52 -0
- empathy_os/monitoring/alerts.py +23 -0
- empathy_os/monitoring/alerts_cli.py +268 -0
- empathy_os/monitoring/multi_backend.py +271 -0
- empathy_os/monitoring/otel_backend.py +363 -0
- empathy_os/optimization/__init__.py +19 -0
- empathy_os/optimization/context_optimizer.py +272 -0
- empathy_os/pattern_library.py +29 -28
- empathy_os/persistence.py +30 -34
- empathy_os/platform_utils.py +261 -0
- empathy_os/plugins/__init__.py +28 -0
- empathy_os/plugins/base.py +361 -0
- empathy_os/plugins/registry.py +268 -0
- empathy_os/project_index/__init__.py +30 -0
- empathy_os/project_index/cli.py +335 -0
- empathy_os/project_index/crew_integration.py +430 -0
- empathy_os/project_index/index.py +425 -0
- empathy_os/project_index/models.py +501 -0
- empathy_os/project_index/reports.py +473 -0
- empathy_os/project_index/scanner.py +538 -0
- empathy_os/prompts/__init__.py +61 -0
- empathy_os/prompts/config.py +77 -0
- empathy_os/prompts/context.py +177 -0
- empathy_os/prompts/parser.py +285 -0
- empathy_os/prompts/registry.py +313 -0
- empathy_os/prompts/templates.py +208 -0
- empathy_os/redis_config.py +144 -58
- empathy_os/redis_memory.py +53 -56
- empathy_os/resilience/__init__.py +56 -0
- empathy_os/resilience/circuit_breaker.py +256 -0
- empathy_os/resilience/fallback.py +179 -0
- empathy_os/resilience/health.py +300 -0
- empathy_os/resilience/retry.py +209 -0
- empathy_os/resilience/timeout.py +135 -0
- empathy_os/routing/__init__.py +43 -0
- empathy_os/routing/chain_executor.py +433 -0
- empathy_os/routing/classifier.py +217 -0
- empathy_os/routing/smart_router.py +234 -0
- empathy_os/routing/wizard_registry.py +307 -0
- empathy_os/templates.py +12 -11
- empathy_os/trust/__init__.py +28 -0
- empathy_os/trust/circuit_breaker.py +579 -0
- empathy_os/trust_building.py +44 -36
- empathy_os/validation/__init__.py +19 -0
- empathy_os/validation/xml_validator.py +281 -0
- empathy_os/wizard_factory_cli.py +170 -0
- empathy_os/{workflows.py → workflow_commands.py} +123 -31
- empathy_os/workflows/__init__.py +360 -0
- empathy_os/workflows/base.py +1660 -0
- empathy_os/workflows/bug_predict.py +962 -0
- empathy_os/workflows/code_review.py +960 -0
- empathy_os/workflows/code_review_adapters.py +310 -0
- empathy_os/workflows/code_review_pipeline.py +720 -0
- empathy_os/workflows/config.py +600 -0
- empathy_os/workflows/dependency_check.py +648 -0
- empathy_os/workflows/document_gen.py +1069 -0
- empathy_os/workflows/documentation_orchestrator.py +1205 -0
- empathy_os/workflows/health_check.py +679 -0
- empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
- empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
- empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
- empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
- empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
- empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
- empathy_os/workflows/manage_documentation.py +804 -0
- empathy_os/workflows/new_sample_workflow1.py +146 -0
- empathy_os/workflows/new_sample_workflow1_README.md +150 -0
- empathy_os/workflows/perf_audit.py +687 -0
- empathy_os/workflows/pr_review.py +748 -0
- empathy_os/workflows/progress.py +445 -0
- empathy_os/workflows/progress_server.py +322 -0
- empathy_os/workflows/refactor_plan.py +693 -0
- empathy_os/workflows/release_prep.py +808 -0
- empathy_os/workflows/research_synthesis.py +404 -0
- empathy_os/workflows/secure_release.py +585 -0
- empathy_os/workflows/security_adapters.py +297 -0
- empathy_os/workflows/security_audit.py +1046 -0
- empathy_os/workflows/step_config.py +234 -0
- empathy_os/workflows/test5.py +125 -0
- empathy_os/workflows/test5_README.md +158 -0
- empathy_os/workflows/test_gen.py +1855 -0
- empathy_os/workflows/test_lifecycle.py +526 -0
- empathy_os/workflows/test_maintenance.py +626 -0
- empathy_os/workflows/test_maintenance_cli.py +590 -0
- empathy_os/workflows/test_maintenance_crew.py +821 -0
- empathy_os/workflows/xml_enhanced_crew.py +285 -0
- empathy_software_plugin/__init__.py +1 -2
- empathy_software_plugin/cli/__init__.py +120 -0
- empathy_software_plugin/cli/inspect.py +362 -0
- empathy_software_plugin/cli.py +35 -26
- empathy_software_plugin/plugin.py +4 -8
- empathy_software_plugin/wizards/__init__.py +42 -0
- empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
- empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
- empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
- empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
- empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
- empathy_software_plugin/wizards/base_wizard.py +288 -0
- empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
- empathy_software_plugin/wizards/code_review_wizard.py +606 -0
- empathy_software_plugin/wizards/debugging/__init__.py +50 -0
- empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
- empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
- empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
- empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
- empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
- empathy_software_plugin/wizards/debugging/verification.py +369 -0
- empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
- empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
- empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
- empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
- empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
- empathy_software_plugin/wizards/performance/__init__.py +9 -0
- empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
- empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
- empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
- empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
- empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
- empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
- empathy_software_plugin/wizards/security/__init__.py +32 -0
- empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
- empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
- empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
- empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
- empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
- empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
- empathy_software_plugin/wizards/testing/__init__.py +27 -0
- empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
- empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
- empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
- empathy_software_plugin/wizards/testing_wizard.py +274 -0
- hot_reload/README.md +473 -0
- hot_reload/__init__.py +62 -0
- hot_reload/config.py +84 -0
- hot_reload/integration.py +228 -0
- hot_reload/reloader.py +298 -0
- hot_reload/watcher.py +179 -0
- hot_reload/websocket.py +176 -0
- scaffolding/README.md +589 -0
- scaffolding/__init__.py +35 -0
- scaffolding/__main__.py +14 -0
- scaffolding/cli.py +240 -0
- test_generator/__init__.py +38 -0
- test_generator/__main__.py +14 -0
- test_generator/cli.py +226 -0
- test_generator/generator.py +325 -0
- test_generator/risk_analyzer.py +216 -0
- workflow_patterns/__init__.py +33 -0
- workflow_patterns/behavior.py +249 -0
- workflow_patterns/core.py +76 -0
- workflow_patterns/output.py +99 -0
- workflow_patterns/registry.py +255 -0
- workflow_patterns/structural.py +288 -0
- workflow_scaffolding/__init__.py +11 -0
- workflow_scaffolding/__main__.py +12 -0
- workflow_scaffolding/cli.py +206 -0
- workflow_scaffolding/generator.py +265 -0
- agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
- agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
- agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
- agents/compliance_anticipation_agent.py +0 -1427
- agents/epic_integration_wizard.py +0 -541
- agents/trust_building_behaviors.py +0 -891
- empathy_framework-3.2.3.dist-info/RECORD +0 -104
- empathy_framework-3.2.3.dist-info/entry_points.txt +0 -7
- empathy_llm_toolkit/htmlcov/status.json +0 -1
- empathy_llm_toolkit/security/htmlcov/status.json +0 -1
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/licenses/LICENSE +0 -0
coach_wizards/database_wizard.py
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,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
|
-
#
|
|
51
|
-
|
|
52
|
-
for
|
|
53
|
-
#
|
|
54
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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}"
|