empathy-framework 3.3.0__tar.gz → 3.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CHANGELOG.md +90 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/PKG-INFO +18 -5
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/README.md +17 -4
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/foreword.md +1 -1
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/PKG-INFO +18 -5
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/SOURCES.txt +18 -0
- empathy_framework-3.3.3/empathy_llm_toolkit/htmlcov/status.json +1 -0
- empathy_framework-3.3.3/empathy_llm_toolkit/security/htmlcov/status.json +1 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/cli.py +3 -1
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_ai_wizards.py +18 -18
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/__init__.py +7 -7
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/pyproject.toml +1 -1
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/__init__.py +51 -51
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cli.py +12 -8
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/config.py +30 -6
- empathy_framework-3.3.3/src/empathy_os/platform_utils.py +262 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/workflow_commands.py +2 -2
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_all_wizards.py +3 -3
- empathy_framework-3.3.3/tests/test_bug_predict_workflow.py +856 -0
- empathy_framework-3.3.3/tests/test_code_review_pipeline.py +416 -0
- empathy_framework-3.3.3/tests/test_code_review_pipeline_workflow.py +607 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_config.py +148 -0
- empathy_framework-3.3.3/tests/test_document_gen_workflow.py +822 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_model_router.py +2 -2
- empathy_framework-3.3.3/tests/test_perf_audit_workflow.py +687 -0
- empathy_framework-3.3.3/tests/test_platform_compat_ci.py +103 -0
- empathy_framework-3.3.3/tests/test_platform_utils.py +452 -0
- empathy_framework-3.3.3/tests/test_progress.py +658 -0
- empathy_framework-3.3.3/tests/test_refactor_golden.py +310 -0
- empathy_framework-3.3.3/tests/test_refactor_plan_workflow.py +704 -0
- empathy_framework-3.3.3/tests/test_refactoring_crew.py +937 -0
- empathy_framework-3.3.3/tests/test_secure_release_workflow.py +656 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_scan.py +3 -3
- empathy_framework-3.3.3/tests/test_step_config.py +482 -0
- empathy_framework-3.3.3/tests/test_token_estimator.py +418 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_wizard_site_comprehensive.py +6 -6
- empathy_framework-3.3.3/tests/test_workflow_base.py +970 -0
- empathy_framework-3.3.3/tests/test_workflow_commands.py +303 -0
- empathy_framework-3.3.0/tests/test_workflow_base.py +0 -344
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/.bandit +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CODE_OF_CONDUCT.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CONTRIBUTING.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/LICENSE +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/MANIFEST.in +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/QUICKSTART.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/SECURITY.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/compliance_anticipation_agent.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/epic_integration_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/trust_building_behaviors.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/api_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/base_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/cicd_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/database_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/generate_wizards.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/localization_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/migration_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/observability_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/performance_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/scaling_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/security_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/testing_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/ai-wizards.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/config.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/core.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/empathy-os.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/index.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/llm-toolkit.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/multi-agent.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/pattern-library.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/persistence.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/software-wizards.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/wizards.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/adaptive-learning-system.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/multi-agent-team-coordination.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/sbar-clinical-handoff.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/simple-chatbot.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/webhook-event-integration.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/getting-started/redis-setup.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/PUBLISHING.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/claude-memory-integration.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/healthcare-wizards.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/how-to-read-this-book.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/multi-model-workflows.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/preface.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/software-development-wizards.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/index.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy.config.example.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy.config.example.yml +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/dependency_links.txt +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/entry_points.txt +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/requires.txt +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/top_level.txt +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/claude_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/code_health.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/contextual_patterns.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/core.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/levels.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_confidence.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_resolver.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_summary.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/providers.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/session_status.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/state.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/plugin.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/README-SECURITY.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/example-with-imports.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/project-CLAUDE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/user-CLAUDE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/CHANGELOG.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/CONTRIBUTING.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/MARKETPLACE_READINESS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/PRIVACY.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/TODO.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach-lsp-server/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach-lsp-server/server.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/demo_all_wizards.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/API.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/FAQ.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/INSTALLATION.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/USER_MANUAL.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/WIZARDS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/health_check.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/jetbrains-plugin/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/cache.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/context_collector.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/error_handler.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/logging_config.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/protocol/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/protocol/messages.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/server.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/test_e2e.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/test_server.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/shared_learning.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_coach_wizards.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_new_wizards.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/vscode-extension/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/vscode-extension-complete/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/api_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/base_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/database_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/design_review_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/devops_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/localization_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/onboarding_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/performance_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/retrospective_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/security_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/debugging_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/healthcare_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/BLOG_POST.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/run_full_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/llm_toolkit_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/multi_llm_usage.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/performance_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart/minimal_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/redis_exploration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/security_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/security_integration_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/simple_usage.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/smart_team_quickstart.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/software_plugin_complete_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/streamlit_debug_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/test_debugging_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/test_short_term_memory_full.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/testing_demo.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/wizard-dashboard/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/wizard-dashboard/SETUP.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/README.md +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/code_review_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/doc_gen_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/multi_model_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/research_example.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/requirements.txt +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/setup.cfg +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cli_unified.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/coordination.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/core.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cost_tracker.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/discovery.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/emergence.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/exceptions.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/feedback_loops.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/levels.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/leverage_points.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/logging_config.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/monitoring.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/pattern_library.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/persistence.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/redis_config.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/redis_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/templates.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/trust_building.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_advanced_debugging.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory_resilience.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_audit_logger.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_audit_logger_extended.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_base_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_book_chapter_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_book_production_agents.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_claude_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_claude_memory_extended.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_cli.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_health.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_review_crew_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_review_workflow.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_control_panel.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_coordination.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_core.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_core_reliability.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_coverage_analyzer.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_crewai_adapter.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_dependency_check_workflow.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_emergence.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_llm_core.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_llm_security.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_os.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_os_cli_extended.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_enhanced_testing.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_exceptions.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_executor_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_fallback.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_feedback_loops.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_health_check_workflow.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_intelligence_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_levels.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_leverage_points.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_llm_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_llm_toolkit_levels.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_logging_config.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_memory_graph.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_model_registry.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_monitoring.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pattern_library.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_persistence.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pii_scrubber.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pii_scrubber_extended.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_plugin_base.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_plugin_registry.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pr_review_workflow.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_production_smoke.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_protocol_checker.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_protocol_loader.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_providers.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_quality_analyzer.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_bootstrap.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_resilience.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secrets_detector.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secure_memdocs.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secure_memdocs_extended.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_audit_crew.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_audit_workflow.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_crew_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_sensor_parsers.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_session_status.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_smart_router.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_cli.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_integration.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_plugin.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_plugin_cli.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_state.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_summary_index.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_telemetry.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_test_suggester.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_trajectory_analyzer.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_trust_building.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_unified_memory.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_validation.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_wizard_outputs.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_xml_prompts.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/__init__.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/admission_assessment_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/care_plan.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/clinical_assessment.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/discharge_planning.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/discharge_summary_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/dosage_calculation.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/incident_report_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/medication_reconciliation.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/nursing_assessment.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/patient_education.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/quality_improvement.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/sbar_report.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/sbar_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/shift_handoff_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/soap_note_wizard.py +0 -0
- {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/treatment_plan.py +0 -0
|
@@ -5,6 +5,96 @@ All notable changes to the Empathy Framework will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## [3.3.3] - 2025-12-28
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
**Reliability Improvements**
|
|
17
|
+
- Structured error taxonomy in `WorkflowResult`:
|
|
18
|
+
- New `error_type` field: `"config"` | `"runtime"` | `"provider"` | `"timeout"` | `"validation"`
|
|
19
|
+
- New `transient` boolean field to indicate if retry is reasonable
|
|
20
|
+
- Auto-classification of errors in `BaseWorkflow.execute()`
|
|
21
|
+
- Configuration architecture documentation (`docs/configuration-architecture.md`)
|
|
22
|
+
- Documents schema separation between `EmpathyConfig` and `WorkflowConfig`
|
|
23
|
+
- Identifies `WorkflowConfig` naming collision between two modules
|
|
24
|
+
- Best practices for config loading
|
|
25
|
+
|
|
26
|
+
**Refactor Advisor Enhancements** (VSCode Extension)
|
|
27
|
+
- Backend health indicator showing connection status
|
|
28
|
+
- Cancellation mechanism for in-flight analysis
|
|
29
|
+
- Pre-flight validation (Python and API key check before analysis)
|
|
30
|
+
- Cancel button during analysis with proper cleanup
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- `EmpathyConfig.from_yaml()` and `from_json()` now gracefully ignore unknown fields
|
|
35
|
+
- Fixes `TypeError: got an unexpected keyword argument 'provider'`
|
|
36
|
+
- Allows config files to contain settings for other components
|
|
37
|
+
- Model ID test assertions updated to match registry (`claude-sonnet-4-5-20250514`)
|
|
38
|
+
- Updated model_router docstrings to reflect current model IDs
|
|
39
|
+
|
|
40
|
+
### Tests
|
|
41
|
+
|
|
42
|
+
- Added 5 tests for `EmpathyConfig` unknown field filtering
|
|
43
|
+
- Added 5 tests for `WorkflowResult` error taxonomy (`error_type`, `transient`)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## [3.3.2] - 2025-12-27
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
**Windows Compatibility**
|
|
52
|
+
- New `platform_utils` module for cross-platform support
|
|
53
|
+
- Platform detection functions (`is_windows()`, `is_macos()`, `is_linux()`)
|
|
54
|
+
- Platform-appropriate directory functions for logs, data, config, and cache
|
|
55
|
+
- Asyncio Windows event loop policy handling (`setup_asyncio_policy()`)
|
|
56
|
+
- UTF-8 encoding utilities for text files
|
|
57
|
+
- Path normalization helpers
|
|
58
|
+
- Cross-platform compatibility checker script (`scripts/check_platform_compat.py`)
|
|
59
|
+
- Detects hardcoded Unix paths, missing encoding, asyncio issues
|
|
60
|
+
- JSON output mode for CI integration
|
|
61
|
+
- `--fix` mode with suggested corrections
|
|
62
|
+
- CI integration for platform compatibility checks in GitHub Actions
|
|
63
|
+
- Pre-commit hook for platform compatibility (manual stage)
|
|
64
|
+
- Pytest integration test for platform compatibility (`test_platform_compat_ci.py`)
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- Hardcoded Unix paths in `audit_logger.py` now use platform-appropriate defaults
|
|
69
|
+
- Added `setup_asyncio_policy()` call in CLI entry point for Windows compatibility
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
|
|
73
|
+
- Updated `.claude/python-standards.md` with cross-platform coding guidelines
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## [3.3.1] - 2025-12-27
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
|
|
81
|
+
- Updated Anthropic capable tier from Sonnet 4 to Sonnet 4.5 (`claude-sonnet-4-5-20250514`)
|
|
82
|
+
- Fixed model references in token_estimator and executor
|
|
83
|
+
- Fixed Setup button not opening Initialize Wizard (added `force` parameter)
|
|
84
|
+
- Fixed Cost Simulator layout for narrow panels (single-column layout)
|
|
85
|
+
- Fixed cost display inconsistency between workflow report and CLI footer
|
|
86
|
+
- Unified timing display to use milliseconds across all workflow reports
|
|
87
|
+
- Removed redundant CLI footer (workflow reports now contain complete timing/cost info)
|
|
88
|
+
- Fixed all mypy type errors across empathy_os and empathy_llm_toolkit
|
|
89
|
+
- Fixed ruff linting warnings (unused variables in dependency_check.py, document_gen.py)
|
|
90
|
+
|
|
91
|
+
### Changed
|
|
92
|
+
|
|
93
|
+
- All workflow reports now display duration in milliseconds (e.g., `Review completed in 15041ms`)
|
|
94
|
+
- Consistent footer format: `{Workflow} completed in {ms}ms | Cost: ${cost:.4f}`
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
8
98
|
## [3.2.3] - 2025-12-24
|
|
9
99
|
|
|
10
100
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.3
|
|
4
4
|
Summary: AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration
|
|
5
5
|
Author-email: Patrick Roebuck <patrick.roebuck@smartAImemory.com>
|
|
6
6
|
Maintainer-email: Smart-AI-Memory <patrick.roebuck@smartAImemory.com>
|
|
@@ -271,7 +271,7 @@ Dynamic: license-file
|
|
|
271
271
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
272
272
|
|
|
273
273
|
[](https://pypi.org/project/empathy-framework/)
|
|
274
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
275
275
|
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
276
276
|
[](LICENSE)
|
|
277
277
|
[](https://www.python.org)
|
|
@@ -368,17 +368,21 @@ print(result.prevention_steps) # How to prevent it
|
|
|
368
368
|
## Become a Power User
|
|
369
369
|
|
|
370
370
|
### Level 1: Basic Usage
|
|
371
|
+
|
|
371
372
|
```bash
|
|
372
373
|
pip install empathy-framework
|
|
373
374
|
```
|
|
375
|
+
|
|
374
376
|
- Works out of the box with sensible defaults
|
|
375
377
|
- Auto-detects your API keys
|
|
376
378
|
|
|
377
379
|
### Level 2: Cost Optimization
|
|
380
|
+
|
|
378
381
|
```bash
|
|
379
382
|
# Enable hybrid mode for 80-96% cost savings
|
|
380
383
|
python -m empathy_os.models.cli provider --set hybrid
|
|
381
384
|
```
|
|
385
|
+
|
|
382
386
|
| Tier | Model | Use Case | Cost |
|
|
383
387
|
|------|-------|----------|------|
|
|
384
388
|
| Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
|
|
@@ -386,6 +390,7 @@ python -m empathy_os.models.cli provider --set hybrid
|
|
|
386
390
|
| Premium | o1 / Opus | Architecture, complex decisions | $15/M |
|
|
387
391
|
|
|
388
392
|
### Level 3: Multi-Model Workflows
|
|
393
|
+
|
|
389
394
|
```python
|
|
390
395
|
from empathy_llm_toolkit import EmpathyLLM
|
|
391
396
|
|
|
@@ -398,13 +403,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
|
|
|
398
403
|
```
|
|
399
404
|
|
|
400
405
|
### Level 4: VSCode Integration
|
|
406
|
+
|
|
401
407
|
Install the Empathy VSCode extension for:
|
|
408
|
+
|
|
402
409
|
- **Real-time Dashboard** — Health score, costs, patterns
|
|
403
410
|
- **One-Click Workflows** — Research, code review, debugging
|
|
404
411
|
- **Visual Cost Tracking** — See savings in real-time
|
|
405
|
-
|
|
412
|
+
- See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
|
|
406
413
|
|
|
407
414
|
### Level 5: Custom Agents
|
|
415
|
+
|
|
408
416
|
```python
|
|
409
417
|
from empathy_os.agents import AgentFactory
|
|
410
418
|
|
|
@@ -421,6 +429,7 @@ security_agent = AgentFactory.create(
|
|
|
421
429
|
## CLI Reference
|
|
422
430
|
|
|
423
431
|
### Provider Configuration
|
|
432
|
+
|
|
424
433
|
```bash
|
|
425
434
|
python -m empathy_os.models.cli provider # Show current config
|
|
426
435
|
python -m empathy_os.models.cli provider --set anthropic # Single provider
|
|
@@ -430,6 +439,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
|
|
|
430
439
|
```
|
|
431
440
|
|
|
432
441
|
### Model Registry
|
|
442
|
+
|
|
433
443
|
```bash
|
|
434
444
|
python -m empathy_os.models.cli registry # Show all models
|
|
435
445
|
python -m empathy_os.models.cli registry --provider openai # Filter by provider
|
|
@@ -437,6 +447,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
|
|
|
437
447
|
```
|
|
438
448
|
|
|
439
449
|
### Telemetry & Analytics
|
|
450
|
+
|
|
440
451
|
```bash
|
|
441
452
|
python -m empathy_os.models.cli telemetry # Summary
|
|
442
453
|
python -m empathy_os.models.cli telemetry --costs # Cost savings report
|
|
@@ -445,6 +456,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
|
|
|
445
456
|
```
|
|
446
457
|
|
|
447
458
|
### Memory Control
|
|
459
|
+
|
|
448
460
|
```bash
|
|
449
461
|
empathy-memory serve # Start Redis + API server
|
|
450
462
|
empathy-memory status # Check system status
|
|
@@ -453,6 +465,7 @@ empathy-memory patterns # List stored patterns
|
|
|
453
465
|
```
|
|
454
466
|
|
|
455
467
|
### Code Inspection
|
|
468
|
+
|
|
456
469
|
```bash
|
|
457
470
|
empathy-inspect . # Run full inspection
|
|
458
471
|
empathy-inspect . --format sarif # GitHub Actions format
|
|
@@ -726,8 +739,8 @@ cd empathy-framework && pip install -e .[dev]
|
|
|
726
739
|
|
|
727
740
|
```bash
|
|
728
741
|
# Required: At least one provider
|
|
729
|
-
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
|
|
730
|
-
export OPENAI_API_KEY="sk-..." # For GPT models
|
|
742
|
+
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
|
|
743
|
+
export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
|
|
731
744
|
|
|
732
745
|
# Optional: Redis for memory
|
|
733
746
|
export REDIS_URL="redis://localhost:6379"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
4
4
|
|
|
5
5
|
[](https://pypi.org/project/empathy-framework/)
|
|
6
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
7
7
|
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
[](https://www.python.org)
|
|
@@ -100,17 +100,21 @@ print(result.prevention_steps) # How to prevent it
|
|
|
100
100
|
## Become a Power User
|
|
101
101
|
|
|
102
102
|
### Level 1: Basic Usage
|
|
103
|
+
|
|
103
104
|
```bash
|
|
104
105
|
pip install empathy-framework
|
|
105
106
|
```
|
|
107
|
+
|
|
106
108
|
- Works out of the box with sensible defaults
|
|
107
109
|
- Auto-detects your API keys
|
|
108
110
|
|
|
109
111
|
### Level 2: Cost Optimization
|
|
112
|
+
|
|
110
113
|
```bash
|
|
111
114
|
# Enable hybrid mode for 80-96% cost savings
|
|
112
115
|
python -m empathy_os.models.cli provider --set hybrid
|
|
113
116
|
```
|
|
117
|
+
|
|
114
118
|
| Tier | Model | Use Case | Cost |
|
|
115
119
|
|------|-------|----------|------|
|
|
116
120
|
| Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
|
|
@@ -118,6 +122,7 @@ python -m empathy_os.models.cli provider --set hybrid
|
|
|
118
122
|
| Premium | o1 / Opus | Architecture, complex decisions | $15/M |
|
|
119
123
|
|
|
120
124
|
### Level 3: Multi-Model Workflows
|
|
125
|
+
|
|
121
126
|
```python
|
|
122
127
|
from empathy_llm_toolkit import EmpathyLLM
|
|
123
128
|
|
|
@@ -130,13 +135,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
|
|
|
130
135
|
```
|
|
131
136
|
|
|
132
137
|
### Level 4: VSCode Integration
|
|
138
|
+
|
|
133
139
|
Install the Empathy VSCode extension for:
|
|
140
|
+
|
|
134
141
|
- **Real-time Dashboard** — Health score, costs, patterns
|
|
135
142
|
- **One-Click Workflows** — Research, code review, debugging
|
|
136
143
|
- **Visual Cost Tracking** — See savings in real-time
|
|
137
|
-
|
|
144
|
+
- See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
|
|
138
145
|
|
|
139
146
|
### Level 5: Custom Agents
|
|
147
|
+
|
|
140
148
|
```python
|
|
141
149
|
from empathy_os.agents import AgentFactory
|
|
142
150
|
|
|
@@ -153,6 +161,7 @@ security_agent = AgentFactory.create(
|
|
|
153
161
|
## CLI Reference
|
|
154
162
|
|
|
155
163
|
### Provider Configuration
|
|
164
|
+
|
|
156
165
|
```bash
|
|
157
166
|
python -m empathy_os.models.cli provider # Show current config
|
|
158
167
|
python -m empathy_os.models.cli provider --set anthropic # Single provider
|
|
@@ -162,6 +171,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
|
|
|
162
171
|
```
|
|
163
172
|
|
|
164
173
|
### Model Registry
|
|
174
|
+
|
|
165
175
|
```bash
|
|
166
176
|
python -m empathy_os.models.cli registry # Show all models
|
|
167
177
|
python -m empathy_os.models.cli registry --provider openai # Filter by provider
|
|
@@ -169,6 +179,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
|
|
|
169
179
|
```
|
|
170
180
|
|
|
171
181
|
### Telemetry & Analytics
|
|
182
|
+
|
|
172
183
|
```bash
|
|
173
184
|
python -m empathy_os.models.cli telemetry # Summary
|
|
174
185
|
python -m empathy_os.models.cli telemetry --costs # Cost savings report
|
|
@@ -177,6 +188,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
|
|
|
177
188
|
```
|
|
178
189
|
|
|
179
190
|
### Memory Control
|
|
191
|
+
|
|
180
192
|
```bash
|
|
181
193
|
empathy-memory serve # Start Redis + API server
|
|
182
194
|
empathy-memory status # Check system status
|
|
@@ -185,6 +197,7 @@ empathy-memory patterns # List stored patterns
|
|
|
185
197
|
```
|
|
186
198
|
|
|
187
199
|
### Code Inspection
|
|
200
|
+
|
|
188
201
|
```bash
|
|
189
202
|
empathy-inspect . # Run full inspection
|
|
190
203
|
empathy-inspect . --format sarif # GitHub Actions format
|
|
@@ -458,8 +471,8 @@ cd empathy-framework && pip install -e .[dev]
|
|
|
458
471
|
|
|
459
472
|
```bash
|
|
460
473
|
# Required: At least one provider
|
|
461
|
-
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
|
|
462
|
-
export OPENAI_API_KEY="sk-..." # For GPT models
|
|
474
|
+
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
|
|
475
|
+
export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
|
|
463
476
|
|
|
464
477
|
# Optional: Redis for memory
|
|
465
478
|
export REDIS_URL="redis://localhost:6379"
|
|
@@ -67,4 +67,4 @@ Whether that participant is human or AI.
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
69
|
!!! note "Context"
|
|
70
|
-
This foreword was written during working sessions where Claude and Patrick built Redis-backed short-term memory for multi-agent coordination. The framework now includes 53 wizards across healthcare, software, coach, and domain categories, with over
|
|
70
|
+
This foreword was written during working sessions where Claude and Patrick built Redis-backed short-term memory for multi-agent coordination. The framework now includes 53 wizards across healthcare, software, coach, and domain categories, with over 3,000 tests ensuring reliability.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.3
|
|
4
4
|
Summary: AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration
|
|
5
5
|
Author-email: Patrick Roebuck <patrick.roebuck@smartAImemory.com>
|
|
6
6
|
Maintainer-email: Smart-AI-Memory <patrick.roebuck@smartAImemory.com>
|
|
@@ -271,7 +271,7 @@ Dynamic: license-file
|
|
|
271
271
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
272
272
|
|
|
273
273
|
[](https://pypi.org/project/empathy-framework/)
|
|
274
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
275
275
|
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
276
276
|
[](LICENSE)
|
|
277
277
|
[](https://www.python.org)
|
|
@@ -368,17 +368,21 @@ print(result.prevention_steps) # How to prevent it
|
|
|
368
368
|
## Become a Power User
|
|
369
369
|
|
|
370
370
|
### Level 1: Basic Usage
|
|
371
|
+
|
|
371
372
|
```bash
|
|
372
373
|
pip install empathy-framework
|
|
373
374
|
```
|
|
375
|
+
|
|
374
376
|
- Works out of the box with sensible defaults
|
|
375
377
|
- Auto-detects your API keys
|
|
376
378
|
|
|
377
379
|
### Level 2: Cost Optimization
|
|
380
|
+
|
|
378
381
|
```bash
|
|
379
382
|
# Enable hybrid mode for 80-96% cost savings
|
|
380
383
|
python -m empathy_os.models.cli provider --set hybrid
|
|
381
384
|
```
|
|
385
|
+
|
|
382
386
|
| Tier | Model | Use Case | Cost |
|
|
383
387
|
|------|-------|----------|------|
|
|
384
388
|
| Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
|
|
@@ -386,6 +390,7 @@ python -m empathy_os.models.cli provider --set hybrid
|
|
|
386
390
|
| Premium | o1 / Opus | Architecture, complex decisions | $15/M |
|
|
387
391
|
|
|
388
392
|
### Level 3: Multi-Model Workflows
|
|
393
|
+
|
|
389
394
|
```python
|
|
390
395
|
from empathy_llm_toolkit import EmpathyLLM
|
|
391
396
|
|
|
@@ -398,13 +403,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
|
|
|
398
403
|
```
|
|
399
404
|
|
|
400
405
|
### Level 4: VSCode Integration
|
|
406
|
+
|
|
401
407
|
Install the Empathy VSCode extension for:
|
|
408
|
+
|
|
402
409
|
- **Real-time Dashboard** — Health score, costs, patterns
|
|
403
410
|
- **One-Click Workflows** — Research, code review, debugging
|
|
404
411
|
- **Visual Cost Tracking** — See savings in real-time
|
|
405
|
-
|
|
412
|
+
- See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
|
|
406
413
|
|
|
407
414
|
### Level 5: Custom Agents
|
|
415
|
+
|
|
408
416
|
```python
|
|
409
417
|
from empathy_os.agents import AgentFactory
|
|
410
418
|
|
|
@@ -421,6 +429,7 @@ security_agent = AgentFactory.create(
|
|
|
421
429
|
## CLI Reference
|
|
422
430
|
|
|
423
431
|
### Provider Configuration
|
|
432
|
+
|
|
424
433
|
```bash
|
|
425
434
|
python -m empathy_os.models.cli provider # Show current config
|
|
426
435
|
python -m empathy_os.models.cli provider --set anthropic # Single provider
|
|
@@ -430,6 +439,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
|
|
|
430
439
|
```
|
|
431
440
|
|
|
432
441
|
### Model Registry
|
|
442
|
+
|
|
433
443
|
```bash
|
|
434
444
|
python -m empathy_os.models.cli registry # Show all models
|
|
435
445
|
python -m empathy_os.models.cli registry --provider openai # Filter by provider
|
|
@@ -437,6 +447,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
|
|
|
437
447
|
```
|
|
438
448
|
|
|
439
449
|
### Telemetry & Analytics
|
|
450
|
+
|
|
440
451
|
```bash
|
|
441
452
|
python -m empathy_os.models.cli telemetry # Summary
|
|
442
453
|
python -m empathy_os.models.cli telemetry --costs # Cost savings report
|
|
@@ -445,6 +456,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
|
|
|
445
456
|
```
|
|
446
457
|
|
|
447
458
|
### Memory Control
|
|
459
|
+
|
|
448
460
|
```bash
|
|
449
461
|
empathy-memory serve # Start Redis + API server
|
|
450
462
|
empathy-memory status # Check system status
|
|
@@ -453,6 +465,7 @@ empathy-memory patterns # List stored patterns
|
|
|
453
465
|
```
|
|
454
466
|
|
|
455
467
|
### Code Inspection
|
|
468
|
+
|
|
456
469
|
```bash
|
|
457
470
|
empathy-inspect . # Run full inspection
|
|
458
471
|
empathy-inspect . --format sarif # GitHub Actions format
|
|
@@ -726,8 +739,8 @@ cd empathy-framework && pip install -e .[dev]
|
|
|
726
739
|
|
|
727
740
|
```bash
|
|
728
741
|
# Required: At least one provider
|
|
729
|
-
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
|
|
730
|
-
export OPENAI_API_KEY="sk-..." # For GPT models
|
|
742
|
+
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
|
|
743
|
+
export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
|
|
731
744
|
|
|
732
745
|
# Optional: Redis for memory
|
|
733
746
|
export REDIS_URL="redis://localhost:6379"
|
|
@@ -99,6 +99,8 @@ empathy_llm_toolkit/pattern_summary.py
|
|
|
99
99
|
empathy_llm_toolkit/providers.py
|
|
100
100
|
empathy_llm_toolkit/session_status.py
|
|
101
101
|
empathy_llm_toolkit/state.py
|
|
102
|
+
empathy_llm_toolkit/htmlcov/status.json
|
|
103
|
+
empathy_llm_toolkit/security/htmlcov/status.json
|
|
102
104
|
empathy_software_plugin/SOFTWARE_PLUGIN_README.md
|
|
103
105
|
empathy_software_plugin/__init__.py
|
|
104
106
|
empathy_software_plugin/cli.py
|
|
@@ -242,6 +244,7 @@ src/empathy_os/logging_config.py
|
|
|
242
244
|
src/empathy_os/monitoring.py
|
|
243
245
|
src/empathy_os/pattern_library.py
|
|
244
246
|
src/empathy_os/persistence.py
|
|
247
|
+
src/empathy_os/platform_utils.py
|
|
245
248
|
src/empathy_os/redis_config.py
|
|
246
249
|
src/empathy_os/redis_memory.py
|
|
247
250
|
src/empathy_os/templates.py
|
|
@@ -257,12 +260,15 @@ tests/test_audit_logger_extended.py
|
|
|
257
260
|
tests/test_base_wizard.py
|
|
258
261
|
tests/test_book_chapter_wizard.py
|
|
259
262
|
tests/test_book_production_agents.py
|
|
263
|
+
tests/test_bug_predict_workflow.py
|
|
260
264
|
tests/test_claude_memory.py
|
|
261
265
|
tests/test_claude_memory_extended.py
|
|
262
266
|
tests/test_cli.py
|
|
263
267
|
tests/test_clinical_protocol_monitor.py
|
|
264
268
|
tests/test_code_health.py
|
|
265
269
|
tests/test_code_review_crew_integration.py
|
|
270
|
+
tests/test_code_review_pipeline.py
|
|
271
|
+
tests/test_code_review_pipeline_workflow.py
|
|
266
272
|
tests/test_code_review_workflow.py
|
|
267
273
|
tests/test_config.py
|
|
268
274
|
tests/test_control_panel.py
|
|
@@ -272,6 +278,7 @@ tests/test_core_reliability.py
|
|
|
272
278
|
tests/test_coverage_analyzer.py
|
|
273
279
|
tests/test_crewai_adapter.py
|
|
274
280
|
tests/test_dependency_check_workflow.py
|
|
281
|
+
tests/test_document_gen_workflow.py
|
|
275
282
|
tests/test_emergence.py
|
|
276
283
|
tests/test_empathy_llm_core.py
|
|
277
284
|
tests/test_empathy_llm_security.py
|
|
@@ -294,13 +301,17 @@ tests/test_model_registry.py
|
|
|
294
301
|
tests/test_model_router.py
|
|
295
302
|
tests/test_monitoring.py
|
|
296
303
|
tests/test_pattern_library.py
|
|
304
|
+
tests/test_perf_audit_workflow.py
|
|
297
305
|
tests/test_persistence.py
|
|
298
306
|
tests/test_pii_scrubber.py
|
|
299
307
|
tests/test_pii_scrubber_extended.py
|
|
308
|
+
tests/test_platform_compat_ci.py
|
|
309
|
+
tests/test_platform_utils.py
|
|
300
310
|
tests/test_plugin_base.py
|
|
301
311
|
tests/test_plugin_registry.py
|
|
302
312
|
tests/test_pr_review_workflow.py
|
|
303
313
|
tests/test_production_smoke.py
|
|
314
|
+
tests/test_progress.py
|
|
304
315
|
tests/test_prompt_engineering_wizard.py
|
|
305
316
|
tests/test_protocol_checker.py
|
|
306
317
|
tests/test_protocol_loader.py
|
|
@@ -309,10 +320,14 @@ tests/test_quality_analyzer.py
|
|
|
309
320
|
tests/test_redis_bootstrap.py
|
|
310
321
|
tests/test_redis_integration.py
|
|
311
322
|
tests/test_redis_memory.py
|
|
323
|
+
tests/test_refactor_golden.py
|
|
324
|
+
tests/test_refactor_plan_workflow.py
|
|
325
|
+
tests/test_refactoring_crew.py
|
|
312
326
|
tests/test_resilience.py
|
|
313
327
|
tests/test_secrets_detector.py
|
|
314
328
|
tests/test_secure_memdocs.py
|
|
315
329
|
tests/test_secure_memdocs_extended.py
|
|
330
|
+
tests/test_secure_release_workflow.py
|
|
316
331
|
tests/test_security_audit_crew.py
|
|
317
332
|
tests/test_security_audit_workflow.py
|
|
318
333
|
tests/test_security_crew_integration.py
|
|
@@ -326,9 +341,11 @@ tests/test_software_integration.py
|
|
|
326
341
|
tests/test_software_plugin.py
|
|
327
342
|
tests/test_software_plugin_cli.py
|
|
328
343
|
tests/test_state.py
|
|
344
|
+
tests/test_step_config.py
|
|
329
345
|
tests/test_summary_index.py
|
|
330
346
|
tests/test_telemetry.py
|
|
331
347
|
tests/test_test_suggester.py
|
|
348
|
+
tests/test_token_estimator.py
|
|
332
349
|
tests/test_trajectory_analyzer.py
|
|
333
350
|
tests/test_trust_building.py
|
|
334
351
|
tests/test_unified_memory.py
|
|
@@ -336,6 +353,7 @@ tests/test_validation.py
|
|
|
336
353
|
tests/test_wizard_outputs.py
|
|
337
354
|
tests/test_wizard_site_comprehensive.py
|
|
338
355
|
tests/test_workflow_base.py
|
|
356
|
+
tests/test_workflow_commands.py
|
|
339
357
|
tests/test_xml_prompts.py
|
|
340
358
|
wizards/__init__.py
|
|
341
359
|
wizards/admission_assessment_wizard.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"note":"This file is an internal implementation detail to speed up HTML report generation. Its format can change at any time. You might be looking for the JSON report: https://coverage.rtfd.io/cmd.html#cmd-json","format":5,"version":"7.11.2","globals":"1647e1602d568c377a9cb0dc3296bc7b","files":{"__init___py":{"hash":"1e943cec927dee34f9523b2eb67d8922","index":{"url":"__init___py.html","file":"__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":6,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"claude_memory_py":{"hash":"25f8fe4e69f6b1e4091924c070803e8a","index":{"url":"claude_memory_py.html","file":"claude_memory.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":169,"n_excluded":0,"n_missing":169,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"code_health_py":{"hash":"a78753eaebd08c9c2cb5f1cd5a14f723","index":{"url":"code_health_py.html","file":"code_health.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":503,"n_excluded":0,"n_missing":503,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"contextual_patterns_py":{"hash":"12004dba086f2def1d9e65bbf68a88f8","index":{"url":"contextual_patterns_py.html","file":"contextual_patterns.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":171,"n_excluded":0,"n_missing":171,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"core_py":{"hash":"aa25b266741f161b0fa2500af1db03da","index":{"url":"core_py.html","file":"core.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":177,"n_excluded":0,"n_missing":151,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"git_pattern_extractor_py":{"hash":"88e57b53ff683a92613ae343a55ad1bb","index":{"url":"git_pattern_extractor_py.html","file":"git_pattern_extractor.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":164,"n_excluded":0,"n_missing":164,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"levels_py":{"hash":"ef211f0c742ccdab452cbe36ac205815","index":{"url":"levels_py.html","file":"levels.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":33,"n_excluded":0,"n_missing":12,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_confidence_py":{"hash":"1806d001ef22f2f9c4f5cc24faa5724d","index":{"url":"pattern_confidence_py.html","file":"pattern_confidence.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":196,"n_excluded":0,"n_missing":196,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_resolver_py":{"hash":"af2687d544197eb576abe872270157a5","index":{"url":"pattern_resolver_py.html","file":"pattern_resolver.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":121,"n_excluded":0,"n_missing":121,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_summary_py":{"hash":"51c42611c0d7a57f4e5c9f487f3b0882","index":{"url":"pattern_summary_py.html","file":"pattern_summary.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":178,"n_excluded":0,"n_missing":178,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"providers_py":{"hash":"8b779f9132bea067bec66007bd492b45","index":{"url":"providers_py.html","file":"providers.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":106,"n_excluded":0,"n_missing":76,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df___init___py":{"hash":"dec456df46eda04d5d3381b09af05c36","index":{"url":"z_10414145323772df___init___py.html","file":"security/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":3,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_audit_logger_py":{"hash":"9197b939a93f6b8dd8549ab6b73f0887","index":{"url":"z_10414145323772df_audit_logger_py.html","file":"security/audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":247,"n_excluded":0,"n_missing":247,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_audit_logger_example_py":{"hash":"ecc80543a0cac77b9b5a52d9d8451793","index":{"url":"z_10414145323772df_audit_logger_example_py.html","file":"security/audit_logger_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":59,"n_excluded":0,"n_missing":59,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_pii_scrubber_py":{"hash":"0254532a873c529be428a4d88663e917","index":{"url":"z_10414145323772df_pii_scrubber_py.html","file":"security/pii_scrubber.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":140,"n_excluded":0,"n_missing":140,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secrets_detector_py":{"hash":"b160d5903a118f959559e32f7535d7e2","index":{"url":"z_10414145323772df_secrets_detector_py.html","file":"security/secrets_detector.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":199,"n_excluded":0,"n_missing":199,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secrets_detector_example_py":{"hash":"ba9b9af2e80e78ec21a15712e06dd279","index":{"url":"z_10414145323772df_secrets_detector_example_py.html","file":"security/secrets_detector_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":145,"n_excluded":0,"n_missing":145,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secure_memdocs_py":{"hash":"47c339d82b66068fb9a831fffb58bc8a","index":{"url":"z_10414145323772df_secure_memdocs_py.html","file":"security/secure_memdocs.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":350,"n_excluded":0,"n_missing":350,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secure_memdocs_example_py":{"hash":"3fd076ca92a0a84002c57d80cfed902f","index":{"url":"z_10414145323772df_secure_memdocs_example_py.html","file":"security/secure_memdocs_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":106,"n_excluded":0,"n_missing":106,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"session_status_py":{"hash":"4c8d6be4bbdac24bc27d0c27890532a6","index":{"url":"session_status_py.html","file":"session_status.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":312,"n_excluded":0,"n_missing":312,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"state_py":{"hash":"724ab29020a3a3870ac6b9c94c71127d","index":{"url":"state_py.html","file":"state.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":87,"n_excluded":0,"n_missing":40,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449___init___py":{"hash":"10fa30f44c3688eb2de5302412aa33d6","index":{"url":"z_984ef1e268fea449___init___py.html","file":"wizards/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":5,"n_excluded":0,"n_missing":5,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_base_wizard_py":{"hash":"590f2d248a77ea3e621b9f3c4ded2397","index":{"url":"z_984ef1e268fea449_base_wizard_py.html","file":"wizards/base_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":56,"n_excluded":0,"n_missing":56,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_customer_support_wizard_py":{"hash":"f92a98bbbec12fad579ac19787971b08","index":{"url":"z_984ef1e268fea449_customer_support_wizard_py.html","file":"wizards/customer_support_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":17,"n_excluded":0,"n_missing":17,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_healthcare_wizard_py":{"hash":"96977dfa18d691fdd84424311686d23a","index":{"url":"z_984ef1e268fea449_healthcare_wizard_py.html","file":"wizards/healthcare_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":57,"n_excluded":0,"n_missing":57,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_technology_wizard_py":{"hash":"6998c841130aa6e0982dc586006a5640","index":{"url":"z_984ef1e268fea449_technology_wizard_py.html","file":"wizards/technology_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":19,"n_excluded":0,"n_missing":19,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"note":"This file is an internal implementation detail to speed up HTML report generation. Its format can change at any time. You might be looking for the JSON report: https://coverage.rtfd.io/cmd.html#cmd-json","format":5,"version":"7.11.2","globals":"93e0a98f3da7f95e5ae873f233acfe8f","files":{"z_0da0bc3caf3df21d___init___py":{"hash":"678b97c61cc7e540c9ecbd0485aef62e","index":{"url":"z_0da0bc3caf3df21d___init___py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":6,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_claude_memory_py":{"hash":"9e1a909857359093b60c8b3641b9686f","index":{"url":"z_0da0bc3caf3df21d_claude_memory_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/claude_memory.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":169,"n_excluded":0,"n_missing":132,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_core_py":{"hash":"45f6bf0d1f0f9b193700d313f3999f0a","index":{"url":"z_0da0bc3caf3df21d_core_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/core.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":124,"n_excluded":0,"n_missing":100,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_levels_py":{"hash":"029cd19bbfaefe72a2df6fb26fafbb07","index":{"url":"z_0da0bc3caf3df21d_levels_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/levels.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":33,"n_excluded":0,"n_missing":12,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_providers_py":{"hash":"8a61e565ded340098a9717471cb139cc","index":{"url":"z_0da0bc3caf3df21d_providers_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/providers.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":104,"n_excluded":0,"n_missing":74,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"__init___py":{"hash":"bc61a9c102480a73e01fb8f507fe604c","index":{"url":"__init___py.html","file":"__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":3,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"audit_logger_py":{"hash":"288003e820abd1edb81b099a12e58af5","index":{"url":"audit_logger_py.html","file":"audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":244,"n_excluded":0,"n_missing":72,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"audit_logger_example_py":{"hash":"8c491197716328c7faed6badacb3a68b","index":{"url":"audit_logger_example_py.html","file":"audit_logger_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":60,"n_excluded":0,"n_missing":60,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pii_scrubber_py":{"hash":"9768c14c0e1e90619f7d80f059ca4395","index":{"url":"pii_scrubber_py.html","file":"pii_scrubber.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":140,"n_excluded":0,"n_missing":107,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"secrets_detector_py":{"hash":"36cd068d345d0328e6959132de4ade69","index":{"url":"secrets_detector_py.html","file":"secrets_detector.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":199,"n_excluded":0,"n_missing":199,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"test_audit_logger_py":{"hash":"a5a92daff7da2027470aca6a728adbb8","index":{"url":"test_audit_logger_py.html","file":"test_audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":185,"n_excluded":0,"n_missing":1,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_state_py":{"hash":"3ed61e7760d5e588d4d6743dffa9094f","index":{"url":"z_0da0bc3caf3df21d_state_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/state.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":87,"n_excluded":0,"n_missing":40,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}}}}
|
|
@@ -655,7 +655,9 @@ def scan_command():
|
|
|
655
655
|
severity_icon = (
|
|
656
656
|
"🔴"
|
|
657
657
|
if issue.severity == "high"
|
|
658
|
-
else "🟡"
|
|
658
|
+
else "🟡"
|
|
659
|
+
if issue.severity == "medium"
|
|
660
|
+
else "🔵"
|
|
659
661
|
)
|
|
660
662
|
print(f" {severity_icon} Line {issue.line_number}: {issue.message}")
|
|
661
663
|
if len(result.issues) > 3:
|
{empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_ai_wizards.py
RENAMED
|
@@ -88,9 +88,9 @@ Try to be as helpful as possible.
|
|
|
88
88
|
|
|
89
89
|
# Should detect vague language
|
|
90
90
|
issues = result["issues"]
|
|
91
|
-
assert any(
|
|
92
|
-
|
|
93
|
-
)
|
|
91
|
+
assert any(issue["type"] == "vague_language" for issue in issues), (
|
|
92
|
+
"Should detect vague language like 'try to', 'help'"
|
|
93
|
+
)
|
|
94
94
|
|
|
95
95
|
@pytest.mark.asyncio
|
|
96
96
|
async def test_analyze_detects_missing_structure(
|
|
@@ -108,9 +108,9 @@ Try to be as helpful as possible.
|
|
|
108
108
|
|
|
109
109
|
# Should detect unclear structure
|
|
110
110
|
issues = result["issues"]
|
|
111
|
-
assert any(
|
|
112
|
-
|
|
113
|
-
)
|
|
111
|
+
assert any(issue["type"] == "unclear_structure" for issue in issues), (
|
|
112
|
+
"Should detect missing role/task/context structure"
|
|
113
|
+
)
|
|
114
114
|
|
|
115
115
|
@pytest.mark.asyncio
|
|
116
116
|
async def test_level_4_predictions(self, wizard, temp_prompt_file, temp_project_dir):
|
|
@@ -134,9 +134,9 @@ Try to be as helpful as possible.
|
|
|
134
134
|
|
|
135
135
|
# Should predict prompt sprawl
|
|
136
136
|
predictions = result["predictions"]
|
|
137
|
-
assert any(
|
|
138
|
-
|
|
139
|
-
)
|
|
137
|
+
assert any(pred["type"] == "prompt_sprawl" for pred in predictions), (
|
|
138
|
+
"Should predict prompt sprawl with 13+ files"
|
|
139
|
+
)
|
|
140
140
|
|
|
141
141
|
finally:
|
|
142
142
|
# Cleanup
|
|
@@ -245,9 +245,9 @@ class TestAIContextWindowWizard:
|
|
|
245
245
|
result = await wizard.analyze(context)
|
|
246
246
|
|
|
247
247
|
issues = result["issues"]
|
|
248
|
-
assert any(
|
|
249
|
-
|
|
250
|
-
)
|
|
248
|
+
assert any(issue["type"] == "naive_concatenation" for issue in issues), (
|
|
249
|
+
"Should detect naive concatenation pattern"
|
|
250
|
+
)
|
|
251
251
|
|
|
252
252
|
@pytest.mark.asyncio
|
|
253
253
|
async def test_level_4_growth_trajectory_prediction(self, wizard):
|
|
@@ -450,9 +450,9 @@ Run the thing.
|
|
|
450
450
|
result = await wizard.analyze(context)
|
|
451
451
|
|
|
452
452
|
issues = result["issues"]
|
|
453
|
-
assert any(
|
|
454
|
-
|
|
455
|
-
)
|
|
453
|
+
assert any(issue["type"] == "missing_architecture_context" for issue in issues), (
|
|
454
|
+
"Should detect missing architecture section"
|
|
455
|
+
)
|
|
456
456
|
|
|
457
457
|
@pytest.mark.asyncio
|
|
458
458
|
async def test_detects_ambiguous_language(self, wizard, temp_project_dir):
|
|
@@ -480,9 +480,9 @@ Try to handle errors gracefully.
|
|
|
480
480
|
result = await wizard.analyze(context)
|
|
481
481
|
|
|
482
482
|
issues = result["issues"]
|
|
483
|
-
assert any(
|
|
484
|
-
|
|
485
|
-
)
|
|
483
|
+
assert any(issue["type"] == "ambiguous_language" for issue in issues), (
|
|
484
|
+
"Should detect ambiguous phrases"
|
|
485
|
+
)
|
|
486
486
|
|
|
487
487
|
finally:
|
|
488
488
|
if os.path.exists(temp_ambiguous):
|