Skip to content

Commit 14c75d8

Browse files
committed
Add Evolver Codex plugin
0 parents  commit 14c75d8

8 files changed

Lines changed: 343 additions & 0 deletions

File tree

.agents/plugins/marketplace.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "evomap-private",
3+
"interface": {
4+
"displayName": "EvoMap Private"
5+
},
6+
"plugins": [
7+
{
8+
"name": "evolver",
9+
"source": {
10+
"source": "local",
11+
"path": "./plugins/evolver"
12+
},
13+
"policy": {
14+
"installation": "AVAILABLE",
15+
"authentication": "ON_INSTALL"
16+
},
17+
"category": "Productivity"
18+
}
19+
]
20+
}

README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Evolver Codex Plugin
2+
3+
Private EvoMap marketplace repository for the Evolver Codex Desktop plugin.
4+
5+
## Install
6+
7+
Add this marketplace to Codex:
8+
9+
```bash
10+
codex plugin marketplace add EvoMap/evolver-codex-plugin
11+
```
12+
13+
Then install the plugin:
14+
15+
```bash
16+
codex plugin add evolver@evomap-private
17+
```
18+
19+
Start a new Codex thread after installation so the bundled skill is loaded.
20+
21+
## Plugin
22+
23+
The plugin lives at:
24+
25+
```text
26+
plugins/evolver
27+
```
28+
29+
It packages a Codex skill for using Evolver, EvoMap's GEP-powered self-evolution engine, from Codex Desktop.
30+
31+
Official Evolver sources:
32+
33+
- https://github.com/EvoMap/evolver
34+
- https://evomap.ai
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"name": "evolver",
3+
"version": "0.1.0",
4+
"description": "Official Codex Desktop plugin for the Evolver GEP-powered self-evolution engine.",
5+
"author": {
6+
"name": "EvoMap",
7+
"email": "team@evomap.ai",
8+
"url": "https://evomap.ai"
9+
},
10+
"homepage": "https://evomap.ai",
11+
"repository": "https://github.com/EvoMap/evolver",
12+
"license": "GPL-3.0-or-later",
13+
"keywords": [
14+
"evolver",
15+
"evomap",
16+
"gep",
17+
"agent-evolution",
18+
"self-evolution",
19+
"codex"
20+
],
21+
"skills": "./skills/",
22+
"interface": {
23+
"displayName": "Evolver",
24+
"shortDescription": "Run Evolver's GEP workflow from Codex.",
25+
"longDescription": "Evolver is EvoMap's GEP-powered self-evolution engine for AI agents. This Codex Desktop plugin teaches Codex how to install, verify, and use the official @evomap/evolver CLI in git workspaces, including review mode, strategy presets, Codex hook setup, local GEP assets, and optional EvoMap Hub configuration.",
26+
"developerName": "EvoMap",
27+
"category": "Productivity",
28+
"capabilities": [
29+
"Interactive",
30+
"Read",
31+
"Write"
32+
],
33+
"websiteURL": "https://evomap.ai",
34+
"defaultPrompt": [
35+
"Set up Evolver for this Codex workspace.",
36+
"Run Evolver review mode and explain the GEP output.",
37+
"Check whether Evolver is installed correctly."
38+
],
39+
"brandColor": "#2F855A",
40+
"composerIcon": "./assets/evolver-icon.png",
41+
"logo": "./assets/evolver-logo.png"
42+
}
43+
}

plugins/evolver/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Evolver Codex Desktop Plugin
2+
3+
This plugin exposes the official EvoMap Evolver workflow to Codex Desktop as a local plugin skill.
4+
5+
- Official repository: https://github.com/EvoMap/evolver
6+
- Package: `@evomap/evolver`
7+
- Homepage: https://evomap.ai
8+
9+
The plugin teaches Codex how to install and verify the Evolver CLI, run GEP prompt generation in git workspaces, set up Codex hooks, and reason about Genes, Capsules, EvolutionEvents, and optional EvoMap Hub proxy mode.
10+
11+
Run a local status check from any workspace:
12+
13+
```bash
14+
node ~/plugins/evolver/scripts/evolver-status.js
15+
```
39.9 KB
Loading
11.4 KB
Loading
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/usr/bin/env node
2+
"use strict";
3+
4+
const { execFileSync } = require("node:child_process");
5+
const fs = require("node:fs");
6+
const os = require("node:os");
7+
const path = require("node:path");
8+
9+
function run(cmd, args = []) {
10+
try {
11+
return {
12+
ok: true,
13+
value: execFileSync(cmd, args, {
14+
cwd: process.cwd(),
15+
encoding: "utf8",
16+
stdio: ["ignore", "pipe", "pipe"]
17+
}).trim()
18+
};
19+
} catch (error) {
20+
const stderr = error.stderr ? String(error.stderr).trim() : "";
21+
return { ok: false, value: stderr || error.message };
22+
}
23+
}
24+
25+
function printCheck(label, result) {
26+
const mark = result.ok ? "OK" : "MISSING";
27+
console.log(`${mark} ${label}: ${result.value || "(no output)"}`);
28+
}
29+
30+
const nodeVersion = { ok: true, value: process.version };
31+
const gitVersion = run("git", ["--version"]);
32+
const evolverPath = run("sh", ["-lc", "command -v evolver"]);
33+
const evolverHelp = evolverPath.ok ? run("evolver", ["--help"]) : { ok: false, value: "evolver CLI not found" };
34+
const gitRoot = run("git", ["rev-parse", "--show-toplevel"]);
35+
const proxySettings = path.join(os.homedir(), ".evolver", "settings.json");
36+
37+
console.log("Evolver Codex plugin status");
38+
console.log(`cwd: ${process.cwd()}`);
39+
printCheck("Node.js", nodeVersion);
40+
printCheck("Git", gitVersion);
41+
printCheck("Evolver CLI", evolverPath);
42+
printCheck("Git workspace", gitRoot);
43+
44+
if (evolverHelp.ok) {
45+
const firstLine = evolverHelp.value.split(/\r?\n/).find(Boolean) || "help output available";
46+
console.log(`OK Evolver help: ${firstLine}`);
47+
} else {
48+
console.log(`MISSING Evolver help: ${evolverHelp.value}`);
49+
}
50+
51+
console.log(`INFO EVOLVE_STRATEGY: ${process.env.EVOLVE_STRATEGY || "balanced (default)"}`);
52+
console.log(`INFO A2A_HUB_URL: ${process.env.A2A_HUB_URL || "(offline/default)"}`);
53+
console.log(`INFO A2A_NODE_ID: ${process.env.A2A_NODE_ID ? "(set)" : "(not set)"}`);
54+
console.log(`INFO Proxy settings: ${fs.existsSync(proxySettings) ? proxySettings : "(not found)"}`);
55+
56+
if (!evolverPath.ok) {
57+
console.log("NEXT install with: npm install -g @evomap/evolver");
58+
} else if (!gitRoot.ok) {
59+
console.log("NEXT run Evolver from inside a git-initialized workspace.");
60+
} else {
61+
console.log("NEXT try: evolver --review");
62+
}
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
---
2+
name: evolver
3+
description: Use Evolver, the official EvoMap GEP-powered self-evolution engine, from Codex Desktop. Trigger when the user asks about Evolver, EvoMap, GEP, Genes, Capsules, EvolutionEvents, agent self-evolution, installing @evomap/evolver, running evolver in a git workspace, or setting up Codex hooks for Evolver.
4+
---
5+
6+
# Evolver
7+
8+
Use this skill when a user wants Codex to install, verify, configure, or run the official Evolver open-source engine.
9+
10+
Official sources:
11+
12+
- Repository: https://github.com/EvoMap/evolver
13+
- Package: `@evomap/evolver`
14+
- Homepage: https://evomap.ai
15+
- Docs/wiki: https://evomap.ai/wiki
16+
17+
## Core Model
18+
19+
Evolver is a GEP-powered prompt and evolution-asset generator. It scans workspace memory and signals, selects Genes or Capsules, emits a protocol-bound GEP prompt, and records EvolutionEvents for audit.
20+
21+
Important boundary:
22+
23+
- Evolver itself is not a general code patcher.
24+
- In standalone mode it prints text output and GEP prompts.
25+
- Do not apply Evolver output as code changes unless the user explicitly asks Codex to do that.
26+
- Run Evolver inside a git-initialized workspace. Non-git directories should be initialized or rejected with a clear explanation.
27+
28+
## Before Running
29+
30+
Check prerequisites first:
31+
32+
```bash
33+
node --version
34+
git --version
35+
command -v evolver
36+
```
37+
38+
Requirements:
39+
40+
- Node.js 18 or newer.
41+
- Git.
42+
- A git workspace for project runs.
43+
- Network only when installing/updating the npm package or using EvoMap Hub features.
44+
45+
If the CLI is missing, install the official package:
46+
47+
```bash
48+
npm install -g @evomap/evolver
49+
```
50+
51+
Never suggest `sudo npm install -g`. If global npm permissions fail, configure a user-level npm prefix or use the source checkout workflow from the official repository.
52+
53+
## Standard Workflows
54+
55+
From inside a git workspace:
56+
57+
```bash
58+
evolver
59+
```
60+
61+
Human review mode:
62+
63+
```bash
64+
evolver --review
65+
```
66+
67+
Continuous loop:
68+
69+
```bash
70+
evolver --loop
71+
```
72+
73+
Strategy presets:
74+
75+
```bash
76+
EVOLVE_STRATEGY=balanced evolver
77+
EVOLVE_STRATEGY=innovate evolver --loop
78+
EVOLVE_STRATEGY=harden evolver --loop
79+
EVOLVE_STRATEGY=repair-only evolver --review
80+
```
81+
82+
Explain generated GEP output in terms of:
83+
84+
- Selected Gene or Capsule.
85+
- Input signals and memory evidence.
86+
- Proposed next action.
87+
- Validation or review gate.
88+
- EvolutionEvent/audit trail.
89+
90+
## Codex Desktop Integration
91+
92+
For Codex hook integration, run:
93+
94+
```bash
95+
evolver setup-hooks --platform=codex
96+
```
97+
98+
This may modify Codex hook files under the user's home directory. In Codex Desktop, request approval when the sandbox requires it. After hook setup, ask the user to start a new Codex thread so the updated hooks and plugin context are picked up cleanly.
99+
100+
## Optional EvoMap Hub
101+
102+
Evolver works offline by default. Hub connection enables network features such as node heartbeat, skill store, worker tasks, validation, asset publishing, and evolution circles.
103+
104+
Project-local `.env` example:
105+
106+
```bash
107+
A2A_HUB_URL=https://evomap.ai
108+
A2A_NODE_ID=your_node_id_here
109+
```
110+
111+
Keep secrets out of transcript output. Do not print tokens or full `.env` files.
112+
113+
## Proxy Mailbox
114+
115+
When proxy mode is enabled, Evolver uses a local proxy mailbox. Codex should treat the proxy as the allowed boundary and should not call EvoMap Hub APIs directly.
116+
117+
Discovery file:
118+
119+
```text
120+
~/.evolver/settings.json
121+
```
122+
123+
Default local base URL:
124+
125+
```text
126+
http://127.0.0.1:19820
127+
```
128+
129+
Useful local status endpoints:
130+
131+
```text
132+
GET /proxy/status
133+
GET /proxy/hub-status
134+
POST /mailbox/poll
135+
POST /mailbox/send
136+
```
137+
138+
## Local Assets
139+
140+
GEP assets normally live in:
141+
142+
```text
143+
assets/gep/genes.json
144+
assets/gep/capsules.json
145+
assets/gep/events.jsonl
146+
memory/
147+
```
148+
149+
Treat these as user-owned runtime state. Do not overwrite Genes, Capsules, or EvolutionEvents during setup or upgrades.
150+
151+
## Troubleshooting
152+
153+
If `evolver` prints no GEP prompt, confirm the current directory is a git repo.
154+
155+
If install fails with npm permissions, use a user-level npm prefix instead of `sudo`.
156+
157+
If loop mode appears to print text only, explain that standalone loop mode emits prompts and records audit state; automatic execution depends on a host runtime that interprets the output.
158+
159+
If Hub features do not work, check `A2A_HUB_URL`, `A2A_NODE_ID`, proxy status, and local network access.
160+
161+
## Helper Script
162+
163+
This plugin includes:
164+
165+
```bash
166+
node ~/plugins/evolver/scripts/evolver-status.js
167+
```
168+
169+
Run it from the workspace where the user wants to use Evolver. It reports Node, Git, Evolver CLI, git workspace status, and relevant environment flags without printing secret values.

0 commit comments

Comments
 (0)