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.
Files changed (329) hide show
  1. coach_wizards/__init__.py +13 -12
  2. coach_wizards/accessibility_wizard.py +12 -12
  3. coach_wizards/api_wizard.py +12 -12
  4. coach_wizards/base_wizard.py +26 -20
  5. coach_wizards/cicd_wizard.py +15 -13
  6. coach_wizards/code_reviewer_README.md +60 -0
  7. coach_wizards/code_reviewer_wizard.py +180 -0
  8. coach_wizards/compliance_wizard.py +12 -12
  9. coach_wizards/database_wizard.py +12 -12
  10. coach_wizards/debugging_wizard.py +12 -12
  11. coach_wizards/documentation_wizard.py +12 -12
  12. coach_wizards/generate_wizards.py +1 -2
  13. coach_wizards/localization_wizard.py +101 -19
  14. coach_wizards/migration_wizard.py +12 -12
  15. coach_wizards/monitoring_wizard.py +12 -12
  16. coach_wizards/observability_wizard.py +12 -12
  17. coach_wizards/performance_wizard.py +12 -12
  18. coach_wizards/prompt_engineering_wizard.py +661 -0
  19. coach_wizards/refactoring_wizard.py +12 -12
  20. coach_wizards/scaling_wizard.py +12 -12
  21. coach_wizards/security_wizard.py +12 -12
  22. coach_wizards/testing_wizard.py +12 -12
  23. empathy_framework-3.8.2.dist-info/METADATA +1176 -0
  24. empathy_framework-3.8.2.dist-info/RECORD +333 -0
  25. empathy_framework-3.8.2.dist-info/entry_points.txt +22 -0
  26. {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/top_level.txt +5 -1
  27. empathy_healthcare_plugin/__init__.py +1 -2
  28. empathy_healthcare_plugin/monitors/__init__.py +9 -0
  29. empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
  30. empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
  31. empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
  32. empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
  33. empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
  34. empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
  35. empathy_llm_toolkit/__init__.py +7 -7
  36. empathy_llm_toolkit/agent_factory/__init__.py +53 -0
  37. empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
  38. empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
  39. empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
  40. empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
  41. empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
  42. empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
  43. empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
  44. empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
  45. empathy_llm_toolkit/agent_factory/base.py +305 -0
  46. empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
  47. empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
  48. empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
  49. empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
  50. empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
  51. empathy_llm_toolkit/agent_factory/decorators.py +286 -0
  52. empathy_llm_toolkit/agent_factory/factory.py +558 -0
  53. empathy_llm_toolkit/agent_factory/framework.py +192 -0
  54. empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
  55. empathy_llm_toolkit/agent_factory/resilient.py +320 -0
  56. empathy_llm_toolkit/claude_memory.py +14 -15
  57. empathy_llm_toolkit/cli/__init__.py +8 -0
  58. empathy_llm_toolkit/cli/sync_claude.py +487 -0
  59. empathy_llm_toolkit/code_health.py +186 -28
  60. empathy_llm_toolkit/config/__init__.py +29 -0
  61. empathy_llm_toolkit/config/unified.py +295 -0
  62. empathy_llm_toolkit/contextual_patterns.py +11 -12
  63. empathy_llm_toolkit/core.py +168 -53
  64. empathy_llm_toolkit/git_pattern_extractor.py +17 -13
  65. empathy_llm_toolkit/levels.py +6 -13
  66. empathy_llm_toolkit/pattern_confidence.py +14 -18
  67. empathy_llm_toolkit/pattern_resolver.py +10 -12
  68. empathy_llm_toolkit/pattern_summary.py +16 -14
  69. empathy_llm_toolkit/providers.py +194 -28
  70. empathy_llm_toolkit/routing/__init__.py +32 -0
  71. empathy_llm_toolkit/routing/model_router.py +362 -0
  72. empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
  73. empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
  74. empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
  75. empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
  76. empathy_llm_toolkit/security/README.md +262 -0
  77. empathy_llm_toolkit/security/__init__.py +62 -0
  78. empathy_llm_toolkit/security/audit_logger.py +929 -0
  79. empathy_llm_toolkit/security/audit_logger_example.py +152 -0
  80. empathy_llm_toolkit/security/pii_scrubber.py +640 -0
  81. empathy_llm_toolkit/security/secrets_detector.py +678 -0
  82. empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
  83. empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
  84. empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
  85. empathy_llm_toolkit/session_status.py +20 -22
  86. empathy_llm_toolkit/state.py +28 -21
  87. empathy_llm_toolkit/wizards/__init__.py +38 -0
  88. empathy_llm_toolkit/wizards/base_wizard.py +364 -0
  89. empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
  90. empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
  91. empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
  92. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
  93. empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
  94. empathy_os/__init__.py +125 -84
  95. empathy_os/adaptive/__init__.py +13 -0
  96. empathy_os/adaptive/task_complexity.py +127 -0
  97. empathy_os/{monitoring.py → agent_monitoring.py} +28 -28
  98. empathy_os/cache/__init__.py +117 -0
  99. empathy_os/cache/base.py +166 -0
  100. empathy_os/cache/dependency_manager.py +253 -0
  101. empathy_os/cache/hash_only.py +248 -0
  102. empathy_os/cache/hybrid.py +390 -0
  103. empathy_os/cache/storage.py +282 -0
  104. empathy_os/cli.py +1516 -70
  105. empathy_os/cli_unified.py +597 -0
  106. empathy_os/config/__init__.py +63 -0
  107. empathy_os/config/xml_config.py +239 -0
  108. empathy_os/config.py +95 -37
  109. empathy_os/coordination.py +72 -68
  110. empathy_os/core.py +94 -107
  111. empathy_os/cost_tracker.py +74 -55
  112. empathy_os/dashboard/__init__.py +15 -0
  113. empathy_os/dashboard/server.py +743 -0
  114. empathy_os/discovery.py +17 -14
  115. empathy_os/emergence.py +21 -22
  116. empathy_os/exceptions.py +18 -30
  117. empathy_os/feedback_loops.py +30 -33
  118. empathy_os/levels.py +32 -35
  119. empathy_os/leverage_points.py +31 -32
  120. empathy_os/logging_config.py +19 -16
  121. empathy_os/memory/__init__.py +195 -0
  122. empathy_os/memory/claude_memory.py +466 -0
  123. empathy_os/memory/config.py +224 -0
  124. empathy_os/memory/control_panel.py +1298 -0
  125. empathy_os/memory/edges.py +179 -0
  126. empathy_os/memory/graph.py +567 -0
  127. empathy_os/memory/long_term.py +1194 -0
  128. empathy_os/memory/nodes.py +179 -0
  129. empathy_os/memory/redis_bootstrap.py +540 -0
  130. empathy_os/memory/security/__init__.py +31 -0
  131. empathy_os/memory/security/audit_logger.py +930 -0
  132. empathy_os/memory/security/pii_scrubber.py +640 -0
  133. empathy_os/memory/security/secrets_detector.py +678 -0
  134. empathy_os/memory/short_term.py +2119 -0
  135. empathy_os/memory/storage/__init__.py +15 -0
  136. empathy_os/memory/summary_index.py +583 -0
  137. empathy_os/memory/unified.py +619 -0
  138. empathy_os/metrics/__init__.py +12 -0
  139. empathy_os/metrics/prompt_metrics.py +190 -0
  140. empathy_os/models/__init__.py +136 -0
  141. empathy_os/models/__main__.py +13 -0
  142. empathy_os/models/cli.py +655 -0
  143. empathy_os/models/empathy_executor.py +354 -0
  144. empathy_os/models/executor.py +252 -0
  145. empathy_os/models/fallback.py +671 -0
  146. empathy_os/models/provider_config.py +563 -0
  147. empathy_os/models/registry.py +382 -0
  148. empathy_os/models/tasks.py +302 -0
  149. empathy_os/models/telemetry.py +548 -0
  150. empathy_os/models/token_estimator.py +378 -0
  151. empathy_os/models/validation.py +274 -0
  152. empathy_os/monitoring/__init__.py +52 -0
  153. empathy_os/monitoring/alerts.py +23 -0
  154. empathy_os/monitoring/alerts_cli.py +268 -0
  155. empathy_os/monitoring/multi_backend.py +271 -0
  156. empathy_os/monitoring/otel_backend.py +363 -0
  157. empathy_os/optimization/__init__.py +19 -0
  158. empathy_os/optimization/context_optimizer.py +272 -0
  159. empathy_os/pattern_library.py +30 -29
  160. empathy_os/persistence.py +35 -37
  161. empathy_os/platform_utils.py +261 -0
  162. empathy_os/plugins/__init__.py +28 -0
  163. empathy_os/plugins/base.py +361 -0
  164. empathy_os/plugins/registry.py +268 -0
  165. empathy_os/project_index/__init__.py +30 -0
  166. empathy_os/project_index/cli.py +335 -0
  167. empathy_os/project_index/crew_integration.py +430 -0
  168. empathy_os/project_index/index.py +425 -0
  169. empathy_os/project_index/models.py +501 -0
  170. empathy_os/project_index/reports.py +473 -0
  171. empathy_os/project_index/scanner.py +538 -0
  172. empathy_os/prompts/__init__.py +61 -0
  173. empathy_os/prompts/config.py +77 -0
  174. empathy_os/prompts/context.py +177 -0
  175. empathy_os/prompts/parser.py +285 -0
  176. empathy_os/prompts/registry.py +313 -0
  177. empathy_os/prompts/templates.py +208 -0
  178. empathy_os/redis_config.py +144 -58
  179. empathy_os/redis_memory.py +79 -77
  180. empathy_os/resilience/__init__.py +56 -0
  181. empathy_os/resilience/circuit_breaker.py +256 -0
  182. empathy_os/resilience/fallback.py +179 -0
  183. empathy_os/resilience/health.py +300 -0
  184. empathy_os/resilience/retry.py +209 -0
  185. empathy_os/resilience/timeout.py +135 -0
  186. empathy_os/routing/__init__.py +43 -0
  187. empathy_os/routing/chain_executor.py +433 -0
  188. empathy_os/routing/classifier.py +217 -0
  189. empathy_os/routing/smart_router.py +234 -0
  190. empathy_os/routing/wizard_registry.py +307 -0
  191. empathy_os/templates.py +19 -14
  192. empathy_os/trust/__init__.py +28 -0
  193. empathy_os/trust/circuit_breaker.py +579 -0
  194. empathy_os/trust_building.py +67 -58
  195. empathy_os/validation/__init__.py +19 -0
  196. empathy_os/validation/xml_validator.py +281 -0
  197. empathy_os/wizard_factory_cli.py +170 -0
  198. empathy_os/{workflows.py → workflow_commands.py} +131 -37
  199. empathy_os/workflows/__init__.py +360 -0
  200. empathy_os/workflows/base.py +1660 -0
  201. empathy_os/workflows/bug_predict.py +962 -0
  202. empathy_os/workflows/code_review.py +960 -0
  203. empathy_os/workflows/code_review_adapters.py +310 -0
  204. empathy_os/workflows/code_review_pipeline.py +720 -0
  205. empathy_os/workflows/config.py +600 -0
  206. empathy_os/workflows/dependency_check.py +648 -0
  207. empathy_os/workflows/document_gen.py +1069 -0
  208. empathy_os/workflows/documentation_orchestrator.py +1205 -0
  209. empathy_os/workflows/health_check.py +679 -0
  210. empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
  211. empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
  212. empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
  213. empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
  214. empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
  215. empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
  216. empathy_os/workflows/manage_documentation.py +804 -0
  217. empathy_os/workflows/new_sample_workflow1.py +146 -0
  218. empathy_os/workflows/new_sample_workflow1_README.md +150 -0
  219. empathy_os/workflows/perf_audit.py +687 -0
  220. empathy_os/workflows/pr_review.py +748 -0
  221. empathy_os/workflows/progress.py +445 -0
  222. empathy_os/workflows/progress_server.py +322 -0
  223. empathy_os/workflows/refactor_plan.py +693 -0
  224. empathy_os/workflows/release_prep.py +808 -0
  225. empathy_os/workflows/research_synthesis.py +404 -0
  226. empathy_os/workflows/secure_release.py +585 -0
  227. empathy_os/workflows/security_adapters.py +297 -0
  228. empathy_os/workflows/security_audit.py +1046 -0
  229. empathy_os/workflows/step_config.py +234 -0
  230. empathy_os/workflows/test5.py +125 -0
  231. empathy_os/workflows/test5_README.md +158 -0
  232. empathy_os/workflows/test_gen.py +1855 -0
  233. empathy_os/workflows/test_lifecycle.py +526 -0
  234. empathy_os/workflows/test_maintenance.py +626 -0
  235. empathy_os/workflows/test_maintenance_cli.py +590 -0
  236. empathy_os/workflows/test_maintenance_crew.py +821 -0
  237. empathy_os/workflows/xml_enhanced_crew.py +285 -0
  238. empathy_software_plugin/__init__.py +1 -2
  239. empathy_software_plugin/cli/__init__.py +120 -0
  240. empathy_software_plugin/cli/inspect.py +362 -0
  241. empathy_software_plugin/cli.py +49 -27
  242. empathy_software_plugin/plugin.py +4 -8
  243. empathy_software_plugin/wizards/__init__.py +42 -0
  244. empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
  245. empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
  246. empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
  247. empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
  248. empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
  249. empathy_software_plugin/wizards/base_wizard.py +288 -0
  250. empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
  251. empathy_software_plugin/wizards/code_review_wizard.py +606 -0
  252. empathy_software_plugin/wizards/debugging/__init__.py +50 -0
  253. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
  254. empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
  255. empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
  256. empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
  257. empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
  258. empathy_software_plugin/wizards/debugging/verification.py +369 -0
  259. empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
  260. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
  261. empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
  262. empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
  263. empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
  264. empathy_software_plugin/wizards/performance/__init__.py +9 -0
  265. empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
  266. empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
  267. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
  268. empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
  269. empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
  270. empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
  271. empathy_software_plugin/wizards/security/__init__.py +32 -0
  272. empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
  273. empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
  274. empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
  275. empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
  276. empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
  277. empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
  278. empathy_software_plugin/wizards/testing/__init__.py +27 -0
  279. empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
  280. empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
  281. empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
  282. empathy_software_plugin/wizards/testing_wizard.py +274 -0
  283. hot_reload/README.md +473 -0
  284. hot_reload/__init__.py +62 -0
  285. hot_reload/config.py +84 -0
  286. hot_reload/integration.py +228 -0
  287. hot_reload/reloader.py +298 -0
  288. hot_reload/watcher.py +179 -0
  289. hot_reload/websocket.py +176 -0
  290. scaffolding/README.md +589 -0
  291. scaffolding/__init__.py +35 -0
  292. scaffolding/__main__.py +14 -0
  293. scaffolding/cli.py +240 -0
  294. test_generator/__init__.py +38 -0
  295. test_generator/__main__.py +14 -0
  296. test_generator/cli.py +226 -0
  297. test_generator/generator.py +325 -0
  298. test_generator/risk_analyzer.py +216 -0
  299. workflow_patterns/__init__.py +33 -0
  300. workflow_patterns/behavior.py +249 -0
  301. workflow_patterns/core.py +76 -0
  302. workflow_patterns/output.py +99 -0
  303. workflow_patterns/registry.py +255 -0
  304. workflow_patterns/structural.py +288 -0
  305. workflow_scaffolding/__init__.py +11 -0
  306. workflow_scaffolding/__main__.py +12 -0
  307. workflow_scaffolding/cli.py +206 -0
  308. workflow_scaffolding/generator.py +265 -0
  309. agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
  310. agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
  311. agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
  312. agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
  313. agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
  314. agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
  315. agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
  316. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
  317. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
  318. agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
  319. agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
  320. agents/compliance_anticipation_agent.py +0 -1427
  321. agents/epic_integration_wizard.py +0 -541
  322. agents/trust_building_behaviors.py +0 -891
  323. empathy_framework-2.4.0.dist-info/METADATA +0 -485
  324. empathy_framework-2.4.0.dist-info/RECORD +0 -102
  325. empathy_framework-2.4.0.dist-info/entry_points.txt +0 -6
  326. empathy_llm_toolkit/htmlcov/status.json +0 -1
  327. empathy_llm_toolkit/security/htmlcov/status.json +0 -1
  328. {empathy_framework-2.4.0.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
  329. {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
+ [![PyPI](https://img.shields.io/pypi/v/empathy-framework)](https://pypi.org/project/empathy-framework/)
361
+ [![Tests](https://img.shields.io/badge/tests-5%2C941%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
362
+ [![Coverage](https://img.shields.io/badge/coverage-64%25-yellow)](https://github.com/Smart-AI-Memory/empathy-framework)
363
+ [![License](https://img.shields.io/badge/license-Fair%20Source%200.9-blue)](LICENSE)
364
+ [![Python](https://img.shields.io/badge/python-3.10+-blue)](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)