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,505 @@
1
+ {
2
+ "version": "1.0",
3
+ "updated_at": "2026-01-10T16:18:10.863233",
4
+ "node_count": 31,
5
+ "edge_count": 0,
6
+ "nodes": [
7
+ {
8
+ "id": "health_check_20260109005805_c21baf66ce74",
9
+ "type": "pattern",
10
+ "name": "check:.",
11
+ "description": "Health score: 100.0/100",
12
+ "source_wizard": "health_check_crew",
13
+ "source_file": "",
14
+ "source_line": null,
15
+ "severity": "",
16
+ "confidence": 1.0,
17
+ "metadata": {},
18
+ "tags": [],
19
+ "created_at": "2026-01-09T00:58:05.055914",
20
+ "updated_at": "2026-01-09T00:58:05.055917",
21
+ "status": "open"
22
+ },
23
+ {
24
+ "id": "health_check_20260109010106_c21baf66ce74",
25
+ "type": "pattern",
26
+ "name": "check:.",
27
+ "description": "Health score: 100.0/100",
28
+ "source_wizard": "health_check_crew",
29
+ "source_file": "",
30
+ "source_line": null,
31
+ "severity": "",
32
+ "confidence": 1.0,
33
+ "metadata": {},
34
+ "tags": [],
35
+ "created_at": "2026-01-09T01:01:06.999487",
36
+ "updated_at": "2026-01-09T01:01:06.999489",
37
+ "status": "open"
38
+ },
39
+ {
40
+ "id": "health_check_20260109082548_a6b68eeb7ff7",
41
+ "type": "pattern",
42
+ "name": "check:.",
43
+ "description": "Health score: 98.0/100",
44
+ "source_wizard": "health_check_crew",
45
+ "source_file": "",
46
+ "source_line": null,
47
+ "severity": "",
48
+ "confidence": 1.0,
49
+ "metadata": {},
50
+ "tags": [],
51
+ "created_at": "2026-01-09T08:25:48.637642",
52
+ "updated_at": "2026-01-09T08:25:48.637646",
53
+ "status": "open"
54
+ },
55
+ {
56
+ "id": "health_check_20260109082711_a6b68eeb7ff7",
57
+ "type": "pattern",
58
+ "name": "check:.",
59
+ "description": "Health score: 98.0/100",
60
+ "source_wizard": "health_check_crew",
61
+ "source_file": "",
62
+ "source_line": null,
63
+ "severity": "",
64
+ "confidence": 1.0,
65
+ "metadata": {},
66
+ "tags": [],
67
+ "created_at": "2026-01-09T08:27:11.454694",
68
+ "updated_at": "2026-01-09T08:27:11.454696",
69
+ "status": "open"
70
+ },
71
+ {
72
+ "id": "health_check_20260109083528_a6b68eeb7ff7",
73
+ "type": "pattern",
74
+ "name": "check:.",
75
+ "description": "Health score: 98.0/100",
76
+ "source_wizard": "health_check_crew",
77
+ "source_file": "",
78
+ "source_line": null,
79
+ "severity": "",
80
+ "confidence": 1.0,
81
+ "metadata": {},
82
+ "tags": [],
83
+ "created_at": "2026-01-09T08:35:28.775710",
84
+ "updated_at": "2026-01-09T08:35:28.775711",
85
+ "status": "open"
86
+ },
87
+ {
88
+ "id": "health_check_20260109083558_a6b68eeb7ff7",
89
+ "type": "pattern",
90
+ "name": "check:.",
91
+ "description": "Health score: 98.0/100",
92
+ "source_wizard": "health_check_crew",
93
+ "source_file": "",
94
+ "source_line": null,
95
+ "severity": "",
96
+ "confidence": 1.0,
97
+ "metadata": {},
98
+ "tags": [],
99
+ "created_at": "2026-01-09T08:35:58.617624",
100
+ "updated_at": "2026-01-09T08:35:58.617626",
101
+ "status": "open"
102
+ },
103
+ {
104
+ "id": "health_check_20260109091059_a6b68eeb7ff7",
105
+ "type": "pattern",
106
+ "name": "check:.",
107
+ "description": "Health score: 98.0/100",
108
+ "source_wizard": "health_check_crew",
109
+ "source_file": "",
110
+ "source_line": null,
111
+ "severity": "",
112
+ "confidence": 1.0,
113
+ "metadata": {},
114
+ "tags": [],
115
+ "created_at": "2026-01-09T09:10:59.958657",
116
+ "updated_at": "2026-01-09T09:10:59.958659",
117
+ "status": "open"
118
+ },
119
+ {
120
+ "id": "health_check_20260109091516_a6b68eeb7ff7",
121
+ "type": "pattern",
122
+ "name": "check:.",
123
+ "description": "Health score: 98.0/100",
124
+ "source_wizard": "health_check_crew",
125
+ "source_file": "",
126
+ "source_line": null,
127
+ "severity": "",
128
+ "confidence": 1.0,
129
+ "metadata": {},
130
+ "tags": [],
131
+ "created_at": "2026-01-09T09:15:16.957791",
132
+ "updated_at": "2026-01-09T09:15:16.957792",
133
+ "status": "open"
134
+ },
135
+ {
136
+ "id": "health_check_20260109091600_a6b68eeb7ff7",
137
+ "type": "pattern",
138
+ "name": "check:.",
139
+ "description": "Health score: 98.0/100",
140
+ "source_wizard": "health_check_crew",
141
+ "source_file": "",
142
+ "source_line": null,
143
+ "severity": "",
144
+ "confidence": 1.0,
145
+ "metadata": {},
146
+ "tags": [],
147
+ "created_at": "2026-01-09T09:16:00.963952",
148
+ "updated_at": "2026-01-09T09:16:00.963953",
149
+ "status": "open"
150
+ },
151
+ {
152
+ "id": "health_check_20260109091816_a6b68eeb7ff7",
153
+ "type": "pattern",
154
+ "name": "check:.",
155
+ "description": "Health score: 98.0/100",
156
+ "source_wizard": "health_check_crew",
157
+ "source_file": "",
158
+ "source_line": null,
159
+ "severity": "",
160
+ "confidence": 1.0,
161
+ "metadata": {},
162
+ "tags": [],
163
+ "created_at": "2026-01-09T09:18:16.294605",
164
+ "updated_at": "2026-01-09T09:18:16.294607",
165
+ "status": "open"
166
+ },
167
+ {
168
+ "id": "health_check_20260109093156_a6b68eeb7ff7",
169
+ "type": "pattern",
170
+ "name": "check:.",
171
+ "description": "Health score: 98.0/100",
172
+ "source_wizard": "health_check_crew",
173
+ "source_file": "",
174
+ "source_line": null,
175
+ "severity": "",
176
+ "confidence": 1.0,
177
+ "metadata": {},
178
+ "tags": [],
179
+ "created_at": "2026-01-09T09:31:56.135757",
180
+ "updated_at": "2026-01-09T09:31:56.135759",
181
+ "status": "open"
182
+ },
183
+ {
184
+ "id": "health_check_20260109093209_a6b68eeb7ff7",
185
+ "type": "pattern",
186
+ "name": "check:.",
187
+ "description": "Health score: 98.0/100",
188
+ "source_wizard": "health_check_crew",
189
+ "source_file": "",
190
+ "source_line": null,
191
+ "severity": "",
192
+ "confidence": 1.0,
193
+ "metadata": {},
194
+ "tags": [],
195
+ "created_at": "2026-01-09T09:32:09.534803",
196
+ "updated_at": "2026-01-09T09:32:09.534805",
197
+ "status": "open"
198
+ },
199
+ {
200
+ "id": "health_check_20260109093222_a6b68eeb7ff7",
201
+ "type": "pattern",
202
+ "name": "check:.",
203
+ "description": "Health score: 98.0/100",
204
+ "source_wizard": "health_check_crew",
205
+ "source_file": "",
206
+ "source_line": null,
207
+ "severity": "",
208
+ "confidence": 1.0,
209
+ "metadata": {},
210
+ "tags": [],
211
+ "created_at": "2026-01-09T09:32:22.966130",
212
+ "updated_at": "2026-01-09T09:32:22.966136",
213
+ "status": "open"
214
+ },
215
+ {
216
+ "id": "health_check_20260109093356_a6b68eeb7ff7",
217
+ "type": "pattern",
218
+ "name": "check:.",
219
+ "description": "Health score: 98.0/100",
220
+ "source_wizard": "health_check_crew",
221
+ "source_file": "",
222
+ "source_line": null,
223
+ "severity": "",
224
+ "confidence": 1.0,
225
+ "metadata": {},
226
+ "tags": [],
227
+ "created_at": "2026-01-09T09:33:56.096542",
228
+ "updated_at": "2026-01-09T09:33:56.096543",
229
+ "status": "open"
230
+ },
231
+ {
232
+ "id": "health_check_20260109093851_a6b68eeb7ff7",
233
+ "type": "pattern",
234
+ "name": "check:.",
235
+ "description": "Health score: 98.0/100",
236
+ "source_wizard": "health_check_crew",
237
+ "source_file": "",
238
+ "source_line": null,
239
+ "severity": "",
240
+ "confidence": 1.0,
241
+ "metadata": {},
242
+ "tags": [],
243
+ "created_at": "2026-01-09T09:38:51.866226",
244
+ "updated_at": "2026-01-09T09:38:51.866227",
245
+ "status": "open"
246
+ },
247
+ {
248
+ "id": "health_check_20260109094159_a6b68eeb7ff7",
249
+ "type": "pattern",
250
+ "name": "check:.",
251
+ "description": "Health score: 98.0/100",
252
+ "source_wizard": "health_check_crew",
253
+ "source_file": "",
254
+ "source_line": null,
255
+ "severity": "",
256
+ "confidence": 1.0,
257
+ "metadata": {},
258
+ "tags": [],
259
+ "created_at": "2026-01-09T09:41:59.470457",
260
+ "updated_at": "2026-01-09T09:41:59.470459",
261
+ "status": "open"
262
+ },
263
+ {
264
+ "id": "health_check_20260109095427_a6b68eeb7ff7",
265
+ "type": "pattern",
266
+ "name": "check:.",
267
+ "description": "Health score: 98.0/100",
268
+ "source_wizard": "health_check_crew",
269
+ "source_file": "",
270
+ "source_line": null,
271
+ "severity": "",
272
+ "confidence": 1.0,
273
+ "metadata": {},
274
+ "tags": [],
275
+ "created_at": "2026-01-09T09:54:27.924237",
276
+ "updated_at": "2026-01-09T09:54:27.924241",
277
+ "status": "open"
278
+ },
279
+ {
280
+ "id": "health_check_20260109110455_c21baf66ce74",
281
+ "type": "pattern",
282
+ "name": "check:.",
283
+ "description": "Health score: 100.0/100",
284
+ "source_wizard": "health_check_crew",
285
+ "source_file": "",
286
+ "source_line": null,
287
+ "severity": "",
288
+ "confidence": 1.0,
289
+ "metadata": {},
290
+ "tags": [],
291
+ "created_at": "2026-01-09T11:04:55.413996",
292
+ "updated_at": "2026-01-09T11:04:55.414001",
293
+ "status": "open"
294
+ },
295
+ {
296
+ "id": "health_check_20260109231252_f56c24f708d0",
297
+ "type": "pattern",
298
+ "name": "check:./Empathy-framework",
299
+ "description": "Health score: 83.0/100",
300
+ "source_wizard": "health_check_crew",
301
+ "source_file": "",
302
+ "source_line": null,
303
+ "severity": "",
304
+ "confidence": 1.0,
305
+ "metadata": {},
306
+ "tags": [],
307
+ "created_at": "2026-01-09T23:12:52.912623",
308
+ "updated_at": "2026-01-09T23:12:52.912624",
309
+ "status": "open"
310
+ },
311
+ {
312
+ "id": "health_check_20260110053012_c21baf66ce74",
313
+ "type": "pattern",
314
+ "name": "check:.",
315
+ "description": "Health score: 100.0/100",
316
+ "source_wizard": "health_check_crew",
317
+ "source_file": "",
318
+ "source_line": null,
319
+ "severity": "",
320
+ "confidence": 1.0,
321
+ "metadata": {},
322
+ "tags": [],
323
+ "created_at": "2026-01-10T05:30:12.808444",
324
+ "updated_at": "2026-01-10T05:30:12.808447",
325
+ "status": "open"
326
+ },
327
+ {
328
+ "id": "health_check_20260110061503_c21baf66ce74",
329
+ "type": "pattern",
330
+ "name": "check:.",
331
+ "description": "Health score: 100.0/100",
332
+ "source_wizard": "health_check_crew",
333
+ "source_file": "",
334
+ "source_line": null,
335
+ "severity": "",
336
+ "confidence": 1.0,
337
+ "metadata": {},
338
+ "tags": [],
339
+ "created_at": "2026-01-10T06:15:03.907918",
340
+ "updated_at": "2026-01-10T06:15:03.907921",
341
+ "status": "open"
342
+ },
343
+ {
344
+ "id": "health_check_20260110065627_c21baf66ce74",
345
+ "type": "pattern",
346
+ "name": "check:.",
347
+ "description": "Health score: 100.0/100",
348
+ "source_wizard": "health_check_crew",
349
+ "source_file": "",
350
+ "source_line": null,
351
+ "severity": "",
352
+ "confidence": 1.0,
353
+ "metadata": {},
354
+ "tags": [],
355
+ "created_at": "2026-01-10T06:56:27.034106",
356
+ "updated_at": "2026-01-10T06:56:27.034108",
357
+ "status": "open"
358
+ },
359
+ {
360
+ "id": "health_check_20260110141920_c21baf66ce74",
361
+ "type": "pattern",
362
+ "name": "check:.",
363
+ "description": "Health score: 100.0/100",
364
+ "source_wizard": "health_check_crew",
365
+ "source_file": "",
366
+ "source_line": null,
367
+ "severity": "",
368
+ "confidence": 1.0,
369
+ "metadata": {},
370
+ "tags": [],
371
+ "created_at": "2026-01-10T14:19:20.374673",
372
+ "updated_at": "2026-01-10T14:19:20.374675",
373
+ "status": "open"
374
+ },
375
+ {
376
+ "id": "health_check_20260110142034_c21baf66ce74",
377
+ "type": "pattern",
378
+ "name": "check:.",
379
+ "description": "Health score: 100.0/100",
380
+ "source_wizard": "health_check_crew",
381
+ "source_file": "",
382
+ "source_line": null,
383
+ "severity": "",
384
+ "confidence": 1.0,
385
+ "metadata": {},
386
+ "tags": [],
387
+ "created_at": "2026-01-10T14:20:34.057576",
388
+ "updated_at": "2026-01-10T14:20:34.057577",
389
+ "status": "open"
390
+ },
391
+ {
392
+ "id": "health_check_20260110142817_c21baf66ce74",
393
+ "type": "pattern",
394
+ "name": "check:.",
395
+ "description": "Health score: 100.0/100",
396
+ "source_wizard": "health_check_crew",
397
+ "source_file": "",
398
+ "source_line": null,
399
+ "severity": "",
400
+ "confidence": 1.0,
401
+ "metadata": {},
402
+ "tags": [],
403
+ "created_at": "2026-01-10T14:28:17.139586",
404
+ "updated_at": "2026-01-10T14:28:17.139588",
405
+ "status": "open"
406
+ },
407
+ {
408
+ "id": "health_check_20260110144600_c21baf66ce74",
409
+ "type": "pattern",
410
+ "name": "check:.",
411
+ "description": "Health score: 100.0/100",
412
+ "source_wizard": "health_check_crew",
413
+ "source_file": "",
414
+ "source_line": null,
415
+ "severity": "",
416
+ "confidence": 1.0,
417
+ "metadata": {},
418
+ "tags": [],
419
+ "created_at": "2026-01-10T14:46:00.673767",
420
+ "updated_at": "2026-01-10T14:46:00.673769",
421
+ "status": "open"
422
+ },
423
+ {
424
+ "id": "health_check_20260110152843_c21baf66ce74",
425
+ "type": "pattern",
426
+ "name": "check:.",
427
+ "description": "Health score: 100.0/100",
428
+ "source_wizard": "health_check_crew",
429
+ "source_file": "",
430
+ "source_line": null,
431
+ "severity": "",
432
+ "confidence": 1.0,
433
+ "metadata": {},
434
+ "tags": [],
435
+ "created_at": "2026-01-10T15:28:43.883055",
436
+ "updated_at": "2026-01-10T15:28:43.883058",
437
+ "status": "open"
438
+ },
439
+ {
440
+ "id": "health_check_20260110155732_c21baf66ce74",
441
+ "type": "pattern",
442
+ "name": "check:.",
443
+ "description": "Health score: 100.0/100",
444
+ "source_wizard": "health_check_crew",
445
+ "source_file": "",
446
+ "source_line": null,
447
+ "severity": "",
448
+ "confidence": 1.0,
449
+ "metadata": {},
450
+ "tags": [],
451
+ "created_at": "2026-01-10T15:57:32.497259",
452
+ "updated_at": "2026-01-10T15:57:32.497262",
453
+ "status": "open"
454
+ },
455
+ {
456
+ "id": "health_check_20260110160351_c21baf66ce74",
457
+ "type": "pattern",
458
+ "name": "check:.",
459
+ "description": "Health score: 100.0/100",
460
+ "source_wizard": "health_check_crew",
461
+ "source_file": "",
462
+ "source_line": null,
463
+ "severity": "",
464
+ "confidence": 1.0,
465
+ "metadata": {},
466
+ "tags": [],
467
+ "created_at": "2026-01-10T16:03:51.382282",
468
+ "updated_at": "2026-01-10T16:03:51.382284",
469
+ "status": "open"
470
+ },
471
+ {
472
+ "id": "health_check_20260110161503_c21baf66ce74",
473
+ "type": "pattern",
474
+ "name": "check:.",
475
+ "description": "Health score: 100.0/100",
476
+ "source_wizard": "health_check_crew",
477
+ "source_file": "",
478
+ "source_line": null,
479
+ "severity": "",
480
+ "confidence": 1.0,
481
+ "metadata": {},
482
+ "tags": [],
483
+ "created_at": "2026-01-10T16:15:03.105556",
484
+ "updated_at": "2026-01-10T16:15:03.105559",
485
+ "status": "open"
486
+ },
487
+ {
488
+ "id": "health_check_20260110161810_7e8bafed1b4d",
489
+ "type": "pattern",
490
+ "name": "check:.",
491
+ "description": "Health score: 80.0/100",
492
+ "source_wizard": "health_check_crew",
493
+ "source_file": "",
494
+ "source_line": null,
495
+ "severity": "",
496
+ "confidence": 1.0,
497
+ "metadata": {},
498
+ "tags": [],
499
+ "created_at": "2026-01-10T16:18:10.862125",
500
+ "updated_at": "2026-01-10T16:18:10.862126",
501
+ "status": "open"
502
+ }
503
+ ],
504
+ "edges": []
505
+ }
patterns/input.py ADDED
@@ -0,0 +1,161 @@
1
+ """Input patterns for wizard data collection.
2
+
3
+ Input patterns define how wizards collect data from users:
4
+ - Structured Fields: Predefined fields with types
5
+ - Code Analysis: Code, file path, and language inputs
6
+ - Context-Based: Flexible dictionary-based input
7
+
8
+ Copyright 2025 Smart AI Memory, LLC
9
+ Licensed under Fair Source 0.9
10
+ """
11
+
12
+ from typing import Any, Literal
13
+
14
+ from pydantic import BaseModel, Field
15
+
16
+ from .core import BasePattern, CodeGeneratorMixin, PatternCategory
17
+
18
+
19
+ class FieldDefinition(BaseModel):
20
+ """Definition of a structured input field."""
21
+
22
+ name: str = Field(..., description="Field name")
23
+ field_type: str = Field(
24
+ default="str",
25
+ description="Python type (str, int, float, bool, list, dict)",
26
+ )
27
+ required: bool = Field(default=True, description="Whether field is required")
28
+ description: str = Field(default="", description="Field description")
29
+ default_value: Any = Field(default=None, description="Default value if not required")
30
+
31
+
32
+ class StructuredFieldsPattern(BasePattern, CodeGeneratorMixin):
33
+ """Structured field input pattern.
34
+
35
+ **Description:**
36
+ Wizards that collect data through predefined, typed fields. Each step
37
+ has a set of fields with validation rules.
38
+
39
+ **Usage:** 16 wizards (SOAP Note, Care Plan, Admission Assessment)
40
+ **Reusability:** 0.9
41
+
42
+ **Key Features:**
43
+ - Type-safe field definitions
44
+ - Per-step field organization
45
+ - Automatic validation
46
+ - Pydantic request models
47
+
48
+ **Example:**
49
+ Step 1: chief_complaint, history_present_illness, pain_description
50
+ Step 2: vital_signs, physical_exam_findings, lab_results
51
+ """
52
+
53
+ category: Literal[PatternCategory.INPUT] = PatternCategory.INPUT
54
+ fields_by_step: dict[int, list[FieldDefinition]] = Field(
55
+ ..., description="Fields organized by step number"
56
+ )
57
+
58
+ def generate_code(self) -> str:
59
+ """Generate Pydantic request models for each step."""
60
+ models = []
61
+
62
+ for step_num, fields in sorted(self.fields_by_step.items()):
63
+ model_name = f"Step{step_num}Request"
64
+ field_defs = []
65
+
66
+ for field in fields:
67
+ field_line = f" {field.name}: {field.field_type}"
68
+
69
+ if not field.required:
70
+ field_line += f" = {repr(field.default_value)}"
71
+
72
+ if field.description:
73
+ field_line += f" # {field.description}"
74
+
75
+ field_defs.append(field_line)
76
+
77
+ model = f'''
78
+ class {model_name}(BaseModel):
79
+ """Request model for step {step_num}"""
80
+ {chr(10).join(field_defs)}
81
+ '''
82
+ models.append(model)
83
+
84
+ return "\n".join(models)
85
+
86
+
87
+ class CodeAnalysisPattern(BasePattern):
88
+ """Code analysis input pattern.
89
+
90
+ **Description:**
91
+ Wizards that analyze source code take three standard inputs:
92
+ - code: Source code string
93
+ - file_path: Path to the file being analyzed
94
+ - language: Programming language
95
+
96
+ **Usage:** 16 wizards (all coach wizards)
97
+ **Reusability:** 0.9
98
+
99
+ **Signature:**
100
+ def analyze_code(
101
+ self,
102
+ code: str,
103
+ file_path: str,
104
+ language: str
105
+ ) -> list[WizardIssue]
106
+ """
107
+
108
+ category: Literal[PatternCategory.INPUT] = PatternCategory.INPUT
109
+ supported_languages: list[str] = Field(
110
+ default_factory=lambda: [
111
+ "python",
112
+ "javascript",
113
+ "typescript",
114
+ "java",
115
+ "go",
116
+ "rust",
117
+ ],
118
+ description="Supported programming languages",
119
+ )
120
+ returns_issues: bool = Field(
121
+ default=True,
122
+ description="Whether this returns a list of issues",
123
+ )
124
+
125
+
126
+ class ContextBasedPattern(BasePattern):
127
+ """Context-based flexible input pattern.
128
+
129
+ **Description:**
130
+ Wizards that accept a flexible dictionary of context parameters,
131
+ allowing for extensible input without rigid schemas.
132
+
133
+ **Usage:** 12 wizards (AI wizards)
134
+ **Reusability:** 0.8
135
+
136
+ **Example Context:**
137
+ {
138
+ "project_path": ".",
139
+ "linters": {"eslint": "output.json"},
140
+ "configs": {"eslint": ".eslintrc.json"},
141
+ "auto_fix": True,
142
+ "verify": True,
143
+ }
144
+
145
+ **Signature:**
146
+ async def analyze(self, context: dict[str, Any]) -> dict[str, Any]
147
+ """
148
+
149
+ category: Literal[PatternCategory.INPUT] = PatternCategory.INPUT
150
+ required_keys: list[str] = Field(
151
+ default_factory=list,
152
+ description="Required context keys",
153
+ )
154
+ optional_keys: list[str] = Field(
155
+ default_factory=list,
156
+ description="Optional context keys",
157
+ )
158
+ key_descriptions: dict[str, str] = Field(
159
+ default_factory=dict,
160
+ description="Descriptions of what each key means",
161
+ )
@@ -0,0 +1,8 @@
1
+ {
2
+ "version": "1.0",
3
+ "updated_at": "2025-12-22T22:49:47.868937",
4
+ "node_count": 0,
5
+ "edge_count": 0,
6
+ "nodes": [],
7
+ "edges": []
8
+ }