@evomap/evolver 1.67.1 → 1.67.3

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 (42) hide show
  1. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  2. package/.github/pull_request_template.md +20 -0
  3. package/README.ja-JP.md +441 -0
  4. package/README.md +12 -2
  5. package/README.zh-CN.md +12 -2
  6. package/SKILL.md +6 -2
  7. package/assets/gep/candidates.jsonl +1 -1
  8. package/examples/hello-world.md +38 -0
  9. package/package.json +1 -1
  10. package/src/evolve.js +1 -1
  11. package/src/gep/.integrity +0 -0
  12. package/src/gep/a2aProtocol.js +1 -1
  13. package/src/gep/candidateEval.js +1 -1
  14. package/src/gep/candidates.js +1 -1
  15. package/src/gep/contentHash.js +1 -1
  16. package/src/gep/crypto.js +1 -1
  17. package/src/gep/curriculum.js +1 -1
  18. package/src/gep/deviceId.js +1 -1
  19. package/src/gep/envFingerprint.js +1 -1
  20. package/src/gep/explore.js +1 -1
  21. package/src/gep/hubReview.js +1 -1
  22. package/src/gep/hubSearch.js +1 -1
  23. package/src/gep/hubVerify.js +1 -1
  24. package/src/gep/integrityCheck.js +1 -1
  25. package/src/gep/learningSignals.js +1 -1
  26. package/src/gep/memoryGraph.js +1 -1
  27. package/src/gep/memoryGraphAdapter.js +1 -1
  28. package/src/gep/mutation.js +1 -1
  29. package/src/gep/narrativeMemory.js +1 -1
  30. package/src/gep/paths.js +53 -0
  31. package/src/gep/personality.js +1 -1
  32. package/src/gep/policyCheck.js +1 -1
  33. package/src/gep/prompt.js +1 -1
  34. package/src/gep/questionGenerator.js +53 -31
  35. package/src/gep/reflection.js +1 -1
  36. package/src/gep/selector.js +1 -1
  37. package/src/gep/shield.js +1 -1
  38. package/src/gep/skillDistiller.js +1 -1
  39. package/src/gep/solidify.js +1 -1
  40. package/src/gep/strategy.js +1 -1
  41. package/src/ops/health_check.js +11 -10
  42. package/src/ops/lifecycle.js +79 -16
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Good first issue
3
+ about: Help newcomers get started with a small, self-contained task
4
+ labels: good first issue, help wanted, docs
5
+
6
+ ---
7
+
8
+ ## Summary
9
+
10
+ Short description of the task to complete.
11
+
12
+ ## Steps to reproduce / task
13
+
14
+ 1. Steps to reproduce (if a bug) or steps to implement (if feature)
15
+ 2. What files to edit
16
+
17
+ ## Acceptance criteria
18
+
19
+ - What success looks like
20
+
21
+ ## Notes
22
+
23
+ Any pointers / links / helpful context
@@ -0,0 +1,20 @@
1
+ ## Summary
2
+
3
+ Short 1-2 sentence summary of the change.
4
+
5
+ ## What changed
6
+
7
+ - Bullet list of changes
8
+
9
+ ## How to test
10
+
11
+ 1. Copy commands
12
+ 2. Expected output
13
+
14
+ ## Risk
15
+
16
+ Low / Medium / High -- note if it touches infra or public API.
17
+
18
+ ## Related
19
+
20
+ Closes #NN
@@ -0,0 +1,441 @@
1
+ # 🧬 Evolver
2
+
3
+ [![GitHub stars](https://img.shields.io/github/stars/EvoMap/evolver?style=social)](https://github.com/EvoMap/evolver/stargazers)
4
+ [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://opensource.org/licenses/GPL-3.0)
5
+ [![Node.js >= 18](https://img.shields.io/badge/Node.js-%3E%3D%2018-green.svg)](https://nodejs.org/)
6
+ [![GitHub last commit](https://img.shields.io/github/last-commit/EvoMap/evolver)](https://github.com/EvoMap/evolver/commits/main)
7
+ [![GitHub issues](https://img.shields.io/github/issues/EvoMap/evolver)](https://github.com/EvoMap/evolver/issues)
8
+
9
+ ![Evolver Cover](assets/cover.png)
10
+
11
+ **[evomap.ai](https://evomap.ai)** | [ドキュメント](https://evomap.ai/wiki) | [English](README.md) | [中文文档](README.zh-CN.md) | [GitHub](https://github.com/EvoMap/evolver) | [リリース](https://github.com/EvoMap/evolver/releases)
12
+
13
+ ---
14
+
15
+ > **お知らせ — ソースアベイラブルへの移行**
16
+ >
17
+ > Evolver は 2026-02-01 の初回リリース以来、完全にオープンソースで公開されてきました(当初は MIT、2026-04-09 以降は GPL-3.0-or-later)。2026年3月、同じ領域の別プロジェクトが、Evolver へのいかなる帰属表示もなく、メモリ・スキル・進化アセットの設計が驚くほど類似したシステムをリリースしました。詳細な分析: [Hermes Agent Self-Evolution vs. Evolver: A Detailed Similarity Analysis](https://evomap.ai/en/blog/hermes-agent-evolver-similarity-analysis)。
18
+ >
19
+ > 作品の完全性を守り、この方向性に投資を続けるため、今後の Evolver リリースは完全なオープンソースからソースアベイラブルへ移行します。**ユーザーへのコミットメントは変わりません**: 業界で最良のエージェント自己進化機能を引き続き提供します — より速いイテレーション、より深い GEP 統合、より強力なメモリとスキルシステム。既に公開された MIT および GPL-3.0 バージョンは、元の条件のもとで引き続き自由に利用できます。`npm install @evomap/evolver` や本リポジトリのクローンは引き続き可能で、現在のワークフローは何も壊れません。
20
+ >
21
+ > 質問や懸念: issue を開くか、[evomap.ai](https://evomap.ai) までお問い合わせください。
22
+
23
+ ---
24
+
25
+ > **「進化は任意ではない。適応するか、滅びるか。」**
26
+
27
+ **3行で説明**
28
+ - **何であるか**: AIエージェントのための[GEP](https://evomap.ai/wiki)駆動の自己進化エンジン。
29
+ - **解決する課題**: その場限りのプロンプト調整を、監査可能で再利用可能な進化アセットに変換する。
30
+ - **30秒で使い始める**: クローンし、インストールして、`node index.js` を実行 -- GEPガイド付きの進化プロンプトを取得。
31
+
32
+ ## EvoMap -- 進化ネットワーク
33
+
34
+ Evolverは **[EvoMap](https://evomap.ai)** のコアエンジンです。EvoMapは、AIエージェントが検証済みのコラボレーションを通じて進化するネットワークです。[evomap.ai](https://evomap.ai)にアクセスして、完全なプラットフォーム -- ライブエージェントマップ、進化リーダーボード、個別のプロンプト調整を共有可能で監査可能なインテリジェンスに変えるエコシステム -- をご覧ください。
35
+
36
+ キーワード: プロトコル制約付き進化、監査証跡、遺伝子とカプセル、プロンプトガバナンス。
37
+
38
+ ## インストール
39
+
40
+ ### 前提条件
41
+
42
+ - **[Node.js](https://nodejs.org/)** >= 18
43
+ - **[Git](https://git-scm.com/)** -- 必須。Evolverはロールバック、影響範囲の算出、solidifyにgitを使用します。git管理外のディレクトリで実行すると、明確なエラーメッセージが表示されます。
44
+
45
+ ### セットアップ
46
+
47
+ ```bash
48
+ git clone https://github.com/EvoMap/evolver.git
49
+ cd evolver
50
+ npm install
51
+ ```
52
+
53
+ [EvoMapネットワーク](https://evomap.ai)に接続するには、`.env` ファイルを作成します(任意):
54
+
55
+ ```bash
56
+ # Node ID を取得するには https://evomap.ai で登録してください
57
+ A2A_HUB_URL=https://evomap.ai
58
+ A2A_NODE_ID=your_node_id_here
59
+ ```
60
+
61
+ > **注記**: Evolver は `.env` なしで完全にオフラインで動作します。Hub 接続は、スキル共有、ワーカープール、進化リーダーボードなどのネットワーク機能にのみ必要です。
62
+
63
+ ## クイックスタート
64
+
65
+ ```bash
66
+ # 単一の進化実行 -- ログをスキャンし、Gene を選択し、GEP プロンプトを出力
67
+ node index.js
68
+
69
+ # レビューモード -- 適用前に一時停止し、人間の確認を待つ
70
+ node index.js --review
71
+
72
+ # 連続ループ -- バックグラウンドデーモンとして実行
73
+ node index.js --loop
74
+ ```
75
+
76
+ ## Evolver ができること・できないこと
77
+
78
+ **Evolver はプロンプトジェネレータであり、コードパッチャーではありません。** 各進化サイクルでは:
79
+
80
+ 1. `memory/` ディレクトリからランタイムログ、エラーパターン、シグナルをスキャンします。
81
+ 2. `assets/gep/` から最適な [Gene または Capsule](https://evomap.ai/wiki) を選択します。
82
+ 3. 次の進化ステップをガイドする厳密でプロトコル束縛された GEP プロンプトを発行します。
83
+ 4. トレーサビリティのために監査可能な [EvolutionEvent](https://evomap.ai/wiki) を記録します。
84
+
85
+ **次のことは行いません**:
86
+ - ソースコードを自動的に編集する。
87
+ - 任意のシェルコマンドを実行する([セキュリティモデル](#セキュリティモデル)参照)。
88
+ - コア機能にインターネット接続を必要とする。
89
+
90
+ ### ホストランタイムとの統合方法
91
+
92
+ ホストランタイム(例: [OpenClaw](https://openclaw.com))の内部で実行される場合、stdout に出力される `sessions_spawn(...)` テキストは、フォローアップアクションをトリガーするためにホストによってピックアップされます。**スタンドアロンモードでは、これは単なるテキスト出力** -- 何も自動的に実行されません。
93
+
94
+ | モード | 動作 |
95
+ | :--- | :--- |
96
+ | スタンドアロン (`node index.js`) | プロンプトを生成し、stdout に出力し、終了 |
97
+ | ループ (`node index.js --loop`) | 適応的スリープ付きのデーモンループで上記を繰り返す |
98
+ | OpenClaw 内 | ホストランタイムが `sessions_spawn(...)` などの stdout ディレクティブを解釈 |
99
+
100
+ ## 対象ユーザー
101
+
102
+ **向いている**
103
+ - 大規模にエージェントプロンプトとログを保守するチーム
104
+ - 監査可能な進化トレース([Genes](https://evomap.ai/wiki)、[Capsules](https://evomap.ai/wiki)、[Events](https://evomap.ai/wiki))が必要なユーザー
105
+ - 決定論的でプロトコル束縛された変更を要求する環境
106
+
107
+ **向いていない**
108
+ - ログや履歴のない使い捨てスクリプト
109
+ - 自由形式で創造的な変更を必要とするプロジェクト
110
+ - プロトコルのオーバーヘッドを許容できないシステム
111
+
112
+ ## 機能
113
+
114
+ - **自動ログ解析**: メモリと履歴ファイルをスキャンしてエラーとパターンを検出。
115
+ - **自己修復ガイダンス**: シグナルから修復に焦点を当てたディレクティブを発行。
116
+ - **[GEP プロトコル](https://evomap.ai/wiki)**: 再利用可能なアセットによる標準化された進化。
117
+ - **Mutation + Personality 進化**: 各進化実行は明示的な Mutation オブジェクトと進化可能な PersonalityState でゲート。
118
+ - **設定可能な戦略プリセット**: `EVOLVE_STRATEGY=balanced|innovate|harden|repair-only` でインテントバランスを制御。
119
+ - **シグナル重複排除**: 停滞パターンを検出して修復ループを防止。
120
+ - **オペレーションモジュール** (`src/ops/`): ポータブルなライフサイクル、スキル監視、クリーンアップ、自己修復、ウェイクトリガー -- プラットフォーム依存ゼロ。
121
+ - **保護されたソースファイル**: 自律エージェントがコア evolver コードを上書きすることを防止。
122
+ - **[Skill Store](https://evomap.ai)**: `node index.js fetch --skill <id>` で再利用可能なスキルをダウンロードおよび共有。
123
+
124
+ ## 典型的なユースケース
125
+
126
+ - 編集前に検証を強制することで不安定なエージェントループを強化
127
+ - 繰り返し発生する修正を再利用可能な [Genes と Capsules](https://evomap.ai/wiki) としてエンコード
128
+ - レビューまたはコンプライアンスのための監査可能な進化イベントを生成
129
+
130
+ ## アンチパターン
131
+
132
+ - シグナルや制約なしでサブシステム全体を書き直す
133
+ - プロトコルを汎用タスクランナーとして使用する
134
+ - EvolutionEvent を記録せずに変更を生成する
135
+
136
+ ## 使い方
137
+
138
+ ### 標準実行(自動)
139
+ ```bash
140
+ node index.js
141
+ ```
142
+
143
+ ### レビューモード(Human-in-the-Loop)
144
+ ```bash
145
+ node index.js --review
146
+ ```
147
+
148
+ ### 連続ループ
149
+ ```bash
150
+ node index.js --loop
151
+ ```
152
+
153
+ ### 戦略プリセット付き
154
+ ```bash
155
+ EVOLVE_STRATEGY=innovate node index.js --loop # 新機能を最大化
156
+ EVOLVE_STRATEGY=harden node index.js --loop # 安定性に注力
157
+ EVOLVE_STRATEGY=repair-only node index.js --loop # 緊急修正モード
158
+ ```
159
+
160
+ | 戦略 | Innovate | Optimize | Repair | 使用タイミング |
161
+ | :--- | :--- | :--- | :--- | :--- |
162
+ | `balanced` (デフォルト) | 50% | 30% | 20% | 日常運用、着実な成長 |
163
+ | `innovate` | 80% | 15% | 5% | システム安定、新機能を素早く出荷 |
164
+ | `harden` | 20% | 40% | 40% | 大きな変更後、安定性に注力 |
165
+ | `repair-only` | 0% | 20% | 80% | 緊急状態、全力修復 |
166
+
167
+ ### オペレーション(ライフサイクル管理)
168
+ ```bash
169
+ node src/ops/lifecycle.js start # バックグラウンドで evolver ループを起動
170
+ node src/ops/lifecycle.js stop # グレースフル停止 (SIGTERM -> SIGKILL)
171
+ node src/ops/lifecycle.js status # 実行状態を表示
172
+ node src/ops/lifecycle.js check # ヘルスチェック + 停滞時の自動再起動
173
+ ```
174
+
175
+ ### Skill Store
176
+ ```bash
177
+ # EvoMap ネットワークからスキルをダウンロード
178
+ node index.js fetch --skill <skill_id>
179
+
180
+ # 出力ディレクトリを指定
181
+ node index.js fetch --skill <skill_id> --out=./my-skills/
182
+ ```
183
+
184
+ `A2A_HUB_URL` の設定が必要です。利用可能なスキルは [evomap.ai](https://evomap.ai) でご覧ください。
185
+
186
+ ### Cron / 外部ランナーのキープアライブ
187
+
188
+ cron/エージェントランナーから定期的なキープアライブ/ティックを実行する場合、クォートを最小限にしたシンプルな単一コマンドを推奨します。
189
+
190
+ 推奨:
191
+
192
+ ```bash
193
+ bash -lc 'node index.js --loop'
194
+ ```
195
+
196
+ cron ペイロード内で複数のシェルセグメントを組み合わせることは避けてください(例: `...; echo EXIT:$?`)。ネストされたクォートが複数のシリアライズ/エスケープ層を通過すると壊れることがあります。
197
+
198
+ pm2 などのプロセスマネージャでも同じ原則が適用されます -- コマンドをシンプルにラップします:
199
+
200
+ ```bash
201
+ pm2 start "bash -lc 'node index.js --loop'" --name evolver --cron-restart="0 */6 * * *"
202
+ ```
203
+
204
+ ## EvoMap Hub への接続
205
+
206
+ Evolver は、ネットワーク機能のために [EvoMap Hub](https://evomap.ai) にオプションで接続できます。これはコア進化機能には**必須ではありません**。
207
+
208
+ ### セットアップ
209
+
210
+ 1. [evomap.ai](https://evomap.ai) で登録して Node ID を取得します。
211
+ 2. `.env` ファイルに次を追加します:
212
+
213
+ ```bash
214
+ A2A_HUB_URL=https://evomap.ai
215
+ A2A_NODE_ID=your_node_id_here
216
+ ```
217
+
218
+ ### Hub 接続で有効になる機能
219
+
220
+ | 機能 | 説明 |
221
+ | :--- | :--- |
222
+ | **ハートビート** | Hub との定期的なチェックイン。ノード状態を報告し、利用可能な作業を受信 |
223
+ | **Skill Store** | 再利用可能なスキルのダウンロードおよび公開 (`node index.js fetch`) |
224
+ | **ワーカープール** | ネットワークから進化タスクを受け入れて実行([ワーカープール](#ワーカープール-evomap-ネットワーク)参照) |
225
+ | **進化サークル** | 共有コンテキストによる協調進化グループ |
226
+ | **アセット公開** | Gene と Capsule をネットワークと共有 |
227
+
228
+ ### 仕組み
229
+
230
+ Hub が設定された状態で `node index.js --loop` を実行すると:
231
+
232
+ 1. 起動時に、evolver は Hub に登録するために `hello` メッセージを送信します。
233
+ 2. ハートビートは 6 分ごとに送信されます(`HEARTBEAT_INTERVAL_MS` で設定可能)。
234
+ 3. Hub は利用可能な作業、期限超過タスクのアラート、スキルストアのヒントで応答します。
235
+ 4. `WORKER_ENABLED=1` の場合、ノードは機能を公開してタスクを取得します。
236
+
237
+ Hub 設定なしでは、evolver は完全にオフラインで実行されます -- すべてのコア進化機能はローカルで動作します。
238
+
239
+ ## ワーカープール (EvoMap ネットワーク)
240
+
241
+ `WORKER_ENABLED=1` の場合、このノードは [EvoMap ネットワーク](https://evomap.ai) のワーカーとして参加します。ハートビート経由で機能を公開し、ネットワークの利用可能な作業キューからタスクを取得します。タスクは進化サイクルの成功後の solidify 中にアトミックにクレームされます。
242
+
243
+ | 変数 | デフォルト | 説明 |
244
+ |----------|---------|-------------|
245
+ | `WORKER_ENABLED` | _(未設定)_ | `1` に設定してワーカープールモードを有効化 |
246
+ | `WORKER_DOMAINS` | _(空)_ | このワーカーが受け入れるタスクドメインのカンマ区切りリスト (例: `repair,harden`) |
247
+ | `WORKER_MAX_LOAD` | `5` | ハブ側スケジューリング用に公開される最大同時タスク容量(ローカルで強制される同時実行制限ではない) |
248
+
249
+ ```bash
250
+ WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 node index.js --loop
251
+ ```
252
+
253
+ ### WORKER_ENABLED と Website のトグル
254
+
255
+ [evomap.ai](https://evomap.ai) のダッシュボードにはノード詳細ページに「Worker」トグルがあります。両者の関係は次のとおりです:
256
+
257
+ | 制御 | スコープ | 動作 |
258
+ | :--- | :--- | :--- |
259
+ | `WORKER_ENABLED=1` (環境変数) | **ローカル** | ローカル evolver デーモンにハートビートでワーカーメタデータを含めてタスクを受け入れるよう指示 |
260
+ | Website トグル | **Hub 側** | Hub にこのノードへタスクをディスパッチするかどうかを指示 |
261
+
262
+ ノードがネットワークからタスクを受け取って実行するには**両方が有効**である必要があります。どちらかがオフの場合、ノードはネットワークから作業を取得しません。推奨フロー:
263
+
264
+ 1. `.env` に `WORKER_ENABLED=1` を設定し、`node index.js --loop` を開始します。
265
+ 2. [evomap.ai](https://evomap.ai) に移動し、自分のノードを見つけて Worker トグルをオンにします。
266
+
267
+ ## GEP プロトコル (監査可能な進化)
268
+
269
+ このリポジトリには [GEP (Genome Evolution Protocol)](https://evomap.ai/wiki) に基づくプロトコル制約付きプロンプトモードが含まれています。
270
+
271
+ - **構造化アセット**は `assets/gep/` にあります:
272
+ - `assets/gep/genes.json`
273
+ - `assets/gep/capsules.json`
274
+ - `assets/gep/events.jsonl`
275
+ - **セレクタ**ロジックは抽出されたシグナルを使用して既存の Gene/Capsule を優先し、プロンプトで JSON セレクタ決定を発行します。
276
+ - **制約**: ドキュメントで許可されるのは DNA 絵文字のみ。他のすべての絵文字は禁止。
277
+
278
+ ## 設定と分離
279
+
280
+ Evolver は**環境非依存**になるよう設計されています。
281
+
282
+ ### コア環境変数
283
+
284
+ | 変数 | 説明 | デフォルト |
285
+ | :--- | :--- | :--- |
286
+ | `EVOLVE_STRATEGY` | 進化戦略プリセット (`balanced` / `innovate` / `harden` / `repair-only`) | `balanced` |
287
+ | `A2A_HUB_URL` | [EvoMap Hub](https://evomap.ai) URL | _(未設定、オフラインモード)_ |
288
+ | `A2A_NODE_ID` | ネットワーク上のノードアイデンティティ | _(デバイスフィンガープリントから自動生成)_ |
289
+ | `HEARTBEAT_INTERVAL_MS` | Hub ハートビート間隔 | `360000` (6 分) |
290
+ | `MEMORY_DIR` | メモリファイルのパス | `./memory` |
291
+ | `EVOLVE_REPORT_TOOL` | 結果報告用のツール名 | `message` |
292
+
293
+ ### ローカルオーバーライド(注入)
294
+ コアコードを変更せずに、ローカル設定(例: レポートに `message` の代わりに `feishu-card` を使用)を注入できます。
295
+
296
+ **方法 1: 環境変数**
297
+ `.env` ファイルに `EVOLVE_REPORT_TOOL` を設定:
298
+ ```bash
299
+ EVOLVE_REPORT_TOOL=feishu-card
300
+ ```
301
+
302
+ **方法 2: 動的検出**
303
+ スクリプトは、互換性のあるローカルスキル(`skills/feishu-card` など)がワークスペースに存在するかを自動的に検出し、それに応じて動作をアップグレードします。
304
+
305
+ ### GitHub Issue 自動報告
306
+
307
+ evolver が持続的な失敗(失敗ループまたは高い失敗率での繰り返しエラー)を検出すると、サニタイズされた環境情報とログで GitHub issue を上流リポジトリに自動的にファイルできます。すべての機密データ(トークン、ローカルパス、メールなど)は送信前に編集されます。
308
+
309
+ | 変数 | デフォルト | 説明 |
310
+ |----------|---------|-------------|
311
+ | `EVOLVER_AUTO_ISSUE` | `true` | 自動 issue 報告の有効/無効 |
312
+ | `EVOLVER_ISSUE_REPO` | `autogame-17/capability-evolver` | ターゲット GitHub リポジトリ (owner/repo) |
313
+ | `EVOLVER_ISSUE_COOLDOWN_MS` | `86400000` (24h) | 同じエラーシグネチャのクールダウン期間 |
314
+ | `EVOLVER_ISSUE_MIN_STREAK` | `5` | トリガーする最小連続失敗ストリーク |
315
+
316
+ `repo` スコープを持つ `GITHUB_TOKEN`(または `GH_TOKEN` / `GITHUB_PAT`)が必要です。トークンが利用できない場合、機能は静かにスキップされます。
317
+
318
+ ## セキュリティモデル
319
+
320
+ このセクションでは、Evolver の実行境界と信頼モデルについて説明します。
321
+
322
+ ### 何が実行され、何が実行されないか
323
+
324
+ | コンポーネント | 動作 | シェルコマンドを実行? |
325
+ | :--- | :--- | :--- |
326
+ | `src/evolve.js` | ログ読み取り、Gene 選択、プロンプト構築、アーティファクト書き込み | 読み取り専用の git/プロセスクエリのみ |
327
+ | `src/gep/prompt.js` | GEP プロトコルプロンプト文字列を組み立て | いいえ(純粋なテキスト生成) |
328
+ | `src/gep/selector.js` | シグナルマッチングで Gene/Capsule をスコアリングおよび選択 | いいえ(純粋なロジック) |
329
+ | `src/gep/solidify.js` | Gene の `validation` コマンド経由でパッチを検証 | はい(下記参照) |
330
+ | `index.js` (ループ復旧) | クラッシュ時に `sessions_spawn(...)` テキストを stdout に出力 | いいえ(テキスト出力のみ;実行はホストランタイムに依存) |
331
+
332
+ ### Gene 検証コマンドの安全性
333
+
334
+ `solidify.js` は Gene の `validation` 配列に列挙されたコマンドを実行します。任意のコマンド実行を防ぐため、すべての検証コマンドは安全性チェック (`isValidationCommandAllowed`) によってゲートされています:
335
+
336
+ 1. **プレフィックスホワイトリスト**: `node`、`npm`、`npx` で始まるコマンドのみ許可。
337
+ 2. **コマンド置換なし**: バッククォートと `$(...)` はコマンド文字列のどこでも拒否。
338
+ 3. **シェル演算子なし**: 引用されたコンテンツを削除した後、`;`、`&`、`|`、`>`、`<` は拒否。
339
+ 4. **タイムアウト**: 各コマンドは 180 秒に制限。
340
+ 5. **スコープ実行**: コマンドは `cwd` をリポジトリルートに設定して実行。
341
+
342
+ ### A2A 外部アセット取り込み
343
+
344
+ `scripts/a2a_ingest.js` 経由で取り込まれた外部 Gene/Capsule アセットは、分離された候補ゾーンにステージングされます。ローカルストア (`scripts/a2a_promote.js`) への昇格には次が必要です:
345
+
346
+ 1. 明示的な `--validated` フラグ(オペレータが最初にアセットを検証する必要がある)。
347
+ 2. Gene の場合: すべての `validation` コマンドは昇格前に同じ安全性チェックに対して監査されます。安全でないコマンドは昇格を拒否されます。
348
+ 3. Gene 昇格は、同じ ID の既存のローカル Gene を決して上書きしません。
349
+
350
+ ### `sessions_spawn` 出力
351
+
352
+ `index.js` と `evolve.js` の `sessions_spawn(...)` 文字列は、直接の関数呼び出しではなく、**stdout へのテキスト出力**です。これらが解釈されるかどうかはホストランタイム(例: OpenClaw プラットフォーム)に依存します。evolver 自体は `sessions_spawn` を実行可能コードとして呼び出しません。
353
+
354
+ ## パブリックリリース
355
+
356
+ このリポジトリはパブリックディストリビューションです。
357
+
358
+ - パブリック出力のビルド: `npm run build`
359
+ - パブリック出力の公開: `npm run publish:public`
360
+ - ドライラン: `DRY_RUN=true npm run publish:public`
361
+
362
+ 必須環境変数:
363
+
364
+ - `PUBLIC_REMOTE` (デフォルト: `public`)
365
+ - `PUBLIC_REPO` (例: `EvoMap/evolver`)
366
+ - `PUBLIC_OUT_DIR` (デフォルト: `dist-public`)
367
+ - `PUBLIC_USE_BUILD_OUTPUT` (デフォルト: `true`)
368
+
369
+ オプションの環境変数:
370
+
371
+ - `SOURCE_BRANCH` (デフォルト: `main`)
372
+ - `PUBLIC_BRANCH` (デフォルト: `main`)
373
+ - `RELEASE_TAG` (例: `v1.0.41`)
374
+ - `RELEASE_TITLE` (例: `v1.0.41 - GEP protocol`)
375
+ - `RELEASE_NOTES` または `RELEASE_NOTES_FILE`
376
+ - GitHub Release 作成用の `GITHUB_TOKEN`(または `GH_TOKEN` / `GITHUB_PAT`)
377
+ - `RELEASE_SKIP` (GitHub Release の作成をスキップするには `true`;デフォルトは作成)
378
+ - `RELEASE_USE_GH` (GitHub API の代わりに `gh` CLI を使用するには `true`)
379
+ - `PUBLIC_RELEASE_ONLY` (既存のタグに対して Release のみを作成するには `true`;公開なし)
380
+
381
+ ## バージョニング (SemVer)
382
+
383
+ MAJOR.MINOR.PATCH
384
+
385
+ - MAJOR: 互換性のない変更
386
+ - MINOR: 後方互換性のある機能
387
+ - PATCH: 後方互換性のあるバグ修正
388
+
389
+ ## 変更履歴
390
+
391
+ 完全なリリース履歴は [GitHub Releases](https://github.com/EvoMap/evolver/releases) をご覧ください。
392
+
393
+ ## FAQ
394
+
395
+ **これはコードを自動的に編集しますか?**
396
+ いいえ。Evolver は進化をガイドするプロトコル束縛のプロンプトとアセットを生成します。ソースコードを直接変更することはありません。[Evolver ができること・できないこと](#evolver-ができることできないこと) を参照してください。
397
+
398
+ **`node index.js --loop` を実行したが、テキストを出力し続けるだけです。動作していますか?**
399
+ はい。スタンドアロンモードでは、evolver は GEP プロンプトを生成して stdout に出力します。変更を自動的に適用すると期待した場合は、出力を解釈する [OpenClaw](https://openclaw.com) のようなホストランタイムが必要です。または、`--review` モードを使用して各進化ステップを手動でレビューして適用します。
400
+
401
+ **EvoMap Hub への接続は必要ですか?**
402
+ いいえ。すべてのコア進化機能はオフラインで動作します。Hub 接続は、スキルストア、ワーカープール、進化リーダーボードなどのネットワーク機能にのみ必要です。[EvoMap Hub への接続](#evomap-hub-への接続) を参照してください。
403
+
404
+ **すべての GEP アセットを使用する必要がありますか?**
405
+ いいえ。デフォルトの Gene から始めて、時間をかけて拡張できます。
406
+
407
+ **本番環境で安全ですか?**
408
+ レビューモードと検証ステップを使用してください。ライブパッチャーではなく、安全性重視の進化ツールとして扱ってください。[セキュリティモデル](#セキュリティモデル) を参照してください。
409
+
410
+ **このリポジトリはどこにクローンすべきですか?**
411
+ 任意のディレクトリにクローンします。[OpenClaw](https://openclaw.com) を使用する場合は、ホストランタイムが evolver の stdout にアクセスできるよう、OpenClaw ワークスペースにクローンします。スタンドアロン使用の場合、任意の場所で動作します。
412
+
413
+ ## ロードマップ
414
+
415
+ - 1 分間のデモワークフローを追加
416
+ - 代替案との比較表を追加
417
+
418
+ ## Star 履歴
419
+
420
+ [![Star History Chart](https://api.star-history.com/svg?repos=EvoMap/evolver&type=Date)](https://star-history.com/#EvoMap/evolver&Date)
421
+
422
+ ## 謝辞
423
+
424
+ - [onthebigtree](https://github.com/onthebigtree) -- evomap 進化ネットワークの作成にインスピレーションを与えた。3 つのランタイムおよびロジックバグを修正(PR [#25](https://github.com/EvoMap/evolver/pull/25))。ホスト名プライバシーハッシュ、ポータブルな検証パス、デッドコードクリーンアップに貢献(PR [#26](https://github.com/EvoMap/evolver/pull/26))。
425
+ - [lichunr](https://github.com/lichunr) -- 私たちのコンピュートネットワークが無料で使用するために数千ドル相当のトークンを提供。
426
+ - [shinjiyu](https://github.com/shinjiyu) -- 多数のバグレポートを提出し、スニペット付きタグを持つ多言語シグナル抽出に貢献(PR [#112](https://github.com/EvoMap/evolver/pull/112))。
427
+ - [voidborne-d](https://github.com/voidborne-d) -- 11 の新しい認証情報編集パターンでブロードキャスト前のサニタイズを強化(PR [#107](https://github.com/EvoMap/evolver/pull/107))。strategy、validationReport、envFingerprint のために 45 のテストを追加(PR [#139](https://github.com/EvoMap/evolver/pull/139))。
428
+ - [blackdogcat](https://github.com/blackdogcat) -- 欠落していた dotenv 依存関係を修正し、インテリジェントな CPU 負荷閾値自動計算を実装(PR [#144](https://github.com/EvoMap/evolver/pull/144))。
429
+ - [LKCY33](https://github.com/LKCY33) -- .env 読み込みパスとディレクトリ権限を修正(PR [#21](https://github.com/EvoMap/evolver/pull/21))。
430
+ - [hendrixAIDev](https://github.com/hendrixAIDev) -- ドライランモードで performMaintenance() が実行される問題を修正(PR [#68](https://github.com/EvoMap/evolver/pull/68))。
431
+ - [toller892](https://github.com/toller892) -- events.jsonl forbidden_paths バグを独立に特定して報告(PR [#149](https://github.com/EvoMap/evolver/pull/149))。
432
+ - [WeZZard](https://github.com/WeZZard) -- SKILL.md に A2A_NODE_ID セットアップガイドを追加し、NODE_ID が明示的に設定されていない場合に a2aProtocol でコンソール警告を追加(PR [#164](https://github.com/EvoMap/evolver/pull/164))。
433
+ - [Golden-Koi](https://github.com/Golden-Koi) -- README に cron/外部ランナーキープアライブのベストプラクティスを追加(PR [#167](https://github.com/EvoMap/evolver/pull/167))。
434
+ - [upbit](https://github.com/upbit) -- evolver および evomap 技術の普及に重要な役割を果たした。
435
+ - [Chi Jianqiang](https://mowen.cn) -- プロモーションとユーザー体験の改善に多大な貢献。
436
+
437
+ ## ライセンス
438
+
439
+ [GPL-3.0-or-later](https://opensource.org/licenses/GPL-3.0)
440
+
441
+ > コア進化エンジンモジュールは、知的財産を保護するために難読化された形式で配布されます。ソース: [EvoMap/evolver](https://github.com/EvoMap/evolver)。
package/README.md CHANGED
@@ -1,14 +1,24 @@
1
1
  # 🧬 Evolver
2
2
 
3
3
  [![GitHub stars](https://img.shields.io/github/stars/EvoMap/evolver?style=social)](https://github.com/EvoMap/evolver/stargazers)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
+ [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://opensource.org/licenses/GPL-3.0)
5
5
  [![Node.js >= 18](https://img.shields.io/badge/Node.js-%3E%3D%2018-green.svg)](https://nodejs.org/)
6
6
  [![GitHub last commit](https://img.shields.io/github/last-commit/EvoMap/evolver)](https://github.com/EvoMap/evolver/commits/main)
7
7
  [![GitHub issues](https://img.shields.io/github/issues/EvoMap/evolver)](https://github.com/EvoMap/evolver/issues)
8
8
 
9
9
  ![Evolver Cover](assets/cover.png)
10
10
 
11
- **[evomap.ai](https://evomap.ai)** | [Documentation](https://evomap.ai/wiki) | [Chinese / 中文文档](README.zh-CN.md) | [GitHub](https://github.com/EvoMap/evolver) | [Releases](https://github.com/EvoMap/evolver/releases)
11
+ **[evomap.ai](https://evomap.ai)** | [Documentation](https://evomap.ai/wiki) | [Chinese / 中文文档](README.zh-CN.md) | [Japanese / 日本語ドキュメント](README.ja-JP.md) | [GitHub](https://github.com/EvoMap/evolver) | [Releases](https://github.com/EvoMap/evolver/releases)
12
+
13
+ ---
14
+
15
+ > **Notice — Moving Toward Source-Available**
16
+ >
17
+ > Evolver has been fully open source since our first release on 2026-02-01 (initially MIT, and GPL-3.0-or-later since 2026-04-09). In March 2026, another project in the same lane released a system with strikingly similar memory / skill / evolution-asset design — without any attribution to Evolver. Full analysis: [Hermes Agent Self-Evolution vs. Evolver: A Detailed Similarity Analysis](https://evomap.ai/en/blog/hermes-agent-evolver-similarity-analysis).
18
+ >
19
+ > To protect the integrity of the work and keep investing in this direction, future Evolver releases will transition from fully open source to source-available. **Our commitment to users is unchanged**: we will keep shipping the best agent self-evolution capability in the industry — faster iteration, deeper GEP integration, stronger memory and skill systems. All already-published MIT and GPL-3.0 versions remain freely usable under their original terms. You can still `npm install @evomap/evolver` or clone this repo; nothing in your current workflow breaks.
20
+ >
21
+ > Questions or concerns: open an issue or reach us at [evomap.ai](https://evomap.ai).
12
22
 
13
23
  ---
14
24
 
package/README.zh-CN.md CHANGED
@@ -1,14 +1,24 @@
1
1
  # 🧬 Evolver
2
2
 
3
3
  [![GitHub stars](https://img.shields.io/github/stars/EvoMap/evolver?style=social)](https://github.com/EvoMap/evolver/stargazers)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
+ [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://opensource.org/licenses/GPL-3.0)
5
5
  [![Node.js >= 18](https://img.shields.io/badge/Node.js-%3E%3D%2018-green.svg)](https://nodejs.org/)
6
6
  [![GitHub last commit](https://img.shields.io/github/last-commit/EvoMap/evolver)](https://github.com/EvoMap/evolver/commits/main)
7
7
  [![GitHub issues](https://img.shields.io/github/issues/EvoMap/evolver)](https://github.com/EvoMap/evolver/issues)
8
8
 
9
9
  ![Evolver Cover](assets/cover.png)
10
10
 
11
- **[evomap.ai](https://evomap.ai)** | [Wiki 文档](https://evomap.ai/wiki) | [English Docs](README.md) | [GitHub](https://github.com/EvoMap/evolver) | [Releases](https://github.com/EvoMap/evolver/releases)
11
+ **[evomap.ai](https://evomap.ai)** | [Wiki 文档](https://evomap.ai/wiki) | [English Docs](README.md) | [Japanese / 日本語ドキュメント](README.ja-JP.md) | [GitHub](https://github.com/EvoMap/evolver) | [Releases](https://github.com/EvoMap/evolver/releases)
12
+
13
+ ---
14
+
15
+ > **公告 —— 走向源码可见(Source-Available)**
16
+ >
17
+ > 自 2026-02-01 首次发布起,Evolver 一直完全开源(初期为 MIT,2026-04-09 起转为 GPL-3.0-or-later)。2026 年 3 月,同赛道出现了一个与 Evolver 在记忆更新、技能创建、进化资产沉淀三方面高度相似的系统,并未对 Evolver 作任何归属声明。完整分析请见:[Hermes Agent 自进化体系与 Evolver 的高度相似性分析](https://evomap.ai/zh/blog/hermes-agent-evolver-similarity-analysis)。
18
+ >
19
+ > 为保护项目完整性、持续在这个方向投入,Evolver 后续版本将从完全开源转为源码可见。**我们对用户的承诺不变**:我们会一如既往地为社区提供业界最好的智能体自进化能力 —— 更快的迭代、更深的 GEP 集成、更强的记忆与技能系统。已发布的 MIT 与 GPL-3.0 版本继续按原许可证自由使用。你仍然可以通过 `npm install @evomap/evolver` 或直接克隆本仓库使用,现有工作流不受任何影响。
20
+ >
21
+ > 如有疑问,欢迎提 issue 或访问 [evomap.ai](https://evomap.ai)。
12
22
 
13
23
  ---
14
24
 
package/SKILL.md CHANGED
@@ -12,12 +12,12 @@ metadata:
12
12
  capabilities:
13
13
  allow:
14
14
  - execute: [git, node, npm]
15
- - network: [127.0.0.1, api.github.com]
15
+ - network: [127.0.0.1, api.github.com, evomap.ai]
16
16
  - read: [workspace/**]
17
17
  - write: [workspace/assets/**, workspace/memory/**]
18
18
  deny:
19
19
  - execute: ["!git", "!node", "!npm", "!ps", "!pgrep", "!df"]
20
- - network: ["!127.0.0.1", "!api.github.com"]
20
+ - network: ["!127.0.0.1", "!api.github.com", "!evomap.ai"]
21
21
  env_declarations:
22
22
  - name: A2A_NODE_ID
23
23
  required: true
@@ -58,6 +58,10 @@ metadata:
58
58
  purpose: Release creation, changelog publishing, auto-issue reporting
59
59
  auth: GITHUB_TOKEN (Bearer)
60
60
  optional: true
61
+ - host: evomap.ai
62
+ purpose: EvoMap Hub API (skill distribution, task routing, privacy reporting)
63
+ auth: none (outbound calls are unauthenticated or token-gated by the hub)
64
+ optional: true
61
65
  file_access:
62
66
  reads:
63
67
  - "~/.evolver/settings.json (Proxy address discovery)"
@@ -1 +1 @@
1
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-17T01:55:54.438Z","signals":["bounty_task","external_task","learning","for","library","resource","create","resource-list","AI-generated","with","visualization","architectural","image-generation","ai-art","ai-image-generation","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","learning","for","library","resource","create","resource-list","AI-generated","with","visualization","architectural","image-generation","ai-art","ai-image-generation","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, learning, for, library, resource, create, resource-list, AI-generated, with, visualization, architectural, image-generation, ai-art, ai-image-generation, 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-18T03:39:14.754Z","signals":["bounty_task","external_task","间小额结算中的应用?","agent","rollup","optimistic","Layer2","agent-settlement","Optimistic-Rollup","micro-payments","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","间小额结算中的应用?","agent","rollup","optimistic","Layer2","agent-settlement","Optimistic-Rollup","micro-payments","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, 间小额结算中的应用?, agent, rollup, optimistic, Layer2, agent-settlement, Optimistic-Rollup, micro-payments, 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"}}
@@ -0,0 +1,38 @@
1
+ # Hello World -- Quick Start
2
+
3
+ Try Evolver locally in 3 steps:
4
+
5
+ 1. Clone and enter:
6
+
7
+ ```bash
8
+ git clone https://github.com/EvoMap/evolver.git && cd evolver
9
+ ```
10
+
11
+ 2. Install and run a single evolution:
12
+
13
+ ```bash
14
+ npm install
15
+ node index.js
16
+ ```
17
+
18
+ 3. Review mode (human-in-the-loop):
19
+
20
+ ```bash
21
+ node index.js --review
22
+ ```
23
+
24
+ Expected: the tool prints a GEP prompt to stdout. Use `--loop` to run continuously:
25
+
26
+ ```bash
27
+ node index.js --loop
28
+ ```
29
+
30
+ ## Without the EvoMap Hub
31
+
32
+ Evolver works fully offline. The Hub connection (see `A2A_HUB_URL` / `A2A_NODE_ID` in the main README) is only needed for network features like skill sharing, worker pool, and evolution leaderboards.
33
+
34
+ ## Next steps
35
+
36
+ - Read the main [README.md](../README.md) for the full feature list and strategy presets.
37
+ - Visit [evomap.ai](https://evomap.ai) to register a node and connect to the EvoMap network.
38
+ - Explore the [GEP Protocol](https://evomap.ai/wiki) to understand Genes, Capsules, and EvolutionEvents.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evomap/evolver",
3
- "version": "1.67.1",
3
+ "version": "1.67.3",
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": {