everything-gemini 2.5.0 → 2.7.0

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 (29) hide show
  1. package/BENCHMARK.md +30 -30
  2. package/CHANGELOG.md +21 -0
  3. package/README.md +36 -2
  4. package/agents/cross-repo-orchestrator.md +33 -0
  5. package/agents/darwin-prompt-engineer.md +35 -0
  6. package/bin/everything-gemini +234 -9
  7. package/docs/LAUNCH_KIT_PHP2SHELL.md +240 -0
  8. package/docs/LAUNCH_KIT_v2.6.0.md +174 -0
  9. package/docs/index.html +27 -13
  10. package/examples/python-sdk/cross_repo_swarm_and_compaction.py +175 -0
  11. package/hooks/context-compactor/hooks.json +16 -0
  12. package/hooks/context-compactor/scripts/compact-context.sh +40 -0
  13. package/package.json +1 -1
  14. package/skills/adversarial-fuzz-generator/SKILL.md +95 -0
  15. package/skills/context-distillation-compressor/SKILL.md +109 -0
  16. package/skills/cross-repo-swarm-sync/SKILL.md +122 -0
  17. package/skills/cve-remediation-orchestrator/SKILL.md +111 -0
  18. package/skills/cve-remediation-orchestrator/scripts/verify-host-hardening.sh +72 -0
  19. package/skills/ebpf-microvm-sandbox/SKILL.md +113 -0
  20. package/skills/gemini-live-screen-vision/SKILL.md +109 -0
  21. package/skills/genetic-prompt-cross-pollinator/SKILL.md +110 -0
  22. package/skills/instinct-distillation-compiler/SKILL.md +103 -0
  23. package/skills/php2shell-version-auditor/SKILL.md +95 -0
  24. package/skills/phpcheck-server/SKILL.md +102 -0
  25. package/skills/phpcheck-server/scripts/audit-server.sh +112 -0
  26. package/skills/phpcheck-url/SKILL.md +72 -0
  27. package/skills/phpcheck-url/scripts/phpcheck.js +160 -0
  28. package/skills/speculative-decoding-orchestrator/SKILL.md +108 -0
  29. package/tests/cli.test.js +99 -16
package/tests/cli.test.js CHANGED
@@ -90,10 +90,10 @@ it('should benchmark ecosystem components and output valid JSON with --json', ()
90
90
  const res = runCli('benchmark --json');
91
91
  assert.strictEqual(res.status, 0);
92
92
  const data = JSON.parse(res.stdout);
93
- assert.strictEqual(data.totalComponents, 106);
94
- assert.strictEqual(data.progressiveSkillsCount, 80);
95
- assert.strictEqual(data.scopedAgentsCount, 15);
96
- assert.strictEqual(data.lifecycleHooksCount, 11);
93
+ assert.strictEqual(data.totalComponents, 121);
94
+ assert.strictEqual(data.progressiveSkillsCount, 92);
95
+ assert.strictEqual(data.scopedAgentsCount, 17);
96
+ assert.strictEqual(data.lifecycleHooksCount, 12);
97
97
  assert(data.totalRunbookTokens > 15000, 'Expected >15,000 runbook tokens');
98
98
  assert(data.estimatedTokensSavedPerTurn > 8000, 'Expected significant token savings');
99
99
  });
@@ -316,7 +316,7 @@ try {
316
316
  const dryRes = runCli(`bundle --output "${bundleTarget}" --dry-run`);
317
317
  assert.strictEqual(dryRes.status, 0);
318
318
  assert.match(dryRes.stdout, /DRY RUN MODE ACTIVATED/);
319
- assert.match(dryRes.stdout, /Skills to bundle: 80/);
319
+ assert.match(dryRes.stdout, /Skills to bundle: 92/);
320
320
  assert.strictEqual(fs.existsSync(bundleTarget), false, 'Dry run should not create destination directory');
321
321
 
322
322
  // JSON Dry-run mode
@@ -324,7 +324,7 @@ try {
324
324
  assert.strictEqual(jsonRes.status, 0);
325
325
  const dryData = JSON.parse(jsonRes.stdout);
326
326
  assert.strictEqual(dryData.dryRun, true);
327
- assert.strictEqual(dryData.manifest.components.totalCount, 106);
327
+ assert.strictEqual(dryData.manifest.components.totalCount, 121);
328
328
 
329
329
  // Live mode
330
330
  const liveRes = runCli(`bundle --output "${bundleTarget}"`);
@@ -477,9 +477,9 @@ try {
477
477
  assert.strictEqual(jsonRes.status, 0);
478
478
  const dryData = JSON.parse(jsonRes.stdout);
479
479
  assert.strictEqual(dryData.dryRun, true);
480
- assert.strictEqual(dryData.manifest.metrics.total_skills, 80);
481
- assert.strictEqual(dryData.manifest.metrics.total_subagents, 15);
482
- assert.strictEqual(dryData.manifest.metrics.total_hooks, 11);
480
+ assert.strictEqual(dryData.manifest.metrics.total_skills, 92);
481
+ assert.strictEqual(dryData.manifest.metrics.total_subagents, 17);
482
+ assert.strictEqual(dryData.manifest.metrics.total_hooks, 12);
483
483
 
484
484
  // Live mode
485
485
  const liveRes = runCli(`harness2 "${h2Target}"`);
@@ -524,14 +524,14 @@ try {
524
524
  });
525
525
 
526
526
  // Benchmark Components Verification
527
- it('should report 106 components, 80 skills, 15 subagents, and 11 hooks in benchmark --json', () => {
527
+ it('should report 121 components, 92 skills, 17 subagents, and 12 hooks in benchmark --json', () => {
528
528
  const res = runCli('benchmark --json');
529
529
  assert.strictEqual(res.status, 0);
530
530
  const data = JSON.parse(res.stdout);
531
- assert.strictEqual(data.totalComponents, 106, 'Total components should be 106');
532
- assert.strictEqual(data.progressiveSkillsCount, 80, 'Progressive skills should be 80');
533
- assert.strictEqual(data.scopedAgentsCount, 15, 'Scoped agents should be 15');
534
- assert.strictEqual(data.lifecycleHooksCount, 11, 'Lifecycle hooks should be 11');
531
+ assert.strictEqual(data.totalComponents, 121, 'Total components should be 121');
532
+ assert.strictEqual(data.progressiveSkillsCount, 92, 'Progressive skills should be 92');
533
+ assert.strictEqual(data.scopedAgentsCount, 17, 'Scoped agents should be 17');
534
+ assert.strictEqual(data.lifecycleHooksCount, 12, 'Lifecycle hooks should be 12');
535
535
  });
536
536
 
537
537
  // Harness² Run & Ingest-Trace tests
@@ -644,8 +644,8 @@ try {
644
644
  const jsonRes = runCli('ui --json');
645
645
  assert.strictEqual(jsonRes.status, 0);
646
646
  const data = JSON.parse(jsonRes.stdout);
647
- assert.strictEqual(data.metrics.totalComponents, 106);
648
- assert.strictEqual(data.metrics.progressiveSkills, 80);
647
+ assert.strictEqual(data.metrics.totalComponents, 121);
648
+ assert.strictEqual(data.metrics.progressiveSkills, 92);
649
649
  assert.ok(data.endpoints.dashboard);
650
650
  });
651
651
 
@@ -758,6 +758,89 @@ try {
758
758
  assert.match(hookRes.stdout, /drift-detector/);
759
759
  });
760
760
 
761
+ // v2.6.0 Cross-Repo Command
762
+ it('should support cross-repo command in dry-run and json modes', () => {
763
+ const dryRes = runCli('cross-repo sync --dry-run');
764
+ assert.strictEqual(dryRes.status, 0);
765
+ assert.match(dryRes.stdout, /Cross-Repository Swarm Synchronization/);
766
+ assert.match(dryRes.stdout, /Dry run complete/);
767
+
768
+ const jsonRes = runCli('cross-repo --json');
769
+ assert.strictEqual(jsonRes.status, 0);
770
+ const data = JSON.parse(jsonRes.stdout);
771
+ assert.strictEqual(data.twoPhaseCommitState, 'PREPARED');
772
+ assert.ok(data.repositories.length >= 3);
773
+ assert.ok(data.eventMesh.topic);
774
+ });
775
+
776
+ // v2.6.0 Compact Command
777
+ it('should support compact command in dry-run and json modes', () => {
778
+ const dryRes = runCli('compact analyze --dry-run');
779
+ assert.strictEqual(dryRes.status, 0);
780
+ assert.match(dryRes.stdout, /Context Distillation & Semantic Compaction/);
781
+ assert.match(dryRes.stdout, /Dry run complete/);
782
+
783
+ const jsonRes = runCli('compact --ast --json');
784
+ assert.strictEqual(jsonRes.status, 0);
785
+ const data = JSON.parse(jsonRes.stdout);
786
+ assert.strictEqual(data.astSkeletalization, true);
787
+ assert.ok(data.metrics.originalTokens > 0);
788
+ assert.ok(data.compactionStrategies.length >= 3);
789
+ });
790
+
791
+ // v2.6.0 Skills Info Verification
792
+ it('should display info for v2.6.0 skills (cross-repo-swarm-sync, ebpf-microvm-sandbox, context-distillation-compressor, speculative-decoding-orchestrator)', () => {
793
+ for (const skill of ['cross-repo-swarm-sync', 'ebpf-microvm-sandbox', 'context-distillation-compressor', 'speculative-decoding-orchestrator']) {
794
+ const res = runCli(`info ${skill}`);
795
+ assert.strictEqual(res.status, 0);
796
+ assert.match(res.stdout, new RegExp(skill));
797
+ }
798
+ });
799
+
800
+ // v2.6.0 Subagent & Hook Info Verification
801
+ it('should display info for cross-repo-orchestrator subagent and context-compactor hook', () => {
802
+ const agentRes = runCli('info cross-repo-orchestrator');
803
+ assert.strictEqual(agentRes.status, 0);
804
+ assert.match(agentRes.stdout, /cross-repo-orchestrator/);
805
+
806
+ const hookRes = runCli('info context-compactor');
807
+ assert.strictEqual(hookRes.status, 0);
808
+ assert.match(hookRes.stdout, /context-compactor/);
809
+ });
810
+
811
+ // PHP2Shell Version Checker & Skill Suite
812
+ it('should audit remote URLs or local server with phpcheck subcommand', () => {
813
+ const helpRes = runCli('phpcheck --help');
814
+ assert.strictEqual(helpRes.status, 0);
815
+ assert.match(helpRes.stdout, /PHP2Shell Patch Checker/);
816
+ assert.match(helpRes.stdout, /CVE-2026-109618/);
817
+
818
+ const serverRes = runCli('phpcheck --server --json');
819
+ assert.ok(serverRes.status === 0 || serverRes.status === 3);
820
+ const serverData = JSON.parse(serverRes.stdout);
821
+ assert.ok(Array.isArray(serverData.cves));
822
+ assert.ok(serverData.patch_status);
823
+
824
+ for (const skill of ['phpcheck-url', 'phpcheck-server', 'php2shell-version-auditor', 'cve-remediation-orchestrator']) {
825
+ const infoRes = runCli(`info ${skill}`);
826
+ assert.strictEqual(infoRes.status, 0);
827
+ assert.match(infoRes.stdout, new RegExp(skill));
828
+ }
829
+
830
+ const { versionStatus } = require(path.join(REPO_ROOT, 'skills', 'phpcheck-url', 'scripts', 'phpcheck.js'));
831
+ assert.strictEqual(versionStatus('8.2.34'), 'potentially_vulnerable');
832
+ assert.strictEqual(versionStatus('8.2.35'), 'ok');
833
+ assert.strictEqual(versionStatus('8.3.35'), 'potentially_vulnerable');
834
+ assert.strictEqual(versionStatus('8.3.36'), 'ok');
835
+ assert.strictEqual(versionStatus('8.4.26'), 'potentially_vulnerable');
836
+ assert.strictEqual(versionStatus('8.4.27'), 'ok');
837
+ assert.strictEqual(versionStatus('8.5.11'), 'potentially_vulnerable');
838
+ assert.strictEqual(versionStatus('8.5.12'), 'ok');
839
+ assert.strictEqual(versionStatus('8.1.35'), 'potentially_vulnerable');
840
+ assert.strictEqual(versionStatus('7.4.33'), 'potentially_vulnerable');
841
+ assert.strictEqual(versionStatus('8.3.0-dev'), 'unknown');
842
+ });
843
+
761
844
  } finally {
762
845
  try {
763
846
  fs.rmSync(tempWorkspace, { recursive: true, force: true });