empathy-framework 4.6.6__py3-none-any.whl → 4.7.1__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 (273) hide show
  1. empathy_framework-4.7.1.dist-info/METADATA +690 -0
  2. empathy_framework-4.7.1.dist-info/RECORD +379 -0
  3. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/top_level.txt +1 -2
  4. empathy_healthcare_plugin/monitors/monitoring/__init__.py +9 -9
  5. empathy_llm_toolkit/agent_factory/__init__.py +6 -6
  6. empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +7 -10
  7. empathy_llm_toolkit/agents_md/__init__.py +22 -0
  8. empathy_llm_toolkit/agents_md/loader.py +218 -0
  9. empathy_llm_toolkit/agents_md/parser.py +271 -0
  10. empathy_llm_toolkit/agents_md/registry.py +307 -0
  11. empathy_llm_toolkit/commands/__init__.py +51 -0
  12. empathy_llm_toolkit/commands/context.py +375 -0
  13. empathy_llm_toolkit/commands/loader.py +301 -0
  14. empathy_llm_toolkit/commands/models.py +231 -0
  15. empathy_llm_toolkit/commands/parser.py +371 -0
  16. empathy_llm_toolkit/commands/registry.py +429 -0
  17. empathy_llm_toolkit/config/__init__.py +8 -8
  18. empathy_llm_toolkit/config/unified.py +3 -7
  19. empathy_llm_toolkit/context/__init__.py +22 -0
  20. empathy_llm_toolkit/context/compaction.py +455 -0
  21. empathy_llm_toolkit/context/manager.py +434 -0
  22. empathy_llm_toolkit/hooks/__init__.py +24 -0
  23. empathy_llm_toolkit/hooks/config.py +306 -0
  24. empathy_llm_toolkit/hooks/executor.py +289 -0
  25. empathy_llm_toolkit/hooks/registry.py +302 -0
  26. empathy_llm_toolkit/hooks/scripts/__init__.py +39 -0
  27. empathy_llm_toolkit/hooks/scripts/evaluate_session.py +201 -0
  28. empathy_llm_toolkit/hooks/scripts/first_time_init.py +285 -0
  29. empathy_llm_toolkit/hooks/scripts/pre_compact.py +207 -0
  30. empathy_llm_toolkit/hooks/scripts/session_end.py +183 -0
  31. empathy_llm_toolkit/hooks/scripts/session_start.py +163 -0
  32. empathy_llm_toolkit/hooks/scripts/suggest_compact.py +225 -0
  33. empathy_llm_toolkit/learning/__init__.py +30 -0
  34. empathy_llm_toolkit/learning/evaluator.py +438 -0
  35. empathy_llm_toolkit/learning/extractor.py +514 -0
  36. empathy_llm_toolkit/learning/storage.py +560 -0
  37. empathy_llm_toolkit/providers.py +4 -11
  38. empathy_llm_toolkit/security/__init__.py +17 -17
  39. empathy_llm_toolkit/utils/tokens.py +2 -5
  40. empathy_os/__init__.py +202 -70
  41. empathy_os/cache_monitor.py +5 -3
  42. empathy_os/cli/__init__.py +11 -55
  43. empathy_os/cli/__main__.py +29 -15
  44. empathy_os/cli/commands/inspection.py +21 -12
  45. empathy_os/cli/commands/memory.py +4 -12
  46. empathy_os/cli/commands/profiling.py +198 -0
  47. empathy_os/cli/commands/utilities.py +27 -7
  48. empathy_os/cli.py +28 -57
  49. empathy_os/cli_unified.py +525 -1164
  50. empathy_os/cost_tracker.py +9 -3
  51. empathy_os/dashboard/server.py +200 -2
  52. empathy_os/hot_reload/__init__.py +7 -7
  53. empathy_os/hot_reload/config.py +6 -7
  54. empathy_os/hot_reload/integration.py +35 -35
  55. empathy_os/hot_reload/reloader.py +57 -57
  56. empathy_os/hot_reload/watcher.py +28 -28
  57. empathy_os/hot_reload/websocket.py +2 -2
  58. empathy_os/memory/__init__.py +11 -4
  59. empathy_os/memory/claude_memory.py +1 -1
  60. empathy_os/memory/cross_session.py +8 -12
  61. empathy_os/memory/edges.py +6 -6
  62. empathy_os/memory/file_session.py +770 -0
  63. empathy_os/memory/graph.py +30 -30
  64. empathy_os/memory/nodes.py +6 -6
  65. empathy_os/memory/short_term.py +15 -9
  66. empathy_os/memory/unified.py +606 -140
  67. empathy_os/meta_workflows/agent_creator.py +3 -9
  68. empathy_os/meta_workflows/cli_meta_workflows.py +113 -53
  69. empathy_os/meta_workflows/form_engine.py +6 -18
  70. empathy_os/meta_workflows/intent_detector.py +64 -24
  71. empathy_os/meta_workflows/models.py +3 -1
  72. empathy_os/meta_workflows/pattern_learner.py +13 -31
  73. empathy_os/meta_workflows/plan_generator.py +55 -47
  74. empathy_os/meta_workflows/session_context.py +2 -3
  75. empathy_os/meta_workflows/workflow.py +20 -51
  76. empathy_os/models/cli.py +2 -2
  77. empathy_os/models/tasks.py +1 -2
  78. empathy_os/models/telemetry.py +4 -1
  79. empathy_os/models/token_estimator.py +3 -1
  80. empathy_os/monitoring/alerts.py +938 -9
  81. empathy_os/monitoring/alerts_cli.py +346 -183
  82. empathy_os/orchestration/execution_strategies.py +12 -29
  83. empathy_os/orchestration/pattern_learner.py +20 -26
  84. empathy_os/orchestration/real_tools.py +6 -15
  85. empathy_os/platform_utils.py +2 -1
  86. empathy_os/plugins/__init__.py +2 -2
  87. empathy_os/plugins/base.py +64 -64
  88. empathy_os/plugins/registry.py +32 -32
  89. empathy_os/project_index/index.py +49 -15
  90. empathy_os/project_index/models.py +1 -2
  91. empathy_os/project_index/reports.py +1 -1
  92. empathy_os/project_index/scanner.py +1 -0
  93. empathy_os/redis_memory.py +10 -7
  94. empathy_os/resilience/__init__.py +1 -1
  95. empathy_os/resilience/health.py +10 -10
  96. empathy_os/routing/__init__.py +7 -7
  97. empathy_os/routing/chain_executor.py +37 -37
  98. empathy_os/routing/classifier.py +36 -36
  99. empathy_os/routing/smart_router.py +40 -40
  100. empathy_os/routing/{wizard_registry.py → workflow_registry.py} +47 -47
  101. empathy_os/scaffolding/__init__.py +8 -8
  102. empathy_os/scaffolding/__main__.py +1 -1
  103. empathy_os/scaffolding/cli.py +28 -28
  104. empathy_os/socratic/__init__.py +3 -19
  105. empathy_os/socratic/ab_testing.py +25 -36
  106. empathy_os/socratic/blueprint.py +38 -38
  107. empathy_os/socratic/cli.py +34 -20
  108. empathy_os/socratic/collaboration.py +30 -28
  109. empathy_os/socratic/domain_templates.py +9 -1
  110. empathy_os/socratic/embeddings.py +17 -13
  111. empathy_os/socratic/engine.py +135 -70
  112. empathy_os/socratic/explainer.py +70 -60
  113. empathy_os/socratic/feedback.py +24 -19
  114. empathy_os/socratic/forms.py +15 -10
  115. empathy_os/socratic/generator.py +51 -35
  116. empathy_os/socratic/llm_analyzer.py +25 -23
  117. empathy_os/socratic/mcp_server.py +99 -159
  118. empathy_os/socratic/session.py +19 -13
  119. empathy_os/socratic/storage.py +98 -67
  120. empathy_os/socratic/success.py +38 -27
  121. empathy_os/socratic/visual_editor.py +51 -39
  122. empathy_os/socratic/web_ui.py +99 -66
  123. empathy_os/telemetry/cli.py +3 -1
  124. empathy_os/telemetry/usage_tracker.py +1 -3
  125. empathy_os/test_generator/__init__.py +3 -3
  126. empathy_os/test_generator/cli.py +28 -28
  127. empathy_os/test_generator/generator.py +64 -66
  128. empathy_os/test_generator/risk_analyzer.py +11 -11
  129. empathy_os/vscode_bridge 2.py +173 -0
  130. empathy_os/vscode_bridge.py +173 -0
  131. empathy_os/workflows/__init__.py +212 -120
  132. empathy_os/workflows/batch_processing.py +8 -24
  133. empathy_os/workflows/bug_predict.py +1 -1
  134. empathy_os/workflows/code_review.py +20 -5
  135. empathy_os/workflows/code_review_pipeline.py +13 -8
  136. empathy_os/workflows/keyboard_shortcuts/workflow.py +6 -2
  137. empathy_os/workflows/manage_documentation.py +1 -0
  138. empathy_os/workflows/orchestrated_health_check.py +6 -11
  139. empathy_os/workflows/orchestrated_release_prep.py +3 -3
  140. empathy_os/workflows/pr_review.py +18 -10
  141. empathy_os/workflows/progressive/README 2.md +454 -0
  142. empathy_os/workflows/progressive/__init__ 2.py +92 -0
  143. empathy_os/workflows/progressive/__init__.py +2 -12
  144. empathy_os/workflows/progressive/cli 2.py +242 -0
  145. empathy_os/workflows/progressive/cli.py +14 -37
  146. empathy_os/workflows/progressive/core 2.py +488 -0
  147. empathy_os/workflows/progressive/core.py +12 -12
  148. empathy_os/workflows/progressive/orchestrator 2.py +701 -0
  149. empathy_os/workflows/progressive/orchestrator.py +166 -144
  150. empathy_os/workflows/progressive/reports 2.py +528 -0
  151. empathy_os/workflows/progressive/reports.py +22 -31
  152. empathy_os/workflows/progressive/telemetry 2.py +280 -0
  153. empathy_os/workflows/progressive/telemetry.py +8 -14
  154. empathy_os/workflows/progressive/test_gen 2.py +514 -0
  155. empathy_os/workflows/progressive/test_gen.py +29 -48
  156. empathy_os/workflows/progressive/workflow 2.py +628 -0
  157. empathy_os/workflows/progressive/workflow.py +31 -70
  158. empathy_os/workflows/release_prep.py +21 -6
  159. empathy_os/workflows/release_prep_crew.py +1 -0
  160. empathy_os/workflows/secure_release.py +13 -6
  161. empathy_os/workflows/security_audit.py +8 -3
  162. empathy_os/workflows/test_coverage_boost_crew.py +3 -2
  163. empathy_os/workflows/test_maintenance_crew.py +1 -0
  164. empathy_os/workflows/test_runner.py +16 -12
  165. empathy_software_plugin/SOFTWARE_PLUGIN_README.md +25 -703
  166. empathy_software_plugin/cli.py +0 -122
  167. patterns/README.md +119 -0
  168. patterns/__init__.py +95 -0
  169. patterns/behavior.py +298 -0
  170. patterns/code_review_memory.json +441 -0
  171. patterns/core.py +97 -0
  172. patterns/debugging.json +3763 -0
  173. patterns/empathy.py +268 -0
  174. patterns/health_check_memory.json +505 -0
  175. patterns/input.py +161 -0
  176. patterns/memory_graph.json +8 -0
  177. patterns/refactoring_memory.json +1113 -0
  178. patterns/registry.py +663 -0
  179. patterns/security_memory.json +8 -0
  180. patterns/structural.py +415 -0
  181. patterns/validation.py +194 -0
  182. coach_wizards/__init__.py +0 -45
  183. coach_wizards/accessibility_wizard.py +0 -91
  184. coach_wizards/api_wizard.py +0 -91
  185. coach_wizards/base_wizard.py +0 -209
  186. coach_wizards/cicd_wizard.py +0 -91
  187. coach_wizards/code_reviewer_README.md +0 -60
  188. coach_wizards/code_reviewer_wizard.py +0 -180
  189. coach_wizards/compliance_wizard.py +0 -91
  190. coach_wizards/database_wizard.py +0 -91
  191. coach_wizards/debugging_wizard.py +0 -91
  192. coach_wizards/documentation_wizard.py +0 -91
  193. coach_wizards/generate_wizards.py +0 -347
  194. coach_wizards/localization_wizard.py +0 -173
  195. coach_wizards/migration_wizard.py +0 -91
  196. coach_wizards/monitoring_wizard.py +0 -91
  197. coach_wizards/observability_wizard.py +0 -91
  198. coach_wizards/performance_wizard.py +0 -91
  199. coach_wizards/prompt_engineering_wizard.py +0 -661
  200. coach_wizards/refactoring_wizard.py +0 -91
  201. coach_wizards/scaling_wizard.py +0 -90
  202. coach_wizards/security_wizard.py +0 -92
  203. coach_wizards/testing_wizard.py +0 -91
  204. empathy_framework-4.6.6.dist-info/METADATA +0 -1597
  205. empathy_framework-4.6.6.dist-info/RECORD +0 -410
  206. empathy_llm_toolkit/wizards/__init__.py +0 -43
  207. empathy_llm_toolkit/wizards/base_wizard.py +0 -364
  208. empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -190
  209. empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -378
  210. empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -64
  211. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -193
  212. empathy_llm_toolkit/wizards/technology_wizard.py +0 -209
  213. empathy_os/wizard_factory_cli.py +0 -170
  214. empathy_software_plugin/wizards/__init__.py +0 -42
  215. empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -395
  216. empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -511
  217. empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -503
  218. empathy_software_plugin/wizards/ai_context_wizard.py +0 -441
  219. empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -503
  220. empathy_software_plugin/wizards/base_wizard.py +0 -288
  221. empathy_software_plugin/wizards/book_chapter_wizard.py +0 -519
  222. empathy_software_plugin/wizards/code_review_wizard.py +0 -604
  223. empathy_software_plugin/wizards/debugging/__init__.py +0 -50
  224. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -414
  225. empathy_software_plugin/wizards/debugging/config_loaders.py +0 -446
  226. empathy_software_plugin/wizards/debugging/fix_applier.py +0 -469
  227. empathy_software_plugin/wizards/debugging/language_patterns.py +0 -385
  228. empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -470
  229. empathy_software_plugin/wizards/debugging/verification.py +0 -369
  230. empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -537
  231. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -816
  232. empathy_software_plugin/wizards/multi_model_wizard.py +0 -501
  233. empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -422
  234. empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -400
  235. empathy_software_plugin/wizards/performance/__init__.py +0 -9
  236. empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -221
  237. empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -278
  238. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -429
  239. empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -305
  240. empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -425
  241. empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -461
  242. empathy_software_plugin/wizards/security/__init__.py +0 -32
  243. empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -290
  244. empathy_software_plugin/wizards/security/owasp_patterns.py +0 -241
  245. empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -604
  246. empathy_software_plugin/wizards/security_analysis_wizard.py +0 -322
  247. empathy_software_plugin/wizards/security_learning_wizard.py +0 -740
  248. empathy_software_plugin/wizards/tech_debt_wizard.py +0 -726
  249. empathy_software_plugin/wizards/testing/__init__.py +0 -27
  250. empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -459
  251. empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -525
  252. empathy_software_plugin/wizards/testing/test_suggester.py +0 -533
  253. empathy_software_plugin/wizards/testing_wizard.py +0 -274
  254. wizards/__init__.py +0 -82
  255. wizards/admission_assessment_wizard.py +0 -644
  256. wizards/care_plan.py +0 -321
  257. wizards/clinical_assessment.py +0 -769
  258. wizards/discharge_planning.py +0 -77
  259. wizards/discharge_summary_wizard.py +0 -468
  260. wizards/dosage_calculation.py +0 -497
  261. wizards/incident_report_wizard.py +0 -454
  262. wizards/medication_reconciliation.py +0 -85
  263. wizards/nursing_assessment.py +0 -171
  264. wizards/patient_education.py +0 -654
  265. wizards/quality_improvement.py +0 -705
  266. wizards/sbar_report.py +0 -324
  267. wizards/sbar_wizard.py +0 -608
  268. wizards/shift_handoff_wizard.py +0 -535
  269. wizards/soap_note_wizard.py +0 -679
  270. wizards/treatment_plan.py +0 -15
  271. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/WHEEL +0 -0
  272. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/entry_points.txt +0 -0
  273. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,274 +0,0 @@
1
- """Testing Wizard - Level 4 Anticipatory Empathy
2
-
3
- Alerts developers to testing bottlenecks before they become critical.
4
-
5
- In our experience developing the Empathy Framework across multiple projects,
6
- this wizard identified testing scalability issues that would have surfaced
7
- weeks later, enabling us to implement automation frameworks proactively.
8
-
9
- Copyright 2025 Smart AI Memory, LLC
10
- Licensed under Fair Source 0.9
11
- """
12
-
13
- import os
14
- import sys
15
- from typing import Any
16
-
17
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "src"))
18
-
19
- from empathy_os.plugins import BaseWizard
20
-
21
-
22
- class TestingWizard(BaseWizard):
23
- """Wizard that analyzes testing patterns and alerts to bottlenecks.
24
-
25
- Level 4 Anticipatory: Detects when testing burden will become
26
- unsustainable based on growth trajectory, and suggests automation
27
- frameworks before the crisis hits.
28
- """
29
-
30
- def __init__(self):
31
- super().__init__(
32
- name="Testing Strategy Wizard",
33
- domain="software",
34
- empathy_level=4, # Anticipatory
35
- category="quality_assurance",
36
- )
37
-
38
- def get_required_context(self) -> list[str]:
39
- """Required context for testing analysis"""
40
- return [
41
- "project_path", # Path to project
42
- "test_files", # List of test files
43
- "test_framework", # pytest, jest, junit, etc.
44
- "recent_commits", # Optional: commit history
45
- "team_size", # Optional: for growth analysis
46
- ]
47
-
48
- async def analyze(self, context: dict[str, Any]) -> dict[str, Any]:
49
- """Analyze testing patterns and predict bottlenecks.
50
-
51
- Args:
52
- context: Must contain fields from get_required_context()
53
-
54
- Returns:
55
- Dictionary with:
56
- - issues: Current testing problems
57
- - predictions: Future bottlenecks (Level 4)
58
- - recommendations: Actionable steps
59
- - patterns: Detected patterns for pattern library
60
- - confidence: Analysis confidence (0.0-1.0)
61
-
62
- """
63
- # Validate context
64
- self.validate_context(context)
65
-
66
- # Extract context
67
- test_files = context["test_files"]
68
- test_framework = context.get("test_framework", "unknown")
69
- team_size = context.get("team_size", 1)
70
-
71
- # Analyze current state
72
- issues = await self._analyze_current_tests(test_files, test_framework)
73
-
74
- # Level 4: Predict future bottlenecks
75
- predictions = await self._predict_bottlenecks(test_files, team_size, context)
76
-
77
- # Generate recommendations
78
- recommendations = self._generate_recommendations(issues, predictions)
79
-
80
- # Extract patterns for cross-domain learning
81
- patterns = self._extract_patterns(test_files, issues, predictions)
82
-
83
- # Calculate confidence
84
- confidence = self._calculate_confidence(context)
85
-
86
- return {
87
- "issues": issues,
88
- "predictions": predictions,
89
- "recommendations": recommendations,
90
- "patterns": patterns,
91
- "confidence": confidence,
92
- "metadata": {
93
- "wizard": self.name,
94
- "empathy_level": self.empathy_level,
95
- "test_count": len(test_files),
96
- "framework": test_framework,
97
- },
98
- }
99
-
100
- async def _analyze_current_tests(
101
- self,
102
- test_files: list[str],
103
- framework: str,
104
- ) -> list[dict[str, Any]]:
105
- """Analyze current testing state (Level 1-3).
106
-
107
- Returns list of current issues.
108
- """
109
- issues = []
110
-
111
- # Check test coverage
112
- if len(test_files) < 5:
113
- issues.append(
114
- {
115
- "severity": "warning",
116
- "type": "low_test_coverage",
117
- "message": "Low test count - consider adding more tests",
118
- "impact": "medium",
119
- },
120
- )
121
-
122
- # Check for test organization
123
- if not self._has_test_structure(test_files):
124
- issues.append(
125
- {
126
- "severity": "info",
127
- "type": "test_organization",
128
- "message": "Tests lack clear organization structure",
129
- "impact": "low",
130
- },
131
- )
132
-
133
- return issues
134
-
135
- async def _predict_bottlenecks(
136
- self,
137
- test_files: list[str],
138
- team_size: int,
139
- context: dict[str, Any],
140
- ) -> list[dict[str, Any]]:
141
- """Level 4 Anticipatory: Predict future testing bottlenecks.
142
-
143
- Based on our experience: manual testing becomes unsustainable
144
- when test count exceeds ~25 or execution time > 15 minutes.
145
- """
146
- predictions = []
147
-
148
- test_count = len(test_files)
149
-
150
- # Pattern from experience: Testing burden grows with codebase
151
- if test_count > 15:
152
- predictions.append(
153
- {
154
- "type": "testing_bottleneck",
155
- "alert": (
156
- "Testing burden approaching critical threshold. "
157
- "In our experience, manual testing becomes unsustainable "
158
- "around 25+ tests. Consider implementing test automation "
159
- "framework before this becomes blocking."
160
- ),
161
- "probability": "medium-high",
162
- "impact": "high",
163
- "prevention_steps": [
164
- "Design test automation framework",
165
- "Implement shared test fixtures",
166
- "Create parameterized test generation",
167
- "Set up CI/CD integration",
168
- ],
169
- "reasoning": (
170
- "Test count trajectory suggests manual testing overhead "
171
- "will become bottleneck. Proactive automation prevents "
172
- "future crisis."
173
- ),
174
- },
175
- )
176
-
177
- # Check for test duplication patterns
178
- if self._detect_test_duplication(test_files):
179
- predictions.append(
180
- {
181
- "type": "maintenance_burden",
182
- "alert": (
183
- "Duplicated test patterns detected. These typically lead "
184
- "to maintenance burden as codebase evolves."
185
- ),
186
- "probability": "high",
187
- "impact": "medium",
188
- "prevention_steps": [
189
- "Extract shared test utilities",
190
- "Create test base classes",
191
- "Implement fixture library",
192
- ],
193
- },
194
- )
195
-
196
- return predictions
197
-
198
- def _generate_recommendations(self, issues: list[dict], predictions: list[dict]) -> list[str]:
199
- """Generate actionable recommendations"""
200
- recommendations = []
201
-
202
- # Address high-impact predictions first
203
- for prediction in predictions:
204
- if prediction.get("impact") == "high":
205
- recommendations.append(f"[ALERT] {prediction['alert']}")
206
- recommendations.extend(f" - {step}" for step in prediction["prevention_steps"])
207
-
208
- # Address current issues
209
- for issue in issues:
210
- if issue.get("severity") == "warning":
211
- recommendations.append(f"[WARNING] {issue['message']}")
212
-
213
- return recommendations
214
-
215
- def _extract_patterns(
216
- self,
217
- test_files: list[str],
218
- issues: list[dict],
219
- predictions: list[dict],
220
- ) -> list[dict[str, Any]]:
221
- """Extract patterns for cross-domain learning (Level 5).
222
-
223
- These patterns can be applied across software, healthcare, finance, etc.
224
- """
225
- patterns = []
226
-
227
- # Pattern: Growth trajectory alerts
228
- if predictions:
229
- patterns.append(
230
- {
231
- "pattern_type": "growth_trajectory_alert",
232
- "description": (
233
- "When system component count follows growth trajectory, "
234
- "alert before threshold is reached rather than after"
235
- ),
236
- "domain_agnostic": True,
237
- "applicable_to": [
238
- "software testing",
239
- "healthcare documentation",
240
- "compliance tracking",
241
- "any growing system",
242
- ],
243
- },
244
- )
245
-
246
- return patterns
247
-
248
- def _calculate_confidence(self, context: dict[str, Any]) -> float:
249
- """Calculate confidence in analysis.
250
-
251
- Higher confidence when we have more context (team size, history, etc.)
252
- """
253
- confidence = 0.7 # Base confidence
254
-
255
- if "team_size" in context:
256
- confidence += 0.1
257
-
258
- if "recent_commits" in context:
259
- confidence += 0.1
260
-
261
- return min(1.0, confidence)
262
-
263
- def _has_test_structure(self, test_files: list[str]) -> bool:
264
- """Check if tests follow organizational structure"""
265
- # Simple heuristic: check for directories
266
- return any("/" in f for f in test_files)
267
-
268
- def _detect_test_duplication(self, test_files: list[str]) -> bool:
269
- """Detect if tests have duplication patterns"""
270
- # Simplified detection - in real implementation, analyze AST
271
- # For now, heuristic based on similar naming
272
- names = [f.split("/")[-1] for f in test_files]
273
- unique_names = set(names)
274
- return len(unique_names) < len(names) * 0.8 # >20% duplication
wizards/__init__.py DELETED
@@ -1,82 +0,0 @@
1
- """
2
- Clinical Wizards Router Registry
3
- Following Router Organization pattern from copilot-instructions.md
4
- """
5
-
6
- # Wizard router imports following Conditional Imports Pattern
7
- try:
8
- from .sbar_wizard import router as sbar_wizard_router
9
-
10
- _has_sbar_wizard = True
11
- except ImportError:
12
- _has_sbar_wizard = False
13
- sbar_wizard_router = None
14
-
15
- try:
16
- from .treatment_plan_wizard import router as treatment_plan_router
17
-
18
- _has_treatment_plan = True
19
- except ImportError:
20
- _has_treatment_plan = False
21
- treatment_plan_router = None
22
-
23
- try:
24
- from .dosage_calculation import router as dosage_calculation_router
25
-
26
- _has_dosage_calculation = True
27
- except ImportError:
28
- _has_dosage_calculation = False
29
- dosage_calculation_router = None
30
-
31
- try:
32
- from .clinical_assessment import router as clinical_assessment_router
33
-
34
- _has_clinical_assessment = True
35
- except ImportError:
36
- _has_clinical_assessment = False
37
- clinical_assessment_router = None
38
-
39
- try:
40
- from .patient_education import router as patient_education_router
41
-
42
- _has_patient_education = True
43
- except ImportError:
44
- _has_patient_education = False
45
- patient_education_router = None
46
-
47
- try:
48
- from .quality_improvement import router as quality_improvement_router
49
-
50
- _has_quality_improvement = True
51
- except ImportError:
52
- _has_quality_improvement = False
53
- quality_improvement_router = None
54
-
55
- # Export available wizards
56
- __all__ = [
57
- "sbar_wizard_router",
58
- "treatment_plan_router",
59
- "dosage_calculation_router",
60
- "clinical_assessment_router",
61
- "patient_education_router",
62
- "quality_improvement_router",
63
- ]
64
-
65
-
66
- def get_available_wizards():
67
- """Get list of available wizard routers."""
68
- available = {}
69
- if _has_sbar_wizard and sbar_wizard_router:
70
- available["sbar"] = sbar_wizard_router
71
- if _has_treatment_plan and treatment_plan_router:
72
- available["treatment_plan"] = treatment_plan_router
73
- if _has_dosage_calculation and dosage_calculation_router:
74
- available["dosage_calculation"] = dosage_calculation_router
75
- if _has_clinical_assessment and clinical_assessment_router:
76
- available["clinical_assessment"] = clinical_assessment_router
77
- if _has_patient_education and patient_education_router:
78
- available["patient_education"] = patient_education_router
79
- if _has_quality_improvement and quality_improvement_router:
80
- available["quality_improvement"] = quality_improvement_router
81
-
82
- return available