evolution-engine 0.1.0__tar.gz → 0.2.0__tar.gz

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 (94) hide show
  1. {evolution_engine-0.1.0/evolution_engine.egg-info → evolution_engine-0.2.0}/PKG-INFO +109 -18
  2. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/README.md +108 -17
  3. evolution_engine-0.2.0/evolution/__init__.py +1 -0
  4. evolution_engine-0.2.0/evolution/accepted.py +310 -0
  5. evolution_engine-0.2.0/evolution/adapter_security.py +279 -0
  6. evolution_engine-0.2.0/evolution/adapter_versions.py +162 -0
  7. evolution_engine-0.2.0/evolution/cli.py +3237 -0
  8. evolution_engine-0.2.0/evolution/config.py +369 -0
  9. evolution_engine-0.2.0/evolution/data/adapter_blocklist.json +1 -0
  10. evolution_engine-0.2.0/evolution/data/pattern_blocklist.json +1 -0
  11. evolution_engine-0.2.0/evolution/data/pattern_index.json +1 -0
  12. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/data/universal_patterns.json +54 -27
  13. evolution_engine-0.2.0/evolution/data/verified_adapters.json +1 -0
  14. evolution_engine-0.2.0/evolution/fixer.py +870 -0
  15. evolution_engine-0.2.0/evolution/friendly.py +531 -0
  16. evolution_engine-0.2.0/evolution/history.py +346 -0
  17. evolution_engine-0.2.0/evolution/hooks.py +394 -0
  18. evolution_engine-0.2.0/evolution/init.py +339 -0
  19. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/kb_export.py +47 -23
  20. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/kb_security.py +194 -2
  21. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/kb_sync.py +17 -16
  22. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/knowledge_store.py +37 -7
  23. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/license.py +5 -4
  24. evolution_engine-0.2.0/evolution/notifications.py +275 -0
  25. evolution_engine-0.2.0/evolution/orchestrator.py +824 -0
  26. evolution_engine-0.2.0/evolution/pattern_registry.py +504 -0
  27. evolution_engine-0.2.0/evolution/pattern_scaffold.py +230 -0
  28. evolution_engine-0.2.0/evolution/pattern_validator.py +206 -0
  29. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase1_engine.py +12 -1
  30. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase2_engine.py +6 -1
  31. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase4_engine.py +38 -8
  32. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase5_engine.py +245 -105
  33. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/prescan.py +10 -2
  34. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/registry.py +194 -16
  35. evolution_engine-0.2.0/evolution/report_generator.py +1822 -0
  36. evolution_engine-0.2.0/evolution/report_server.py +201 -0
  37. evolution_engine-0.2.0/evolution/setup_ui.py +735 -0
  38. evolution_engine-0.2.0/evolution/watcher.py +396 -0
  39. {evolution_engine-0.1.0 → evolution_engine-0.2.0/evolution_engine.egg-info}/PKG-INFO +109 -18
  40. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution_engine.egg-info/SOURCES.txt +18 -0
  41. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/pyproject.toml +2 -2
  42. evolution_engine-0.2.0/setup.py +68 -0
  43. evolution_engine-0.1.0/evolution/__init__.py +0 -1
  44. evolution_engine-0.1.0/evolution/cli.py +0 -1160
  45. evolution_engine-0.1.0/evolution/config.py +0 -161
  46. evolution_engine-0.1.0/evolution/fixer.py +0 -439
  47. evolution_engine-0.1.0/evolution/friendly.py +0 -200
  48. evolution_engine-0.1.0/evolution/orchestrator.py +0 -421
  49. evolution_engine-0.1.0/evolution/report_generator.py +0 -884
  50. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/MANIFEST.in +0 -0
  51. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapter_scaffold.py +0 -0
  52. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapter_validator.py +0 -0
  53. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/__init__.py +0 -0
  54. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/ci/__init__.py +0 -0
  55. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/ci/github_actions_adapter.py +0 -0
  56. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/config/__init__.py +0 -0
  57. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/config/terraform_adapter.py +0 -0
  58. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/dependency/__init__.py +0 -0
  59. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/dependency/pip_adapter.py +0 -0
  60. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/deployment/__init__.py +0 -0
  61. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/deployment/github_releases_adapter.py +0 -0
  62. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/git/__init__.py +0 -0
  63. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/git/git_adapter.py +0 -0
  64. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/git/git_history_walker.py +0 -0
  65. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/github_client.py +0 -0
  66. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/schema/__init__.py +0 -0
  67. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/schema/openapi_adapter.py +0 -0
  68. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/security/__init__.py +0 -0
  69. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/security/github_security_adapter.py +0 -0
  70. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/security/trivy_adapter.py +0 -0
  71. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/testing/__init__.py +0 -0
  72. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/adapters/testing/junit_adapter.py +0 -0
  73. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/agents/__init__.py +0 -0
  74. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/agents/anthropic_agent.py +0 -0
  75. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/agents/base.py +0 -0
  76. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/agents/cli_agent.py +0 -0
  77. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/data/adapter_catalog.json +0 -0
  78. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/data/sdk_fingerprints.json +0 -0
  79. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/fp_validation.py +0 -0
  80. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/inline_suggestions.py +0 -0
  81. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/investigator.py +0 -0
  82. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/llm_anthropic.py +0 -0
  83. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/llm_openrouter.py +0 -0
  84. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase3_1_renderer.py +0 -0
  85. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/phase3_engine.py +0 -0
  86. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/pr_comment.py +0 -0
  87. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/telemetry.py +0 -0
  88. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution/validation_gate.py +0 -0
  89. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution_engine.egg-info/dependency_links.txt +0 -0
  90. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution_engine.egg-info/entry_points.txt +0 -0
  91. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution_engine.egg-info/requires.txt +0 -0
  92. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/evolution_engine.egg-info/top_level.txt +0 -0
  93. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/setup.cfg +0 -0
  94. {evolution_engine-0.1.0 → evolution_engine-0.2.0}/tests/test_git_history_walker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolution-engine
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Git-native codebase evolution indexer
5
5
  Author: Slava
6
6
  License: MIT
@@ -72,22 +72,39 @@ Sources → Phase 1 (Record) → Phase 2 (Measure) → Phase 3 (Explain)
72
72
  ## Quick Start
73
73
 
74
74
  ```bash
75
- # Install
76
75
  pip install evolution-engine
77
-
78
- # Analyze any git repository
79
76
  evo analyze .
77
+ ```
78
+
79
+ ### Three Integration Paths
80
80
 
81
- # With a GitHub token (unlocks CI, deployment, security data)
82
- evo analyze . --token ghp_xxx
81
+ | Path | Command | When to use |
82
+ |------|---------|-------------|
83
+ | **CLI Explorer** | `evo analyze .` | Start here -- manual analysis, reports, investigation |
84
+ | **Git Hooks** | `evo init . --path hooks` | Automate locally -- analyze on every commit or push |
85
+ | **GitHub Action** | `evo init . --path action` | Automate in CI -- PR comments with risk badges |
83
86
 
84
- # Generate an HTML report
85
- evo report .
87
+ Start with the CLI. Graduate to hooks when you trust the output. Add the GitHub Action for team-wide coverage. See [QUICKSTART.md](QUICKSTART.md) for the full walkthrough.
88
+
89
+ ```bash
90
+ # Path 1: CLI Explorer (start here)
91
+ evo analyze . # Run the full pipeline
92
+ evo report . --open # Visual HTML report
93
+ evo status # Detected adapters and run info
86
94
 
87
- # See what adapters were detected
88
- evo status
95
+ # Path 2: Git Hooks (automate locally)
96
+ evo init . --path hooks # Install post-commit hook
97
+ evo watch . # Or poll for commits continuously
98
+
99
+ # Path 3: GitHub Action (CI)
100
+ evo init . --path action # Generate workflow file, then push
101
+
102
+ # All paths at once
103
+ evo init . --path all
89
104
  ```
90
105
 
106
+ Free tier gets all three paths. Pro adds AI investigation, fix suggestions, and inline PR review comments.
107
+
91
108
  ### From Source
92
109
 
93
110
  ```bash
@@ -97,7 +114,7 @@ python -m venv .venv
97
114
  source .venv/bin/activate
98
115
  pip install -e .
99
116
 
100
- # Run the test suite (246 tests)
117
+ # Run the test suite (840+ tests)
101
118
  python -m pytest tests/ -v
102
119
  ```
103
120
 
@@ -156,25 +173,65 @@ The **Git History Walker** extracts dependency, schema, and config files from gi
156
173
  ## CLI Commands
157
174
 
158
175
  ```bash
159
- # Core
176
+ # Core Analysis
160
177
  evo analyze [path] # Detect adapters, run full pipeline
161
178
  evo analyze . --families git,ci # Override auto-detection
162
179
  evo report [path] # Generate HTML report from last run
163
180
  evo status # Show detected adapters and event counts
181
+ evo investigate [path] # AI root cause analysis (Pro)
182
+ evo fix [path] # AI fix-verify loop (Pro)
183
+ evo fix [path] --residual # Iteration-aware prompt (current vs previous)
184
+ evo verify <advisory> # Compare current state to a previous advisory
185
+
186
+ # Setup & Integration
187
+ evo init [path] # Detect environment and suggest integration path
188
+ evo init . --path hooks # Install git hooks for auto-analysis
189
+ evo init . --path action # Generate GitHub Action workflow
190
+ evo init . --path all # Set up all integration paths
191
+ evo setup [path] # Interactive configuration wizard
192
+ evo setup --ui # Browser-based settings page
193
+ evo watch [path] # Watch for commits and auto-analyze
194
+ evo watch . --daemon # Run watcher in background
195
+ evo hooks install [path] # Install git hooks
196
+ evo hooks uninstall [path] # Remove git hooks
197
+ evo hooks status [path] # Show hook status
164
198
 
165
199
  # Patterns & Knowledge Base
166
200
  evo patterns list # Show discovered patterns
201
+ evo patterns pull [path] # Fetch community patterns from registry
202
+ evo patterns push [path] # Share anonymized patterns (requires privacy_level >= 1)
167
203
  evo patterns export # Export anonymized pattern digests
168
204
  evo patterns import <file> # Import community patterns
169
- evo patterns sync # Sync universal patterns
205
+ evo patterns packages # List pattern packages + cache status
206
+ evo patterns new <name> # Scaffold a pattern package
207
+ evo patterns validate <path> # Validate a pattern package
208
+ evo patterns publish <path> # Publish pattern package to PyPI
209
+ evo patterns add <package> # Subscribe to a pattern package
210
+ evo patterns remove <package> # Unsubscribe from a pattern package
211
+ evo patterns block <name> # Block a pattern package
212
+ evo patterns unblock <name> # Unblock a pattern package
170
213
 
171
214
  # Adapter Ecosystem
172
- evo adapter list # Show detected + installed adapters
215
+ evo adapter list # Show detected adapters with trust badges
216
+ evo adapter discover [path] # Find available adapters for your tools
173
217
  evo adapter validate <class> # Run 13-check certification
218
+ evo adapter validate <class> --security # + security scan
219
+ evo adapter security-check <mod> # Standalone security scan
174
220
  evo adapter guide # How to build an adapter
175
221
  evo adapter new <name> --family ci # Scaffold a pip-installable package
176
222
  evo adapter prompt <name> --family ci # Generate AI prompt for building
177
223
  evo adapter request <description> # Request an adapter from the community
224
+ evo adapter block <name> -r "reason" # Block an adapter locally
225
+ evo adapter unblock <name> # Unblock a blocked adapter
226
+ evo adapter check-updates # Check PyPI for plugin updates
227
+ evo adapter report <name> # Report a broken/malicious adapter
228
+
229
+ # Configuration & History
230
+ evo config list # Show all settings
231
+ evo config set <key> <val> # Update a setting
232
+ evo license status # Check license tier
233
+ evo history list [path] # Show run history
234
+ evo history diff [r1 r2] # Compare two runs
178
235
  ```
179
236
 
180
237
  ---
@@ -203,7 +260,7 @@ pip install -e .
203
260
  evo adapter validate evo_jenkins.JenkinsAdapter
204
261
  ```
205
262
 
206
- Checks include: required class attributes, valid family, iter_events yields valid events, JSON serialization, attestation structure, and more.
263
+ Adapters pass 13 structural checks + security scanning before certification.
207
264
 
208
265
  ### Learn More
209
266
 
@@ -221,9 +278,38 @@ The Evolution Engine discovers cross-family patterns automatically:
221
278
  - **Lift-based co-occurrence**: deviations co-occur more than chance (lift >= 1.5)
222
279
  - **Presence-based**: metric distributions differ when events co-occur (Cohen's d >= 0.2)
223
280
 
224
- Patterns progress through scopes: **local** (this repo) -> **community** (shared anonymously) -> **confirmed** (local + community match) -> **universal** (bundled in package).
281
+ Patterns progress through scopes: **local** (this repo) -> **community** (shared anonymously) -> **confirmed** (local + community match).
282
+
283
+ Community patterns are distributed through two redundant channels:
284
+ - **Registry** (real-time) — patterns pushed by users are immediately available via `codequal.dev/api`
285
+ - **PyPI packages** (durable) — periodic snapshots published as [`evo-patterns-community`](https://pypi.org/project/evo-patterns-community/), auto-fetched without `pip install`
225
286
 
226
- Universal patterns ship with the pip package and are recognized instantly on new repositories.
287
+ If the registry is unavailable, PyPI packages still work. Both are checked automatically on `evo analyze`.
288
+
289
+ ### Pattern Distribution
290
+
291
+ ```bash
292
+ # Auto-fetch happens on every `evo analyze` — no manual install needed
293
+ evo analyze .
294
+ # Imported 25 pattern(s) from community registry
295
+ # Imported 25 pattern(s) from community packages
296
+
297
+ # Pull/push patterns from the community registry
298
+ evo patterns pull .
299
+ evo patterns push . # requires: evo config set sync.privacy_level 2
300
+
301
+ # Add a third-party pattern package to your sources
302
+ evo patterns add evo-patterns-web-security
303
+
304
+ # Block an unwanted package
305
+ evo patterns block evo-patterns-untrusted
306
+
307
+ # Build and publish your own pattern package
308
+ evo patterns new my-patterns
309
+ # ... edit patterns.json ...
310
+ evo patterns validate evo-patterns-my-patterns
311
+ evo patterns publish evo-patterns-my-patterns
312
+ ```
227
313
 
228
314
  ---
229
315
 
@@ -244,6 +330,9 @@ evolution-engine/
244
330
  │ ├── knowledge_store.py # SQLite knowledge base
245
331
  │ ├── kb_export.py # Anonymized pattern export/import
246
332
  │ ├── kb_security.py # Import validation (XSS, injection, traversal)
333
+ │ ├── pattern_registry.py # Auto-fetch pattern packages from PyPI
334
+ │ ├── pattern_validator.py # Pattern package validation
335
+ │ ├── pattern_scaffold.py # Pattern package scaffolding
247
336
  │ ├── report_generator.py # Standalone HTML report generator
248
337
  │ ├── adapter_validator.py # 13-check adapter certification
249
338
  │ ├── adapter_scaffold.py # Package scaffolding + AI prompt gen
@@ -252,7 +341,9 @@ evolution-engine/
252
341
  │ ├── llm_anthropic.py # Anthropic LLM client
253
342
  │ ├── validation_gate.py # LLM output validation
254
343
  │ ├── data/
255
- │ │ └── universal_patterns.json # Bundled universal patterns
344
+ │ │ ├── universal_patterns.json # Bundled universal patterns
345
+ │ │ ├── pattern_index.json # Known pattern packages
346
+ │ │ └── pattern_blocklist.json # Blocked pattern packages
256
347
  │ └── adapters/
257
348
  │ ├── git/ # Version Control (+ Git History Walker)
258
349
  │ ├── ci/ # CI / Build Pipeline (GitHub Actions)
@@ -37,22 +37,39 @@ Sources → Phase 1 (Record) → Phase 2 (Measure) → Phase 3 (Explain)
37
37
  ## Quick Start
38
38
 
39
39
  ```bash
40
- # Install
41
40
  pip install evolution-engine
42
-
43
- # Analyze any git repository
44
41
  evo analyze .
42
+ ```
43
+
44
+ ### Three Integration Paths
45
45
 
46
- # With a GitHub token (unlocks CI, deployment, security data)
47
- evo analyze . --token ghp_xxx
46
+ | Path | Command | When to use |
47
+ |------|---------|-------------|
48
+ | **CLI Explorer** | `evo analyze .` | Start here -- manual analysis, reports, investigation |
49
+ | **Git Hooks** | `evo init . --path hooks` | Automate locally -- analyze on every commit or push |
50
+ | **GitHub Action** | `evo init . --path action` | Automate in CI -- PR comments with risk badges |
48
51
 
49
- # Generate an HTML report
50
- evo report .
52
+ Start with the CLI. Graduate to hooks when you trust the output. Add the GitHub Action for team-wide coverage. See [QUICKSTART.md](QUICKSTART.md) for the full walkthrough.
53
+
54
+ ```bash
55
+ # Path 1: CLI Explorer (start here)
56
+ evo analyze . # Run the full pipeline
57
+ evo report . --open # Visual HTML report
58
+ evo status # Detected adapters and run info
51
59
 
52
- # See what adapters were detected
53
- evo status
60
+ # Path 2: Git Hooks (automate locally)
61
+ evo init . --path hooks # Install post-commit hook
62
+ evo watch . # Or poll for commits continuously
63
+
64
+ # Path 3: GitHub Action (CI)
65
+ evo init . --path action # Generate workflow file, then push
66
+
67
+ # All paths at once
68
+ evo init . --path all
54
69
  ```
55
70
 
71
+ Free tier gets all three paths. Pro adds AI investigation, fix suggestions, and inline PR review comments.
72
+
56
73
  ### From Source
57
74
 
58
75
  ```bash
@@ -62,7 +79,7 @@ python -m venv .venv
62
79
  source .venv/bin/activate
63
80
  pip install -e .
64
81
 
65
- # Run the test suite (246 tests)
82
+ # Run the test suite (840+ tests)
66
83
  python -m pytest tests/ -v
67
84
  ```
68
85
 
@@ -121,25 +138,65 @@ The **Git History Walker** extracts dependency, schema, and config files from gi
121
138
  ## CLI Commands
122
139
 
123
140
  ```bash
124
- # Core
141
+ # Core Analysis
125
142
  evo analyze [path] # Detect adapters, run full pipeline
126
143
  evo analyze . --families git,ci # Override auto-detection
127
144
  evo report [path] # Generate HTML report from last run
128
145
  evo status # Show detected adapters and event counts
146
+ evo investigate [path] # AI root cause analysis (Pro)
147
+ evo fix [path] # AI fix-verify loop (Pro)
148
+ evo fix [path] --residual # Iteration-aware prompt (current vs previous)
149
+ evo verify <advisory> # Compare current state to a previous advisory
150
+
151
+ # Setup & Integration
152
+ evo init [path] # Detect environment and suggest integration path
153
+ evo init . --path hooks # Install git hooks for auto-analysis
154
+ evo init . --path action # Generate GitHub Action workflow
155
+ evo init . --path all # Set up all integration paths
156
+ evo setup [path] # Interactive configuration wizard
157
+ evo setup --ui # Browser-based settings page
158
+ evo watch [path] # Watch for commits and auto-analyze
159
+ evo watch . --daemon # Run watcher in background
160
+ evo hooks install [path] # Install git hooks
161
+ evo hooks uninstall [path] # Remove git hooks
162
+ evo hooks status [path] # Show hook status
129
163
 
130
164
  # Patterns & Knowledge Base
131
165
  evo patterns list # Show discovered patterns
166
+ evo patterns pull [path] # Fetch community patterns from registry
167
+ evo patterns push [path] # Share anonymized patterns (requires privacy_level >= 1)
132
168
  evo patterns export # Export anonymized pattern digests
133
169
  evo patterns import <file> # Import community patterns
134
- evo patterns sync # Sync universal patterns
170
+ evo patterns packages # List pattern packages + cache status
171
+ evo patterns new <name> # Scaffold a pattern package
172
+ evo patterns validate <path> # Validate a pattern package
173
+ evo patterns publish <path> # Publish pattern package to PyPI
174
+ evo patterns add <package> # Subscribe to a pattern package
175
+ evo patterns remove <package> # Unsubscribe from a pattern package
176
+ evo patterns block <name> # Block a pattern package
177
+ evo patterns unblock <name> # Unblock a pattern package
135
178
 
136
179
  # Adapter Ecosystem
137
- evo adapter list # Show detected + installed adapters
180
+ evo adapter list # Show detected adapters with trust badges
181
+ evo adapter discover [path] # Find available adapters for your tools
138
182
  evo adapter validate <class> # Run 13-check certification
183
+ evo adapter validate <class> --security # + security scan
184
+ evo adapter security-check <mod> # Standalone security scan
139
185
  evo adapter guide # How to build an adapter
140
186
  evo adapter new <name> --family ci # Scaffold a pip-installable package
141
187
  evo adapter prompt <name> --family ci # Generate AI prompt for building
142
188
  evo adapter request <description> # Request an adapter from the community
189
+ evo adapter block <name> -r "reason" # Block an adapter locally
190
+ evo adapter unblock <name> # Unblock a blocked adapter
191
+ evo adapter check-updates # Check PyPI for plugin updates
192
+ evo adapter report <name> # Report a broken/malicious adapter
193
+
194
+ # Configuration & History
195
+ evo config list # Show all settings
196
+ evo config set <key> <val> # Update a setting
197
+ evo license status # Check license tier
198
+ evo history list [path] # Show run history
199
+ evo history diff [r1 r2] # Compare two runs
143
200
  ```
144
201
 
145
202
  ---
@@ -168,7 +225,7 @@ pip install -e .
168
225
  evo adapter validate evo_jenkins.JenkinsAdapter
169
226
  ```
170
227
 
171
- Checks include: required class attributes, valid family, iter_events yields valid events, JSON serialization, attestation structure, and more.
228
+ Adapters pass 13 structural checks + security scanning before certification.
172
229
 
173
230
  ### Learn More
174
231
 
@@ -186,9 +243,38 @@ The Evolution Engine discovers cross-family patterns automatically:
186
243
  - **Lift-based co-occurrence**: deviations co-occur more than chance (lift >= 1.5)
187
244
  - **Presence-based**: metric distributions differ when events co-occur (Cohen's d >= 0.2)
188
245
 
189
- Patterns progress through scopes: **local** (this repo) -> **community** (shared anonymously) -> **confirmed** (local + community match) -> **universal** (bundled in package).
246
+ Patterns progress through scopes: **local** (this repo) -> **community** (shared anonymously) -> **confirmed** (local + community match).
247
+
248
+ Community patterns are distributed through two redundant channels:
249
+ - **Registry** (real-time) — patterns pushed by users are immediately available via `codequal.dev/api`
250
+ - **PyPI packages** (durable) — periodic snapshots published as [`evo-patterns-community`](https://pypi.org/project/evo-patterns-community/), auto-fetched without `pip install`
190
251
 
191
- Universal patterns ship with the pip package and are recognized instantly on new repositories.
252
+ If the registry is unavailable, PyPI packages still work. Both are checked automatically on `evo analyze`.
253
+
254
+ ### Pattern Distribution
255
+
256
+ ```bash
257
+ # Auto-fetch happens on every `evo analyze` — no manual install needed
258
+ evo analyze .
259
+ # Imported 25 pattern(s) from community registry
260
+ # Imported 25 pattern(s) from community packages
261
+
262
+ # Pull/push patterns from the community registry
263
+ evo patterns pull .
264
+ evo patterns push . # requires: evo config set sync.privacy_level 2
265
+
266
+ # Add a third-party pattern package to your sources
267
+ evo patterns add evo-patterns-web-security
268
+
269
+ # Block an unwanted package
270
+ evo patterns block evo-patterns-untrusted
271
+
272
+ # Build and publish your own pattern package
273
+ evo patterns new my-patterns
274
+ # ... edit patterns.json ...
275
+ evo patterns validate evo-patterns-my-patterns
276
+ evo patterns publish evo-patterns-my-patterns
277
+ ```
192
278
 
193
279
  ---
194
280
 
@@ -209,6 +295,9 @@ evolution-engine/
209
295
  │ ├── knowledge_store.py # SQLite knowledge base
210
296
  │ ├── kb_export.py # Anonymized pattern export/import
211
297
  │ ├── kb_security.py # Import validation (XSS, injection, traversal)
298
+ │ ├── pattern_registry.py # Auto-fetch pattern packages from PyPI
299
+ │ ├── pattern_validator.py # Pattern package validation
300
+ │ ├── pattern_scaffold.py # Pattern package scaffolding
212
301
  │ ├── report_generator.py # Standalone HTML report generator
213
302
  │ ├── adapter_validator.py # 13-check adapter certification
214
303
  │ ├── adapter_scaffold.py # Package scaffolding + AI prompt gen
@@ -217,7 +306,9 @@ evolution-engine/
217
306
  │ ├── llm_anthropic.py # Anthropic LLM client
218
307
  │ ├── validation_gate.py # LLM output validation
219
308
  │ ├── data/
220
- │ │ └── universal_patterns.json # Bundled universal patterns
309
+ │ │ ├── universal_patterns.json # Bundled universal patterns
310
+ │ │ ├── pattern_index.json # Known pattern packages
311
+ │ │ └── pattern_blocklist.json # Blocked pattern packages
221
312
  │ └── adapters/
222
313
  │ ├── git/ # Version Control (+ Git History Walker)
223
314
  │ ├── ci/ # CI / Build Pipeline (GitHub Actions)
@@ -0,0 +1 @@
1
+ __version__ = "0.2.0"