@evomap/evolver 1.89.4 → 1.89.5

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 (105) hide show
  1. package/CONTRIBUTING.md +19 -0
  2. package/README.md +536 -86
  3. package/assets/cover.png +0 -0
  4. package/index.js +87 -7
  5. package/package.json +17 -6
  6. package/scripts/a2a_export.js +63 -0
  7. package/scripts/a2a_ingest.js +79 -0
  8. package/scripts/a2a_promote.js +118 -0
  9. package/scripts/analyze_by_skill.js +121 -0
  10. package/scripts/build_binaries.js +479 -0
  11. package/scripts/check-changelog.js +166 -0
  12. package/scripts/extract_log.js +85 -0
  13. package/scripts/generate_history.js +75 -0
  14. package/scripts/gep_append_event.js +96 -0
  15. package/scripts/gep_personality_report.js +234 -0
  16. package/scripts/human_report.js +147 -0
  17. package/scripts/recall-verify-report.js +234 -0
  18. package/scripts/recover_loop.js +61 -0
  19. package/scripts/refresh_stars_badge.js +168 -0
  20. package/scripts/seed-merchants.js +91 -0
  21. package/scripts/suggest_version.js +89 -0
  22. package/scripts/validate-modules.js +38 -0
  23. package/scripts/validate-suite.js +78 -0
  24. package/skills/index.json +14 -0
  25. package/src/adapters/scripts/_runtimePaths.js +1 -0
  26. package/src/adapters/scripts/evolver-session-end.js +1 -0
  27. package/src/adapters/scripts/evolver-session-start.js +1 -0
  28. package/src/evolve/guards.js +1 -721
  29. package/src/evolve/pipeline/collect.js +1 -1283
  30. package/src/evolve/pipeline/dispatch.js +1 -421
  31. package/src/evolve/pipeline/enrich.js +1 -440
  32. package/src/evolve/pipeline/hub.js +1 -319
  33. package/src/evolve/pipeline/select.js +1 -274
  34. package/src/evolve/pipeline/signals.js +1 -206
  35. package/src/evolve/utils.js +1 -264
  36. package/src/evolve.js +1 -350
  37. package/src/gep/a2aProtocol.js +1 -4455
  38. package/src/gep/antiAbuseTelemetry.js +1 -233
  39. package/src/gep/autoDistillConv.js +1 -205
  40. package/src/gep/autoDistillLlm.js +1 -315
  41. package/src/gep/candidateEval.js +1 -92
  42. package/src/gep/candidates.js +1 -198
  43. package/src/gep/contentHash.js +1 -30
  44. package/src/gep/conversationSniffer.js +1 -266
  45. package/src/gep/crypto.js +1 -89
  46. package/src/gep/curriculum.js +1 -163
  47. package/src/gep/deviceId.js +1 -218
  48. package/src/gep/envFingerprint.js +1 -118
  49. package/src/gep/epigenetics.js +1 -31
  50. package/src/gep/execBridge.js +1 -711
  51. package/src/gep/explore.js +1 -289
  52. package/src/gep/hash.js +1 -15
  53. package/src/gep/hubFetch.js +1 -359
  54. package/src/gep/hubReview.js +1 -207
  55. package/src/gep/hubSearch.js +1 -526
  56. package/src/gep/hubVerify.js +1 -306
  57. package/src/gep/idleScheduler.js +6 -1
  58. package/src/gep/learningSignals.js +1 -89
  59. package/src/gep/memoryGraph.js +1 -1374
  60. package/src/gep/memoryGraphAdapter.js +1 -203
  61. package/src/gep/mutation.js +1 -203
  62. package/src/gep/narrativeMemory.js +1 -108
  63. package/src/gep/openPRRegistry.js +1 -205
  64. package/src/gep/personality.js +1 -423
  65. package/src/gep/policyCheck.js +1 -599
  66. package/src/gep/prompt.js +1 -836
  67. package/src/gep/recallInject.js +1 -409
  68. package/src/gep/recallVerifier.js +1 -318
  69. package/src/gep/reflection.js +1 -177
  70. package/src/gep/selector.js +1 -602
  71. package/src/gep/skillDistiller.js +1 -1294
  72. package/src/gep/solidify.js +1 -1699
  73. package/src/gep/strategy.js +1 -136
  74. package/src/gep/tokenSavings.js +1 -88
  75. package/src/gep/workspaceKeychain.js +1 -174
  76. package/src/ops/lifecycle.js +17 -4
  77. package/src/proxy/extensions/traceControl.js +1 -99
  78. package/src/proxy/index.js +206 -1
  79. package/src/proxy/inject.js +1 -52
  80. package/src/proxy/lifecycle/manager.js +12 -0
  81. package/src/proxy/mailbox/store.js +29 -6
  82. package/src/proxy/router/responses_route.js +157 -0
  83. package/src/proxy/server/http.js +13 -4
  84. package/src/proxy/server/routes.js +11 -1
  85. package/src/proxy/sync/engine.js +7 -1
  86. package/src/proxy/sync/outbound.js +32 -4
  87. package/src/proxy/trace/extractor.js +1 -646
  88. package/src/proxy/trace/usage.js +1 -105
  89. package/.cursor/BUGBOT.md +0 -182
  90. package/.env.example +0 -68
  91. package/.git-commit-guard-token +0 -1
  92. package/.github/CODEOWNERS +0 -63
  93. package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -23
  94. package/.github/pull_request_template.md +0 -45
  95. package/.github/workflows/test.yml +0 -75
  96. package/CHANGELOG.md +0 -1237
  97. package/README.public.md +0 -569
  98. package/SECURITY.md +0 -108
  99. package/assets/gep/events.jsonl +0 -3
  100. package/examples/atp-consumer-quickstart.md +0 -100
  101. package/examples/hello-world.md +0 -38
  102. package/proxy-package.json +0 -39
  103. package/public.manifest.json +0 -143
  104. /package/assets/gep/{genes.json → genes.seed.json} +0 -0
  105. /package/{bundled-skills → skills}/_meta/SKILL.md +0 -0
@@ -0,0 +1,78 @@
1
+ // Usage: node scripts/validate-suite.js [test-glob-pattern | test-file]
2
+ // Runs the evolver test suite -- repo root is derived from script location, no shell glob needed.
3
+ // Accepts either a directory glob pattern (e.g. `test/*.test.js`) or a concrete test file path.
4
+ // See community PR #514.
5
+ const { execFileSync } = require('child_process');
6
+ const path = require('path');
7
+ const fs = require('fs');
8
+
9
+ const EVOLVER_REPO_ROOT = path.join(__dirname, '..');
10
+ const pattern = process.argv[2] || 'test/*.test.js';
11
+
12
+ function expandTestGlob(repoRoot, pat) {
13
+ const fullPattern = path.isAbsolute(pat) ? pat : path.join(repoRoot, pat);
14
+ if (fs.existsSync(fullPattern) && fs.statSync(fullPattern).isFile()) {
15
+ return fullPattern.endsWith('.test.js') ? [fullPattern] : [];
16
+ }
17
+
18
+ const dir = path.dirname(pat);
19
+ const basenamePattern = path.basename(pat);
20
+ const fullDir = path.isAbsolute(dir) ? dir : path.join(repoRoot, dir);
21
+ if (!fs.existsSync(fullDir) || !fs.statSync(fullDir).isDirectory()) return [];
22
+
23
+ const escaped = basenamePattern
24
+ .replace(/[.+?^${}()|[\]\\]/g, '\\$&')
25
+ .replace(/\*/g, '.*');
26
+ const matcher = new RegExp('^' + escaped + '$');
27
+ return fs.readdirSync(fullDir)
28
+ .filter(f => f.endsWith('.test.js') && matcher.test(f))
29
+ .map(f => path.join(fullDir, f))
30
+ .sort();
31
+ }
32
+
33
+ const files = expandTestGlob(EVOLVER_REPO_ROOT, pattern);
34
+ if (files.length === 0) {
35
+ console.error('FAIL: no tests found matching pattern: ' + pattern);
36
+ process.exit(1);
37
+ }
38
+
39
+ const env = Object.assign({}, process.env, {
40
+ NODE_ENV: 'test',
41
+ EVOLVER_REPO_ROOT,
42
+ GEP_ASSETS_DIR: path.join(EVOLVER_REPO_ROOT, 'assets', 'gep'),
43
+ });
44
+ delete env.EVOLVE_BRIDGE;
45
+ delete env.OPENCLAW_WORKSPACE;
46
+ // Clear NODE_TEST_CONTEXT so nested runs from within node --test work.
47
+ delete env.NODE_TEST_CONTEXT;
48
+
49
+ try {
50
+ const output = execFileSync(process.execPath, ['--test', ...files], {
51
+ cwd: EVOLVER_REPO_ROOT,
52
+ stdio: ['pipe', 'pipe', 'pipe'],
53
+ timeout: 180000,
54
+ env,
55
+ });
56
+ const out = output.toString('utf8');
57
+ const passMatch = out.match(/pass (\d+)/);
58
+ const failMatch = out.match(/fail (\d+)/);
59
+ const passCount = passMatch ? Number(passMatch[1]) : 0;
60
+ const failCount = failMatch ? Number(failMatch[1]) : 0;
61
+
62
+ if (failCount > 0) {
63
+ console.error('FAIL: ' + failCount + ' test(s) failed');
64
+ process.exit(1);
65
+ }
66
+ if (passCount === 0) {
67
+ console.error('FAIL: no tests found');
68
+ process.exit(1);
69
+ }
70
+ console.log('ok: ' + passCount + ' test(s) passed, 0 failed');
71
+ } catch (e) {
72
+ const stderr = e.stderr ? e.stderr.toString('utf8').slice(-500) : '';
73
+ const stdout = e.stdout ? e.stdout.toString('utf8').slice(-500) : '';
74
+ console.error('FAIL: test suite exited with code ' + (e.status || 'unknown'));
75
+ if (stderr) console.error(stderr);
76
+ if (stdout) console.error(stdout);
77
+ process.exit(1);
78
+ }
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "name": "_meta",
4
+ "dir": "_meta",
5
+ "version": "0.1.0",
6
+ "description": "Bootstrap skill that teaches the agent how to discover and load other skills on demand via gep_list_skill / gep_load_skill.",
7
+ "tags": [
8
+ "meta",
9
+ "bootstrap",
10
+ "evolver"
11
+ ],
12
+ "sizeBytes": 1691
13
+ }
14
+ ]
@@ -415,6 +415,7 @@ function isGitWorkspace(dir) {
415
415
  timeout: 5000,
416
416
  stdio: ['ignore', 'pipe', 'pipe'],
417
417
  shell: false,
418
+ windowsHide: true,
418
419
  });
419
420
  return res.status === 0 && typeof res.stdout === 'string' && res.stdout.trim() === 'true';
420
421
  } catch {
@@ -38,6 +38,7 @@ function runGit(args, cwd) {
38
38
  maxBuffer: MAX_EXEC_BUFFER,
39
39
  stdio: ['ignore', 'pipe', 'pipe'],
40
40
  shell: false,
41
+ windowsHide: true,
41
42
  });
42
43
  if (res.status === 0 && typeof res.stdout === 'string') {
43
44
  return { ok: true, out: res.stdout.trim() };
@@ -83,6 +83,7 @@ function _maybeRestartDaemon(evolverRoot) {
83
83
  stdio: 'ignore',
84
84
  cwd: evolverRoot,
85
85
  env: Object.assign({}, process.env),
86
+ windowsHide: true,
86
87
  }
87
88
  );
88
89
  child.unref();