empathy-framework 3.3.0__tar.gz → 3.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CHANGELOG.md +90 -0
  2. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/PKG-INFO +18 -5
  3. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/README.md +17 -4
  4. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/foreword.md +1 -1
  5. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/PKG-INFO +18 -5
  6. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/SOURCES.txt +18 -0
  7. empathy_framework-3.3.3/empathy_llm_toolkit/htmlcov/status.json +1 -0
  8. empathy_framework-3.3.3/empathy_llm_toolkit/security/htmlcov/status.json +1 -0
  9. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/cli.py +3 -1
  10. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_ai_wizards.py +18 -18
  11. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/__init__.py +7 -7
  12. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/pyproject.toml +1 -1
  13. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/__init__.py +51 -51
  14. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cli.py +12 -8
  15. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/config.py +30 -6
  16. empathy_framework-3.3.3/src/empathy_os/platform_utils.py +262 -0
  17. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/workflow_commands.py +2 -2
  18. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_all_wizards.py +3 -3
  19. empathy_framework-3.3.3/tests/test_bug_predict_workflow.py +856 -0
  20. empathy_framework-3.3.3/tests/test_code_review_pipeline.py +416 -0
  21. empathy_framework-3.3.3/tests/test_code_review_pipeline_workflow.py +607 -0
  22. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_config.py +148 -0
  23. empathy_framework-3.3.3/tests/test_document_gen_workflow.py +822 -0
  24. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_model_router.py +2 -2
  25. empathy_framework-3.3.3/tests/test_perf_audit_workflow.py +687 -0
  26. empathy_framework-3.3.3/tests/test_platform_compat_ci.py +103 -0
  27. empathy_framework-3.3.3/tests/test_platform_utils.py +452 -0
  28. empathy_framework-3.3.3/tests/test_progress.py +658 -0
  29. empathy_framework-3.3.3/tests/test_refactor_golden.py +310 -0
  30. empathy_framework-3.3.3/tests/test_refactor_plan_workflow.py +704 -0
  31. empathy_framework-3.3.3/tests/test_refactoring_crew.py +937 -0
  32. empathy_framework-3.3.3/tests/test_secure_release_workflow.py +656 -0
  33. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_scan.py +3 -3
  34. empathy_framework-3.3.3/tests/test_step_config.py +482 -0
  35. empathy_framework-3.3.3/tests/test_token_estimator.py +418 -0
  36. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_wizard_site_comprehensive.py +6 -6
  37. empathy_framework-3.3.3/tests/test_workflow_base.py +970 -0
  38. empathy_framework-3.3.3/tests/test_workflow_commands.py +303 -0
  39. empathy_framework-3.3.0/tests/test_workflow_base.py +0 -344
  40. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/.bandit +0 -0
  41. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CODE_OF_CONDUCT.md +0 -0
  42. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/CONTRIBUTING.md +0 -0
  43. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/LICENSE +0 -0
  44. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/MANIFEST.in +0 -0
  45. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/QUICKSTART.md +0 -0
  46. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/SECURITY.md +0 -0
  47. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
  48. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
  49. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
  50. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
  51. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
  52. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
  53. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
  54. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
  55. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
  56. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
  57. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
  58. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/compliance_anticipation_agent.py +0 -0
  59. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/epic_integration_wizard.py +0 -0
  60. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/agents/trust_building_behaviors.py +0 -0
  61. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/__init__.py +0 -0
  62. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/accessibility_wizard.py +0 -0
  63. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/api_wizard.py +0 -0
  64. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/base_wizard.py +0 -0
  65. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/cicd_wizard.py +0 -0
  66. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/compliance_wizard.py +0 -0
  67. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/database_wizard.py +0 -0
  68. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/debugging_wizard.py +0 -0
  69. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/documentation_wizard.py +0 -0
  70. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/generate_wizards.py +0 -0
  71. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/localization_wizard.py +0 -0
  72. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/migration_wizard.py +0 -0
  73. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/monitoring_wizard.py +0 -0
  74. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/observability_wizard.py +0 -0
  75. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/performance_wizard.py +0 -0
  76. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/prompt_engineering_wizard.py +0 -0
  77. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/refactoring_wizard.py +0 -0
  78. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/scaling_wizard.py +0 -0
  79. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/security_wizard.py +0 -0
  80. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/coach_wizards/testing_wizard.py +0 -0
  81. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/ai-wizards.md +0 -0
  82. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/config.md +0 -0
  83. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/core.md +0 -0
  84. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/empathy-os.md +0 -0
  85. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/index.md +0 -0
  86. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/llm-toolkit.md +0 -0
  87. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/multi-agent.md +0 -0
  88. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/pattern-library.md +0 -0
  89. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/persistence.md +0 -0
  90. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/software-wizards.md +0 -0
  91. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/api-reference/wizards.md +0 -0
  92. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/adaptive-learning-system.md +0 -0
  93. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/multi-agent-team-coordination.md +0 -0
  94. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/sbar-clinical-handoff.md +0 -0
  95. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/simple-chatbot.md +0 -0
  96. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/examples/webhook-event-integration.md +0 -0
  97. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/getting-started/redis-setup.md +0 -0
  98. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
  99. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
  100. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
  101. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/PUBLISHING.md +0 -0
  102. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/claude-memory-integration.md +0 -0
  103. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/healthcare-wizards.md +0 -0
  104. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/how-to-read-this-book.md +0 -0
  105. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/multi-model-workflows.md +0 -0
  106. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/preface.md +0 -0
  107. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/guides/software-development-wizards.md +0 -0
  108. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/docs/index.md +0 -0
  109. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy.config.example.json +0 -0
  110. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy.config.example.yml +0 -0
  111. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/dependency_links.txt +0 -0
  112. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/entry_points.txt +0 -0
  113. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/requires.txt +0 -0
  114. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_framework.egg-info/top_level.txt +0 -0
  115. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/__init__.py +0 -0
  116. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/cardiac.json +0 -0
  117. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/post_operative.json +0 -0
  118. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/respiratory.json +0 -0
  119. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_healthcare_plugin/protocols/sepsis.json +0 -0
  120. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/README.md +0 -0
  121. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/__init__.py +0 -0
  122. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/claude_memory.py +0 -0
  123. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/code_health.py +0 -0
  124. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/contextual_patterns.py +0 -0
  125. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/core.py +0 -0
  126. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/git_pattern_extractor.py +0 -0
  127. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/levels.py +0 -0
  128. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_confidence.py +0 -0
  129. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_resolver.py +0 -0
  130. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/pattern_summary.py +0 -0
  131. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/providers.py +0 -0
  132. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/session_status.py +0 -0
  133. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_llm_toolkit/state.py +0 -0
  134. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -0
  135. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/__init__.py +0 -0
  136. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/empathy_software_plugin/plugin.py +0 -0
  137. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/README.md +0 -0
  138. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARDS_MASTER_GUIDE.md +0 -0
  139. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
  140. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
  141. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
  142. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/all_ai_wizards_demo.py +0 -0
  143. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_performance_wizard.py +0 -0
  144. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/ai_wizards/tests/test_security_wizard.py +0 -0
  145. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/README-SECURITY.md +0 -0
  146. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
  147. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/example-with-imports.md +0 -0
  148. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/project-CLAUDE.md +0 -0
  149. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/claude_memory/user-CLAUDE.md +0 -0
  150. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/ALL_DOCUMENTATION_COMPLETE.md +0 -0
  151. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/ALPHA_TESTER_RECRUITMENT.md +0 -0
  152. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/CHANGELOG.md +0 -0
  153. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/COMPLETE_IMPLEMENTATION_REPORT.md +0 -0
  154. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/CONTRIBUTING.md +0 -0
  155. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/DISCORD_SETUP_GUIDE.md +0 -0
  156. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/DOCUMENTATION_COMPLETE.md +0 -0
  157. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/FINAL_DELIVERABLES_SUMMARY.md +0 -0
  158. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IDE_INTEGRATION_PLAN.md +0 -0
  159. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IDE_INTEGRATION_SETUP_COMPLETE.md +0 -0
  160. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/IMPLEMENTATION_COMPLETE.md +0 -0
  161. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/JETBRAINS_PLUGIN_COMPLETE.md +0 -0
  162. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/MARKETPLACE_READINESS.md +0 -0
  163. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/PHASE_1_COMPLETE_AND_NEXT_STEPS.md +0 -0
  164. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/PRIVACY.md +0 -0
  165. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/README.md +0 -0
  166. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/TODO.md +0 -0
  167. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/VSCODE_EXTENSION_COMPLETE.md +0 -0
  168. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/WIZARD_IMPLEMENTATION_COMPLETE.md +0 -0
  169. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/__init__.py +0 -0
  170. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach-lsp-server/README.md +0 -0
  171. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach-lsp-server/server.py +0 -0
  172. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/coach.py +0 -0
  173. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/demo.py +0 -0
  174. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/demo_all_wizards.py +0 -0
  175. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/API.md +0 -0
  176. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/CUSTOM_WIZARDS.md +0 -0
  177. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/FAQ.md +0 -0
  178. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/INSTALLATION.md +0 -0
  179. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/TROUBLESHOOTING.md +0 -0
  180. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/USER_MANUAL.md +0 -0
  181. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/docs/WIZARDS.md +0 -0
  182. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/health_check.py +0 -0
  183. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/jetbrains-plugin/README.md +0 -0
  184. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/jetbrains-plugin-complete/README.md +0 -0
  185. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/README.md +0 -0
  186. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/__init__.py +0 -0
  187. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/cache.py +0 -0
  188. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/context_collector.py +0 -0
  189. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/error_handler.py +0 -0
  190. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/logging_config.py +0 -0
  191. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/protocol/__init__.py +0 -0
  192. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/protocol/messages.py +0 -0
  193. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/server.py +0 -0
  194. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/__init__.py +0 -0
  195. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/test_e2e.py +0 -0
  196. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/lsp/tests/test_server.py +0 -0
  197. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/DISCORD_SETUP_INSTRUCTIONS.md +0 -0
  198. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/GITHUB_SETUP_GUIDE.md +0 -0
  199. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/README.md +0 -0
  200. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/setup/SETUP_COMPLETE.md +0 -0
  201. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/shared_learning.py +0 -0
  202. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/__init__.py +0 -0
  203. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_all_wizards.py +0 -0
  204. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_coach_wizards.py +0 -0
  205. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/tests/test_new_wizards.py +0 -0
  206. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/vscode-extension/README.md +0 -0
  207. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/vscode-extension-complete/README.md +0 -0
  208. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/accessibility_wizard.py +0 -0
  209. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/api_wizard.py +0 -0
  210. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/base_wizard.py +0 -0
  211. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/compliance_wizard.py +0 -0
  212. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/database_wizard.py +0 -0
  213. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/debugging_wizard.py +0 -0
  214. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/design_review_wizard.py +0 -0
  215. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/devops_wizard.py +0 -0
  216. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/documentation_wizard.py +0 -0
  217. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/localization_wizard.py +0 -0
  218. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/monitoring_wizard.py +0 -0
  219. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/onboarding_wizard.py +0 -0
  220. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/performance_wizard.py +0 -0
  221. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/refactoring_wizard.py +0 -0
  222. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/retrospective_wizard.py +0 -0
  223. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/security_wizard.py +0 -0
  224. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/coach/wizards/testing_wizard.py +0 -0
  225. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/debugging_demo.py +0 -0
  226. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
  227. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/healthcare_example.py +0 -0
  228. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
  229. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/BLOG_POST.md +0 -0
  230. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/README.md +0 -0
  231. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
  232. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
  233. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/level_5_transformative/run_full_demo.py +0 -0
  234. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/llm_toolkit_demo.py +0 -0
  235. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/multi_llm_usage.py +0 -0
  236. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/performance_demo.py +0 -0
  237. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart/README.md +0 -0
  238. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart/minimal_example.py +0 -0
  239. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/quickstart.py +0 -0
  240. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/redis_exploration.py +0 -0
  241. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/security_demo.py +0 -0
  242. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/security_integration_example.py +0 -0
  243. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/simple_usage.py +0 -0
  244. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/smart_team_quickstart.py +0 -0
  245. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/software_plugin_complete_demo.py +0 -0
  246. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/streamlit_debug_wizard.py +0 -0
  247. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/test_debugging_wizard.py +0 -0
  248. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/test_short_term_memory_full.py +0 -0
  249. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/testing_demo.py +0 -0
  250. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/wizard-dashboard/README.md +0 -0
  251. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/wizard-dashboard/SETUP.md +0 -0
  252. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/README.md +0 -0
  253. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/code_review_example.py +0 -0
  254. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/doc_gen_example.py +0 -0
  255. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/multi_model_example.py +0 -0
  256. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/examples/workflows/research_example.py +0 -0
  257. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/requirements.txt +0 -0
  258. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/setup.cfg +0 -0
  259. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cli_unified.py +0 -0
  260. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/coordination.py +0 -0
  261. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/core.py +0 -0
  262. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/cost_tracker.py +0 -0
  263. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/discovery.py +0 -0
  264. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/emergence.py +0 -0
  265. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/exceptions.py +0 -0
  266. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/feedback_loops.py +0 -0
  267. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/levels.py +0 -0
  268. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/leverage_points.py +0 -0
  269. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/logging_config.py +0 -0
  270. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/monitoring.py +0 -0
  271. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/pattern_library.py +0 -0
  272. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/persistence.py +0 -0
  273. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/redis_config.py +0 -0
  274. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/redis_memory.py +0 -0
  275. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/templates.py +0 -0
  276. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/src/empathy_os/trust_building.py +0 -0
  277. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_advanced_debugging.py +0 -0
  278. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory.py +0 -0
  279. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory_memory.py +0 -0
  280. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_agent_factory_resilience.py +0 -0
  281. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_audit_logger.py +0 -0
  282. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_audit_logger_extended.py +0 -0
  283. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_base_wizard.py +0 -0
  284. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_book_chapter_wizard.py +0 -0
  285. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_book_production_agents.py +0 -0
  286. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_claude_memory.py +0 -0
  287. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_claude_memory_extended.py +0 -0
  288. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_cli.py +0 -0
  289. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_clinical_protocol_monitor.py +0 -0
  290. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_health.py +0 -0
  291. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_review_crew_integration.py +0 -0
  292. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_code_review_workflow.py +0 -0
  293. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_control_panel.py +0 -0
  294. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_coordination.py +0 -0
  295. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_core.py +0 -0
  296. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_core_reliability.py +0 -0
  297. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_coverage_analyzer.py +0 -0
  298. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_crewai_adapter.py +0 -0
  299. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_dependency_check_workflow.py +0 -0
  300. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_emergence.py +0 -0
  301. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_llm_core.py +0 -0
  302. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_llm_security.py +0 -0
  303. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_os.py +0 -0
  304. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_empathy_os_cli_extended.py +0 -0
  305. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_enhanced_testing.py +0 -0
  306. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_exceptions.py +0 -0
  307. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_executor_integration.py +0 -0
  308. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_fallback.py +0 -0
  309. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_feedback_loops.py +0 -0
  310. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_health_check_workflow.py +0 -0
  311. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_intelligence_integration.py +0 -0
  312. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_levels.py +0 -0
  313. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_leverage_points.py +0 -0
  314. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_llm_integration.py +0 -0
  315. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_llm_toolkit_levels.py +0 -0
  316. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_logging_config.py +0 -0
  317. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_memory_graph.py +0 -0
  318. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_model_registry.py +0 -0
  319. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_monitoring.py +0 -0
  320. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pattern_library.py +0 -0
  321. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_persistence.py +0 -0
  322. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pii_scrubber.py +0 -0
  323. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pii_scrubber_extended.py +0 -0
  324. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_plugin_base.py +0 -0
  325. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_plugin_registry.py +0 -0
  326. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_pr_review_workflow.py +0 -0
  327. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_production_smoke.py +0 -0
  328. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_prompt_engineering_wizard.py +0 -0
  329. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_protocol_checker.py +0 -0
  330. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_protocol_loader.py +0 -0
  331. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_providers.py +0 -0
  332. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_quality_analyzer.py +0 -0
  333. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_bootstrap.py +0 -0
  334. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_integration.py +0 -0
  335. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_redis_memory.py +0 -0
  336. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_resilience.py +0 -0
  337. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secrets_detector.py +0 -0
  338. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secure_memdocs.py +0 -0
  339. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_secure_memdocs_extended.py +0 -0
  340. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_audit_crew.py +0 -0
  341. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_audit_workflow.py +0 -0
  342. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_crew_integration.py +0 -0
  343. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_security_integration.py +0 -0
  344. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_sensor_parsers.py +0 -0
  345. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_session_status.py +0 -0
  346. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_smart_router.py +0 -0
  347. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_cli.py +0 -0
  348. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_integration.py +0 -0
  349. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_plugin.py +0 -0
  350. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_software_plugin_cli.py +0 -0
  351. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_state.py +0 -0
  352. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_summary_index.py +0 -0
  353. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_telemetry.py +0 -0
  354. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_test_suggester.py +0 -0
  355. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_trajectory_analyzer.py +0 -0
  356. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_trust_building.py +0 -0
  357. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_unified_memory.py +0 -0
  358. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_validation.py +0 -0
  359. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_wizard_outputs.py +0 -0
  360. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/tests/test_xml_prompts.py +0 -0
  361. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/__init__.py +0 -0
  362. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/admission_assessment_wizard.py +0 -0
  363. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/care_plan.py +0 -0
  364. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/clinical_assessment.py +0 -0
  365. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/discharge_planning.py +0 -0
  366. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/discharge_summary_wizard.py +0 -0
  367. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/dosage_calculation.py +0 -0
  368. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/incident_report_wizard.py +0 -0
  369. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/medication_reconciliation.py +0 -0
  370. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/nursing_assessment.py +0 -0
  371. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/patient_education.py +0 -0
  372. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/quality_improvement.py +0 -0
  373. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/sbar_report.py +0 -0
  374. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/sbar_wizard.py +0 -0
  375. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/shift_handoff_wizard.py +0 -0
  376. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/soap_note_wizard.py +0 -0
  377. {empathy_framework-3.3.0 → empathy_framework-3.3.3}/wizards/treatment_plan.py +0 -0
@@ -5,6 +5,96 @@ All notable changes to the Empathy Framework will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ---
11
+
12
+ ## [3.3.3] - 2025-12-28
13
+
14
+ ### Added
15
+
16
+ **Reliability Improvements**
17
+ - Structured error taxonomy in `WorkflowResult`:
18
+ - New `error_type` field: `"config"` | `"runtime"` | `"provider"` | `"timeout"` | `"validation"`
19
+ - New `transient` boolean field to indicate if retry is reasonable
20
+ - Auto-classification of errors in `BaseWorkflow.execute()`
21
+ - Configuration architecture documentation (`docs/configuration-architecture.md`)
22
+ - Documents schema separation between `EmpathyConfig` and `WorkflowConfig`
23
+ - Identifies `WorkflowConfig` naming collision between two modules
24
+ - Best practices for config loading
25
+
26
+ **Refactor Advisor Enhancements** (VSCode Extension)
27
+ - Backend health indicator showing connection status
28
+ - Cancellation mechanism for in-flight analysis
29
+ - Pre-flight validation (Python and API key check before analysis)
30
+ - Cancel button during analysis with proper cleanup
31
+
32
+ ### Fixed
33
+
34
+ - `EmpathyConfig.from_yaml()` and `from_json()` now gracefully ignore unknown fields
35
+ - Fixes `TypeError: got an unexpected keyword argument 'provider'`
36
+ - Allows config files to contain settings for other components
37
+ - Model ID test assertions updated to match registry (`claude-sonnet-4-5-20250514`)
38
+ - Updated model_router docstrings to reflect current model IDs
39
+
40
+ ### Tests
41
+
42
+ - Added 5 tests for `EmpathyConfig` unknown field filtering
43
+ - Added 5 tests for `WorkflowResult` error taxonomy (`error_type`, `transient`)
44
+
45
+ ---
46
+
47
+ ## [3.3.2] - 2025-12-27
48
+
49
+ ### Added
50
+
51
+ **Windows Compatibility**
52
+ - New `platform_utils` module for cross-platform support
53
+ - Platform detection functions (`is_windows()`, `is_macos()`, `is_linux()`)
54
+ - Platform-appropriate directory functions for logs, data, config, and cache
55
+ - Asyncio Windows event loop policy handling (`setup_asyncio_policy()`)
56
+ - UTF-8 encoding utilities for text files
57
+ - Path normalization helpers
58
+ - Cross-platform compatibility checker script (`scripts/check_platform_compat.py`)
59
+ - Detects hardcoded Unix paths, missing encoding, asyncio issues
60
+ - JSON output mode for CI integration
61
+ - `--fix` mode with suggested corrections
62
+ - CI integration for platform compatibility checks in GitHub Actions
63
+ - Pre-commit hook for platform compatibility (manual stage)
64
+ - Pytest integration test for platform compatibility (`test_platform_compat_ci.py`)
65
+
66
+ ### Fixed
67
+
68
+ - Hardcoded Unix paths in `audit_logger.py` now use platform-appropriate defaults
69
+ - Added `setup_asyncio_policy()` call in CLI entry point for Windows compatibility
70
+
71
+ ### Changed
72
+
73
+ - Updated `.claude/python-standards.md` with cross-platform coding guidelines
74
+
75
+ ---
76
+
77
+ ## [3.3.1] - 2025-12-27
78
+
79
+ ### Fixed
80
+
81
+ - Updated Anthropic capable tier from Sonnet 4 to Sonnet 4.5 (`claude-sonnet-4-5-20250514`)
82
+ - Fixed model references in token_estimator and executor
83
+ - Fixed Setup button not opening Initialize Wizard (added `force` parameter)
84
+ - Fixed Cost Simulator layout for narrow panels (single-column layout)
85
+ - Fixed cost display inconsistency between workflow report and CLI footer
86
+ - Unified timing display to use milliseconds across all workflow reports
87
+ - Removed redundant CLI footer (workflow reports now contain complete timing/cost info)
88
+ - Fixed all mypy type errors across empathy_os and empathy_llm_toolkit
89
+ - Fixed ruff linting warnings (unused variables in dependency_check.py, document_gen.py)
90
+
91
+ ### Changed
92
+
93
+ - All workflow reports now display duration in milliseconds (e.g., `Review completed in 15041ms`)
94
+ - Consistent footer format: `{Workflow} completed in {ms}ms | Cost: ${cost:.4f}`
95
+
96
+ ---
97
+
8
98
  ## [3.2.3] - 2025-12-24
9
99
 
10
100
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: empathy-framework
3
- Version: 3.3.0
3
+ Version: 3.3.3
4
4
  Summary: AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration
5
5
  Author-email: Patrick Roebuck <patrick.roebuck@smartAImemory.com>
6
6
  Maintainer-email: Smart-AI-Memory <patrick.roebuck@smartAImemory.com>
@@ -271,7 +271,7 @@ Dynamic: license-file
271
271
  **The AI collaboration framework that predicts problems before they happen.**
272
272
 
273
273
  [![PyPI](https://img.shields.io/pypi/v/empathy-framework)](https://pypi.org/project/empathy-framework/)
274
- [![Tests](https://img.shields.io/badge/tests-2%2C365%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
274
+ [![Tests](https://img.shields.io/badge/tests-3%2C564%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
275
275
  [![Coverage](https://img.shields.io/badge/coverage-55%25-yellow)](https://github.com/Smart-AI-Memory/empathy-framework)
276
276
  [![License](https://img.shields.io/badge/license-Fair%20Source%200.9-blue)](LICENSE)
277
277
  [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org)
@@ -368,17 +368,21 @@ print(result.prevention_steps) # How to prevent it
368
368
  ## Become a Power User
369
369
 
370
370
  ### Level 1: Basic Usage
371
+
371
372
  ```bash
372
373
  pip install empathy-framework
373
374
  ```
375
+
374
376
  - Works out of the box with sensible defaults
375
377
  - Auto-detects your API keys
376
378
 
377
379
  ### Level 2: Cost Optimization
380
+
378
381
  ```bash
379
382
  # Enable hybrid mode for 80-96% cost savings
380
383
  python -m empathy_os.models.cli provider --set hybrid
381
384
  ```
385
+
382
386
  | Tier | Model | Use Case | Cost |
383
387
  |------|-------|----------|------|
384
388
  | Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
@@ -386,6 +390,7 @@ python -m empathy_os.models.cli provider --set hybrid
386
390
  | Premium | o1 / Opus | Architecture, complex decisions | $15/M |
387
391
 
388
392
  ### Level 3: Multi-Model Workflows
393
+
389
394
  ```python
390
395
  from empathy_llm_toolkit import EmpathyLLM
391
396
 
@@ -398,13 +403,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
398
403
  ```
399
404
 
400
405
  ### Level 4: VSCode Integration
406
+
401
407
  Install the Empathy VSCode extension for:
408
+
402
409
  - **Real-time Dashboard** — Health score, costs, patterns
403
410
  - **One-Click Workflows** — Research, code review, debugging
404
411
  - **Visual Cost Tracking** — See savings in real-time
405
- - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
412
+ - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
406
413
 
407
414
  ### Level 5: Custom Agents
415
+
408
416
  ```python
409
417
  from empathy_os.agents import AgentFactory
410
418
 
@@ -421,6 +429,7 @@ security_agent = AgentFactory.create(
421
429
  ## CLI Reference
422
430
 
423
431
  ### Provider Configuration
432
+
424
433
  ```bash
425
434
  python -m empathy_os.models.cli provider # Show current config
426
435
  python -m empathy_os.models.cli provider --set anthropic # Single provider
@@ -430,6 +439,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
430
439
  ```
431
440
 
432
441
  ### Model Registry
442
+
433
443
  ```bash
434
444
  python -m empathy_os.models.cli registry # Show all models
435
445
  python -m empathy_os.models.cli registry --provider openai # Filter by provider
@@ -437,6 +447,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
437
447
  ```
438
448
 
439
449
  ### Telemetry & Analytics
450
+
440
451
  ```bash
441
452
  python -m empathy_os.models.cli telemetry # Summary
442
453
  python -m empathy_os.models.cli telemetry --costs # Cost savings report
@@ -445,6 +456,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
445
456
  ```
446
457
 
447
458
  ### Memory Control
459
+
448
460
  ```bash
449
461
  empathy-memory serve # Start Redis + API server
450
462
  empathy-memory status # Check system status
@@ -453,6 +465,7 @@ empathy-memory patterns # List stored patterns
453
465
  ```
454
466
 
455
467
  ### Code Inspection
468
+
456
469
  ```bash
457
470
  empathy-inspect . # Run full inspection
458
471
  empathy-inspect . --format sarif # GitHub Actions format
@@ -726,8 +739,8 @@ cd empathy-framework && pip install -e .[dev]
726
739
 
727
740
  ```bash
728
741
  # Required: At least one provider
729
- export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
730
- export OPENAI_API_KEY="sk-..." # For GPT models
742
+ export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
743
+ export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
731
744
 
732
745
  # Optional: Redis for memory
733
746
  export REDIS_URL="redis://localhost:6379"
@@ -3,7 +3,7 @@
3
3
  **The AI collaboration framework that predicts problems before they happen.**
4
4
 
5
5
  [![PyPI](https://img.shields.io/pypi/v/empathy-framework)](https://pypi.org/project/empathy-framework/)
6
- [![Tests](https://img.shields.io/badge/tests-2%2C365%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
6
+ [![Tests](https://img.shields.io/badge/tests-3%2C564%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
7
7
  [![Coverage](https://img.shields.io/badge/coverage-55%25-yellow)](https://github.com/Smart-AI-Memory/empathy-framework)
8
8
  [![License](https://img.shields.io/badge/license-Fair%20Source%200.9-blue)](LICENSE)
9
9
  [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org)
@@ -100,17 +100,21 @@ print(result.prevention_steps) # How to prevent it
100
100
  ## Become a Power User
101
101
 
102
102
  ### Level 1: Basic Usage
103
+
103
104
  ```bash
104
105
  pip install empathy-framework
105
106
  ```
107
+
106
108
  - Works out of the box with sensible defaults
107
109
  - Auto-detects your API keys
108
110
 
109
111
  ### Level 2: Cost Optimization
112
+
110
113
  ```bash
111
114
  # Enable hybrid mode for 80-96% cost savings
112
115
  python -m empathy_os.models.cli provider --set hybrid
113
116
  ```
117
+
114
118
  | Tier | Model | Use Case | Cost |
115
119
  |------|-------|----------|------|
116
120
  | Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
@@ -118,6 +122,7 @@ python -m empathy_os.models.cli provider --set hybrid
118
122
  | Premium | o1 / Opus | Architecture, complex decisions | $15/M |
119
123
 
120
124
  ### Level 3: Multi-Model Workflows
125
+
121
126
  ```python
122
127
  from empathy_llm_toolkit import EmpathyLLM
123
128
 
@@ -130,13 +135,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
130
135
  ```
131
136
 
132
137
  ### Level 4: VSCode Integration
138
+
133
139
  Install the Empathy VSCode extension for:
140
+
134
141
  - **Real-time Dashboard** — Health score, costs, patterns
135
142
  - **One-Click Workflows** — Research, code review, debugging
136
143
  - **Visual Cost Tracking** — See savings in real-time
137
- - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
144
+ - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
138
145
 
139
146
  ### Level 5: Custom Agents
147
+
140
148
  ```python
141
149
  from empathy_os.agents import AgentFactory
142
150
 
@@ -153,6 +161,7 @@ security_agent = AgentFactory.create(
153
161
  ## CLI Reference
154
162
 
155
163
  ### Provider Configuration
164
+
156
165
  ```bash
157
166
  python -m empathy_os.models.cli provider # Show current config
158
167
  python -m empathy_os.models.cli provider --set anthropic # Single provider
@@ -162,6 +171,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
162
171
  ```
163
172
 
164
173
  ### Model Registry
174
+
165
175
  ```bash
166
176
  python -m empathy_os.models.cli registry # Show all models
167
177
  python -m empathy_os.models.cli registry --provider openai # Filter by provider
@@ -169,6 +179,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
169
179
  ```
170
180
 
171
181
  ### Telemetry & Analytics
182
+
172
183
  ```bash
173
184
  python -m empathy_os.models.cli telemetry # Summary
174
185
  python -m empathy_os.models.cli telemetry --costs # Cost savings report
@@ -177,6 +188,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
177
188
  ```
178
189
 
179
190
  ### Memory Control
191
+
180
192
  ```bash
181
193
  empathy-memory serve # Start Redis + API server
182
194
  empathy-memory status # Check system status
@@ -185,6 +197,7 @@ empathy-memory patterns # List stored patterns
185
197
  ```
186
198
 
187
199
  ### Code Inspection
200
+
188
201
  ```bash
189
202
  empathy-inspect . # Run full inspection
190
203
  empathy-inspect . --format sarif # GitHub Actions format
@@ -458,8 +471,8 @@ cd empathy-framework && pip install -e .[dev]
458
471
 
459
472
  ```bash
460
473
  # Required: At least one provider
461
- export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
462
- export OPENAI_API_KEY="sk-..." # For GPT models
474
+ export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
475
+ export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
463
476
 
464
477
  # Optional: Redis for memory
465
478
  export REDIS_URL="redis://localhost:6379"
@@ -67,4 +67,4 @@ Whether that participant is human or AI.
67
67
  ---
68
68
 
69
69
  !!! note "Context"
70
- This foreword was written during working sessions where Claude and Patrick built Redis-backed short-term memory for multi-agent coordination. The framework now includes 53 wizards across healthcare, software, coach, and domain categories, with over 2,200 tests ensuring reliability.
70
+ This foreword was written during working sessions where Claude and Patrick built Redis-backed short-term memory for multi-agent coordination. The framework now includes 53 wizards across healthcare, software, coach, and domain categories, with over 3,000 tests ensuring reliability.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: empathy-framework
3
- Version: 3.3.0
3
+ Version: 3.3.3
4
4
  Summary: AI collaboration framework with persistent memory, anticipatory intelligence, code inspection, and multi-agent orchestration
5
5
  Author-email: Patrick Roebuck <patrick.roebuck@smartAImemory.com>
6
6
  Maintainer-email: Smart-AI-Memory <patrick.roebuck@smartAImemory.com>
@@ -271,7 +271,7 @@ Dynamic: license-file
271
271
  **The AI collaboration framework that predicts problems before they happen.**
272
272
 
273
273
  [![PyPI](https://img.shields.io/pypi/v/empathy-framework)](https://pypi.org/project/empathy-framework/)
274
- [![Tests](https://img.shields.io/badge/tests-2%2C365%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
274
+ [![Tests](https://img.shields.io/badge/tests-3%2C564%20passing-brightgreen)](https://github.com/Smart-AI-Memory/empathy-framework/actions)
275
275
  [![Coverage](https://img.shields.io/badge/coverage-55%25-yellow)](https://github.com/Smart-AI-Memory/empathy-framework)
276
276
  [![License](https://img.shields.io/badge/license-Fair%20Source%200.9-blue)](LICENSE)
277
277
  [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org)
@@ -368,17 +368,21 @@ print(result.prevention_steps) # How to prevent it
368
368
  ## Become a Power User
369
369
 
370
370
  ### Level 1: Basic Usage
371
+
371
372
  ```bash
372
373
  pip install empathy-framework
373
374
  ```
375
+
374
376
  - Works out of the box with sensible defaults
375
377
  - Auto-detects your API keys
376
378
 
377
379
  ### Level 2: Cost Optimization
380
+
378
381
  ```bash
379
382
  # Enable hybrid mode for 80-96% cost savings
380
383
  python -m empathy_os.models.cli provider --set hybrid
381
384
  ```
385
+
382
386
  | Tier | Model | Use Case | Cost |
383
387
  |------|-------|----------|------|
384
388
  | Cheap | GPT-4o-mini / Haiku | Summarization, simple tasks | $0.15-0.25/M |
@@ -386,6 +390,7 @@ python -m empathy_os.models.cli provider --set hybrid
386
390
  | Premium | o1 / Opus | Architecture, complex decisions | $15/M |
387
391
 
388
392
  ### Level 3: Multi-Model Workflows
393
+
389
394
  ```python
390
395
  from empathy_llm_toolkit import EmpathyLLM
391
396
 
@@ -398,13 +403,16 @@ await llm.interact(user_id="dev", user_input="Design system", task_type="coordin
398
403
  ```
399
404
 
400
405
  ### Level 4: VSCode Integration
406
+
401
407
  Install the Empathy VSCode extension for:
408
+
402
409
  - **Real-time Dashboard** — Health score, costs, patterns
403
410
  - **One-Click Workflows** — Research, code review, debugging
404
411
  - **Visual Cost Tracking** — See savings in real-time
405
- - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
412
+ - See also: `docs/dashboard-costs-by-tier.md` for interpreting the **By tier (7 days)** cost breakdown.
406
413
 
407
414
  ### Level 5: Custom Agents
415
+
408
416
  ```python
409
417
  from empathy_os.agents import AgentFactory
410
418
 
@@ -421,6 +429,7 @@ security_agent = AgentFactory.create(
421
429
  ## CLI Reference
422
430
 
423
431
  ### Provider Configuration
432
+
424
433
  ```bash
425
434
  python -m empathy_os.models.cli provider # Show current config
426
435
  python -m empathy_os.models.cli provider --set anthropic # Single provider
@@ -430,6 +439,7 @@ python -m empathy_os.models.cli provider -f json # JSON output
430
439
  ```
431
440
 
432
441
  ### Model Registry
442
+
433
443
  ```bash
434
444
  python -m empathy_os.models.cli registry # Show all models
435
445
  python -m empathy_os.models.cli registry --provider openai # Filter by provider
@@ -437,6 +447,7 @@ python -m empathy_os.models.cli costs --input-tokens 50000 # Estimate costs
437
447
  ```
438
448
 
439
449
  ### Telemetry & Analytics
450
+
440
451
  ```bash
441
452
  python -m empathy_os.models.cli telemetry # Summary
442
453
  python -m empathy_os.models.cli telemetry --costs # Cost savings report
@@ -445,6 +456,7 @@ python -m empathy_os.models.cli telemetry --fallbacks # Fallback stats
445
456
  ```
446
457
 
447
458
  ### Memory Control
459
+
448
460
  ```bash
449
461
  empathy-memory serve # Start Redis + API server
450
462
  empathy-memory status # Check system status
@@ -453,6 +465,7 @@ empathy-memory patterns # List stored patterns
453
465
  ```
454
466
 
455
467
  ### Code Inspection
468
+
456
469
  ```bash
457
470
  empathy-inspect . # Run full inspection
458
471
  empathy-inspect . --format sarif # GitHub Actions format
@@ -726,8 +739,8 @@ cd empathy-framework && pip install -e .[dev]
726
739
 
727
740
  ```bash
728
741
  # Required: At least one provider
729
- export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
730
- export OPENAI_API_KEY="sk-..." # For GPT models
742
+ export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models # pragma: allowlist secret
743
+ export OPENAI_API_KEY="sk-..." # For GPT models # pragma: allowlist secret
731
744
 
732
745
  # Optional: Redis for memory
733
746
  export REDIS_URL="redis://localhost:6379"
@@ -99,6 +99,8 @@ empathy_llm_toolkit/pattern_summary.py
99
99
  empathy_llm_toolkit/providers.py
100
100
  empathy_llm_toolkit/session_status.py
101
101
  empathy_llm_toolkit/state.py
102
+ empathy_llm_toolkit/htmlcov/status.json
103
+ empathy_llm_toolkit/security/htmlcov/status.json
102
104
  empathy_software_plugin/SOFTWARE_PLUGIN_README.md
103
105
  empathy_software_plugin/__init__.py
104
106
  empathy_software_plugin/cli.py
@@ -242,6 +244,7 @@ src/empathy_os/logging_config.py
242
244
  src/empathy_os/monitoring.py
243
245
  src/empathy_os/pattern_library.py
244
246
  src/empathy_os/persistence.py
247
+ src/empathy_os/platform_utils.py
245
248
  src/empathy_os/redis_config.py
246
249
  src/empathy_os/redis_memory.py
247
250
  src/empathy_os/templates.py
@@ -257,12 +260,15 @@ tests/test_audit_logger_extended.py
257
260
  tests/test_base_wizard.py
258
261
  tests/test_book_chapter_wizard.py
259
262
  tests/test_book_production_agents.py
263
+ tests/test_bug_predict_workflow.py
260
264
  tests/test_claude_memory.py
261
265
  tests/test_claude_memory_extended.py
262
266
  tests/test_cli.py
263
267
  tests/test_clinical_protocol_monitor.py
264
268
  tests/test_code_health.py
265
269
  tests/test_code_review_crew_integration.py
270
+ tests/test_code_review_pipeline.py
271
+ tests/test_code_review_pipeline_workflow.py
266
272
  tests/test_code_review_workflow.py
267
273
  tests/test_config.py
268
274
  tests/test_control_panel.py
@@ -272,6 +278,7 @@ tests/test_core_reliability.py
272
278
  tests/test_coverage_analyzer.py
273
279
  tests/test_crewai_adapter.py
274
280
  tests/test_dependency_check_workflow.py
281
+ tests/test_document_gen_workflow.py
275
282
  tests/test_emergence.py
276
283
  tests/test_empathy_llm_core.py
277
284
  tests/test_empathy_llm_security.py
@@ -294,13 +301,17 @@ tests/test_model_registry.py
294
301
  tests/test_model_router.py
295
302
  tests/test_monitoring.py
296
303
  tests/test_pattern_library.py
304
+ tests/test_perf_audit_workflow.py
297
305
  tests/test_persistence.py
298
306
  tests/test_pii_scrubber.py
299
307
  tests/test_pii_scrubber_extended.py
308
+ tests/test_platform_compat_ci.py
309
+ tests/test_platform_utils.py
300
310
  tests/test_plugin_base.py
301
311
  tests/test_plugin_registry.py
302
312
  tests/test_pr_review_workflow.py
303
313
  tests/test_production_smoke.py
314
+ tests/test_progress.py
304
315
  tests/test_prompt_engineering_wizard.py
305
316
  tests/test_protocol_checker.py
306
317
  tests/test_protocol_loader.py
@@ -309,10 +320,14 @@ tests/test_quality_analyzer.py
309
320
  tests/test_redis_bootstrap.py
310
321
  tests/test_redis_integration.py
311
322
  tests/test_redis_memory.py
323
+ tests/test_refactor_golden.py
324
+ tests/test_refactor_plan_workflow.py
325
+ tests/test_refactoring_crew.py
312
326
  tests/test_resilience.py
313
327
  tests/test_secrets_detector.py
314
328
  tests/test_secure_memdocs.py
315
329
  tests/test_secure_memdocs_extended.py
330
+ tests/test_secure_release_workflow.py
316
331
  tests/test_security_audit_crew.py
317
332
  tests/test_security_audit_workflow.py
318
333
  tests/test_security_crew_integration.py
@@ -326,9 +341,11 @@ tests/test_software_integration.py
326
341
  tests/test_software_plugin.py
327
342
  tests/test_software_plugin_cli.py
328
343
  tests/test_state.py
344
+ tests/test_step_config.py
329
345
  tests/test_summary_index.py
330
346
  tests/test_telemetry.py
331
347
  tests/test_test_suggester.py
348
+ tests/test_token_estimator.py
332
349
  tests/test_trajectory_analyzer.py
333
350
  tests/test_trust_building.py
334
351
  tests/test_unified_memory.py
@@ -336,6 +353,7 @@ tests/test_validation.py
336
353
  tests/test_wizard_outputs.py
337
354
  tests/test_wizard_site_comprehensive.py
338
355
  tests/test_workflow_base.py
356
+ tests/test_workflow_commands.py
339
357
  tests/test_xml_prompts.py
340
358
  wizards/__init__.py
341
359
  wizards/admission_assessment_wizard.py
@@ -0,0 +1 @@
1
+ {"note":"This file is an internal implementation detail to speed up HTML report generation. Its format can change at any time. You might be looking for the JSON report: https://coverage.rtfd.io/cmd.html#cmd-json","format":5,"version":"7.11.2","globals":"1647e1602d568c377a9cb0dc3296bc7b","files":{"__init___py":{"hash":"1e943cec927dee34f9523b2eb67d8922","index":{"url":"__init___py.html","file":"__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":6,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"claude_memory_py":{"hash":"25f8fe4e69f6b1e4091924c070803e8a","index":{"url":"claude_memory_py.html","file":"claude_memory.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":169,"n_excluded":0,"n_missing":169,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"code_health_py":{"hash":"a78753eaebd08c9c2cb5f1cd5a14f723","index":{"url":"code_health_py.html","file":"code_health.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":503,"n_excluded":0,"n_missing":503,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"contextual_patterns_py":{"hash":"12004dba086f2def1d9e65bbf68a88f8","index":{"url":"contextual_patterns_py.html","file":"contextual_patterns.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":171,"n_excluded":0,"n_missing":171,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"core_py":{"hash":"aa25b266741f161b0fa2500af1db03da","index":{"url":"core_py.html","file":"core.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":177,"n_excluded":0,"n_missing":151,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"git_pattern_extractor_py":{"hash":"88e57b53ff683a92613ae343a55ad1bb","index":{"url":"git_pattern_extractor_py.html","file":"git_pattern_extractor.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":164,"n_excluded":0,"n_missing":164,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"levels_py":{"hash":"ef211f0c742ccdab452cbe36ac205815","index":{"url":"levels_py.html","file":"levels.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":33,"n_excluded":0,"n_missing":12,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_confidence_py":{"hash":"1806d001ef22f2f9c4f5cc24faa5724d","index":{"url":"pattern_confidence_py.html","file":"pattern_confidence.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":196,"n_excluded":0,"n_missing":196,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_resolver_py":{"hash":"af2687d544197eb576abe872270157a5","index":{"url":"pattern_resolver_py.html","file":"pattern_resolver.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":121,"n_excluded":0,"n_missing":121,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pattern_summary_py":{"hash":"51c42611c0d7a57f4e5c9f487f3b0882","index":{"url":"pattern_summary_py.html","file":"pattern_summary.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":178,"n_excluded":0,"n_missing":178,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"providers_py":{"hash":"8b779f9132bea067bec66007bd492b45","index":{"url":"providers_py.html","file":"providers.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":106,"n_excluded":0,"n_missing":76,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df___init___py":{"hash":"dec456df46eda04d5d3381b09af05c36","index":{"url":"z_10414145323772df___init___py.html","file":"security/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":3,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_audit_logger_py":{"hash":"9197b939a93f6b8dd8549ab6b73f0887","index":{"url":"z_10414145323772df_audit_logger_py.html","file":"security/audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":247,"n_excluded":0,"n_missing":247,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_audit_logger_example_py":{"hash":"ecc80543a0cac77b9b5a52d9d8451793","index":{"url":"z_10414145323772df_audit_logger_example_py.html","file":"security/audit_logger_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":59,"n_excluded":0,"n_missing":59,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_pii_scrubber_py":{"hash":"0254532a873c529be428a4d88663e917","index":{"url":"z_10414145323772df_pii_scrubber_py.html","file":"security/pii_scrubber.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":140,"n_excluded":0,"n_missing":140,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secrets_detector_py":{"hash":"b160d5903a118f959559e32f7535d7e2","index":{"url":"z_10414145323772df_secrets_detector_py.html","file":"security/secrets_detector.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":199,"n_excluded":0,"n_missing":199,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secrets_detector_example_py":{"hash":"ba9b9af2e80e78ec21a15712e06dd279","index":{"url":"z_10414145323772df_secrets_detector_example_py.html","file":"security/secrets_detector_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":145,"n_excluded":0,"n_missing":145,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secure_memdocs_py":{"hash":"47c339d82b66068fb9a831fffb58bc8a","index":{"url":"z_10414145323772df_secure_memdocs_py.html","file":"security/secure_memdocs.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":350,"n_excluded":0,"n_missing":350,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_10414145323772df_secure_memdocs_example_py":{"hash":"3fd076ca92a0a84002c57d80cfed902f","index":{"url":"z_10414145323772df_secure_memdocs_example_py.html","file":"security/secure_memdocs_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":106,"n_excluded":0,"n_missing":106,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"session_status_py":{"hash":"4c8d6be4bbdac24bc27d0c27890532a6","index":{"url":"session_status_py.html","file":"session_status.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":312,"n_excluded":0,"n_missing":312,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"state_py":{"hash":"724ab29020a3a3870ac6b9c94c71127d","index":{"url":"state_py.html","file":"state.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":87,"n_excluded":0,"n_missing":40,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449___init___py":{"hash":"10fa30f44c3688eb2de5302412aa33d6","index":{"url":"z_984ef1e268fea449___init___py.html","file":"wizards/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":5,"n_excluded":0,"n_missing":5,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_base_wizard_py":{"hash":"590f2d248a77ea3e621b9f3c4ded2397","index":{"url":"z_984ef1e268fea449_base_wizard_py.html","file":"wizards/base_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":56,"n_excluded":0,"n_missing":56,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_customer_support_wizard_py":{"hash":"f92a98bbbec12fad579ac19787971b08","index":{"url":"z_984ef1e268fea449_customer_support_wizard_py.html","file":"wizards/customer_support_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":17,"n_excluded":0,"n_missing":17,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_healthcare_wizard_py":{"hash":"96977dfa18d691fdd84424311686d23a","index":{"url":"z_984ef1e268fea449_healthcare_wizard_py.html","file":"wizards/healthcare_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":57,"n_excluded":0,"n_missing":57,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_984ef1e268fea449_technology_wizard_py":{"hash":"6998c841130aa6e0982dc586006a5640","index":{"url":"z_984ef1e268fea449_technology_wizard_py.html","file":"wizards/technology_wizard.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":19,"n_excluded":0,"n_missing":19,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}}}}
@@ -0,0 +1 @@
1
+ {"note":"This file is an internal implementation detail to speed up HTML report generation. Its format can change at any time. You might be looking for the JSON report: https://coverage.rtfd.io/cmd.html#cmd-json","format":5,"version":"7.11.2","globals":"93e0a98f3da7f95e5ae873f233acfe8f","files":{"z_0da0bc3caf3df21d___init___py":{"hash":"678b97c61cc7e540c9ecbd0485aef62e","index":{"url":"z_0da0bc3caf3df21d___init___py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":6,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_claude_memory_py":{"hash":"9e1a909857359093b60c8b3641b9686f","index":{"url":"z_0da0bc3caf3df21d_claude_memory_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/claude_memory.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":169,"n_excluded":0,"n_missing":132,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_core_py":{"hash":"45f6bf0d1f0f9b193700d313f3999f0a","index":{"url":"z_0da0bc3caf3df21d_core_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/core.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":124,"n_excluded":0,"n_missing":100,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_levels_py":{"hash":"029cd19bbfaefe72a2df6fb26fafbb07","index":{"url":"z_0da0bc3caf3df21d_levels_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/levels.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":33,"n_excluded":0,"n_missing":12,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_providers_py":{"hash":"8a61e565ded340098a9717471cb139cc","index":{"url":"z_0da0bc3caf3df21d_providers_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/providers.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":104,"n_excluded":0,"n_missing":74,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"__init___py":{"hash":"bc61a9c102480a73e01fb8f507fe604c","index":{"url":"__init___py.html","file":"__init__.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":3,"n_excluded":0,"n_missing":0,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"audit_logger_py":{"hash":"288003e820abd1edb81b099a12e58af5","index":{"url":"audit_logger_py.html","file":"audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":244,"n_excluded":0,"n_missing":72,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"audit_logger_example_py":{"hash":"8c491197716328c7faed6badacb3a68b","index":{"url":"audit_logger_example_py.html","file":"audit_logger_example.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":60,"n_excluded":0,"n_missing":60,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"pii_scrubber_py":{"hash":"9768c14c0e1e90619f7d80f059ca4395","index":{"url":"pii_scrubber_py.html","file":"pii_scrubber.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":140,"n_excluded":0,"n_missing":107,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"secrets_detector_py":{"hash":"36cd068d345d0328e6959132de4ade69","index":{"url":"secrets_detector_py.html","file":"secrets_detector.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":199,"n_excluded":0,"n_missing":199,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"test_audit_logger_py":{"hash":"a5a92daff7da2027470aca6a728adbb8","index":{"url":"test_audit_logger_py.html","file":"test_audit_logger.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":185,"n_excluded":0,"n_missing":1,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}},"z_0da0bc3caf3df21d_state_py":{"hash":"3ed61e7760d5e588d4d6743dffa9094f","index":{"url":"z_0da0bc3caf3df21d_state_py.html","file":"/Users/patrickroebuck/empathy_11_6_2025/Empathy-framework/empathy_llm_toolkit/state.py","description":"","nums":{"precision":0,"n_files":1,"n_statements":87,"n_excluded":0,"n_missing":40,"n_branches":0,"n_partial_branches":0,"n_missing_branches":0}}}}}
@@ -655,7 +655,9 @@ def scan_command():
655
655
  severity_icon = (
656
656
  "🔴"
657
657
  if issue.severity == "high"
658
- else "🟡" if issue.severity == "medium" else "🔵"
658
+ else "🟡"
659
+ if issue.severity == "medium"
660
+ else "🔵"
659
661
  )
660
662
  print(f" {severity_icon} Line {issue.line_number}: {issue.message}")
661
663
  if len(result.issues) > 3:
@@ -88,9 +88,9 @@ Try to be as helpful as possible.
88
88
 
89
89
  # Should detect vague language
90
90
  issues = result["issues"]
91
- assert any(
92
- issue["type"] == "vague_language" for issue in issues
93
- ), "Should detect vague language like 'try to', 'help'"
91
+ assert any(issue["type"] == "vague_language" for issue in issues), (
92
+ "Should detect vague language like 'try to', 'help'"
93
+ )
94
94
 
95
95
  @pytest.mark.asyncio
96
96
  async def test_analyze_detects_missing_structure(
@@ -108,9 +108,9 @@ Try to be as helpful as possible.
108
108
 
109
109
  # Should detect unclear structure
110
110
  issues = result["issues"]
111
- assert any(
112
- issue["type"] == "unclear_structure" for issue in issues
113
- ), "Should detect missing role/task/context structure"
111
+ assert any(issue["type"] == "unclear_structure" for issue in issues), (
112
+ "Should detect missing role/task/context structure"
113
+ )
114
114
 
115
115
  @pytest.mark.asyncio
116
116
  async def test_level_4_predictions(self, wizard, temp_prompt_file, temp_project_dir):
@@ -134,9 +134,9 @@ Try to be as helpful as possible.
134
134
 
135
135
  # Should predict prompt sprawl
136
136
  predictions = result["predictions"]
137
- assert any(
138
- pred["type"] == "prompt_sprawl" for pred in predictions
139
- ), "Should predict prompt sprawl with 13+ files"
137
+ assert any(pred["type"] == "prompt_sprawl" for pred in predictions), (
138
+ "Should predict prompt sprawl with 13+ files"
139
+ )
140
140
 
141
141
  finally:
142
142
  # Cleanup
@@ -245,9 +245,9 @@ class TestAIContextWindowWizard:
245
245
  result = await wizard.analyze(context)
246
246
 
247
247
  issues = result["issues"]
248
- assert any(
249
- issue["type"] == "naive_concatenation" for issue in issues
250
- ), "Should detect naive concatenation pattern"
248
+ assert any(issue["type"] == "naive_concatenation" for issue in issues), (
249
+ "Should detect naive concatenation pattern"
250
+ )
251
251
 
252
252
  @pytest.mark.asyncio
253
253
  async def test_level_4_growth_trajectory_prediction(self, wizard):
@@ -450,9 +450,9 @@ Run the thing.
450
450
  result = await wizard.analyze(context)
451
451
 
452
452
  issues = result["issues"]
453
- assert any(
454
- issue["type"] == "missing_architecture_context" for issue in issues
455
- ), "Should detect missing architecture section"
453
+ assert any(issue["type"] == "missing_architecture_context" for issue in issues), (
454
+ "Should detect missing architecture section"
455
+ )
456
456
 
457
457
  @pytest.mark.asyncio
458
458
  async def test_detects_ambiguous_language(self, wizard, temp_project_dir):
@@ -480,9 +480,9 @@ Try to handle errors gracefully.
480
480
  result = await wizard.analyze(context)
481
481
 
482
482
  issues = result["issues"]
483
- assert any(
484
- issue["type"] == "ambiguous_language" for issue in issues
485
- ), "Should detect ambiguous phrases"
483
+ assert any(issue["type"] == "ambiguous_language" for issue in issues), (
484
+ "Should detect ambiguous phrases"
485
+ )
486
486
 
487
487
  finally:
488
488
  if os.path.exists(temp_ambiguous):