empathy-framework 3.2.3__py3-none-any.whl → 3.8.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- coach_wizards/__init__.py +11 -12
- coach_wizards/accessibility_wizard.py +12 -12
- coach_wizards/api_wizard.py +12 -12
- coach_wizards/base_wizard.py +26 -20
- coach_wizards/cicd_wizard.py +15 -13
- coach_wizards/code_reviewer_README.md +60 -0
- coach_wizards/code_reviewer_wizard.py +180 -0
- coach_wizards/compliance_wizard.py +12 -12
- coach_wizards/database_wizard.py +12 -12
- coach_wizards/debugging_wizard.py +12 -12
- coach_wizards/documentation_wizard.py +12 -12
- coach_wizards/generate_wizards.py +1 -2
- coach_wizards/localization_wizard.py +101 -19
- coach_wizards/migration_wizard.py +12 -12
- coach_wizards/monitoring_wizard.py +12 -12
- coach_wizards/observability_wizard.py +12 -12
- coach_wizards/performance_wizard.py +12 -12
- coach_wizards/prompt_engineering_wizard.py +22 -25
- coach_wizards/refactoring_wizard.py +12 -12
- coach_wizards/scaling_wizard.py +12 -12
- coach_wizards/security_wizard.py +12 -12
- coach_wizards/testing_wizard.py +12 -12
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/METADATA +513 -58
- empathy_framework-3.8.2.dist-info/RECORD +333 -0
- empathy_framework-3.8.2.dist-info/entry_points.txt +22 -0
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/top_level.txt +5 -1
- empathy_healthcare_plugin/__init__.py +1 -2
- empathy_healthcare_plugin/monitors/__init__.py +9 -0
- empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +315 -0
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +44 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +300 -0
- empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +214 -0
- empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +306 -0
- empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +389 -0
- empathy_llm_toolkit/__init__.py +7 -7
- empathy_llm_toolkit/agent_factory/__init__.py +53 -0
- empathy_llm_toolkit/agent_factory/adapters/__init__.py +85 -0
- empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +312 -0
- empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +454 -0
- empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +298 -0
- empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +362 -0
- empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +333 -0
- empathy_llm_toolkit/agent_factory/adapters/native.py +228 -0
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +426 -0
- empathy_llm_toolkit/agent_factory/base.py +305 -0
- empathy_llm_toolkit/agent_factory/crews/__init__.py +67 -0
- empathy_llm_toolkit/agent_factory/crews/code_review.py +1113 -0
- empathy_llm_toolkit/agent_factory/crews/health_check.py +1246 -0
- empathy_llm_toolkit/agent_factory/crews/refactoring.py +1128 -0
- empathy_llm_toolkit/agent_factory/crews/security_audit.py +1018 -0
- empathy_llm_toolkit/agent_factory/decorators.py +286 -0
- empathy_llm_toolkit/agent_factory/factory.py +558 -0
- empathy_llm_toolkit/agent_factory/framework.py +192 -0
- empathy_llm_toolkit/agent_factory/memory_integration.py +324 -0
- empathy_llm_toolkit/agent_factory/resilient.py +320 -0
- empathy_llm_toolkit/claude_memory.py +14 -15
- empathy_llm_toolkit/cli/__init__.py +8 -0
- empathy_llm_toolkit/cli/sync_claude.py +487 -0
- empathy_llm_toolkit/code_health.py +177 -22
- empathy_llm_toolkit/config/__init__.py +29 -0
- empathy_llm_toolkit/config/unified.py +295 -0
- empathy_llm_toolkit/contextual_patterns.py +11 -12
- empathy_llm_toolkit/core.py +51 -49
- empathy_llm_toolkit/git_pattern_extractor.py +16 -12
- empathy_llm_toolkit/levels.py +6 -13
- empathy_llm_toolkit/pattern_confidence.py +14 -18
- empathy_llm_toolkit/pattern_resolver.py +10 -12
- empathy_llm_toolkit/pattern_summary.py +13 -11
- empathy_llm_toolkit/providers.py +194 -28
- empathy_llm_toolkit/routing/__init__.py +32 -0
- empathy_llm_toolkit/routing/model_router.py +362 -0
- empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +413 -0
- empathy_llm_toolkit/security/PHASE2_COMPLETE.md +384 -0
- empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
- empathy_llm_toolkit/security/QUICK_REFERENCE.md +316 -0
- empathy_llm_toolkit/security/README.md +262 -0
- empathy_llm_toolkit/security/__init__.py +62 -0
- empathy_llm_toolkit/security/audit_logger.py +929 -0
- empathy_llm_toolkit/security/audit_logger_example.py +152 -0
- empathy_llm_toolkit/security/pii_scrubber.py +640 -0
- empathy_llm_toolkit/security/secrets_detector.py +678 -0
- empathy_llm_toolkit/security/secrets_detector_example.py +304 -0
- empathy_llm_toolkit/security/secure_memdocs.py +1192 -0
- empathy_llm_toolkit/security/secure_memdocs_example.py +278 -0
- empathy_llm_toolkit/session_status.py +18 -20
- empathy_llm_toolkit/state.py +20 -21
- empathy_llm_toolkit/wizards/__init__.py +38 -0
- empathy_llm_toolkit/wizards/base_wizard.py +364 -0
- empathy_llm_toolkit/wizards/customer_support_wizard.py +190 -0
- empathy_llm_toolkit/wizards/healthcare_wizard.py +362 -0
- empathy_llm_toolkit/wizards/patient_assessment_README.md +64 -0
- empathy_llm_toolkit/wizards/patient_assessment_wizard.py +193 -0
- empathy_llm_toolkit/wizards/technology_wizard.py +194 -0
- empathy_os/__init__.py +76 -77
- empathy_os/adaptive/__init__.py +13 -0
- empathy_os/adaptive/task_complexity.py +127 -0
- empathy_os/{monitoring.py → agent_monitoring.py} +27 -27
- empathy_os/cache/__init__.py +117 -0
- empathy_os/cache/base.py +166 -0
- empathy_os/cache/dependency_manager.py +253 -0
- empathy_os/cache/hash_only.py +248 -0
- empathy_os/cache/hybrid.py +390 -0
- empathy_os/cache/storage.py +282 -0
- empathy_os/cli.py +515 -109
- empathy_os/cli_unified.py +189 -42
- empathy_os/config/__init__.py +63 -0
- empathy_os/config/xml_config.py +239 -0
- empathy_os/config.py +87 -36
- empathy_os/coordination.py +48 -54
- empathy_os/core.py +90 -99
- empathy_os/cost_tracker.py +20 -23
- empathy_os/dashboard/__init__.py +15 -0
- empathy_os/dashboard/server.py +743 -0
- empathy_os/discovery.py +9 -11
- empathy_os/emergence.py +20 -21
- empathy_os/exceptions.py +18 -30
- empathy_os/feedback_loops.py +27 -30
- empathy_os/levels.py +31 -34
- empathy_os/leverage_points.py +27 -28
- empathy_os/logging_config.py +11 -12
- empathy_os/memory/__init__.py +195 -0
- empathy_os/memory/claude_memory.py +466 -0
- empathy_os/memory/config.py +224 -0
- empathy_os/memory/control_panel.py +1298 -0
- empathy_os/memory/edges.py +179 -0
- empathy_os/memory/graph.py +567 -0
- empathy_os/memory/long_term.py +1194 -0
- empathy_os/memory/nodes.py +179 -0
- empathy_os/memory/redis_bootstrap.py +540 -0
- empathy_os/memory/security/__init__.py +31 -0
- empathy_os/memory/security/audit_logger.py +930 -0
- empathy_os/memory/security/pii_scrubber.py +640 -0
- empathy_os/memory/security/secrets_detector.py +678 -0
- empathy_os/memory/short_term.py +2119 -0
- empathy_os/memory/storage/__init__.py +15 -0
- empathy_os/memory/summary_index.py +583 -0
- empathy_os/memory/unified.py +619 -0
- empathy_os/metrics/__init__.py +12 -0
- empathy_os/metrics/prompt_metrics.py +190 -0
- empathy_os/models/__init__.py +136 -0
- empathy_os/models/__main__.py +13 -0
- empathy_os/models/cli.py +655 -0
- empathy_os/models/empathy_executor.py +354 -0
- empathy_os/models/executor.py +252 -0
- empathy_os/models/fallback.py +671 -0
- empathy_os/models/provider_config.py +563 -0
- empathy_os/models/registry.py +382 -0
- empathy_os/models/tasks.py +302 -0
- empathy_os/models/telemetry.py +548 -0
- empathy_os/models/token_estimator.py +378 -0
- empathy_os/models/validation.py +274 -0
- empathy_os/monitoring/__init__.py +52 -0
- empathy_os/monitoring/alerts.py +23 -0
- empathy_os/monitoring/alerts_cli.py +268 -0
- empathy_os/monitoring/multi_backend.py +271 -0
- empathy_os/monitoring/otel_backend.py +363 -0
- empathy_os/optimization/__init__.py +19 -0
- empathy_os/optimization/context_optimizer.py +272 -0
- empathy_os/pattern_library.py +29 -28
- empathy_os/persistence.py +30 -34
- empathy_os/platform_utils.py +261 -0
- empathy_os/plugins/__init__.py +28 -0
- empathy_os/plugins/base.py +361 -0
- empathy_os/plugins/registry.py +268 -0
- empathy_os/project_index/__init__.py +30 -0
- empathy_os/project_index/cli.py +335 -0
- empathy_os/project_index/crew_integration.py +430 -0
- empathy_os/project_index/index.py +425 -0
- empathy_os/project_index/models.py +501 -0
- empathy_os/project_index/reports.py +473 -0
- empathy_os/project_index/scanner.py +538 -0
- empathy_os/prompts/__init__.py +61 -0
- empathy_os/prompts/config.py +77 -0
- empathy_os/prompts/context.py +177 -0
- empathy_os/prompts/parser.py +285 -0
- empathy_os/prompts/registry.py +313 -0
- empathy_os/prompts/templates.py +208 -0
- empathy_os/redis_config.py +144 -58
- empathy_os/redis_memory.py +53 -56
- empathy_os/resilience/__init__.py +56 -0
- empathy_os/resilience/circuit_breaker.py +256 -0
- empathy_os/resilience/fallback.py +179 -0
- empathy_os/resilience/health.py +300 -0
- empathy_os/resilience/retry.py +209 -0
- empathy_os/resilience/timeout.py +135 -0
- empathy_os/routing/__init__.py +43 -0
- empathy_os/routing/chain_executor.py +433 -0
- empathy_os/routing/classifier.py +217 -0
- empathy_os/routing/smart_router.py +234 -0
- empathy_os/routing/wizard_registry.py +307 -0
- empathy_os/templates.py +12 -11
- empathy_os/trust/__init__.py +28 -0
- empathy_os/trust/circuit_breaker.py +579 -0
- empathy_os/trust_building.py +44 -36
- empathy_os/validation/__init__.py +19 -0
- empathy_os/validation/xml_validator.py +281 -0
- empathy_os/wizard_factory_cli.py +170 -0
- empathy_os/{workflows.py → workflow_commands.py} +123 -31
- empathy_os/workflows/__init__.py +360 -0
- empathy_os/workflows/base.py +1660 -0
- empathy_os/workflows/bug_predict.py +962 -0
- empathy_os/workflows/code_review.py +960 -0
- empathy_os/workflows/code_review_adapters.py +310 -0
- empathy_os/workflows/code_review_pipeline.py +720 -0
- empathy_os/workflows/config.py +600 -0
- empathy_os/workflows/dependency_check.py +648 -0
- empathy_os/workflows/document_gen.py +1069 -0
- empathy_os/workflows/documentation_orchestrator.py +1205 -0
- empathy_os/workflows/health_check.py +679 -0
- empathy_os/workflows/keyboard_shortcuts/__init__.py +39 -0
- empathy_os/workflows/keyboard_shortcuts/generators.py +386 -0
- empathy_os/workflows/keyboard_shortcuts/parsers.py +414 -0
- empathy_os/workflows/keyboard_shortcuts/prompts.py +295 -0
- empathy_os/workflows/keyboard_shortcuts/schema.py +193 -0
- empathy_os/workflows/keyboard_shortcuts/workflow.py +505 -0
- empathy_os/workflows/manage_documentation.py +804 -0
- empathy_os/workflows/new_sample_workflow1.py +146 -0
- empathy_os/workflows/new_sample_workflow1_README.md +150 -0
- empathy_os/workflows/perf_audit.py +687 -0
- empathy_os/workflows/pr_review.py +748 -0
- empathy_os/workflows/progress.py +445 -0
- empathy_os/workflows/progress_server.py +322 -0
- empathy_os/workflows/refactor_plan.py +693 -0
- empathy_os/workflows/release_prep.py +808 -0
- empathy_os/workflows/research_synthesis.py +404 -0
- empathy_os/workflows/secure_release.py +585 -0
- empathy_os/workflows/security_adapters.py +297 -0
- empathy_os/workflows/security_audit.py +1046 -0
- empathy_os/workflows/step_config.py +234 -0
- empathy_os/workflows/test5.py +125 -0
- empathy_os/workflows/test5_README.md +158 -0
- empathy_os/workflows/test_gen.py +1855 -0
- empathy_os/workflows/test_lifecycle.py +526 -0
- empathy_os/workflows/test_maintenance.py +626 -0
- empathy_os/workflows/test_maintenance_cli.py +590 -0
- empathy_os/workflows/test_maintenance_crew.py +821 -0
- empathy_os/workflows/xml_enhanced_crew.py +285 -0
- empathy_software_plugin/__init__.py +1 -2
- empathy_software_plugin/cli/__init__.py +120 -0
- empathy_software_plugin/cli/inspect.py +362 -0
- empathy_software_plugin/cli.py +35 -26
- empathy_software_plugin/plugin.py +4 -8
- empathy_software_plugin/wizards/__init__.py +42 -0
- empathy_software_plugin/wizards/advanced_debugging_wizard.py +392 -0
- empathy_software_plugin/wizards/agent_orchestration_wizard.py +511 -0
- empathy_software_plugin/wizards/ai_collaboration_wizard.py +503 -0
- empathy_software_plugin/wizards/ai_context_wizard.py +441 -0
- empathy_software_plugin/wizards/ai_documentation_wizard.py +503 -0
- empathy_software_plugin/wizards/base_wizard.py +288 -0
- empathy_software_plugin/wizards/book_chapter_wizard.py +519 -0
- empathy_software_plugin/wizards/code_review_wizard.py +606 -0
- empathy_software_plugin/wizards/debugging/__init__.py +50 -0
- empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +414 -0
- empathy_software_plugin/wizards/debugging/config_loaders.py +442 -0
- empathy_software_plugin/wizards/debugging/fix_applier.py +469 -0
- empathy_software_plugin/wizards/debugging/language_patterns.py +383 -0
- empathy_software_plugin/wizards/debugging/linter_parsers.py +470 -0
- empathy_software_plugin/wizards/debugging/verification.py +369 -0
- empathy_software_plugin/wizards/enhanced_testing_wizard.py +537 -0
- empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +816 -0
- empathy_software_plugin/wizards/multi_model_wizard.py +501 -0
- empathy_software_plugin/wizards/pattern_extraction_wizard.py +422 -0
- empathy_software_plugin/wizards/pattern_retriever_wizard.py +400 -0
- empathy_software_plugin/wizards/performance/__init__.py +9 -0
- empathy_software_plugin/wizards/performance/bottleneck_detector.py +221 -0
- empathy_software_plugin/wizards/performance/profiler_parsers.py +278 -0
- empathy_software_plugin/wizards/performance/trajectory_analyzer.py +429 -0
- empathy_software_plugin/wizards/performance_profiling_wizard.py +305 -0
- empathy_software_plugin/wizards/prompt_engineering_wizard.py +425 -0
- empathy_software_plugin/wizards/rag_pattern_wizard.py +461 -0
- empathy_software_plugin/wizards/security/__init__.py +32 -0
- empathy_software_plugin/wizards/security/exploit_analyzer.py +290 -0
- empathy_software_plugin/wizards/security/owasp_patterns.py +241 -0
- empathy_software_plugin/wizards/security/vulnerability_scanner.py +604 -0
- empathy_software_plugin/wizards/security_analysis_wizard.py +322 -0
- empathy_software_plugin/wizards/security_learning_wizard.py +740 -0
- empathy_software_plugin/wizards/tech_debt_wizard.py +726 -0
- empathy_software_plugin/wizards/testing/__init__.py +27 -0
- empathy_software_plugin/wizards/testing/coverage_analyzer.py +459 -0
- empathy_software_plugin/wizards/testing/quality_analyzer.py +531 -0
- empathy_software_plugin/wizards/testing/test_suggester.py +533 -0
- empathy_software_plugin/wizards/testing_wizard.py +274 -0
- hot_reload/README.md +473 -0
- hot_reload/__init__.py +62 -0
- hot_reload/config.py +84 -0
- hot_reload/integration.py +228 -0
- hot_reload/reloader.py +298 -0
- hot_reload/watcher.py +179 -0
- hot_reload/websocket.py +176 -0
- scaffolding/README.md +589 -0
- scaffolding/__init__.py +35 -0
- scaffolding/__main__.py +14 -0
- scaffolding/cli.py +240 -0
- test_generator/__init__.py +38 -0
- test_generator/__main__.py +14 -0
- test_generator/cli.py +226 -0
- test_generator/generator.py +325 -0
- test_generator/risk_analyzer.py +216 -0
- workflow_patterns/__init__.py +33 -0
- workflow_patterns/behavior.py +249 -0
- workflow_patterns/core.py +76 -0
- workflow_patterns/output.py +99 -0
- workflow_patterns/registry.py +255 -0
- workflow_patterns/structural.py +288 -0
- workflow_scaffolding/__init__.py +11 -0
- workflow_scaffolding/__main__.py +12 -0
- workflow_scaffolding/cli.py +206 -0
- workflow_scaffolding/generator.py +265 -0
- agents/code_inspection/patterns/inspection/recurring_B112.json +0 -18
- agents/code_inspection/patterns/inspection/recurring_F541.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -25
- agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -16
- agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -16
- agents/compliance_anticipation_agent.py +0 -1427
- agents/epic_integration_wizard.py +0 -541
- agents/trust_building_behaviors.py +0 -891
- empathy_framework-3.2.3.dist-info/RECORD +0 -104
- empathy_framework-3.2.3.dist-info/entry_points.txt +0 -7
- empathy_llm_toolkit/htmlcov/status.json +0 -1
- empathy_llm_toolkit/security/htmlcov/status.json +0 -1
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/WHEEL +0 -0
- {empathy_framework-3.2.3.dist-info → empathy_framework-3.8.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"""Secure MemDocs Integration - Example Usage
|
|
2
|
+
|
|
3
|
+
Demonstrates Phase 2 enterprise privacy integration with:
|
|
4
|
+
- PII scrubbing
|
|
5
|
+
- Secrets detection
|
|
6
|
+
- Three-tier classification
|
|
7
|
+
- Encryption for SENSITIVE patterns
|
|
8
|
+
- Audit logging
|
|
9
|
+
|
|
10
|
+
Author: Empathy Framework Team
|
|
11
|
+
Version: 1.8.0-beta
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
# Add parent directory to path for imports
|
|
18
|
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
|
19
|
+
|
|
20
|
+
from empathy_llm_toolkit.security import SecureMemDocsIntegration, SecurityError
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def example_basic_usage():
|
|
24
|
+
"""Example 1: Basic pattern storage with auto-classification"""
|
|
25
|
+
print("\n=== Example 1: Basic Pattern Storage ===\n")
|
|
26
|
+
|
|
27
|
+
# Initialize secure integration
|
|
28
|
+
integration = SecureMemDocsIntegration(
|
|
29
|
+
storage_dir="./example_memdocs",
|
|
30
|
+
audit_log_dir="./example_logs",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Store a simple pattern
|
|
34
|
+
content = """
|
|
35
|
+
Standard Python sorting algorithm implementation:
|
|
36
|
+
|
|
37
|
+
def quick_sort(arr):
|
|
38
|
+
if len(arr) <= 1:
|
|
39
|
+
return arr
|
|
40
|
+
pivot = arr[len(arr) // 2]
|
|
41
|
+
left = [x for x in arr if x < pivot]
|
|
42
|
+
middle = [x for x in arr if x == pivot]
|
|
43
|
+
right = [x for x in arr if x > pivot]
|
|
44
|
+
return quick_sort(left) + middle + quick_sort(right)
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
result = integration.store_pattern(
|
|
48
|
+
content=content,
|
|
49
|
+
pattern_type="algorithm",
|
|
50
|
+
user_id="developer@company.com",
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
print("Pattern stored successfully!")
|
|
54
|
+
print(f" Pattern ID: {result['pattern_id']}")
|
|
55
|
+
print(f" Classification: {result['classification']}")
|
|
56
|
+
print(f" PII removed: {result['sanitization_report']['pii_count']}")
|
|
57
|
+
print(f" Encrypted: {result['metadata']['encrypted']}")
|
|
58
|
+
print(f" Retention: {result['metadata']['retention_days']} days")
|
|
59
|
+
|
|
60
|
+
return result["pattern_id"]
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def example_pii_scrubbing():
|
|
64
|
+
"""Example 2: PII scrubbing in action"""
|
|
65
|
+
print("\n=== Example 2: PII Scrubbing ===\n")
|
|
66
|
+
|
|
67
|
+
integration = SecureMemDocsIntegration(
|
|
68
|
+
storage_dir="./example_memdocs",
|
|
69
|
+
audit_log_dir="./example_logs",
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
# Content with PII
|
|
73
|
+
content = """
|
|
74
|
+
Contact Information:
|
|
75
|
+
- Email: john.doe@example.com
|
|
76
|
+
- Phone: 555-123-4567
|
|
77
|
+
- SSN: 123-45-6789
|
|
78
|
+
|
|
79
|
+
For support, call our team at support@company.com
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
result = integration.store_pattern(
|
|
83
|
+
content=content,
|
|
84
|
+
pattern_type="contact_info",
|
|
85
|
+
user_id="hr@company.com",
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
print("Pattern stored with PII scrubbing:")
|
|
89
|
+
print(f" Pattern ID: {result['pattern_id']}")
|
|
90
|
+
print(f" PII removed: {result['sanitization_report']['pii_count']} items")
|
|
91
|
+
for pii_item in result["sanitization_report"]["pii_removed"]:
|
|
92
|
+
print(f" - {pii_item['type']}")
|
|
93
|
+
|
|
94
|
+
# Retrieve to see scrubbed content
|
|
95
|
+
pattern = integration.retrieve_pattern(
|
|
96
|
+
pattern_id=result["pattern_id"],
|
|
97
|
+
user_id="hr@company.com",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
print("\nRetrieved content (PII scrubbed):")
|
|
101
|
+
print(pattern["content"][:200] + "...")
|
|
102
|
+
|
|
103
|
+
return result["pattern_id"]
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def example_secrets_blocking():
|
|
107
|
+
"""Example 3: Secrets detection blocks storage"""
|
|
108
|
+
print("\n=== Example 3: Secrets Detection ===\n")
|
|
109
|
+
|
|
110
|
+
integration = SecureMemDocsIntegration(
|
|
111
|
+
storage_dir="./example_memdocs",
|
|
112
|
+
audit_log_dir="./example_logs",
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
# Content with secrets (WILL BE BLOCKED)
|
|
116
|
+
content = """
|
|
117
|
+
# Configuration
|
|
118
|
+
ANTHROPIC_API_KEY = "sk-ant-api03-abc123xyz789..."
|
|
119
|
+
OPENAI_API_KEY = "sk-proj-abc123xyz789..."
|
|
120
|
+
DATABASE_URL = "postgres://user:password@localhost:5432/db"
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
try:
|
|
124
|
+
integration.store_pattern(
|
|
125
|
+
content=content,
|
|
126
|
+
pattern_type="config",
|
|
127
|
+
user_id="developer@company.com",
|
|
128
|
+
)
|
|
129
|
+
print("ERROR: Secrets should have been blocked!")
|
|
130
|
+
except SecurityError as e:
|
|
131
|
+
print("Storage blocked (as expected):")
|
|
132
|
+
print(f" Reason: {e!s}")
|
|
133
|
+
print(" Action: Secrets detected and storage prevented")
|
|
134
|
+
print(" Audit: Security violation logged")
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def example_healthcare_sensitive():
|
|
138
|
+
"""Example 4: Healthcare pattern with SENSITIVE classification"""
|
|
139
|
+
print("\n=== Example 4: Healthcare Pattern (SENSITIVE) ===\n")
|
|
140
|
+
|
|
141
|
+
integration = SecureMemDocsIntegration(
|
|
142
|
+
storage_dir="./example_memdocs",
|
|
143
|
+
audit_log_dir="./example_logs",
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
# Healthcare content (auto-classified as SENSITIVE)
|
|
147
|
+
content = """
|
|
148
|
+
# Patient Vital Signs Monitoring Protocol
|
|
149
|
+
|
|
150
|
+
Normal ranges:
|
|
151
|
+
- Heart rate: 60-100 bpm
|
|
152
|
+
- Blood pressure: 90/60 to 120/80 mmHg
|
|
153
|
+
- Respiratory rate: 12-20 breaths/min
|
|
154
|
+
- Temperature: 97-99°F (36.1-37.2°C)
|
|
155
|
+
- Oxygen saturation: 95-100%
|
|
156
|
+
|
|
157
|
+
Alert thresholds:
|
|
158
|
+
- Heart rate < 50 or > 120 bpm
|
|
159
|
+
- Systolic BP < 90 or > 180 mmHg
|
|
160
|
+
- Oxygen saturation < 92%
|
|
161
|
+
"""
|
|
162
|
+
|
|
163
|
+
result = integration.store_pattern(
|
|
164
|
+
content=content,
|
|
165
|
+
pattern_type="clinical_protocol",
|
|
166
|
+
user_id="nurse@hospital.com",
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
print("Healthcare pattern stored:")
|
|
170
|
+
print(f" Pattern ID: {result['pattern_id']}")
|
|
171
|
+
print(f" Classification: {result['classification']} (auto-detected)")
|
|
172
|
+
print(f" Encrypted: {result['metadata']['encrypted']} (HIPAA compliance)")
|
|
173
|
+
print(f" Retention: {result['metadata']['retention_days']} days (HIPAA minimum)")
|
|
174
|
+
print(" Access: Creator only (explicit permission required)")
|
|
175
|
+
|
|
176
|
+
# Retrieve (only creator can access)
|
|
177
|
+
pattern = integration.retrieve_pattern(
|
|
178
|
+
pattern_id=result["pattern_id"],
|
|
179
|
+
user_id="nurse@hospital.com",
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
print("\nPattern retrieved and decrypted successfully")
|
|
183
|
+
print(f" Content length: {len(pattern['content'])} chars")
|
|
184
|
+
|
|
185
|
+
# Try to retrieve as different user (will be blocked)
|
|
186
|
+
try:
|
|
187
|
+
pattern = integration.retrieve_pattern(
|
|
188
|
+
pattern_id=result["pattern_id"],
|
|
189
|
+
user_id="other_user@hospital.com",
|
|
190
|
+
)
|
|
191
|
+
print("ERROR: Access should have been denied!")
|
|
192
|
+
except Exception:
|
|
193
|
+
print("\nAccess denied for different user (as expected):")
|
|
194
|
+
print(" Reason: SENSITIVE patterns require explicit permission")
|
|
195
|
+
|
|
196
|
+
return result["pattern_id"]
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def example_list_patterns():
|
|
200
|
+
"""Example 5: List accessible patterns"""
|
|
201
|
+
print("\n=== Example 5: List Patterns ===\n")
|
|
202
|
+
|
|
203
|
+
integration = SecureMemDocsIntegration(
|
|
204
|
+
storage_dir="./example_memdocs",
|
|
205
|
+
audit_log_dir="./example_logs",
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
# List patterns for user
|
|
209
|
+
patterns = integration.list_patterns(user_id="developer@company.com")
|
|
210
|
+
|
|
211
|
+
print(f"Accessible patterns: {len(patterns)}")
|
|
212
|
+
for pattern in patterns:
|
|
213
|
+
print(f"\n Pattern: {pattern['pattern_id']}")
|
|
214
|
+
print(f" Type: {pattern['pattern_type']}")
|
|
215
|
+
print(f" Classification: {pattern['classification']}")
|
|
216
|
+
print(f" Created: {pattern['created_at']}")
|
|
217
|
+
print(f" Encrypted: {pattern['encrypted']}")
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def example_statistics():
|
|
221
|
+
"""Example 6: Get storage statistics"""
|
|
222
|
+
print("\n=== Example 6: Storage Statistics ===\n")
|
|
223
|
+
|
|
224
|
+
integration = SecureMemDocsIntegration(
|
|
225
|
+
storage_dir="./example_memdocs",
|
|
226
|
+
audit_log_dir="./example_logs",
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
stats = integration.get_statistics()
|
|
230
|
+
|
|
231
|
+
print("MemDocs Statistics:")
|
|
232
|
+
print(f" Total patterns: {stats['total_patterns']}")
|
|
233
|
+
print(" By classification:")
|
|
234
|
+
for classification, count in stats["by_classification"].items():
|
|
235
|
+
print(f" - {classification}: {count}")
|
|
236
|
+
print(f" Encrypted patterns: {stats['encrypted_count']}")
|
|
237
|
+
print(f" With PII scrubbed: {stats['with_pii_scrubbed']}")
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def main():
|
|
241
|
+
"""Run all examples"""
|
|
242
|
+
print("=" * 70)
|
|
243
|
+
print("Secure MemDocs Integration - Example Usage")
|
|
244
|
+
print("Phase 2: Enterprise Privacy Integration")
|
|
245
|
+
print("=" * 70)
|
|
246
|
+
|
|
247
|
+
try:
|
|
248
|
+
# Example 1: Basic usage
|
|
249
|
+
example_basic_usage()
|
|
250
|
+
|
|
251
|
+
# Example 2: PII scrubbing
|
|
252
|
+
example_pii_scrubbing()
|
|
253
|
+
|
|
254
|
+
# Example 3: Secrets blocking
|
|
255
|
+
example_secrets_blocking()
|
|
256
|
+
|
|
257
|
+
# Example 4: Healthcare (SENSITIVE)
|
|
258
|
+
example_healthcare_sensitive()
|
|
259
|
+
|
|
260
|
+
# Example 5: List patterns
|
|
261
|
+
example_list_patterns()
|
|
262
|
+
|
|
263
|
+
# Example 6: Statistics
|
|
264
|
+
example_statistics()
|
|
265
|
+
|
|
266
|
+
print("\n" + "=" * 70)
|
|
267
|
+
print("All examples completed successfully!")
|
|
268
|
+
print("=" * 70)
|
|
269
|
+
|
|
270
|
+
except Exception as e:
|
|
271
|
+
print(f"\n\nError running examples: {e}")
|
|
272
|
+
import traceback
|
|
273
|
+
|
|
274
|
+
traceback.print_exc()
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
if __name__ == "__main__":
|
|
278
|
+
main()
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Session Status Assistant
|
|
1
|
+
"""Session Status Assistant
|
|
3
2
|
|
|
4
3
|
Proactive briefing system that greets developers when they return to an
|
|
5
4
|
Empathy-enhanced project, providing a prioritized status report with
|
|
@@ -93,8 +92,7 @@ class SessionStatus:
|
|
|
93
92
|
|
|
94
93
|
|
|
95
94
|
class SessionStatusCollector:
|
|
96
|
-
"""
|
|
97
|
-
Aggregates project status from all data sources.
|
|
95
|
+
"""Aggregates project status from all data sources.
|
|
98
96
|
|
|
99
97
|
Scans patterns directories, roadmap docs, and git history
|
|
100
98
|
to build a prioritized status report for developers.
|
|
@@ -119,8 +117,7 @@ class SessionStatusCollector:
|
|
|
119
117
|
self._state: dict[str, Any] | None = None
|
|
120
118
|
|
|
121
119
|
def should_show(self) -> bool:
|
|
122
|
-
"""
|
|
123
|
-
Check if status should be shown based on inactivity.
|
|
120
|
+
"""Check if status should be shown based on inactivity.
|
|
124
121
|
|
|
125
122
|
Returns True if:
|
|
126
123
|
- First interaction after inactivity_minutes of no activity
|
|
@@ -164,11 +161,11 @@ class SessionStatusCollector:
|
|
|
164
161
|
logger.debug("Recorded interaction at %s", state["last_interaction"])
|
|
165
162
|
|
|
166
163
|
def collect(self) -> SessionStatus:
|
|
167
|
-
"""
|
|
168
|
-
Collect and prioritize status items from all data sources.
|
|
164
|
+
"""Collect and prioritize status items from all data sources.
|
|
169
165
|
|
|
170
166
|
Returns:
|
|
171
167
|
SessionStatus with prioritized items and wins
|
|
168
|
+
|
|
172
169
|
"""
|
|
173
170
|
status = SessionStatus()
|
|
174
171
|
|
|
@@ -224,7 +221,7 @@ class SessionStatusCollector:
|
|
|
224
221
|
action_prompt=f"Review security finding: {finding}. "
|
|
225
222
|
f"Provide analysis and recommend: ACCEPTED, DEFERRED, or FALSE_POSITIVE.",
|
|
226
223
|
details={"pending_count": pending_count, "items": pending_items[:3]},
|
|
227
|
-
)
|
|
224
|
+
),
|
|
228
225
|
)
|
|
229
226
|
|
|
230
227
|
def _collect_bug_items(self, status: SessionStatus) -> None:
|
|
@@ -267,7 +264,7 @@ class SessionStatusCollector:
|
|
|
267
264
|
f"{first_bug.get('error_message', 'No description')}. "
|
|
268
265
|
f"File: {first_bug.get('file_path', 'unknown')}",
|
|
269
266
|
details={"count": len(high_severity), "bugs": high_severity[:3]},
|
|
270
|
-
)
|
|
267
|
+
),
|
|
271
268
|
)
|
|
272
269
|
|
|
273
270
|
# Add investigating bugs (P2)
|
|
@@ -285,7 +282,7 @@ class SessionStatusCollector:
|
|
|
285
282
|
f"Use: empathy patterns resolve {first_bug.get('bug_id', '')} "
|
|
286
283
|
f"--root-cause '<cause>' --fix '<fix>'",
|
|
287
284
|
details={"count": len(investigating), "bugs": investigating[:5]},
|
|
288
|
-
)
|
|
285
|
+
),
|
|
289
286
|
)
|
|
290
287
|
|
|
291
288
|
def _collect_tech_debt_items(self, status: SessionStatus) -> None:
|
|
@@ -336,7 +333,7 @@ class SessionStatusCollector:
|
|
|
336
333
|
"change": change,
|
|
337
334
|
"hotspots": current.get("hotspots", [])[:3],
|
|
338
335
|
},
|
|
339
|
-
)
|
|
336
|
+
),
|
|
340
337
|
)
|
|
341
338
|
elif change < 0:
|
|
342
339
|
# Tech debt decreasing - this is a win
|
|
@@ -364,7 +361,7 @@ class SessionStatusCollector:
|
|
|
364
361
|
{
|
|
365
362
|
"task": task.strip(),
|
|
366
363
|
"file": plan_file.name,
|
|
367
|
-
}
|
|
364
|
+
},
|
|
368
365
|
)
|
|
369
366
|
except OSError as e:
|
|
370
367
|
logger.warning("Failed to read plan file %s: %s", plan_file, e)
|
|
@@ -381,7 +378,7 @@ class SessionStatusCollector:
|
|
|
381
378
|
action_prompt=f"Continue roadmap item from {first_task['file']}: "
|
|
382
379
|
f"{first_task['task']}",
|
|
383
380
|
details={"count": len(unchecked_tasks), "tasks": unchecked_tasks[:5]},
|
|
384
|
-
)
|
|
381
|
+
),
|
|
385
382
|
)
|
|
386
383
|
|
|
387
384
|
def _collect_git_items(self, status: SessionStatus) -> None:
|
|
@@ -389,6 +386,7 @@ class SessionStatusCollector:
|
|
|
389
386
|
try:
|
|
390
387
|
result = subprocess.run(
|
|
391
388
|
["git", "log", "-10", "--format=%h|%s", "--since=7.days"],
|
|
389
|
+
check=False,
|
|
392
390
|
capture_output=True,
|
|
393
391
|
text=True,
|
|
394
392
|
timeout=5,
|
|
@@ -413,7 +411,7 @@ class SessionStatusCollector:
|
|
|
413
411
|
{
|
|
414
412
|
"hash": commit_hash,
|
|
415
413
|
"message": message,
|
|
416
|
-
}
|
|
414
|
+
},
|
|
417
415
|
)
|
|
418
416
|
|
|
419
417
|
if wip_commits:
|
|
@@ -429,7 +427,7 @@ class SessionStatusCollector:
|
|
|
429
427
|
f"{first_commit['message']}. "
|
|
430
428
|
"This commit may need follow-up work.",
|
|
431
429
|
details={"count": len(wip_commits), "commits": wip_commits[:5]},
|
|
432
|
-
)
|
|
430
|
+
),
|
|
433
431
|
)
|
|
434
432
|
|
|
435
433
|
except Exception as e:
|
|
@@ -540,8 +538,7 @@ class SessionStatusCollector:
|
|
|
540
538
|
status: SessionStatus,
|
|
541
539
|
max_items: int | None = None,
|
|
542
540
|
) -> str:
|
|
543
|
-
"""
|
|
544
|
-
Format status for terminal output.
|
|
541
|
+
"""Format status for terminal output.
|
|
545
542
|
|
|
546
543
|
Args:
|
|
547
544
|
status: The SessionStatus to format
|
|
@@ -549,6 +546,7 @@ class SessionStatusCollector:
|
|
|
549
546
|
|
|
550
547
|
Returns:
|
|
551
548
|
Formatted markdown string
|
|
549
|
+
|
|
552
550
|
"""
|
|
553
551
|
max_items = max_items or self.config["max_display_items"]
|
|
554
552
|
sorted_items = status.get_sorted_items()
|
|
@@ -616,8 +614,7 @@ class SessionStatusCollector:
|
|
|
616
614
|
return json.dumps(data, indent=2, default=str)
|
|
617
615
|
|
|
618
616
|
def get_action_prompt(self, status: SessionStatus, selection: int) -> str | None:
|
|
619
|
-
"""
|
|
620
|
-
Get the action prompt for a selected item.
|
|
617
|
+
"""Get the action prompt for a selected item.
|
|
621
618
|
|
|
622
619
|
Args:
|
|
623
620
|
status: The SessionStatus
|
|
@@ -625,6 +622,7 @@ class SessionStatusCollector:
|
|
|
625
622
|
|
|
626
623
|
Returns:
|
|
627
624
|
Action prompt string, or None if invalid selection
|
|
625
|
+
|
|
628
626
|
"""
|
|
629
627
|
sorted_items = status.get_sorted_items()
|
|
630
628
|
|
empathy_llm_toolkit/state.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Collaboration State Management
|
|
1
|
+
"""Collaboration State Management
|
|
3
2
|
|
|
4
3
|
Tracks AI-human collaboration over time to enable Level 3+ empathy.
|
|
5
4
|
|
|
@@ -24,8 +23,7 @@ class PatternType(Enum):
|
|
|
24
23
|
|
|
25
24
|
@dataclass
|
|
26
25
|
class UserPattern:
|
|
27
|
-
"""
|
|
28
|
-
A detected pattern in user behavior.
|
|
26
|
+
"""A detected pattern in user behavior.
|
|
29
27
|
|
|
30
28
|
Enables Level 3 (Proactive) empathy.
|
|
31
29
|
"""
|
|
@@ -39,8 +37,7 @@ class UserPattern:
|
|
|
39
37
|
context: dict[str, Any] = field(default_factory=dict)
|
|
40
38
|
|
|
41
39
|
def should_act(self, trust_level: float) -> bool:
|
|
42
|
-
"""
|
|
43
|
-
Determine if we should act proactively on this pattern.
|
|
40
|
+
"""Determine if we should act proactively on this pattern.
|
|
44
41
|
|
|
45
42
|
Requires both high confidence and sufficient trust.
|
|
46
43
|
"""
|
|
@@ -60,8 +57,7 @@ class Interaction:
|
|
|
60
57
|
|
|
61
58
|
@dataclass
|
|
62
59
|
class CollaborationState:
|
|
63
|
-
"""
|
|
64
|
-
Tracks AI-human collaboration state over time.
|
|
60
|
+
"""Tracks AI-human collaboration state over time.
|
|
65
61
|
|
|
66
62
|
This is the foundation for Level 2+ empathy:
|
|
67
63
|
- Level 2: Uses conversation history for context
|
|
@@ -104,7 +100,11 @@ class CollaborationState:
|
|
|
104
100
|
return self.successful_actions / total
|
|
105
101
|
|
|
106
102
|
def add_interaction(
|
|
107
|
-
self,
|
|
103
|
+
self,
|
|
104
|
+
role: str,
|
|
105
|
+
content: str,
|
|
106
|
+
empathy_level: int,
|
|
107
|
+
metadata: dict | None = None,
|
|
108
108
|
):
|
|
109
109
|
"""Add interaction to history"""
|
|
110
110
|
self.interactions.append(
|
|
@@ -114,7 +114,7 @@ class CollaborationState:
|
|
|
114
114
|
content=content,
|
|
115
115
|
empathy_level=empathy_level,
|
|
116
116
|
metadata=metadata or {},
|
|
117
|
-
)
|
|
117
|
+
),
|
|
118
118
|
)
|
|
119
119
|
|
|
120
120
|
# Track level history
|
|
@@ -122,12 +122,12 @@ class CollaborationState:
|
|
|
122
122
|
self.level_history.append(empathy_level)
|
|
123
123
|
|
|
124
124
|
def update_trust(self, outcome: str, magnitude: float = 1.0):
|
|
125
|
-
"""
|
|
126
|
-
Update trust level based on action outcome.
|
|
125
|
+
"""Update trust level based on action outcome.
|
|
127
126
|
|
|
128
127
|
Args:
|
|
129
128
|
outcome: "success" or "failure"
|
|
130
129
|
magnitude: How much to adjust (0.0 to 1.0)
|
|
130
|
+
|
|
131
131
|
"""
|
|
132
132
|
if outcome == "success":
|
|
133
133
|
adjustment = 0.05 * magnitude
|
|
@@ -159,8 +159,7 @@ class CollaborationState:
|
|
|
159
159
|
self.detected_patterns.append(pattern)
|
|
160
160
|
|
|
161
161
|
def find_matching_pattern(self, trigger_text: str) -> UserPattern | None:
|
|
162
|
-
"""
|
|
163
|
-
Find pattern that matches current input.
|
|
162
|
+
"""Find pattern that matches current input.
|
|
164
163
|
|
|
165
164
|
Returns pattern with highest confidence if found.
|
|
166
165
|
"""
|
|
@@ -177,10 +176,11 @@ class CollaborationState:
|
|
|
177
176
|
return None
|
|
178
177
|
|
|
179
178
|
def get_conversation_history(
|
|
180
|
-
self,
|
|
179
|
+
self,
|
|
180
|
+
max_turns: int = 10,
|
|
181
|
+
include_metadata: bool = False,
|
|
181
182
|
) -> list[dict[str, Any]]:
|
|
182
|
-
"""
|
|
183
|
-
Get recent conversation history in LLM format.
|
|
183
|
+
"""Get recent conversation history in LLM format.
|
|
184
184
|
|
|
185
185
|
Args:
|
|
186
186
|
max_turns: Maximum number of turns to include
|
|
@@ -188,17 +188,16 @@ class CollaborationState:
|
|
|
188
188
|
|
|
189
189
|
Returns:
|
|
190
190
|
List of {"role": "user/assistant", "content": "..."}
|
|
191
|
+
|
|
191
192
|
"""
|
|
192
193
|
recent = self.interactions[-max_turns:] if max_turns else self.interactions
|
|
193
194
|
|
|
194
195
|
if include_metadata:
|
|
195
196
|
return [{"role": i.role, "content": i.content, "metadata": i.metadata} for i in recent]
|
|
196
|
-
|
|
197
|
-
return [{"role": i.role, "content": i.content} for i in recent]
|
|
197
|
+
return [{"role": i.role, "content": i.content} for i in recent]
|
|
198
198
|
|
|
199
199
|
def should_progress_to_level(self, level: int) -> bool:
|
|
200
|
-
"""
|
|
201
|
-
Determine if system should progress to higher empathy level.
|
|
200
|
+
"""Determine if system should progress to higher empathy level.
|
|
202
201
|
|
|
203
202
|
Progression criteria:
|
|
204
203
|
- Level 2: Immediate (guided questions always helpful)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Empathy LLM Wizards - Canonical Examples
|
|
2
|
+
|
|
3
|
+
Core wizard base class and canonical domain examples demonstrating
|
|
4
|
+
the Empathy Framework's capabilities across different use cases.
|
|
5
|
+
|
|
6
|
+
Included Wizards (3 canonical examples):
|
|
7
|
+
1. HealthcareWizard - HIPAA-compliant medical assistant
|
|
8
|
+
2. CustomerSupportWizard - Customer service and help desk
|
|
9
|
+
3. TechnologyWizard - IT and software development operations
|
|
10
|
+
|
|
11
|
+
Additional Wizards Available:
|
|
12
|
+
For specialized domain wizards, install separate packages:
|
|
13
|
+
- Healthcare (23 wizards): pip install empathy-healthcare-wizards
|
|
14
|
+
- Tech & AI (16 wizards): pip install empathy-software-wizards
|
|
15
|
+
- Business (12+ wizards): pip install empathy-business-wizards
|
|
16
|
+
|
|
17
|
+
Or try the live dashboards:
|
|
18
|
+
- Healthcare: https://healthcare.smartaimemory.com/static/dashboard.html
|
|
19
|
+
- Tech & AI: https://wizards.smartaimemory.com/
|
|
20
|
+
|
|
21
|
+
Copyright 2025 Smart AI Memory, LLC
|
|
22
|
+
Licensed under Fair Source 0.9
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from .base_wizard import BaseWizard, WizardConfig
|
|
26
|
+
from .customer_support_wizard import CustomerSupportWizard
|
|
27
|
+
from .healthcare_wizard import HealthcareWizard
|
|
28
|
+
from .technology_wizard import TechnologyWizard
|
|
29
|
+
|
|
30
|
+
__all__ = [
|
|
31
|
+
# Base classes
|
|
32
|
+
"BaseWizard",
|
|
33
|
+
# Canonical domain examples
|
|
34
|
+
"CustomerSupportWizard",
|
|
35
|
+
"HealthcareWizard",
|
|
36
|
+
"TechnologyWizard",
|
|
37
|
+
"WizardConfig",
|
|
38
|
+
]
|