empathy-framework 3.8.3__tar.gz → 3.9.0__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.8.3 → empathy_framework-3.9.0}/CHANGELOG.md +57 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/PKG-INFO +25 -6
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/README.md +24 -5
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/SECURITY.md +116 -10
- empathy_framework-3.9.0/docs/guides/RELEASE_PREPARATION.md +546 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/PKG-INFO +25 -6
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/SOURCES.txt +34 -22
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/top_level.txt +0 -4
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/pyproject.toml +1 -1
- empathy_framework-3.9.0/src/empathy_os/.empathy/costs.json +60 -0
- empathy_framework-3.9.0/src/empathy_os/.empathy/discovery_stats.json +15 -0
- empathy_framework-3.9.0/src/empathy_os/.empathy/workflow_runs.json +45 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cli.py +372 -13
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cli_unified.py +111 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/config/xml_config.py +45 -3
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/config.py +46 -2
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/control_panel.py +128 -8
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/long_term.py +26 -4
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/short_term.py +110 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/token_estimator.py +25 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/pattern_library.py +81 -8
- empathy_framework-3.9.0/src/empathy_os/patterns/debugging/all_patterns.json +81 -0
- empathy_framework-3.9.0/src/empathy_os/patterns/debugging/workflow_20260107_1770825e.json +77 -0
- empathy_framework-3.9.0/src/empathy_os/patterns/refactoring_memory.json +89 -0
- empathy_framework-3.9.0/src/empathy_os/telemetry/__init__.py +11 -0
- empathy_framework-3.9.0/src/empathy_os/telemetry/cli.py +451 -0
- empathy_framework-3.9.0/src/empathy_os/telemetry/usage_tracker.py +475 -0
- empathy_framework-3.9.0/src/empathy_os/tier_recommender.py +422 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/base.py +220 -23
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/config.py +50 -5
- empathy_framework-3.9.0/src/empathy_os/workflows/tier_tracking.py +408 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_pattern_library.py +3 -2
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/.bandit +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/CODE_OF_CONDUCT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/CONTRIBUTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/LICENSE +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/MANIFEST.in +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/QUICKSTART.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/api_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/cicd_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/code_reviewer_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/code_reviewer_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/database_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/generate_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/localization_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/migration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/observability_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/scaling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/coach_wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/ai-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/config.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/core.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/empathy-os.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/index.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/llm-toolkit.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/multi-agent.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/pattern-library.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/persistence.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/software-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/api-reference/wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/examples/adaptive-learning-system.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/examples/multi-agent-team-coordination.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/examples/sbar-clinical-handoff.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/examples/simple-chatbot.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/examples/webhook-event-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/getting-started/redis-setup.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/PUBLISHING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/WORKFLOW_PATTERNS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/claude-memory-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/crewai-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/foreword.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/healthcare-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/how-to-read-this-book.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/multi-model-workflows.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/pattern-catalog.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/preface.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/signoz-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/software-development-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/trust-circuit-breaker.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/guides/xml-enhanced-prompts.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/docs/index.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy.config.example.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy.config.example.yml +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/dependency_links.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/entry_points.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_framework.egg-info/requires.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/monitoring/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/native.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/crews/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/crews/code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/crews/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/crews/refactoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/crews/security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/decorators.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/factory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/framework.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/memory_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/agent_factory/resilient.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/cli/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/cli/sync_claude.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/code_health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/config/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/config/unified.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/contextual_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/pattern_confidence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/pattern_resolver.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/pattern_summary.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/providers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/routing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/routing/model_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/PHASE2_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/QUICK_REFERENCE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/audit_logger_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/secrets_detector_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/secure_memdocs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/security/secure_memdocs_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/session_status.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/state.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_llm_toolkit/wizards/technology_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/cli/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/cli/inspect.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/plugin.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/ai_context_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/book_chapter_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/code_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/config_loaders.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/fix_applier.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/language_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/debugging/verification.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/multi_model_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/performance/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security/owasp_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security_analysis_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/security_learning_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/tech_debt_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/testing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/testing/test_suggester.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/empathy_software_plugin/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/ai_wizards/tests/test_ai_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/claude_memory/README-SECURITY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/claude_memory/example-with-imports.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/claude_memory/project-CLAUDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/claude_memory/user-CLAUDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/CHANGELOG.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/CONTRIBUTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/MARKETPLACE_READINESS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/PRIVACY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/TODO.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/coach-lsp-server/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/coach-lsp-server/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/coach.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/demo_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/API.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/FAQ.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/INSTALLATION.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/USER_MANUAL.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/docs/WIZARDS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/jetbrains-plugin/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/cache.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/context_collector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/error_handler.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/protocol/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/protocol/messages.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/tests/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/tests/test_e2e.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/lsp/tests/test_server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/setup/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/shared_learning.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/tests/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/tests/test_coach_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/tests/test_new_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/vscode-extension/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/vscode-extension-complete/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/api_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/database_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/design_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/devops_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/localization_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/onboarding_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/retrospective_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/coach/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/debugging_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/domain_wizards/healthcare_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/level_5_transformative/BLOG_POST.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/level_5_transformative/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/level_5_transformative/run_full_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/llm_toolkit_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/multi_llm_usage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/performance_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/quickstart/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/quickstart/minimal_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/quickstart.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/redis_exploration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/security_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/security_integration_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/simple_usage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/smart_team_quickstart.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/software_plugin_complete_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/streamlit_debug_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/test_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/test_short_term_memory_full.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/testing_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/wizard-dashboard/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/wizard-dashboard/SETUP.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/workflows/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/workflows/code_review_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/workflows/doc_gen_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/workflows/multi_model_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/examples/workflows/research_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/requirements.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/setup.cfg +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/adaptive/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/adaptive/task_complexity.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/agent_monitoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/dependency_manager.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/hash_only.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/hybrid.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cache/storage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/config/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/coordination.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/cost_tracker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/dashboard/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/dashboard/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/discovery.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/emergence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/feedback_loops.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/reloader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/watcher.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/hot_reload/websocket.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/leverage_points.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/edges.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/nodes.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/redis_bootstrap.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/security/audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/security/pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/security/secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/storage/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/summary_index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/memory/unified.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/metrics/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/metrics/prompt_metrics.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/empathy_executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/provider_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/tasks.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/telemetry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/models/validation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/monitoring/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/monitoring/alerts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/monitoring/alerts_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/monitoring/multi_backend.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/monitoring/otel_backend.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/optimization/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/optimization/context_optimizer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/persistence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/platform_utils.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/plugins/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/plugins/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/plugins/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/models.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/reports.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/project_index/scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/context.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/parser.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/prompts/templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/redis_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/redis_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/retry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/resilience/timeout.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/routing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/routing/chain_executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/routing/classifier.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/routing/smart_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/routing/wizard_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/scaffolding/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/scaffolding/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/scaffolding/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/scaffolding/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/test_generator/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/test_generator/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/test_generator/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/test_generator/generator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/test_generator/risk_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/trust/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/trust/circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/trust_building.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/validation/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/validation/xml_validator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/wizard_factory_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflow_commands.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/behavior.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/output.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0/src/empathy_os}/workflow_patterns/structural.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/bug_predict.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/code_review_adapters.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/code_review_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/dependency_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/document_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/documentation_orchestrator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/generators.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/prompts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/schema.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/keyboard_shortcuts/workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/manage_documentation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/new_sample_workflow1.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/new_sample_workflow1_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/perf_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/pr_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/progress.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/progress_server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/refactor_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/release_prep.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/research_synthesis.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/secure_release.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/security_adapters.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/step_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test5.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test5_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test_lifecycle.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test_maintenance.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test_maintenance_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/test_maintenance_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/src/empathy_os/workflows/xml_enhanced_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_advanced_debugging.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_agent_factory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_agent_factory_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_agent_factory_resilience.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_agent_orchestration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_ai_collaboration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_audit_logger_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_base_wizard_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_baseline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_book_chapter_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_book_production_agents.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_bug_predict_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_claude_memory_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review_crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review_pipeline_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_code_review_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_config_loaders.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_control_panel.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_control_panel_security.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_coordination.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_core_reliability.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_cost_tracker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_coverage_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_crewai_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_dependency_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_dependency_check_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_discovery.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_document_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_document_gen_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_emergence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_empathy_llm_core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_empathy_llm_security.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_empathy_os.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_empathy_os_cli_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_enhanced_testing.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_executor_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_feedback_loops.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_finding_extraction.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_health_check_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_intelligence_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_leverage_points.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_linter_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_llm_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_llm_toolkit_levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_long_term.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_memory_graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_model_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_model_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_monitoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_multi_model_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_multi_model_wizard_boundary.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_perf_audit_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_performance_profiling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_persistence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_pii_scrubber_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_platform_compat_ci.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_platform_utils.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_plugin_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_plugin_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_pr_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_pr_review_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_production_smoke.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_progress.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_protocol_checker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_protocol_loader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_provider_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_providers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_quality_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_redis_bootstrap.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_redis_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_redis_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_redis_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_redis_memory_errors.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_refactor_golden.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_refactor_plan_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_refactoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_refactoring_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_release_prep.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_reporting.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_reports.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_resilience.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_sbar_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_scanner_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_secure_memdocs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_secure_memdocs_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_secure_release.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_secure_release_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_audit_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_audit_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_learning_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_negative_cases.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_security_scan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_sensor_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_session_status.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_short_term.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_smart_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_software_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_software_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_software_plugin.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_software_plugin_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_state.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_step_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_summary_index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_sync_claude.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_tech_debt_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_telemetry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_test_suggester.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_timeout.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_token_estimator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_trust_building.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_trust_circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_unified_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_validation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_wizard_api.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_wizard_api_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_wizard_outputs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_wizard_site_comprehensive.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_workflow_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_workflow_commands.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_workflow_wizard_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_xml_prompts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/tests/test_xml_spec_generation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/admission_assessment_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/care_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/clinical_assessment.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/discharge_planning.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/discharge_summary_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/dosage_calculation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/incident_report_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/medication_reconciliation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/nursing_assessment.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/patient_education.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/quality_improvement.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/sbar_report.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/sbar_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/shift_handoff_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/soap_note_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/wizards/treatment_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/workflow_scaffolding/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/workflow_scaffolding/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/workflow_scaffolding/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.0}/workflow_scaffolding/generator.py +0 -0
|
@@ -5,6 +5,63 @@ 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
|
+
## [3.9.0] - 2026-01-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **SECURITY.md enhancements**: Comprehensive security documentation
|
|
13
|
+
- Added "Security Hardening (Pattern 6 Implementation)" section with complete Sprint 1-3 audit history
|
|
14
|
+
- Security metrics table showing +1143% test increase (14 → 174 tests)
|
|
15
|
+
- Full Pattern 6 implementation code example for contributors
|
|
16
|
+
- Attack vectors blocked documentation with examples
|
|
17
|
+
- Contributor guidelines for adding new file write operations
|
|
18
|
+
- Updated supported versions to 3.8.x
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **Exception handling improvements** ([src/empathy_os/workflows/base.py](src/empathy_os/workflows/base.py))
|
|
23
|
+
- Fixed 8 blind `except Exception:` handlers with specific exception types
|
|
24
|
+
- Telemetry tracker initialization: Split into OSError/PermissionError and AttributeError/TypeError/ValueError
|
|
25
|
+
- Cache setup: Added ImportError, OSError/PermissionError, and ValueError/TypeError/AttributeError catches
|
|
26
|
+
- Cache lookup: Added KeyError/TypeError/ValueError and OSError/PermissionError catches
|
|
27
|
+
- Cache storage: Added OSError/PermissionError and ValueError/TypeError/KeyError catches
|
|
28
|
+
- LLM call errors: Added specific catches for ValueError/TypeError/KeyError, TimeoutError/RuntimeError/ConnectionError, and OSError/PermissionError
|
|
29
|
+
- Telemetry tracking: Split into AttributeError/TypeError/ValueError and OSError/PermissionError
|
|
30
|
+
- Workflow execution: Added TimeoutError/RuntimeError/ConnectionError and OSError/PermissionError catches
|
|
31
|
+
- Enhanced error logging with specific error messages for better debugging while maintaining graceful degradation
|
|
32
|
+
- All intentional broad catches now include `# INTENTIONAL:` comments explaining design decisions
|
|
33
|
+
|
|
34
|
+
- **Test file fixes**: Corrected incorrect patterns in generated workflow tests
|
|
35
|
+
- [tests/unit/workflows/test_new_sample_workflow1.py](tests/unit/workflows/test_new_sample_workflow1.py): Added ModelTier import, fixed execute() usage
|
|
36
|
+
- [tests/unit/workflows/test_test5.py](tests/unit/workflows/test_test5.py): Added ModelTier import, updated stages and tier_map assertions
|
|
37
|
+
- All 110 workflow tests now passing (100% pass rate)
|
|
38
|
+
|
|
39
|
+
- **Minor code quality**: Fixed unused variable warning in [src/empathy_os/workflows/tier_tracking.py](src/empathy_os/workflows/tier_tracking.py#L356)
|
|
40
|
+
- Changed `total_tokens` to `_total_tokens` to indicate intentionally unused variable
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **README.md updates**: Properly highlighted v3.8.3 as current release
|
|
45
|
+
- Changed header from "v3.8.0" to "v3.8.3 (Current Release)" for clarity
|
|
46
|
+
- Consolidated telemetry feature into v3.8.3 section (was incorrectly labeled as "v3.9.0")
|
|
47
|
+
- Updated badges: 6,038 tests passing (up from 5,941), 68% coverage (up from 64%)
|
|
48
|
+
- Added security badge linking to SECURITY.md
|
|
49
|
+
|
|
50
|
+
- **Project organization**: Cleaned root directory structure
|
|
51
|
+
- Moved scaffolding/, test_generator/, workflow_patterns/, hot_reload/ to src/empathy_os/ subdirectories
|
|
52
|
+
- Moved .vsix files to vscode-extension/dist/
|
|
53
|
+
- Moved RELEASE_PREPARATION.md to docs/guides/
|
|
54
|
+
- Archived 15+ planning documents to .archive/
|
|
55
|
+
- Result: 60% reduction in root directory clutter
|
|
56
|
+
|
|
57
|
+
### Security
|
|
58
|
+
|
|
59
|
+
- **Pattern 6 security hardening** (continued from v3.8.x releases)
|
|
60
|
+
- Cumulative total: 6 files secured, 13 file write operations protected, 174 security tests (100% passing)
|
|
61
|
+
- Sprint 3 focus: Exception handling improvements to prevent error masking
|
|
62
|
+
- Zero blind exception handlers remaining in workflow base
|
|
63
|
+
- All error messages now provide actionable debugging information
|
|
64
|
+
|
|
8
65
|
## [3.8.3] - 2026-01-07
|
|
9
66
|
|
|
10
67
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.9.0
|
|
4
4
|
Summary: AI collaboration framework with intelligent caching (up to 57% cache hit rate), tier routing (34-86% cost savings depending on task complexity), XML-enhanced prompts, persistent memory, CrewAI integration, and multi-agent orchestration. Includes HIPAA-compliant healthcare wizards.
|
|
5
5
|
Author-email: Patrick Roebuck <admin@smartaimemory.com>
|
|
6
6
|
Maintainer-email: Smart-AI-Memory <admin@smartaimemory.com>
|
|
@@ -358,16 +358,17 @@ Dynamic: license-file
|
|
|
358
358
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
359
359
|
|
|
360
360
|
[](https://pypi.org/project/empathy-framework/)
|
|
361
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
362
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
363
363
|
[](LICENSE)
|
|
364
364
|
[](https://www.python.org)
|
|
365
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/SECURITY.md)
|
|
365
366
|
|
|
366
367
|
```bash
|
|
367
368
|
pip install empathy-framework[developer] # Lightweight for individual developers
|
|
368
369
|
```
|
|
369
370
|
|
|
370
|
-
## What's New in v3.8.
|
|
371
|
+
## What's New in v3.8.3 (Current Release)
|
|
371
372
|
|
|
372
373
|
### 🎯 **Transparent Cost Claims: Honest Role-Based Savings (34-86%)**
|
|
373
374
|
|
|
@@ -390,6 +391,26 @@ cache = create_cache(cache_type="hybrid", similarity_threshold=0.95)
|
|
|
390
391
|
|
|
391
392
|
See [caching docs](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/docs/caching/) for benchmarks and configuration.
|
|
392
393
|
|
|
394
|
+
### 📊 **Local Usage Telemetry: Track Your Real Savings**
|
|
395
|
+
|
|
396
|
+
Track your actual cost savings vs baseline without sending data to external servers.
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
# View recent usage
|
|
400
|
+
empathy telemetry show
|
|
401
|
+
|
|
402
|
+
# Calculate your savings vs all-PREMIUM baseline
|
|
403
|
+
empathy telemetry savings --days 30
|
|
404
|
+
|
|
405
|
+
# Compare time periods
|
|
406
|
+
empathy telemetry compare --period1 7 --period2 30
|
|
407
|
+
|
|
408
|
+
# Export for analysis
|
|
409
|
+
empathy telemetry export --format csv --output usage.csv
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Privacy**: All data stored locally in `~/.empathy/telemetry/`. No data sent to external servers.
|
|
413
|
+
|
|
393
414
|
---
|
|
394
415
|
|
|
395
416
|
### Previous Release: v3.7.0
|
|
@@ -621,8 +642,6 @@ print(result.prevention_steps) # How to prevent it
|
|
|
621
642
|
|
|
622
643
|
### 4. Track Your Savings
|
|
623
644
|
|
|
624
|
-
**New in v3.9.0:** Local usage telemetry tracks your actual cost savings vs baseline.
|
|
625
|
-
|
|
626
645
|
```bash
|
|
627
646
|
# View recent usage
|
|
628
647
|
empathy telemetry show
|
|
@@ -3,16 +3,17 @@
|
|
|
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
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
[](https://www.python.org)
|
|
10
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/SECURITY.md)
|
|
10
11
|
|
|
11
12
|
```bash
|
|
12
13
|
pip install empathy-framework[developer] # Lightweight for individual developers
|
|
13
14
|
```
|
|
14
15
|
|
|
15
|
-
## What's New in v3.8.
|
|
16
|
+
## What's New in v3.8.3 (Current Release)
|
|
16
17
|
|
|
17
18
|
### 🎯 **Transparent Cost Claims: Honest Role-Based Savings (34-86%)**
|
|
18
19
|
|
|
@@ -35,6 +36,26 @@ cache = create_cache(cache_type="hybrid", similarity_threshold=0.95)
|
|
|
35
36
|
|
|
36
37
|
See [caching docs](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/docs/caching/) for benchmarks and configuration.
|
|
37
38
|
|
|
39
|
+
### 📊 **Local Usage Telemetry: Track Your Real Savings**
|
|
40
|
+
|
|
41
|
+
Track your actual cost savings vs baseline without sending data to external servers.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# View recent usage
|
|
45
|
+
empathy telemetry show
|
|
46
|
+
|
|
47
|
+
# Calculate your savings vs all-PREMIUM baseline
|
|
48
|
+
empathy telemetry savings --days 30
|
|
49
|
+
|
|
50
|
+
# Compare time periods
|
|
51
|
+
empathy telemetry compare --period1 7 --period2 30
|
|
52
|
+
|
|
53
|
+
# Export for analysis
|
|
54
|
+
empathy telemetry export --format csv --output usage.csv
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Privacy**: All data stored locally in `~/.empathy/telemetry/`. No data sent to external servers.
|
|
58
|
+
|
|
38
59
|
---
|
|
39
60
|
|
|
40
61
|
### Previous Release: v3.7.0
|
|
@@ -266,8 +287,6 @@ print(result.prevention_steps) # How to prevent it
|
|
|
266
287
|
|
|
267
288
|
### 4. Track Your Savings
|
|
268
289
|
|
|
269
|
-
**New in v3.9.0:** Local usage telemetry tracks your actual cost savings vs baseline.
|
|
270
|
-
|
|
271
290
|
```bash
|
|
272
291
|
# View recent usage
|
|
273
292
|
empathy telemetry show
|
|
@@ -6,9 +6,9 @@ We release patches for security vulnerabilities in the following versions:
|
|
|
6
6
|
|
|
7
7
|
| Version | Supported |
|
|
8
8
|
| ------- | ------------------ |
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
| <
|
|
9
|
+
| 3.8.x | :white_check_mark: |
|
|
10
|
+
| 3.7.x | :x: |
|
|
11
|
+
| < 3.7 | :x: |
|
|
12
12
|
|
|
13
13
|
## Reporting a Vulnerability
|
|
14
14
|
|
|
@@ -90,13 +90,15 @@ Please include the following information in your report:
|
|
|
90
90
|
|
|
91
91
|
The Empathy Framework includes several security features:
|
|
92
92
|
|
|
93
|
-
1. **
|
|
94
|
-
2. **
|
|
95
|
-
3. **
|
|
96
|
-
4. **
|
|
97
|
-
5. **
|
|
98
|
-
6. **
|
|
99
|
-
7. **
|
|
93
|
+
1. **Path Traversal Protection (Pattern 6)**: All file write operations validated to prevent path traversal attacks (CWE-22)
|
|
94
|
+
2. **Input Sanitization**: All code inputs are sanitized before analysis
|
|
95
|
+
3. **Sandboxed Execution**: No arbitrary code execution in wizards
|
|
96
|
+
4. **API Key Protection**: Environment variable-based configuration
|
|
97
|
+
5. **Audit Trail**: Optional logging of all wizard invocations
|
|
98
|
+
6. **Rate Limiting**: Built-in protection against service abuse
|
|
99
|
+
7. **Command Injection Prevention**: All file paths and user inputs are validated before subprocess execution
|
|
100
|
+
8. **Secrets Detection**: Pre-commit hooks using detect-secrets to prevent accidental credential exposure
|
|
101
|
+
9. **Exception Hardening**: Specific exception handling prevents error masking while maintaining graceful degradation
|
|
100
102
|
|
|
101
103
|
### Pre-commit Security Hooks
|
|
102
104
|
|
|
@@ -133,6 +135,110 @@ All test files use obviously fake credentials:
|
|
|
133
135
|
- Use placeholder patterns like `abc123xyz789...`
|
|
134
136
|
- AWS example keys: `AKIAIOSFODNN7EXAMPLE`
|
|
135
137
|
|
|
138
|
+
## Security Hardening (Pattern 6 Implementation)
|
|
139
|
+
|
|
140
|
+
### Overview
|
|
141
|
+
|
|
142
|
+
In January 2026, we conducted a comprehensive security audit and applied Pattern 6 (File Path Validation) across all configuration and file write operations. This eliminated path traversal vulnerabilities (CWE-22) and arbitrary file write risks.
|
|
143
|
+
|
|
144
|
+
### Files Secured
|
|
145
|
+
|
|
146
|
+
**Sprint 1 (2026-01-06):**
|
|
147
|
+
|
|
148
|
+
- [telemetry/cli.py](src/empathy_os/telemetry/cli.py) - Export operations (CSV, JSON)
|
|
149
|
+
- [cli.py](src/empathy_os/cli.py) - Pattern and report exports
|
|
150
|
+
- [memory/control_panel.py](src/empathy_os/memory/control_panel.py) - Memory management operations
|
|
151
|
+
|
|
152
|
+
**Sprint 2 (2026-01-07):**
|
|
153
|
+
|
|
154
|
+
- [config.py](src/empathy_os/config.py) - Configuration exports (YAML, JSON)
|
|
155
|
+
- [workflows/config.py](src/empathy_os/workflows/config.py) - Workflow configuration saves
|
|
156
|
+
- [config/xml_config.py](src/empathy_os/config/xml_config.py) - XML configuration writes
|
|
157
|
+
|
|
158
|
+
**Sprint 3 (2026-01-07):**
|
|
159
|
+
|
|
160
|
+
- [workflows/base.py](src/empathy_os/workflows/base.py) - Exception handling improvements
|
|
161
|
+
- Fixed 8 blind exception handlers with specific exception types
|
|
162
|
+
- Enhanced error logging for debugging while maintaining graceful degradation
|
|
163
|
+
|
|
164
|
+
### Attack Vectors Blocked
|
|
165
|
+
|
|
166
|
+
✅ **Path Traversal**: `../../../etc/passwd` → `ValueError: Cannot write to system directory`
|
|
167
|
+
✅ **Null Byte Injection**: `config\x00.json` → `ValueError: path contains null bytes`
|
|
168
|
+
✅ **System Directory Writes**: `/etc`, `/sys`, `/proc`, `/dev` → All blocked
|
|
169
|
+
✅ **Absolute Path Attacks**: Any absolute path to sensitive locations → Validated and blocked
|
|
170
|
+
|
|
171
|
+
### Test Coverage
|
|
172
|
+
|
|
173
|
+
- **39 security tests** across all protected modules (100% passing)
|
|
174
|
+
- Tests cover: path traversal, null bytes, system directories, valid paths
|
|
175
|
+
- Cross-module consistency tests ensure no regressions
|
|
176
|
+
|
|
177
|
+
### Security Metrics
|
|
178
|
+
|
|
179
|
+
| Metric | Before Sprint 2 | After Sprint 3 | Improvement |
|
|
180
|
+
| ------------------------ | --------------- | -------------- | ----------- |
|
|
181
|
+
| **Files Secured** | 3 | 6 | +100% |
|
|
182
|
+
| **Write Ops Protected** | 6 | 13 | +117% |
|
|
183
|
+
| **Security Tests** | 14 | 174 | +1143% |
|
|
184
|
+
| **Blind Exceptions** | 8 | 0 | -100% |
|
|
185
|
+
|
|
186
|
+
### Implementation Pattern
|
|
187
|
+
|
|
188
|
+
All protected modules use the same validation function:
|
|
189
|
+
|
|
190
|
+
```python
|
|
191
|
+
def _validate_file_path(path: str, allowed_dir: str | None = None) -> Path:
|
|
192
|
+
"""Validate file path to prevent path traversal and arbitrary writes.
|
|
193
|
+
|
|
194
|
+
Args:
|
|
195
|
+
path: User-controlled file path to validate
|
|
196
|
+
allowed_dir: Optional directory restriction
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
Validated Path object
|
|
200
|
+
|
|
201
|
+
Raises:
|
|
202
|
+
ValueError: If path is invalid, contains null bytes, or targets system directories
|
|
203
|
+
"""
|
|
204
|
+
if not path or not isinstance(path, str):
|
|
205
|
+
raise ValueError("path must be a non-empty string")
|
|
206
|
+
|
|
207
|
+
if "\x00" in path:
|
|
208
|
+
raise ValueError("path contains null bytes")
|
|
209
|
+
|
|
210
|
+
try:
|
|
211
|
+
resolved = Path(path).resolve()
|
|
212
|
+
except (OSError, RuntimeError) as e:
|
|
213
|
+
raise ValueError(f"Invalid path: {e}")
|
|
214
|
+
|
|
215
|
+
# Block writes to system directories
|
|
216
|
+
dangerous_paths = ["/etc", "/sys", "/proc", "/dev"]
|
|
217
|
+
for dangerous in dangerous_paths:
|
|
218
|
+
if str(resolved).startswith(dangerous):
|
|
219
|
+
raise ValueError(f"Cannot write to system directory: {dangerous}")
|
|
220
|
+
|
|
221
|
+
# Optional directory restriction
|
|
222
|
+
if allowed_dir:
|
|
223
|
+
try:
|
|
224
|
+
allowed = Path(allowed_dir).resolve()
|
|
225
|
+
resolved.relative_to(allowed)
|
|
226
|
+
except ValueError:
|
|
227
|
+
raise ValueError(f"path must be within {allowed_dir}")
|
|
228
|
+
|
|
229
|
+
return resolved
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### For Contributors
|
|
233
|
+
|
|
234
|
+
When adding new file write operations:
|
|
235
|
+
|
|
236
|
+
1. **Always use `_validate_file_path()`** before writing files
|
|
237
|
+
2. **Never trust user-controlled paths** - validate first
|
|
238
|
+
3. **Add security tests** for your file operations
|
|
239
|
+
4. **Test attack scenarios**: path traversal, null bytes, system dirs
|
|
240
|
+
5. See [test_config_path_security.py](tests/unit/test_config_path_security.py) for examples
|
|
241
|
+
|
|
136
242
|
## Known Security Considerations
|
|
137
243
|
|
|
138
244
|
### AI Model Risks
|