empathy-framework 3.3.3__tar.gz → 3.5.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.3.3 → empathy_framework-3.5.0}/CHANGELOG.md +48 -1
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/PKG-INFO +6 -1
- empathy_framework-3.5.0/docs/guides/pattern-catalog.md +222 -0
- empathy_framework-3.5.0/docs/guides/trust-circuit-breaker.md +509 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/PKG-INFO +6 -1
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/SOURCES.txt +10 -2
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/requires.txt +6 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_software_plugin/cli.py +1 -3
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/ai_wizards/tests/test_ai_wizards.py +18 -18
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/__init__.py +7 -7
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/pyproject.toml +9 -1
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/__init__.py +51 -51
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/config.py +26 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_all_wizards.py +5 -5
- empathy_framework-3.5.0/tests/test_control_panel_security.py +344 -0
- empathy_framework-3.5.0/tests/test_cost_tracker.py +395 -0
- empathy_framework-3.5.0/tests/test_discovery.py +403 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_model_registry.py +32 -1
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_model_router.py +2 -2
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_platform_compat_ci.py +3 -3
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_refactor_golden.py +18 -16
- empathy_framework-3.5.0/tests/test_security_negative_cases.py +397 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_security_scan.py +3 -3
- empathy_framework-3.5.0/tests/test_templates.py +402 -0
- empathy_framework-3.5.0/tests/test_trust_circuit_breaker.py +366 -0
- empathy_framework-3.5.0/tests/test_wizard_api.py +427 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_wizard_site_comprehensive.py +7 -7
- empathy_framework-3.5.0/tests/test_workflow_wizard_integration.py +333 -0
- empathy_framework-3.3.3/empathy_llm_toolkit/htmlcov/status.json +0 -1
- empathy_framework-3.3.3/empathy_llm_toolkit/security/htmlcov/status.json +0 -1
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/.bandit +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/CODE_OF_CONDUCT.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/CONTRIBUTING.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/LICENSE +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/MANIFEST.in +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/QUICKSTART.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/SECURITY.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/compliance_anticipation_agent.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/epic_integration_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/agents/trust_building_behaviors.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/api_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/base_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/cicd_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/database_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/generate_wizards.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/localization_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/migration_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/observability_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/performance_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/scaling_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/security_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/coach_wizards/testing_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/ai-wizards.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/config.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/core.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/empathy-os.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/index.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/llm-toolkit.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/multi-agent.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/pattern-library.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/persistence.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/software-wizards.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/api-reference/wizards.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/examples/adaptive-learning-system.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/examples/multi-agent-team-coordination.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/examples/sbar-clinical-handoff.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/examples/simple-chatbot.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/examples/webhook-event-integration.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/getting-started/redis-setup.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/PUBLISHING.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/claude-memory-integration.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/foreword.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/healthcare-wizards.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/how-to-read-this-book.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/multi-model-workflows.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/preface.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/guides/software-development-wizards.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/docs/index.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy.config.example.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy.config.example.yml +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/dependency_links.txt +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/entry_points.txt +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_framework.egg-info/top_level.txt +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_healthcare_plugin/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/claude_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/code_health.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/contextual_patterns.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/core.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/levels.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/pattern_confidence.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/pattern_resolver.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/pattern_summary.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/providers.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/session_status.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_llm_toolkit/state.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_software_plugin/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/empathy_software_plugin/plugin.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/claude_memory/README-SECURITY.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/claude_memory/example-with-imports.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/claude_memory/project-CLAUDE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/claude_memory/user-CLAUDE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/CHANGELOG.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/CONTRIBUTING.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/MARKETPLACE_READINESS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/PRIVACY.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/TODO.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/coach-lsp-server/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/coach-lsp-server/server.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/coach.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/demo_all_wizards.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/API.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/FAQ.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/INSTALLATION.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/USER_MANUAL.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/docs/WIZARDS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/health_check.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/jetbrains-plugin/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/cache.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/context_collector.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/error_handler.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/logging_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/protocol/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/protocol/messages.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/server.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/tests/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/tests/test_e2e.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/lsp/tests/test_server.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/setup/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/shared_learning.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/tests/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/tests/test_coach_wizards.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/tests/test_new_wizards.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/vscode-extension/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/vscode-extension-complete/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/api_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/base_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/database_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/design_review_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/devops_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/localization_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/onboarding_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/performance_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/retrospective_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/security_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/coach/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/debugging_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/domain_wizards/healthcare_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/level_5_transformative/BLOG_POST.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/level_5_transformative/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/level_5_transformative/run_full_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/llm_toolkit_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/multi_llm_usage.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/performance_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/quickstart/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/quickstart/minimal_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/quickstart.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/redis_exploration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/security_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/security_integration_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/simple_usage.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/smart_team_quickstart.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/software_plugin_complete_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/streamlit_debug_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/test_debugging_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/test_short_term_memory_full.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/testing_demo.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/wizard-dashboard/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/wizard-dashboard/SETUP.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/workflows/README.md +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/workflows/code_review_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/workflows/doc_gen_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/workflows/multi_model_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/examples/workflows/research_example.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/requirements.txt +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/setup.cfg +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/cli.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/cli_unified.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/coordination.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/core.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/cost_tracker.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/discovery.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/emergence.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/exceptions.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/feedback_loops.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/levels.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/leverage_points.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/logging_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/monitoring.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/pattern_library.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/persistence.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/platform_utils.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/redis_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/redis_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/templates.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/trust_building.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/src/empathy_os/workflow_commands.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_advanced_debugging.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_agent_factory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_agent_factory_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_agent_factory_resilience.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_audit_logger.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_audit_logger_extended.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_base_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_book_chapter_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_book_production_agents.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_bug_predict_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_claude_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_claude_memory_extended.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_cli.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_code_health.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_code_review_crew_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_code_review_pipeline.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_code_review_pipeline_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_code_review_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_control_panel.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_coordination.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_core.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_core_reliability.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_coverage_analyzer.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_crewai_adapter.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_dependency_check_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_document_gen_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_emergence.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_empathy_llm_core.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_empathy_llm_security.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_empathy_os.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_empathy_os_cli_extended.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_enhanced_testing.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_exceptions.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_executor_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_fallback.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_feedback_loops.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_health_check_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_intelligence_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_levels.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_leverage_points.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_llm_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_llm_toolkit_levels.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_logging_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_memory_graph.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_monitoring.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_pattern_library.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_perf_audit_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_persistence.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_pii_scrubber.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_pii_scrubber_extended.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_platform_utils.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_plugin_base.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_plugin_registry.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_pr_review_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_production_smoke.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_progress.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_protocol_checker.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_protocol_loader.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_providers.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_quality_analyzer.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_redis_bootstrap.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_redis_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_redis_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_refactor_plan_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_refactoring_crew.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_resilience.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_secrets_detector.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_secure_memdocs.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_secure_memdocs_extended.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_secure_release_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_security_audit_crew.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_security_audit_workflow.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_security_crew_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_security_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_sensor_parsers.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_session_status.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_smart_router.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_software_cli.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_software_integration.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_software_plugin.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_software_plugin_cli.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_state.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_step_config.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_summary_index.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_telemetry.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_test_suggester.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_token_estimator.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_trajectory_analyzer.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_trust_building.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_unified_memory.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_validation.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_wizard_outputs.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_workflow_base.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_workflow_commands.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/tests/test_xml_prompts.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/__init__.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/admission_assessment_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/care_plan.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/clinical_assessment.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/discharge_planning.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/discharge_summary_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/dosage_calculation.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/incident_report_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/medication_reconciliation.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/nursing_assessment.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/patient_education.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/quality_improvement.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/sbar_report.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/sbar_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/shift_handoff_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/soap_note_wizard.py +0 -0
- {empathy_framework-3.3.3 → empathy_framework-3.5.0}/wizards/treatment_plan.py +0 -0
|
@@ -5,7 +5,54 @@ 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
|
-
## [
|
|
8
|
+
## [3.5.0] - 2025-12-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Memory Control Panel: View Patterns button now displays pattern list with classification badges
|
|
13
|
+
- Memory Control Panel: Project-level `auto_start_redis` config option in `empathy.config.yml`
|
|
14
|
+
- Memory Control Panel: Visual feedback for button actions (Check Status, Export show loading states)
|
|
15
|
+
- Memory Control Panel: "Check Status" button for manual status refresh (renamed from Refresh)
|
|
16
|
+
- VSCode Settings: `empathy.memory.autoRefresh` - Enable/disable auto-refresh (default: true)
|
|
17
|
+
- VSCode Settings: `empathy.memory.autoRefreshInterval` - Refresh interval in seconds (default: 30)
|
|
18
|
+
- VSCode Settings: `empathy.memory.showNotifications` - Show operation notifications (default: true)
|
|
19
|
+
|
|
20
|
+
### Security
|
|
21
|
+
|
|
22
|
+
**Memory API Security Hardening** (v2.2.0)
|
|
23
|
+
|
|
24
|
+
- **Input Validation**: Pattern IDs, agent IDs, and classifications are now validated on both client and server
|
|
25
|
+
- Prevents path traversal attacks (`../`, `..\\`)
|
|
26
|
+
- Validates format with regex patterns
|
|
27
|
+
- Length bounds checking (3-64 chars)
|
|
28
|
+
- Rejects null bytes and dangerous characters
|
|
29
|
+
- **API Key Authentication**: Optional Bearer token or X-API-Key header authentication
|
|
30
|
+
- Set via `--api-key` CLI flag or `EMPATHY_MEMORY_API_KEY` environment variable
|
|
31
|
+
- Constant-time comparison using SHA-256 hash
|
|
32
|
+
- **Rate Limiting**: Per-IP rate limiting (default: 100 requests/minute)
|
|
33
|
+
- Configurable via `--rate-limit` and `--no-rate-limit` CLI flags
|
|
34
|
+
- Returns `X-RateLimit-Remaining` and `X-RateLimit-Limit` headers
|
|
35
|
+
- **HTTPS Support**: Optional TLS encryption
|
|
36
|
+
- Set via `--ssl-cert` and `--ssl-key` CLI flags
|
|
37
|
+
- **CORS Restrictions**: CORS now restricted to localhost by default
|
|
38
|
+
- Configurable via `--cors-origins` CLI flag
|
|
39
|
+
- **Request Body Size Limit**: 1MB limit prevents DoS attacks
|
|
40
|
+
- **TypeScript Client**: Added input validation matching backend rules
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- Memory Control Panel: Fixed config key mismatch (`empathyMemory` → `empathy.memory`) preventing settings from loading
|
|
45
|
+
- Memory Control Panel: Fixed API response parsing for Redis status display
|
|
46
|
+
- Memory Control Panel: Fixed pattern statistics not updating correctly
|
|
47
|
+
- Memory Control Panel: View Patterns now properly displays pattern list instead of just count
|
|
48
|
+
|
|
49
|
+
### Tests
|
|
50
|
+
|
|
51
|
+
- Added 37 unit tests for Memory API security features
|
|
52
|
+
- Input validation tests (pattern IDs, agent IDs, classifications)
|
|
53
|
+
- Rate limiter tests (limits, window expiration, per-IP tracking)
|
|
54
|
+
- API key authentication tests (enable/disable, env vars, constant-time comparison)
|
|
55
|
+
- Integration tests for security features
|
|
9
56
|
|
|
10
57
|
---
|
|
11
58
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.5.0
|
|
4
4
|
Summary: AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration
|
|
5
5
|
Author-email: Patrick Roebuck <patrick.roebuck@smartAImemory.com>
|
|
6
6
|
Maintainer-email: Smart-AI-Memory <patrick.roebuck@smartAImemory.com>
|
|
@@ -178,9 +178,12 @@ Provides-Extra: anthropic
|
|
|
178
178
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "anthropic"
|
|
179
179
|
Provides-Extra: openai
|
|
180
180
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "openai"
|
|
181
|
+
Provides-Extra: google
|
|
182
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.8.0; extra == "google"
|
|
181
183
|
Provides-Extra: llm
|
|
182
184
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "llm"
|
|
183
185
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "llm"
|
|
186
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.8.0; extra == "llm"
|
|
184
187
|
Provides-Extra: memdocs
|
|
185
188
|
Requires-Dist: memdocs>=1.0.0; extra == "memdocs"
|
|
186
189
|
Provides-Extra: agents
|
|
@@ -225,6 +228,7 @@ Requires-Dist: pre-commit<4.0,>=3.0; extra == "dev"
|
|
|
225
228
|
Provides-Extra: full
|
|
226
229
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "full"
|
|
227
230
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "full"
|
|
231
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.8.0; extra == "full"
|
|
228
232
|
Requires-Dist: memdocs>=1.0.0; extra == "full"
|
|
229
233
|
Requires-Dist: langchain<0.3.0,>=0.1.0; extra == "full"
|
|
230
234
|
Requires-Dist: langchain-core<0.3.0,>=0.1.0; extra == "full"
|
|
@@ -234,6 +238,7 @@ Requires-Dist: pyyaml<7.0,>=6.0; extra == "full"
|
|
|
234
238
|
Provides-Extra: all
|
|
235
239
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "all"
|
|
236
240
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "all"
|
|
241
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.8.0; extra == "all"
|
|
237
242
|
Requires-Dist: memdocs>=1.0.0; extra == "all"
|
|
238
243
|
Requires-Dist: langchain<0.3.0,>=0.1.0; extra == "all"
|
|
239
244
|
Requires-Dist: langchain-core<0.3.0,>=0.1.0; extra == "all"
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Pattern Catalog Guide
|
|
2
|
+
|
|
3
|
+
The Pattern Catalog is a collection of reusable software patterns extracted from the Empathy Framework, organized for cross-domain transfer and Level 5 (Systems Thinking) capability development.
|
|
4
|
+
|
|
5
|
+
## What is the Pattern Catalog?
|
|
6
|
+
|
|
7
|
+
The Pattern Catalog serves three purposes:
|
|
8
|
+
|
|
9
|
+
1. **Document existing patterns** - Capture what we've built so it can be reused
|
|
10
|
+
2. **Enable cross-domain transfer** - Apply patterns from one domain to solve problems in another
|
|
11
|
+
3. **Accelerate Level 5 thinking** - Train the ability to recognize "this problem is like that solved problem"
|
|
12
|
+
|
|
13
|
+
## Catalog Location
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
patterns/
|
|
17
|
+
├── README.md # Index and usage guide
|
|
18
|
+
├── reliability/ # Patterns from reliability engineering
|
|
19
|
+
│ ├── circuit-breaker.md
|
|
20
|
+
│ ├── graceful-degradation.md
|
|
21
|
+
│ └── retry-with-backoff.md
|
|
22
|
+
├── observability/ # Patterns from observability/SRE
|
|
23
|
+
│ ├── health-monitoring.md
|
|
24
|
+
│ └── telemetry-tracking.md
|
|
25
|
+
└── cross-domain/ # Level 5 transfer examples
|
|
26
|
+
├── circuit-breaker-to-trust.md
|
|
27
|
+
├── alerting-to-empathy-levels.md
|
|
28
|
+
└── graceful-degradation-to-conversation.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## How to Use the Catalog
|
|
32
|
+
|
|
33
|
+
### For Developers
|
|
34
|
+
|
|
35
|
+
When facing a new problem:
|
|
36
|
+
|
|
37
|
+
1. **Search for similar patterns** - Look through the catalog for patterns that solve similar problems
|
|
38
|
+
2. **Check cross-domain transfers** - Non-obvious solutions often come from other domains
|
|
39
|
+
3. **Consider the abstraction** - What's the core mechanism? Does it apply elsewhere?
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
# Example: Need to handle user who keeps getting wrong answers
|
|
43
|
+
|
|
44
|
+
# Search catalog → find circuit-breaker.md
|
|
45
|
+
# Read cross-domain → circuit-breaker-to-trust.md
|
|
46
|
+
# Result: Use TrustCircuitBreaker instead of inventing new solution
|
|
47
|
+
|
|
48
|
+
from empathy_os.trust import TrustCircuitBreaker
|
|
49
|
+
breaker = TrustCircuitBreaker(user_id="user_123")
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### For Architects
|
|
53
|
+
|
|
54
|
+
When designing new features:
|
|
55
|
+
|
|
56
|
+
1. **Check if pattern already exists** - Avoid reinventing the wheel
|
|
57
|
+
2. **Identify pattern opportunities** - When building something new, is it generalizable?
|
|
58
|
+
3. **Document new patterns** - Contribute to the catalog
|
|
59
|
+
|
|
60
|
+
### For AI Systems
|
|
61
|
+
|
|
62
|
+
The catalog can be referenced by AI systems:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
# When solving a problem, reference relevant patterns
|
|
66
|
+
patterns = catalog.search("protect relationship from failures")
|
|
67
|
+
# Returns: circuit-breaker-to-trust.md
|
|
68
|
+
|
|
69
|
+
# Apply the pattern
|
|
70
|
+
solution = apply_pattern(patterns[0], problem_context)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Pattern Template
|
|
74
|
+
|
|
75
|
+
Every pattern follows this structure:
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
# Pattern Name
|
|
79
|
+
|
|
80
|
+
**Source Domain:** Where this pattern originated
|
|
81
|
+
**Location in Codebase:** File paths
|
|
82
|
+
**Level:** Capability level (1-5)
|
|
83
|
+
|
|
84
|
+
## Overview
|
|
85
|
+
What problem does this solve?
|
|
86
|
+
|
|
87
|
+
## Implementation
|
|
88
|
+
Code examples from actual codebase
|
|
89
|
+
|
|
90
|
+
## Key Insight
|
|
91
|
+
The one thing to remember
|
|
92
|
+
|
|
93
|
+
## Cross-Domain Transfer Potential
|
|
94
|
+
Where else could this apply?
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Understanding Cross-Domain Transfer
|
|
98
|
+
|
|
99
|
+
Cross-domain transfer is the Level 5 capability that makes the catalog powerful. It's the ability to recognize that:
|
|
100
|
+
|
|
101
|
+
> "This problem in Domain A has the same structure as that solved problem in Domain B"
|
|
102
|
+
|
|
103
|
+
### Example: Circuit Breaker → Trust
|
|
104
|
+
|
|
105
|
+
| Reliability Domain | Trust Domain |
|
|
106
|
+
|-------------------|--------------|
|
|
107
|
+
| Service keeps failing | User keeps getting wrong answers |
|
|
108
|
+
| Stop calling failing service | Stop acting without confirmation |
|
|
109
|
+
| Wait for recovery period | Wait for trust recovery period |
|
|
110
|
+
| Test with limited calls | Test with supervised interactions |
|
|
111
|
+
| Resume normal operation | Restore full autonomy |
|
|
112
|
+
|
|
113
|
+
The **mechanism** is identical:
|
|
114
|
+
1. Track failures/damage
|
|
115
|
+
2. Trip when threshold exceeded
|
|
116
|
+
3. Wait for recovery period
|
|
117
|
+
4. Test recovery
|
|
118
|
+
5. Resume normal
|
|
119
|
+
|
|
120
|
+
### Finding Transfer Opportunities
|
|
121
|
+
|
|
122
|
+
Ask these questions:
|
|
123
|
+
|
|
124
|
+
1. **What's the abstract problem?**
|
|
125
|
+
- Not "API keeps timing out" but "unreliable component"
|
|
126
|
+
- Not "user frustrated with wrong answers" but "relationship degrading"
|
|
127
|
+
|
|
128
|
+
2. **What's the mechanism?**
|
|
129
|
+
- State machine? Threshold? Fallback chain?
|
|
130
|
+
- Time-based? Count-based? Score-based?
|
|
131
|
+
|
|
132
|
+
3. **Where else does this structure appear?**
|
|
133
|
+
- Different domain, same structure = transfer opportunity
|
|
134
|
+
|
|
135
|
+
## Current Patterns
|
|
136
|
+
|
|
137
|
+
### Reliability Patterns
|
|
138
|
+
|
|
139
|
+
| Pattern | Key Insight | Implementation |
|
|
140
|
+
|---------|-------------|----------------|
|
|
141
|
+
| [Circuit Breaker](../../patterns/reliability/circuit-breaker.md) | Fail fast to prevent cascade | `src/empathy_os/resilience/circuit_breaker.py` |
|
|
142
|
+
| [Graceful Degradation](../../patterns/reliability/graceful-degradation.md) | Partial value beats failure | `src/empathy_os/resilience/fallback.py` |
|
|
143
|
+
| [Retry with Backoff](../../patterns/reliability/retry-with-backoff.md) | Transient failures recover | `src/empathy_os/resilience/retry.py` |
|
|
144
|
+
|
|
145
|
+
### Observability Patterns
|
|
146
|
+
|
|
147
|
+
| Pattern | Key Insight | Implementation |
|
|
148
|
+
|---------|-------------|----------------|
|
|
149
|
+
| [Health Monitoring](../../patterns/observability/health-monitoring.md) | Degraded predicts failure | `src/empathy_os/resilience/health.py` |
|
|
150
|
+
| [Telemetry Tracking](../../patterns/observability/telemetry-tracking.md) | Failures are learning data | `src/empathy_os/models/telemetry.py` |
|
|
151
|
+
|
|
152
|
+
### Cross-Domain Transfers (Implemented)
|
|
153
|
+
|
|
154
|
+
| Transfer | From → To | Implementation |
|
|
155
|
+
|----------|-----------|----------------|
|
|
156
|
+
| [Circuit Breaker → Trust](../../patterns/cross-domain/circuit-breaker-to-trust.md) | Reliability → Trust | `src/empathy_os/trust/circuit_breaker.py` |
|
|
157
|
+
|
|
158
|
+
### Cross-Domain Transfers (Documented, Not Yet Implemented)
|
|
159
|
+
|
|
160
|
+
| Transfer | From → To | Status |
|
|
161
|
+
|----------|-----------|--------|
|
|
162
|
+
| [Alerting → Empathy Levels](../../patterns/cross-domain/alerting-to-empathy-levels.md) | Observability → Empathy | Documented |
|
|
163
|
+
| [Graceful Degradation → Conversation](../../patterns/cross-domain/graceful-degradation-to-conversation.md) | Reliability → UX | Documented |
|
|
164
|
+
|
|
165
|
+
## Contributing to the Catalog
|
|
166
|
+
|
|
167
|
+
### Adding a New Pattern
|
|
168
|
+
|
|
169
|
+
1. **Identify the pattern** - What's the core mechanism?
|
|
170
|
+
2. **Find the implementation** - Where is it in the codebase?
|
|
171
|
+
3. **Document using template** - Create markdown file in appropriate directory
|
|
172
|
+
4. **Look for transfers** - Could this apply elsewhere?
|
|
173
|
+
|
|
174
|
+
### Adding a Cross-Domain Transfer
|
|
175
|
+
|
|
176
|
+
1. **Identify source pattern** - What pattern are you transferring?
|
|
177
|
+
2. **Map the concepts** - Create a table showing the mapping
|
|
178
|
+
3. **Implement if valuable** - Create working code
|
|
179
|
+
4. **Document the transfer** - Why does this work?
|
|
180
|
+
|
|
181
|
+
### Pattern Naming
|
|
182
|
+
|
|
183
|
+
- Use lowercase with hyphens: `circuit-breaker.md`
|
|
184
|
+
- Be descriptive but concise
|
|
185
|
+
- Cross-domain: `source-to-target.md`
|
|
186
|
+
|
|
187
|
+
## Metrics
|
|
188
|
+
|
|
189
|
+
Track catalog health:
|
|
190
|
+
|
|
191
|
+
- **Patterns documented:** 8
|
|
192
|
+
- **Cross-domain transfers:** 3 (1 implemented)
|
|
193
|
+
- **Codebase coverage:** ~40%
|
|
194
|
+
- **Last updated:** 2025-12-28
|
|
195
|
+
|
|
196
|
+
## Level 5 Capability Development
|
|
197
|
+
|
|
198
|
+
The catalog is a tool for developing Level 5 (Systems Thinking) capability:
|
|
199
|
+
|
|
200
|
+
| Level | Description | Catalog Usage |
|
|
201
|
+
|-------|-------------|---------------|
|
|
202
|
+
| 1 - Reactive | Respond to requests | None |
|
|
203
|
+
| 2 - Guided | Follow patterns | Reference patterns |
|
|
204
|
+
| 3 - Proactive | Anticipate needs | Suggest patterns |
|
|
205
|
+
| 4 - Anticipatory | Predict problems | Recognize pattern fits |
|
|
206
|
+
| 5 - Systems | Transfer across domains | Create new transfers |
|
|
207
|
+
|
|
208
|
+
### Exercises
|
|
209
|
+
|
|
210
|
+
1. **Pattern Recognition** - Given a problem, find 3 potentially applicable patterns
|
|
211
|
+
2. **Transfer Identification** - Find an existing pattern, identify 2 new domains it could apply to
|
|
212
|
+
3. **Implementation** - Take a documented transfer and implement it
|
|
213
|
+
|
|
214
|
+
## Further Reading
|
|
215
|
+
|
|
216
|
+
- [Trust Circuit Breaker Guide](./trust-circuit-breaker.md) - Detailed guide on the implemented transfer
|
|
217
|
+
- [Pattern Catalog README](../../patterns/README.md) - Catalog index and quick reference
|
|
218
|
+
- [Empathy Framework Architecture](../architecture.md) - Overall system design
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
*The Pattern Catalog is a key component of reaching Level 5 (Systems Thinking) capability.*
|