empathy-framework 3.7.0__py3-none-any.whl → 3.8.0__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 (274) hide show
  1. coach_wizards/code_reviewer_README.md +60 -0
  2. coach_wizards/code_reviewer_wizard.py +180 -0
  3. {empathy_framework-3.7.0.dist-info → empathy_framework-3.8.0.dist-info}/METADATA +148 -11
  4. empathy_framework-3.8.0.dist-info/RECORD +333 -0
  5. {empathy_framework-3.7.0.dist-info → empathy_framework-3.8.0.dist-info}/top_level.txt +5 -1
  6. empathy_healthcare_plugin/monitors/__init__.py +9 -0
  7. empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
  8. empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
  9. empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
  10. empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
  11. empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
  12. empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
  13. empathy_llm_toolkit/agent_factory/__init__.py +53 -0
  14. empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
  15. empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
  16. empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
  17. empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
  18. empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
  19. empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
  20. empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
  21. empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
  22. empathy_llm_toolkit/agent_factory/base.py +305 -0
  23. empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
  24. empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
  25. empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
  26. empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
  27. empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
  28. empathy_llm_toolkit/agent_factory/decorators.py +286 -0
  29. empathy_llm_toolkit/agent_factory/factory.py +558 -0
  30. empathy_llm_toolkit/agent_factory/framework.py +192 -0
  31. empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
  32. empathy_llm_toolkit/agent_factory/resilient.py +320 -0
  33. empathy_llm_toolkit/cli/__init__.py +8 -0
  34. empathy_llm_toolkit/cli/sync_claude.py +487 -0
  35. empathy_llm_toolkit/code_health.py +150 -3
  36. empathy_llm_toolkit/config/__init__.py +29 -0
  37. empathy_llm_toolkit/config/unified.py +295 -0
  38. empathy_llm_toolkit/routing/__init__.py +32 -0
  39. empathy_llm_toolkit/routing/model_router.py +362 -0
  40. empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
  41. empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
  42. empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
  43. empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
  44. empathy_llm_toolkit/security/README.md +262 -0
  45. empathy_llm_toolkit/security/__init__.py +62 -0
  46. empathy_llm_toolkit/security/audit_logger.py +929 -0
  47. empathy_llm_toolkit/security/audit_logger_example.py +152 -0
  48. empathy_llm_toolkit/security/pii_scrubber.py +640 -0
  49. empathy_llm_toolkit/security/secrets_detector.py +678 -0
  50. empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
  51. empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
  52. empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
  53. empathy_llm_toolkit/wizards/__init__.py +38 -0
  54. empathy_llm_toolkit/wizards/base_wizard.py +364 -0
  55. empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
  56. empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
  57. empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
  58. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
  59. empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
  60. empathy_os/__init__.py +52 -52
  61. empathy_os/adaptive/__init__.py +13 -0
  62. empathy_os/adaptive/task_complexity.py +127 -0
  63. empathy_os/cache/__init__.py +117 -0
  64. empathy_os/cache/base.py +166 -0
  65. empathy_os/cache/dependency_manager.py +253 -0
  66. empathy_os/cache/hash_only.py +248 -0
  67. empathy_os/cache/hybrid.py +390 -0
  68. empathy_os/cache/storage.py +282 -0
  69. empathy_os/cli.py +118 -8
  70. empathy_os/cli_unified.py +121 -1
  71. empathy_os/config/__init__.py +63 -0
  72. empathy_os/config/xml_config.py +239 -0
  73. empathy_os/config.py +2 -1
  74. empathy_os/dashboard/__init__.py +15 -0
  75. empathy_os/dashboard/server.py +743 -0
  76. empathy_os/memory/__init__.py +195 -0
  77. empathy_os/memory/claude_memory.py +466 -0
  78. empathy_os/memory/config.py +224 -0
  79. empathy_os/memory/control_panel.py +1298 -0
  80. empathy_os/memory/edges.py +179 -0
  81. empathy_os/memory/graph.py +567 -0
  82. empathy_os/memory/long_term.py +1194 -0
  83. empathy_os/memory/nodes.py +179 -0
  84. empathy_os/memory/redis_bootstrap.py +540 -0
  85. empathy_os/memory/security/__init__.py +31 -0
  86. empathy_os/memory/security/audit_logger.py +930 -0
  87. empathy_os/memory/security/pii_scrubber.py +640 -0
  88. empathy_os/memory/security/secrets_detector.py +678 -0
  89. empathy_os/memory/short_term.py +2119 -0
  90. empathy_os/memory/storage/__init__.py +15 -0
  91. empathy_os/memory/summary_index.py +583 -0
  92. empathy_os/memory/unified.py +619 -0
  93. empathy_os/metrics/__init__.py +12 -0
  94. empathy_os/metrics/prompt_metrics.py +190 -0
  95. empathy_os/models/__init__.py +136 -0
  96. empathy_os/models/__main__.py +13 -0
  97. empathy_os/models/cli.py +655 -0
  98. empathy_os/models/empathy_executor.py +354 -0
  99. empathy_os/models/executor.py +252 -0
  100. empathy_os/models/fallback.py +671 -0
  101. empathy_os/models/provider_config.py +563 -0
  102. empathy_os/models/registry.py +382 -0
  103. empathy_os/models/tasks.py +302 -0
  104. empathy_os/models/telemetry.py +548 -0
  105. empathy_os/models/token_estimator.py +378 -0
  106. empathy_os/models/validation.py +274 -0
  107. empathy_os/monitoring/__init__.py +52 -0
  108. empathy_os/monitoring/alerts.py +23 -0
  109. empathy_os/monitoring/alerts_cli.py +268 -0
  110. empathy_os/monitoring/multi_backend.py +271 -0
  111. empathy_os/monitoring/otel_backend.py +363 -0
  112. empathy_os/optimization/__init__.py +19 -0
  113. empathy_os/optimization/context_optimizer.py +272 -0
  114. empathy_os/plugins/__init__.py +28 -0
  115. empathy_os/plugins/base.py +361 -0
  116. empathy_os/plugins/registry.py +268 -0
  117. empathy_os/project_index/__init__.py +30 -0
  118. empathy_os/project_index/cli.py +335 -0
  119. empathy_os/project_index/crew_integration.py +430 -0
  120. empathy_os/project_index/index.py +425 -0
  121. empathy_os/project_index/models.py +501 -0
  122. empathy_os/project_index/reports.py +473 -0
  123. empathy_os/project_index/scanner.py +538 -0
  124. empathy_os/prompts/__init__.py +61 -0
  125. empathy_os/prompts/config.py +77 -0
  126. empathy_os/prompts/context.py +177 -0
  127. empathy_os/prompts/parser.py +285 -0
  128. empathy_os/prompts/registry.py +313 -0
  129. empathy_os/prompts/templates.py +208 -0
  130. empathy_os/resilience/__init__.py +56 -0
  131. empathy_os/resilience/circuit_breaker.py +256 -0
  132. empathy_os/resilience/fallback.py +179 -0
  133. empathy_os/resilience/health.py +300 -0
  134. empathy_os/resilience/retry.py +209 -0
  135. empathy_os/resilience/timeout.py +135 -0
  136. empathy_os/routing/__init__.py +43 -0
  137. empathy_os/routing/chain_executor.py +433 -0
  138. empathy_os/routing/classifier.py +217 -0
  139. empathy_os/routing/smart_router.py +234 -0
  140. empathy_os/routing/wizard_registry.py +307 -0
  141. empathy_os/trust/__init__.py +28 -0
  142. empathy_os/trust/circuit_breaker.py +579 -0
  143. empathy_os/validation/__init__.py +19 -0
  144. empathy_os/validation/xml_validator.py +281 -0
  145. empathy_os/wizard_factory_cli.py +170 -0
  146. empathy_os/workflows/__init__.py +360 -0
  147. empathy_os/workflows/base.py +1660 -0
  148. empathy_os/workflows/bug_predict.py +962 -0
  149. empathy_os/workflows/code_review.py +960 -0
  150. empathy_os/workflows/code_review_adapters.py +310 -0
  151. empathy_os/workflows/code_review_pipeline.py +720 -0
  152. empathy_os/workflows/config.py +600 -0
  153. empathy_os/workflows/dependency_check.py +648 -0
  154. empathy_os/workflows/document_gen.py +1069 -0
  155. empathy_os/workflows/documentation_orchestrator.py +1205 -0
  156. empathy_os/workflows/health_check.py +679 -0
  157. empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
  158. empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
  159. empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
  160. empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
  161. empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
  162. empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
  163. empathy_os/workflows/manage_documentation.py +804 -0
  164. empathy_os/workflows/new_sample_workflow1.py +146 -0
  165. empathy_os/workflows/new_sample_workflow1_README.md +150 -0
  166. empathy_os/workflows/perf_audit.py +687 -0
  167. empathy_os/workflows/pr_review.py +748 -0
  168. empathy_os/workflows/progress.py +445 -0
  169. empathy_os/workflows/progress_server.py +322 -0
  170. empathy_os/workflows/refactor_plan.py +693 -0
  171. empathy_os/workflows/release_prep.py +808 -0
  172. empathy_os/workflows/research_synthesis.py +404 -0
  173. empathy_os/workflows/secure_release.py +585 -0
  174. empathy_os/workflows/security_adapters.py +297 -0
  175. empathy_os/workflows/security_audit.py +1046 -0
  176. empathy_os/workflows/step_config.py +234 -0
  177. empathy_os/workflows/test5.py +125 -0
  178. empathy_os/workflows/test5_README.md +158 -0
  179. empathy_os/workflows/test_gen.py +1855 -0
  180. empathy_os/workflows/test_lifecycle.py +526 -0
  181. empathy_os/workflows/test_maintenance.py +626 -0
  182. empathy_os/workflows/test_maintenance_cli.py +590 -0
  183. empathy_os/workflows/test_maintenance_crew.py +821 -0
  184. empathy_os/workflows/xml_enhanced_crew.py +285 -0
  185. empathy_software_plugin/cli/__init__.py +120 -0
  186. empathy_software_plugin/cli/inspect.py +362 -0
  187. empathy_software_plugin/cli.py +3 -1
  188. empathy_software_plugin/wizards/__init__.py +42 -0
  189. empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
  190. empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
  191. empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
  192. empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
  193. empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
  194. empathy_software_plugin/wizards/base_wizard.py +288 -0
  195. empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
  196. empathy_software_plugin/wizards/code_review_wizard.py +606 -0
  197. empathy_software_plugin/wizards/debugging/__init__.py +50 -0
  198. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
  199. empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
  200. empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
  201. empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
  202. empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
  203. empathy_software_plugin/wizards/debugging/verification.py +369 -0
  204. empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
  205. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
  206. empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
  207. empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
  208. empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
  209. empathy_software_plugin/wizards/performance/__init__.py +9 -0
  210. empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
  211. empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
  212. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
  213. empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
  214. empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
  215. empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
  216. empathy_software_plugin/wizards/security/__init__.py +32 -0
  217. empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
  218. empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
  219. empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
  220. empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
  221. empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
  222. empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
  223. empathy_software_plugin/wizards/testing/__init__.py +27 -0
  224. empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
  225. empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
  226. empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
  227. empathy_software_plugin/wizards/testing_wizard.py +274 -0
  228. hot_reload/README.md +473 -0
  229. hot_reload/__init__.py +62 -0
  230. hot_reload/config.py +84 -0
  231. hot_reload/integration.py +228 -0
  232. hot_reload/reloader.py +298 -0
  233. hot_reload/watcher.py +179 -0
  234. hot_reload/websocket.py +176 -0
  235. scaffolding/README.md +589 -0
  236. scaffolding/__init__.py +35 -0
  237. scaffolding/__main__.py +14 -0
  238. scaffolding/cli.py +240 -0
  239. test_generator/__init__.py +38 -0
  240. test_generator/__main__.py +14 -0
  241. test_generator/cli.py +226 -0
  242. test_generator/generator.py +325 -0
  243. test_generator/risk_analyzer.py +216 -0
  244. workflow_patterns/__init__.py +33 -0
  245. workflow_patterns/behavior.py +249 -0
  246. workflow_patterns/core.py +76 -0
  247. workflow_patterns/output.py +99 -0
  248. workflow_patterns/registry.py +255 -0
  249. workflow_patterns/structural.py +288 -0
  250. workflow_scaffolding/__init__.py +11 -0
  251. workflow_scaffolding/__main__.py +12 -0
  252. workflow_scaffolding/cli.py +206 -0
  253. workflow_scaffolding/generator.py +265 -0
  254. agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
  255. agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
  256. agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
  257. agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
  258. agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
  259. agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
  260. agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
  261. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
  262. agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
  263. agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
  264. agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
  265. agents/compliance_anticipation_agent.py +0 -1422
  266. agents/compliance_db.py +0 -339
  267. agents/epic_integration_wizard.py +0 -530
  268. agents/notifications.py +0 -291
  269. agents/trust_building_behaviors.py +0 -872
  270. empathy_framework-3.7.0.dist-info/RECORD +0 -105
  271. {empathy_framework-3.7.0.dist-info → empathy_framework-3.8.0.dist-info}/WHEEL +0 -0
  272. {empathy_framework-3.7.0.dist-info → empathy_framework-3.8.0.dist-info}/entry_points.txt +0 -0
  273. {empathy_framework-3.7.0.dist-info → empathy_framework-3.8.0.dist-info}/licenses/LICENSE +0 -0
  274. /empathy_os/{monitoring.py → agent_monitoring.py} +0 -0
@@ -0,0 +1,63 @@
1
+ """Configuration management for Empathy Framework.
2
+
3
+ This package provides:
4
+ 1. Original EmpathyConfig (backward compatible)
5
+ 2. XML enhancement configurations (new)
6
+
7
+ Copyright 2026 Smart-AI-Memory
8
+ Licensed under Fair Source License 0.9
9
+ """
10
+
11
+ # Import original config from parent module's config.py for backward compatibility
12
+ import importlib.util
13
+ import sys
14
+ from pathlib import Path
15
+
16
+ # Check if PyYAML is available
17
+ try:
18
+ import yaml # noqa: F401
19
+
20
+ YAML_AVAILABLE = True
21
+ except ImportError:
22
+ YAML_AVAILABLE = False
23
+
24
+ # Load the original config.py module directly
25
+ config_py_path = Path(__file__).parent.parent / "config.py"
26
+ spec = importlib.util.spec_from_file_location("empathy_os_config_legacy", config_py_path)
27
+ if spec and spec.loader:
28
+ legacy_config = importlib.util.module_from_spec(spec)
29
+ spec.loader.exec_module(legacy_config)
30
+ EmpathyConfig = legacy_config.EmpathyConfig
31
+ load_config = legacy_config.load_config
32
+ else:
33
+ # Fallback if import fails
34
+ EmpathyConfig = None
35
+ load_config = None
36
+
37
+ # Import XML enhancement configs
38
+ from empathy_os.config.xml_config import ( # noqa: E402
39
+ AdaptiveConfig,
40
+ EmpathyXMLConfig,
41
+ I18nConfig,
42
+ MetricsConfig,
43
+ OptimizationConfig,
44
+ XMLConfig,
45
+ get_config,
46
+ set_config,
47
+ )
48
+
49
+ __all__ = [
50
+ # Original config (backward compatible)
51
+ "EmpathyConfig",
52
+ "load_config",
53
+ "YAML_AVAILABLE",
54
+ # XML enhancement configs
55
+ "XMLConfig",
56
+ "OptimizationConfig",
57
+ "AdaptiveConfig",
58
+ "I18nConfig",
59
+ "MetricsConfig",
60
+ "EmpathyXMLConfig",
61
+ "get_config",
62
+ "set_config",
63
+ ]
@@ -0,0 +1,239 @@
1
+ """Configuration system for XML-enhanced prompting features.
2
+
3
+ Provides feature flags and settings for all 6 XML enhancement options:
4
+ 1. Workflow migration settings
5
+ 2. XML schema validation
6
+ 3. Prompt metrics tracking
7
+ 4. Context window optimization
8
+ 5. Dynamic prompt adaptation
9
+ 6. Multi-language support
10
+
11
+ Copyright 2026 Smart-AI-Memory
12
+ Licensed under Fair Source License 0.9
13
+ """
14
+
15
+ import json
16
+ import os
17
+ from dataclasses import asdict, dataclass, field
18
+ from pathlib import Path
19
+
20
+
21
+ @dataclass
22
+ class XMLConfig:
23
+ """XML prompting configuration.
24
+
25
+ Controls XML-enhanced prompt behavior and validation.
26
+ """
27
+
28
+ use_xml_structure: bool = True # Default to XML prompts
29
+ validate_schemas: bool = False # Feature flag for validation
30
+ schema_dir: str = ".empathy/schemas"
31
+ strict_validation: bool = False # Fail on validation errors
32
+
33
+
34
+ @dataclass
35
+ class OptimizationConfig:
36
+ """Context window optimization configuration.
37
+
38
+ Controls prompt compression and token reduction strategies.
39
+ """
40
+
41
+ compression_level: str = "moderate" # none, light, moderate, aggressive
42
+ use_short_tags: bool = True
43
+ strip_whitespace: bool = True
44
+ cache_system_prompts: bool = True
45
+ max_context_tokens: int = 8000
46
+
47
+
48
+ @dataclass
49
+ class AdaptiveConfig:
50
+ """Adaptive prompting configuration.
51
+
52
+ Controls dynamic model tier and compression selection based on task complexity.
53
+ """
54
+
55
+ enable_adaptation: bool = True
56
+ model_tier_mapping: dict[str, str] = field(
57
+ default_factory=lambda: {
58
+ "simple": "gpt-3.5-turbo",
59
+ "moderate": "gpt-4",
60
+ "complex": "gpt-4",
61
+ "very_complex": "gpt-4-turbo-preview",
62
+ }
63
+ )
64
+ complexity_thresholds: dict[str, int] = field(
65
+ default_factory=lambda: {
66
+ "simple_tokens": 100,
67
+ "moderate_tokens": 500,
68
+ "complex_tokens": 2000,
69
+ }
70
+ )
71
+
72
+
73
+ @dataclass
74
+ class I18nConfig:
75
+ """Internationalization configuration.
76
+
77
+ Controls multi-language support for XML prompts.
78
+ """
79
+
80
+ default_language: str = "en"
81
+ translate_tags: bool = False # Keep tags in English by default
82
+ translate_content: bool = True
83
+ fallback_to_english: bool = True
84
+ translation_dir: str = ".empathy/translations"
85
+
86
+
87
+ @dataclass
88
+ class MetricsConfig:
89
+ """Metrics tracking configuration.
90
+
91
+ Controls prompt performance metrics collection and storage.
92
+ """
93
+
94
+ enable_tracking: bool = True
95
+ metrics_file: str = ".empathy/prompt_metrics.json"
96
+ track_token_usage: bool = True
97
+ track_latency: bool = True
98
+ track_retries: bool = True
99
+ track_parsing_success: bool = True
100
+
101
+
102
+ @dataclass
103
+ class EmpathyXMLConfig:
104
+ """Main Empathy XML enhancement configuration.
105
+
106
+ Combines all feature configurations with centralized management.
107
+
108
+ Usage:
109
+ config = EmpathyXMLConfig.load_from_file()
110
+ if config.xml.use_xml_structure:
111
+ use_xml_prompts()
112
+
113
+ # Or create custom config
114
+ config = EmpathyXMLConfig(
115
+ xml=XMLConfig(validate_schemas=True),
116
+ metrics=MetricsConfig(enable_tracking=True)
117
+ )
118
+ config.save_to_file()
119
+ """
120
+
121
+ xml: XMLConfig = field(default_factory=XMLConfig)
122
+ optimization: OptimizationConfig = field(default_factory=OptimizationConfig)
123
+ adaptive: AdaptiveConfig = field(default_factory=AdaptiveConfig)
124
+ i18n: I18nConfig = field(default_factory=I18nConfig)
125
+ metrics: MetricsConfig = field(default_factory=MetricsConfig)
126
+
127
+ @classmethod
128
+ def load_from_file(cls, config_file: str = ".empathy/config.json") -> "EmpathyXMLConfig":
129
+ """Load configuration from JSON file.
130
+
131
+ Args:
132
+ config_file: Path to config file (default: .empathy/config.json)
133
+
134
+ Returns:
135
+ EmpathyXMLConfig instance loaded from file, or default config if file doesn't exist
136
+ """
137
+ path = Path(config_file)
138
+
139
+ if not path.exists():
140
+ # Return default config if file doesn't exist
141
+ return cls()
142
+
143
+ try:
144
+ with open(path) as f:
145
+ data = json.load(f)
146
+
147
+ # Reconstruct nested dataclasses
148
+ return cls(
149
+ xml=XMLConfig(**data.get("xml", {})),
150
+ optimization=OptimizationConfig(**data.get("optimization", {})),
151
+ adaptive=AdaptiveConfig(**data.get("adaptive", {})),
152
+ i18n=I18nConfig(**data.get("i18n", {})),
153
+ metrics=MetricsConfig(**data.get("metrics", {})),
154
+ )
155
+ except Exception as e:
156
+ # Return default config on error
157
+ print(f"Warning: Failed to load config from {config_file}: {e}")
158
+ return cls()
159
+
160
+ def save_to_file(self, config_file: str = ".empathy/config.json") -> None:
161
+ """Save configuration to JSON file.
162
+
163
+ Args:
164
+ config_file: Path to save config (default: .empathy/config.json)
165
+ """
166
+ path = Path(config_file)
167
+ path.parent.mkdir(parents=True, exist_ok=True)
168
+
169
+ data = {
170
+ "xml": asdict(self.xml),
171
+ "optimization": asdict(self.optimization),
172
+ "adaptive": asdict(self.adaptive),
173
+ "i18n": asdict(self.i18n),
174
+ "metrics": asdict(self.metrics),
175
+ }
176
+
177
+ with open(path, "w") as f:
178
+ json.dump(data, f, indent=2)
179
+
180
+ @classmethod
181
+ def from_env(cls) -> "EmpathyXMLConfig":
182
+ """Load configuration from environment variables.
183
+
184
+ Environment variables:
185
+ EMPATHY_XML_ENABLED: Enable XML prompts (default: true)
186
+ EMPATHY_VALIDATION_ENABLED: Enable schema validation (default: false)
187
+ EMPATHY_METRICS_ENABLED: Enable metrics tracking (default: true)
188
+ EMPATHY_OPTIMIZATION_LEVEL: Compression level (default: moderate)
189
+ EMPATHY_ADAPTIVE_ENABLED: Enable adaptive prompts (default: true)
190
+
191
+ Returns:
192
+ EmpathyXMLConfig with settings from environment variables
193
+ """
194
+ return cls(
195
+ xml=XMLConfig(
196
+ use_xml_structure=os.getenv("EMPATHY_XML_ENABLED", "true").lower() == "true",
197
+ validate_schemas=os.getenv("EMPATHY_VALIDATION_ENABLED", "false").lower() == "true",
198
+ ),
199
+ optimization=OptimizationConfig(
200
+ compression_level=os.getenv("EMPATHY_OPTIMIZATION_LEVEL", "moderate"),
201
+ ),
202
+ adaptive=AdaptiveConfig(
203
+ enable_adaptation=os.getenv("EMPATHY_ADAPTIVE_ENABLED", "true").lower() == "true",
204
+ ),
205
+ metrics=MetricsConfig(
206
+ enable_tracking=os.getenv("EMPATHY_METRICS_ENABLED", "true").lower() == "true",
207
+ ),
208
+ )
209
+
210
+
211
+ # Global default configuration instance
212
+ _global_config: EmpathyXMLConfig | None = None
213
+
214
+
215
+ def get_config() -> EmpathyXMLConfig:
216
+ """Get global configuration instance.
217
+
218
+ Returns cached config or loads from file if not yet loaded.
219
+
220
+ Returns:
221
+ Global EmpathyXMLConfig instance
222
+ """
223
+ global _global_config
224
+
225
+ if _global_config is None:
226
+ # Try to load from file, fall back to defaults
227
+ _global_config = EmpathyXMLConfig.load_from_file()
228
+
229
+ return _global_config
230
+
231
+
232
+ def set_config(config: EmpathyXMLConfig) -> None:
233
+ """Set global configuration instance.
234
+
235
+ Args:
236
+ config: EmpathyXMLConfig to use globally
237
+ """
238
+ global _global_config
239
+ _global_config = config
empathy_os/config.py CHANGED
@@ -475,7 +475,8 @@ def load_config(
475
475
  try:
476
476
  env_config = EmpathyConfig.from_env()
477
477
  config = config.merge(env_config)
478
- except Exception:
478
+ except (ValueError, TypeError):
479
+ # Graceful fallback: invalid env var type conversion
479
480
  pass # Use current config if environment parsing fails
480
481
 
481
482
  # Validate final configuration
@@ -0,0 +1,15 @@
1
+ """Visual Dashboard for Empathy Framework
2
+
3
+ Web-based view of patterns, costs, and health trends.
4
+
5
+ Usage:
6
+ empathy dashboard
7
+ # Opens browser to http://localhost:8765
8
+
9
+ Copyright 2025 Smart-AI-Memory
10
+ Licensed under Fair Source License 0.9
11
+ """
12
+
13
+ from empathy_os.dashboard.server import cmd_dashboard, run_dashboard
14
+
15
+ __all__ = ["cmd_dashboard", "run_dashboard"]