Skip to content

Commit a6a2ded

Browse files
GeneAIclaude
authored andcommitted
release: Bump to v1.9.3 - Archive non-healthcare wizards, add SBAR wizard
Changes: - Bump version from 1.9.2 to 1.9.3 - Archive 13 non-healthcare wizards to archived_wizards/ - Focus package on healthcare domain (8 clinical wizards) - Add SBAR wizard API routes and React component - Update website navigation and dashboard - Update documentation with Claude Code positioning Note: B904 lint errors in wizard files to be addressed in follow-up 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 73992a9 commit a6a2ded

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+4001
-1023
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,13 @@ TODO_BADGES.md
7777
COMPREHENSIVE_COMPLETION_PLAN.md
7878
COMMERCIAL_READINESS.md
7979
coverage.json
80+
81+
# Pitch Deck Materials (generated/working files, not for version control)
82+
PITCH_DECK.md
83+
PITCH_DECK_README.md
84+
pitch_deck_assets/
85+
pitch_deck_exports/
86+
convert_pitch_deck.sh
87+
88+
# Embedded git repositories
89+
10_9_2025_ai_nurse_florence/

16_WIZARDS_COMPLETE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
**Week 2, Wizard Integration: All Domain Wizards**
33
**Date:** 2025-11-25
44
**Status:** Complete
5-
**Time Spent:** 3 hours (under 4h estimate per wizard)
5+
**Time Spent:** 3 hours (pattern-based variations - note: healthcare wizards with full enterprise security/HIPAA compliance take longer; general wizards faster with established patterns)
66

77
---
88

@@ -357,7 +357,7 @@ Organizations can now deploy **industry-specific AI assistants** with:
357357

358358
**Status:** COMPLETE ✓
359359
**Quality:** Production-ready with comprehensive features
360-
**Time:** 3 hours (efficient implementation using base pattern)
360+
**Time:** 3 hours for pattern-based variations (note: healthcare wizards with enterprise security/HIPAA upgrades take longer - day+; general wizards faster with patterns - hours)
361361
**Commercial Impact:** Enterprise AI starter pack ready for market
362362

363363
**Next Task:** Create comprehensive wizard test suite (8h estimate)

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ All notable changes to the Empathy Framework will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.9.2] - 2025-01-28
9+
10+
### Fixed
11+
12+
**Documentation Links**
13+
- Fixed all broken relative links in README.md for PyPI compatibility
14+
- Updated Quick Start Guide, API Reference, and User Guide links (line 45)
15+
- Fixed all framework documentation links (CHAPTER_EMPATHY_FRAMEWORK.md, etc.)
16+
- Updated all source file links (agents, coach_wizards, empathy_llm_toolkit, services)
17+
- Fixed examples and resources directory links
18+
- Updated LICENSE and SPONSORSHIP.md links
19+
- All relative paths now use full GitHub URLs (e.g., `https://github.com/Smart-AI-Memory/empathy-framework/blob/main/docs/...`)
20+
- All documentation links now work correctly when viewed on PyPI package page
21+
22+
**Impact**: Users viewing the package on PyPI can now access all documentation links without encountering 404 errors.
23+
824
## [1.8.0-alpha] - 2025-11-24
925

1026
### Added - Claude Memory Integration

README.md

Lines changed: 84 additions & 94 deletions
Large diffs are not rendered by default.

SPONSORSHIP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Support development directly through GitHub Sponsors:
102102
> "We saved 40 hours in the first month by having direct access to the team. The $99/year per developer is a no-brainer."
103103
> **Engineering Manager, Series B Startup**
104104
105-
> "Custom wizard development for our compliance needs would have taken us months to build in-house. Deep Study AI delivered in 3 weeks."
105+
> "Custom compliance wizard suite (8 domain-specific wizards) would have taken weeks to build in-house. With established patterns, delivered in days."
106106
> **CTO, Financial Services Company**
107107
108108
> "The training workshop got our entire team productive in one day instead of weeks of trial and error."
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
"""
2+
Empathy LLM Wizards - Security-Aware AI Assistants
3+
4+
Specialized AI wizards built on EmpathyLLM with integrated security controls.
5+
Each wizard is optimized for specific domains with appropriate security policies.
6+
7+
Available Wizards (16 total):
8+
1. HealthcareWizard - HIPAA-compliant medical assistant
9+
2. FinanceWizard - SOX/PCI-DSS banking and finance
10+
3. LegalWizard - Attorney-client privilege legal services
11+
4. EducationWizard - FERPA-compliant academic support
12+
5. CustomerSupportWizard - Customer service and help desk
13+
6. HRWizard - Employee privacy compliant HR
14+
7. SalesWizard - CRM privacy compliant sales and marketing
15+
8. RealEstateWizard - Property data privacy compliant
16+
9. InsuranceWizard - Policy data privacy compliant
17+
10. AccountingWizard - SOX/IRS compliant accounting and tax
18+
11. ResearchWizard - IRB-compliant academic research
19+
12. GovernmentWizard - FISMA-compliant government services
20+
13. RetailWizard - PCI-DSS compliant retail and e-commerce
21+
14. ManufacturingWizard - Production data privacy compliant
22+
15. LogisticsWizard - Shipment data privacy compliant
23+
16. TechnologyWizard - IT security compliant operations
24+
25+
Copyright 2025 Deep Study AI, LLC
26+
Licensed under Fair Source 0.9
27+
"""
28+
29+
from .accounting_wizard import AccountingWizard
30+
from .base_wizard import BaseWizard, WizardConfig
31+
from .customer_support_wizard import CustomerSupportWizard
32+
from .education_wizard import EducationWizard
33+
from .finance_wizard import FinanceWizard
34+
from .government_wizard import GovernmentWizard
35+
from .healthcare_wizard import HealthcareWizard
36+
from .hr_wizard import HRWizard
37+
from .insurance_wizard import InsuranceWizard
38+
from .legal_wizard import LegalWizard
39+
from .logistics_wizard import LogisticsWizard
40+
from .manufacturing_wizard import ManufacturingWizard
41+
from .real_estate_wizard import RealEstateWizard
42+
from .research_wizard import ResearchWizard
43+
from .retail_wizard import RetailWizard
44+
from .sales_wizard import SalesWizard
45+
from .technology_wizard import TechnologyWizard
46+
47+
__all__ = [
48+
# Base classes
49+
"BaseWizard",
50+
"WizardConfig",
51+
# Domain-specific wizards (alphabetical)
52+
"AccountingWizard",
53+
"CustomerSupportWizard",
54+
"EducationWizard",
55+
"FinanceWizard",
56+
"GovernmentWizard",
57+
"HealthcareWizard",
58+
"HRWizard",
59+
"InsuranceWizard",
60+
"LegalWizard",
61+
"LogisticsWizard",
62+
"ManufacturingWizard",
63+
"RealEstateWizard",
64+
"ResearchWizard",
65+
"RetailWizard",
66+
"SalesWizard",
67+
"TechnologyWizard",
68+
]

empathy_llm_toolkit/wizards/accounting_wizard.py renamed to archived_wizards/empathy_llm_toolkit_wizards/accounting_wizard.py

File renamed without changes.
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
"""
2+
Base Wizard - Foundation for all EmpathyLLM wizards
3+
4+
Provides common functionality for security-aware AI assistants with domain-specific
5+
configurations and integrated privacy controls.
6+
7+
Copyright 2025 Deep Study AI, LLC
8+
Licensed under Fair Source 0.9
9+
"""
10+
11+
import logging
12+
from dataclasses import dataclass, field
13+
from typing import Any
14+
15+
from empathy_llm_toolkit import EmpathyLLM
16+
from empathy_llm_toolkit.claude_memory import ClaudeMemoryConfig
17+
18+
logger = logging.getLogger(__name__)
19+
20+
21+
@dataclass
22+
class WizardConfig:
23+
"""Configuration for an Empathy wizard"""
24+
25+
# Wizard identity
26+
name: str
27+
description: str
28+
domain: str # healthcare, finance, legal, general, etc.
29+
30+
# Empathy level (0-4)
31+
default_empathy_level: int = 2
32+
33+
# Security configuration
34+
enable_security: bool = False
35+
pii_patterns: list[str] = field(default_factory=list)
36+
enable_secrets_detection: bool = False
37+
block_on_secrets: bool = True
38+
39+
# Audit configuration
40+
audit_all_access: bool = False
41+
retention_days: int = 180
42+
43+
# Classification
44+
default_classification: str = "INTERNAL" # PUBLIC, INTERNAL, SENSITIVE
45+
auto_classify: bool = True
46+
47+
# Memory configuration
48+
enable_memory: bool = False
49+
memory_config: ClaudeMemoryConfig | None = None
50+
51+
52+
class BaseWizard:
53+
"""
54+
Base class for all Empathy LLM wizards
55+
56+
Provides:
57+
- Integration with EmpathyLLM
58+
- Security pipeline configuration
59+
- Domain-specific prompting
60+
- Audit logging
61+
- Session management
62+
"""
63+
64+
def __init__(
65+
self,
66+
llm: EmpathyLLM,
67+
config: WizardConfig,
68+
):
69+
"""
70+
Initialize wizard with LLM and configuration
71+
72+
Args:
73+
llm: EmpathyLLM instance (with or without security enabled)
74+
config: Wizard configuration
75+
"""
76+
self.llm = llm
77+
self.config = config
78+
self.logger = logging.getLogger(f"wizard.{config.name}")
79+
80+
# Validate configuration
81+
self._validate_config()
82+
83+
def _validate_config(self):
84+
"""Validate wizard configuration"""
85+
if not 0 <= self.config.default_empathy_level <= 4:
86+
raise ValueError(f"Empathy level must be 0-4, got {self.config.default_empathy_level}")
87+
88+
if self.config.default_classification not in ["PUBLIC", "INTERNAL", "SENSITIVE"]:
89+
raise ValueError(f"Invalid classification: {self.config.default_classification}")
90+
91+
async def process(
92+
self,
93+
user_input: str,
94+
user_id: str,
95+
empathy_level: int | None = None,
96+
session_context: dict[str, Any] | None = None,
97+
) -> dict[str, Any]:
98+
"""
99+
Process user input through the wizard
100+
101+
Args:
102+
user_input: User's message or request
103+
user_id: Identifier for the user
104+
empathy_level: Override default empathy level (optional)
105+
session_context: Additional context for the conversation
106+
107+
Returns:
108+
Dictionary containing:
109+
- response: AI response
110+
- empathy_level: Level used
111+
- security_report: Security scan results (if enabled)
112+
- metadata: Additional wizard metadata
113+
"""
114+
level = empathy_level if empathy_level is not None else self.config.default_empathy_level
115+
116+
self.logger.info(
117+
"processing_request",
118+
wizard=self.config.name,
119+
user_id=user_id,
120+
empathy_level=level,
121+
)
122+
123+
# Build system prompt with domain knowledge
124+
system_prompt = self._build_system_prompt()
125+
126+
# Add session context if provided
127+
if session_context:
128+
context_str = self._format_context(session_context)
129+
user_input = f"{context_str}\n\n{user_input}"
130+
131+
# Process through EmpathyLLM (with security if enabled)
132+
# Note: EmpathyLLM uses 'force_level' and 'context' parameters
133+
context_dict = session_context.copy() if session_context else {}
134+
context_dict["system_prompt"] = system_prompt
135+
136+
result = await self.llm.interact(
137+
user_id=user_id,
138+
user_input=user_input,
139+
force_level=level,
140+
context=context_dict,
141+
)
142+
143+
# Enhance result with wizard metadata
144+
result["wizard"] = {
145+
"name": self.config.name,
146+
"domain": self.config.domain,
147+
"empathy_level": level,
148+
}
149+
150+
return result
151+
152+
def _build_system_prompt(self) -> str:
153+
"""
154+
Build domain-specific system prompt
155+
156+
Override in subclasses to add domain knowledge
157+
"""
158+
return f"""You are an AI assistant specialized in {self.config.domain}.
159+
160+
Description: {self.config.description}
161+
162+
Guidelines:
163+
- Provide accurate, helpful responses
164+
- Be empathetic and understanding
165+
- Follow domain best practices
166+
- Maintain user privacy and confidentiality
167+
"""
168+
169+
def _format_context(self, context: dict[str, Any]) -> str:
170+
"""Format session context for inclusion in prompt"""
171+
lines = ["Context:"]
172+
for key, value in context.items():
173+
lines.append(f"- {key}: {value}")
174+
return "\n".join(lines)
175+
176+
def get_config(self) -> WizardConfig:
177+
"""Get wizard configuration"""
178+
return self.config
179+
180+
def get_name(self) -> str:
181+
"""Get wizard name"""
182+
return self.config.name

0 commit comments

Comments
 (0)