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,190 @@
1
+ """Customer Support Wizard - Privacy-Compliant AI Assistant
2
+
3
+ Specialized wizard for customer support with PII protection, ticket management,
4
+ and comprehensive audit logging.
5
+
6
+ Key Features:
7
+ - Customer PII detection and protection
8
+ - Automatic de-identification before LLM processing
9
+ - Ticket and case number tracking
10
+ - Comprehensive audit trail
11
+ - Support escalation handling
12
+ - Automatic classification as INTERNAL
13
+
14
+ Copyright 2025 Smart AI Memory, LLC
15
+ Licensed under Fair Source 0.9
16
+ """
17
+
18
+ import logging
19
+
20
+ from empathy_llm_toolkit import EmpathyLLM
21
+
22
+ from .base_wizard import BaseWizard, WizardConfig
23
+
24
+ logger = logging.getLogger(__name__)
25
+
26
+
27
+ # Customer support PII patterns
28
+ SUPPORT_PII_PATTERNS = [
29
+ # Standard PII
30
+ "email",
31
+ "phone",
32
+ "address",
33
+ "credit_card",
34
+ "ip_address",
35
+ # Support-specific
36
+ "customer_id",
37
+ "ticket_number",
38
+ "order_number",
39
+ "account_number",
40
+ ]
41
+
42
+
43
+ class CustomerSupportWizard(BaseWizard):
44
+ """Privacy-compliant customer support AI assistant
45
+
46
+ Implements customer PII protection for support operations:
47
+ 1. Customer PII detection and scrubbing
48
+ 2. Ticket tracking and management
49
+ 3. Encryption for sensitive customer data
50
+ 4. Comprehensive audit logging
51
+ 5. 2-year retention
52
+ 6. Access control enforcement
53
+
54
+ Example:
55
+ >>> from empathy_llm_toolkit import EmpathyLLM
56
+ >>> from empathy_llm_toolkit.wizards import CustomerSupportWizard
57
+ >>>
58
+ >>> llm = EmpathyLLM(
59
+ ... provider="anthropic",
60
+ ... api_key=os.getenv("ANTHROPIC_API_KEY"),
61
+ ... enable_security=True,
62
+ ... )
63
+ >>>
64
+ >>> wizard = CustomerSupportWizard(llm)
65
+ >>>
66
+ >>> result = await wizard.process(
67
+ ... user_input="Help resolve customer issue with order #12345",
68
+ ... user_id="agent@company.com"
69
+ ... )
70
+
71
+ """
72
+
73
+ def __init__(
74
+ self,
75
+ llm: EmpathyLLM,
76
+ custom_pii_patterns: list[str] | None = None,
77
+ ):
78
+ """Initialize customer support wizard
79
+
80
+ Args:
81
+ llm: EmpathyLLM instance (security recommended)
82
+ custom_pii_patterns: Additional company-specific PII patterns
83
+
84
+ """
85
+ pii_patterns = SUPPORT_PII_PATTERNS.copy()
86
+
87
+ if custom_pii_patterns:
88
+ pii_patterns.extend(custom_pii_patterns)
89
+
90
+ config = WizardConfig(
91
+ name="Customer Support Assistant",
92
+ description="Privacy-compliant AI assistant for customer support teams",
93
+ domain="customer_support",
94
+ default_empathy_level=4, # Anticipatory - predicts customer needs
95
+ enable_security=True,
96
+ pii_patterns=pii_patterns,
97
+ enable_secrets_detection=True,
98
+ block_on_secrets=True,
99
+ audit_all_access=True,
100
+ retention_days=730, # 2 years
101
+ default_classification="INTERNAL",
102
+ auto_classify=True,
103
+ )
104
+
105
+ super().__init__(llm, config)
106
+
107
+ logger.info(
108
+ f"CustomerSupportWizard initialized: {len(pii_patterns)} PII patterns, "
109
+ f"empathy level={config.default_empathy_level}, security={llm.enable_security}",
110
+ )
111
+
112
+ def _build_system_prompt(self, user_input: str = "") -> str:
113
+ """Build customer support system prompt
114
+
115
+ Uses XML-enhanced prompts if enabled for improved consistency
116
+ and reduced hallucinations in customer-facing scenarios.
117
+ """
118
+ # Check if XML prompts are enabled
119
+ if self._is_xml_enabled():
120
+ # Use XML-enhanced prompt for better structure
121
+ return self._render_xml_prompt(
122
+ role="privacy-compliant AI customer support assistant for help desk operations",
123
+ goal="Assist support agents with customer inquiries, issue resolution, and excellent service delivery",
124
+ instructions=[
125
+ "Assist support agents with customer inquiries and technical issues",
126
+ "Provide product knowledge, troubleshooting steps, and resolution guidance",
127
+ "Help draft clear, empathetic customer communications",
128
+ "Support ticket management, resolution tracking, and escalation decisions",
129
+ "Recommend solutions based on company policies and best practices",
130
+ "Maintain professional yet friendly communication style",
131
+ ],
132
+ constraints=[
133
+ "CRITICAL: All customer PII automatically de-identified - never request or display customer names, emails, accounts",
134
+ "You are a support tool assisting agents, NOT a replacement for human judgment",
135
+ "CANNOT make refund, replacement, or policy exception decisions autonomously",
136
+ "Always defer to supervisors for complex, sensitive, or high-value cases",
137
+ "Prioritize customer satisfaction while following company policies",
138
+ "Customer privacy paramount - all interactions logged for audit",
139
+ ],
140
+ input_type="support_query",
141
+ input_payload=user_input if user_input else "[Support agent query]",
142
+ extra={
143
+ "domain": "Customer Support / Help Desk",
144
+ "empathy_level": self.config.default_empathy_level,
145
+ "pii_patterns_enabled": len(self.config.pii_patterns),
146
+ "retention_days": self.config.retention_days,
147
+ },
148
+ )
149
+ else:
150
+ # Fallback to legacy plain text prompt
151
+ return """You are a privacy-compliant AI customer support assistant.
152
+
153
+ **Domain**: Customer Support / Help Desk
154
+
155
+ **Your Role**:
156
+ - Assist support agents with customer inquiries and issues
157
+ - Provide product knowledge and troubleshooting guidance
158
+ - Help draft customer communications
159
+ - Support ticket resolution and escalation
160
+
161
+ **Customer Privacy**:
162
+ - All customer PII is automatically de-identified before you see it
163
+ - Never request or display customer names, emails, or account numbers
164
+ - Maintain customer confidentiality at all times
165
+ - Focus on issue resolution and service excellence
166
+
167
+ **Support Guidelines**:
168
+ - Prioritize customer satisfaction and issue resolution
169
+ - Provide clear, actionable solutions
170
+ - Escalate complex issues appropriately
171
+ - Follow company policies and procedures
172
+
173
+ **Communication Style**:
174
+ - Empathetic and patient
175
+ - Clear and helpful
176
+ - Solution-oriented
177
+ - Professional yet friendly
178
+
179
+ **Important Disclaimers**:
180
+ - You are a support tool to assist agents, not a replacement for human judgment
181
+ - Cannot make refund, replacement, or policy exception decisions
182
+ - Always defer to supervisors for complex or sensitive cases
183
+ - Recommendations should be reviewed by support agents
184
+
185
+ Remember: Customer satisfaction and privacy are paramount. Interactions are logged.
186
+ """
187
+
188
+ def get_pii_patterns(self) -> list[str]:
189
+ """Get list of customer support PII patterns being detected"""
190
+ return self.config.pii_patterns.copy()
@@ -0,0 +1,362 @@
1
+ """Healthcare Wizard - HIPAA-Compliant AI Assistant
2
+
3
+ Specialized wizard for healthcare applications with enhanced PHI protection,
4
+ mandatory encryption, comprehensive audit logging, and HIPAA compliance features.
5
+
6
+ Key Features:
7
+ - Enhanced PHI/PII detection (10+ medical patterns)
8
+ - Automatic de-identification before LLM processing
9
+ - Mandatory AES-256-GCM encryption for all data
10
+ - 90-day minimum retention (HIPAA §164.528)
11
+ - Comprehensive audit trail (HIPAA §164.312(b))
12
+ - Access control and permission enforcement
13
+ - Automatic classification as SENSITIVE
14
+
15
+ Reference:
16
+ - HIPAA Security Rule (45 CFR §164.312)
17
+ - HIPAA Privacy Rule (45 CFR §164.514)
18
+ - HITECH Act requirements
19
+
20
+ Copyright 2025 Smart AI Memory, LLC
21
+ Licensed under Fair Source 0.9
22
+ """
23
+
24
+ import logging
25
+ from typing import Any
26
+
27
+ from empathy_llm_toolkit import EmpathyLLM
28
+
29
+ from .base_wizard import BaseWizard, WizardConfig
30
+
31
+ logger = logging.getLogger(__name__)
32
+
33
+
34
+ # Enhanced PHI patterns for healthcare (beyond standard PII)
35
+ HEALTHCARE_PHI_PATTERNS = [
36
+ # Standard PII (enabled by default)
37
+ "email",
38
+ "phone",
39
+ "ssn",
40
+ "address",
41
+ "credit_card",
42
+ "ip_address",
43
+ # Healthcare-specific PHI
44
+ "mrn", # Medical Record Number
45
+ "patient_id", # Patient identifier
46
+ "dob", # Date of birth
47
+ "insurance_id", # Insurance/policy numbers
48
+ "provider_npi", # National Provider Identifier
49
+ "cpt_code", # Medical procedure codes
50
+ "icd_code", # Diagnosis codes
51
+ "medication_name", # Medication names (optional, configurable)
52
+ ]
53
+
54
+
55
+ class HealthcareWizard(BaseWizard):
56
+ """HIPAA-compliant healthcare AI assistant
57
+
58
+ Implements defense-in-depth security for Protected Health Information (PHI):
59
+ 1. Enhanced PHI detection and scrubbing
60
+ 2. Secrets detection (API keys, passwords in medical software configs)
61
+ 3. Mandatory encryption (AES-256-GCM)
62
+ 4. Comprehensive audit logging
63
+ 5. 90-day minimum retention
64
+ 6. Access control enforcement
65
+
66
+ Example:
67
+ >>> from empathy_llm_toolkit import EmpathyLLM
68
+ >>> from empathy_llm_toolkit.wizards import HealthcareWizard
69
+ >>>
70
+ >>> llm = EmpathyLLM(
71
+ ... provider="anthropic",
72
+ ... api_key=os.getenv("ANTHROPIC_API_KEY"),
73
+ ... enable_security=True,
74
+ ... )
75
+ >>>
76
+ >>> wizard = HealthcareWizard(llm)
77
+ >>>
78
+ >>> result = await wizard.process(
79
+ ... user_input="Patient John Doe (MRN 123456) needs follow-up",
80
+ ... user_id="doctor@hospital.com"
81
+ ... )
82
+ >>>
83
+ >>> print(result['security_report']['phi_removed']) # PHI was scrubbed
84
+
85
+ """
86
+
87
+ def __init__(
88
+ self,
89
+ llm: EmpathyLLM,
90
+ enable_medication_scrubbing: bool = False,
91
+ enable_diagnosis_scrubbing: bool = False,
92
+ custom_phi_patterns: list[str] | None = None,
93
+ ):
94
+ """Initialize HIPAA-compliant healthcare wizard
95
+
96
+ Args:
97
+ llm: EmpathyLLM instance (security should be enabled)
98
+ enable_medication_scrubbing: Scrub medication names (may reduce context)
99
+ enable_diagnosis_scrubbing: Scrub diagnosis codes (may reduce context)
100
+ custom_phi_patterns: Additional facility-specific PHI patterns
101
+
102
+ Note:
103
+ For maximum HIPAA compliance, llm should be initialized with
104
+ enable_security=True. This wizard enforces SENSITIVE classification
105
+ and 90-day retention regardless of LLM security settings.
106
+
107
+ """
108
+ # Build PHI pattern list
109
+ phi_patterns = HEALTHCARE_PHI_PATTERNS.copy()
110
+
111
+ if not enable_medication_scrubbing:
112
+ phi_patterns.remove("medication_name")
113
+ if not enable_diagnosis_scrubbing:
114
+ if "cpt_code" in phi_patterns:
115
+ phi_patterns.remove("cpt_code")
116
+ if "icd_code" in phi_patterns:
117
+ phi_patterns.remove("icd_code")
118
+
119
+ if custom_phi_patterns:
120
+ phi_patterns.extend(custom_phi_patterns)
121
+
122
+ # HIPAA-compliant configuration
123
+ config = WizardConfig(
124
+ name="Healthcare Assistant",
125
+ description="HIPAA-compliant AI assistant for healthcare professionals",
126
+ domain="healthcare",
127
+ # Empathy configuration
128
+ default_empathy_level=3, # Proactive - anticipates needs
129
+ # Security configuration (HIPAA requirements)
130
+ enable_security=True,
131
+ pii_patterns=phi_patterns,
132
+ enable_secrets_detection=True,
133
+ block_on_secrets=True, # CRITICAL: Block if secrets detected
134
+ # Audit configuration (HIPAA §164.312(b))
135
+ audit_all_access=True, # Log every interaction
136
+ retention_days=90, # HIPAA minimum for audit logs
137
+ # Classification (HIPAA §164.514)
138
+ default_classification="SENSITIVE", # PHI is always SENSITIVE
139
+ auto_classify=True,
140
+ )
141
+
142
+ super().__init__(llm, config)
143
+
144
+ # Verify security is enabled
145
+ if not llm.enable_security:
146
+ logger.warning(
147
+ "HealthcareWizard initialized with security DISABLED. "
148
+ "HIPAA compliance requires enable_security=True in EmpathyLLM.",
149
+ )
150
+
151
+ logger.info(
152
+ f"HealthcareWizard initialized: {len(phi_patterns)} PHI patterns, "
153
+ f"empathy level={config.default_empathy_level}, security={llm.enable_security}",
154
+ )
155
+
156
+ async def process(
157
+ self,
158
+ user_input: str,
159
+ user_id: str,
160
+ empathy_level: int | None = None,
161
+ session_context: dict[str, Any] | None = None,
162
+ patient_id: str | None = None,
163
+ ) -> dict[str, Any]:
164
+ """Process healthcare request with HIPAA compliance
165
+
166
+ Args:
167
+ user_input: Healthcare professional's message (may contain PHI)
168
+ user_id: Healthcare provider identifier (email, NPI, etc.)
169
+ empathy_level: Override default empathy level
170
+ session_context: Session metadata (encounter ID, facility, etc.)
171
+ patient_id: Patient identifier for audit trail (optional)
172
+
173
+ Returns:
174
+ Dict containing:
175
+ - response: De-identified AI response
176
+ - security_report: PHI scrubbing and security scan results
177
+ - empathy_level: Level used
178
+ - hipaa_compliance: Compliance status
179
+ - audit_event_id: Audit trail event ID
180
+
181
+ Raises:
182
+ SecurityError: If secrets detected in input
183
+ ValueError: If invalid user_id or parameters
184
+
185
+ """
186
+ # Enhance session context with patient ID for audit trail
187
+ if patient_id:
188
+ if session_context is None:
189
+ session_context = {}
190
+ session_context["patient_id"] = patient_id
191
+
192
+ # Log PHI access
193
+ self.logger.info(
194
+ f"PHI access: user={user_id}, wizard={self.config.name}, "
195
+ f"patient={patient_id}, audit=True",
196
+ )
197
+
198
+ # Process through base wizard (handles security pipeline)
199
+ result = await super().process(
200
+ user_input=user_input,
201
+ user_id=user_id,
202
+ empathy_level=empathy_level,
203
+ session_context=session_context,
204
+ )
205
+
206
+ # Add HIPAA compliance metadata
207
+ result["hipaa_compliance"] = {
208
+ "phi_detected": result.get("security_report", {}).get("pii_count", 0) > 0,
209
+ "phi_scrubbed": True if self.llm.enable_security else False,
210
+ "encrypted": result.get("security_report", {}).get("encrypted", False),
211
+ "audit_logged": True,
212
+ "retention_days": self.config.retention_days,
213
+ "classification": "SENSITIVE",
214
+ }
215
+
216
+ # Log completion
217
+ self.logger.info(
218
+ f"PHI processing complete: user={user_id}, "
219
+ f"detected={result['hipaa_compliance']['phi_detected']}, "
220
+ f"scrubbed={result['hipaa_compliance']['phi_scrubbed']}",
221
+ )
222
+
223
+ return result
224
+
225
+ def _build_system_prompt(self, user_input: str = "") -> str:
226
+ """Build HIPAA-aware system prompt for healthcare domain
227
+
228
+ Includes:
229
+ - Healthcare domain knowledge
230
+ - HIPAA compliance reminders
231
+ - Clinical communication best practices
232
+ - Patient privacy emphasis
233
+
234
+ Uses XML-enhanced prompts if enabled for improved reliability
235
+ and reduced hallucinations (critical for HIPAA compliance).
236
+ """
237
+ # Check if XML prompts are enabled
238
+ if self._is_xml_enabled():
239
+ # Use XML-enhanced prompt for better structure and HIPAA compliance
240
+ return self._render_xml_prompt(
241
+ role="HIPAA-compliant AI healthcare assistant for clinical decision support",
242
+ goal="Assist healthcare professionals with evidence-based clinical guidance while maintaining strict HIPAA compliance and patient safety",
243
+ instructions=[
244
+ "Provide clinical decision support based on current evidence-based guidelines",
245
+ "Support clinical documentation following standardized formats (SBAR, SOAP, etc.)",
246
+ "Help with care coordination and patient management workflows",
247
+ "Use standardized medical terminology (ICD-10, CPT, SNOMED) where appropriate",
248
+ "Acknowledge limitations and suggest specialist consultation when needed",
249
+ "Maintain professional, empathetic communication",
250
+ ],
251
+ constraints=[
252
+ "CRITICAL: All PHI is automatically de-identified - never request or display patient identifiers",
253
+ "You are a decision support tool, NOT a replacement for professional clinical judgment",
254
+ "NEVER diagnose or prescribe - support licensed healthcare providers who do",
255
+ "In emergencies, direct to appropriate emergency services immediately",
256
+ "Focus on clinical reasoning and evidence-based medicine",
257
+ "Patient safety and privacy are paramount - all interactions logged for HIPAA compliance",
258
+ ],
259
+ input_type="clinical_query",
260
+ input_payload=user_input if user_input else "[Healthcare professional query]",
261
+ extra={
262
+ "domain": "Healthcare / Clinical Medicine",
263
+ "compliance": "HIPAA §164.312 (Security Rule), §164.514 (Privacy Rule)",
264
+ "empathy_level": self.config.default_empathy_level,
265
+ "phi_detection_enabled": len(self.config.pii_patterns),
266
+ },
267
+ )
268
+ else:
269
+ # Fallback to legacy plain text prompt
270
+ return """You are a HIPAA-compliant AI healthcare assistant.
271
+
272
+ **Domain**: Healthcare / Clinical Medicine
273
+
274
+ **Your Role**:
275
+ - Assist healthcare professionals with clinical decision support
276
+ - Provide evidence-based medical information
277
+ - Support clinical documentation and communication
278
+ - Help with care coordination and patient management
279
+
280
+ **HIPAA Compliance**:
281
+ - All patient data (PHI) is automatically de-identified before you see it
282
+ - Never request or display patient identifiers in your responses
283
+ - Focus on clinical reasoning and medical knowledge
284
+ - Maintain patient confidentiality at all times
285
+
286
+ **Clinical Guidelines**:
287
+ - Base recommendations on current evidence-based guidelines
288
+ - Acknowledge limitations and suggest consulting specialists when appropriate
289
+ - Use standardized medical terminology (ICD-10, CPT, SNOMED)
290
+ - Follow clinical communication best practices (SBAR, SOAP, etc.)
291
+
292
+ **Communication Style**:
293
+ - Professional and empathetic
294
+ - Clear and concise
295
+ - Evidence-based
296
+ - Action-oriented when appropriate
297
+
298
+ **Important Disclaimers**:
299
+ - You are a clinical decision support tool, not a replacement for professional judgment
300
+ - Always defer to licensed healthcare providers for final decisions
301
+ - In emergencies, direct users to appropriate emergency services
302
+ - Do not diagnose or prescribe - support healthcare professionals who do
303
+
304
+ Remember: Patient safety and privacy are paramount. Interactions are logged for HIPAA compliance.
305
+ """
306
+
307
+ def get_phi_patterns(self) -> list[str]:
308
+ """Get list of PHI patterns being detected"""
309
+ return self.config.pii_patterns.copy()
310
+
311
+ def get_hipaa_compliance_status(self) -> dict[str, Any]:
312
+ """Get HIPAA compliance status for this wizard
313
+
314
+ Returns:
315
+ Dict with compliance checks and recommendations
316
+
317
+ """
318
+ status: dict[str, Any] = {
319
+ "compliant": True,
320
+ "checks": {},
321
+ "recommendations": [],
322
+ }
323
+
324
+ # Check 1: Security enabled
325
+ status["checks"]["security_enabled"] = self.llm.enable_security
326
+ if not self.llm.enable_security:
327
+ status["compliant"] = False
328
+ status["recommendations"].append(
329
+ "Enable security in EmpathyLLM (enable_security=True) for HIPAA compliance",
330
+ )
331
+
332
+ # Check 2: Encryption for SENSITIVE data
333
+ # Note: Encryption is handled by SecureMemDocsIntegration, not directly by EmpathyLLM
334
+ status["checks"]["encryption_enabled"] = self.llm.enable_security
335
+ if not status["checks"]["encryption_enabled"]:
336
+ status["recommendations"].append(
337
+ "Enable encryption for SENSITIVE data (HIPAA §164.312(a)(2)(iv))",
338
+ )
339
+
340
+ # Check 3: Audit logging
341
+ status["checks"]["audit_logging"] = (
342
+ self.llm.enable_security and self.config.audit_all_access
343
+ )
344
+ if not status["checks"]["audit_logging"]:
345
+ status["compliant"] = False
346
+ status["recommendations"].append(
347
+ "Enable comprehensive audit logging (HIPAA §164.312(b))",
348
+ )
349
+
350
+ # Check 4: PHI detection
351
+ status["checks"]["phi_detection"] = len(self.config.pii_patterns) >= 10
352
+ if not status["checks"]["phi_detection"]:
353
+ status["recommendations"].append("Enable comprehensive PHI detection patterns")
354
+
355
+ # Check 5: Minimum retention
356
+ status["checks"]["retention_policy"] = self.config.retention_days >= 90
357
+ if not status["checks"]["retention_policy"]:
358
+ status["recommendations"].append(
359
+ "Set minimum 90-day retention for audit logs (HIPAA §164.528)",
360
+ )
361
+
362
+ return status
@@ -0,0 +1,64 @@
1
+ # Patient Assessment Wizard
2
+
3
+ **Domain:** healthcare
4
+ **Type:** Wizard
5
+ **Generated:** Pattern-Compose Methodology
6
+
7
+ ## Overview
8
+
9
+ Auto-generated wizard using proven patterns from the Empathy Framework.
10
+
11
+ ## Patterns Used
12
+
13
+ - **Empathy Level**: 0-4 empathy level configuration
14
+ - **User Guidance**: Help text, examples, and prompts
15
+ - **Linear Flow**: Step-by-step wizard with review and approval
16
+ - **Structured Fields**: Predefined fields per step with validation
17
+ - **Step Validation**: Ensure steps are completed in order
18
+ - **User Approval**: Preview → Explicit Approval → Finalize
19
+ - **Educational Banner**: Safety notices and educational content
20
+ - **AI Enhancement**: Improve user input with AI
21
+ - **Config Validation**: Validate wizard configuration on initialization
22
+ - **Session-Based**: State management with session storage
23
+
24
+ ## Usage
25
+
26
+ ```python
27
+ from wizards.patient_assessment_wizard import PatientAssessmentWizard
28
+
29
+ wizard = PatientAssessmentWizard()
30
+ result = await wizard.process(user_input="...")
31
+ ```
32
+
33
+ ## API Endpoints
34
+
35
+ ```bash
36
+ # Process with wizard
37
+ POST /api/wizard/patient_assessment/process
38
+ {
39
+ "input": "your input here",
40
+ "context": {}
41
+ }
42
+ ```
43
+
44
+ ## Testing
45
+
46
+ ```bash
47
+ # Run unit tests
48
+ pytest tests/unit/wizards/test_patient_assessment_wizard.py
49
+
50
+ # Run with coverage
51
+ pytest tests/unit/wizards/test_patient_assessment_wizard.py --cov
52
+ ```
53
+
54
+ ## Next Steps
55
+
56
+ 1. Customize wizard logic as needed
57
+ 2. Add domain-specific validation
58
+ 3. Extend with additional features
59
+ 4. Update tests for custom logic
60
+
61
+ ---
62
+
63
+ **Generated by:** Empathy Framework - Wizard Factory
64
+ **Methodology:** Pattern-Compose