empathy-framework 4.6.6__py3-none-any.whl → 4.7.0__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.
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/METADATA +7 -6
- empathy_framework-4.7.0.dist-info/RECORD +354 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/top_level.txt +0 -2
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +9 -9
- empathy_llm_toolkit/agent_factory/__init__.py +6 -6
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +7 -10
- empathy_llm_toolkit/agents_md/__init__.py +22 -0
- empathy_llm_toolkit/agents_md/loader.py +218 -0
- empathy_llm_toolkit/agents_md/parser.py +271 -0
- empathy_llm_toolkit/agents_md/registry.py +307 -0
- empathy_llm_toolkit/commands/__init__.py +51 -0
- empathy_llm_toolkit/commands/context.py +375 -0
- empathy_llm_toolkit/commands/loader.py +301 -0
- empathy_llm_toolkit/commands/models.py +231 -0
- empathy_llm_toolkit/commands/parser.py +371 -0
- empathy_llm_toolkit/commands/registry.py +429 -0
- empathy_llm_toolkit/config/__init__.py +8 -8
- empathy_llm_toolkit/config/unified.py +3 -7
- empathy_llm_toolkit/context/__init__.py +22 -0
- empathy_llm_toolkit/context/compaction.py +455 -0
- empathy_llm_toolkit/context/manager.py +434 -0
- empathy_llm_toolkit/hooks/__init__.py +24 -0
- empathy_llm_toolkit/hooks/config.py +306 -0
- empathy_llm_toolkit/hooks/executor.py +289 -0
- empathy_llm_toolkit/hooks/registry.py +302 -0
- empathy_llm_toolkit/hooks/scripts/__init__.py +39 -0
- empathy_llm_toolkit/hooks/scripts/evaluate_session.py +201 -0
- empathy_llm_toolkit/hooks/scripts/first_time_init.py +285 -0
- empathy_llm_toolkit/hooks/scripts/pre_compact.py +207 -0
- empathy_llm_toolkit/hooks/scripts/session_end.py +183 -0
- empathy_llm_toolkit/hooks/scripts/session_start.py +163 -0
- empathy_llm_toolkit/hooks/scripts/suggest_compact.py +225 -0
- empathy_llm_toolkit/learning/__init__.py +30 -0
- empathy_llm_toolkit/learning/evaluator.py +438 -0
- empathy_llm_toolkit/learning/extractor.py +514 -0
- empathy_llm_toolkit/learning/storage.py +560 -0
- empathy_llm_toolkit/providers.py +4 -11
- empathy_llm_toolkit/security/__init__.py +17 -17
- empathy_llm_toolkit/utils/tokens.py +2 -5
- empathy_os/__init__.py +202 -70
- empathy_os/cache_monitor.py +5 -3
- empathy_os/cli/__init__.py +11 -55
- empathy_os/cli/__main__.py +29 -15
- empathy_os/cli/commands/inspection.py +21 -12
- empathy_os/cli/commands/memory.py +4 -12
- empathy_os/cli/commands/profiling.py +198 -0
- empathy_os/cli/commands/utilities.py +27 -7
- empathy_os/cli.py +28 -57
- empathy_os/cli_unified.py +525 -1164
- empathy_os/cost_tracker.py +9 -3
- empathy_os/dashboard/server.py +200 -2
- empathy_os/hot_reload/__init__.py +7 -7
- empathy_os/hot_reload/config.py +6 -7
- empathy_os/hot_reload/integration.py +35 -35
- empathy_os/hot_reload/reloader.py +57 -57
- empathy_os/hot_reload/watcher.py +28 -28
- empathy_os/hot_reload/websocket.py +2 -2
- empathy_os/memory/__init__.py +11 -4
- empathy_os/memory/claude_memory.py +1 -1
- empathy_os/memory/cross_session.py +8 -12
- empathy_os/memory/edges.py +6 -6
- empathy_os/memory/file_session.py +770 -0
- empathy_os/memory/graph.py +30 -30
- empathy_os/memory/nodes.py +6 -6
- empathy_os/memory/short_term.py +15 -9
- empathy_os/memory/unified.py +606 -140
- empathy_os/meta_workflows/agent_creator.py +3 -9
- empathy_os/meta_workflows/cli_meta_workflows.py +113 -53
- empathy_os/meta_workflows/form_engine.py +6 -18
- empathy_os/meta_workflows/intent_detector.py +64 -24
- empathy_os/meta_workflows/models.py +3 -1
- empathy_os/meta_workflows/pattern_learner.py +13 -31
- empathy_os/meta_workflows/plan_generator.py +55 -47
- empathy_os/meta_workflows/session_context.py +2 -3
- empathy_os/meta_workflows/workflow.py +20 -51
- empathy_os/models/cli.py +2 -2
- empathy_os/models/tasks.py +1 -2
- empathy_os/models/telemetry.py +4 -1
- empathy_os/models/token_estimator.py +3 -1
- empathy_os/monitoring/alerts.py +938 -9
- empathy_os/monitoring/alerts_cli.py +346 -183
- empathy_os/orchestration/execution_strategies.py +12 -29
- empathy_os/orchestration/pattern_learner.py +20 -26
- empathy_os/orchestration/real_tools.py +6 -15
- empathy_os/platform_utils.py +2 -1
- empathy_os/plugins/__init__.py +2 -2
- empathy_os/plugins/base.py +64 -64
- empathy_os/plugins/registry.py +32 -32
- empathy_os/project_index/index.py +49 -15
- empathy_os/project_index/models.py +1 -2
- empathy_os/project_index/reports.py +1 -1
- empathy_os/project_index/scanner.py +1 -0
- empathy_os/redis_memory.py +10 -7
- empathy_os/resilience/__init__.py +1 -1
- empathy_os/resilience/health.py +10 -10
- empathy_os/routing/__init__.py +7 -7
- empathy_os/routing/chain_executor.py +37 -37
- empathy_os/routing/classifier.py +36 -36
- empathy_os/routing/smart_router.py +40 -40
- empathy_os/routing/{wizard_registry.py → workflow_registry.py} +47 -47
- empathy_os/scaffolding/__init__.py +8 -8
- empathy_os/scaffolding/__main__.py +1 -1
- empathy_os/scaffolding/cli.py +28 -28
- empathy_os/socratic/__init__.py +3 -19
- empathy_os/socratic/ab_testing.py +25 -36
- empathy_os/socratic/blueprint.py +38 -38
- empathy_os/socratic/cli.py +34 -20
- empathy_os/socratic/collaboration.py +30 -28
- empathy_os/socratic/domain_templates.py +9 -1
- empathy_os/socratic/embeddings.py +17 -13
- empathy_os/socratic/engine.py +135 -70
- empathy_os/socratic/explainer.py +70 -60
- empathy_os/socratic/feedback.py +24 -19
- empathy_os/socratic/forms.py +15 -10
- empathy_os/socratic/generator.py +51 -35
- empathy_os/socratic/llm_analyzer.py +25 -23
- empathy_os/socratic/mcp_server.py +99 -159
- empathy_os/socratic/session.py +19 -13
- empathy_os/socratic/storage.py +98 -67
- empathy_os/socratic/success.py +38 -27
- empathy_os/socratic/visual_editor.py +51 -39
- empathy_os/socratic/web_ui.py +99 -66
- empathy_os/telemetry/cli.py +3 -1
- empathy_os/telemetry/usage_tracker.py +1 -3
- empathy_os/test_generator/__init__.py +3 -3
- empathy_os/test_generator/cli.py +28 -28
- empathy_os/test_generator/generator.py +64 -66
- empathy_os/test_generator/risk_analyzer.py +11 -11
- empathy_os/vscode_bridge.py +173 -0
- empathy_os/workflows/__init__.py +212 -120
- empathy_os/workflows/batch_processing.py +8 -24
- empathy_os/workflows/bug_predict.py +1 -1
- empathy_os/workflows/code_review.py +20 -5
- empathy_os/workflows/code_review_pipeline.py +13 -8
- empathy_os/workflows/keyboard_shortcuts/workflow.py +6 -2
- empathy_os/workflows/manage_documentation.py +1 -0
- empathy_os/workflows/orchestrated_health_check.py +6 -11
- empathy_os/workflows/orchestrated_release_prep.py +3 -3
- empathy_os/workflows/pr_review.py +18 -10
- empathy_os/workflows/progressive/__init__.py +2 -12
- empathy_os/workflows/progressive/cli.py +14 -37
- empathy_os/workflows/progressive/core.py +12 -12
- empathy_os/workflows/progressive/orchestrator.py +166 -144
- empathy_os/workflows/progressive/reports.py +22 -31
- empathy_os/workflows/progressive/telemetry.py +8 -14
- empathy_os/workflows/progressive/test_gen.py +29 -48
- empathy_os/workflows/progressive/workflow.py +31 -70
- empathy_os/workflows/release_prep.py +21 -6
- empathy_os/workflows/release_prep_crew.py +1 -0
- empathy_os/workflows/secure_release.py +13 -6
- empathy_os/workflows/security_audit.py +8 -3
- empathy_os/workflows/test_coverage_boost_crew.py +3 -2
- empathy_os/workflows/test_maintenance_crew.py +1 -0
- empathy_os/workflows/test_runner.py +16 -12
- empathy_software_plugin/SOFTWARE_PLUGIN_README.md +25 -703
- empathy_software_plugin/cli.py +0 -122
- coach_wizards/__init__.py +0 -45
- coach_wizards/accessibility_wizard.py +0 -91
- coach_wizards/api_wizard.py +0 -91
- coach_wizards/base_wizard.py +0 -209
- coach_wizards/cicd_wizard.py +0 -91
- coach_wizards/code_reviewer_README.md +0 -60
- coach_wizards/code_reviewer_wizard.py +0 -180
- coach_wizards/compliance_wizard.py +0 -91
- coach_wizards/database_wizard.py +0 -91
- coach_wizards/debugging_wizard.py +0 -91
- coach_wizards/documentation_wizard.py +0 -91
- coach_wizards/generate_wizards.py +0 -347
- coach_wizards/localization_wizard.py +0 -173
- coach_wizards/migration_wizard.py +0 -91
- coach_wizards/monitoring_wizard.py +0 -91
- coach_wizards/observability_wizard.py +0 -91
- coach_wizards/performance_wizard.py +0 -91
- coach_wizards/prompt_engineering_wizard.py +0 -661
- coach_wizards/refactoring_wizard.py +0 -91
- coach_wizards/scaling_wizard.py +0 -90
- coach_wizards/security_wizard.py +0 -92
- coach_wizards/testing_wizard.py +0 -91
- empathy_framework-4.6.6.dist-info/RECORD +0 -410
- empathy_llm_toolkit/wizards/__init__.py +0 -43
- empathy_llm_toolkit/wizards/base_wizard.py +0 -364
- empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -190
- empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -378
- empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -64
- empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -193
- empathy_llm_toolkit/wizards/technology_wizard.py +0 -209
- empathy_os/wizard_factory_cli.py +0 -170
- empathy_software_plugin/wizards/__init__.py +0 -42
- empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -395
- empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -511
- empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -503
- empathy_software_plugin/wizards/ai_context_wizard.py +0 -441
- empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -503
- empathy_software_plugin/wizards/base_wizard.py +0 -288
- empathy_software_plugin/wizards/book_chapter_wizard.py +0 -519
- empathy_software_plugin/wizards/code_review_wizard.py +0 -604
- empathy_software_plugin/wizards/debugging/__init__.py +0 -50
- empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -414
- empathy_software_plugin/wizards/debugging/config_loaders.py +0 -446
- empathy_software_plugin/wizards/debugging/fix_applier.py +0 -469
- empathy_software_plugin/wizards/debugging/language_patterns.py +0 -385
- empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -470
- empathy_software_plugin/wizards/debugging/verification.py +0 -369
- empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -537
- empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -816
- empathy_software_plugin/wizards/multi_model_wizard.py +0 -501
- empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -422
- empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -400
- empathy_software_plugin/wizards/performance/__init__.py +0 -9
- empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -221
- empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -278
- empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -429
- empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -305
- empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -425
- empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -461
- empathy_software_plugin/wizards/security/__init__.py +0 -32
- empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -290
- empathy_software_plugin/wizards/security/owasp_patterns.py +0 -241
- empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -604
- empathy_software_plugin/wizards/security_analysis_wizard.py +0 -322
- empathy_software_plugin/wizards/security_learning_wizard.py +0 -740
- empathy_software_plugin/wizards/tech_debt_wizard.py +0 -726
- empathy_software_plugin/wizards/testing/__init__.py +0 -27
- empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -459
- empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -525
- empathy_software_plugin/wizards/testing/test_suggester.py +0 -533
- empathy_software_plugin/wizards/testing_wizard.py +0 -274
- wizards/__init__.py +0 -82
- wizards/admission_assessment_wizard.py +0 -644
- wizards/care_plan.py +0 -321
- wizards/clinical_assessment.py +0 -769
- wizards/discharge_planning.py +0 -77
- wizards/discharge_summary_wizard.py +0 -468
- wizards/dosage_calculation.py +0 -497
- wizards/incident_report_wizard.py +0 -454
- wizards/medication_reconciliation.py +0 -85
- wizards/nursing_assessment.py +0 -171
- wizards/patient_education.py +0 -654
- wizards/quality_improvement.py +0 -705
- wizards/sbar_report.py +0 -324
- wizards/sbar_wizard.py +0 -608
- wizards/shift_handoff_wizard.py +0 -535
- wizards/soap_note_wizard.py +0 -679
- wizards/treatment_plan.py +0 -15
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/WHEEL +0 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/entry_points.txt +0 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/licenses/LICENSE +0 -0
empathy_software_plugin/cli.py
CHANGED
|
@@ -570,127 +570,5 @@ Examples:
|
|
|
570
570
|
return 0
|
|
571
571
|
|
|
572
572
|
|
|
573
|
-
def scan_command():
|
|
574
|
-
"""Entry point for empathy-scan command (converted from bin/empathy-scan).
|
|
575
|
-
One-click security & performance scanner.
|
|
576
|
-
"""
|
|
577
|
-
logger.info("Empathy Framework security and performance scanner started")
|
|
578
|
-
|
|
579
|
-
if len(sys.argv) < 3:
|
|
580
|
-
logger.warning("Insufficient arguments provided to scan_command")
|
|
581
|
-
print("Usage: empathy-scan [security|performance|all] <file-or-directory>")
|
|
582
|
-
print("\nExamples:")
|
|
583
|
-
print(" empathy-scan security app.py")
|
|
584
|
-
print(" empathy-scan performance ./src")
|
|
585
|
-
print(" empathy-scan all ./project")
|
|
586
|
-
sys.exit(1)
|
|
587
|
-
|
|
588
|
-
scan_type = sys.argv[1].lower()
|
|
589
|
-
target = sys.argv[2]
|
|
590
|
-
|
|
591
|
-
logger.info(f"Scan initiated: type={scan_type}, target={target}")
|
|
592
|
-
|
|
593
|
-
# Import wizards
|
|
594
|
-
try:
|
|
595
|
-
from coach_wizards import PerformanceWizard, SecurityWizard
|
|
596
|
-
except ImportError:
|
|
597
|
-
logger.error("Empathy Framework wizards not installed")
|
|
598
|
-
print("Error: Empathy Framework wizards not installed.")
|
|
599
|
-
print("Run: pip install empathy-framework[all]")
|
|
600
|
-
sys.exit(1)
|
|
601
|
-
|
|
602
|
-
# Determine if target is file or directory
|
|
603
|
-
target_path = Path(target)
|
|
604
|
-
if not target_path.exists():
|
|
605
|
-
logger.error(f"Target does not exist: {target}")
|
|
606
|
-
print(f"Error: {target} does not exist")
|
|
607
|
-
sys.exit(1)
|
|
608
|
-
|
|
609
|
-
# Collect files to scan
|
|
610
|
-
files_to_scan = []
|
|
611
|
-
if target_path.is_file():
|
|
612
|
-
files_to_scan = [target_path]
|
|
613
|
-
else:
|
|
614
|
-
# Scan directory for Python files
|
|
615
|
-
files_to_scan = list(target_path.rglob("*.py"))
|
|
616
|
-
|
|
617
|
-
if not files_to_scan:
|
|
618
|
-
logger.warning(f"No Python files found in {target}")
|
|
619
|
-
print(f"No Python files found in {target}")
|
|
620
|
-
sys.exit(0)
|
|
621
|
-
|
|
622
|
-
logger.info(f"Scanning {len(files_to_scan)} file(s)")
|
|
623
|
-
print(f"🔍 Scanning {len(files_to_scan)} file(s)...")
|
|
624
|
-
print()
|
|
625
|
-
|
|
626
|
-
total_issues = 0
|
|
627
|
-
total_predictions = 0
|
|
628
|
-
|
|
629
|
-
# Run appropriate wizards
|
|
630
|
-
wizards = []
|
|
631
|
-
if scan_type in ["security", "all"]:
|
|
632
|
-
wizards.append(("Security", SecurityWizard()))
|
|
633
|
-
if scan_type in ["performance", "all"]:
|
|
634
|
-
wizards.append(("Performance", PerformanceWizard()))
|
|
635
|
-
|
|
636
|
-
if not wizards:
|
|
637
|
-
print(f"Unknown scan type: {scan_type}")
|
|
638
|
-
print("Use: security, performance, or all")
|
|
639
|
-
sys.exit(1)
|
|
640
|
-
|
|
641
|
-
# Scan each file
|
|
642
|
-
for file_path in files_to_scan:
|
|
643
|
-
try:
|
|
644
|
-
with open(file_path, encoding="utf-8") as f:
|
|
645
|
-
code = f.read()
|
|
646
|
-
except Exception as e:
|
|
647
|
-
print(f"⚠️ Could not read {file_path}: {e}")
|
|
648
|
-
continue
|
|
649
|
-
|
|
650
|
-
print(f"📄 {file_path}")
|
|
651
|
-
|
|
652
|
-
for wizard_name, wizard in wizards:
|
|
653
|
-
result = wizard.run_full_analysis(
|
|
654
|
-
code=code,
|
|
655
|
-
file_path=str(file_path),
|
|
656
|
-
language="python",
|
|
657
|
-
)
|
|
658
|
-
|
|
659
|
-
if result.issues:
|
|
660
|
-
print(f" {wizard_name}: {len(result.issues)} issue(s) found")
|
|
661
|
-
for issue in result.issues[:3]: # Show first 3
|
|
662
|
-
severity_icon = (
|
|
663
|
-
"🔴"
|
|
664
|
-
if issue.severity == "high"
|
|
665
|
-
else "🟡" if issue.severity == "medium" else "🔵"
|
|
666
|
-
)
|
|
667
|
-
print(f" {severity_icon} Line {issue.line_number}: {issue.message}")
|
|
668
|
-
if len(result.issues) > 3:
|
|
669
|
-
print(f" ... and {len(result.issues) - 3} more")
|
|
670
|
-
total_issues += len(result.issues)
|
|
671
|
-
else:
|
|
672
|
-
print(f" {wizard_name}: ✅ No issues")
|
|
673
|
-
|
|
674
|
-
if result.predictions:
|
|
675
|
-
print(f" 🔮 {len(result.predictions)} prediction(s) for next 90 days")
|
|
676
|
-
total_predictions += len(result.predictions)
|
|
677
|
-
|
|
678
|
-
print()
|
|
679
|
-
|
|
680
|
-
# Summary
|
|
681
|
-
print("=" * 50)
|
|
682
|
-
print("📊 SUMMARY")
|
|
683
|
-
print(f" Files scanned: {len(files_to_scan)}")
|
|
684
|
-
print(f" Current issues: {total_issues}")
|
|
685
|
-
print(f" Future predictions: {total_predictions}")
|
|
686
|
-
|
|
687
|
-
if total_issues > 0:
|
|
688
|
-
print(f"\n⚠️ Found {total_issues} issue(s) that need attention")
|
|
689
|
-
sys.exit(1)
|
|
690
|
-
else:
|
|
691
|
-
print("\n✅ All checks passed!")
|
|
692
|
-
sys.exit(0)
|
|
693
|
-
|
|
694
|
-
|
|
695
573
|
if __name__ == "__main__":
|
|
696
574
|
sys.exit(main())
|
coach_wizards/__init__.py
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"""Coach Wizards - 17 Specialized Software Development Wizards
|
|
2
|
-
|
|
3
|
-
Level 4 Anticipatory Empathy for software development using the Empathy Framework.
|
|
4
|
-
|
|
5
|
-
Copyright 2025 Smart AI Memory, LLC
|
|
6
|
-
Licensed under Fair Source 0.9
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from .accessibility_wizard import AccessibilityWizard
|
|
10
|
-
from .api_wizard import APIWizard
|
|
11
|
-
from .cicd_wizard import CICDWizard
|
|
12
|
-
from .compliance_wizard import ComplianceWizard
|
|
13
|
-
from .database_wizard import DatabaseWizard
|
|
14
|
-
from .debugging_wizard import DebuggingWizard
|
|
15
|
-
from .documentation_wizard import DocumentationWizard
|
|
16
|
-
from .localization_wizard import LocalizationWizard
|
|
17
|
-
from .migration_wizard import MigrationWizard
|
|
18
|
-
from .monitoring_wizard import MonitoringWizard
|
|
19
|
-
from .observability_wizard import ObservabilityWizard
|
|
20
|
-
from .performance_wizard import PerformanceWizard
|
|
21
|
-
from .prompt_engineering_wizard import PromptEngineeringWizard
|
|
22
|
-
from .refactoring_wizard import RefactoringWizard
|
|
23
|
-
from .scaling_wizard import ScalingWizard
|
|
24
|
-
from .security_wizard import SecurityWizard
|
|
25
|
-
from .testing_wizard import TestingWizard
|
|
26
|
-
|
|
27
|
-
__all__ = [
|
|
28
|
-
"APIWizard",
|
|
29
|
-
"AccessibilityWizard",
|
|
30
|
-
"CICDWizard",
|
|
31
|
-
"ComplianceWizard",
|
|
32
|
-
"DatabaseWizard",
|
|
33
|
-
"DebuggingWizard",
|
|
34
|
-
"DocumentationWizard",
|
|
35
|
-
"LocalizationWizard",
|
|
36
|
-
"MigrationWizard",
|
|
37
|
-
"MonitoringWizard",
|
|
38
|
-
"ObservabilityWizard",
|
|
39
|
-
"PerformanceWizard",
|
|
40
|
-
"PromptEngineeringWizard",
|
|
41
|
-
"RefactoringWizard",
|
|
42
|
-
"ScalingWizard",
|
|
43
|
-
"SecurityWizard",
|
|
44
|
-
"TestingWizard",
|
|
45
|
-
]
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"""AccessibilityWizard - Web accessibility (WCAG) compliance
|
|
2
|
-
|
|
3
|
-
Level 4 Anticipatory Empathy for Accessibility using the Empathy Framework.
|
|
4
|
-
|
|
5
|
-
Copyright 2025 Smart AI Memory, LLC
|
|
6
|
-
Licensed under Fair Source 0.9
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from typing import Any
|
|
10
|
-
|
|
11
|
-
from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class AccessibilityWizard(BaseCoachWizard):
|
|
15
|
-
"""Web accessibility (WCAG) compliance
|
|
16
|
-
|
|
17
|
-
Detects:
|
|
18
|
-
- missing alt text
|
|
19
|
-
- no ARIA labels
|
|
20
|
-
- insufficient color contrast
|
|
21
|
-
- keyboard navigation issues
|
|
22
|
-
|
|
23
|
-
Predicts (Level 4):
|
|
24
|
-
- compliance violations
|
|
25
|
-
- user experience degradation
|
|
26
|
-
- legal exposure
|
|
27
|
-
"""
|
|
28
|
-
|
|
29
|
-
def __init__(self):
|
|
30
|
-
super().__init__(
|
|
31
|
-
name="AccessibilityWizard",
|
|
32
|
-
category="Accessibility",
|
|
33
|
-
languages=["html", "jsx", "tsx", "vue", "svelte"],
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
37
|
-
"""Analyze code for accessibility issues
|
|
38
|
-
|
|
39
|
-
This is a reference implementation. In production, integrate with:
|
|
40
|
-
- Static analysis tools
|
|
41
|
-
- Linters and security scanners
|
|
42
|
-
- Custom rule engines
|
|
43
|
-
- AI models (Claude, GPT-4)
|
|
44
|
-
"""
|
|
45
|
-
issues = []
|
|
46
|
-
|
|
47
|
-
# Example heuristic detection
|
|
48
|
-
lines = code.split("\n")
|
|
49
|
-
for _i, _line in enumerate(lines, 1):
|
|
50
|
-
# Add detection logic based on accessibility
|
|
51
|
-
pass
|
|
52
|
-
|
|
53
|
-
self.logger.info(f"{self.name} found {len(issues)} issues in {file_path}")
|
|
54
|
-
return issues
|
|
55
|
-
|
|
56
|
-
def predict_future_issues(
|
|
57
|
-
self,
|
|
58
|
-
code: str,
|
|
59
|
-
file_path: str,
|
|
60
|
-
project_context: dict[str, Any],
|
|
61
|
-
timeline_days: int = 90,
|
|
62
|
-
) -> list[WizardPrediction]:
|
|
63
|
-
"""Level 4 Anticipatory: Predict accessibility issues {timeline_days} days ahead
|
|
64
|
-
|
|
65
|
-
Uses:
|
|
66
|
-
- Historical patterns
|
|
67
|
-
- Code trajectory analysis
|
|
68
|
-
- Dependency evolution
|
|
69
|
-
- Team velocity
|
|
70
|
-
- Industry trends
|
|
71
|
-
"""
|
|
72
|
-
predictions = []
|
|
73
|
-
|
|
74
|
-
# Example prediction logic
|
|
75
|
-
# In production, use ML models trained on historical data
|
|
76
|
-
|
|
77
|
-
self.logger.info(
|
|
78
|
-
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
|
-
)
|
|
81
|
-
return predictions
|
|
82
|
-
|
|
83
|
-
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""Suggest how to fix a accessibility issue
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
Detailed fix suggestion with code examples
|
|
88
|
-
|
|
89
|
-
"""
|
|
90
|
-
# Implementation depends on issue type
|
|
91
|
-
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
coach_wizards/api_wizard.py
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"""APIWizard - API design and integration analysis
|
|
2
|
-
|
|
3
|
-
Level 4 Anticipatory Empathy for API using the Empathy Framework.
|
|
4
|
-
|
|
5
|
-
Copyright 2025 Smart AI Memory, LLC
|
|
6
|
-
Licensed under Fair Source 0.9
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from typing import Any
|
|
10
|
-
|
|
11
|
-
from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class APIWizard(BaseCoachWizard):
|
|
15
|
-
"""API design and integration analysis
|
|
16
|
-
|
|
17
|
-
Detects:
|
|
18
|
-
- inconsistent endpoints
|
|
19
|
-
- missing validation
|
|
20
|
-
- poor error handling
|
|
21
|
-
- versioning issues
|
|
22
|
-
|
|
23
|
-
Predicts (Level 4):
|
|
24
|
-
- breaking changes impact
|
|
25
|
-
- backward compatibility issues
|
|
26
|
-
- integration failures
|
|
27
|
-
"""
|
|
28
|
-
|
|
29
|
-
def __init__(self):
|
|
30
|
-
super().__init__(
|
|
31
|
-
name="APIWizard",
|
|
32
|
-
category="API",
|
|
33
|
-
languages=["python", "javascript", "typescript", "java", "go", "rust"],
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
37
|
-
"""Analyze code for api issues
|
|
38
|
-
|
|
39
|
-
This is a reference implementation. In production, integrate with:
|
|
40
|
-
- Static analysis tools
|
|
41
|
-
- Linters and security scanners
|
|
42
|
-
- Custom rule engines
|
|
43
|
-
- AI models (Claude, GPT-4)
|
|
44
|
-
"""
|
|
45
|
-
issues = []
|
|
46
|
-
|
|
47
|
-
# Example heuristic detection
|
|
48
|
-
lines = code.split("\n")
|
|
49
|
-
for _i, _line in enumerate(lines, 1):
|
|
50
|
-
# Add detection logic based on api
|
|
51
|
-
pass
|
|
52
|
-
|
|
53
|
-
self.logger.info(f"{self.name} found {len(issues)} issues in {file_path}")
|
|
54
|
-
return issues
|
|
55
|
-
|
|
56
|
-
def predict_future_issues(
|
|
57
|
-
self,
|
|
58
|
-
code: str,
|
|
59
|
-
file_path: str,
|
|
60
|
-
project_context: dict[str, Any],
|
|
61
|
-
timeline_days: int = 90,
|
|
62
|
-
) -> list[WizardPrediction]:
|
|
63
|
-
"""Level 4 Anticipatory: Predict api issues {timeline_days} days ahead
|
|
64
|
-
|
|
65
|
-
Uses:
|
|
66
|
-
- Historical patterns
|
|
67
|
-
- Code trajectory analysis
|
|
68
|
-
- Dependency evolution
|
|
69
|
-
- Team velocity
|
|
70
|
-
- Industry trends
|
|
71
|
-
"""
|
|
72
|
-
predictions = []
|
|
73
|
-
|
|
74
|
-
# Example prediction logic
|
|
75
|
-
# In production, use ML models trained on historical data
|
|
76
|
-
|
|
77
|
-
self.logger.info(
|
|
78
|
-
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
|
-
)
|
|
81
|
-
return predictions
|
|
82
|
-
|
|
83
|
-
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""Suggest how to fix a api issue
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
Detailed fix suggestion with code examples
|
|
88
|
-
|
|
89
|
-
"""
|
|
90
|
-
# Implementation depends on issue type
|
|
91
|
-
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
coach_wizards/base_wizard.py
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"""Base Coach Wizard - Foundation for all Coach wizards
|
|
2
|
-
|
|
3
|
-
Level 4 Anticipatory Empathy implementation using the Empathy Framework.
|
|
4
|
-
|
|
5
|
-
Copyright 2025 Smart AI Memory, LLC
|
|
6
|
-
Licensed under Fair Source 0.9
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
import logging
|
|
10
|
-
from abc import ABC, abstractmethod
|
|
11
|
-
from dataclasses import dataclass
|
|
12
|
-
from datetime import datetime
|
|
13
|
-
from typing import Any
|
|
14
|
-
|
|
15
|
-
logger = logging.getLogger(__name__)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@dataclass
|
|
19
|
-
class WizardIssue:
|
|
20
|
-
"""Represents an issue found by a wizard"""
|
|
21
|
-
|
|
22
|
-
severity: str # 'error', 'warning', 'info'
|
|
23
|
-
message: str
|
|
24
|
-
file_path: str
|
|
25
|
-
line_number: int | None
|
|
26
|
-
code_snippet: str | None
|
|
27
|
-
fix_suggestion: str | None
|
|
28
|
-
category: str
|
|
29
|
-
confidence: float # 0.0 to 1.0
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
@dataclass
|
|
33
|
-
class WizardPrediction:
|
|
34
|
-
"""Level 4 Anticipatory: Predicts future issues"""
|
|
35
|
-
|
|
36
|
-
predicted_date: datetime
|
|
37
|
-
issue_type: str
|
|
38
|
-
probability: float
|
|
39
|
-
impact: str # 'low', 'medium', 'high', 'critical'
|
|
40
|
-
prevention_steps: list[str]
|
|
41
|
-
reasoning: str
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
@dataclass
|
|
45
|
-
class WizardResult:
|
|
46
|
-
"""Result from running a wizard"""
|
|
47
|
-
|
|
48
|
-
wizard_name: str
|
|
49
|
-
issues: list[WizardIssue]
|
|
50
|
-
predictions: list[WizardPrediction]
|
|
51
|
-
summary: str
|
|
52
|
-
analyzed_files: int
|
|
53
|
-
analysis_time: float
|
|
54
|
-
recommendations: list[str]
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class BaseCoachWizard(ABC):
|
|
58
|
-
"""Base class for all Coach wizards
|
|
59
|
-
|
|
60
|
-
Implements Level 4 Anticipatory Empathy:
|
|
61
|
-
- Analyzes current code
|
|
62
|
-
- Predicts future issues (30-90 days ahead)
|
|
63
|
-
- Provides prevention strategies
|
|
64
|
-
"""
|
|
65
|
-
|
|
66
|
-
def __init__(self, name: str, category: str, languages: list[str]):
|
|
67
|
-
self.name = name
|
|
68
|
-
self.category = category
|
|
69
|
-
self.languages = languages
|
|
70
|
-
self.logger = logging.getLogger(f"coach.{name}")
|
|
71
|
-
|
|
72
|
-
@abstractmethod
|
|
73
|
-
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
74
|
-
"""Analyze code for current issues
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
code: Source code to analyze
|
|
78
|
-
file_path: Path to the file being analyzed
|
|
79
|
-
language: Programming language
|
|
80
|
-
|
|
81
|
-
Returns:
|
|
82
|
-
List of issues found
|
|
83
|
-
|
|
84
|
-
"""
|
|
85
|
-
|
|
86
|
-
@abstractmethod
|
|
87
|
-
def predict_future_issues(
|
|
88
|
-
self,
|
|
89
|
-
code: str,
|
|
90
|
-
file_path: str,
|
|
91
|
-
project_context: dict[str, Any],
|
|
92
|
-
timeline_days: int = 90,
|
|
93
|
-
) -> list[WizardPrediction]:
|
|
94
|
-
"""Level 4 Anticipatory: Predict issues 30-90 days ahead
|
|
95
|
-
|
|
96
|
-
Args:
|
|
97
|
-
code: Source code to analyze
|
|
98
|
-
file_path: Path to the file
|
|
99
|
-
project_context: Project metadata (size, team, deployment frequency, etc.)
|
|
100
|
-
timeline_days: How far ahead to predict (default 90 days)
|
|
101
|
-
|
|
102
|
-
Returns:
|
|
103
|
-
List of predicted future issues
|
|
104
|
-
|
|
105
|
-
"""
|
|
106
|
-
|
|
107
|
-
@abstractmethod
|
|
108
|
-
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
109
|
-
"""Suggest how to fix an issue
|
|
110
|
-
|
|
111
|
-
Args:
|
|
112
|
-
issue: The issue to fix
|
|
113
|
-
|
|
114
|
-
Returns:
|
|
115
|
-
Fix suggestion with code examples
|
|
116
|
-
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
def run_full_analysis(
|
|
120
|
-
self,
|
|
121
|
-
code: str,
|
|
122
|
-
file_path: str,
|
|
123
|
-
language: str,
|
|
124
|
-
project_context: dict[str, Any] | None = None,
|
|
125
|
-
) -> WizardResult:
|
|
126
|
-
"""Run complete analysis: current issues + future predictions
|
|
127
|
-
|
|
128
|
-
Args:
|
|
129
|
-
code: Source code to analyze
|
|
130
|
-
file_path: Path to the file
|
|
131
|
-
language: Programming language
|
|
132
|
-
project_context: Optional project context for predictions
|
|
133
|
-
|
|
134
|
-
Returns:
|
|
135
|
-
Complete wizard result
|
|
136
|
-
|
|
137
|
-
"""
|
|
138
|
-
start_time = datetime.now()
|
|
139
|
-
|
|
140
|
-
# Analyze current code
|
|
141
|
-
issues = self.analyze_code(code, file_path, language)
|
|
142
|
-
|
|
143
|
-
# Predict future issues (Level 4)
|
|
144
|
-
predictions = []
|
|
145
|
-
if project_context:
|
|
146
|
-
predictions = self.predict_future_issues(
|
|
147
|
-
code,
|
|
148
|
-
file_path,
|
|
149
|
-
project_context,
|
|
150
|
-
timeline_days=90,
|
|
151
|
-
)
|
|
152
|
-
|
|
153
|
-
# Generate recommendations
|
|
154
|
-
recommendations = self._generate_recommendations(issues, predictions)
|
|
155
|
-
|
|
156
|
-
# Calculate summary
|
|
157
|
-
summary = self._generate_summary(issues, predictions)
|
|
158
|
-
|
|
159
|
-
analysis_time = (datetime.now() - start_time).total_seconds()
|
|
160
|
-
|
|
161
|
-
return WizardResult(
|
|
162
|
-
wizard_name=self.name,
|
|
163
|
-
issues=issues,
|
|
164
|
-
predictions=predictions,
|
|
165
|
-
summary=summary,
|
|
166
|
-
analyzed_files=1,
|
|
167
|
-
analysis_time=analysis_time,
|
|
168
|
-
recommendations=recommendations,
|
|
169
|
-
)
|
|
170
|
-
|
|
171
|
-
def _generate_recommendations(
|
|
172
|
-
self,
|
|
173
|
-
issues: list[WizardIssue],
|
|
174
|
-
predictions: list[WizardPrediction],
|
|
175
|
-
) -> list[str]:
|
|
176
|
-
"""Generate actionable recommendations"""
|
|
177
|
-
recommendations = []
|
|
178
|
-
|
|
179
|
-
# Address current critical issues
|
|
180
|
-
critical_issues = [i for i in issues if i.severity == "error"]
|
|
181
|
-
if critical_issues:
|
|
182
|
-
recommendations.append(f"Fix {len(critical_issues)} critical issues immediately")
|
|
183
|
-
|
|
184
|
-
# Address predictions
|
|
185
|
-
high_probability_predictions = [p for p in predictions if p.probability > 0.7]
|
|
186
|
-
if high_probability_predictions:
|
|
187
|
-
recommendations.append(
|
|
188
|
-
f"Prevent {len(high_probability_predictions)} predicted issues with high probability",
|
|
189
|
-
)
|
|
190
|
-
|
|
191
|
-
return recommendations
|
|
192
|
-
|
|
193
|
-
def _generate_summary(
|
|
194
|
-
self,
|
|
195
|
-
issues: list[WizardIssue],
|
|
196
|
-
predictions: list[WizardPrediction],
|
|
197
|
-
) -> str:
|
|
198
|
-
"""Generate human-readable summary"""
|
|
199
|
-
error_count = len([i for i in issues if i.severity == "error"])
|
|
200
|
-
warning_count = len([i for i in issues if i.severity == "warning"])
|
|
201
|
-
prediction_count = len(predictions)
|
|
202
|
-
|
|
203
|
-
summary = f"{self.name} Analysis: "
|
|
204
|
-
summary += f"{error_count} errors, {warning_count} warnings found. "
|
|
205
|
-
|
|
206
|
-
if prediction_count > 0:
|
|
207
|
-
summary += f"{prediction_count} future issues predicted (Level 4 Anticipatory)."
|
|
208
|
-
|
|
209
|
-
return summary
|
coach_wizards/cicd_wizard.py
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"""CICDWizard - CI/CD pipeline optimization
|
|
2
|
-
|
|
3
|
-
Level 4 Anticipatory Empathy for DevOps using the Empathy Framework.
|
|
4
|
-
|
|
5
|
-
Copyright 2025 Smart AI Memory, LLC
|
|
6
|
-
Licensed under Fair Source 0.9
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from typing import Any
|
|
10
|
-
|
|
11
|
-
from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class CICDWizard(BaseCoachWizard):
|
|
15
|
-
"""CI/CD pipeline optimization
|
|
16
|
-
|
|
17
|
-
Detects:
|
|
18
|
-
- slow pipelines
|
|
19
|
-
- flaky tests
|
|
20
|
-
- deployment risks
|
|
21
|
-
- missing automation
|
|
22
|
-
|
|
23
|
-
Predicts (Level 4):
|
|
24
|
-
- deployment failures
|
|
25
|
-
- pipeline maintenance burden
|
|
26
|
-
- release delays
|
|
27
|
-
"""
|
|
28
|
-
|
|
29
|
-
def __init__(self):
|
|
30
|
-
super().__init__(
|
|
31
|
-
name="CICDWizard",
|
|
32
|
-
category="DevOps",
|
|
33
|
-
languages=["yaml", "groovy", "python", "bash"],
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
37
|
-
"""Analyze code for devops issues
|
|
38
|
-
|
|
39
|
-
This is a reference implementation. In production, integrate with:
|
|
40
|
-
- Static analysis tools
|
|
41
|
-
- Linters and security scanners
|
|
42
|
-
- Custom rule engines
|
|
43
|
-
- AI models (Claude, GPT-4)
|
|
44
|
-
"""
|
|
45
|
-
issues = []
|
|
46
|
-
|
|
47
|
-
# Example heuristic detection
|
|
48
|
-
lines = code.split("\n")
|
|
49
|
-
for _i, _line in enumerate(lines, 1):
|
|
50
|
-
# Add detection logic based on devops
|
|
51
|
-
pass
|
|
52
|
-
|
|
53
|
-
self.logger.info(f"{self.name} found {len(issues)} issues in {file_path}")
|
|
54
|
-
return issues
|
|
55
|
-
|
|
56
|
-
def predict_future_issues(
|
|
57
|
-
self,
|
|
58
|
-
code: str,
|
|
59
|
-
file_path: str,
|
|
60
|
-
project_context: dict[str, Any],
|
|
61
|
-
timeline_days: int = 90,
|
|
62
|
-
) -> list[WizardPrediction]:
|
|
63
|
-
"""Level 4 Anticipatory: Predict devops issues {timeline_days} days ahead
|
|
64
|
-
|
|
65
|
-
Uses:
|
|
66
|
-
- Historical patterns
|
|
67
|
-
- Code trajectory analysis
|
|
68
|
-
- Dependency evolution
|
|
69
|
-
- Team velocity
|
|
70
|
-
- Industry trends
|
|
71
|
-
"""
|
|
72
|
-
predictions = []
|
|
73
|
-
|
|
74
|
-
# Example prediction logic
|
|
75
|
-
# In production, use ML models trained on historical data
|
|
76
|
-
|
|
77
|
-
self.logger.info(
|
|
78
|
-
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
|
-
)
|
|
81
|
-
return predictions
|
|
82
|
-
|
|
83
|
-
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""Suggest how to fix a devops issue
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
Detailed fix suggestion with code examples
|
|
88
|
-
|
|
89
|
-
"""
|
|
90
|
-
# Implementation depends on issue type
|
|
91
|
-
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|