empathy-framework 3.5.3__tar.gz → 3.5.5__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.5.3 → empathy_framework-3.5.5}/CHANGELOG.md +43 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/PKG-INFO +11 -3
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/README.md +8 -2
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/PKG-INFO +11 -3
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/SOURCES.txt +32 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/requires.txt +2 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/__init__.py +2 -1
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/core.py +9 -1
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/providers.py +177 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/pyproject.toml +5 -4
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/cli.py +140 -12
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/cli_unified.py +1 -1
- empathy_framework-3.5.5/src/empathy_os/redis_config.py +303 -0
- empathy_framework-3.5.5/tests/test_agent_orchestration_wizard.py +517 -0
- empathy_framework-3.5.5/tests/test_ai_collaboration_wizard.py +810 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_all_wizards.py +10 -2
- empathy_framework-3.5.5/tests/test_base.py +603 -0
- empathy_framework-3.5.5/tests/test_baseline.py +997 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_book_chapter_wizard.py +10 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_book_production_agents.py +19 -1
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_bug_predict_workflow.py +3 -69
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_claude_memory_extended.py +2 -1
- empathy_framework-3.5.5/tests/test_code_review.py +477 -0
- empathy_framework-3.5.5/tests/test_code_review_wizard.py +761 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_code_review_workflow.py +0 -82
- empathy_framework-3.5.5/tests/test_config_loaders.py +1217 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_cost_tracker.py +8 -8
- empathy_framework-3.5.5/tests/test_dependency_check.py +451 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_dependency_check_workflow.py +0 -73
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_discovery.py +8 -11
- empathy_framework-3.5.5/tests/test_document_gen.py +543 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_document_gen_workflow.py +1 -49
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_empathy_os_cli_extended.py +4 -4
- empathy_framework-3.5.5/tests/test_graph.py +1141 -0
- empathy_framework-3.5.5/tests/test_health_check.py +635 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_intelligence_integration.py +6 -2
- empathy_framework-3.5.5/tests/test_linter_parsers.py +1134 -0
- empathy_framework-3.5.5/tests/test_long_term.py +475 -0
- empathy_framework-3.5.5/tests/test_multi_model_wizard.py +599 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_perf_audit_workflow.py +1 -48
- empathy_framework-3.5.5/tests/test_performance_profiling_wizard.py +788 -0
- empathy_framework-3.5.5/tests/test_pr_review.py +981 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_production_smoke.py +6 -0
- empathy_framework-3.5.5/tests/test_provider_config.py +477 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_redis_bootstrap.py +16 -3
- empathy_framework-3.5.5/tests/test_redis_config.py +262 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_refactor_plan_workflow.py +1 -48
- empathy_framework-3.5.5/tests/test_refactoring.py +974 -0
- empathy_framework-3.5.5/tests/test_registry.py +417 -0
- empathy_framework-3.5.5/tests/test_release_prep.py +1154 -0
- empathy_framework-3.5.5/tests/test_reporting.py +373 -0
- empathy_framework-3.5.5/tests/test_reports.py +1169 -0
- empathy_framework-3.5.5/tests/test_sbar_wizard.py +174 -0
- empathy_framework-3.5.5/tests/test_scanner.py +771 -0
- empathy_framework-3.5.5/tests/test_secure_release.py +362 -0
- empathy_framework-3.5.5/tests/test_security_audit.py +1084 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_audit_workflow.py +1 -49
- empathy_framework-3.5.5/tests/test_security_learning_wizard.py +446 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_negative_cases.py +39 -36
- empathy_framework-3.5.5/tests/test_short_term.py +709 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_smart_router.py +9 -1
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_summary_index.py +3 -0
- empathy_framework-3.5.5/tests/test_sync_claude.py +292 -0
- empathy_framework-3.5.5/tests/test_tech_debt_wizard.py +471 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_templates.py +3 -6
- empathy_framework-3.5.5/tests/test_timeout.py +523 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_token_estimator.py +2 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_wizard_api.py +111 -132
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_workflow_wizard_integration.py +22 -19
- empathy_framework-3.5.3/src/empathy_os/redis_config.py +0 -216
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/.bandit +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/CODE_OF_CONDUCT.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/CONTRIBUTING.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/LICENSE +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/MANIFEST.in +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/QUICKSTART.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/SECURITY.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/compliance_anticipation_agent.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/epic_integration_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/agents/trust_building_behaviors.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/api_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/base_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/cicd_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/database_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/generate_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/localization_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/migration_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/observability_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/performance_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/scaling_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/security_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/coach_wizards/testing_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/ai-wizards.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/config.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/core.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/empathy-os.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/index.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/llm-toolkit.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/multi-agent.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/pattern-library.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/persistence.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/software-wizards.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/api-reference/wizards.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/examples/adaptive-learning-system.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/examples/multi-agent-team-coordination.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/examples/sbar-clinical-handoff.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/examples/simple-chatbot.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/examples/webhook-event-integration.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/getting-started/redis-setup.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/PUBLISHING.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/claude-memory-integration.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/foreword.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/healthcare-wizards.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/how-to-read-this-book.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/multi-model-workflows.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/pattern-catalog.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/preface.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/software-development-wizards.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/guides/trust-circuit-breaker.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/docs/index.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy.config.example.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy.config.example.yml +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/dependency_links.txt +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/entry_points.txt +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_framework.egg-info/top_level.txt +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_healthcare_plugin/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/claude_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/code_health.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/contextual_patterns.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/levels.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/pattern_confidence.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/pattern_resolver.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/pattern_summary.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/session_status.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_llm_toolkit/state.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_software_plugin/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_software_plugin/cli.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/empathy_software_plugin/plugin.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/ai_wizards/tests/test_ai_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/claude_memory/README-SECURITY.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/claude_memory/example-with-imports.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/claude_memory/project-CLAUDE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/claude_memory/user-CLAUDE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/CHANGELOG.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/CONTRIBUTING.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/MARKETPLACE_READINESS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/PRIVACY.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/TODO.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/coach-lsp-server/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/coach-lsp-server/server.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/coach.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/demo_all_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/API.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/FAQ.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/INSTALLATION.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/USER_MANUAL.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/docs/WIZARDS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/health_check.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/jetbrains-plugin/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/cache.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/context_collector.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/error_handler.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/logging_config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/protocol/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/protocol/messages.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/server.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/tests/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/tests/test_e2e.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/lsp/tests/test_server.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/setup/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/shared_learning.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/tests/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/tests/test_all_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/tests/test_coach_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/tests/test_new_wizards.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/vscode-extension/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/vscode-extension-complete/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/accessibility_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/api_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/base_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/compliance_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/database_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/debugging_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/design_review_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/devops_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/documentation_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/localization_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/monitoring_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/onboarding_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/performance_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/refactoring_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/retrospective_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/security_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/coach/wizards/testing_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/debugging_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/domain_wizards/healthcare_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/level_5_transformative/BLOG_POST.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/level_5_transformative/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/level_5_transformative/run_full_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/llm_toolkit_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/multi_llm_usage.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/performance_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/quickstart/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/quickstart/minimal_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/quickstart.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/redis_exploration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/security_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/security_integration_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/simple_usage.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/smart_team_quickstart.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/software_plugin_complete_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/streamlit_debug_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/test_debugging_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/test_short_term_memory_full.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/testing_demo.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/wizard-dashboard/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/wizard-dashboard/SETUP.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/workflows/README.md +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/workflows/code_review_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/workflows/doc_gen_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/workflows/multi_model_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/examples/workflows/research_example.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/requirements.txt +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/setup.cfg +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/coordination.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/core.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/cost_tracker.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/discovery.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/emergence.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/exceptions.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/feedback_loops.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/levels.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/leverage_points.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/logging_config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/monitoring.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/pattern_library.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/persistence.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/platform_utils.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/redis_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/templates.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/trust_building.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/src/empathy_os/workflow_commands.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_advanced_debugging.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_agent_factory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_agent_factory_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_agent_factory_resilience.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_audit_logger.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_audit_logger_extended.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_base_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_claude_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_cli.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_clinical_protocol_monitor.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_code_health.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_code_review_crew_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_code_review_pipeline.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_code_review_pipeline_workflow.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_control_panel.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_control_panel_security.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_coordination.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_core.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_core_reliability.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_coverage_analyzer.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_crewai_adapter.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_emergence.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_empathy_llm_core.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_empathy_llm_security.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_empathy_os.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_enhanced_testing.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_exceptions.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_executor_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_fallback.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_feedback_loops.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_health_check_workflow.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_levels.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_leverage_points.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_llm_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_llm_toolkit_levels.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_logging_config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_memory_graph.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_model_registry.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_model_router.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_monitoring.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_pattern_library.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_persistence.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_pii_scrubber.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_pii_scrubber_extended.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_platform_compat_ci.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_platform_utils.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_plugin_base.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_plugin_registry.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_pr_review_workflow.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_progress.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_prompt_engineering_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_protocol_checker.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_protocol_loader.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_providers.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_quality_analyzer.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_redis_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_redis_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_refactor_golden.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_refactoring_crew.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_resilience.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_secrets_detector.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_secure_memdocs.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_secure_memdocs_extended.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_secure_release_workflow.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_audit_crew.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_crew_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_security_scan.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_sensor_parsers.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_session_status.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_software_cli.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_software_integration.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_software_plugin.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_software_plugin_cli.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_state.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_step_config.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_telemetry.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_test_suggester.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_trajectory_analyzer.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_trust_building.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_trust_circuit_breaker.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_unified_memory.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_validation.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_wizard_outputs.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_wizard_site_comprehensive.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_workflow_base.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_workflow_commands.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/tests/test_xml_prompts.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/__init__.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/admission_assessment_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/care_plan.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/clinical_assessment.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/discharge_planning.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/discharge_summary_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/dosage_calculation.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/incident_report_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/medication_reconciliation.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/nursing_assessment.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/patient_education.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/quality_improvement.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/sbar_report.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/sbar_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/shift_handoff_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/soap_note_wizard.py +0 -0
- {empathy_framework-3.5.3 → empathy_framework-3.5.5}/wizards/treatment_plan.py +0 -0
|
@@ -5,6 +5,49 @@ 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.5.4] - 2025-12-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
#### Comprehensive Test Suite Expansion
|
|
13
|
+
|
|
14
|
+
- Added 30+ new test files with comprehensive coverage
|
|
15
|
+
- New test modules:
|
|
16
|
+
- `test_baseline.py` - 71 tests for BaselineManager suppression system
|
|
17
|
+
- `test_graph.py` - Memory graph knowledge base tests
|
|
18
|
+
- `test_linter_parsers.py` - Multi-linter parser tests (ESLint, Pylint, MyPy, TypeScript, Clippy)
|
|
19
|
+
- `test_agent_orchestration_wizard.py` - 54 tests for agent orchestration
|
|
20
|
+
- `test_code_review_wizard.py` - 52 tests for code review wizard
|
|
21
|
+
- `test_tech_debt_wizard.py` - 39 tests for tech debt tracking
|
|
22
|
+
- `test_security_learning_wizard.py` - 35 tests for security learning
|
|
23
|
+
- `test_secure_release.py` - 31 tests for secure release pipeline
|
|
24
|
+
- `test_sync_claude.py` - 27 tests for Claude sync functionality
|
|
25
|
+
- `test_reporting.py` - 27 tests for reporting concepts
|
|
26
|
+
- `test_sbar_wizard.py` - Healthcare SBAR wizard tests
|
|
27
|
+
- Integration and performance test directories (`tests/integration/`, `tests/performance/`)
|
|
28
|
+
- **Project Indexing System** (`src/empathy_os/project_index/`) — JSON-based file tracking with:
|
|
29
|
+
- Automatic project structure scanning and indexing
|
|
30
|
+
- File metadata tracking (size, type, last modified)
|
|
31
|
+
- Codebase statistics and reports
|
|
32
|
+
- CrewAI integration for AI-powered analysis
|
|
33
|
+
- Test maintenance workflows (`test_lifecycle.py`, `test_maintenance.py`)
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- **BaselineManager**: Fixed test isolation bug where `BASELINE_SCHEMA.copy()` created shallow copies, causing nested dictionaries to be shared across test instances. Changed to `copy.deepcopy(BASELINE_SCHEMA)` for proper isolation.
|
|
38
|
+
- **ESLint Parser Test**: Fixed `test_parse_eslint_text_multiple_files` - rule names must be lowercase letters and hyphens only (changed `rule-1` to `no-unused-vars`)
|
|
39
|
+
- **Lint Warnings**: Fixed ambiguous variable name `l` → `line` in scanner.py
|
|
40
|
+
- **Lint Warnings**: Fixed unused loop variable `pkg` → `_pkg` in test_dependency_check.py
|
|
41
|
+
|
|
42
|
+
### Tests
|
|
43
|
+
|
|
44
|
+
- Total tests: 5,603 passed, 72 skipped
|
|
45
|
+
- Coverage: 63.65% (exceeds 25% target)
|
|
46
|
+
- All workflow tests now pass with proper mocking
|
|
47
|
+
- Fixed 31+ previously failing workflow tests
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
8
51
|
## [3.5.3] - 2025-12-29
|
|
9
52
|
|
|
10
53
|
### Documentation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.5.
|
|
3
|
+
Version: 3.5.5
|
|
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>
|
|
@@ -225,6 +225,8 @@ Requires-Dist: ruff<1.0,>=0.1; extra == "dev"
|
|
|
225
225
|
Requires-Dist: coverage<8.0,>=7.0; extra == "dev"
|
|
226
226
|
Requires-Dist: bandit<2.0,>=1.7; extra == "dev"
|
|
227
227
|
Requires-Dist: pre-commit<4.0,>=3.0; extra == "dev"
|
|
228
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "dev"
|
|
229
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "dev"
|
|
228
230
|
Provides-Extra: full
|
|
229
231
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "full"
|
|
230
232
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "full"
|
|
@@ -276,8 +278,8 @@ Dynamic: license-file
|
|
|
276
278
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
277
279
|
|
|
278
280
|
[](https://pypi.org/project/empathy-framework/)
|
|
279
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
282
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
281
283
|
[](LICENSE)
|
|
282
284
|
[](https://www.python.org)
|
|
283
285
|
|
|
@@ -287,6 +289,12 @@ pip install empathy-framework[full]
|
|
|
287
289
|
|
|
288
290
|
## What's New in v3.5.x
|
|
289
291
|
|
|
292
|
+
### Project Indexing & Test Suite Expansion (v3.5.4)
|
|
293
|
+
|
|
294
|
+
- **Project Indexing System** — JSON-based file tracking with automatic structure scanning, metadata tracking, and CrewAI integration
|
|
295
|
+
- **5,603 Tests** — Comprehensive test coverage at 64% with 30+ new test modules
|
|
296
|
+
- **BaselineManager Fix** — Resolved test isolation bug affecting suppression system
|
|
297
|
+
|
|
290
298
|
### Memory API Security Hardening (v3.5.0)
|
|
291
299
|
|
|
292
300
|
- **Input Validation** — Pattern IDs, agent IDs, and classifications validated to prevent path traversal and injection attacks
|
|
@@ -3,8 +3,8 @@
|
|
|
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
10
|
|
|
@@ -14,6 +14,12 @@ pip install empathy-framework[full]
|
|
|
14
14
|
|
|
15
15
|
## What's New in v3.5.x
|
|
16
16
|
|
|
17
|
+
### Project Indexing & Test Suite Expansion (v3.5.4)
|
|
18
|
+
|
|
19
|
+
- **Project Indexing System** — JSON-based file tracking with automatic structure scanning, metadata tracking, and CrewAI integration
|
|
20
|
+
- **5,603 Tests** — Comprehensive test coverage at 64% with 30+ new test modules
|
|
21
|
+
- **BaselineManager Fix** — Resolved test isolation bug affecting suppression system
|
|
22
|
+
|
|
17
23
|
### Memory API Security Hardening (v3.5.0)
|
|
18
24
|
|
|
19
25
|
- **Input Validation** — Pattern IDs, agent IDs, and classifications validated to prevent path traversal and injection attacks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 3.5.
|
|
3
|
+
Version: 3.5.5
|
|
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>
|
|
@@ -225,6 +225,8 @@ Requires-Dist: ruff<1.0,>=0.1; extra == "dev"
|
|
|
225
225
|
Requires-Dist: coverage<8.0,>=7.0; extra == "dev"
|
|
226
226
|
Requires-Dist: bandit<2.0,>=1.7; extra == "dev"
|
|
227
227
|
Requires-Dist: pre-commit<4.0,>=3.0; extra == "dev"
|
|
228
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "dev"
|
|
229
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "dev"
|
|
228
230
|
Provides-Extra: full
|
|
229
231
|
Requires-Dist: anthropic<1.0.0,>=0.8.0; extra == "full"
|
|
230
232
|
Requires-Dist: openai<2.0.0,>=1.6.0; extra == "full"
|
|
@@ -276,8 +278,8 @@ Dynamic: license-file
|
|
|
276
278
|
**The AI collaboration framework that predicts problems before they happen.**
|
|
277
279
|
|
|
278
280
|
[](https://pypi.org/project/empathy-framework/)
|
|
279
|
-
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
282
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
281
283
|
[](LICENSE)
|
|
282
284
|
[](https://www.python.org)
|
|
283
285
|
|
|
@@ -287,6 +289,12 @@ pip install empathy-framework[full]
|
|
|
287
289
|
|
|
288
290
|
## What's New in v3.5.x
|
|
289
291
|
|
|
292
|
+
### Project Indexing & Test Suite Expansion (v3.5.4)
|
|
293
|
+
|
|
294
|
+
- **Project Indexing System** — JSON-based file tracking with automatic structure scanning, metadata tracking, and CrewAI integration
|
|
295
|
+
- **5,603 Tests** — Comprehensive test coverage at 64% with 30+ new test modules
|
|
296
|
+
- **BaselineManager Fix** — Resolved test isolation bug affecting suppression system
|
|
297
|
+
|
|
290
298
|
### Memory API Security Hardening (v3.5.0)
|
|
291
299
|
|
|
292
300
|
- **Input Validation** — Pattern IDs, agent IDs, and classifications validated to prevent path traversal and injection attacks
|
|
@@ -254,10 +254,14 @@ tests/test_advanced_debugging.py
|
|
|
254
254
|
tests/test_agent_factory.py
|
|
255
255
|
tests/test_agent_factory_memory.py
|
|
256
256
|
tests/test_agent_factory_resilience.py
|
|
257
|
+
tests/test_agent_orchestration_wizard.py
|
|
258
|
+
tests/test_ai_collaboration_wizard.py
|
|
257
259
|
tests/test_all_wizards.py
|
|
258
260
|
tests/test_audit_logger.py
|
|
259
261
|
tests/test_audit_logger_extended.py
|
|
262
|
+
tests/test_base.py
|
|
260
263
|
tests/test_base_wizard.py
|
|
264
|
+
tests/test_baseline.py
|
|
261
265
|
tests/test_book_chapter_wizard.py
|
|
262
266
|
tests/test_book_production_agents.py
|
|
263
267
|
tests/test_bug_predict_workflow.py
|
|
@@ -266,11 +270,14 @@ tests/test_claude_memory_extended.py
|
|
|
266
270
|
tests/test_cli.py
|
|
267
271
|
tests/test_clinical_protocol_monitor.py
|
|
268
272
|
tests/test_code_health.py
|
|
273
|
+
tests/test_code_review.py
|
|
269
274
|
tests/test_code_review_crew_integration.py
|
|
270
275
|
tests/test_code_review_pipeline.py
|
|
271
276
|
tests/test_code_review_pipeline_workflow.py
|
|
277
|
+
tests/test_code_review_wizard.py
|
|
272
278
|
tests/test_code_review_workflow.py
|
|
273
279
|
tests/test_config.py
|
|
280
|
+
tests/test_config_loaders.py
|
|
274
281
|
tests/test_control_panel.py
|
|
275
282
|
tests/test_control_panel_security.py
|
|
276
283
|
tests/test_coordination.py
|
|
@@ -279,8 +286,10 @@ tests/test_core_reliability.py
|
|
|
279
286
|
tests/test_cost_tracker.py
|
|
280
287
|
tests/test_coverage_analyzer.py
|
|
281
288
|
tests/test_crewai_adapter.py
|
|
289
|
+
tests/test_dependency_check.py
|
|
282
290
|
tests/test_dependency_check_workflow.py
|
|
283
291
|
tests/test_discovery.py
|
|
292
|
+
tests/test_document_gen.py
|
|
284
293
|
tests/test_document_gen_workflow.py
|
|
285
294
|
tests/test_emergence.py
|
|
286
295
|
tests/test_empathy_llm_core.py
|
|
@@ -292,19 +301,25 @@ tests/test_exceptions.py
|
|
|
292
301
|
tests/test_executor_integration.py
|
|
293
302
|
tests/test_fallback.py
|
|
294
303
|
tests/test_feedback_loops.py
|
|
304
|
+
tests/test_graph.py
|
|
305
|
+
tests/test_health_check.py
|
|
295
306
|
tests/test_health_check_workflow.py
|
|
296
307
|
tests/test_intelligence_integration.py
|
|
297
308
|
tests/test_levels.py
|
|
298
309
|
tests/test_leverage_points.py
|
|
310
|
+
tests/test_linter_parsers.py
|
|
299
311
|
tests/test_llm_integration.py
|
|
300
312
|
tests/test_llm_toolkit_levels.py
|
|
301
313
|
tests/test_logging_config.py
|
|
314
|
+
tests/test_long_term.py
|
|
302
315
|
tests/test_memory_graph.py
|
|
303
316
|
tests/test_model_registry.py
|
|
304
317
|
tests/test_model_router.py
|
|
305
318
|
tests/test_monitoring.py
|
|
319
|
+
tests/test_multi_model_wizard.py
|
|
306
320
|
tests/test_pattern_library.py
|
|
307
321
|
tests/test_perf_audit_workflow.py
|
|
322
|
+
tests/test_performance_profiling_wizard.py
|
|
308
323
|
tests/test_persistence.py
|
|
309
324
|
tests/test_pii_scrubber.py
|
|
310
325
|
tests/test_pii_scrubber_extended.py
|
|
@@ -312,33 +327,47 @@ tests/test_platform_compat_ci.py
|
|
|
312
327
|
tests/test_platform_utils.py
|
|
313
328
|
tests/test_plugin_base.py
|
|
314
329
|
tests/test_plugin_registry.py
|
|
330
|
+
tests/test_pr_review.py
|
|
315
331
|
tests/test_pr_review_workflow.py
|
|
316
332
|
tests/test_production_smoke.py
|
|
317
333
|
tests/test_progress.py
|
|
318
334
|
tests/test_prompt_engineering_wizard.py
|
|
319
335
|
tests/test_protocol_checker.py
|
|
320
336
|
tests/test_protocol_loader.py
|
|
337
|
+
tests/test_provider_config.py
|
|
321
338
|
tests/test_providers.py
|
|
322
339
|
tests/test_quality_analyzer.py
|
|
323
340
|
tests/test_redis_bootstrap.py
|
|
341
|
+
tests/test_redis_config.py
|
|
324
342
|
tests/test_redis_integration.py
|
|
325
343
|
tests/test_redis_memory.py
|
|
326
344
|
tests/test_refactor_golden.py
|
|
327
345
|
tests/test_refactor_plan_workflow.py
|
|
346
|
+
tests/test_refactoring.py
|
|
328
347
|
tests/test_refactoring_crew.py
|
|
348
|
+
tests/test_registry.py
|
|
349
|
+
tests/test_release_prep.py
|
|
350
|
+
tests/test_reporting.py
|
|
351
|
+
tests/test_reports.py
|
|
329
352
|
tests/test_resilience.py
|
|
353
|
+
tests/test_sbar_wizard.py
|
|
354
|
+
tests/test_scanner.py
|
|
330
355
|
tests/test_secrets_detector.py
|
|
331
356
|
tests/test_secure_memdocs.py
|
|
332
357
|
tests/test_secure_memdocs_extended.py
|
|
358
|
+
tests/test_secure_release.py
|
|
333
359
|
tests/test_secure_release_workflow.py
|
|
360
|
+
tests/test_security_audit.py
|
|
334
361
|
tests/test_security_audit_crew.py
|
|
335
362
|
tests/test_security_audit_workflow.py
|
|
336
363
|
tests/test_security_crew_integration.py
|
|
337
364
|
tests/test_security_integration.py
|
|
365
|
+
tests/test_security_learning_wizard.py
|
|
338
366
|
tests/test_security_negative_cases.py
|
|
339
367
|
tests/test_security_scan.py
|
|
340
368
|
tests/test_sensor_parsers.py
|
|
341
369
|
tests/test_session_status.py
|
|
370
|
+
tests/test_short_term.py
|
|
342
371
|
tests/test_smart_router.py
|
|
343
372
|
tests/test_software_cli.py
|
|
344
373
|
tests/test_software_integration.py
|
|
@@ -347,9 +376,12 @@ tests/test_software_plugin_cli.py
|
|
|
347
376
|
tests/test_state.py
|
|
348
377
|
tests/test_step_config.py
|
|
349
378
|
tests/test_summary_index.py
|
|
379
|
+
tests/test_sync_claude.py
|
|
380
|
+
tests/test_tech_debt_wizard.py
|
|
350
381
|
tests/test_telemetry.py
|
|
351
382
|
tests/test_templates.py
|
|
352
383
|
tests/test_test_suggester.py
|
|
384
|
+
tests/test_timeout.py
|
|
353
385
|
tests/test_token_estimator.py
|
|
354
386
|
tests/test_trajectory_analyzer.py
|
|
355
387
|
tests/test_trust_building.py
|
|
@@ -12,7 +12,7 @@ Licensed under Fair Source 0.9
|
|
|
12
12
|
|
|
13
13
|
from .core import EmpathyLLM
|
|
14
14
|
from .levels import EmpathyLevel
|
|
15
|
-
from .providers import AnthropicProvider, LocalProvider, OpenAIProvider
|
|
15
|
+
from .providers import AnthropicProvider, GeminiProvider, LocalProvider, OpenAIProvider
|
|
16
16
|
from .state import CollaborationState, UserPattern
|
|
17
17
|
|
|
18
18
|
__version__ = "1.9.5"
|
|
@@ -21,6 +21,7 @@ __all__ = [
|
|
|
21
21
|
"EmpathyLLM",
|
|
22
22
|
"OpenAIProvider",
|
|
23
23
|
"AnthropicProvider",
|
|
24
|
+
"GeminiProvider",
|
|
24
25
|
"LocalProvider",
|
|
25
26
|
"CollaborationState",
|
|
26
27
|
"UserPattern",
|
|
@@ -23,7 +23,13 @@ from empathy_os.memory import (
|
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
from .levels import EmpathyLevel
|
|
26
|
-
from .providers import
|
|
26
|
+
from .providers import (
|
|
27
|
+
AnthropicProvider,
|
|
28
|
+
BaseLLMProvider,
|
|
29
|
+
GeminiProvider,
|
|
30
|
+
LocalProvider,
|
|
31
|
+
OpenAIProvider,
|
|
32
|
+
)
|
|
27
33
|
from .routing import ModelRouter
|
|
28
34
|
from .state import CollaborationState, PatternType, UserPattern
|
|
29
35
|
|
|
@@ -218,6 +224,8 @@ class EmpathyLLM:
|
|
|
218
224
|
)
|
|
219
225
|
elif provider == "openai":
|
|
220
226
|
return OpenAIProvider(api_key=api_key, model=model or "gpt-4-turbo-preview", **kwargs)
|
|
227
|
+
elif provider in ("google", "gemini"):
|
|
228
|
+
return GeminiProvider(api_key=api_key, model=model or "gemini-1.5-pro", **kwargs)
|
|
221
229
|
elif provider == "local":
|
|
222
230
|
return LocalProvider(
|
|
223
231
|
endpoint=kwargs.get("endpoint", "http://localhost:11434"),
|
|
@@ -372,6 +372,183 @@ class OpenAIProvider(BaseLLMProvider):
|
|
|
372
372
|
)
|
|
373
373
|
|
|
374
374
|
|
|
375
|
+
class GeminiProvider(BaseLLMProvider):
|
|
376
|
+
"""
|
|
377
|
+
Google Gemini provider with cost tracking integration.
|
|
378
|
+
|
|
379
|
+
Supports Gemini models:
|
|
380
|
+
- gemini-2.0-flash-exp: Fast, cheap tier (1M context)
|
|
381
|
+
- gemini-1.5-pro: Balanced, capable tier (2M context)
|
|
382
|
+
- gemini-2.5-pro: Premium reasoning tier
|
|
383
|
+
"""
|
|
384
|
+
|
|
385
|
+
def __init__(
|
|
386
|
+
self,
|
|
387
|
+
api_key: str | None = None,
|
|
388
|
+
model: str = "gemini-1.5-pro",
|
|
389
|
+
**kwargs,
|
|
390
|
+
):
|
|
391
|
+
super().__init__(api_key, **kwargs)
|
|
392
|
+
self.model = model
|
|
393
|
+
|
|
394
|
+
# Validate API key is provided
|
|
395
|
+
if not api_key or not api_key.strip():
|
|
396
|
+
raise ValueError(
|
|
397
|
+
"API key is required for Gemini provider. "
|
|
398
|
+
"Provide via api_key parameter or GOOGLE_API_KEY environment variable"
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
# Lazy import to avoid requiring google-generativeai if not used
|
|
402
|
+
try:
|
|
403
|
+
import google.generativeai as genai
|
|
404
|
+
|
|
405
|
+
genai.configure(api_key=api_key)
|
|
406
|
+
self.genai = genai
|
|
407
|
+
self.client = genai.GenerativeModel(model)
|
|
408
|
+
except ImportError as e:
|
|
409
|
+
raise ImportError(
|
|
410
|
+
"google-generativeai package required. Install with: pip install google-generativeai"
|
|
411
|
+
) from e
|
|
412
|
+
|
|
413
|
+
async def generate(
|
|
414
|
+
self,
|
|
415
|
+
messages: list[dict[str, str]],
|
|
416
|
+
system_prompt: str | None = None,
|
|
417
|
+
temperature: float = 0.7,
|
|
418
|
+
max_tokens: int = 1024,
|
|
419
|
+
**kwargs,
|
|
420
|
+
) -> LLMResponse:
|
|
421
|
+
"""
|
|
422
|
+
Generate response using Google Gemini API.
|
|
423
|
+
|
|
424
|
+
Gemini-specific features:
|
|
425
|
+
- Large context windows (1M-2M tokens)
|
|
426
|
+
- Multimodal support
|
|
427
|
+
- Grounding with Google Search
|
|
428
|
+
"""
|
|
429
|
+
import asyncio
|
|
430
|
+
|
|
431
|
+
# Convert messages to Gemini format
|
|
432
|
+
gemini_messages = []
|
|
433
|
+
for msg in messages:
|
|
434
|
+
role = "user" if msg["role"] == "user" else "model"
|
|
435
|
+
gemini_messages.append({"role": role, "parts": [msg["content"]]})
|
|
436
|
+
|
|
437
|
+
# Build generation config
|
|
438
|
+
generation_config = self.genai.GenerationConfig(
|
|
439
|
+
temperature=temperature,
|
|
440
|
+
max_output_tokens=max_tokens,
|
|
441
|
+
)
|
|
442
|
+
|
|
443
|
+
# Create model with system instruction if provided
|
|
444
|
+
if system_prompt:
|
|
445
|
+
model = self.genai.GenerativeModel(
|
|
446
|
+
self.model,
|
|
447
|
+
system_instruction=system_prompt,
|
|
448
|
+
)
|
|
449
|
+
else:
|
|
450
|
+
model = self.client
|
|
451
|
+
|
|
452
|
+
# Call Gemini API (run sync in thread pool for async compatibility)
|
|
453
|
+
loop = asyncio.get_event_loop()
|
|
454
|
+
response = await loop.run_in_executor(
|
|
455
|
+
None,
|
|
456
|
+
lambda: model.generate_content(
|
|
457
|
+
gemini_messages,
|
|
458
|
+
generation_config=generation_config,
|
|
459
|
+
),
|
|
460
|
+
)
|
|
461
|
+
|
|
462
|
+
# Extract token counts from usage metadata
|
|
463
|
+
input_tokens = 0
|
|
464
|
+
output_tokens = 0
|
|
465
|
+
if hasattr(response, "usage_metadata"):
|
|
466
|
+
input_tokens = getattr(response.usage_metadata, "prompt_token_count", 0)
|
|
467
|
+
output_tokens = getattr(response.usage_metadata, "candidates_token_count", 0)
|
|
468
|
+
|
|
469
|
+
# Log to cost tracker
|
|
470
|
+
try:
|
|
471
|
+
from empathy_os.cost_tracker import log_request
|
|
472
|
+
|
|
473
|
+
tier = self._get_tier()
|
|
474
|
+
log_request(
|
|
475
|
+
model=self.model,
|
|
476
|
+
input_tokens=input_tokens,
|
|
477
|
+
output_tokens=output_tokens,
|
|
478
|
+
task_type=kwargs.get("task_type", "gemini_generate"),
|
|
479
|
+
tier=tier,
|
|
480
|
+
)
|
|
481
|
+
except ImportError:
|
|
482
|
+
pass # Cost tracking not available
|
|
483
|
+
|
|
484
|
+
# Convert to standardized format
|
|
485
|
+
content = ""
|
|
486
|
+
if response.candidates:
|
|
487
|
+
content = response.candidates[0].content.parts[0].text
|
|
488
|
+
|
|
489
|
+
finish_reason = "stop"
|
|
490
|
+
if response.candidates and hasattr(response.candidates[0], "finish_reason"):
|
|
491
|
+
finish_reason = str(response.candidates[0].finish_reason.name).lower()
|
|
492
|
+
|
|
493
|
+
return LLMResponse(
|
|
494
|
+
content=content,
|
|
495
|
+
model=self.model,
|
|
496
|
+
tokens_used=input_tokens + output_tokens,
|
|
497
|
+
finish_reason=finish_reason,
|
|
498
|
+
metadata={
|
|
499
|
+
"input_tokens": input_tokens,
|
|
500
|
+
"output_tokens": output_tokens,
|
|
501
|
+
"provider": "google",
|
|
502
|
+
"model_family": "gemini",
|
|
503
|
+
},
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
def _get_tier(self) -> str:
|
|
507
|
+
"""Determine tier from model name."""
|
|
508
|
+
if "flash" in self.model.lower():
|
|
509
|
+
return "cheap"
|
|
510
|
+
elif "2.5" in self.model or "ultra" in self.model.lower():
|
|
511
|
+
return "premium"
|
|
512
|
+
else:
|
|
513
|
+
return "capable"
|
|
514
|
+
|
|
515
|
+
def get_model_info(self) -> dict[str, Any]:
|
|
516
|
+
"""Get Gemini model information"""
|
|
517
|
+
model_info = {
|
|
518
|
+
"gemini-2.0-flash-exp": {
|
|
519
|
+
"max_tokens": 1000000,
|
|
520
|
+
"cost_per_1m_input": 0.075,
|
|
521
|
+
"cost_per_1m_output": 0.30,
|
|
522
|
+
"supports_vision": True,
|
|
523
|
+
"ideal_for": "Fast responses, simple tasks, large context",
|
|
524
|
+
},
|
|
525
|
+
"gemini-1.5-pro": {
|
|
526
|
+
"max_tokens": 2000000,
|
|
527
|
+
"cost_per_1m_input": 1.25,
|
|
528
|
+
"cost_per_1m_output": 5.00,
|
|
529
|
+
"supports_vision": True,
|
|
530
|
+
"ideal_for": "Complex reasoning, large codebases",
|
|
531
|
+
},
|
|
532
|
+
"gemini-2.5-pro": {
|
|
533
|
+
"max_tokens": 1000000,
|
|
534
|
+
"cost_per_1m_input": 2.50,
|
|
535
|
+
"cost_per_1m_output": 10.00,
|
|
536
|
+
"supports_vision": True,
|
|
537
|
+
"ideal_for": "Advanced reasoning, complex tasks",
|
|
538
|
+
},
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
return model_info.get(
|
|
542
|
+
self.model,
|
|
543
|
+
{
|
|
544
|
+
"max_tokens": 1000000,
|
|
545
|
+
"cost_per_1m_input": 1.25,
|
|
546
|
+
"cost_per_1m_output": 5.00,
|
|
547
|
+
"supports_vision": True,
|
|
548
|
+
},
|
|
549
|
+
)
|
|
550
|
+
|
|
551
|
+
|
|
375
552
|
class LocalProvider(BaseLLMProvider):
|
|
376
553
|
"""
|
|
377
554
|
Local model provider (Ollama, LM Studio, etc.).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "empathy-framework"
|
|
7
|
-
version = "3.5.
|
|
7
|
+
version = "3.5.5"
|
|
8
8
|
description = "AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration"
|
|
9
9
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -137,6 +137,9 @@ dev = [
|
|
|
137
137
|
"coverage>=7.0,<8.0",
|
|
138
138
|
"bandit>=1.7,<2.0",
|
|
139
139
|
"pre-commit>=3.0,<4.0",
|
|
140
|
+
# Test dependencies for API and integration tests
|
|
141
|
+
"httpx>=0.27.0,<1.0.0", # For API testing
|
|
142
|
+
"fastapi>=0.109.1,<1.0.0", # For wizard API tests
|
|
140
143
|
]
|
|
141
144
|
|
|
142
145
|
# Complete installation with Claude Code + MemDocs transformative stack
|
|
@@ -358,6 +361,7 @@ markers = [
|
|
|
358
361
|
"security: marks tests as security-focused",
|
|
359
362
|
"performance: marks tests as performance benchmarks",
|
|
360
363
|
"llm: marks tests that require LLM API access",
|
|
364
|
+
"network: marks tests that require network/internet access (skip in CI with '-m \"not network\"')",
|
|
361
365
|
]
|
|
362
366
|
filterwarnings = [
|
|
363
367
|
"ignore::DeprecationWarning",
|
|
@@ -391,6 +395,3 @@ exclude_lines = [
|
|
|
391
395
|
"class .*\\bProtocol\\):",
|
|
392
396
|
"@(abc\\.)?abstractmethod",
|
|
393
397
|
]
|
|
394
|
-
|
|
395
|
-
[tool.coverage.html]
|
|
396
|
-
directory = "htmlcov"
|