empathy-framework 2.4.0__py3-none-any.whl → 3.8.2__py3-none-any.whl
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.
- coach_wizards/__init__.py +13 -12
- coach_wizards/accessibility_wizard.py +12 -12
- coach_wizards/api_wizard.py +12 -12
- coach_wizards/base_wizard.py +26 -20
- coach_wizards/cicd_wizard.py +15 -13
- coach_wizards/code_reviewer_README.md +60 -0
- coach_wizards/code_reviewer_wizard.py +180 -0
- coach_wizards/compliance_wizard.py +12 -12
- coach_wizards/database_wizard.py +12 -12
- coach_wizards/debugging_wizard.py +12 -12
- coach_wizards/documentation_wizard.py +12 -12
- coach_wizards/generate_wizards.py +1 -2
- coach_wizards/localization_wizard.py +101 -19
- coach_wizards/migration_wizard.py +12 -12
- coach_wizards/monitoring_wizard.py +12 -12
- coach_wizards/observability_wizard.py +12 -12
- coach_wizards/performance_wizard.py +12 -12
- coach_wizards/prompt_engineering_wizard.py +661 -0
- coach_wizards/refactoring_wizard.py +12 -12
- coach_wizards/scaling_wizard.py +12 -12
- coach_wizards/security_wizard.py +12 -12
- coach_wizards/testing_wizard.py +12 -12
- empathy_framework-3.8.2.dist-info/METADATA +1176 -0
- empathy_framework-3.8.2.dist-info/RECORD +333 -0
- empathy_framework-3.8.2.dist-info/entry_points.txt +22 -0
- {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/top_level.txt +5 -1
- empathy_healthcare_plugin/__init__.py +1 -2
- empathy_healthcare_plugin/monitors/__init__.py +9 -0
- empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
- empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
- empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
- empathy_llm_toolkit/__init__.py +7 -7
- empathy_llm_toolkit/agent_factory/__init__.py +53 -0
- empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
- empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
- empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
- empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
- empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
- empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
- empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
- empathy_llm_toolkit/agent_factory/base.py +305 -0
- empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
- empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
- empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
- empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
- empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
- empathy_llm_toolkit/agent_factory/decorators.py +286 -0
- empathy_llm_toolkit/agent_factory/factory.py +558 -0
- empathy_llm_toolkit/agent_factory/framework.py +192 -0
- empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
- empathy_llm_toolkit/agent_factory/resilient.py +320 -0
- empathy_llm_toolkit/claude_memory.py +14 -15
- empathy_llm_toolkit/cli/__init__.py +8 -0
- empathy_llm_toolkit/cli/sync_claude.py +487 -0
- empathy_llm_toolkit/code_health.py +186 -28
- empathy_llm_toolkit/config/__init__.py +29 -0
- empathy_llm_toolkit/config/unified.py +295 -0
- empathy_llm_toolkit/contextual_patterns.py +11 -12
- empathy_llm_toolkit/core.py +168 -53
- empathy_llm_toolkit/git_pattern_extractor.py +17 -13
- empathy_llm_toolkit/levels.py +6 -13
- empathy_llm_toolkit/pattern_confidence.py +14 -18
- empathy_llm_toolkit/pattern_resolver.py +10 -12
- empathy_llm_toolkit/pattern_summary.py +16 -14
- empathy_llm_toolkit/providers.py +194 -28
- empathy_llm_toolkit/routing/__init__.py +32 -0
- empathy_llm_toolkit/routing/model_router.py +362 -0
- empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
- empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
- empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
- empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
- empathy_llm_toolkit/security/README.md +262 -0
- empathy_llm_toolkit/security/__init__.py +62 -0
- empathy_llm_toolkit/security/audit_logger.py +929 -0
- empathy_llm_toolkit/security/audit_logger_example.py +152 -0
- empathy_llm_toolkit/security/pii_scrubber.py +640 -0
- empathy_llm_toolkit/security/secrets_detector.py +678 -0
- empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
- empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
- empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
- empathy_llm_toolkit/session_status.py +20 -22
- empathy_llm_toolkit/state.py +28 -21
- empathy_llm_toolkit/wizards/__init__.py +38 -0
- empathy_llm_toolkit/wizards/base_wizard.py +364 -0
- empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
- empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
- empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
- empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
- empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
- empathy_os/__init__.py +125 -84
- empathy_os/adaptive/__init__.py +13 -0
- empathy_os/adaptive/task_complexity.py +127 -0
- empathy_os/{monitoring.py → agent_monitoring.py} +28 -28
- empathy_os/cache/__init__.py +117 -0
- empathy_os/cache/base.py +166 -0
- empathy_os/cache/dependency_manager.py +253 -0
- empathy_os/cache/hash_only.py +248 -0
- empathy_os/cache/hybrid.py +390 -0
- empathy_os/cache/storage.py +282 -0
- empathy_os/cli.py +1516 -70
- empathy_os/cli_unified.py +597 -0
- empathy_os/config/__init__.py +63 -0
- empathy_os/config/xml_config.py +239 -0
- empathy_os/config.py +95 -37
- empathy_os/coordination.py +72 -68
- empathy_os/core.py +94 -107
- empathy_os/cost_tracker.py +74 -55
- empathy_os/dashboard/__init__.py +15 -0
- empathy_os/dashboard/server.py +743 -0
- empathy_os/discovery.py +17 -14
- empathy_os/emergence.py +21 -22
- empathy_os/exceptions.py +18 -30
- empathy_os/feedback_loops.py +30 -33
- empathy_os/levels.py +32 -35
- empathy_os/leverage_points.py +31 -32
- empathy_os/logging_config.py +19 -16
- empathy_os/memory/__init__.py +195 -0
- empathy_os/memory/claude_memory.py +466 -0
- empathy_os/memory/config.py +224 -0
- empathy_os/memory/control_panel.py +1298 -0
- empathy_os/memory/edges.py +179 -0
- empathy_os/memory/graph.py +567 -0
- empathy_os/memory/long_term.py +1194 -0
- empathy_os/memory/nodes.py +179 -0
- empathy_os/memory/redis_bootstrap.py +540 -0
- empathy_os/memory/security/__init__.py +31 -0
- empathy_os/memory/security/audit_logger.py +930 -0
- empathy_os/memory/security/pii_scrubber.py +640 -0
- empathy_os/memory/security/secrets_detector.py +678 -0
- empathy_os/memory/short_term.py +2119 -0
- empathy_os/memory/storage/__init__.py +15 -0
- empathy_os/memory/summary_index.py +583 -0
- empathy_os/memory/unified.py +619 -0
- empathy_os/metrics/__init__.py +12 -0
- empathy_os/metrics/prompt_metrics.py +190 -0
- empathy_os/models/__init__.py +136 -0
- empathy_os/models/__main__.py +13 -0
- empathy_os/models/cli.py +655 -0
- empathy_os/models/empathy_executor.py +354 -0
- empathy_os/models/executor.py +252 -0
- empathy_os/models/fallback.py +671 -0
- empathy_os/models/provider_config.py +563 -0
- empathy_os/models/registry.py +382 -0
- empathy_os/models/tasks.py +302 -0
- empathy_os/models/telemetry.py +548 -0
- empathy_os/models/token_estimator.py +378 -0
- empathy_os/models/validation.py +274 -0
- empathy_os/monitoring/__init__.py +52 -0
- empathy_os/monitoring/alerts.py +23 -0
- empathy_os/monitoring/alerts_cli.py +268 -0
- empathy_os/monitoring/multi_backend.py +271 -0
- empathy_os/monitoring/otel_backend.py +363 -0
- empathy_os/optimization/__init__.py +19 -0
- empathy_os/optimization/context_optimizer.py +272 -0
- empathy_os/pattern_library.py +30 -29
- empathy_os/persistence.py +35 -37
- empathy_os/platform_utils.py +261 -0
- empathy_os/plugins/__init__.py +28 -0
- empathy_os/plugins/base.py +361 -0
- empathy_os/plugins/registry.py +268 -0
- empathy_os/project_index/__init__.py +30 -0
- empathy_os/project_index/cli.py +335 -0
- empathy_os/project_index/crew_integration.py +430 -0
- empathy_os/project_index/index.py +425 -0
- empathy_os/project_index/models.py +501 -0
- empathy_os/project_index/reports.py +473 -0
- empathy_os/project_index/scanner.py +538 -0
- empathy_os/prompts/__init__.py +61 -0
- empathy_os/prompts/config.py +77 -0
- empathy_os/prompts/context.py +177 -0
- empathy_os/prompts/parser.py +285 -0
- empathy_os/prompts/registry.py +313 -0
- empathy_os/prompts/templates.py +208 -0
- empathy_os/redis_config.py +144 -58
- empathy_os/redis_memory.py +79 -77
- empathy_os/resilience/__init__.py +56 -0
- empathy_os/resilience/circuit_breaker.py +256 -0
- empathy_os/resilience/fallback.py +179 -0
- empathy_os/resilience/health.py +300 -0
- empathy_os/resilience/retry.py +209 -0
- empathy_os/resilience/timeout.py +135 -0
- empathy_os/routing/__init__.py +43 -0
- empathy_os/routing/chain_executor.py +433 -0
- empathy_os/routing/classifier.py +217 -0
- empathy_os/routing/smart_router.py +234 -0
- empathy_os/routing/wizard_registry.py +307 -0
- empathy_os/templates.py +19 -14
- empathy_os/trust/__init__.py +28 -0
- empathy_os/trust/circuit_breaker.py +579 -0
- empathy_os/trust_building.py +67 -58
- empathy_os/validation/__init__.py +19 -0
- empathy_os/validation/xml_validator.py +281 -0
- empathy_os/wizard_factory_cli.py +170 -0
- empathy_os/{workflows.py → workflow_commands.py} +131 -37
- empathy_os/workflows/__init__.py +360 -0
- empathy_os/workflows/base.py +1660 -0
- empathy_os/workflows/bug_predict.py +962 -0
- empathy_os/workflows/code_review.py +960 -0
- empathy_os/workflows/code_review_adapters.py +310 -0
- empathy_os/workflows/code_review_pipeline.py +720 -0
- empathy_os/workflows/config.py +600 -0
- empathy_os/workflows/dependency_check.py +648 -0
- empathy_os/workflows/document_gen.py +1069 -0
- empathy_os/workflows/documentation_orchestrator.py +1205 -0
- empathy_os/workflows/health_check.py +679 -0
- empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
- empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
- empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
- empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
- empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
- empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
- empathy_os/workflows/manage_documentation.py +804 -0
- empathy_os/workflows/new_sample_workflow1.py +146 -0
- empathy_os/workflows/new_sample_workflow1_README.md +150 -0
- empathy_os/workflows/perf_audit.py +687 -0
- empathy_os/workflows/pr_review.py +748 -0
- empathy_os/workflows/progress.py +445 -0
- empathy_os/workflows/progress_server.py +322 -0
- empathy_os/workflows/refactor_plan.py +693 -0
- empathy_os/workflows/release_prep.py +808 -0
- empathy_os/workflows/research_synthesis.py +404 -0
- empathy_os/workflows/secure_release.py +585 -0
- empathy_os/workflows/security_adapters.py +297 -0
- empathy_os/workflows/security_audit.py +1046 -0
- empathy_os/workflows/step_config.py +234 -0
- empathy_os/workflows/test5.py +125 -0
- empathy_os/workflows/test5_README.md +158 -0
- empathy_os/workflows/test_gen.py +1855 -0
- empathy_os/workflows/test_lifecycle.py +526 -0
- empathy_os/workflows/test_maintenance.py +626 -0
- empathy_os/workflows/test_maintenance_cli.py +590 -0
- empathy_os/workflows/test_maintenance_crew.py +821 -0
- empathy_os/workflows/xml_enhanced_crew.py +285 -0
- empathy_software_plugin/__init__.py +1 -2
- empathy_software_plugin/cli/__init__.py +120 -0
- empathy_software_plugin/cli/inspect.py +362 -0
- empathy_software_plugin/cli.py +49 -27
- empathy_software_plugin/plugin.py +4 -8
- empathy_software_plugin/wizards/__init__.py +42 -0
- empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
- empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
- empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
- empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
- empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
- empathy_software_plugin/wizards/base_wizard.py +288 -0
- empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
- empathy_software_plugin/wizards/code_review_wizard.py +606 -0
- empathy_software_plugin/wizards/debugging/__init__.py +50 -0
- empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
- empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
- empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
- empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
- empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
- empathy_software_plugin/wizards/debugging/verification.py +369 -0
- empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
- empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
- empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
- empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
- empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
- empathy_software_plugin/wizards/performance/__init__.py +9 -0
- empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
- empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
- empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
- empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
- empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
- empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
- empathy_software_plugin/wizards/security/__init__.py +32 -0
- empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
- empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
- empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
- empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
- empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
- empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
- empathy_software_plugin/wizards/testing/__init__.py +27 -0
- empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
- empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
- empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
- empathy_software_plugin/wizards/testing_wizard.py +274 -0
- hot_reload/README.md +473 -0
- hot_reload/__init__.py +62 -0
- hot_reload/config.py +84 -0
- hot_reload/integration.py +228 -0
- hot_reload/reloader.py +298 -0
- hot_reload/watcher.py +179 -0
- hot_reload/websocket.py +176 -0
- scaffolding/README.md +589 -0
- scaffolding/__init__.py +35 -0
- scaffolding/__main__.py +14 -0
- scaffolding/cli.py +240 -0
- test_generator/__init__.py +38 -0
- test_generator/__main__.py +14 -0
- test_generator/cli.py +226 -0
- test_generator/generator.py +325 -0
- test_generator/risk_analyzer.py +216 -0
- workflow_patterns/__init__.py +33 -0
- workflow_patterns/behavior.py +249 -0
- workflow_patterns/core.py +76 -0
- workflow_patterns/output.py +99 -0
- workflow_patterns/registry.py +255 -0
- workflow_patterns/structural.py +288 -0
- workflow_scaffolding/__init__.py +11 -0
- workflow_scaffolding/__main__.py +12 -0
- workflow_scaffolding/cli.py +206 -0
- workflow_scaffolding/generator.py +265 -0
- agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
- agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
- agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
- agents/compliance_anticipation_agent.py +0 -1427
- agents/epic_integration_wizard.py +0 -541
- agents/trust_building_behaviors.py +0 -891
- empathy_framework-2.4.0.dist-info/METADATA +0 -485
- empathy_framework-2.4.0.dist-info/RECORD +0 -102
- empathy_framework-2.4.0.dist-info/entry_points.txt +0 -6
- empathy_llm_toolkit/htmlcov/status.json +0 -1
- empathy_llm_toolkit/security/htmlcov/status.json +0 -1
- {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
- {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1176 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: empathy-framework
|
|
3
|
+
Version: 3.8.2
|
|
4
|
+
Summary: AI collaboration framework with intelligent caching (up to 57% cache hit rate), tier routing (34-86% cost savings depending on task complexity), XML-enhanced prompts, persistent memory, CrewAI integration, and multi-agent orchestration. Includes HIPAA-compliant healthcare wizards.
|
|
5
|
+
Author-email: Patrick Roebuck <admin@smartaimemory.com>
|
|
6
|
+
Maintainer-email: Smart-AI-Memory <admin@smartaimemory.com>
|
|
7
|
+
License: # Fair Source License, version 0.9
|
|
8
|
+
|
|
9
|
+
**Copyright © 2025 Deep Study AI, LLC**
|
|
10
|
+
|
|
11
|
+
## Grant of Rights
|
|
12
|
+
|
|
13
|
+
**Licensor:** Deep Study AI, LLC
|
|
14
|
+
**Licensed Work:** Empathy
|
|
15
|
+
**Change Date:** January 1, 2029 (4 years from first release)
|
|
16
|
+
**Change License:** Apache License 2.0
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Terms
|
|
21
|
+
|
|
22
|
+
### Grant of Use
|
|
23
|
+
|
|
24
|
+
Subject to the conditions below, Licensor grants you a non-exclusive, worldwide, royalty-free license to:
|
|
25
|
+
|
|
26
|
+
- Use the Licensed Work
|
|
27
|
+
- Modify the Licensed Work
|
|
28
|
+
- Create derivative works
|
|
29
|
+
- Distribute copies (subject to restrictions)
|
|
30
|
+
|
|
31
|
+
### Usage Limits - Free Tier
|
|
32
|
+
|
|
33
|
+
You may use the Licensed Work **free of charge** if you meet ANY of these conditions:
|
|
34
|
+
|
|
35
|
+
1. **Educational Use:** You are a student or educator using the Licensed Work for educational purposes
|
|
36
|
+
2. **Small Business:** Your organization has **5 or fewer total employees**
|
|
37
|
+
3. **Personal/Research:** You are using the Licensed Work for personal projects or academic research
|
|
38
|
+
4. **Evaluation:** You are evaluating the Licensed Work for up to 30 days
|
|
39
|
+
|
|
40
|
+
### Usage Limits - Commercial License Required
|
|
41
|
+
|
|
42
|
+
A **Commercial License is REQUIRED** if:
|
|
43
|
+
|
|
44
|
+
1. Your organization has **6 or more employees**, AND
|
|
45
|
+
2. You are using the Licensed Work in a production environment, OR
|
|
46
|
+
3. You are using the Licensed Work to provide services to third parties
|
|
47
|
+
|
|
48
|
+
**Commercial License:** $99 USD per developer per year
|
|
49
|
+
|
|
50
|
+
- "Developer" means any employee, contractor, or agent who uses, modifies, or deploys the Licensed Work
|
|
51
|
+
- One license covers all environments (development, staging, production, CI/CD)
|
|
52
|
+
- License includes updates and support
|
|
53
|
+
- Purchase at: https://smartaimemory.com/empathy-framework/pricing
|
|
54
|
+
|
|
55
|
+
### Restrictions
|
|
56
|
+
|
|
57
|
+
You may NOT:
|
|
58
|
+
|
|
59
|
+
1. **Remove or modify** licensing, copyright notices, or attribution
|
|
60
|
+
2. **Circumvent** the usage limits or commercial license requirements
|
|
61
|
+
3. **Offer as a managed service** without a separate reseller agreement
|
|
62
|
+
4. **Sublicense, sell, or rent** the Licensed Work to third parties
|
|
63
|
+
5. **Use the Licensed Work** in violation of applicable laws
|
|
64
|
+
|
|
65
|
+
### Source Code Availability
|
|
66
|
+
|
|
67
|
+
The source code for the Licensed Work is available at:
|
|
68
|
+
https://github.com/Smart-AI-Memory/empathy
|
|
69
|
+
|
|
70
|
+
You may view, inspect, and audit the source code for:
|
|
71
|
+
- Security review
|
|
72
|
+
- Compliance verification
|
|
73
|
+
- Understanding implementation
|
|
74
|
+
- Creating derivative works (subject to this license)
|
|
75
|
+
|
|
76
|
+
### Attribution
|
|
77
|
+
|
|
78
|
+
If you distribute the Licensed Work or derivative works, you must:
|
|
79
|
+
|
|
80
|
+
1. Include this license file
|
|
81
|
+
2. Provide attribution to "Deep Study AI, LLC - Empathy"
|
|
82
|
+
3. Include a link to https://github.com/Smart-AI-Memory/empathy
|
|
83
|
+
|
|
84
|
+
### Warranty Disclaimer
|
|
85
|
+
|
|
86
|
+
THE LICENSED WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
87
|
+
|
|
88
|
+
### Liability Limitation
|
|
89
|
+
|
|
90
|
+
IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE LICENSED WORK.
|
|
91
|
+
|
|
92
|
+
### Change Date Conversion
|
|
93
|
+
|
|
94
|
+
On the Change Date (January 1, 2029), this license automatically converts to the Change License (Apache License 2.0), and all restrictions in this Fair Source License no longer apply.
|
|
95
|
+
|
|
96
|
+
**Rationale:** After 4 years, the Licensed Work becomes fully open source, allowing maximum community benefit while protecting Licensor's commercial interests during the critical growth period.
|
|
97
|
+
|
|
98
|
+
### Verification Rights
|
|
99
|
+
|
|
100
|
+
Licensor reserves the right to:
|
|
101
|
+
|
|
102
|
+
1. Request verification of compliance with usage limits
|
|
103
|
+
2. Audit use of the Licensed Work with reasonable notice
|
|
104
|
+
3. Terminate licenses for violations after 30-day cure period
|
|
105
|
+
|
|
106
|
+
### Commercial License Purchase
|
|
107
|
+
|
|
108
|
+
To purchase a Commercial License:
|
|
109
|
+
|
|
110
|
+
1. Visit: https://smartaimemory.com/empathy-framework/pricing
|
|
111
|
+
2. Email: admin@smartaimemory.com
|
|
112
|
+
3. Complete order form and payment
|
|
113
|
+
4. Receive license key and invoice
|
|
114
|
+
|
|
115
|
+
Volume discounts available for teams of 20+ developers.
|
|
116
|
+
|
|
117
|
+
### Definitions
|
|
118
|
+
|
|
119
|
+
- **Employee:** Any W-2 employee, 1099 contractor working >20 hours/week, or intern
|
|
120
|
+
- **Production Environment:** Any environment serving end users or customers
|
|
121
|
+
- **Developer:** Any person who uses, modifies, or deploys the Licensed Work
|
|
122
|
+
- **Organization:** The legal entity employing you, or yourself if self-employed
|
|
123
|
+
|
|
124
|
+
### Questions?
|
|
125
|
+
|
|
126
|
+
For licensing questions, contact: licensing@smartaimemory.com
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Why Fair Source?
|
|
131
|
+
|
|
132
|
+
This license balances:
|
|
133
|
+
|
|
134
|
+
✅ **Free for small teams** - Students, educators, and small businesses (≤5 employees) use free forever
|
|
135
|
+
✅ **Source code visibility** - Review code for security, compliance, learning
|
|
136
|
+
✅ **Commercial sustainability** - Larger organizations pay to fund development
|
|
137
|
+
✅ **Future open source** - Automatically becomes Apache 2.0 in 4 years
|
|
138
|
+
|
|
139
|
+
We believe software should be inspectable and accessible while ensuring sustainable development.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
**Version:** 0.9
|
|
144
|
+
**Last Updated:** November 7, 2025
|
|
145
|
+
**Effective Date:** January 1, 2025
|
|
146
|
+
|
|
147
|
+
Project-URL: Homepage, https://www.smartaimemory.com
|
|
148
|
+
Project-URL: Documentation, https://www.smartaimemory.com/framework-docs/
|
|
149
|
+
Project-URL: Getting Started, https://www.smartaimemory.com/framework-docs/tutorials/quickstart/
|
|
150
|
+
Project-URL: FAQ, https://www.smartaimemory.com/framework-docs/reference/FAQ/
|
|
151
|
+
Project-URL: Book, https://www.smartaimemory.com/book
|
|
152
|
+
Project-URL: Repository, https://github.com/Smart-AI-Memory/empathy-framework
|
|
153
|
+
Project-URL: Issues, https://github.com/Smart-AI-Memory/empathy-framework/issues
|
|
154
|
+
Project-URL: Discussions, https://github.com/Smart-AI-Memory/empathy-framework/discussions
|
|
155
|
+
Project-URL: Changelog, https://github.com/Smart-AI-Memory/empathy-framework/blob/main/CHANGELOG.md
|
|
156
|
+
Keywords: ai,collaboration,empathy,anticipatory-ai,systems-thinking,llm,claude,memdocs,level-5-ai,code-inspection,static-analysis,code-quality,sarif,github-actions,developer-tools
|
|
157
|
+
Classifier: Development Status :: 4 - Beta
|
|
158
|
+
Classifier: Intended Audience :: Developers
|
|
159
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
160
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
161
|
+
Classifier: Programming Language :: Python :: 3
|
|
162
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
163
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
164
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
165
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
166
|
+
Classifier: Operating System :: OS Independent
|
|
167
|
+
Requires-Python: >=3.10
|
|
168
|
+
Description-Content-Type: text/markdown
|
|
169
|
+
License-File: LICENSE
|
|
170
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
171
|
+
Requires-Dist: typing-extensions<5.0.0,>=4.0.0
|
|
172
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
173
|
+
Requires-Dist: structlog<25.0.0,>=23.0.0
|
|
174
|
+
Requires-Dist: defusedxml<1.0.0,>=0.7.0
|
|
175
|
+
Requires-Dist: rich<14.0.0,>=13.0.0
|
|
176
|
+
Requires-Dist: typer<1.0.0,>=0.9.0
|
|
177
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
|
178
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0
|
|
179
|
+
Requires-Dist: crewai<1.0.0,>=0.1.0
|
|
180
|
+
Requires-Dist: langchain<2.0.0,>=0.1.0
|
|
181
|
+
Requires-Dist: langchain-core<2.0.0,>=0.1.0
|
|
182
|
+
Provides-Extra: anthropic
|
|
183
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "anthropic"
|
|
184
|
+
Provides-Extra: openai
|
|
185
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "openai"
|
|
186
|
+
Provides-Extra: google
|
|
187
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "google"
|
|
188
|
+
Provides-Extra: llm
|
|
189
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "llm"
|
|
190
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "llm"
|
|
191
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "llm"
|
|
192
|
+
Provides-Extra: memdocs
|
|
193
|
+
Requires-Dist: memdocs>=1.0.0; extra == "memdocs"
|
|
194
|
+
Provides-Extra: agents
|
|
195
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "agents"
|
|
196
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "agents"
|
|
197
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "agents"
|
|
198
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "agents"
|
|
199
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "agents"
|
|
200
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "agents"
|
|
201
|
+
Provides-Extra: crewai
|
|
202
|
+
Requires-Dist: crewai<1.0.0,>=0.1.0; extra == "crewai"
|
|
203
|
+
Provides-Extra: cache
|
|
204
|
+
Requires-Dist: sentence-transformers<4.0.0,>=2.0.0; extra == "cache"
|
|
205
|
+
Requires-Dist: torch<3.0.0,>=2.0.0; extra == "cache"
|
|
206
|
+
Requires-Dist: numpy<3.0.0,>=1.24.0; extra == "cache"
|
|
207
|
+
Provides-Extra: healthcare
|
|
208
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "healthcare"
|
|
209
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "healthcare"
|
|
210
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "healthcare"
|
|
211
|
+
Requires-Dist: memdocs>=1.0.0; extra == "healthcare"
|
|
212
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "healthcare"
|
|
213
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "healthcare"
|
|
214
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "healthcare"
|
|
215
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "healthcare"
|
|
216
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "healthcare"
|
|
217
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "healthcare"
|
|
218
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "healthcare"
|
|
219
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "healthcare"
|
|
220
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "healthcare"
|
|
221
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "healthcare"
|
|
222
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "healthcare"
|
|
223
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "healthcare"
|
|
224
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "healthcare"
|
|
225
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "healthcare"
|
|
226
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "healthcare"
|
|
227
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "healthcare"
|
|
228
|
+
Requires-Dist: redis<6.0.0,>=5.0.0; extra == "healthcare"
|
|
229
|
+
Provides-Extra: software
|
|
230
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "software"
|
|
231
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "software"
|
|
232
|
+
Provides-Extra: backend
|
|
233
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "backend"
|
|
234
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "backend"
|
|
235
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "backend"
|
|
236
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "backend"
|
|
237
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "backend"
|
|
238
|
+
Provides-Extra: lsp
|
|
239
|
+
Requires-Dist: pygls<2.0.0,>=1.0.0; extra == "lsp"
|
|
240
|
+
Requires-Dist: lsprotocol<2024.0.0,>=2023.0.0; extra == "lsp"
|
|
241
|
+
Provides-Extra: windows
|
|
242
|
+
Requires-Dist: colorama<1.0.0,>=0.4.6; extra == "windows"
|
|
243
|
+
Provides-Extra: otel
|
|
244
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "otel"
|
|
245
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "otel"
|
|
246
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "otel"
|
|
247
|
+
Provides-Extra: docs
|
|
248
|
+
Requires-Dist: mkdocs<2.0.0,>=1.5.0; extra == "docs"
|
|
249
|
+
Requires-Dist: mkdocs-material<10.0.0,>=9.4.0; extra == "docs"
|
|
250
|
+
Requires-Dist: mkdocstrings[python]<1.0.0,>=0.24.0; extra == "docs"
|
|
251
|
+
Requires-Dist: mkdocs-with-pdf<1.0.0,>=0.9.3; extra == "docs"
|
|
252
|
+
Requires-Dist: pymdown-extensions<11.0,>=10.0; extra == "docs"
|
|
253
|
+
Provides-Extra: dev
|
|
254
|
+
Requires-Dist: pytest<9.0,>=7.0; extra == "dev"
|
|
255
|
+
Requires-Dist: pytest-asyncio<1.0,>=0.21; extra == "dev"
|
|
256
|
+
Requires-Dist: pytest-cov<5.0,>=4.0; extra == "dev"
|
|
257
|
+
Requires-Dist: black<26.0,>=24.3.0; extra == "dev"
|
|
258
|
+
Requires-Dist: mypy<2.0,>=1.0; extra == "dev"
|
|
259
|
+
Requires-Dist: ruff<1.0,>=0.1; extra == "dev"
|
|
260
|
+
Requires-Dist: coverage<8.0,>=7.0; extra == "dev"
|
|
261
|
+
Requires-Dist: bandit<2.0,>=1.7; extra == "dev"
|
|
262
|
+
Requires-Dist: pre-commit<4.0,>=3.0; extra == "dev"
|
|
263
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "dev"
|
|
264
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "dev"
|
|
265
|
+
Provides-Extra: developer
|
|
266
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "developer"
|
|
267
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "developer"
|
|
268
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "developer"
|
|
269
|
+
Requires-Dist: memdocs>=1.0.0; extra == "developer"
|
|
270
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "developer"
|
|
271
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "developer"
|
|
272
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "developer"
|
|
273
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "developer"
|
|
274
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "developer"
|
|
275
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "developer"
|
|
276
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "developer"
|
|
277
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "developer"
|
|
278
|
+
Provides-Extra: enterprise
|
|
279
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "enterprise"
|
|
280
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "enterprise"
|
|
281
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "enterprise"
|
|
282
|
+
Requires-Dist: memdocs>=1.0.0; extra == "enterprise"
|
|
283
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "enterprise"
|
|
284
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "enterprise"
|
|
285
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "enterprise"
|
|
286
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "enterprise"
|
|
287
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "enterprise"
|
|
288
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "enterprise"
|
|
289
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "enterprise"
|
|
290
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "enterprise"
|
|
291
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "enterprise"
|
|
292
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "enterprise"
|
|
293
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "enterprise"
|
|
294
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "enterprise"
|
|
295
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "enterprise"
|
|
296
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "enterprise"
|
|
297
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "enterprise"
|
|
298
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "enterprise"
|
|
299
|
+
Provides-Extra: full
|
|
300
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "full"
|
|
301
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "full"
|
|
302
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "full"
|
|
303
|
+
Requires-Dist: memdocs>=1.0.0; extra == "full"
|
|
304
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "full"
|
|
305
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "full"
|
|
306
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "full"
|
|
307
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "full"
|
|
308
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "full"
|
|
309
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "full"
|
|
310
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "full"
|
|
311
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "full"
|
|
312
|
+
Provides-Extra: all
|
|
313
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "all"
|
|
314
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "all"
|
|
315
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "all"
|
|
316
|
+
Requires-Dist: memdocs>=1.0.0; extra == "all"
|
|
317
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "all"
|
|
318
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "all"
|
|
319
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "all"
|
|
320
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "all"
|
|
321
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "all"
|
|
322
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "all"
|
|
323
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "all"
|
|
324
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "all"
|
|
325
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "all"
|
|
326
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "all"
|
|
327
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "all"
|
|
328
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "all"
|
|
329
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "all"
|
|
330
|
+
Requires-Dist: pygls<2.0.0,>=1.0.0; extra == "all"
|
|
331
|
+
Requires-Dist: lsprotocol<2024.0.0,>=2023.0.0; extra == "all"
|
|
332
|
+
Requires-Dist: colorama<1.0.0,>=0.4.6; extra == "all"
|
|
333
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "all"
|
|
334
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "all"
|
|
335
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "all"
|
|
336
|
+
Requires-Dist: mkdocs<2.0.0,>=1.5.0; extra == "all"
|
|
337
|
+
Requires-Dist: mkdocs-material<10.0.0,>=9.4.0; extra == "all"
|
|
338
|
+
Requires-Dist: mkdocstrings[python]<1.0.0,>=0.24.0; extra == "all"
|
|
339
|
+
Requires-Dist: mkdocs-with-pdf<1.0.0,>=0.9.3; extra == "all"
|
|
340
|
+
Requires-Dist: pymdown-extensions<11.0,>=10.0; extra == "all"
|
|
341
|
+
Requires-Dist: pytest<9.0,>=7.0; extra == "all"
|
|
342
|
+
Requires-Dist: pytest-asyncio<1.0,>=0.21; extra == "all"
|
|
343
|
+
Requires-Dist: pytest-cov<5.0,>=4.0; extra == "all"
|
|
344
|
+
Requires-Dist: black<26.0,>=24.3.0; extra == "all"
|
|
345
|
+
Requires-Dist: mypy<2.0,>=1.0; extra == "all"
|
|
346
|
+
Requires-Dist: ruff<1.0,>=0.1; extra == "all"
|
|
347
|
+
Requires-Dist: coverage<8.0,>=7.0; extra == "all"
|
|
348
|
+
Requires-Dist: bandit<2.0,>=1.7; extra == "all"
|
|
349
|
+
Requires-Dist: pre-commit<4.0,>=3.0; extra == "all"
|
|
350
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "all"
|
|
351
|
+
Requires-Dist: urllib3<3.0.0,>=2.3.0; extra == "all"
|
|
352
|
+
Requires-Dist: aiohttp<4.0.0,>=3.10.0; extra == "all"
|
|
353
|
+
Requires-Dist: filelock<4.0.0,>=3.16.0; extra == "all"
|
|
354
|
+
Dynamic: license-file
|
|
355
|
+
|
|
356
|
+
# Empathy Framework
|
|
357
|
+
|
|
358
|
+
**The AI collaboration framework that predicts problems before they happen.**
|
|
359
|
+
|
|
360
|
+
[](https://pypi.org/project/empathy-framework/)
|
|
361
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
362
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
363
|
+
[](LICENSE)
|
|
364
|
+
[](https://www.python.org)
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
pip install empathy-framework[developer] # Lightweight for individual developers
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## What's New in v3.8.0
|
|
371
|
+
|
|
372
|
+
### 🎯 **Transparent Cost Claims: Honest Role-Based Savings (34-86%)**
|
|
373
|
+
|
|
374
|
+
**Real savings depend on your work role.** Architects using 60% PREMIUM tasks see 34% savings, while junior devs see 86%. See [role-based analysis](docs/cost-analysis/COST_SAVINGS_BY_ROLE_AND_PROVIDER.md) for your specific case.
|
|
375
|
+
|
|
376
|
+
### 🚀 **Intelligent Response Caching: Up to 57% Hit Rate (Benchmarked)**
|
|
377
|
+
|
|
378
|
+
**Hash-only cache**: 100% hit rate on identical prompts, ~5μs lookups
|
|
379
|
+
**Hybrid cache**: Up to 57% hit rate on semantically similar prompts (measured on security audit workflow)
|
|
380
|
+
|
|
381
|
+
```python
|
|
382
|
+
from empathy_os.cache import create_cache
|
|
383
|
+
|
|
384
|
+
# Hash-only mode (fast, exact matches)
|
|
385
|
+
cache = create_cache(cache_type="hash")
|
|
386
|
+
|
|
387
|
+
# Hybrid mode (semantic similarity)
|
|
388
|
+
cache = create_cache(cache_type="hybrid", similarity_threshold=0.95)
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
See [caching docs](docs/caching/) for benchmarks and configuration.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
### Previous Release: v3.7.0
|
|
396
|
+
|
|
397
|
+
#### 🚀 **XML-Enhanced Prompting: 15-35% Token Reduction + Graceful Validation**
|
|
398
|
+
|
|
399
|
+
**Slash your API costs and eliminate response parsing errors with production-ready XML enhancements.**
|
|
400
|
+
|
|
401
|
+
#### Context Window Optimization — **Save 15-35% on Every Request**
|
|
402
|
+
|
|
403
|
+
```python
|
|
404
|
+
from empathy_os.optimization import ContextOptimizer, CompressionLevel
|
|
405
|
+
|
|
406
|
+
optimizer = ContextOptimizer(CompressionLevel.MODERATE)
|
|
407
|
+
optimized_prompt = optimizer.optimize(your_xml_prompt)
|
|
408
|
+
# Achieves 15-25% token reduction automatically
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
- **Tag compression**: `<thinking>` → `<t>`, `<answer>` → `<a>` (15+ common tags)
|
|
412
|
+
- **Whitespace optimization**: Removes excess whitespace while preserving structure
|
|
413
|
+
- **Redundancy elimination**: Strips "Please note that", "Make sure to", etc.
|
|
414
|
+
- **Real-world impact**: Integration tests achieved **49.7% reduction** on typical prompts
|
|
415
|
+
- **Bidirectional**: Full decompression to restore original tag names
|
|
416
|
+
|
|
417
|
+
#### XML Validation — **Never Crash on Malformed Responses Again**
|
|
418
|
+
|
|
419
|
+
```python
|
|
420
|
+
from empathy_os.validation import validate_xml_response
|
|
421
|
+
|
|
422
|
+
result = validate_xml_response(llm_response)
|
|
423
|
+
if result.is_valid:
|
|
424
|
+
data = result.parsed_data
|
|
425
|
+
else:
|
|
426
|
+
# Fallback extraction worked - you still get partial data
|
|
427
|
+
data = result.parsed_data or {}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
- **Graceful fallback parsing**: Regex extraction when XML is malformed
|
|
431
|
+
- **Optional XSD validation**: Full schema validation with lxml
|
|
432
|
+
- **Schema caching**: Performance optimization for repeated validations
|
|
433
|
+
- **25 comprehensive tests**: Covers edge cases, malformed input, and XSD validation
|
|
434
|
+
|
|
435
|
+
#### Migration Made Easy
|
|
436
|
+
|
|
437
|
+
See [XML_WORKFLOW_MIGRATION_GUIDE.md](XML_WORKFLOW_MIGRATION_GUIDE.md) for complete migration guide with:
|
|
438
|
+
|
|
439
|
+
- XMLAgent/XMLTask patterns with before/after examples
|
|
440
|
+
- Configuration options (`config.xml.use_xml_structure`)
|
|
441
|
+
- Benefits: **40-60% fewer misinterpretations**, **20-30% fewer retries**
|
|
442
|
+
|
|
443
|
+
**Test Coverage**: **229 new tests** (86 XML enhancement + 143 robustness) — **100% passing**
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## What's New in v3.6.0
|
|
448
|
+
|
|
449
|
+
### 💡 **Finally! Error Messages That Actually Help You**
|
|
450
|
+
|
|
451
|
+
**No more cryptic `NotImplementedError` when extending the framework!**
|
|
452
|
+
|
|
453
|
+
We completely rewrote error messages across **5 base classes**. Now when you're building plugins or extensions, you get:
|
|
454
|
+
|
|
455
|
+
✅ **Exactly which method** you need to implement
|
|
456
|
+
✅ **Which base class** to extend
|
|
457
|
+
✅ **Real working examples** from the codebase to copy
|
|
458
|
+
✅ **Clear explanations** of what each method should return
|
|
459
|
+
|
|
460
|
+
**Before** (frustrating 😤):
|
|
461
|
+
|
|
462
|
+
```python
|
|
463
|
+
NotImplementedError
|
|
464
|
+
# ...now what? Time to dig through source code for 30 minutes
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**After** (helpful 🎯):
|
|
468
|
+
|
|
469
|
+
```python
|
|
470
|
+
NotImplementedError: BaseLinterParser.parse() must be implemented.
|
|
471
|
+
Create a subclass of BaseLinterParser and implement the parse() method.
|
|
472
|
+
See ESLintParser, PylintParser, or MyPyParser for examples.
|
|
473
|
+
# Perfect! Now I know exactly what to do
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
#### Plus: 9 Integration TODOs Now Link to Working Code
|
|
477
|
+
|
|
478
|
+
- **Want to add compliance tracking?** → See `ComplianceDatabase` class (agents/compliance_db.py)
|
|
479
|
+
- **Need multi-channel notifications?** → See `NotificationService` class (agents/notifications.py)
|
|
480
|
+
- **Wondering about MemDocs integration?** → We documented why local cache works better (with rationale)
|
|
481
|
+
- **Need secure document storage?** → S3/Azure/SharePoint recommendations with HIPAA requirements
|
|
482
|
+
|
|
483
|
+
**Impact**: Onboard new contributors in **minutes instead of hours**. Build your first plugin in **one sitting**.
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
### 🔐 Production-Grade Security & Compliance
|
|
488
|
+
|
|
489
|
+
#### Secure Authentication System ✅ *Deployed in Backend API*
|
|
490
|
+
|
|
491
|
+
- **Bcrypt password hashing** with cost factor 12 (industry standard 2026)
|
|
492
|
+
- **JWT tokens** with 30-minute expiration and automatic refresh
|
|
493
|
+
- **Rate limiting**: 5 failed attempts = 15-minute lockout (prevents brute force)
|
|
494
|
+
- **18 comprehensive security tests** covering all attack vectors
|
|
495
|
+
- **Status**: Fully integrated into `backend/api/wizard_api.py`
|
|
496
|
+
|
|
497
|
+
#### HIPAA/GDPR Compliance Database 🛠️ *Infrastructure Ready*
|
|
498
|
+
|
|
499
|
+
- **Append-only architecture** (INSERT only, no UPDATE/DELETE) - satisfies regulators
|
|
500
|
+
- **Immutable audit trail** for healthcare and enterprise compliance
|
|
501
|
+
- **Compliance gap detection** with severity classification
|
|
502
|
+
- **12 tests** ensuring regulatory compliance
|
|
503
|
+
- **Status**: Production-ready code with [integration points documented](agents/compliance_db.py). See [compliance_anticipation_agent.py](agents/compliance_anticipation_agent.py) for usage examples.
|
|
504
|
+
|
|
505
|
+
#### Multi-Channel Notification System 🛠️ *Infrastructure Ready*
|
|
506
|
+
|
|
507
|
+
- **Email** (SMTP), **Slack** (webhooks), **SMS** (Twilio)
|
|
508
|
+
- **Graceful fallback** when channels unavailable
|
|
509
|
+
- **Smart routing**: SMS only for critical alerts (cost optimization)
|
|
510
|
+
- **10 tests** covering all notification scenarios
|
|
511
|
+
- **Status**: Production-ready code with [integration points documented](agents/notifications.py). See TODOs in compliance agent for usage examples.
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
### Previous: Project Indexing & Test Suite Expansion (v3.5.4)
|
|
516
|
+
|
|
517
|
+
- **Project Indexing System** — JSON-based file tracking with automatic structure scanning, metadata tracking, and CrewAI integration
|
|
518
|
+
- **5,603 Tests** — Comprehensive test coverage at 64% with 30+ new test modules
|
|
519
|
+
- **BaselineManager Fix** — Resolved test isolation bug affecting suppression system
|
|
520
|
+
|
|
521
|
+
### Memory API Security Hardening (v3.5.0)
|
|
522
|
+
|
|
523
|
+
- **Input Validation** — Pattern IDs, agent IDs, and classifications validated to prevent path traversal and injection attacks
|
|
524
|
+
- **API Key Authentication** — Bearer token and X-API-Key header support with SHA-256 hash comparison
|
|
525
|
+
- **Rate Limiting** — Per-IP sliding window rate limiting (100 req/min default)
|
|
526
|
+
- **HTTPS/TLS Support** — Optional SSL certificate configuration for encrypted connections
|
|
527
|
+
- **CORS Restrictions** — Configurable allowed origins (localhost-only by default)
|
|
528
|
+
- **Request Size Limits** — 1MB body limit to prevent DoS attacks
|
|
529
|
+
|
|
530
|
+
### Previous (v3.4.x)
|
|
531
|
+
|
|
532
|
+
- **Trust Circuit Breaker** — Automatic degradation when model reliability drops
|
|
533
|
+
- **Pattern Catalog System** — Searchable pattern library with similarity matching
|
|
534
|
+
- **Memory Control Panel** — VSCode sidebar for Redis and pattern management
|
|
535
|
+
|
|
536
|
+
### Previous (v3.3.x)
|
|
537
|
+
|
|
538
|
+
- **Formatted Reports** — Every workflow includes `formatted_report` with consistent structure
|
|
539
|
+
- **Enterprise-Safe Doc-Gen** — Auto-scaling tokens, cost guardrails, file export
|
|
540
|
+
- **Unified Typer CLI** — One `empathy` command with Rich output
|
|
541
|
+
- **Python 3.13 Support** — Test matrix covers 3.10-3.13 across all platforms
|
|
542
|
+
|
|
543
|
+
### Previous (v3.1.x)
|
|
544
|
+
|
|
545
|
+
- **Smart Router** — Natural language wizard dispatch: "Fix security in auth.py" → SecurityWizard
|
|
546
|
+
- **Memory Graph** — Cross-wizard knowledge sharing across sessions
|
|
547
|
+
- **Auto-Chaining** — Wizards automatically trigger related wizards
|
|
548
|
+
- **Resilience Patterns** — Retry, Circuit Breaker, Timeout, Health Checks
|
|
549
|
+
|
|
550
|
+
### Previous (v3.0.x)
|
|
551
|
+
|
|
552
|
+
- **Multi-Model Provider System** — Anthropic, OpenAI, Google Gemini, Ollama, or Hybrid mode
|
|
553
|
+
- **34-86% Cost Savings** — Smart tier routing varies by role: architects 34%, senior devs 65%, junior devs 86%*
|
|
554
|
+
- **VSCode Dashboard** — 10 integrated workflows with input history persistence
|
|
555
|
+
|
|
556
|
+
*See [Cost Savings Analysis](docs/cost-analysis/COST_SAVINGS_BY_ROLE_AND_PROVIDER.md) for your specific use case
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
## Quick Start (2 Minutes)
|
|
561
|
+
|
|
562
|
+
### 1. Install
|
|
563
|
+
|
|
564
|
+
**Individual Developers (Recommended):**
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
pip install empathy-framework[developer]
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
**Teams/Enterprises (Backend + Auth):**
|
|
571
|
+
|
|
572
|
+
```bash
|
|
573
|
+
pip install empathy-framework[enterprise]
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
**Healthcare Organizations (HIPAA/GDPR Compliance):**
|
|
577
|
+
|
|
578
|
+
```bash
|
|
579
|
+
pip install empathy-framework[healthcare]
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
<details>
|
|
583
|
+
<summary><b>What's the difference?</b></summary>
|
|
584
|
+
|
|
585
|
+
- **`[developer]`** - Lightweight install for individual developers. Includes CLI tools, VSCode extension, LLM providers, agents. **No backend server needed.**
|
|
586
|
+
|
|
587
|
+
- **`[enterprise]`** - Everything in `[developer]` plus backend API server with authentication (bcrypt, JWT, rate limiting). For teams deploying to production.
|
|
588
|
+
|
|
589
|
+
- **`[healthcare]`** - Everything in `[enterprise]` plus HIPAA/GDPR compliance database, redis, and healthcare-specific plugins. Only needed for regulated industries.
|
|
590
|
+
|
|
591
|
+
**Most developers should use `[developer]`** - it's fast to install and has everything you need for software development.
|
|
592
|
+
|
|
593
|
+
</details>
|
|
594
|
+
|
|
595
|
+
### 2. Configure Provider
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
# Auto-detect your API keys and configure
|
|
599
|
+
python -m empathy_os.models.cli provider
|
|
600
|
+
|
|
601
|
+
# Or set explicitly
|
|
602
|
+
python -m empathy_os.models.cli provider --set anthropic
|
|
603
|
+
python -m empathy_os.models.cli provider --set hybrid # Best of all providers
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### 3. Use It
|
|
607
|
+
|
|
608
|
+
```python
|
|
609
|
+
from empathy_os import EmpathyOS
|
|
610
|
+
|
|
611
|
+
os = EmpathyOS()
|
|
612
|
+
result = await os.collaborate(
|
|
613
|
+
"Review this code for security issues",
|
|
614
|
+
context={"code": your_code}
|
|
615
|
+
)
|
|
616
|
+
|
|
617
|
+
print(result.current_issues) # What's wrong now
|
|
618
|
+
print(result.predicted_issues) # What will break in 30-90 days
|
|
619
|
+
print(result.prevention_steps) # How to prevent it
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## Why Empathy?
|
|
625
|
+
|
|
626
|
+
| Feature | Empathy | SonarQube | GitHub Copilot |
|
|
627
|
+
|---------|---------|-----------|----------------|
|
|
628
|
+
| **Predicts future issues** | 30-90 days ahead | No | No |
|
|
629
|
+
| **Persistent memory** | Redis + patterns | No | No |
|
|
630
|
+
| **Multi-provider support** | Claude, GPT-4, Gemini, Ollama | N/A | GPT only |
|
|
631
|
+
| **Cost optimization** | 34-86% savings* | N/A | No |
|
|
632
|
+
| **Your data stays local** | Yes | Cloud | Cloud |
|
|
633
|
+
| **Free for small teams** | ≤5 employees | No | No |
|
|
634
|
+
|
|
635
|
+
---
|
|
636
|
+
|
|
637
|
+
## What's New in v3.8.0
|
|
638
|
+
|
|
639
|
+
### 🚀 **Intelligent Response Caching: Benchmarked Performance**
|
|
640
|
+
|
|
641
|
+
**Stop paying full price for repeated LLM calls. Measured results: up to 99.8% faster, 40% cost reduction on test generation, 57% cache hit rate on security audits.**
|
|
642
|
+
|
|
643
|
+
#### Hybrid Cache: Hash + Semantic Matching
|
|
644
|
+
|
|
645
|
+
```python
|
|
646
|
+
from empathy_os.workflows import SecurityAuditWorkflow
|
|
647
|
+
|
|
648
|
+
# That's it - caching auto-configured!
|
|
649
|
+
workflow = SecurityAuditWorkflow(enable_cache=True)
|
|
650
|
+
result = await workflow.execute(target_path="./src")
|
|
651
|
+
|
|
652
|
+
# Check savings
|
|
653
|
+
print(f"Cost: ${result.cost_report.total_cost:.4f}")
|
|
654
|
+
print(f"Cache hit rate: {result.cost_report.cache_hit_rate:.1f}%")
|
|
655
|
+
print(f"Savings: ${result.cost_report.savings_from_cache:.4f}")
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**Real Results** (v3.8.0 benchmark - see [CACHING_BENCHMARK_REPORT.md](CACHING_BENCHMARK_REPORT.md)):
|
|
659
|
+
|
|
660
|
+
- **Hash-only cache**: 30.3% average hit rate across 12 workflows, up to 99.8% faster (code review: 17.8s → 0.03s)
|
|
661
|
+
- **Hybrid cache**: Up to 57% hit rate on similar prompts (security audit - benchmarked)
|
|
662
|
+
- **Cost reduction**: 40% on test-generation workflow (measured)
|
|
663
|
+
|
|
664
|
+
#### Two Cache Strategies
|
|
665
|
+
|
|
666
|
+
**Hash-Only Cache** (Default - Zero Dependencies):
|
|
667
|
+
- Perfect for CI/CD and testing
|
|
668
|
+
- 100% hit rate on identical prompts
|
|
669
|
+
- ~5μs lookup time
|
|
670
|
+
- No ML dependencies needed
|
|
671
|
+
|
|
672
|
+
**Hybrid Cache** (Semantic Matching):
|
|
673
|
+
|
|
674
|
+
- Up to 57% hit rate on similar prompts (benchmarked)
|
|
675
|
+
- Understands intent, not just text
|
|
676
|
+
- Install: `pip install empathy-framework[cache]`
|
|
677
|
+
- Best for development and production
|
|
678
|
+
|
|
679
|
+
#### Automatic Setup
|
|
680
|
+
|
|
681
|
+
Framework detects your environment and configures optimal caching:
|
|
682
|
+
|
|
683
|
+
```python
|
|
684
|
+
# First run: Framework checks for sentence-transformers
|
|
685
|
+
# - Found? Uses hybrid cache (semantic matching, up to 57% hit rate)
|
|
686
|
+
# - Missing? Prompts: "Install for semantic matching? (y/n)"
|
|
687
|
+
# - Declined? Falls back to hash-only (100% hit rate on identical prompts)
|
|
688
|
+
# - Any errors? Disables gracefully, workflow continues
|
|
689
|
+
|
|
690
|
+
# Subsequent runs: Cache just works
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
#### The Caching Paradox: Adaptive Workflows
|
|
694
|
+
|
|
695
|
+
**Discovered during v3.8.0 development**: Some workflows (Security Audit, Bug Prediction) cost MORE on Run 2 with cache enabled - and that's a FEATURE.
|
|
696
|
+
|
|
697
|
+
**Why?** Adaptive workflows use cache to free up time for deeper analysis:
|
|
698
|
+
|
|
699
|
+
```
|
|
700
|
+
Security Audit without cache:
|
|
701
|
+
Run 1: $0.11, 45 seconds - surface scan finds 3 issues
|
|
702
|
+
|
|
703
|
+
Security Audit with cache:
|
|
704
|
+
Run 2: $0.13, 15 seconds - cache frees 30s for deep analysis
|
|
705
|
+
→ Uses saved time for PREMIUM tier vulnerability research
|
|
706
|
+
→ Finds 7 issues including critical SQLi we missed
|
|
707
|
+
→ Extra $0.02 cost = prevented security breach
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
**Result**: Cache makes workflows SMARTER, not just cheaper.
|
|
711
|
+
|
|
712
|
+
See [Adaptive Workflows Documentation](docs/caching/ADAPTIVE_WORKFLOWS.md) for full explanation.
|
|
713
|
+
|
|
714
|
+
#### Complete Documentation
|
|
715
|
+
|
|
716
|
+
- **[Quick Reference](docs/caching/QUICK_REFERENCE.md)** - Common scenarios, 1-page cheat sheet
|
|
717
|
+
- **[Configuration Guide](docs/caching/CONFIGURATION_GUIDE.md)** - All options, when to use each
|
|
718
|
+
- **[Adaptive Workflows](docs/caching/ADAPTIVE_WORKFLOWS.md)** - Why Run 2 can cost more (it's good!)
|
|
719
|
+
|
|
720
|
+
**Test it yourself**:
|
|
721
|
+
```bash
|
|
722
|
+
# Quick test (2-3 minutes)
|
|
723
|
+
python benchmark_caching_simple.py
|
|
724
|
+
|
|
725
|
+
# Full benchmark (15-20 minutes, all 12 workflows)
|
|
726
|
+
python benchmark_caching.py
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
---
|
|
730
|
+
|
|
731
|
+
## Become a Power User
|
|
732
|
+
|
|
733
|
+
### Level 1: Basic Usage
|
|
734
|
+
|
|
735
|
+
```bash
|
|
736
|
+
pip install empathy-framework[developer]
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
- Lightweight install with CLI tools, LLM providers, and agents
|
|
740
|
+
- Works out of the box with sensible defaults
|
|
741
|
+
- Auto-detects your API keys
|
|
742
|
+
|
|
743
|
+
### Level 2: Cost Optimization (Role-Based Savings)
|
|
744
|
+
|
|
745
|
+
**Tier routing automatically routes tasks to appropriate models, saving 34-86% depending on your work role.**
|
|
746
|
+
|
|
747
|
+
```bash
|
|
748
|
+
# Enable hybrid mode
|
|
749
|
+
python -m empathy_os.models.cli provider --set hybrid
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
#### Tier Pricing
|
|
753
|
+
|
|
754
|
+
| Tier | Model | Use Case | Cost per Task* |
|
|
755
|
+
|------|-------|----------|----------------|
|
|
756
|
+
| CHEAP | GPT-4o-mini / Haiku | Summarization, formatting, simple tasks | $0.0045-0.0075 |
|
|
757
|
+
| CAPABLE | GPT-4o / Sonnet | Bug fixing, code review, analysis | $0.0725-0.090 |
|
|
758
|
+
| PREMIUM | o1 / Opus | Architecture, complex decisions, design | $0.435-0.450 |
|
|
759
|
+
|
|
760
|
+
*Typical task: 5,000 input tokens, 1,000 output tokens
|
|
761
|
+
|
|
762
|
+
#### Actual Savings by Role
|
|
763
|
+
|
|
764
|
+
| Your Role | PREMIUM % | CAPABLE % | CHEAP % | Actual Savings | Notes |
|
|
765
|
+
|-----------|-----------|-----------|---------|----------------|-------|
|
|
766
|
+
| **Architect / Designer** | 60% | 30% | 10% | **34%** | Design work requires complex reasoning |
|
|
767
|
+
| **Senior Developer** | 25% | 50% | 25% | **65%** | Mix of architecture and implementation |
|
|
768
|
+
| **Mid-Level Developer** | 15% | 60% | 25% | **73%** | Mostly implementation and bug fixes |
|
|
769
|
+
| **Junior Developer** | 5% | 40% | 55% | **86%** | Simple features, tests, documentation |
|
|
770
|
+
| **QA Engineer** | 10% | 35% | 55% | **80%** | Test generation, reports, automation |
|
|
771
|
+
| **DevOps Engineer** | 20% | 50% | 30% | **69%** | Infrastructure planning + automation |
|
|
772
|
+
|
|
773
|
+
**See [Complete Cost Analysis](docs/cost-analysis/COST_SAVINGS_BY_ROLE_AND_PROVIDER.md) for provider comparisons (Anthropic vs OpenAI vs Ollama) and detailed calculations.**
|
|
774
|
+
|
|
775
|
+
### Level 3: Multi-Model Workflows
|
|
776
|
+
|
|
777
|
+
```python
|
|
778
|
+
from empathy_llm_toolkit import EmpathyLLM
|
|
779
|
+
|
|
780
|
+
llm = EmpathyLLM(provider="anthropic", enable_model_routing=True)
|
|
781
|
+
|
|
782
|
+
# Automatically routes to appropriate tier
|
|
783
|
+
await llm.interact(user_id="dev", user_input="Summarize this", task_type="summarize") # → Haiku
|
|
784
|
+
await llm.interact(user_id="dev", user_input="Fix this bug", task_type="fix_bug") # → Sonnet
|
|
785
|
+
await llm.interact(user_id="dev", user_input="Design system", task_type="coordinate") # → Opus
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
### Level 4: VSCode Integration
|
|
789
|
+
|
|
790
|
+
Install the Empathy VSCode extension for:
|
|
791
|
+
|
|
792
|
+
- **Real-time Dashboard** — Health score, costs, patterns
|
|
793
|
+
- **One-Click Workflows** — Research, code review, debugging
|
|
794
|
+
- **Visual Cost Tracking** — See savings in real-time
|
|
795
|
+
- See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
|
|
796
|
+
- **Memory Control Panel (Beta)** — Manage Redis and pattern storage
|
|
797
|
+
- View Redis status and memory usage
|
|
798
|
+
- Browse and export stored patterns
|
|
799
|
+
- Run system health checks
|
|
800
|
+
- Configure auto-start in `empathy.config.yml`
|
|
801
|
+
|
|
802
|
+
```yaml
|
|
803
|
+
memory:
|
|
804
|
+
enabled: true
|
|
805
|
+
auto_start_redis: true
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
### Level 5: Custom Agents
|
|
809
|
+
|
|
810
|
+
```python
|
|
811
|
+
from empathy_os.agents import AgentFactory
|
|
812
|
+
|
|
813
|
+
# Create domain-specific agents with inherited memory
|
|
814
|
+
security_agent = AgentFactory.create(
|
|
815
|
+
domain="security",
|
|
816
|
+
memory_enabled=True,
|
|
817
|
+
anticipation_level=4
|
|
818
|
+
)
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
---
|
|
822
|
+
|
|
823
|
+
## CLI Reference
|
|
824
|
+
|
|
825
|
+
### Provider Configuration
|
|
826
|
+
|
|
827
|
+
```bash
|
|
828
|
+
python -m empathy_os.models.cli provider # Show current config
|
|
829
|
+
python -m empathy_os.models.cli provider --set anthropic # Single provider
|
|
830
|
+
python -m empathy_os.models.cli provider --set hybrid # Best-of-breed
|
|
831
|
+
python -m empathy_os.models.cli provider --interactive # Setup wizard
|
|
832
|
+
python -m empathy_os.models.cli provider -f json # JSON output
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
### Model Registry
|
|
836
|
+
|
|
837
|
+
```bash
|
|
838
|
+
python -m empathy_os.models.cli registry # Show all models
|
|
839
|
+
python -m empathy_os.models.cli registry --provider openai # Filter by provider
|
|
840
|
+
python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
### Telemetry & Analytics
|
|
844
|
+
|
|
845
|
+
```bash
|
|
846
|
+
python -m empathy_os.models.cli telemetry # Summary
|
|
847
|
+
python -m empathy_os.models.cli telemetry --costs # Cost savings report
|
|
848
|
+
python -m empathy_os.models.cli telemetry --providers # Provider usage
|
|
849
|
+
python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
|
|
850
|
+
```
|
|
851
|
+
|
|
852
|
+
### Memory Control
|
|
853
|
+
|
|
854
|
+
```bash
|
|
855
|
+
empathy-memory serve # Start Redis + API server
|
|
856
|
+
empathy-memory status # Check system status
|
|
857
|
+
empathy-memory stats # View statistics
|
|
858
|
+
empathy-memory patterns # List stored patterns
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
### Code Inspection
|
|
862
|
+
|
|
863
|
+
```bash
|
|
864
|
+
empathy-inspect . # Run full inspection
|
|
865
|
+
empathy-inspect . --format sarif # GitHub Actions format
|
|
866
|
+
empathy-inspect . --fix # Auto-fix safe issues
|
|
867
|
+
empathy-inspect . --staged # Only staged changes
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
---
|
|
871
|
+
|
|
872
|
+
## XML-Enhanced Prompts
|
|
873
|
+
|
|
874
|
+
Enable structured XML prompts for consistent, parseable LLM responses:
|
|
875
|
+
|
|
876
|
+
```yaml
|
|
877
|
+
# .empathy/workflows.yaml
|
|
878
|
+
xml_prompt_defaults:
|
|
879
|
+
enabled: false # Set true to enable globally
|
|
880
|
+
|
|
881
|
+
workflow_xml_configs:
|
|
882
|
+
security-audit:
|
|
883
|
+
enabled: true
|
|
884
|
+
enforce_response_xml: true
|
|
885
|
+
template_name: "security-audit"
|
|
886
|
+
code-review:
|
|
887
|
+
enabled: true
|
|
888
|
+
template_name: "code-review"
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
Built-in templates: `security-audit`, `code-review`, `research`, `bug-analysis`, `perf-audit`, `refactor-plan`, `test-gen`, `doc-gen`, `release-prep`, `dependency-check`
|
|
892
|
+
|
|
893
|
+
```python
|
|
894
|
+
from empathy_os.prompts import get_template, XmlResponseParser, PromptContext
|
|
895
|
+
|
|
896
|
+
# Use a built-in template
|
|
897
|
+
template = get_template("security-audit")
|
|
898
|
+
context = PromptContext.for_security_audit(code="def foo(): pass")
|
|
899
|
+
prompt = template.render(context)
|
|
900
|
+
|
|
901
|
+
# Parse XML responses
|
|
902
|
+
parser = XmlResponseParser(fallback_on_error=True)
|
|
903
|
+
result = parser.parse(llm_response)
|
|
904
|
+
print(result.summary, result.findings, result.checklist)
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
---
|
|
908
|
+
|
|
909
|
+
## Enterprise Doc-Gen
|
|
910
|
+
|
|
911
|
+
Generate comprehensive documentation for large projects with enterprise-safe defaults:
|
|
912
|
+
|
|
913
|
+
```python
|
|
914
|
+
from empathy_os.workflows import DocumentGenerationWorkflow
|
|
915
|
+
|
|
916
|
+
# Enterprise-safe configuration
|
|
917
|
+
workflow = DocumentGenerationWorkflow(
|
|
918
|
+
export_path="docs/generated", # Auto-save to disk
|
|
919
|
+
max_cost=5.0, # Cost guardrail ($5 default)
|
|
920
|
+
chunked_generation=True, # Handle large projects
|
|
921
|
+
graceful_degradation=True, # Partial results on errors
|
|
922
|
+
)
|
|
923
|
+
|
|
924
|
+
result = await workflow.execute(
|
|
925
|
+
source_code=your_code,
|
|
926
|
+
doc_type="api_reference",
|
|
927
|
+
audience="developers"
|
|
928
|
+
)
|
|
929
|
+
|
|
930
|
+
# Access the formatted report
|
|
931
|
+
print(result.final_output["formatted_report"])
|
|
932
|
+
|
|
933
|
+
# Large outputs are chunked for display
|
|
934
|
+
if "output_chunks" in result.final_output:
|
|
935
|
+
for chunk in result.final_output["output_chunks"]:
|
|
936
|
+
print(chunk)
|
|
937
|
+
|
|
938
|
+
# Full docs saved to disk
|
|
939
|
+
print(f"Saved to: {result.final_output.get('export_path')}")
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
---
|
|
943
|
+
|
|
944
|
+
## Smart Router
|
|
945
|
+
|
|
946
|
+
Route natural language requests to the right wizard automatically:
|
|
947
|
+
|
|
948
|
+
```python
|
|
949
|
+
from empathy_os.routing import SmartRouter
|
|
950
|
+
|
|
951
|
+
router = SmartRouter()
|
|
952
|
+
|
|
953
|
+
# Natural language routing
|
|
954
|
+
decision = router.route_sync("Fix the security vulnerability in auth.py")
|
|
955
|
+
print(f"Primary: {decision.primary_wizard}") # → security-audit
|
|
956
|
+
print(f"Also consider: {decision.secondary_wizards}") # → [code-review]
|
|
957
|
+
print(f"Confidence: {decision.confidence}")
|
|
958
|
+
|
|
959
|
+
# File-based suggestions
|
|
960
|
+
suggestions = router.suggest_for_file("requirements.txt") # → [dependency-check]
|
|
961
|
+
|
|
962
|
+
# Error-based suggestions
|
|
963
|
+
suggestions = router.suggest_for_error("NullReferenceException") # → [bug-predict, test-gen]
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
---
|
|
967
|
+
|
|
968
|
+
## Memory Graph
|
|
969
|
+
|
|
970
|
+
Cross-wizard knowledge sharing - wizards learn from each other:
|
|
971
|
+
|
|
972
|
+
```python
|
|
973
|
+
from empathy_os.memory import MemoryGraph, EdgeType
|
|
974
|
+
|
|
975
|
+
graph = MemoryGraph()
|
|
976
|
+
|
|
977
|
+
# Add findings from any wizard
|
|
978
|
+
bug_id = graph.add_finding(
|
|
979
|
+
wizard="bug-predict",
|
|
980
|
+
finding={
|
|
981
|
+
"type": "bug",
|
|
982
|
+
"name": "Null reference in auth.py:42",
|
|
983
|
+
"severity": "high"
|
|
984
|
+
}
|
|
985
|
+
)
|
|
986
|
+
|
|
987
|
+
# Connect related findings
|
|
988
|
+
fix_id = graph.add_finding(wizard="code-review", finding={"type": "fix", "name": "Add null check"})
|
|
989
|
+
graph.add_edge(bug_id, fix_id, EdgeType.FIXED_BY)
|
|
990
|
+
|
|
991
|
+
# Find similar past issues
|
|
992
|
+
similar = graph.find_similar({"name": "Null reference error"})
|
|
993
|
+
|
|
994
|
+
# Traverse relationships
|
|
995
|
+
related_fixes = graph.find_related(bug_id, edge_types=[EdgeType.FIXED_BY])
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
---
|
|
999
|
+
|
|
1000
|
+
## Auto-Chaining
|
|
1001
|
+
|
|
1002
|
+
Wizards automatically trigger related wizards based on findings:
|
|
1003
|
+
|
|
1004
|
+
```yaml
|
|
1005
|
+
# .empathy/wizard_chains.yaml
|
|
1006
|
+
chains:
|
|
1007
|
+
security-audit:
|
|
1008
|
+
auto_chain: true
|
|
1009
|
+
triggers:
|
|
1010
|
+
- condition: "high_severity_count > 0"
|
|
1011
|
+
next: dependency-check
|
|
1012
|
+
approval_required: false
|
|
1013
|
+
- condition: "vulnerability_type == 'injection'"
|
|
1014
|
+
next: code-review
|
|
1015
|
+
approval_required: true
|
|
1016
|
+
|
|
1017
|
+
bug-predict:
|
|
1018
|
+
triggers:
|
|
1019
|
+
- condition: "risk_score > 0.7"
|
|
1020
|
+
next: test-gen
|
|
1021
|
+
|
|
1022
|
+
templates:
|
|
1023
|
+
full-security-review:
|
|
1024
|
+
steps: [security-audit, dependency-check, code-review]
|
|
1025
|
+
pre-release:
|
|
1026
|
+
steps: [test-gen, security-audit, release-prep]
|
|
1027
|
+
```
|
|
1028
|
+
|
|
1029
|
+
```python
|
|
1030
|
+
from empathy_os.routing import ChainExecutor
|
|
1031
|
+
|
|
1032
|
+
executor = ChainExecutor()
|
|
1033
|
+
|
|
1034
|
+
# Check what chains would trigger
|
|
1035
|
+
result = {"high_severity_count": 5}
|
|
1036
|
+
triggers = executor.get_triggered_chains("security-audit", result)
|
|
1037
|
+
# → [ChainTrigger(next="dependency-check"), ...]
|
|
1038
|
+
|
|
1039
|
+
# Execute a template
|
|
1040
|
+
template = executor.get_template("full-security-review")
|
|
1041
|
+
# → ["security-audit", "dependency-check", "code-review"]
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
---
|
|
1045
|
+
|
|
1046
|
+
## Prompt Engineering Wizard
|
|
1047
|
+
|
|
1048
|
+
Analyze, generate, and optimize prompts:
|
|
1049
|
+
|
|
1050
|
+
```python
|
|
1051
|
+
from coach_wizards import PromptEngineeringWizard
|
|
1052
|
+
|
|
1053
|
+
wizard = PromptEngineeringWizard()
|
|
1054
|
+
|
|
1055
|
+
# Analyze existing prompts
|
|
1056
|
+
analysis = wizard.analyze_prompt("Fix this bug")
|
|
1057
|
+
print(f"Score: {analysis.overall_score}") # → 0.13 (poor)
|
|
1058
|
+
print(f"Issues: {analysis.issues}") # → ["Missing role", "No output format"]
|
|
1059
|
+
|
|
1060
|
+
# Generate optimized prompts
|
|
1061
|
+
prompt = wizard.generate_prompt(
|
|
1062
|
+
task="Review code for security vulnerabilities",
|
|
1063
|
+
role="a senior security engineer",
|
|
1064
|
+
constraints=["Focus on OWASP top 10"],
|
|
1065
|
+
output_format="JSON with severity and recommendation"
|
|
1066
|
+
)
|
|
1067
|
+
|
|
1068
|
+
# Optimize tokens (reduce costs)
|
|
1069
|
+
result = wizard.optimize_tokens(verbose_prompt)
|
|
1070
|
+
print(f"Reduced: {result.token_reduction:.0%}") # → 20% reduction
|
|
1071
|
+
|
|
1072
|
+
# Add chain-of-thought scaffolding
|
|
1073
|
+
enhanced = wizard.add_chain_of_thought(prompt, "debug")
|
|
1074
|
+
```
|
|
1075
|
+
|
|
1076
|
+
---
|
|
1077
|
+
|
|
1078
|
+
## Install Options
|
|
1079
|
+
|
|
1080
|
+
```bash
|
|
1081
|
+
# Recommended (all features)
|
|
1082
|
+
pip install empathy-framework[full]
|
|
1083
|
+
|
|
1084
|
+
# Minimal
|
|
1085
|
+
pip install empathy-framework
|
|
1086
|
+
|
|
1087
|
+
# Specific providers
|
|
1088
|
+
pip install empathy-framework[anthropic] # Claude
|
|
1089
|
+
pip install empathy-framework[openai] # GPT-4, Ollama (OpenAI-compatible)
|
|
1090
|
+
pip install empathy-framework[google] # Gemini
|
|
1091
|
+
pip install empathy-framework[llm] # All providers
|
|
1092
|
+
|
|
1093
|
+
# Development
|
|
1094
|
+
git clone https://github.com/Smart-AI-Memory/empathy-framework.git
|
|
1095
|
+
cd empathy-framework && pip install -e .[dev]
|
|
1096
|
+
```
|
|
1097
|
+
|
|
1098
|
+
---
|
|
1099
|
+
|
|
1100
|
+
## What's Included
|
|
1101
|
+
|
|
1102
|
+
| Component | Description |
|
|
1103
|
+
|-----------|-------------|
|
|
1104
|
+
| **Empathy OS** | Core engine for human↔AI and AI↔AI collaboration |
|
|
1105
|
+
| **Smart Router** | Natural language wizard dispatch with LLM classification |
|
|
1106
|
+
| **Memory Graph** | Cross-wizard knowledge sharing (bugs, fixes, patterns) |
|
|
1107
|
+
| **Auto-Chaining** | Wizards trigger related wizards based on findings |
|
|
1108
|
+
| **Multi-Model Router** | Smart routing across providers and tiers |
|
|
1109
|
+
| **Memory System** | Redis short-term + encrypted long-term patterns |
|
|
1110
|
+
| **17 Coach Wizards** | Security, performance, testing, docs, prompt engineering |
|
|
1111
|
+
| **10 Cost-Optimized Workflows** | Multi-tier pipelines with formatted reports & XML prompts |
|
|
1112
|
+
| **Healthcare Suite** | SBAR, SOAP notes, clinical protocols (HIPAA) |
|
|
1113
|
+
| **Code Inspection** | Unified pipeline with SARIF/GitHub Actions support |
|
|
1114
|
+
| **VSCode Extension** | Visual dashboard for memory and workflows |
|
|
1115
|
+
| **Telemetry & Analytics** | Cost tracking, usage stats, optimization insights |
|
|
1116
|
+
|
|
1117
|
+
---
|
|
1118
|
+
|
|
1119
|
+
## The 5 Levels of AI Empathy
|
|
1120
|
+
|
|
1121
|
+
| Level | Name | Behavior | Example |
|
|
1122
|
+
|-------|------|----------|---------|
|
|
1123
|
+
| 1 | Reactive | Responds when asked | "Here's the data you requested" |
|
|
1124
|
+
| 2 | Guided | Asks clarifying questions | "What format do you need?" |
|
|
1125
|
+
| 3 | Proactive | Notices patterns | "I pre-fetched what you usually need" |
|
|
1126
|
+
| **4** | **Anticipatory** | **Predicts future needs** | **"This query will timeout at 10k users"** |
|
|
1127
|
+
| 5 | Transformative | Builds preventing structures | "Here's a framework for all future cases" |
|
|
1128
|
+
|
|
1129
|
+
**Empathy operates at Level 4** — predicting problems before they manifest.
|
|
1130
|
+
|
|
1131
|
+
---
|
|
1132
|
+
|
|
1133
|
+
## Environment Setup
|
|
1134
|
+
|
|
1135
|
+
```bash
|
|
1136
|
+
# Required: At least one provider
|
|
1137
|
+
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
|
|
1138
|
+
export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
|
|
1139
|
+
export GOOGLE_API_KEY="..." # For Gemini models # pragma: allowlist secret
|
|
1140
|
+
|
|
1141
|
+
# Optional: Redis for memory
|
|
1142
|
+
export REDIS_URL="redis://localhost:6379"
|
|
1143
|
+
|
|
1144
|
+
# Or use a .env file (auto-detected)
|
|
1145
|
+
echo 'ANTHROPIC_API_KEY=sk-ant-...' >> .env
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
---
|
|
1149
|
+
|
|
1150
|
+
## Get Involved
|
|
1151
|
+
|
|
1152
|
+
- **[Star this repo](https://github.com/Smart-AI-Memory/empathy-framework)** if you find it useful
|
|
1153
|
+
- **[Join Discussions](https://github.com/Smart-AI-Memory/empathy-framework/discussions)** — Questions, ideas, show what you built
|
|
1154
|
+
- **[Read the Book](https://smartaimemory.com/book)** — Deep dive into the philosophy
|
|
1155
|
+
- **[Full Documentation](https://smartaimemory.com/framework-docs/)** — API reference, examples, guides
|
|
1156
|
+
|
|
1157
|
+
---
|
|
1158
|
+
|
|
1159
|
+
## Project Evolution
|
|
1160
|
+
|
|
1161
|
+
For those interested in the development history and architectural decisions:
|
|
1162
|
+
|
|
1163
|
+
- **[Development Logs](docs/development-logs/)** — Execution plans, phase completions, and progress tracking
|
|
1164
|
+
- **[Architecture Docs](docs/architecture/)** — System design, memory architecture, and integration plans
|
|
1165
|
+
- **[Marketing Materials](docs/marketing/)** — Pitch decks, outreach templates, and commercial readiness
|
|
1166
|
+
- **[Guides](docs/guides/)** — Publishing tutorials, MkDocs setup, and distribution policies
|
|
1167
|
+
|
|
1168
|
+
---
|
|
1169
|
+
|
|
1170
|
+
## License
|
|
1171
|
+
|
|
1172
|
+
**Fair Source License 0.9** — Free for students, educators, and teams ≤5 employees. Commercial license ($99/dev/year) for larger organizations. [Details →](LICENSE)
|
|
1173
|
+
|
|
1174
|
+
---
|
|
1175
|
+
|
|
1176
|
+
**Built by [Smart AI Memory](https://smartaimemory.com)** · [Documentation](https://smartaimemory.com/framework-docs/) · [Examples](examples/) · [Issues](https://github.com/Smart-AI-Memory/empathy-framework/issues)
|