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
@@ -0,0 +1,198 @@
1
+ """Profiling commands for Empathy Framework CLI.
2
+
3
+ Performance profiling and memory analysis commands.
4
+
5
+ Usage:
6
+ empathy profile memory-scan # Scan for memory leaks
7
+ empathy profile memory-scan --json # JSON output for CI
8
+ empathy profile memory-test # Profile memory module
9
+
10
+ Copyright 2025 Smart-AI-Memory
11
+ Licensed under Fair Source License 0.9
12
+ """
13
+
14
+ import subprocess
15
+ import sys
16
+ from pathlib import Path
17
+
18
+ import typer
19
+ from rich.console import Console
20
+
21
+ console = Console()
22
+
23
+ # Create the profile command group
24
+ profile_app = typer.Typer(
25
+ name="profile",
26
+ help="Performance profiling and memory analysis",
27
+ no_args_is_help=True,
28
+ )
29
+
30
+
31
+ @profile_app.command("memory-scan")
32
+ def memory_scan(
33
+ path: Path = typer.Argument(
34
+ Path("src"),
35
+ help="Directory to scan for memory issues",
36
+ ),
37
+ feature: str = typer.Option(
38
+ None,
39
+ "--feature",
40
+ "-f",
41
+ help="Scan files related to a specific feature",
42
+ ),
43
+ min_severity: str = typer.Option(
44
+ "MEDIUM",
45
+ "--min-severity",
46
+ "-s",
47
+ help="Minimum severity to report (HIGH, MEDIUM, LOW)",
48
+ ),
49
+ top: int = typer.Option(
50
+ 10,
51
+ "--top",
52
+ "-t",
53
+ help="Number of hot files to show",
54
+ ),
55
+ json_output: bool = typer.Option(
56
+ False,
57
+ "--json",
58
+ "-j",
59
+ help="Output in JSON format",
60
+ ),
61
+ run_profile: bool = typer.Option(
62
+ False,
63
+ "--profile",
64
+ "-p",
65
+ help="Run dynamic memory profiling on hot files",
66
+ ),
67
+ ) -> None:
68
+ """Scan codebase for memory leak patterns.
69
+
70
+ Detects common memory issues like:
71
+ - sorted()[:N] patterns (should use heapq)
72
+ - get_all_* methods that load entire datasets
73
+ - Unbounded caches without eviction
74
+ - Large list comprehensions that could be generators
75
+
76
+ Examples:
77
+ empathy profile memory-scan # Scan src/
78
+ empathy profile memory-scan src/empathy_os # Scan specific dir
79
+ empathy profile memory-scan --feature "cache" # Scan cache-related files
80
+ empathy profile memory-scan --json > report.json # CI integration
81
+ """
82
+ scanner_path = (
83
+ Path(__file__).parent.parent.parent.parent.parent / "benchmarks" / "memory_leak_scanner.py"
84
+ )
85
+
86
+ if not scanner_path.exists():
87
+ console.print("[red]Error:[/red] Memory leak scanner not found at expected path")
88
+ console.print(f"Expected: {scanner_path}")
89
+ raise typer.Exit(1)
90
+
91
+ args = [sys.executable, str(scanner_path), "--path", str(path)]
92
+
93
+ if feature:
94
+ args.extend(["--feature", feature])
95
+ if min_severity:
96
+ args.extend(["--min-severity", min_severity])
97
+ if top:
98
+ args.extend(["--top", str(top)])
99
+ if json_output:
100
+ args.append("--json")
101
+ if run_profile:
102
+ args.append("--profile")
103
+
104
+ subprocess.run(args, check=False)
105
+
106
+
107
+ @profile_app.command("memory-test")
108
+ def memory_test(
109
+ module: str = typer.Argument(
110
+ "unified",
111
+ help="Memory module to profile (unified, short_term, graph)",
112
+ ),
113
+ ) -> None:
114
+ """Run memory profiling tests on memory modules.
115
+
116
+ Profiles the specified memory module and reports memory usage
117
+ for key operations like search, store, and retrieve.
118
+
119
+ Examples:
120
+ empathy profile memory-test # Profile unified memory
121
+ empathy profile memory-test unified # Same as above
122
+ """
123
+ try:
124
+ import memory_profiler # noqa: F401 - check if installed
125
+ except ImportError:
126
+ console.print("[yellow]Installing memory_profiler...[/yellow]")
127
+ subprocess.run([sys.executable, "-m", "pip", "install", "memory_profiler"], check=True)
128
+
129
+ profile_script = (
130
+ Path(__file__).parent.parent.parent.parent.parent
131
+ / "benchmarks"
132
+ / "profile_unified_memory.py"
133
+ )
134
+
135
+ if not profile_script.exists():
136
+ console.print("[red]Error:[/red] Memory profiling script not found")
137
+ console.print(f"Expected: {profile_script}")
138
+ raise typer.Exit(1)
139
+
140
+ console.print(f"[bold]Profiling memory module: {module}[/bold]\n")
141
+ subprocess.run([sys.executable, "-m", "memory_profiler", str(profile_script)], check=False)
142
+
143
+
144
+ @profile_app.command("hot-files")
145
+ def hot_files(
146
+ path: Path = typer.Argument(
147
+ Path("src"),
148
+ help="Directory to analyze",
149
+ ),
150
+ top: int = typer.Option(
151
+ 15,
152
+ "--top",
153
+ "-t",
154
+ help="Number of files to show",
155
+ ),
156
+ ) -> None:
157
+ """Show files most likely to have memory issues.
158
+
159
+ Quick scan that ranks files by risk score based on
160
+ detected memory leak patterns.
161
+
162
+ Examples:
163
+ empathy profile hot-files # Scan src/
164
+ empathy profile hot-files --top 20 # Show top 20
165
+ """
166
+ scanner_path = (
167
+ Path(__file__).parent.parent.parent.parent.parent / "benchmarks" / "memory_leak_scanner.py"
168
+ )
169
+
170
+ if not scanner_path.exists():
171
+ console.print("[red]Error:[/red] Memory leak scanner not found")
172
+ raise typer.Exit(1)
173
+
174
+ args = [
175
+ sys.executable,
176
+ str(scanner_path),
177
+ "--path",
178
+ str(path),
179
+ "--min-severity",
180
+ "MEDIUM",
181
+ "--top",
182
+ str(top),
183
+ ]
184
+ subprocess.run(args, check=False)
185
+
186
+
187
+ @profile_app.callback()
188
+ def callback() -> None:
189
+ """Performance profiling and memory analysis tools.
190
+
191
+ Use these commands to identify memory leaks, inefficient patterns,
192
+ and performance bottlenecks in your codebase.
193
+
194
+ [bold]Quick Start:[/bold]
195
+ empathy profile memory-scan Scan for memory issues
196
+ empathy profile hot-files Show riskiest files
197
+ empathy profile memory-test Profile memory module
198
+ """
@@ -9,16 +9,27 @@ Licensed under Fair Source License 0.9
9
9
  import subprocess
10
10
  import sys
11
11
 
12
+ import typer
12
13
  from rich.panel import Panel
13
14
 
14
15
  from empathy_os.cli.core import console
15
16
 
17
+ # Create the utilities Typer app
18
+ utilities_app = typer.Typer(
19
+ help="Utility tools - project init, cheatsheet, dashboard, costs",
20
+ no_args_is_help=True,
21
+ )
16
22
 
17
- def sync_claude(source: str = "patterns") -> None:
23
+
24
+ @utilities_app.command("sync-claude")
25
+ def sync_claude(
26
+ source: str = typer.Option("patterns", "--source", "-s", help="Source to sync"),
27
+ ) -> None:
18
28
  """Sync patterns to Claude Code memory."""
19
29
  subprocess.run(["empathy-sync-claude", "--source", source], check=False)
20
30
 
21
31
 
32
+ @utilities_app.command("cheatsheet")
22
33
  def cheatsheet() -> None:
23
34
  """Show quick reference for all commands."""
24
35
  console.print(
@@ -49,9 +60,14 @@ def cheatsheet() -> None:
49
60
  empathy inspect . Deep analysis (SARIF)
50
61
  empathy fix-all Auto-fix everything
51
62
 
63
+ [bold]Profiling[/bold]
64
+ empathy profile memory-scan Scan for memory leaks
65
+ empathy profile hot-files Show riskiest files
66
+ empathy profile memory-test Profile memory module
67
+
52
68
  [bold]Pattern Learning[/bold]
53
69
  empathy learn --analyze 20 Learn from commits
54
- empathy sync-claude Sync to Claude Code
70
+ empathy utilities sync-claude Sync to Claude Code
55
71
 
56
72
  [bold]Workflows[/bold]
57
73
  empathy workflow list Show available workflows
@@ -59,11 +75,11 @@ def cheatsheet() -> None:
59
75
  empathy workflow create <name> -p <patterns> Create workflow (12x faster)
60
76
  empathy workflow list-patterns List available patterns
61
77
 
62
- [bold]Wizards[/bold]
63
- empathy wizard list Show available wizards
64
- empathy wizard run <name> Execute a wizard
65
- empathy wizard create <name> -d <domain> Create wizard (12x faster)
66
- empathy wizard list-patterns List available patterns
78
+ [bold]Workflows[/bold]
79
+ empathy workflow list Show available workflows
80
+ empathy workflow run <name> Execute a workflow
81
+ empathy workflow create <name> -d <domain> Create workflow (12x faster)
82
+ empathy workflow list-patterns List available patterns
67
83
 
68
84
  [bold]Usage Telemetry[/bold]
69
85
  empathy telemetry show View recent LLM calls & costs
@@ -74,21 +90,25 @@ def cheatsheet() -> None:
74
90
  )
75
91
 
76
92
 
93
+ @utilities_app.command("dashboard")
77
94
  def dashboard() -> None:
78
95
  """Launch visual dashboard."""
79
96
  subprocess.run([sys.executable, "-m", "empathy_os.cli", "dashboard"], check=False)
80
97
 
81
98
 
99
+ @utilities_app.command("costs")
82
100
  def costs() -> None:
83
101
  """View API cost tracking."""
84
102
  subprocess.run([sys.executable, "-m", "empathy_os.cli", "costs"], check=False)
85
103
 
86
104
 
105
+ @utilities_app.command("init")
87
106
  def init() -> None:
88
107
  """Create a new configuration file."""
89
108
  subprocess.run([sys.executable, "-m", "empathy_os.cli", "init"], check=False)
90
109
 
91
110
 
111
+ @utilities_app.command("status")
92
112
  def status() -> None:
93
113
  """What needs attention now."""
94
114
  subprocess.run([sys.executable, "-m", "empathy_os.cli", "status"], check=False)
empathy_os/cli.py CHANGED
@@ -4,7 +4,7 @@ Provides CLI commands for:
4
4
  - Running interactive REPL (empathy run)
5
5
  - Inspecting patterns, metrics, state (empathy inspect)
6
6
  - Exporting/importing patterns (empathy export/import)
7
- - Interactive setup wizard (empathy wizard)
7
+ - Interactive setup workflow (empathy workflow)
8
8
  - Configuration management
9
9
  - Power user workflows: morning, ship, fix-all, learn (v2.4+)
10
10
 
@@ -29,7 +29,6 @@ from empathy_os.pattern_library import PatternLibrary
29
29
  from empathy_os.persistence import MetricsCollector, PatternPersistence, StateManager
30
30
  from empathy_os.platform_utils import setup_asyncio_policy
31
31
  from empathy_os.templates import cmd_new
32
- from empathy_os.wizard_factory_cli import add_wizard_factory_commands
33
32
  from empathy_os.workflows import (
34
33
  cmd_fix_all,
35
34
  cmd_learn,
@@ -84,7 +83,7 @@ logger = get_logger(__name__)
84
83
  CHEATSHEET = {
85
84
  "Getting Started": [
86
85
  ("empathy init", "Create a new config file"),
87
- ("empathy wizard", "Interactive setup wizard"),
86
+ ("empathy workflow", "Interactive setup workflow"),
88
87
  ("empathy run", "Interactive REPL mode"),
89
88
  ],
90
89
  "Daily Workflow": [
@@ -443,7 +442,7 @@ First, let's create a configuration file for your project.
443
442
  Run: empathy init
444
443
 
445
444
  This creates empathy.config.yaml with sensible defaults.
446
- Alternatively, use 'empathy wizard' for an interactive setup.
445
+ Alternatively, use 'empathy workflow' for an interactive setup.
447
446
  """,
448
447
  "check": lambda: _file_exists("empathy.config.yaml")
449
448
  or _file_exists("empathy.config.yml"),
@@ -822,8 +821,8 @@ def cmd_orchestrate(args):
822
821
 
823
822
  from empathy_os.workflows.orchestrated_health_check import OrchestratedHealthCheckWorkflow
824
823
  from empathy_os.workflows.orchestrated_release_prep import OrchestratedReleasePrepWorkflow
825
- # test_coverage_boost removed - feature disabled in v4.0.0 (being redesigned)
826
824
 
825
+ # test_coverage_boost removed - feature disabled in v4.0.0 (being redesigned)
827
826
  # Get workflow type
828
827
  workflow_type = args.workflow
829
828
 
@@ -1356,50 +1355,24 @@ def cmd_status(args):
1356
1355
  def cmd_review(args):
1357
1356
  """Pattern-based code review against historical bugs.
1358
1357
 
1359
- Analyzes code changes against learned patterns to identify potential issues.
1358
+ Note: This command has been deprecated. The underlying workflow module
1359
+ has been removed. Use 'empathy workflow run bug-predict' instead.
1360
1360
 
1361
1361
  Args:
1362
- args: Namespace object from argparse with attributes:
1363
- - files (list[str]): Files to review (default: recent changes).
1364
- - staged (bool): If True, review staged changes only.
1365
- - severity (str): Minimum severity threshold for findings.
1366
- - patterns_dir (str): Path to patterns directory.
1367
- - json (bool): If True, output as JSON format.
1362
+ args: Namespace object from argparse.
1368
1363
 
1369
1364
  Returns:
1370
- None: Prints review findings and recommendations.
1365
+ None: Prints deprecation message.
1371
1366
  """
1372
- import asyncio
1373
-
1374
- from empathy_software_plugin.wizards.code_review_wizard import CodeReviewWizard
1375
-
1376
- wizard = CodeReviewWizard(patterns_dir=args.patterns_dir)
1377
-
1378
- # Run the async analysis
1379
- result = asyncio.run(
1380
- wizard.analyze(
1381
- {
1382
- "files": args.files,
1383
- "staged_only": args.staged,
1384
- "severity_threshold": args.severity,
1385
- },
1386
- ),
1387
- )
1388
-
1389
- # Output results
1390
- if args.json:
1391
- import json
1392
-
1393
- print(json.dumps(result, indent=2, default=str))
1394
- else:
1395
- print(wizard.format_terminal_output(result))
1396
-
1397
- # Show recommendations
1398
- recommendations = result.get("recommendations", [])
1399
- if recommendations and result.get("findings"):
1400
- print("\nRecommendations:")
1401
- for rec in recommendations:
1402
- print(f" • {rec}")
1367
+ print("⚠️ The 'review' command has been deprecated.")
1368
+ print()
1369
+ print("The CodeReviewWorkflow module has been removed.")
1370
+ print("Please use one of these alternatives:")
1371
+ print()
1372
+ print(" empathy workflow run bug-predict # Scan for risky patterns")
1373
+ print(" ruff check <files> # Fast linting")
1374
+ print(" bandit -r <path> # Security scanning")
1375
+ print()
1403
1376
 
1404
1377
 
1405
1378
  def cmd_health(args):
@@ -1823,7 +1796,7 @@ def cmd_inspect(args):
1823
1796
  print(f" Success rate: {pattern.success_rate:.0%}")
1824
1797
  except FileNotFoundError:
1825
1798
  print(f"✗ Pattern library not found: {db_path}")
1826
- print(" Tip: Use 'empathy-framework wizard' to set up your first project")
1799
+ print(" Tip: Use 'empathy-framework workflow' to set up your first project")
1827
1800
  sys.exit(1)
1828
1801
  except (ValueError, KeyError) as e:
1829
1802
  # Invalid pattern data format
@@ -2046,8 +2019,8 @@ def cmd_import(args):
2046
2019
  print()
2047
2020
 
2048
2021
 
2049
- def cmd_wizard(args):
2050
- """Interactive setup wizard.
2022
+ def cmd_workflow(args):
2023
+ """Interactive setup workflow.
2051
2024
 
2052
2025
  Guides user through initial framework configuration step by step.
2053
2026
 
@@ -2057,7 +2030,7 @@ def cmd_wizard(args):
2057
2030
  Returns:
2058
2031
  None: Creates empathy.config.yml with user's choices.
2059
2032
  """
2060
- print("🧙 Empathy Framework Setup Wizard")
2033
+ print("🧙 Empathy Framework Setup Workflow")
2061
2034
  print("=" * 50)
2062
2035
  print("\nI'll help you set up your Empathy Framework configuration.\n")
2063
2036
 
@@ -2140,7 +2113,7 @@ def cmd_wizard(args):
2140
2113
 
2141
2114
  # Write YAML config
2142
2115
  yaml_content = f"""# Empathy Framework Configuration
2143
- # Generated by setup wizard
2116
+ # Generated by setup workflow
2144
2117
 
2145
2118
  # Core settings
2146
2119
  user_id: "{config["user_id"]}"
@@ -2605,6 +2578,7 @@ def cmd_workflow(args):
2605
2578
  # Initialize workflow with provider and optional tier fallback
2606
2579
  # Note: Not all workflows support enable_tier_fallback, so we check first
2607
2580
  import inspect
2581
+
2608
2582
  use_tier_fallback = getattr(args, "use_recommended_tier", False)
2609
2583
 
2610
2584
  # Get the workflow's __init__ signature to know what params it accepts
@@ -3203,12 +3177,12 @@ def main():
3203
3177
  parser_import.add_argument("--db", help="Database path (default: .empathy/patterns.db)")
3204
3178
  parser_import.set_defaults(func=cmd_import)
3205
3179
 
3206
- # Wizard command (Interactive setup)
3207
- parser_wizard = subparsers.add_parser(
3208
- "wizard",
3209
- help="Interactive setup wizard for creating configuration",
3180
+ # Workflow command (Interactive setup)
3181
+ parser_workflow = subparsers.add_parser(
3182
+ "workflow",
3183
+ help="Interactive setup workflow for creating configuration",
3210
3184
  )
3211
- parser_wizard.set_defaults(func=cmd_wizard)
3185
+ parser_workflow.set_defaults(func=cmd_workflow)
3212
3186
 
3213
3187
  # Provider command (Model provider configuration)
3214
3188
  parser_provider = subparsers.add_parser(
@@ -3956,9 +3930,6 @@ def main():
3956
3930
  )
3957
3931
  parser_orchestrate.set_defaults(func=cmd_orchestrate)
3958
3932
 
3959
- # Wizard Factory commands (create wizards 12x faster)
3960
- add_wizard_factory_commands(subparsers)
3961
-
3962
3933
  # Parse arguments
3963
3934
  args = parser.parse_args()
3964
3935