empathy-framework 4.7.0__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 (32) hide show
  1. empathy_framework-4.7.1.dist-info/METADATA +690 -0
  2. {empathy_framework-4.7.0.dist-info → empathy_framework-4.7.1.dist-info}/RECORD +31 -6
  3. {empathy_framework-4.7.0.dist-info → empathy_framework-4.7.1.dist-info}/top_level.txt +1 -0
  4. empathy_os/vscode_bridge 2.py +173 -0
  5. empathy_os/workflows/progressive/README 2.md +454 -0
  6. empathy_os/workflows/progressive/__init__ 2.py +92 -0
  7. empathy_os/workflows/progressive/cli 2.py +242 -0
  8. empathy_os/workflows/progressive/core 2.py +488 -0
  9. empathy_os/workflows/progressive/orchestrator 2.py +701 -0
  10. empathy_os/workflows/progressive/reports 2.py +528 -0
  11. empathy_os/workflows/progressive/telemetry 2.py +280 -0
  12. empathy_os/workflows/progressive/test_gen 2.py +514 -0
  13. empathy_os/workflows/progressive/workflow 2.py +628 -0
  14. patterns/README.md +119 -0
  15. patterns/__init__.py +95 -0
  16. patterns/behavior.py +298 -0
  17. patterns/code_review_memory.json +441 -0
  18. patterns/core.py +97 -0
  19. patterns/debugging.json +3763 -0
  20. patterns/empathy.py +268 -0
  21. patterns/health_check_memory.json +505 -0
  22. patterns/input.py +161 -0
  23. patterns/memory_graph.json +8 -0
  24. patterns/refactoring_memory.json +1113 -0
  25. patterns/registry.py +663 -0
  26. patterns/security_memory.json +8 -0
  27. patterns/structural.py +415 -0
  28. patterns/validation.py +194 -0
  29. empathy_framework-4.7.0.dist-info/METADATA +0 -1598
  30. {empathy_framework-4.7.0.dist-info → empathy_framework-4.7.1.dist-info}/WHEEL +0 -0
  31. {empathy_framework-4.7.0.dist-info → empathy_framework-4.7.1.dist-info}/entry_points.txt +0 -0
  32. {empathy_framework-4.7.0.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
+ }