empathy-framework 4.6.6__py3-none-any.whl → 4.7.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. empathy_framework-4.7.1.dist-info/METADATA +690 -0
  2. empathy_framework-4.7.1.dist-info/RECORD +379 -0
  3. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/top_level.txt +1 -2
  4. empathy_healthcare_plugin/monitors/monitoring/__init__.py +9 -9
  5. empathy_llm_toolkit/agent_factory/__init__.py +6 -6
  6. empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +7 -10
  7. empathy_llm_toolkit/agents_md/__init__.py +22 -0
  8. empathy_llm_toolkit/agents_md/loader.py +218 -0
  9. empathy_llm_toolkit/agents_md/parser.py +271 -0
  10. empathy_llm_toolkit/agents_md/registry.py +307 -0
  11. empathy_llm_toolkit/commands/__init__.py +51 -0
  12. empathy_llm_toolkit/commands/context.py +375 -0
  13. empathy_llm_toolkit/commands/loader.py +301 -0
  14. empathy_llm_toolkit/commands/models.py +231 -0
  15. empathy_llm_toolkit/commands/parser.py +371 -0
  16. empathy_llm_toolkit/commands/registry.py +429 -0
  17. empathy_llm_toolkit/config/__init__.py +8 -8
  18. empathy_llm_toolkit/config/unified.py +3 -7
  19. empathy_llm_toolkit/context/__init__.py +22 -0
  20. empathy_llm_toolkit/context/compaction.py +455 -0
  21. empathy_llm_toolkit/context/manager.py +434 -0
  22. empathy_llm_toolkit/hooks/__init__.py +24 -0
  23. empathy_llm_toolkit/hooks/config.py +306 -0
  24. empathy_llm_toolkit/hooks/executor.py +289 -0
  25. empathy_llm_toolkit/hooks/registry.py +302 -0
  26. empathy_llm_toolkit/hooks/scripts/__init__.py +39 -0
  27. empathy_llm_toolkit/hooks/scripts/evaluate_session.py +201 -0
  28. empathy_llm_toolkit/hooks/scripts/first_time_init.py +285 -0
  29. empathy_llm_toolkit/hooks/scripts/pre_compact.py +207 -0
  30. empathy_llm_toolkit/hooks/scripts/session_end.py +183 -0
  31. empathy_llm_toolkit/hooks/scripts/session_start.py +163 -0
  32. empathy_llm_toolkit/hooks/scripts/suggest_compact.py +225 -0
  33. empathy_llm_toolkit/learning/__init__.py +30 -0
  34. empathy_llm_toolkit/learning/evaluator.py +438 -0
  35. empathy_llm_toolkit/learning/extractor.py +514 -0
  36. empathy_llm_toolkit/learning/storage.py +560 -0
  37. empathy_llm_toolkit/providers.py +4 -11
  38. empathy_llm_toolkit/security/__init__.py +17 -17
  39. empathy_llm_toolkit/utils/tokens.py +2 -5
  40. empathy_os/__init__.py +202 -70
  41. empathy_os/cache_monitor.py +5 -3
  42. empathy_os/cli/__init__.py +11 -55
  43. empathy_os/cli/__main__.py +29 -15
  44. empathy_os/cli/commands/inspection.py +21 -12
  45. empathy_os/cli/commands/memory.py +4 -12
  46. empathy_os/cli/commands/profiling.py +198 -0
  47. empathy_os/cli/commands/utilities.py +27 -7
  48. empathy_os/cli.py +28 -57
  49. empathy_os/cli_unified.py +525 -1164
  50. empathy_os/cost_tracker.py +9 -3
  51. empathy_os/dashboard/server.py +200 -2
  52. empathy_os/hot_reload/__init__.py +7 -7
  53. empathy_os/hot_reload/config.py +6 -7
  54. empathy_os/hot_reload/integration.py +35 -35
  55. empathy_os/hot_reload/reloader.py +57 -57
  56. empathy_os/hot_reload/watcher.py +28 -28
  57. empathy_os/hot_reload/websocket.py +2 -2
  58. empathy_os/memory/__init__.py +11 -4
  59. empathy_os/memory/claude_memory.py +1 -1
  60. empathy_os/memory/cross_session.py +8 -12
  61. empathy_os/memory/edges.py +6 -6
  62. empathy_os/memory/file_session.py +770 -0
  63. empathy_os/memory/graph.py +30 -30
  64. empathy_os/memory/nodes.py +6 -6
  65. empathy_os/memory/short_term.py +15 -9
  66. empathy_os/memory/unified.py +606 -140
  67. empathy_os/meta_workflows/agent_creator.py +3 -9
  68. empathy_os/meta_workflows/cli_meta_workflows.py +113 -53
  69. empathy_os/meta_workflows/form_engine.py +6 -18
  70. empathy_os/meta_workflows/intent_detector.py +64 -24
  71. empathy_os/meta_workflows/models.py +3 -1
  72. empathy_os/meta_workflows/pattern_learner.py +13 -31
  73. empathy_os/meta_workflows/plan_generator.py +55 -47
  74. empathy_os/meta_workflows/session_context.py +2 -3
  75. empathy_os/meta_workflows/workflow.py +20 -51
  76. empathy_os/models/cli.py +2 -2
  77. empathy_os/models/tasks.py +1 -2
  78. empathy_os/models/telemetry.py +4 -1
  79. empathy_os/models/token_estimator.py +3 -1
  80. empathy_os/monitoring/alerts.py +938 -9
  81. empathy_os/monitoring/alerts_cli.py +346 -183
  82. empathy_os/orchestration/execution_strategies.py +12 -29
  83. empathy_os/orchestration/pattern_learner.py +20 -26
  84. empathy_os/orchestration/real_tools.py +6 -15
  85. empathy_os/platform_utils.py +2 -1
  86. empathy_os/plugins/__init__.py +2 -2
  87. empathy_os/plugins/base.py +64 -64
  88. empathy_os/plugins/registry.py +32 -32
  89. empathy_os/project_index/index.py +49 -15
  90. empathy_os/project_index/models.py +1 -2
  91. empathy_os/project_index/reports.py +1 -1
  92. empathy_os/project_index/scanner.py +1 -0
  93. empathy_os/redis_memory.py +10 -7
  94. empathy_os/resilience/__init__.py +1 -1
  95. empathy_os/resilience/health.py +10 -10
  96. empathy_os/routing/__init__.py +7 -7
  97. empathy_os/routing/chain_executor.py +37 -37
  98. empathy_os/routing/classifier.py +36 -36
  99. empathy_os/routing/smart_router.py +40 -40
  100. empathy_os/routing/{wizard_registry.py → workflow_registry.py} +47 -47
  101. empathy_os/scaffolding/__init__.py +8 -8
  102. empathy_os/scaffolding/__main__.py +1 -1
  103. empathy_os/scaffolding/cli.py +28 -28
  104. empathy_os/socratic/__init__.py +3 -19
  105. empathy_os/socratic/ab_testing.py +25 -36
  106. empathy_os/socratic/blueprint.py +38 -38
  107. empathy_os/socratic/cli.py +34 -20
  108. empathy_os/socratic/collaboration.py +30 -28
  109. empathy_os/socratic/domain_templates.py +9 -1
  110. empathy_os/socratic/embeddings.py +17 -13
  111. empathy_os/socratic/engine.py +135 -70
  112. empathy_os/socratic/explainer.py +70 -60
  113. empathy_os/socratic/feedback.py +24 -19
  114. empathy_os/socratic/forms.py +15 -10
  115. empathy_os/socratic/generator.py +51 -35
  116. empathy_os/socratic/llm_analyzer.py +25 -23
  117. empathy_os/socratic/mcp_server.py +99 -159
  118. empathy_os/socratic/session.py +19 -13
  119. empathy_os/socratic/storage.py +98 -67
  120. empathy_os/socratic/success.py +38 -27
  121. empathy_os/socratic/visual_editor.py +51 -39
  122. empathy_os/socratic/web_ui.py +99 -66
  123. empathy_os/telemetry/cli.py +3 -1
  124. empathy_os/telemetry/usage_tracker.py +1 -3
  125. empathy_os/test_generator/__init__.py +3 -3
  126. empathy_os/test_generator/cli.py +28 -28
  127. empathy_os/test_generator/generator.py +64 -66
  128. empathy_os/test_generator/risk_analyzer.py +11 -11
  129. empathy_os/vscode_bridge 2.py +173 -0
  130. empathy_os/vscode_bridge.py +173 -0
  131. empathy_os/workflows/__init__.py +212 -120
  132. empathy_os/workflows/batch_processing.py +8 -24
  133. empathy_os/workflows/bug_predict.py +1 -1
  134. empathy_os/workflows/code_review.py +20 -5
  135. empathy_os/workflows/code_review_pipeline.py +13 -8
  136. empathy_os/workflows/keyboard_shortcuts/workflow.py +6 -2
  137. empathy_os/workflows/manage_documentation.py +1 -0
  138. empathy_os/workflows/orchestrated_health_check.py +6 -11
  139. empathy_os/workflows/orchestrated_release_prep.py +3 -3
  140. empathy_os/workflows/pr_review.py +18 -10
  141. empathy_os/workflows/progressive/README 2.md +454 -0
  142. empathy_os/workflows/progressive/__init__ 2.py +92 -0
  143. empathy_os/workflows/progressive/__init__.py +2 -12
  144. empathy_os/workflows/progressive/cli 2.py +242 -0
  145. empathy_os/workflows/progressive/cli.py +14 -37
  146. empathy_os/workflows/progressive/core 2.py +488 -0
  147. empathy_os/workflows/progressive/core.py +12 -12
  148. empathy_os/workflows/progressive/orchestrator 2.py +701 -0
  149. empathy_os/workflows/progressive/orchestrator.py +166 -144
  150. empathy_os/workflows/progressive/reports 2.py +528 -0
  151. empathy_os/workflows/progressive/reports.py +22 -31
  152. empathy_os/workflows/progressive/telemetry 2.py +280 -0
  153. empathy_os/workflows/progressive/telemetry.py +8 -14
  154. empathy_os/workflows/progressive/test_gen 2.py +514 -0
  155. empathy_os/workflows/progressive/test_gen.py +29 -48
  156. empathy_os/workflows/progressive/workflow 2.py +628 -0
  157. empathy_os/workflows/progressive/workflow.py +31 -70
  158. empathy_os/workflows/release_prep.py +21 -6
  159. empathy_os/workflows/release_prep_crew.py +1 -0
  160. empathy_os/workflows/secure_release.py +13 -6
  161. empathy_os/workflows/security_audit.py +8 -3
  162. empathy_os/workflows/test_coverage_boost_crew.py +3 -2
  163. empathy_os/workflows/test_maintenance_crew.py +1 -0
  164. empathy_os/workflows/test_runner.py +16 -12
  165. empathy_software_plugin/SOFTWARE_PLUGIN_README.md +25 -703
  166. empathy_software_plugin/cli.py +0 -122
  167. patterns/README.md +119 -0
  168. patterns/__init__.py +95 -0
  169. patterns/behavior.py +298 -0
  170. patterns/code_review_memory.json +441 -0
  171. patterns/core.py +97 -0
  172. patterns/debugging.json +3763 -0
  173. patterns/empathy.py +268 -0
  174. patterns/health_check_memory.json +505 -0
  175. patterns/input.py +161 -0
  176. patterns/memory_graph.json +8 -0
  177. patterns/refactoring_memory.json +1113 -0
  178. patterns/registry.py +663 -0
  179. patterns/security_memory.json +8 -0
  180. patterns/structural.py +415 -0
  181. patterns/validation.py +194 -0
  182. coach_wizards/__init__.py +0 -45
  183. coach_wizards/accessibility_wizard.py +0 -91
  184. coach_wizards/api_wizard.py +0 -91
  185. coach_wizards/base_wizard.py +0 -209
  186. coach_wizards/cicd_wizard.py +0 -91
  187. coach_wizards/code_reviewer_README.md +0 -60
  188. coach_wizards/code_reviewer_wizard.py +0 -180
  189. coach_wizards/compliance_wizard.py +0 -91
  190. coach_wizards/database_wizard.py +0 -91
  191. coach_wizards/debugging_wizard.py +0 -91
  192. coach_wizards/documentation_wizard.py +0 -91
  193. coach_wizards/generate_wizards.py +0 -347
  194. coach_wizards/localization_wizard.py +0 -173
  195. coach_wizards/migration_wizard.py +0 -91
  196. coach_wizards/monitoring_wizard.py +0 -91
  197. coach_wizards/observability_wizard.py +0 -91
  198. coach_wizards/performance_wizard.py +0 -91
  199. coach_wizards/prompt_engineering_wizard.py +0 -661
  200. coach_wizards/refactoring_wizard.py +0 -91
  201. coach_wizards/scaling_wizard.py +0 -90
  202. coach_wizards/security_wizard.py +0 -92
  203. coach_wizards/testing_wizard.py +0 -91
  204. empathy_framework-4.6.6.dist-info/METADATA +0 -1597
  205. empathy_framework-4.6.6.dist-info/RECORD +0 -410
  206. empathy_llm_toolkit/wizards/__init__.py +0 -43
  207. empathy_llm_toolkit/wizards/base_wizard.py +0 -364
  208. empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -190
  209. empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -378
  210. empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -64
  211. empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -193
  212. empathy_llm_toolkit/wizards/technology_wizard.py +0 -209
  213. empathy_os/wizard_factory_cli.py +0 -170
  214. empathy_software_plugin/wizards/__init__.py +0 -42
  215. empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -395
  216. empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -511
  217. empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -503
  218. empathy_software_plugin/wizards/ai_context_wizard.py +0 -441
  219. empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -503
  220. empathy_software_plugin/wizards/base_wizard.py +0 -288
  221. empathy_software_plugin/wizards/book_chapter_wizard.py +0 -519
  222. empathy_software_plugin/wizards/code_review_wizard.py +0 -604
  223. empathy_software_plugin/wizards/debugging/__init__.py +0 -50
  224. empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -414
  225. empathy_software_plugin/wizards/debugging/config_loaders.py +0 -446
  226. empathy_software_plugin/wizards/debugging/fix_applier.py +0 -469
  227. empathy_software_plugin/wizards/debugging/language_patterns.py +0 -385
  228. empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -470
  229. empathy_software_plugin/wizards/debugging/verification.py +0 -369
  230. empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -537
  231. empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -816
  232. empathy_software_plugin/wizards/multi_model_wizard.py +0 -501
  233. empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -422
  234. empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -400
  235. empathy_software_plugin/wizards/performance/__init__.py +0 -9
  236. empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -221
  237. empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -278
  238. empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -429
  239. empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -305
  240. empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -425
  241. empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -461
  242. empathy_software_plugin/wizards/security/__init__.py +0 -32
  243. empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -290
  244. empathy_software_plugin/wizards/security/owasp_patterns.py +0 -241
  245. empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -604
  246. empathy_software_plugin/wizards/security_analysis_wizard.py +0 -322
  247. empathy_software_plugin/wizards/security_learning_wizard.py +0 -740
  248. empathy_software_plugin/wizards/tech_debt_wizard.py +0 -726
  249. empathy_software_plugin/wizards/testing/__init__.py +0 -27
  250. empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -459
  251. empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -525
  252. empathy_software_plugin/wizards/testing/test_suggester.py +0 -533
  253. empathy_software_plugin/wizards/testing_wizard.py +0 -274
  254. wizards/__init__.py +0 -82
  255. wizards/admission_assessment_wizard.py +0 -644
  256. wizards/care_plan.py +0 -321
  257. wizards/clinical_assessment.py +0 -769
  258. wizards/discharge_planning.py +0 -77
  259. wizards/discharge_summary_wizard.py +0 -468
  260. wizards/dosage_calculation.py +0 -497
  261. wizards/incident_report_wizard.py +0 -454
  262. wizards/medication_reconciliation.py +0 -85
  263. wizards/nursing_assessment.py +0 -171
  264. wizards/patient_education.py +0 -654
  265. wizards/quality_improvement.py +0 -705
  266. wizards/sbar_report.py +0 -324
  267. wizards/sbar_wizard.py +0 -608
  268. wizards/shift_handoff_wizard.py +0 -535
  269. wizards/soap_note_wizard.py +0 -679
  270. wizards/treatment_plan.py +0 -15
  271. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/WHEEL +0 -0
  272. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/entry_points.txt +0 -0
  273. {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,288 +0,0 @@
1
- """Base Wizard for Software Development Plugin
2
-
3
- Foundation for all software development wizards.
4
-
5
- Copyright 2025 Smart AI Memory, LLC
6
- Licensed under Fair Source 0.9
7
- """
8
-
9
- import hashlib
10
- import json
11
- import logging
12
- from abc import ABC, abstractmethod
13
- from typing import Any
14
-
15
- from empathy_os.redis_memory import (
16
- AccessTier,
17
- AgentCredentials,
18
- RedisShortTermMemory,
19
- StagedPattern,
20
- )
21
-
22
- logger = logging.getLogger(__name__)
23
-
24
-
25
- class BaseWizard(ABC):
26
- """Base class for all software development wizards.
27
-
28
- All wizards implement Level 4 Anticipatory Empathy:
29
- - Analyze current state
30
- - Predict future problems
31
- - Provide prevention steps
32
-
33
- With Redis short-term memory, wizards can:
34
- - Cache analysis results for reuse
35
- - Share context with other wizards
36
- - Stage discovered patterns for validation
37
- - Coordinate with multi-agent teams
38
- """
39
-
40
- def __init__(
41
- self,
42
- short_term_memory: RedisShortTermMemory | None = None,
43
- cache_ttl_seconds: int = 3600,
44
- ):
45
- """Initialize base wizard.
46
-
47
- Args:
48
- short_term_memory: Optional Redis memory for caching/sharing
49
- cache_ttl_seconds: Cache duration for analysis results (default 1 hour)
50
-
51
- """
52
- self.logger = logger
53
- self.short_term_memory = short_term_memory
54
- self.cache_ttl = cache_ttl_seconds
55
-
56
- # Create credentials for this wizard
57
- self._credentials = AgentCredentials(
58
- agent_id=f"wizard_{self.__class__.__name__}",
59
- tier=AccessTier.CONTRIBUTOR,
60
- )
61
-
62
- @property
63
- @abstractmethod
64
- def name(self) -> str:
65
- """Wizard name"""
66
-
67
- @property
68
- @abstractmethod
69
- def level(self) -> int:
70
- """Empathy level (1-5)"""
71
-
72
- @abstractmethod
73
- async def analyze(self, context: dict[str, Any]) -> dict[str, Any]:
74
- """Analyze the given context and return results.
75
-
76
- Args:
77
- context: Dictionary with wizard-specific inputs
78
-
79
- Returns:
80
- Dictionary with:
81
- - predictions: List of Level 4 predictions
82
- - recommendations: List of actionable steps
83
- - confidence: Float 0.0-1.0
84
- - Additional wizard-specific data
85
-
86
- """
87
-
88
- # =========================================================================
89
- # SHORT-TERM MEMORY (Caching & Sharing)
90
- # =========================================================================
91
-
92
- def _cache_key(self, context: dict[str, Any]) -> str:
93
- """Generate a cache key from context."""
94
- # Create deterministic hash of context
95
- context_str = json.dumps(context, sort_keys=True, default=str)
96
- hash_val = hashlib.md5(context_str.encode(), usedforsecurity=False).hexdigest()[:12]
97
- return f"{self.name}:{hash_val}"
98
-
99
- def has_memory(self) -> bool:
100
- """Check if short-term memory is available."""
101
- return self.short_term_memory is not None
102
-
103
- def get_cached_result(self, context: dict[str, Any]) -> dict[str, Any] | None:
104
- """Get cached analysis result if available.
105
-
106
- Args:
107
- context: The analysis context (used for cache key)
108
-
109
- Returns:
110
- Cached result dict, or None if not cached
111
-
112
- """
113
- if self.short_term_memory is None:
114
- return None
115
-
116
- key = self._cache_key(context)
117
- result = self.short_term_memory.retrieve(key, self._credentials)
118
- return dict(result) if result else None
119
-
120
- def cache_result(self, context: dict[str, Any], result: dict[str, Any]) -> bool:
121
- """Cache analysis result for future reuse.
122
-
123
- Args:
124
- context: The analysis context (used for cache key)
125
- result: The analysis result to cache
126
-
127
- Returns:
128
- True if cached successfully
129
-
130
- """
131
- if self.short_term_memory is None:
132
- return False
133
-
134
- key = self._cache_key(context)
135
- return bool(self.short_term_memory.stash(key, result, self._credentials))
136
-
137
- async def analyze_with_cache(self, context: dict[str, Any]) -> dict[str, Any]:
138
- """Analyze with automatic caching.
139
-
140
- First checks cache for existing result. If not found,
141
- runs analysis and caches the result.
142
-
143
- Args:
144
- context: Dictionary with wizard-specific inputs
145
-
146
- Returns:
147
- Analysis result (from cache or fresh)
148
-
149
- """
150
- # Try cache first
151
- cached = self.get_cached_result(context)
152
- if cached is not None:
153
- self.logger.debug(f"{self.name}: Using cached result")
154
- cached["_from_cache"] = True
155
- return cached
156
-
157
- # Run fresh analysis
158
- result = await self.analyze(context)
159
- result["_from_cache"] = False
160
-
161
- # Cache the result
162
- self.cache_result(context, result)
163
-
164
- return result
165
-
166
- def share_context(self, key: str, data: Any) -> bool:
167
- """Share context data for other wizards to use.
168
-
169
- Use this to pass intermediate results or discovered insights
170
- to subsequent wizards in a pipeline.
171
-
172
- Shared context uses a global namespace accessible to all wizards.
173
-
174
- Args:
175
- key: Unique key for this shared data
176
- data: Any JSON-serializable data
177
-
178
- Returns:
179
- True if shared successfully
180
-
181
- """
182
- if self.short_term_memory is None:
183
- return False
184
-
185
- # Use global credentials for shared context (accessible to all wizards)
186
- global_creds = AgentCredentials(
187
- agent_id="wizard_shared",
188
- tier=AccessTier.CONTRIBUTOR,
189
- )
190
- return bool(
191
- self.short_term_memory.stash(
192
- f"shared:{key}",
193
- data,
194
- global_creds,
195
- ),
196
- )
197
-
198
- def get_shared_context(self, key: str, from_wizard: str | None = None) -> Any | None:
199
- """Get context data shared by another wizard.
200
-
201
- If from_wizard is specified, looks in that wizard's private namespace.
202
- Otherwise, looks in the global shared namespace.
203
-
204
- Args:
205
- key: Key for the shared data
206
- from_wizard: Specific wizard to get from (e.g., "SecurityAnalysisWizard")
207
- If None, uses global shared namespace.
208
-
209
- Returns:
210
- The shared data, or None if not found
211
-
212
- """
213
- if self.short_term_memory is None:
214
- return None
215
-
216
- # Use global shared namespace by default, or specific wizard if requested
217
- agent_id = f"wizard_{from_wizard}" if from_wizard else "wizard_shared"
218
- return self.short_term_memory.retrieve(
219
- f"shared:{key}",
220
- self._credentials,
221
- agent_id=agent_id,
222
- )
223
-
224
- def stage_discovered_pattern(
225
- self,
226
- pattern_id: str,
227
- pattern_type: str,
228
- name: str,
229
- description: str,
230
- confidence: float = 0.5,
231
- code: str | None = None,
232
- ) -> bool:
233
- """Stage a pattern discovered during analysis.
234
-
235
- When a wizard discovers a reusable pattern, it can stage it
236
- for validation and eventual promotion to the pattern library.
237
-
238
- Args:
239
- pattern_id: Unique pattern identifier
240
- pattern_type: Type (e.g., "security", "performance", "testing")
241
- name: Human-readable name
242
- description: What this pattern does
243
- confidence: Discovery confidence (0.0-1.0)
244
- code: Optional code example
245
-
246
- Returns:
247
- True if staged successfully
248
-
249
- """
250
- if self.short_term_memory is None:
251
- return False
252
-
253
- pattern = StagedPattern(
254
- pattern_id=pattern_id,
255
- agent_id=self._credentials.agent_id,
256
- pattern_type=pattern_type,
257
- name=name,
258
- description=description,
259
- confidence=confidence,
260
- code=code,
261
- context={"wizard": self.name, "level": self.level},
262
- )
263
-
264
- return bool(self.short_term_memory.stage_pattern(pattern, self._credentials))
265
-
266
- def send_signal(self, signal_type: str, data: dict) -> bool:
267
- """Send a coordination signal.
268
-
269
- Use to notify completion, request help, or broadcast status.
270
-
271
- Args:
272
- signal_type: Type of signal
273
- data: Signal payload
274
-
275
- Returns:
276
- True if sent successfully
277
-
278
- """
279
- if self.short_term_memory is None:
280
- return False
281
-
282
- return bool(
283
- self.short_term_memory.send_signal(
284
- signal_type=signal_type,
285
- data={"wizard": self.name, **data},
286
- credentials=self._credentials,
287
- ),
288
- )