@evomap/evolver 1.78.2 → 1.78.4

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.
package/README.md CHANGED
@@ -359,6 +359,20 @@ This repo includes a protocol-constrained prompt mode based on [GEP (Genome Evol
359
359
  - **Selector** logic uses extracted signals to prefer existing Genes/Capsules and emits a JSON selector decision in the prompt.
360
360
  - **Constraints**: Only the DNA emoji is allowed in documentation; all other emoji are disallowed.
361
361
 
362
+ ### Your local asset store is never overwritten by upgrades
363
+
364
+ `assets/gep/genes.json`, `assets/gep/capsules.json`, and `assets/gep/events.jsonl` are owned by your runtime. Starting with 1.78.3, the npm tarball no longer contains these files, so `npm i -g @evomap/evolver` (or `git pull` of the public repo) never clobbers your accumulated Genes, Capsules, or EvolutionEvents. New installs still receive the curated starter Genes through `assets/gep/genes.seed.json`, which is applied only when `genes.json` is absent.
365
+
366
+ If you ran an older evolver version that wiped your local assets, pull back everything you Promoted or published to the Hub with a single command:
367
+
368
+ ```bash
369
+ A2A_HUB_URL=https://evomap.ai evolver sync --scope=all --export=backup.gepx
370
+ ```
371
+
372
+ This hits `/a2a/assets/purchased` (Promoted-to-you plus self-purchased) and `/a2a/assets/published-by-me` (your own drafts and published assets), re-materializes the full payloads into `genes.json` / `capsules.json`, and packs a portable `.gepx` bundle. Previously-purchased payloads re-fetch at zero cost.
373
+
374
+ Purely local assets that were never uploaded to the Hub have no remote copy -- recover them from your git history (for example `git show <old_tag>:assets/gep/genes.json > restored.json`) or from disk snapshots.
375
+
362
376
  ## Configuration & Decoupling
363
377
 
364
378
  Evolver is designed to be **environment-agnostic**.
package/README.zh-CN.md CHANGED
@@ -350,6 +350,20 @@ WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 evolver --loop
350
350
  - **Selector 选择器**:根据日志提取 signals,优先复用已有 Gene/Capsule,并在提示词中输出可审计的 Selector 决策 JSON。
351
351
  - **约束**:除 🧬 外,禁止使用其他 emoji。
352
352
 
353
+ ### 升级不再覆盖你的本地资产库
354
+
355
+ `assets/gep/genes.json`、`assets/gep/capsules.json`、`assets/gep/events.jsonl` 属于你本地运行时。从 1.78.3 起,npm 发行包不再包含这三个文件,`npm i -g @evomap/evolver`(或公共仓库的 `git pull`)不会再覆盖你累积的 Gene、Capsule 和 EvolutionEvent。新装用户依然会通过 `assets/gep/genes.seed.json` 拿到引擎维护的 starter Gene —— 只有在本地 `genes.json` 不存在时才会应用一次。
356
+
357
+ 如果你之前用老版本被覆盖过,现在可以一键把所有被 Promoted 给你、以及你自己上传到 Hub 的资产拉回来:
358
+
359
+ ```bash
360
+ A2A_HUB_URL=https://evomap.ai evolver sync --scope=all --export=backup.gepx
361
+ ```
362
+
363
+ 它会去 `/a2a/assets/purchased`(被 Promoted 给你 + 自购)和 `/a2a/assets/published-by-me`(你自己发布的,含 draft)拉回完整 payload,直接回写 `genes.json` / `capsules.json`,并顺便打成 `.gepx` 整包备份。已购买过的 payload 这次重新拉取不收费。
364
+
365
+ 纯本地、从未上传过的资产 Hub 没有副本,只能从 git 历史恢复(例如 `git show <老tag>:assets/gep/genes.json > restored.json`)或从磁盘快照找回。
366
+
353
367
  ## 配置与解耦
354
368
 
355
369
  Evolver 能自动适应不同环境。
@@ -0,0 +1,3 @@
1
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-05-03T13:23:13.251Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
2
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-05-03T13:23:42.416Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
3
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-05-03T13:24:12.201Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
@@ -1 +1,4 @@
1
- {"version":1,"capsules":[]}
1
+ {
2
+ "version": 1,
3
+ "capsules": []
4
+ }
@@ -1,3 +0,0 @@
1
- {"type": "EvolutionEvent", "schema_version": "1.6.0", "id": "evt_1776784060000", "parent": null, "intent": "optimize", "signals": ["skill_distillation", "skill2gep", "gene_authoring"], "genes_used": ["gene_skill2gep_gene_distill"], "mutation_id": null, "personality_state": null, "blast_radius": {"files": 2, "lines": 110}, "outcome": {"status": "success", "score": 0.88}, "capsule_id": "cap_20260421t150740_420781e4", "source_type": "skill2gep_distillation", "reused_asset_id": null, "env_fingerprint": {"os": "linux-6.1", "node": "22.22.0", "key_deps": {"skill2gep": "0.1.0"}}, "validation_report_id": "valrpt_1776784060000", "meta": {"at": "2026-04-21T15:07:40.000Z", "note": "first real execution: distilled ~/.cursor/skills/skill2gep/SKILL.md into 3 Genes (gene_distill, capsule_collect, publish_route). Validators exit=0, blast_radius=2/110.", "run_id": "run_skill2gep_self_distill_1"}}
2
- {"type": "EvolutionEvent", "schema_version": "1.6.0", "id": "evt_1776784535635", "parent": "evt_1776784060000", "intent": "optimize", "signals": ["skill_distillation", "vercel_deploy", "ci_cd"], "genes_used": ["gene_skill2gep_gene_distill"], "mutation_id": null, "personality_state": null, "blast_radius": {"files": 2, "lines": 34}, "outcome": {"status": "success", "score": 0.86}, "capsule_id": "cap_20260421t150740_420781e4", "source_type": "skill2gep_distillation", "reused_asset_id": "sha256:bf3156da689e036fa96d1f20e6a2114b922e3122bfc37c6cd8b037b0789bc775", "env_fingerprint": {"os": "linux-6.1", "node": "22.22.0", "key_deps": {"skill2gep": "0.1.0"}}, "validation_report_id": "valrpt_1776784535635", "meta": {"at": "2026-04-21T15:15:35.000Z", "note": "second independent execution: distilled vercel/skills/deployments-cicd/SKILL.md into gene_vercel_deploy_cicd. validate_gene.js passed schema+dry-run, scenario replay accept against source Best Practices + Common Build Errors sections.", "run_id": "run_skill2gep_reuse_vercel_cicd"}}
3
- {"type":"EvolutionEvent","schema_version":"1.6.0","id":"evt_1776818440_bundle3","parent":"evt_1776784535635","intent":"optimize","signals":["skill_distillation","skill2gep","vercel_ai_sdk"],"genes_used":["gene_skill2gep_gene_distill"],"capsule_id":"cap_20260421t150740_420781e4","mutation_id":"mut_skill2gep_run3","personality_state":{},"blast_radius":{"files":1,"lines":0},"outcome":{"status":"success","score":0.9},"reused_asset_id":"sha256:ce814505124e8320cf3cce13676364c892e04a62ef7a29308913495a38fb9237","validation_report_id":"valrpt_1776818440_bundle3","source_type":"skill2gep_distillation","env_fingerprint":{"os":"linux-6.1","node":"22.22.0","platform":"linux","arch":"x64","key_deps":{"skill2gep":"0.1.0"}},"meta":{"at":"2026-04-22T00:40:40.563Z","note":"bundle republish: capsule upgraded with full 7-step execution_trace + success_streak=2 to clear intent_drift. event records third run against vercel ai-sdk/SKILL.md.","run_id":"run_skill2gep_bundle_v2"},"asset_id":"sha256:60f7d29049c52775e3cce89fe27b0997322ffe3ba13063dd80f17fa5c0ab76c8"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": 1,
3
+ "failed_capsules": []
4
+ }
File without changes
@@ -0,0 +1,201 @@
1
+ {
2
+ "version": 2,
3
+ "genes": [
4
+ {
5
+ "type": "Gene",
6
+ "id": "gene_gep_repair_from_errors",
7
+ "category": "repair",
8
+ "signals_match": [
9
+ "error",
10
+ "exception",
11
+ "failed",
12
+ "unstable"
13
+ ],
14
+ "preconditions": [
15
+ "signals contains error-related indicators"
16
+ ],
17
+ "strategy": [
18
+ "Extract structured signals from logs and user instructions",
19
+ "Select an existing Gene by signals match (no improvisation)",
20
+ "Estimate blast radius (files, lines) before editing",
21
+ "Apply smallest reversible patch",
22
+ "Validate using declared validation steps; rollback on failure",
23
+ "Solidify knowledge: append EvolutionEvent, update Gene/Capsule store"
24
+ ],
25
+ "constraints": {
26
+ "max_files": 20,
27
+ "forbidden_paths": [
28
+ ".git",
29
+ "node_modules"
30
+ ]
31
+ },
32
+ "validation": [
33
+ "node scripts/validate-modules.js ./src/evolve ./src/gep/solidify ./src/gep/policyCheck ./src/gep/selector ./src/gep/memoryGraph ./src/gep/assetStore",
34
+ "node scripts/validate-suite.js"
35
+ ]
36
+ },
37
+ {
38
+ "type": "Gene",
39
+ "id": "gene_gep_optimize_prompt_and_assets",
40
+ "category": "optimize",
41
+ "signals_match": [
42
+ "protocol",
43
+ "gep",
44
+ "prompt",
45
+ "audit",
46
+ "reusable"
47
+ ],
48
+ "preconditions": [
49
+ "need stricter, auditable evolution protocol outputs"
50
+ ],
51
+ "strategy": [
52
+ "Extract signals and determine selection rationale via Selector JSON",
53
+ "Prefer reusing existing Gene/Capsule; only create if no match exists",
54
+ "Refactor prompt assembly to embed assets (genes, capsules, parent event)",
55
+ "Reduce noise and ambiguity; enforce strict output schema",
56
+ "Validate by running node index.js run and ensuring no runtime errors",
57
+ "Solidify: record EvolutionEvent, update Gene definitions, create Capsule on success"
58
+ ],
59
+ "constraints": {
60
+ "max_files": 20,
61
+ "forbidden_paths": [
62
+ ".git",
63
+ "node_modules"
64
+ ]
65
+ },
66
+ "validation": [
67
+ "node scripts/validate-modules.js ./src/evolve ./src/gep/prompt ./src/gep/contentHash ./src/gep/skillDistiller",
68
+ "node scripts/validate-suite.js"
69
+ ]
70
+ },
71
+ {
72
+ "type": "Gene",
73
+ "id": "gene_gep_innovate_from_opportunity",
74
+ "category": "innovate",
75
+ "signals_match": [
76
+ "user_feature_request",
77
+ "user_improvement_suggestion",
78
+ "perf_bottleneck",
79
+ "capability_gap",
80
+ "stable_success_plateau",
81
+ "external_opportunity",
82
+ "bounty_task"
83
+ ],
84
+ "preconditions": [
85
+ "at least one opportunity signal is present",
86
+ "no active log_error signals (stability first)"
87
+ ],
88
+ "strategy": [
89
+ "Extract opportunity signals and identify the specific user need or system gap",
90
+ "Search existing Genes and Capsules for partial matches (avoid reinventing)",
91
+ "Design a minimal, testable implementation plan (prefer small increments)",
92
+ "Estimate blast radius; innovate changes may touch more files but must stay within constraints",
93
+ "Implement the change with clear validation criteria",
94
+ "Validate using declared validation steps; rollback on failure",
95
+ "Solidify: record EvolutionEvent with intent=innovate, create new Gene if pattern is novel, create Capsule on success"
96
+ ],
97
+ "constraints": {
98
+ "max_files": 25,
99
+ "forbidden_paths": [
100
+ ".git",
101
+ "node_modules"
102
+ ]
103
+ },
104
+ "validation": [
105
+ "node scripts/validate-modules.js ./src/evolve ./src/gep/solidify ./src/gep/policyCheck ./src/gep/mutation ./src/gep/personality",
106
+ "node scripts/validate-suite.js"
107
+ ]
108
+ },
109
+ {
110
+ "type": "Gene",
111
+ "id": "gene_gep_optimize_tool_usage",
112
+ "summary": "Optimize tool execution patterns by reducing redundant exec calls, improving tool selection strategy, and enforcing tool-use constraints to prevent bypass.",
113
+ "category": "optimize",
114
+ "signals_match": [
115
+ "high_tool_usage:exec",
116
+ "repeated_tool_usage:exec",
117
+ "tool_bypass",
118
+ "tool_loop",
119
+ "high_tool_usage"
120
+ ],
121
+ "preconditions": [
122
+ "agent repeatedly invokes the same tool (especially exec) without progress",
123
+ "tool execution bypass patterns detected",
124
+ "no active error signals (errors would take repair priority)"
125
+ ],
126
+ "strategy": [
127
+ "Analyze tool usage patterns to identify the root cause of repetition (wrong tool, missing context, or lack of guardrails)",
128
+ "Introduce strategy-level guardrails: prefer single-shot commands, batch related operations, add explicit retry limits",
129
+ "If tool_bypass detected, strengthen constraint enforcement in prompt assembly or tool routing",
130
+ "Estimate blast radius; changes should target tool routing, prompt constraints, or signal deduplication logic",
131
+ "Validate by confirming no regressions in existing tool tests and signal extraction accuracy",
132
+ "Solidify: record EvolutionEvent with intent=optimize, update Capsule on success"
133
+ ],
134
+ "constraints": {
135
+ "max_files": 15,
136
+ "forbidden_paths": [
137
+ ".git",
138
+ "node_modules"
139
+ ]
140
+ },
141
+ "validation": [
142
+ "node scripts/validate-modules.js ./src/gep/signals ./src/evolve",
143
+ "node scripts/validate-suite.js"
144
+ ]
145
+ },
146
+ {
147
+ "type": "Gene",
148
+ "id": "gene_distilled_s2g-env-vars",
149
+ "summary": "Vercel environment variable expert guidance. Use when working with .env files, vercel env commands, OIDC tokens, or managing environment-specific configuration.",
150
+ "category": "optimize",
151
+ "signals_match": [
152
+ "use_when_working_with",
153
+ "env_files",
154
+ "vercel_env_commands",
155
+ "oidc_tokens",
156
+ "vercel_env_pull",
157
+ "env_local_overwrite",
158
+ "oidc_token_expiry",
159
+ "dotenv_cli"
160
+ ],
161
+ "preconditions": [
162
+ "Skill env-vars has just been executed locally"
163
+ ],
164
+ "strategy": [
165
+ "Identify the dominant trigger signals from the Skill description.",
166
+ "Apply the smallest targeted change that satisfies the Skill workflow.",
167
+ "Run the Skill validation commands and abort if any fails."
168
+ ],
169
+ "constraints": {
170
+ "max_files": 12,
171
+ "forbidden_paths": [
172
+ ".git",
173
+ "node_modules"
174
+ ]
175
+ },
176
+ "validation": [
177
+ "node --version"
178
+ ],
179
+ "schema_version": "1.6.0",
180
+ "_source": {
181
+ "kind": "skill2gep",
182
+ "skill_name": "env-vars",
183
+ "skill_platform": "vercel",
184
+ "skill_hash": "ba0bdb4db2",
185
+ "rationale_paper": "Wang, Ren, Zhang. From Procedural Skills to Strategy Genes. arXiv:2604.15097",
186
+ "paper_scope": "code-science (arXiv:2604.15097, 45 tasks, Gemini 3.1 Pro/Flash Lite)",
187
+ "claims_outside_scope": "assumption",
188
+ "quality_heuristics": {
189
+ "strategy_steps": 0,
190
+ "avoid_count": 0,
191
+ "validation_declared_count": 0,
192
+ "validation_runnable_count": 0,
193
+ "validation_fallback_used": true,
194
+ "signals_extracted": 4,
195
+ "preconditions_extracted": 0
196
+ }
197
+ },
198
+ "asset_id": "sha256:4fa74fe34d19564416dfd8e63f3012a1672e86f39c4bff85d1c70524e06b5a2e"
199
+ }
200
+ ]
201
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evomap/evolver",
3
- "version": "1.78.2",
3
+ "version": "1.78.4",
4
4
  "description": "A GEP-powered self-evolution engine for AI agents. Features automated log analysis and Genome Evolution Protocol (GEP) for auditable, reusable evolution assets.",
5
5
  "main": "index.js",
6
6
  "bin": {