@evomap/evolver 1.88.3 → 1.88.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.
Files changed (56) hide show
  1. package/CONTRIBUTING.md +8 -0
  2. package/README.md +10 -0
  3. package/package.json +3 -2
  4. package/src/evolve/guards.js +1 -1
  5. package/src/evolve/pipeline/collect.js +1 -1
  6. package/src/evolve/pipeline/dispatch.js +1 -1
  7. package/src/evolve/pipeline/enrich.js +1 -1
  8. package/src/evolve/pipeline/hub.js +1 -1
  9. package/src/evolve/pipeline/select.js +1 -1
  10. package/src/evolve/pipeline/signals.js +1 -1
  11. package/src/evolve/utils.js +1 -1
  12. package/src/evolve.js +1 -1
  13. package/src/gep/a2aProtocol.js +1 -1
  14. package/src/gep/assetCallLog.js +30 -2
  15. package/src/gep/autoDistillConv.js +1 -1
  16. package/src/gep/autoDistillLlm.js +1 -1
  17. package/src/gep/candidateEval.js +1 -1
  18. package/src/gep/candidates.js +1 -1
  19. package/src/gep/contentHash.js +1 -1
  20. package/src/gep/conversationSniffer.js +1 -1
  21. package/src/gep/crypto.js +1 -1
  22. package/src/gep/curriculum.js +1 -1
  23. package/src/gep/deviceId.js +1 -1
  24. package/src/gep/envFingerprint.js +1 -1
  25. package/src/gep/epigenetics.js +1 -1
  26. package/src/gep/execBridge.js +1 -1
  27. package/src/gep/explore.js +1 -1
  28. package/src/gep/hash.js +1 -1
  29. package/src/gep/hubFetch.js +1 -1
  30. package/src/gep/hubReview.js +1 -1
  31. package/src/gep/hubSearch.js +1 -1
  32. package/src/gep/hubVerify.js +1 -1
  33. package/src/gep/learningSignals.js +1 -1
  34. package/src/gep/memoryGraph.js +1 -1
  35. package/src/gep/memoryGraphAdapter.js +1 -1
  36. package/src/gep/mutation.js +1 -1
  37. package/src/gep/narrativeMemory.js +1 -1
  38. package/src/gep/openPRRegistry.js +1 -1
  39. package/src/gep/personality.js +1 -1
  40. package/src/gep/policyCheck.js +1 -1
  41. package/src/gep/prompt.js +1 -1
  42. package/src/gep/recallInject.js +1 -1
  43. package/src/gep/recallVerifier.js +1 -1
  44. package/src/gep/reflection.js +1 -1
  45. package/src/gep/schemas/capsule.js +26 -0
  46. package/src/gep/selector.js +1 -1
  47. package/src/gep/skillDistiller.js +1 -1
  48. package/src/gep/solidify.js +1 -1
  49. package/src/gep/strategy.js +1 -1
  50. package/src/gep/tokenSavings.js +1 -0
  51. package/src/gep/workspaceKeychain.js +1 -1
  52. package/src/proxy/extensions/traceControl.js +1 -1
  53. package/src/proxy/index.js +36 -6
  54. package/src/proxy/inject.js +1 -1
  55. package/src/proxy/trace/extractor.js +1 -1
  56. package/src/proxy/trace/usage.js +1 -0
package/CONTRIBUTING.md CHANGED
@@ -9,3 +9,11 @@ Thank you for contributing. Please follow these rules:
9
9
 
10
10
  Submit PRs with clear intent and scope.
11
11
 
12
+ ### Engineering conventions
13
+
14
+ - **Spawn child CLIs as `node <entry.js>` — never via a `.cmd` shim, npm symlink, or bare command name.** When launching a harness/tool subprocess (claude-code, openclaw, codex, ...), resolve the JS entry behind the launcher and hand it to `node` directly. Two reasons:
15
+ 1. On Windows, `child_process.spawn` without `shell:true` on a `.cmd`/`.bat` throws `EINVAL` since the CVE-2024-27980 fix (Node >=18.20.2 / 20.12.2 / 21.7.3) — this silently broke the auto-exec bridge on Windows.
16
+ 2. Across platforms, shims/wrappers can emit warnings or silently exit on some machines. `node <entry>` is zero-shell, deterministic, and passes args via argv (no shell-injection surface).
17
+
18
+ `runChild` in `src/gep/execBridge.js` implements this for Windows npm shims (`_resolveNpmCmdShim`: parse the shim's `"%dp0%\<entry>" %*` exec line and rewrite `(bin, args)` -> `(process.execPath, [<entry>, ...args])`), falling back to the original target when it is not a recognized npm shim. POSIX binaries / wrappers spawn natively and are left unchanged. A unit test (`test/execBridgeSpawnNpmShim.test.js`) enforces the parser.
19
+
package/README.md CHANGED
@@ -582,3 +582,13 @@ Clone it into any directory you like. If you use [OpenClaw](https://openclaw.com
582
582
  [MIT](https://opensource.org/licenses/MIT)
583
583
 
584
584
  > Core evolution engine modules are distributed in obfuscated form to protect intellectual property. Source: [EvoMap/evolver](https://github.com/EvoMap/evolver).
585
+
586
+ ## Download History
587
+
588
+ Evolver ships through three channels — the [npm package](https://www.npmjs.com/package/@evomap/evolver), prebuilt binaries on [GitHub Releases](https://github.com/EvoMap/evolver/releases), and the [ClawHub](https://skill-history.com/autogame-17/evolver) skill registry:
589
+
590
+ [![npm](https://img.shields.io/npm/dm/@evomap/evolver?logo=npm&label=npm)](https://www.npmjs.com/package/@evomap/evolver)
591
+ [![npm total](https://img.shields.io/npm/d18m/@evomap/evolver?logo=npm&label=npm%20total)](https://npm-stat.com/charts.html?package=@evomap/evolver)
592
+ [![GitHub releases](https://img.shields.io/github/downloads/EvoMap/evolver/total?logo=github&label=GitHub%20releases)](https://github.com/EvoMap/evolver/releases)
593
+
594
+ [![ClawHub download history](https://skill-history.com/chart/autogame-17/evolver.svg)](https://skill-history.com/autogame-17/evolver)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evomap/evolver",
3
- "version": "1.88.3",
3
+ "version": "1.88.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": {
@@ -30,7 +30,8 @@
30
30
  "review": "node index.js review",
31
31
  "a2a:export": "node scripts/a2a_export.js",
32
32
  "a2a:ingest": "node scripts/a2a_ingest.js",
33
- "a2a:promote": "node scripts/a2a_promote.js"
33
+ "a2a:promote": "node scripts/a2a_promote.js",
34
+ "test": "node -e \"const fs=require('fs'),cp=require('child_process');const all=fs.readdirSync('test').filter(f=>f.endsWith('.test.js'));const iso=new Set(['solidifyIntegration.test.js']);const others=all.filter(f=>!iso.has(f)).map(f=>'test/'+f);const isoFiles=all.filter(f=>iso.has(f)).map(f=>'test/'+f);if(others.length)cp.execSync('node --test '+others.join(' '),{stdio:'inherit'});if(isoFiles.length)cp.execSync('node --test '+isoFiles.join(' '),{stdio:'inherit'})\""
34
35
  },
35
36
  "engines": {
36
37
  "node": ">=22.12"