empathy-framework 3.5.6__py3-none-any.whl → 3.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.
- agents/compliance_anticipation_agent.py +113 -118
- agents/compliance_db.py +339 -0
- agents/epic_integration_wizard.py +37 -48
- agents/notifications.py +291 -0
- agents/trust_building_behaviors.py +66 -85
- 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/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 +21 -14
- 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.5.6.dist-info → empathy_framework-3.7.0.dist-info}/METADATA +234 -30
- empathy_framework-3.7.0.dist-info/RECORD +105 -0
- empathy_healthcare_plugin/__init__.py +1 -2
- empathy_llm_toolkit/__init__.py +5 -6
- empathy_llm_toolkit/claude_memory.py +14 -15
- empathy_llm_toolkit/code_health.py +27 -19
- empathy_llm_toolkit/contextual_patterns.py +11 -12
- empathy_llm_toolkit/core.py +43 -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 +27 -38
- empathy_llm_toolkit/session_status.py +18 -20
- empathy_llm_toolkit/state.py +20 -21
- empathy_os/__init__.py +72 -73
- empathy_os/cli.py +193 -98
- empathy_os/cli_unified.py +68 -41
- empathy_os/config.py +31 -31
- empathy_os/coordination.py +48 -54
- empathy_os/core.py +90 -99
- empathy_os/cost_tracker.py +20 -23
- 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/monitoring.py +27 -27
- empathy_os/pattern_library.py +29 -28
- empathy_os/persistence.py +30 -34
- empathy_os/platform_utils.py +46 -47
- empathy_os/redis_config.py +14 -15
- empathy_os/redis_memory.py +53 -56
- empathy_os/templates.py +12 -11
- empathy_os/trust_building.py +44 -36
- empathy_os/workflow_commands.py +123 -31
- empathy_software_plugin/__init__.py +1 -2
- empathy_software_plugin/cli.py +32 -25
- empathy_software_plugin/plugin.py +4 -8
- empathy_framework-3.5.6.dist-info/RECORD +0 -103
- {empathy_framework-3.5.6.dist-info → empathy_framework-3.7.0.dist-info}/WHEEL +0 -0
- {empathy_framework-3.5.6.dist-info → empathy_framework-3.7.0.dist-info}/entry_points.txt +0 -0
- {empathy_framework-3.5.6.dist-info → empathy_framework-3.7.0.dist-info}/licenses/LICENSE +0 -0
- {empathy_framework-3.5.6.dist-info → empathy_framework-3.7.0.dist-info}/top_level.txt +0 -0
coach_wizards/base_wizard.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Base Coach Wizard - Foundation for all Coach wizards
|
|
1
|
+
"""Base Coach Wizard - Foundation for all Coach wizards
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy implementation using the Empathy Framework.
|
|
5
4
|
|
|
@@ -56,8 +55,7 @@ class WizardResult:
|
|
|
56
55
|
|
|
57
56
|
|
|
58
57
|
class BaseCoachWizard(ABC):
|
|
59
|
-
"""
|
|
60
|
-
Base class for all Coach wizards
|
|
58
|
+
"""Base class for all Coach wizards
|
|
61
59
|
|
|
62
60
|
Implements Level 4 Anticipatory Empathy:
|
|
63
61
|
- Analyzes current code
|
|
@@ -73,8 +71,7 @@ class BaseCoachWizard(ABC):
|
|
|
73
71
|
|
|
74
72
|
@abstractmethod
|
|
75
73
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
76
|
-
"""
|
|
77
|
-
Analyze code for current issues
|
|
74
|
+
"""Analyze code for current issues
|
|
78
75
|
|
|
79
76
|
Args:
|
|
80
77
|
code: Source code to analyze
|
|
@@ -83,15 +80,18 @@ class BaseCoachWizard(ABC):
|
|
|
83
80
|
|
|
84
81
|
Returns:
|
|
85
82
|
List of issues found
|
|
83
|
+
|
|
86
84
|
"""
|
|
87
|
-
pass
|
|
88
85
|
|
|
89
86
|
@abstractmethod
|
|
90
87
|
def predict_future_issues(
|
|
91
|
-
self,
|
|
88
|
+
self,
|
|
89
|
+
code: str,
|
|
90
|
+
file_path: str,
|
|
91
|
+
project_context: dict[str, Any],
|
|
92
|
+
timeline_days: int = 90,
|
|
92
93
|
) -> list[WizardPrediction]:
|
|
93
|
-
"""
|
|
94
|
-
Level 4 Anticipatory: Predict issues 30-90 days ahead
|
|
94
|
+
"""Level 4 Anticipatory: Predict issues 30-90 days ahead
|
|
95
95
|
|
|
96
96
|
Args:
|
|
97
97
|
code: Source code to analyze
|
|
@@ -101,21 +101,20 @@ class BaseCoachWizard(ABC):
|
|
|
101
101
|
|
|
102
102
|
Returns:
|
|
103
103
|
List of predicted future issues
|
|
104
|
+
|
|
104
105
|
"""
|
|
105
|
-
pass
|
|
106
106
|
|
|
107
107
|
@abstractmethod
|
|
108
108
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
109
|
-
"""
|
|
110
|
-
Suggest how to fix an issue
|
|
109
|
+
"""Suggest how to fix an issue
|
|
111
110
|
|
|
112
111
|
Args:
|
|
113
112
|
issue: The issue to fix
|
|
114
113
|
|
|
115
114
|
Returns:
|
|
116
115
|
Fix suggestion with code examples
|
|
116
|
+
|
|
117
117
|
"""
|
|
118
|
-
pass
|
|
119
118
|
|
|
120
119
|
def run_full_analysis(
|
|
121
120
|
self,
|
|
@@ -124,8 +123,7 @@ class BaseCoachWizard(ABC):
|
|
|
124
123
|
language: str,
|
|
125
124
|
project_context: dict[str, Any] | None = None,
|
|
126
125
|
) -> WizardResult:
|
|
127
|
-
"""
|
|
128
|
-
Run complete analysis: current issues + future predictions
|
|
126
|
+
"""Run complete analysis: current issues + future predictions
|
|
129
127
|
|
|
130
128
|
Args:
|
|
131
129
|
code: Source code to analyze
|
|
@@ -135,6 +133,7 @@ class BaseCoachWizard(ABC):
|
|
|
135
133
|
|
|
136
134
|
Returns:
|
|
137
135
|
Complete wizard result
|
|
136
|
+
|
|
138
137
|
"""
|
|
139
138
|
start_time = datetime.now()
|
|
140
139
|
|
|
@@ -145,7 +144,10 @@ class BaseCoachWizard(ABC):
|
|
|
145
144
|
predictions = []
|
|
146
145
|
if project_context:
|
|
147
146
|
predictions = self.predict_future_issues(
|
|
148
|
-
code,
|
|
147
|
+
code,
|
|
148
|
+
file_path,
|
|
149
|
+
project_context,
|
|
150
|
+
timeline_days=90,
|
|
149
151
|
)
|
|
150
152
|
|
|
151
153
|
# Generate recommendations
|
|
@@ -167,7 +169,9 @@ class BaseCoachWizard(ABC):
|
|
|
167
169
|
)
|
|
168
170
|
|
|
169
171
|
def _generate_recommendations(
|
|
170
|
-
self,
|
|
172
|
+
self,
|
|
173
|
+
issues: list[WizardIssue],
|
|
174
|
+
predictions: list[WizardPrediction],
|
|
171
175
|
) -> list[str]:
|
|
172
176
|
"""Generate actionable recommendations"""
|
|
173
177
|
recommendations = []
|
|
@@ -181,13 +185,15 @@ class BaseCoachWizard(ABC):
|
|
|
181
185
|
high_probability_predictions = [p for p in predictions if p.probability > 0.7]
|
|
182
186
|
if high_probability_predictions:
|
|
183
187
|
recommendations.append(
|
|
184
|
-
f"Prevent {len(high_probability_predictions)} predicted issues with high probability"
|
|
188
|
+
f"Prevent {len(high_probability_predictions)} predicted issues with high probability",
|
|
185
189
|
)
|
|
186
190
|
|
|
187
191
|
return recommendations
|
|
188
192
|
|
|
189
193
|
def _generate_summary(
|
|
190
|
-
self,
|
|
194
|
+
self,
|
|
195
|
+
issues: list[WizardIssue],
|
|
196
|
+
predictions: list[WizardPrediction],
|
|
191
197
|
) -> str:
|
|
192
198
|
"""Generate human-readable summary"""
|
|
193
199
|
error_count = len([i for i in issues if i.severity == "error"])
|
coach_wizards/cicd_wizard.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
CICDWizard - CI/CD pipeline optimization
|
|
1
|
+
"""CICDWizard - CI/CD pipeline optimization
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for DevOps using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class CICDWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
CI/CD pipeline optimization
|
|
15
|
+
"""CI/CD pipeline optimization
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- slow pipelines
|
|
@@ -30,12 +28,13 @@ class CICDWizard(BaseCoachWizard):
|
|
|
30
28
|
|
|
31
29
|
def __init__(self):
|
|
32
30
|
super().__init__(
|
|
33
|
-
name="CICDWizard",
|
|
31
|
+
name="CICDWizard",
|
|
32
|
+
category="DevOps",
|
|
33
|
+
languages=["yaml", "groovy", "python", "bash"],
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
37
|
-
"""
|
|
38
|
-
Analyze code for devops issues
|
|
37
|
+
"""Analyze code for devops issues
|
|
39
38
|
|
|
40
39
|
This is a reference implementation. In production, integrate with:
|
|
41
40
|
- Static analysis tools
|
|
@@ -55,10 +54,13 @@ class CICDWizard(BaseCoachWizard):
|
|
|
55
54
|
return issues
|
|
56
55
|
|
|
57
56
|
def predict_future_issues(
|
|
58
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
59
62
|
) -> list[WizardPrediction]:
|
|
60
|
-
"""
|
|
61
|
-
Level 4 Anticipatory: Predict devops issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict devops issues {timeline_days} days ahead
|
|
62
64
|
|
|
63
65
|
Uses:
|
|
64
66
|
- Historical patterns
|
|
@@ -74,16 +76,16 @@ class CICDWizard(BaseCoachWizard):
|
|
|
74
76
|
|
|
75
77
|
self.logger.info(
|
|
76
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
77
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
78
80
|
)
|
|
79
81
|
return predictions
|
|
80
82
|
|
|
81
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
82
|
-
"""
|
|
83
|
-
Suggest how to fix a devops issue
|
|
84
|
+
"""Suggest how to fix a devops issue
|
|
84
85
|
|
|
85
86
|
Returns:
|
|
86
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
87
89
|
"""
|
|
88
90
|
# Implementation depends on issue type
|
|
89
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
ComplianceWizard - Regulatory and compliance checking
|
|
1
|
+
"""ComplianceWizard - Regulatory and compliance checking
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Compliance using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class ComplianceWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Regulatory and compliance checking
|
|
15
|
+
"""Regulatory and compliance checking
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- PII handling issues
|
|
@@ -36,8 +34,7 @@ class ComplianceWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for compliance issues
|
|
37
|
+
"""Analyze code for compliance issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class ComplianceWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict compliance issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict compliance issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class ComplianceWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a compliance issue
|
|
84
|
+
"""Suggest how to fix a compliance issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
coach_wizards/database_wizard.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
DatabaseWizard - Database optimization and schema analysis
|
|
1
|
+
"""DatabaseWizard - Database optimization and schema analysis
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Database using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class DatabaseWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Database optimization and schema analysis
|
|
15
|
+
"""Database optimization and schema analysis
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- missing indexes
|
|
@@ -36,8 +34,7 @@ class DatabaseWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for database issues
|
|
37
|
+
"""Analyze code for database issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class DatabaseWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict database issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict database issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class DatabaseWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a database issue
|
|
84
|
+
"""Suggest how to fix a database issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
DebuggingWizard - Error detection and debugging assistance
|
|
1
|
+
"""DebuggingWizard - Error detection and debugging assistance
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Debugging using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class DebuggingWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Error detection and debugging assistance
|
|
15
|
+
"""Error detection and debugging assistance
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- potential null references
|
|
@@ -36,8 +34,7 @@ class DebuggingWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for debugging issues
|
|
37
|
+
"""Analyze code for debugging issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class DebuggingWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict debugging issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict debugging issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class DebuggingWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a debugging issue
|
|
84
|
+
"""Suggest how to fix a debugging issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
DocumentationWizard - Documentation quality and completeness
|
|
1
|
+
"""DocumentationWizard - Documentation quality and completeness
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Documentation using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class DocumentationWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Documentation quality and completeness
|
|
15
|
+
"""Documentation quality and completeness
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- missing docstrings
|
|
@@ -36,8 +34,7 @@ class DocumentationWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for documentation issues
|
|
37
|
+
"""Analyze code for documentation issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class DocumentationWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict documentation issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict documentation issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class DocumentationWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a documentation issue
|
|
84
|
+
"""Suggest how to fix a documentation issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
LocalizationWizard - Internationalization and localization
|
|
1
|
+
"""LocalizationWizard - Internationalization and localization
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Localization using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class LocalizationWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Internationalization and localization
|
|
15
|
+
"""Internationalization and localization
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- hardcoded strings
|
|
@@ -36,8 +34,7 @@ class LocalizationWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for localization issues
|
|
37
|
+
"""Analyze code for localization issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -59,7 +56,11 @@ class LocalizationWizard(BaseCoachWizard):
|
|
|
59
56
|
return issues
|
|
60
57
|
|
|
61
58
|
def _check_hardcoded_string(
|
|
62
|
-
self,
|
|
59
|
+
self,
|
|
60
|
+
line: str,
|
|
61
|
+
line_num: int,
|
|
62
|
+
file_path: str,
|
|
63
|
+
language: str,
|
|
63
64
|
) -> WizardIssue | None:
|
|
64
65
|
"""Check a single line for hardcoded user-facing strings."""
|
|
65
66
|
# Skip comments and imports
|
|
@@ -83,7 +84,10 @@ class LocalizationWizard(BaseCoachWizard):
|
|
|
83
84
|
return None
|
|
84
85
|
|
|
85
86
|
def _check_python_hardcoded(
|
|
86
|
-
self,
|
|
87
|
+
self,
|
|
88
|
+
line: str,
|
|
89
|
+
line_num: int,
|
|
90
|
+
file_path: str,
|
|
87
91
|
) -> WizardIssue | None:
|
|
88
92
|
"""Check Python code for hardcoded UI strings."""
|
|
89
93
|
# Look for print() or raise with string literals
|
|
@@ -132,10 +136,13 @@ class LocalizationWizard(BaseCoachWizard):
|
|
|
132
136
|
return None
|
|
133
137
|
|
|
134
138
|
def predict_future_issues(
|
|
135
|
-
self,
|
|
139
|
+
self,
|
|
140
|
+
code: str,
|
|
141
|
+
file_path: str,
|
|
142
|
+
project_context: dict[str, Any],
|
|
143
|
+
timeline_days: int = 90,
|
|
136
144
|
) -> list[WizardPrediction]:
|
|
137
|
-
"""
|
|
138
|
-
Level 4 Anticipatory: Predict localization issues {timeline_days} days ahead
|
|
145
|
+
"""Level 4 Anticipatory: Predict localization issues {timeline_days} days ahead
|
|
139
146
|
|
|
140
147
|
Uses:
|
|
141
148
|
- Historical patterns
|
|
@@ -151,16 +158,16 @@ class LocalizationWizard(BaseCoachWizard):
|
|
|
151
158
|
|
|
152
159
|
self.logger.info(
|
|
153
160
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
154
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
161
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
155
162
|
)
|
|
156
163
|
return predictions
|
|
157
164
|
|
|
158
165
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
159
|
-
"""
|
|
160
|
-
Suggest how to fix a localization issue
|
|
166
|
+
"""Suggest how to fix a localization issue
|
|
161
167
|
|
|
162
168
|
Returns:
|
|
163
169
|
Detailed fix suggestion with code examples
|
|
170
|
+
|
|
164
171
|
"""
|
|
165
172
|
# Implementation depends on issue type
|
|
166
173
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
MigrationWizard - Code migration and upgrade assistance
|
|
1
|
+
"""MigrationWizard - Code migration and upgrade assistance
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Migration using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class MigrationWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
Code migration and upgrade assistance
|
|
15
|
+
"""Code migration and upgrade assistance
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- deprecated APIs
|
|
@@ -36,8 +34,7 @@ class MigrationWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for migration issues
|
|
37
|
+
"""Analyze code for migration issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class MigrationWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict migration issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict migration issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class MigrationWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a migration issue
|
|
84
|
+
"""Suggest how to fix a migration issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
MonitoringWizard - System monitoring and alerting
|
|
1
|
+
"""MonitoringWizard - System monitoring and alerting
|
|
3
2
|
|
|
4
3
|
Level 4 Anticipatory Empathy for Monitoring using the Empathy Framework.
|
|
5
4
|
|
|
@@ -13,8 +12,7 @@ from .base_wizard import BaseCoachWizard, WizardIssue, WizardPrediction
|
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class MonitoringWizard(BaseCoachWizard):
|
|
16
|
-
"""
|
|
17
|
-
System monitoring and alerting
|
|
15
|
+
"""System monitoring and alerting
|
|
18
16
|
|
|
19
17
|
Detects:
|
|
20
18
|
- missing alerts
|
|
@@ -36,8 +34,7 @@ class MonitoringWizard(BaseCoachWizard):
|
|
|
36
34
|
)
|
|
37
35
|
|
|
38
36
|
def analyze_code(self, code: str, file_path: str, language: str) -> list[WizardIssue]:
|
|
39
|
-
"""
|
|
40
|
-
Analyze code for monitoring issues
|
|
37
|
+
"""Analyze code for monitoring issues
|
|
41
38
|
|
|
42
39
|
This is a reference implementation. In production, integrate with:
|
|
43
40
|
- Static analysis tools
|
|
@@ -57,10 +54,13 @@ class MonitoringWizard(BaseCoachWizard):
|
|
|
57
54
|
return issues
|
|
58
55
|
|
|
59
56
|
def predict_future_issues(
|
|
60
|
-
self,
|
|
57
|
+
self,
|
|
58
|
+
code: str,
|
|
59
|
+
file_path: str,
|
|
60
|
+
project_context: dict[str, Any],
|
|
61
|
+
timeline_days: int = 90,
|
|
61
62
|
) -> list[WizardPrediction]:
|
|
62
|
-
"""
|
|
63
|
-
Level 4 Anticipatory: Predict monitoring issues {timeline_days} days ahead
|
|
63
|
+
"""Level 4 Anticipatory: Predict monitoring issues {timeline_days} days ahead
|
|
64
64
|
|
|
65
65
|
Uses:
|
|
66
66
|
- Historical patterns
|
|
@@ -76,16 +76,16 @@ class MonitoringWizard(BaseCoachWizard):
|
|
|
76
76
|
|
|
77
77
|
self.logger.info(
|
|
78
78
|
f"{self.name} predicted {len(predictions)} future issues "
|
|
79
|
-
f"for {file_path} ({timeline_days} days ahead)"
|
|
79
|
+
f"for {file_path} ({timeline_days} days ahead)",
|
|
80
80
|
)
|
|
81
81
|
return predictions
|
|
82
82
|
|
|
83
83
|
def suggest_fixes(self, issue: WizardIssue) -> str:
|
|
84
|
-
"""
|
|
85
|
-
Suggest how to fix a monitoring issue
|
|
84
|
+
"""Suggest how to fix a monitoring issue
|
|
86
85
|
|
|
87
86
|
Returns:
|
|
88
87
|
Detailed fix suggestion with code examples
|
|
88
|
+
|
|
89
89
|
"""
|
|
90
90
|
# Implementation depends on issue type
|
|
91
91
|
return f"Fix suggestion for {issue.category} issue: {issue.message}"
|