empathy-framework 3.8.3__tar.gz → 3.9.1__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.1}/CHANGELOG.md +66 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/PKG-INFO +67 -7
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/README.md +66 -6
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/SECURITY.md +116 -10
- empathy_framework-3.9.1/docs/guides/RELEASE_PREPARATION.md +546 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/index.md +20 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/PKG-INFO +67 -7
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/SOURCES.txt +34 -22
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/top_level.txt +0 -4
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/pyproject.toml +1 -1
- empathy_framework-3.9.1/src/empathy_os/.empathy/costs.json +60 -0
- empathy_framework-3.9.1/src/empathy_os/.empathy/discovery_stats.json +15 -0
- empathy_framework-3.9.1/src/empathy_os/.empathy/workflow_runs.json +45 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cli.py +372 -13
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cli_unified.py +111 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/config/xml_config.py +45 -3
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/config.py +46 -2
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/control_panel.py +128 -8
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/long_term.py +26 -4
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/short_term.py +110 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/token_estimator.py +25 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/pattern_library.py +81 -8
- empathy_framework-3.9.1/src/empathy_os/patterns/debugging/all_patterns.json +81 -0
- empathy_framework-3.9.1/src/empathy_os/patterns/debugging/workflow_20260107_1770825e.json +77 -0
- empathy_framework-3.9.1/src/empathy_os/patterns/refactoring_memory.json +89 -0
- empathy_framework-3.9.1/src/empathy_os/telemetry/__init__.py +11 -0
- empathy_framework-3.9.1/src/empathy_os/telemetry/cli.py +451 -0
- empathy_framework-3.9.1/src/empathy_os/telemetry/usage_tracker.py +475 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/test_generator/generator.py +1 -0
- empathy_framework-3.9.1/src/empathy_os/tier_recommender.py +422 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/base.py +223 -23
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/config.py +50 -5
- empathy_framework-3.9.1/src/empathy_os/workflows/tier_tracking.py +408 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_pattern_library.py +3 -2
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/.bandit +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/CODE_OF_CONDUCT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/CONTRIBUTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/LICENSE +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/MANIFEST.in +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/QUICKSTART.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/api_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/cicd_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/code_reviewer_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/code_reviewer_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/database_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/generate_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/localization_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/migration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/observability_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/scaling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/coach_wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/ai-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/config.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/core.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/empathy-os.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/index.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/llm-toolkit.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/multi-agent.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/pattern-library.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/persistence.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/software-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/api-reference/wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/examples/adaptive-learning-system.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/examples/multi-agent-team-coordination.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/examples/sbar-clinical-handoff.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/examples/simple-chatbot.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/examples/webhook-event-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/getting-started/redis-setup.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/PUBLISHING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/WORKFLOW_PATTERNS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/claude-memory-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/crewai-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/foreword.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/healthcare-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/how-to-read-this-book.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/multi-model-workflows.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/pattern-catalog.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/preface.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/signoz-integration.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/software-development-wizards.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/trust-circuit-breaker.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/docs/guides/xml-enhanced-prompts.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy.config.example.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy.config.example.yml +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/dependency_links.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/entry_points.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_framework.egg-info/requires.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/monitoring/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/native.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/crews/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/crews/code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/crews/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/crews/refactoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/crews/security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/decorators.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/factory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/framework.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/memory_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/agent_factory/resilient.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/cli/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/cli/sync_claude.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/code_health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/config/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/config/unified.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/contextual_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/pattern_confidence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/pattern_resolver.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/pattern_summary.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/providers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/routing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/routing/model_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/PHASE2_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/QUICK_REFERENCE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/audit_logger_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/secrets_detector_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/secure_memdocs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/security/secure_memdocs_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/session_status.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/state.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_llm_toolkit/wizards/technology_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/cli/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/cli/inspect.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/plugin.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/ai_context_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/book_chapter_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/code_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/config_loaders.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/fix_applier.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/language_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/debugging/verification.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/multi_model_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/performance/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security/owasp_patterns.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security_analysis_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/security_learning_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/tech_debt_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/testing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/testing/test_suggester.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/empathy_software_plugin/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/ai_wizards/tests/test_ai_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/claude_memory/README-SECURITY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/claude_memory/example-with-imports.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/claude_memory/project-CLAUDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/claude_memory/user-CLAUDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/CHANGELOG.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/CONTRIBUTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/MARKETPLACE_READINESS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/PRIVACY.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/TODO.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/coach-lsp-server/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/coach-lsp-server/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/coach.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/demo_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/API.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/FAQ.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/INSTALLATION.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/USER_MANUAL.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/docs/WIZARDS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/jetbrains-plugin/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/cache.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/context_collector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/error_handler.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/protocol/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/protocol/messages.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/tests/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/tests/test_e2e.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/lsp/tests/test_server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/setup/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/shared_learning.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/tests/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/tests/test_coach_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/tests/test_new_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/vscode-extension/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/vscode-extension-complete/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/api_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/database_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/design_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/devops_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/localization_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/onboarding_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/performance_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/retrospective_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/security_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/coach/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/debugging_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/domain_wizards/healthcare_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/level_5_transformative/BLOG_POST.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/level_5_transformative/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/level_5_transformative/run_full_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/llm_toolkit_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/multi_llm_usage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/performance_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/quickstart/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/quickstart/minimal_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/quickstart.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/redis_exploration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/security_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/security_integration_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/simple_usage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/smart_team_quickstart.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/software_plugin_complete_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/streamlit_debug_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/test_debugging_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/test_short_term_memory_full.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/testing_demo.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/wizard-dashboard/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/wizard-dashboard/SETUP.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/workflows/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/workflows/code_review_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/workflows/doc_gen_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/workflows/multi_model_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/examples/workflows/research_example.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/requirements.txt +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/setup.cfg +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/adaptive/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/adaptive/task_complexity.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/agent_monitoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/dependency_manager.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/hash_only.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/hybrid.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cache/storage.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/config/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/coordination.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/cost_tracker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/dashboard/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/dashboard/server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/discovery.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/emergence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/feedback_loops.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/reloader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/watcher.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/hot_reload/websocket.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/leverage_points.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/edges.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/nodes.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/redis_bootstrap.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/security/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/security/audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/security/pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/security/secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/storage/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/summary_index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/memory/unified.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/metrics/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/metrics/prompt_metrics.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/empathy_executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/provider_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/tasks.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/telemetry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/models/validation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/monitoring/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/monitoring/alerts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/monitoring/alerts_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/monitoring/multi_backend.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/monitoring/otel_backend.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/optimization/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/optimization/context_optimizer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/persistence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/platform_utils.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/plugins/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/plugins/base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/plugins/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/models.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/reports.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/project_index/scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/context.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/parser.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/prompts/templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/redis_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/redis_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/retry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/resilience/timeout.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/routing/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/routing/chain_executor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/routing/classifier.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/routing/smart_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/routing/wizard_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/scaffolding/README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/scaffolding/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/scaffolding/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/scaffolding/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/test_generator/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/test_generator/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/test_generator/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/test_generator/risk_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/trust/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/trust/circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/trust_building.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/validation/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/validation/xml_validator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/wizard_factory_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflow_commands.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/behavior.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/output.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1/src/empathy_os}/workflow_patterns/structural.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/bug_predict.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/code_review_adapters.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/code_review_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/dependency_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/document_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/documentation_orchestrator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/generators.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/prompts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/schema.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/keyboard_shortcuts/workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/manage_documentation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/new_sample_workflow1.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/new_sample_workflow1_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/perf_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/pr_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/progress.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/progress_server.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/refactor_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/release_prep.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/research_synthesis.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/secure_release.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/security_adapters.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/step_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test5.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test5_README.md +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test_lifecycle.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test_maintenance.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test_maintenance_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/test_maintenance_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/src/empathy_os/workflows/xml_enhanced_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_advanced_debugging.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_agent_factory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_agent_factory_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_agent_factory_resilience.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_agent_orchestration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_ai_collaboration_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_audit_logger.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_audit_logger_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_base_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_base_wizard_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_baseline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_book_chapter_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_book_production_agents.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_bug_predict_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_claude_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_claude_memory_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_health.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review_crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review_pipeline.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review_pipeline_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_code_review_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_config_loaders.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_control_panel.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_control_panel_security.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_coordination.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_core_reliability.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_cost_tracker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_coverage_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_crewai_adapter.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_dependency_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_dependency_check_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_discovery.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_document_gen.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_document_gen_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_emergence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_empathy_llm_core.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_empathy_llm_security.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_empathy_os.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_empathy_os_cli_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_enhanced_testing.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_executor_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_fallback.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_feedback_loops.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_finding_extraction.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_health_check.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_health_check_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_intelligence_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_leverage_points.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_linter_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_llm_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_llm_toolkit_levels.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_logging_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_long_term.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_memory_graph.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_model_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_model_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_monitoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_multi_model_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_multi_model_wizard_boundary.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_perf_audit_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_performance_profiling_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_persistence.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_pii_scrubber.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_pii_scrubber_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_platform_compat_ci.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_platform_utils.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_plugin_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_plugin_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_pr_review.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_pr_review_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_production_smoke.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_progress.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_protocol_checker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_protocol_loader.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_provider_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_providers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_quality_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_redis_bootstrap.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_redis_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_redis_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_redis_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_redis_memory_errors.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_refactor_golden.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_refactor_plan_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_refactoring.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_refactoring_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_registry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_release_prep.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_reporting.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_reports.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_resilience.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_sbar_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_scanner.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_scanner_exceptions.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_secrets_detector.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_secure_memdocs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_secure_memdocs_extended.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_secure_release.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_secure_release_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_audit.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_audit_crew.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_audit_workflow.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_crew_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_learning_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_negative_cases.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_security_scan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_sensor_parsers.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_session_status.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_short_term.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_smart_router.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_software_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_software_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_software_plugin.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_software_plugin_cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_state.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_step_config.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_summary_index.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_sync_claude.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_tech_debt_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_telemetry.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_templates.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_test_suggester.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_timeout.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_token_estimator.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_trajectory_analyzer.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_trust_building.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_trust_circuit_breaker.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_unified_memory.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_validation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_wizard_api.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_wizard_api_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_wizard_outputs.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_wizard_site_comprehensive.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_workflow_base.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_workflow_commands.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_workflow_wizard_integration.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_xml_prompts.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/tests/test_xml_spec_generation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/admission_assessment_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/care_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/clinical_assessment.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/discharge_planning.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/discharge_summary_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/dosage_calculation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/incident_report_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/medication_reconciliation.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/nursing_assessment.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/patient_education.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/quality_improvement.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/sbar_report.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/sbar_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/shift_handoff_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/soap_note_wizard.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/wizards/treatment_plan.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/workflow_scaffolding/__init__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/workflow_scaffolding/__main__.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/workflow_scaffolding/cli.py +0 -0
- {empathy_framework-3.8.3 → empathy_framework-3.9.1}/workflow_scaffolding/generator.py +0 -0
|
@@ -5,6 +5,72 @@ 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.1] - 2026-01-07
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **README.md**: Corrected PyPI package description to highlight v3.9.0 security features
|
|
13
|
+
- Was showing "What's New in v3.8.3 (Current Release)" on PyPI
|
|
14
|
+
- Now correctly shows v3.9.0 security hardening as current release
|
|
15
|
+
- Highlights Pattern 6 implementation (6 modules, 174 tests, +1143% increase)
|
|
16
|
+
|
|
17
|
+
## [3.9.0] - 2026-01-07
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **SECURITY.md enhancements**: Comprehensive security documentation
|
|
22
|
+
- Added "Security Hardening (Pattern 6 Implementation)" section with complete Sprint 1-3 audit history
|
|
23
|
+
- Security metrics table showing +1143% test increase (14 → 174 tests)
|
|
24
|
+
- Full Pattern 6 implementation code example for contributors
|
|
25
|
+
- Attack vectors blocked documentation with examples
|
|
26
|
+
- Contributor guidelines for adding new file write operations
|
|
27
|
+
- Updated supported versions to 3.8.x
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
- **Exception handling improvements** ([src/empathy_os/workflows/base.py](src/empathy_os/workflows/base.py))
|
|
32
|
+
- Fixed 8 blind `except Exception:` handlers with specific exception types
|
|
33
|
+
- Telemetry tracker initialization: Split into OSError/PermissionError and AttributeError/TypeError/ValueError
|
|
34
|
+
- Cache setup: Added ImportError, OSError/PermissionError, and ValueError/TypeError/AttributeError catches
|
|
35
|
+
- Cache lookup: Added KeyError/TypeError/ValueError and OSError/PermissionError catches
|
|
36
|
+
- Cache storage: Added OSError/PermissionError and ValueError/TypeError/KeyError catches
|
|
37
|
+
- LLM call errors: Added specific catches for ValueError/TypeError/KeyError, TimeoutError/RuntimeError/ConnectionError, and OSError/PermissionError
|
|
38
|
+
- Telemetry tracking: Split into AttributeError/TypeError/ValueError and OSError/PermissionError
|
|
39
|
+
- Workflow execution: Added TimeoutError/RuntimeError/ConnectionError and OSError/PermissionError catches
|
|
40
|
+
- Enhanced error logging with specific error messages for better debugging while maintaining graceful degradation
|
|
41
|
+
- All intentional broad catches now include `# INTENTIONAL:` comments explaining design decisions
|
|
42
|
+
|
|
43
|
+
- **Test file fixes**: Corrected incorrect patterns in generated workflow tests
|
|
44
|
+
- [tests/unit/workflows/test_new_sample_workflow1.py](tests/unit/workflows/test_new_sample_workflow1.py): Added ModelTier import, fixed execute() usage
|
|
45
|
+
- [tests/unit/workflows/test_test5.py](tests/unit/workflows/test_test5.py): Added ModelTier import, updated stages and tier_map assertions
|
|
46
|
+
- All 110 workflow tests now passing (100% pass rate)
|
|
47
|
+
|
|
48
|
+
- **Minor code quality**: Fixed unused variable warning in [src/empathy_os/workflows/tier_tracking.py](src/empathy_os/workflows/tier_tracking.py#L356)
|
|
49
|
+
- Changed `total_tokens` to `_total_tokens` to indicate intentionally unused variable
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- **README.md updates**: Properly highlighted v3.8.3 as current release
|
|
54
|
+
- Changed header from "v3.8.0" to "v3.8.3 (Current Release)" for clarity
|
|
55
|
+
- Consolidated telemetry feature into v3.8.3 section (was incorrectly labeled as "v3.9.0")
|
|
56
|
+
- Updated badges: 6,038 tests passing (up from 5,941), 68% coverage (up from 64%)
|
|
57
|
+
- Added security badge linking to SECURITY.md
|
|
58
|
+
|
|
59
|
+
- **Project organization**: Cleaned root directory structure
|
|
60
|
+
- Moved scaffolding/, test_generator/, workflow_patterns/, hot_reload/ to src/empathy_os/ subdirectories
|
|
61
|
+
- Moved .vsix files to vscode-extension/dist/
|
|
62
|
+
- Moved RELEASE_PREPARATION.md to docs/guides/
|
|
63
|
+
- Archived 15+ planning documents to .archive/
|
|
64
|
+
- Result: 60% reduction in root directory clutter
|
|
65
|
+
|
|
66
|
+
### Security
|
|
67
|
+
|
|
68
|
+
- **Pattern 6 security hardening** (continued from v3.8.x releases)
|
|
69
|
+
- Cumulative total: 6 files secured, 13 file write operations protected, 174 security tests (100% passing)
|
|
70
|
+
- Sprint 3 focus: Exception handling improvements to prevent error masking
|
|
71
|
+
- Zero blind exception handlers remaining in workflow base
|
|
72
|
+
- All error messages now provide actionable debugging information
|
|
73
|
+
|
|
8
74
|
## [3.8.3] - 2026-01-07
|
|
9
75
|
|
|
10
76
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.9.1
|
|
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,58 @@ 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.
|
|
371
|
+
## What's New in v3.9.0 (Current Release)
|
|
372
|
+
|
|
373
|
+
### 🔒 **Security Hardening: 174 Security Tests (Up from 14)**
|
|
374
|
+
|
|
375
|
+
**Production-ready security with comprehensive file path validation across the entire framework.**
|
|
376
|
+
|
|
377
|
+
- ✅ **6 modules secured** with Pattern 6 (File Path Validation)
|
|
378
|
+
- ✅ **13 file write operations** validated to prevent path traversal (CWE-22)
|
|
379
|
+
- ✅ **174 security tests** (100% passing) - up from 14 tests (+1143% increase)
|
|
380
|
+
- ✅ **Zero blind exception handlers** - all errors now properly typed and logged
|
|
381
|
+
|
|
382
|
+
```python
|
|
383
|
+
# All file writes now validated for security
|
|
384
|
+
from empathy_os.config import EmpathyConfig
|
|
385
|
+
|
|
386
|
+
config = EmpathyConfig(user_id="alice")
|
|
387
|
+
config.to_yaml("/etc/passwd") # ❌ ValueError: Cannot write to system directory
|
|
388
|
+
config.to_yaml("./empathy.yml") # ✅ Safe write
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**Attack vectors blocked:**
|
|
392
|
+
|
|
393
|
+
- Path traversal: `../../../etc/passwd` → `ValueError`
|
|
394
|
+
- Null byte injection: `config\x00.json` → `ValueError`
|
|
395
|
+
- System directory writes: `/etc`, `/sys`, `/proc`, `/dev` → All blocked
|
|
396
|
+
|
|
397
|
+
See [SECURITY.md](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/SECURITY.md) for complete security documentation.
|
|
398
|
+
|
|
399
|
+
### 🛡️ **Exception Handling Improvements**
|
|
400
|
+
|
|
401
|
+
**Better error messages with graceful degradation.**
|
|
402
|
+
|
|
403
|
+
- Fixed 8 blind `except Exception:` handlers in workflow base
|
|
404
|
+
- Specific exception types for better debugging
|
|
405
|
+
- Enhanced error logging while maintaining graceful degradation
|
|
406
|
+
- All intentional broad catches documented with design rationale
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
### Previous Releases
|
|
411
|
+
|
|
412
|
+
#### v3.8.3
|
|
371
413
|
|
|
372
414
|
### 🎯 **Transparent Cost Claims: Honest Role-Based Savings (34-86%)**
|
|
373
415
|
|
|
@@ -390,9 +432,29 @@ cache = create_cache(cache_type="hybrid", similarity_threshold=0.95)
|
|
|
390
432
|
|
|
391
433
|
See [caching docs](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/docs/caching/) for benchmarks and configuration.
|
|
392
434
|
|
|
435
|
+
### 📊 **Local Usage Telemetry: Track Your Real Savings**
|
|
436
|
+
|
|
437
|
+
Track your actual cost savings vs baseline without sending data to external servers.
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
# View recent usage
|
|
441
|
+
empathy telemetry show
|
|
442
|
+
|
|
443
|
+
# Calculate your savings vs all-PREMIUM baseline
|
|
444
|
+
empathy telemetry savings --days 30
|
|
445
|
+
|
|
446
|
+
# Compare time periods
|
|
447
|
+
empathy telemetry compare --period1 7 --period2 30
|
|
448
|
+
|
|
449
|
+
# Export for analysis
|
|
450
|
+
empathy telemetry export --format csv --output usage.csv
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
**Privacy**: All data stored locally in `~/.empathy/telemetry/`. No data sent to external servers.
|
|
454
|
+
|
|
393
455
|
---
|
|
394
456
|
|
|
395
|
-
|
|
457
|
+
#### v3.7.0
|
|
396
458
|
|
|
397
459
|
#### 🚀 **XML-Enhanced Prompting: 15-35% Token Reduction + Graceful Validation**
|
|
398
460
|
|
|
@@ -621,8 +683,6 @@ print(result.prevention_steps) # How to prevent it
|
|
|
621
683
|
|
|
622
684
|
### 4. Track Your Savings
|
|
623
685
|
|
|
624
|
-
**New in v3.9.0:** Local usage telemetry tracks your actual cost savings vs baseline.
|
|
625
|
-
|
|
626
686
|
```bash
|
|
627
687
|
# View recent usage
|
|
628
688
|
empathy telemetry show
|
|
@@ -3,16 +3,58 @@
|
|
|
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.
|
|
16
|
+
## What's New in v3.9.0 (Current Release)
|
|
17
|
+
|
|
18
|
+
### 🔒 **Security Hardening: 174 Security Tests (Up from 14)**
|
|
19
|
+
|
|
20
|
+
**Production-ready security with comprehensive file path validation across the entire framework.**
|
|
21
|
+
|
|
22
|
+
- ✅ **6 modules secured** with Pattern 6 (File Path Validation)
|
|
23
|
+
- ✅ **13 file write operations** validated to prevent path traversal (CWE-22)
|
|
24
|
+
- ✅ **174 security tests** (100% passing) - up from 14 tests (+1143% increase)
|
|
25
|
+
- ✅ **Zero blind exception handlers** - all errors now properly typed and logged
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
# All file writes now validated for security
|
|
29
|
+
from empathy_os.config import EmpathyConfig
|
|
30
|
+
|
|
31
|
+
config = EmpathyConfig(user_id="alice")
|
|
32
|
+
config.to_yaml("/etc/passwd") # ❌ ValueError: Cannot write to system directory
|
|
33
|
+
config.to_yaml("./empathy.yml") # ✅ Safe write
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Attack vectors blocked:**
|
|
37
|
+
|
|
38
|
+
- Path traversal: `../../../etc/passwd` → `ValueError`
|
|
39
|
+
- Null byte injection: `config\x00.json` → `ValueError`
|
|
40
|
+
- System directory writes: `/etc`, `/sys`, `/proc`, `/dev` → All blocked
|
|
41
|
+
|
|
42
|
+
See [SECURITY.md](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/SECURITY.md) for complete security documentation.
|
|
43
|
+
|
|
44
|
+
### 🛡️ **Exception Handling Improvements**
|
|
45
|
+
|
|
46
|
+
**Better error messages with graceful degradation.**
|
|
47
|
+
|
|
48
|
+
- Fixed 8 blind `except Exception:` handlers in workflow base
|
|
49
|
+
- Specific exception types for better debugging
|
|
50
|
+
- Enhanced error logging while maintaining graceful degradation
|
|
51
|
+
- All intentional broad catches documented with design rationale
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Previous Releases
|
|
56
|
+
|
|
57
|
+
#### v3.8.3
|
|
16
58
|
|
|
17
59
|
### 🎯 **Transparent Cost Claims: Honest Role-Based Savings (34-86%)**
|
|
18
60
|
|
|
@@ -35,9 +77,29 @@ cache = create_cache(cache_type="hybrid", similarity_threshold=0.95)
|
|
|
35
77
|
|
|
36
78
|
See [caching docs](https://github.com/Smart-AI-Memory/empathy-framework/blob/main/docs/caching/) for benchmarks and configuration.
|
|
37
79
|
|
|
80
|
+
### 📊 **Local Usage Telemetry: Track Your Real Savings**
|
|
81
|
+
|
|
82
|
+
Track your actual cost savings vs baseline without sending data to external servers.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# View recent usage
|
|
86
|
+
empathy telemetry show
|
|
87
|
+
|
|
88
|
+
# Calculate your savings vs all-PREMIUM baseline
|
|
89
|
+
empathy telemetry savings --days 30
|
|
90
|
+
|
|
91
|
+
# Compare time periods
|
|
92
|
+
empathy telemetry compare --period1 7 --period2 30
|
|
93
|
+
|
|
94
|
+
# Export for analysis
|
|
95
|
+
empathy telemetry export --format csv --output usage.csv
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Privacy**: All data stored locally in `~/.empathy/telemetry/`. No data sent to external servers.
|
|
99
|
+
|
|
38
100
|
---
|
|
39
101
|
|
|
40
|
-
|
|
102
|
+
#### v3.7.0
|
|
41
103
|
|
|
42
104
|
#### 🚀 **XML-Enhanced Prompting: 15-35% Token Reduction + Graceful Validation**
|
|
43
105
|
|
|
@@ -266,8 +328,6 @@ print(result.prevention_steps) # How to prevent it
|
|
|
266
328
|
|
|
267
329
|
### 4. Track Your Savings
|
|
268
330
|
|
|
269
|
-
**New in v3.9.0:** Local usage telemetry tracks your actual cost savings vs baseline.
|
|
270
|
-
|
|
271
331
|
```bash
|
|
272
332
|
# View recent usage
|
|
273
333
|
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
|