@evomap/evolver 1.69.19 → 1.69.21

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.
@@ -1,6 +1,9 @@
1
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T06:00:44.714Z","signals":["bounty_task","external_task","human","new","very","grow","how","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","human","new","very","grow","how","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, human, new, very, grow, how, 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-04-23T06:00:46.677Z","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-04-23T06:00:48.536Z","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"}}
4
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T06:01:00.086Z","signals":["bounty_task","external_task","mismatch","components","server","react","troubleshooting","dynamic routes","hydration","React Server Components","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","mismatch","components","server","react","troubleshooting","dynamic routes","hydration","React Server Components","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, mismatch, components, server, react, troubleshooting, dynamic routes, hydration, React Server Components, 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"}}
5
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T06:01:02.498Z","signals":["bounty_task","external_task","mismatch","components","server","react","troubleshooting","dynamic routes","hydration","React Server Components","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","mismatch","components","server","react","troubleshooting","dynamic routes","hydration","React Server Components","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, mismatch, components, server, react, troubleshooting, dynamic routes, hydration, React Server Components, 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"}}
6
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T06:01:04.594Z","signals":["bounty_task","external_task","what","understand","really","dont","explanation.","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","what","understand","really","dont","explanation.","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, what, understand, really, dont, explanation., 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
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:53:54.271Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, 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-04-24T03:53:56.218Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, 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-04-24T03:53:58.128Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, 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"}}
4
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:05.469Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, 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"}}
5
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:07.587Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","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: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, 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"}}
6
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:09.368Z","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"}}
7
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:28.498Z","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"}}
8
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:30.437Z","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"}}
9
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:32.245Z","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"}}
@@ -78,7 +78,8 @@
78
78
  "perf_bottleneck",
79
79
  "capability_gap",
80
80
  "stable_success_plateau",
81
- "external_opportunity"
81
+ "external_opportunity",
82
+ "bounty_task"
82
83
  ],
83
84
  "preconditions": [
84
85
  "at least one opportunity signal is present",
@@ -105,6 +106,43 @@
105
106
  "node scripts/validate-suite.js"
106
107
  ]
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
+ },
108
146
  {
109
147
  "type": "Gene",
110
148
  "id": "gene_distilled_s2g-env-vars",
package/index.js CHANGED
@@ -143,6 +143,24 @@ async function main() {
143
143
  }
144
144
 
145
145
  console.log('Starting evolver...');
146
+
147
+ // Preflight: fail fast if git is not on PATH. On Windows in particular
148
+ // a missing git binary can cause evolver to hang silently (see #394),
149
+ // because several cycle-critical steps shell out to git early (repo
150
+ // resolution, diff, blast-radius). Catching this up front makes the
151
+ // failure mode obvious.
152
+ try {
153
+ const { execSync } = require('child_process');
154
+ execSync('git --version', { stdio: 'ignore', timeout: 5000 });
155
+ } catch (_gitErr) {
156
+ console.error('');
157
+ console.error('[Preflight] Could not run "git --version". Evolver requires git to be installed and available on PATH.');
158
+ console.error('[Preflight] On Windows: install Git from https://git-scm.com/download/win and make sure `git --version` works in a fresh terminal.');
159
+ console.error('[Preflight] On macOS: xcode-select --install (or `brew install git`)');
160
+ console.error('[Preflight] On Linux: sudo apt-get install -y git (or your distro equivalent)');
161
+ console.error('');
162
+ process.exit(1);
163
+ }
146
164
 
147
165
  if (isLoop) {
148
166
  // Internal daemon loop (no wrapper required).
@@ -698,7 +716,13 @@ async function main() {
698
716
  console.log('\n[Review] Rejected. Rolling back changes...');
699
717
  try {
700
718
  execSync('git checkout -- .', { cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER });
701
- execSync('git clean -fd', { cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER });
719
+ // Preserve user state on reject: .env files, node_modules, runtime
720
+ // PID files, and a dedicated workspace/ dir (if one exists) MUST NOT
721
+ // be wiped by an automated rollback. Users have reported losing
722
+ // secrets and runtime caches to an aggressive git clean.
723
+ execSync('git clean -fd -e node_modules -e workspace -e .env -e ".env.*" -e "*.pid"', {
724
+ cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER,
725
+ });
702
726
  const evolDir = getEvolutionDir();
703
727
  const sp = path.join(evolDir, 'evolution_solidify_state.json');
704
728
  if (fs.existsSync(sp)) {
@@ -848,10 +872,30 @@ async function main() {
848
872
  fs.writeFileSync(path.join(outDir, 'SKILL.md'), data.content, 'utf8');
849
873
  }
850
874
 
875
+ const ALLOWED_SKILL_EXTENSIONS = new Set([
876
+ '.js', '.mjs', '.cjs', '.ts',
877
+ '.json', '.md', '.txt',
878
+ '.sh', '.py',
879
+ '.yml', '.yaml',
880
+ ]);
881
+ const MAX_SKILL_FILE_BYTES = 512 * 1024;
882
+
851
883
  const bundled = Array.isArray(data.bundled_files) ? data.bundled_files : [];
884
+ const skippedFiles = [];
852
885
  for (const file of bundled) {
853
886
  if (!file || !file.name || typeof file.content !== 'string') continue;
854
887
  const safeName = path.basename(file.name);
888
+ const ext = path.extname(safeName).toLowerCase();
889
+ if (!ALLOWED_SKILL_EXTENSIONS.has(ext)) {
890
+ console.warn('[fetch] Skipped skill file with disallowed extension: ' + safeName);
891
+ skippedFiles.push(safeName);
892
+ continue;
893
+ }
894
+ if (Buffer.byteLength(file.content, 'utf8') > MAX_SKILL_FILE_BYTES) {
895
+ console.warn('[fetch] Skipped skill file exceeding ' + MAX_SKILL_FILE_BYTES + ' bytes: ' + safeName);
896
+ skippedFiles.push(safeName);
897
+ continue;
898
+ }
855
899
  fs.writeFileSync(path.join(outDir, safeName), file.content, 'utf8');
856
900
  }
857
901
 
@@ -860,9 +904,9 @@ async function main() {
860
904
  console.log(' Version: ' + (data.version || '?'));
861
905
  console.log(' Files: SKILL.md' + (bundled.length > 0 ? ', ' + bundled.map(f => f.name).join(', ') : ''));
862
906
  if (data.already_purchased) {
863
- console.log(' Cost: free (already purchased)');
907
+ console.log(' Fetch cost: free (already purchased)');
864
908
  } else {
865
- console.log(' Cost: ' + (data.credit_cost || 0) + ' credits');
909
+ console.log(' Fetch cost: ' + (data.credit_cost || 0) + ' credits');
866
910
  }
867
911
  } catch (error) {
868
912
  if (error && error.name === 'TimeoutError') {
@@ -955,7 +999,7 @@ async function main() {
955
999
  } else if (command === 'buy' || command === 'orders' || command === 'verify') {
956
1000
  try {
957
1001
  const atpCli = require('./src/atp/cli');
958
- const subArgs = args.slice(); // args already exclude the command token
1002
+ const subArgs = args.slice(1); // drop the command token (e.g. "buy") itself
959
1003
  let parsed;
960
1004
  let runner;
961
1005
  if (command === 'buy') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evomap/evolver",
3
- "version": "1.69.19",
3
+ "version": "1.69.21",
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": {