empathy-framework 4.6.6__py3-none-any.whl → 4.7.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 (247) hide show
  1. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/METADATA +7 -6
  2. empathy_framework-4.7.0.dist-info/RECORD +354 -0
  3. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/top_level.txt +0 -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.py +173 -0
  130. empathy_os/workflows/__init__.py +212 -120
  131. empathy_os/workflows/batch_processing.py +8 -24
  132. empathy_os/workflows/bug_predict.py +1 -1
  133. empathy_os/workflows/code_review.py +20 -5
  134. empathy_os/workflows/code_review_pipeline.py +13 -8
  135. empathy_os/workflows/keyboard_shortcuts/workflow.py +6 -2
  136. empathy_os/workflows/manage_documentation.py +1 -0
  137. empathy_os/workflows/orchestrated_health_check.py +6 -11
  138. empathy_os/workflows/orchestrated_release_prep.py +3 -3
  139. empathy_os/workflows/pr_review.py +18 -10
  140. empathy_os/workflows/progressive/__init__.py +2 -12
  141. empathy_os/workflows/progressive/cli.py +14 -37
  142. empathy_os/workflows/progressive/core.py +12 -12
  143. empathy_os/workflows/progressive/orchestrator.py +166 -144
  144. empathy_os/workflows/progressive/reports.py +22 -31
  145. empathy_os/workflows/progressive/telemetry.py +8 -14
  146. empathy_os/workflows/progressive/test_gen.py +29 -48
  147. empathy_os/workflows/progressive/workflow.py +31 -70
  148. empathy_os/workflows/release_prep.py +21 -6
  149. empathy_os/workflows/release_prep_crew.py +1 -0
  150. empathy_os/workflows/secure_release.py +13 -6
  151. empathy_os/workflows/security_audit.py +8 -3
  152. empathy_os/workflows/test_coverage_boost_crew.py +3 -2
  153. empathy_os/workflows/test_maintenance_crew.py +1 -0
  154. empathy_os/workflows/test_runner.py +16 -12
  155. empathy_software_plugin/SOFTWARE_PLUGIN_README.md +25 -703
  156. empathy_software_plugin/cli.py +0 -122
  157. coach_wizards/__init__.py +0 -45
  158. coach_wizards/accessibility_wizard.py +0 -91
  159. coach_wizards/api_wizard.py +0 -91
  160. coach_wizards/base_wizard.py +0 -209
  161. coach_wizards/cicd_wizard.py +0 -91
  162. coach_wizards/code_reviewer_README.md +0 -60
  163. coach_wizards/code_reviewer_wizard.py +0 -180
  164. coach_wizards/compliance_wizard.py +0 -91
  165. coach_wizards/database_wizard.py +0 -91
  166. coach_wizards/debugging_wizard.py +0 -91
  167. coach_wizards/documentation_wizard.py +0 -91
  168. coach_wizards/generate_wizards.py +0 -347
  169. coach_wizards/localization_wizard.py +0 -173
  170. coach_wizards/migration_wizard.py +0 -91
  171. coach_wizards/monitoring_wizard.py +0 -91
  172. coach_wizards/observability_wizard.py +0 -91
  173. coach_wizards/performance_wizard.py +0 -91
  174. coach_wizards/prompt_engineering_wizard.py +0 -661
  175. coach_wizards/refactoring_wizard.py +0 -91
  176. coach_wizards/scaling_wizard.py +0 -90
  177. coach_wizards/security_wizard.py +0 -92
  178. coach_wizards/testing_wizard.py +0 -91
  179. empathy_framework-4.6.6.dist-info/RECORD +0 -410
  180. empathy_llm_toolkit/wizards/__init__.py +0 -43
  181. empathy_llm_toolkit/wizards/base_wizard.py +0 -364
  182. empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -190
  183. empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -378
  184. empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -64
  185. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -193
  186. empathy_llm_toolkit/wizards/technology_wizard.py +0 -209
  187. empathy_os/wizard_factory_cli.py +0 -170
  188. empathy_software_plugin/wizards/__init__.py +0 -42
  189. empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -395
  190. empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -511
  191. empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -503
  192. empathy_software_plugin/wizards/ai_context_wizard.py +0 -441
  193. empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -503
  194. empathy_software_plugin/wizards/base_wizard.py +0 -288
  195. empathy_software_plugin/wizards/book_chapter_wizard.py +0 -519
  196. empathy_software_plugin/wizards/code_review_wizard.py +0 -604
  197. empathy_software_plugin/wizards/debugging/__init__.py +0 -50
  198. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -414
  199. empathy_software_plugin/wizards/debugging/config_loaders.py +0 -446
  200. empathy_software_plugin/wizards/debugging/fix_applier.py +0 -469
  201. empathy_software_plugin/wizards/debugging/language_patterns.py +0 -385
  202. empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -470
  203. empathy_software_plugin/wizards/debugging/verification.py +0 -369
  204. empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -537
  205. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -816
  206. empathy_software_plugin/wizards/multi_model_wizard.py +0 -501
  207. empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -422
  208. empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -400
  209. empathy_software_plugin/wizards/performance/__init__.py +0 -9
  210. empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -221
  211. empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -278
  212. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -429
  213. empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -305
  214. empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -425
  215. empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -461
  216. empathy_software_plugin/wizards/security/__init__.py +0 -32
  217. empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -290
  218. empathy_software_plugin/wizards/security/owasp_patterns.py +0 -241
  219. empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -604
  220. empathy_software_plugin/wizards/security_analysis_wizard.py +0 -322
  221. empathy_software_plugin/wizards/security_learning_wizard.py +0 -740
  222. empathy_software_plugin/wizards/tech_debt_wizard.py +0 -726
  223. empathy_software_plugin/wizards/testing/__init__.py +0 -27
  224. empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -459
  225. empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -525
  226. empathy_software_plugin/wizards/testing/test_suggester.py +0 -533
  227. empathy_software_plugin/wizards/testing_wizard.py +0 -274
  228. wizards/__init__.py +0 -82
  229. wizards/admission_assessment_wizard.py +0 -644
  230. wizards/care_plan.py +0 -321
  231. wizards/clinical_assessment.py +0 -769
  232. wizards/discharge_planning.py +0 -77
  233. wizards/discharge_summary_wizard.py +0 -468
  234. wizards/dosage_calculation.py +0 -497
  235. wizards/incident_report_wizard.py +0 -454
  236. wizards/medication_reconciliation.py +0 -85
  237. wizards/nursing_assessment.py +0 -171
  238. wizards/patient_education.py +0 -654
  239. wizards/quality_improvement.py +0 -705
  240. wizards/sbar_report.py +0 -324
  241. wizards/sbar_wizard.py +0 -608
  242. wizards/shift_handoff_wizard.py +0 -535
  243. wizards/soap_note_wizard.py +0 -679
  244. wizards/treatment_plan.py +0 -15
  245. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/WHEEL +0 -0
  246. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.dist-info}/entry_points.txt +0 -0
  247. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.0.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