jeo-code 0.12.9 → 0.12.11

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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  The README mirrors the latest 5 entries — regenerate with `bun run changelog:sync`.
9
9
 
10
+ ## [0.12.10] - 2026-11-02
11
+ ## [0.12.11] - 2026-11-02
12
+
13
+ ### Added
14
+ - **Subagent lifecycle & verbosity control (jeopi parity)** — subagent control tool now supports safe pause directives (`pause`), resuming (`resume`), output verbosity scoping (`receipt` | `preview` | `full`), result limits (`limit: 1..50`), and strict ID security validation.
15
+ - **jeo-skills workflow integration** — auto-discovery across `.agent-skills` paths, dynamic task-relevant workflow guidance ranking in prompt sections, and seamless integration with independent deterministic router harness engines.
16
+ - **Messenger live activity streaming & isolated sessions** — Discord/messenger sessions stream fine-grained step & tool activity in real-time, preserve finished audit messages, support per-call isolated sessions (`independentSessions`), and enable sandbox & computer use by default.
17
+
18
+
19
+ ### Added
20
+ - **Messenger computer use** — explicitly allow authorized messenger sessions to use the host computer tool, independently of the global computer setting. Host desktop and filesystem access are shared and not sandboxed.
21
+
22
+ ### Fixed
23
+ - **Literal worker tool isolation** — prevent environment-provided tool lists from bypassing a messenger worker's explicit allowlist.
24
+
10
25
  ## [0.12.9] - 2026-11-02
11
26
  ≔14c4+
12
27
  - **Discord model policy** — optionally pin a Discord worker model and fall back on persistent usage or quota exhaustion before any tool execution; other platforms and global routing retain their own settings.
package/README.ja.md CHANGED
@@ -1,12 +1,12 @@
1
1
  <p align="center">
2
- <img src="assets/hero.png" alt="jeo-code 自律コーディングエージェントのヒーローイラスト" width="100%" />
2
+ <img src="assets/hero.png" alt="光る幻想的な風景に佇む jeo-code の赤いザリガニ魔法使いとぬいぐるみの仲間たち" width="100%" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">jeo-code (jeo)</h1>
6
6
 
7
7
  <p align="center">
8
8
  <strong>Encode intention. Decode software.</strong><br />
9
- Bun ベースの AI コーディングエージェント CLI — インタビュー、レビュー済みプラン、ゲート付き実行、誠実な検証。
9
+ Bun ベースの AI コーディングエージェント CLI — インタビュー、レビュー済みプラン、ゲート付き実行、証拠に基づくチェック。
10
10
  </p>
11
11
 
12
12
  <p align="center">
@@ -32,6 +32,8 @@
32
32
 
33
33
  - [双方向メッセンジャーゲートウェイ (Discord, Telegram, Slack)](docs/integrations/messenger.md)
34
34
 
35
+ **メッセンジャーゲートウェイ** — `jeo messenger` は通知デーモンとは別に、許可された Discord・Telegram・Slack の会話を扱います。ローカルツールは既定で無効です。`computer` を明示的に許可すると共有ホストのデスクトップに、`bash` を許可するとシェルにアクセスでき、サンドボックスではありません。[ガイド](docs/integrations/messenger.md)を参照してください。
36
+
35
37
  📖 **[使い方ガイド](docs/usage-guide.md)** — インストール、TUI操作(↑履歴、Ctrl+O、`!`シェル)、スラッシュコマンド、`/resume`、スペックファーストワークフローをデモ動画付きで解説。
36
38
 
37
39
  <video src="https://raw.githubusercontent.com/akillness/jeo-code/main/docs/jeo-code-promo.mp4" controls muted playsinline width="100%"></video>
@@ -43,7 +45,7 @@
43
45
  - **マルチプロバイダ・単一ループ** — Anthropic / OpenAI(+Codex) / Gemini / Antigravity / Ollama / LM Studio に加え、OpenAI・Anthropic 互換クラウド20以上(Groq、DeepSeek、Mistral、OpenRouter、xAI、Kimi、z.ai など)を均一な JSON ツールループで — **さらに自分で登録したエンドポイントも**: `jeo provider add --id my-proxy --base-url https://…`(または `--preset litellm|vllm|sglang|azure-openai|…`)で、LiteLLM プロキシ・自前ホストの vLLM・社内 Anthropic ゲートウェイが、組み込みの `openai` プロバイダを乗っ取ることなく独自のルーティング接頭辞・モデル一覧・認証情報を持てます。入力欄から OAuth ログイン(`/provider login`)、モデル選択は毎回新しいデフォルトとして永続化。プロンプトルーティングは実際に使える認証済み経路だけを自動選択します: Gemini OAuth は provider-qualified な `antigravity/*` エージェントセットへ、**アカウントが現在提供している構成のまま**向かい(ライブ検出 — 例: Gemini 3.6 Flash 各ティア、Gemini 3.1 Pro、Claude Sonnet/Opus 4.6; チャット以外や非推奨の ID は除外され、一覧が空でも静的カタログで代用しません)、`GEMINI_API_KEY` が必要な public `google/gemini-*` 行は決して選びません。設定済みルートが未準備のプロバイダを指している場合、jeo はデフォルトへフォールバックする前に同等ティアの認証済みモデルへ切り替えます。
44
46
  - **編集の完全性** — read 出力にコンテンツアンカー(`42ab|`)が付き、アンカー付き編集は現在のファイルと照合・行移動時は自動再マッピング・不一致時は最新内容と共に拒否されます。
45
47
  - **自己修正の検証ループ** — post-edit フック(tsc / eslint / テスト)を設定すると、エージェントが診断を*自ら読み*ループ内で修正します。フックが赤のままだと `done` はブロックされます。
46
- - **芝居なしの本物のゲート** — `ralplan` の合議はリポジトリを実際に読む critic サブエージェントで、`[OKAY]` 評決が永続化され `jeo approve` がそれを*要求*します。`ultragoal` は誠実に報告します(スイート1回実行はグローバル信号であり、基準ごとの合格を捏造しません)。
48
+ - **芝居のないゲート** — `ralplan` の合議はリポジトリを実際に読む critic サブエージェントで、`[OKAY]` 評決が永続化され `jeo approve` がそれを*要求*します。`ultragoal` はスイートをグローバル信号として1回実行し、基準ごとの合格を捏造しません。これはテストランナーの真正性やワークスペースの正しさを証明するものではありません。
47
49
  - **クラッシュ耐久・ローカルファースト** — 全状態は `.jeo/` 配下にアトミック書き込み、プロセス間ロック、失敗タスクマーカー + 再開時の部分編集警告。
48
50
  - **動的ステップ予算** — 直近のツール呼び出しが新規の進捗を示す間は延長され、停滞すれば要約に収束。サブエージェントは厳密なステップ契約を維持。
49
51
  - **インライン TUI** — 完了した作業は実スクロールバックに流れ(ターン中も tmux ホイール可)、エージェント実行中も通常のクエリ入力欄が表示されたまま編集できます。Ctrl+O の詳細トグル、テーマ、クリップボード画像貼り付け(Ctrl+V)、CJK/絵文字対応の幅計算。
@@ -52,9 +54,9 @@
52
54
  - **低コスト層のグレーダールーティング** — `/goal` の検証器、`critic` サブエージェントロール、固定されていない `task` ファンアウトバッチは、採点・実行対象の作業と同じフルプライスモデルに黙って乗る代わりに、デフォルトで低コストのクレデンシャル済みモデルを使用します(`resolveVerifierModel`、ブラウザの `verify` アクションについてはビジョン対応能力でフィルタされ、テキストのみの低コストモデルが添付スクリーンショットを黙って取りこぼすことがありません)。
53
55
  - **`jeo routine init`** — スケジュール/issue/PR トリガーで jeo をヘッドレス実行する(`jeo "<prompt>" -p`) GitHub Actions ワークフローを、GitHub 自身のランナー上に生成します — ラップトップは不要で、jeo 自体の内部に新しい攻撃対象領域も一切増えません(インプロセスのスケジューラや Webhook リスナーはありません)。`--dry-run` でプレビュー、`--no-pr` でデフォルトの実行ごとの PR の代わりに直接コミット。
54
56
  - **リモート監視・制御(Telegram, Discord, Slack)** — ボットを一度ペアリング(`jeo notify setup --provider telegram|discord|slack`)すれば、共有の `jeo daemon start` 1 つが、稼働中のすべてのセッションにわたってサブエージェントの状態遷移(開始 → 完了/失敗/キャンセル)ごとにメッセージを送り、人間の許可リスト(allowlist)からの `/subagents`、`/steer`、`/cancel`(Discord/Slack ではさらに `/sessions` と `/send`)を受け付けます。Telegram はフォーラムトピック・インラインキーボード・画像添付に対応し、Discord は REST + Gateway WebSocket、Slack は Web API + Socket Mode を使います。プラットフォーム別詳細ガイドおよびインストール可能なエージェントスキル(`channel-notify`)を提供します。
55
- - **ごまかしの効かないゲート** — `approve` は承認対象そのもののプランダイジェストを再検証し、`team` はレビュー済みダイジェストが変わったプランを拒否します。`done` 呼び出しは最新の検証証拠と照らして再チェックされ(後から失敗したチェックは先の合格を無効化し、修正の差し戻し 3 回の後は強い拒否)、`autopilot` ラチェットはロールバック失敗を `rollback_failed` として記録し、ステップを戻したと主張する代わりに非ゼロで停止します。
57
+ - **範囲のあるワークフローゲートであり、証明ではない** — `approve` は承認対象の正確なプランダイジェストを再検証し、`team` はレビュー後にダイジェストが変わったプランを拒否します。`done` では現在のターンの変更・検証シグナルが完了をブロックまたは格下げし、`/goal` は会話・ツール履歴に対する別の LLM 判定と決定論的な証拠ゲートを追加します。いずれもワークスペースを独立して再読み込みしません。ツールやテストの出力は証拠であって、実行ランナーや結果の信頼性を証明するものではありません。このチェックはターン終了後にバックグラウンド処理がファイルを変更しないことも保証しません。`autopilot` ratchet はロールバック失敗を `rollback_failed` と記録し、非ゼロで停止します。
56
58
  - **ターンをブロックしないセッション単位の非同期実行** — `task` ツールの実際の `tasks` 配列で独立した作業をファンアウトし、親ターンを止めません。detached サブエージェント、バックグラウンド job、行単位 monitor は後続ターンからも `subagent`/`job`/`monitor` の `list`、`inspect`、`await`、`cancel`、`tail` で制御できます。インライン TUI は各ワーカーのライブ activity を専用スロットに表示し、セッション終了または Ctrl-C ですべてのレジストリを破棄します。
57
- - **独立した検証者、実際に強制** — プランはもう architect/critic ステップをスキップできません: `PlanSchema` は未検証の変更で終わるプランを拒否し(検証対象の変更より前に置かれた verifier も無効)、`ralplan` のドラフト時点と `team`/`approve` の実行時点の両方で適用されます。すべての architect/critic 評決も実際の証拠を示す必要があり、観測された `read`/`search`/`find`/`ast_grep`/`lsp` 呼び出しがゼロなら、テキストが何を主張していても評決はブロックされます。
59
+ - **プラン critic ゲート** — プランは architect/critic の工程を省略できません。`PlanSchema` は未検証の変更で終わるプランを拒否し(変更より前の verifier は対象にならない)、`ralplan` の作成時と `team`/`approve` の実行時に適用します。critic 評決には観測されたリポジトリ読み取り・検索の証拠が必要ですが、これはレビュー可能性を支えるものであり、ワークスペースの独立検証ではありません。
58
60
  - **セーフティバウンダリの自動モデルフォールバック** — 未分類のセーフティ拒否(本物のコンテンツポリシー違反ではなく、分類器の誤検知の可能性)は、同じモデルで永遠に譲歩するのではなく、実際に別プロバイダのモデルへ切り替わるようになりました — 既存のレート制限時の高速フォールバックと同じパターンです。`Refusal (<category>)` 形式の確定的な拒否は影響を受けず、引き続きフォールバックなしでハードフェイルします。
59
61
  - **メモリ: 勝ち取った信頼** — コンセプトの検証日付は、あらゆる書き込みではなく、蒸留パスが明示的に検証済みとマークした場合にのみ記録されるようになりました。`isConceptStale` は受動的なタイムスタンプを信頼する代わりに、未検証(または30日超の陳腐化)のコンセプトを再検証が必要なものとして扱います。
60
62
  - **ダイナミックワークフロー(`eval` ツール)** — サブエージェントディスパッチの周りに実際の JS 制御フローを書けます: `task(role, taskText, context?)`、`parallel(thunks)`、`pipeline(items, ...stages)`、`log(message)` を組み合わせ、`task` の単一ステージ `tasks[]` バッチでは表現できない逐次/分岐オーケストレーションを構成します。隔離された Worker スレッドで、真のプリエンプティブなタイムアウト(同一プロセス内のレースではなく `worker.terminate()`)を伴って実行され — `bash` と同じフルプロセスの信頼度で、サンドボックスのふりはせず、同じ interview 変更ロックでゲートされます。
@@ -70,7 +72,6 @@ bun install -g jeo-code
70
72
  jeo --version
71
73
  ```
72
74
 
73
- > リネーム前のバージョンからアップグレードしますか? 旧 CLI 名だった `joc` バイナリは `scripts/install.sh` / `scripts/uninstall.sh` が自動的に削除します。手動で削除する場合: `rm -f ~/.local/bin/joc ~/.bun/bin/joc`。
74
75
 
75
76
  ## クイックスタート
76
77
 
@@ -155,7 +156,7 @@ jeo のセッション保存が有効な場合、再開にはそのセッショ
155
156
 
156
157
  ## Spec-first ワークフロー
157
158
 
158
- 要件 → プラン → 承認 → 実行 → 検証が `.jeo/state/` で繋がり、各ハンドオフに**ブロック可能な本物のゲート**があります:
159
+ 要件 → プラン → 承認 → 実行 → 検証を `.jeo/state/` で管理します。各段階のゲートは該当処理をブロックできますが、すべての引き継ぎや完了結果の正しさを保証するものではありません。
159
160
 
160
161
  ```bash
161
162
  jeo deep-interview "作りたいものを説明"
@@ -164,6 +165,8 @@ jeo approve <プランパス>
164
165
  jeo team
165
166
  jeo ultragoal
166
167
  ```
168
+ ![Interview → reviewed plan → approval → execution → verification](assets/workflow.svg)
169
+
167
170
  ```
168
171
  ┌──────────────────────┐
169
172
  │ deep-interview │ Socratic ambiguity gate · seed frozen when concrete
@@ -186,15 +189,17 @@ jeo ultragoal
186
189
  │ all tasks done
187
190
  ▼
188
191
  ┌──────────────────────┐
189
- │ ultragoal │ Honest verification — suite once, no fabrication
192
+ │ ultragoal │ 証拠に基づく報告 — スイート1回、基準の合格を捏造しない
190
193
  └──────────────────────┘
191
194
  ```
192
195
 
193
196
  - **deep-interview** — 曖昧度スコアリングのソクラテス式ループ。基準が具体的な場合のみシードを凍結(曖昧のみの基準は拒否)、シードは自身のパーサをラウンドトリップで通過する必要があります。新しいアイデアが完了済みインタビューを黙って再利用することはありません。
194
197
  - **ralplan** — ドラフトパス + **リポジトリを実際に読む critic サブエージェントゲート**: `[OKAY]`/`[ITERATE]`/`[REJECT]` 評決が強制・永続化されます。無効なプラン(スキーマ・未知ロール)は complete になりません。
195
198
  - **approve** — `team` が実行する契約(スキーマ+ロール)を検証し、永続化された `[OKAY]` 評決まで要求します。
196
- - **team** — 直列プラン実行器: プロセス間ロック、stale プランのリセット、タスク別サブエージェント契約、親側の変更監査(書き込み0件の「完了」はフラグ)、失敗マーカー + 再開時の部分編集警告。
197
- - **ultragoal** — 誠実な検証: スイートはグローバル信号として1回実行され、基準は記録されるのみで個別合格には捏造されません。
199
+ - **team** — レビュー済みのステップをプロセス間ロックの下で実行します。同じ `parallel_group` を持つ連続ステップは別々の Git worktree で並列実行し、順にマージします。タスク契約、変更監査、失敗マーカーで未完了の作業を明示します。
200
+ - **ultragoal** — 証拠に基づく報告: スイートはグローバル信号として1回実行され、基準ごとの合格は捏造されません。テストランナーが本物か、ワークスペースが目標を満たすかを証明するものではありません。
201
+
202
+ `/goal` は会話と記録されたツール履歴を別の LLM 呼び出しで判定し、現在ターンの変更と新しい検証シ그ナルを決定的にゲートします。ワークスペースを再読したりテスト出力の真正性を確認したりはせず、launch の完了ゲートは実行中のバックグラウンドジョブも検査しません。
198
203
 
199
204
  ## 検証フック(自己修正)
200
205
 
@@ -417,11 +422,11 @@ CI は `.github/workflows/npm-publish.yml` で公開します — GitHub リリ
417
422
  ## 変更履歴 (Changelog)
418
423
 
419
424
  <!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
425
+ - **[0.12.10]** (2026-11-02)
426
+ - **[0.12.11]** (2026-11-02)
420
427
  - **[0.12.9]** (2026-11-02)
421
428
  - **[0.12.7]** (2026-10-18) — Repair desktop screenshot vision feedback, macOS scrolling, complete drag gestures, and keyboard normalization.
422
429
  - **[0.12.6]** (2026-10-17) — Preserve OpenAI subscription authentication behind configured proxies, isolate account catalogs, and give provider-specific recovery instructions while retaining Antigravity OAuth calls.
423
- - **[0.12.5]** (2026-10-17) — Antigravity and Kimi provider support in interactive setup, Kimi live model cache rehydration, immediate discovery caching on provider probing.
424
- - **[0.12.4]** (2026-10-17) — Refresh Antigravity provider (`antigravity/*`) account catalogs with `antigravity/hub/2.23.1` so entitled Gemini 4 Argon and Gemini 3.8 Flash tiers appear directly in `/model provider antigravity`.
425
430
 
426
431
  See [CHANGELOG.md](CHANGELOG.md) for the full history.
427
432
  <!-- CHANGELOG:END -->
package/README.ko.md CHANGED
@@ -1,12 +1,20 @@
1
1
  <p align="center">
2
- <img src="assets/hero.png" alt="jeo-code 자율 코딩 에이전트 히어로 일러스트" width="100%" />
2
+ <img src="assets/hero.png" alt="빛나는 판타지 풍경 속 jeo-code 붉은 가재 마법사와 봉제 인형 친구들" width="100%" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">jeo-code (jeo)</h1>
6
6
 
7
7
  <p align="center">
8
8
  <strong>Encode intention. Decode software.</strong><br />
9
- Bun 기반 AI 코딩 에이전트 CLI — 인터뷰, 검토된 플랜, 게이트된 실행, 정직한 검증.
9
+ Bun 기반 AI 코딩 에이전트 CLI — 인터뷰, 검토된 플랜, 게이트된 실행, 증거 기반 점검.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="#주요-기능-overview">주요 기능</a> ·
14
+ <a href="#핵심-워크플로우">핵심 워크플로우</a> ·
15
+ <a href="#슬래시-명령">슬래시 명령</a> ·
16
+ <a href="#cli-명령">CLI 명령</a> ·
17
+ <a href="#빠른-시작">빠른 시작</a>
10
18
  </p>
11
19
 
12
20
  <p align="center">
@@ -32,18 +40,47 @@
32
40
 
33
41
  - [양방향 메신저 게이트웨이 (Discord, Telegram, Slack)](docs/integrations/messenger.md)
34
42
 
43
+ **메신저 게이트웨이** — `jeo messenger`는 알림 데몬과 별도로 허용된 Discord·Telegram·Slack 대화를 지원합니다. 로컬 도구는 기본적으로 꺼져 있으며, `computer`를 명시적으로 허용하면 공유 호스트 데스크톱에, `bash`를 허용하면 셸에 접근합니다. 샌드박스가 아닙니다. [메신저 가이드](docs/integrations/messenger.md)를 참고하세요.
44
+
35
45
  📖 **[사용 가이드](docs/usage-guide.md)** — 설치, TUI 조작(↑ 이전 쿼리, Ctrl+O, `!` 셸), 슬래시 명령, `/resume`, 스펙 우선 워크플로를 데모 영상과 함께 설명합니다.
36
46
 
37
47
  <video src="https://raw.githubusercontent.com/akillness/jeo-code/main/docs/jeo-code-promo.mp4" controls muted playsinline width="100%"></video>
38
48
 
39
49
  > 인라인 재생이 안 되면 ▶ [데모 영상 재생/다운로드](docs/jeo-code-promo.mp4).
40
50
 
41
- ## 하이라이트
51
+ ## 주요 기능 (Overview)
52
+
53
+ jeo-code는 단순한 코드 완성을 넘어 실제 엔지니어링 사이클(인터뷰 → 계획 → 승인 → 서브에이전트 병렬/직렬 실행 → 자체 검증)을 안전하게 오케스트레이션하는 **로컬 우선 AI 코딩 에이전트 CLI**입니다.
54
+
55
+ ### 1. 지능형 멀티 프로바이더 & 프롬프트 라우팅
56
+ - **통합 모델 게이트웨이**: Anthropic, OpenAI(+Codex), Gemini, Antigravity, Ollama, LM Studio 및 20여 종의 OpenAI/Anthropic 호환 클라우드 지원
57
+ - **커스텀 프록시 지원**: 자체 호스팅 vLLM, SGLang, LiteLLM 프록시, 기업 사내 게이트웨이를 정식 프로바이더(`jeo provider add`)로 즉시 등록
58
+ - **비용/크레덴셜 인식 라우팅**: 매 턴마다 작업 복잡도를 분석하여 등록된 활성 자격증명 내에서 최적의 모델/티어로 자동 라우팅 (`/route`)
59
+ - **지능형 폴백**: 레이트 리밋(429), 안전 분류기 오탐 거부 시 동일 티어의 대체 프로바이더 모델로 무중단 자동 전환
60
+
61
+ ### 2. 코드 편집 무결성 및 자기수정 루프
62
+ - **콘텐츠 앵커 편집 (Anchor Edit)**: `read` 결과에 고유 콘텐츠 앵커(`42ab|`)가 부여되며, 파일 변경 및 줄 이동 시 자동 대조 및 거부 처리하여 코드 오염 방지
63
+ - **검증 훅 (Verification Hooks)**: 파일 수정 직후 post-edit 훅(타입체크 `tsc`, 린트 `eslint`, 단위 테스트)을 실행하여 에이전트가 에러를 직접 진단하고 루프 내에서 자체 수정
64
+ - **엄격한 Done 게이트**: 수정 사항이 남아있거나 검증 테스트가 누락/실패된 상태에서는 `done` 완료 호출을 차단
65
+
66
+ ### 3. 멀티 에이전트 오케스트레이션 & 비동기 작업 관리
67
+ - **서브에이전트 역할 분담**: `planner`, `architect`, `executor`, `critic` 등 세분화된 역할군 모델 및 추론 예산 독립 구성 (`/agents`)
68
+ - **비동기 팬아웃 (`task` / `eval`)**: 턴을 블로킹하지 않고 독립 작업을 병렬로 분산 실행하며, 백그라운드 job/monitor를 통해 실시간 상태 추적
69
+ - **저비용 채점 라우팅**: 검증기(`/goal`), 비평기(`critic`), 배치 팬아웃 작업은 저비용 모델로 자동 라우팅하여 토큰 비용 최적화
70
+
71
+ ### 4. 확장된 에이전트 기능 및 원격 제어
72
+ - **헤드리스 브라우저 도구**: Playwright Chromium 기반의 브라우저 상호작용(`open`, `act`, `observe`) 및 비전 모델을 활용한 자동 시각 QA 루프 완결
73
+ - **원격 알림 & 제어 데몬 (Telegram, Discord, Slack)**: 공유 데몬(`jeo daemon start`)을 통해 서브에이전트 상태 변화를 모바일/메신저로 실시간 수신하고, 양방향 명령(`/steer`, `/cancel`, `/sessions`) 전달
74
+ - **데스크톱 자동화 (Computer Use)**: 엄격한 킬스위치와 감독 하에 스크린샷 캡처, 클릭, 타이핑 등 GUI 조작 지원 (`/computer`)
75
+
76
+ ---
77
+
78
+ ## 핵심 하이라이트
42
79
 
43
80
  - **멀티 프로바이더, 단일 루프** — Anthropic / OpenAI(+Codex) / Gemini / Antigravity / Ollama / LM Studio, 그리고 OpenAI·Anthropic 호환 클라우드 20종 이상(Groq, DeepSeek, Mistral, OpenRouter, xAI, Kimi, z.ai 등)까지 균일한 JSON 도구 루프 하나로 — **여기에 직접 등록한 엔드포인트까지**: `jeo provider add --id my-proxy --base-url https://…` (또는 `--preset litellm|vllm|sglang|azure-openai|…`)로 LiteLLM 프록시·자체 호스팅 vLLM·사내 Anthropic 게이트웨이가 내장 `openai` 프로바이더를 가로채지 않고 자기만의 라우팅 접두사·모델 목록·자격증명을 갖습니다. OAuth 로그인은 입력창에서 바로(`/provider login`), 모델 선택은 모두 새 기본값으로 영속되며, 프롬프트 라우팅은 실제 사용 가능한 자격증명 경로만 자동 선택합니다: Gemini OAuth는 provider-qualified `antigravity/*` 에이전트 세트를 **계정이 현재 실제로 제공하는 그대로** 사용하고(실시간 디스커버리 — 예: Gemini 3.6 Flash 등급, Gemini 3.1 Pro, Claude Sonnet/Opus 4.6; 비채팅·폐기된 id는 걸러내며, 목록이 비어 있어도 정적 카탈로그로 대체하지 않음), `GEMINI_API_KEY`가 필요한 public `google/gemini-*` 행은 절대 고르지 않습니다. 설정된 라우트가 준비되지 않은 프로바이더를 가리키면 jeo는 기본값으로 폴백하기 전에 동급 티어의 자격증명 있는 모델로 전환합니다.
44
81
  - **편집 무결성** — read 출력에 콘텐츠 앵커(`42ab|`)가 붙고, 앵커 편집은 현재 파일과 대조 검증·줄 이동 시 자동 재매핑·불일치 시 최신 내용과 함께 거부 — 파일을 오염시키지 않습니다.
45
82
  - **자기수정 검증 루프** — post-edit 훅(tsc / eslint / 테스트)을 설정하면 에이전트가 진단을 *직접 읽고* 루프 안에서 수정합니다. 훅이 빨간 상태면 `done`이 차단됩니다.
46
- - **연극 없는 진짜 게이트** — `ralplan` 합의는 실제 저장소를 읽는 critic 서브에이전트이며 `[OKAY]` 평결이 영속되고 `jeo approve`가 이를 *요구*합니다. `ultragoal`은 정직하게 보고합니다(스위트 1회 실행은 전역 신호일 뿐, 기준별 통과를 조작하지 않음).
83
+ - **연극 없는 게이트** — `ralplan` 합의는 실제 저장소를 읽는 critic 서브에이전트이며 `[OKAY]` 평결이 영속되고 `jeo approve`가 이를 *요구*합니다. `ultragoal`은 스위트를 전역 신호로 1회 실행하며 기준별 통과 여부는 조작하지 않습니다. 이는 테스트 러너의 진위나 워크스페이스 정확성을 증명하지 않습니다.
47
84
  - **크래시 내구·로컬 우선** — 모든 상태는 `.jeo/` 아래 원자적 쓰기, 크로스 프로세스 런 락, 실패 태스크 마커 + 재개 시 부분 편집 경고.
48
85
  - **동적 스텝 버짓** — 최근 도구 호출이 새로운 진전을 보이는 동안 연장되고, 정체되면 정리 요약으로 수렴. 서브에이전트는 정확한 스텝 계약 유지.
49
86
  - **인라인 TUI** — 완료된 작업은 실제 스크롤백으로 흘러가고(턴 중에도 tmux 휠 스크롤 가능), 에이전트가 실행 중이어도 기존 쿼리 입력창이 그대로 보이며 편집됩니다. Ctrl+O 상세 토글, 테마, 클립보드 이미지 붙여넣기(Ctrl+V), CJK/이모지 안전 폭 계산.
@@ -52,7 +89,7 @@
52
89
  - **저비용 등급 채점 라우팅** — `/goal` 검증기, `critic` 서브에이전트 역할, 그리고 고정되지 않은 `task` 팬아웃 배치는 채점·실행 대상인 작업과 같은 풀프라이스 모델에 조용히 편승하는 대신 기본적으로 저비용 크레덴셜 모델을 사용합니다(`resolveVerifierModel`, 브라우저 `verify` 액션에 대해서는 비전 능력으로 필터링되어 텍스트 전용 저비용 모델이 첨부된 스크린샷을 조용히 누락시키지 않도록 합니다).
53
90
  - **`jeo routine init`** — 스케줄/이슈/PR 트리거에서 jeo를 헤드리스로 실행하는(`jeo "<prompt>" -p`) GitHub Actions 워크플로를 생성합니다, GitHub 자체 러너 위에서 — 노트북이 필요 없고, jeo 내부에 새로운 공격 표면도 전혀 추가되지 않습니다(인프로세스 스케줄러도 웹훅 리스너도 없음). `--dry-run`으로 미리보기, `--no-pr`로 기본값인 실행당 PR 대신 직접 커밋.
54
91
  - **원격 모니터링 & 제어(Telegram, Discord, Slack)** — 봇을 한 번 페어링(`jeo notify setup --provider telegram|discord|slack`)하면, 공유 `jeo daemon start` 하나가 모든 활성 세션에 걸쳐 서브에이전트 상태 전환(시작 → 완료/실패/취소)마다 메시지를 보내고, 사람 allowlist로부터 `/subagents`, `/steer`, `/cancel`(Discord/Slack에서는 `/sessions`, `/send` 추가)을 되받습니다. Telegram은 포럼 토픽·인라인 키보드·이미지 첨부를 더하고, Discord는 REST + Gateway WebSocket, Slack은 Web API + Socket Mode를 사용합니다. 플랫폼별 상세 가이드 및 설치 가능한 에이전트 스킬(`channel-notify`)을 제공합니다.
55
- - **말로 넘길 수 없는 게이트** — `approve`는 승인 대상인 바로 그 플랜 다이제스트를 재검증하고, `team`은 리뷰된 다이제스트가 바뀐 플랜을 거부합니다. `done` 호출은 최신 검증 증거와 대조해 재확인되며(나중에 실패한 검사가 앞선 통과를 무효화하고, 교정 반송 3회 뒤에는 하드 거부), `autopilot` ratchet은 실패한 롤백을 `rollback_failed`로 기록하고 되돌린 스텝이라고 주장하는 대신 0이 아닌 코드로 중단합니다.
92
+ - **범위가 있는 워크플로 게이트, 증명은 아님** — `approve`는 승인 대상 플랜의 정확한 다이제스트를 재검증하고 `team`은 검토 후 다이제스트가 바뀐 플랜을 거부합니다. `done`에서는 현재 턴의 변경·검증 신호가 완료를 차단하거나 낮출 수 있고, `/goal`은 대화/도구 이력에 대한 별도 LLM 판단과 결정론적 증거 게이트를 더합니다. 어느 쪽도 워크스페이스를 독립적으로 다시 읽지 않으며, 도구·테스트 출력은 증거이지 실행기나 결과가 신뢰 가능하다는 증명은 아닙니다. 이 검사는 턴이 끝난 뒤 백그라운드 작업이 파일을 바꾸지 않는다는 보장도 아닙니다. `autopilot` ratchet은 실패한 롤백을 `rollback_failed`로 기록하고 0이 아닌 코드로 중단합니다.
56
93
  - **턴을 막지 않는 세션 범위 비동기 실행** — `task` 도구의 실제 `tasks` 배열로 독립 작업을 팬아웃해 부모 턴을 막지 않습니다. detached 서브에이전트, 백그라운드 job, 줄 단위 monitor는 이후 턴에서도 `subagent`/`job`/`monitor`의 `list`, `inspect`, `await`, `cancel`, `tail`로 계속 제어할 수 있습니다. 인라인 TUI는 각 워커의 실시간 activity를 별도 슬롯에 표시하고 세션 종료 또는 Ctrl-C에서 모든 레지스트리를 정리합니다.
57
94
  - **실제로 강제되는 독립 검증자** — 플랜은 이제 architect/critic 단계를 건너뛸 수 없습니다: `PlanSchema`는 미검증 변이로 끝나는 모든 플랜을 거부하며(검증 대상 변이보다 앞에 배치된 검증자도 인정하지 않음), `ralplan` 드래프트 시점과 `team`/`approve` 실행 시점 양쪽 모두에 적용됩니다. 모든 architect/critic 평결도 실제 증거를 제시해야 하며, 관찰된 `read`/`search`/`find`/`ast_grep`/`lsp` 호출이 0건이면 텍스트가 무엇을 주장하든 평결이 차단됩니다.
58
95
  - **안전 경계 자동 모델 폴백** — 미분류 안전 거부(실제 콘텐츠 정책 위반이 아니라 분류기의 오탐일 가능성)가 발생하면 이제 같은 모델에서 영원히 물러서는 대신 실제로 다른 프로바이더의 모델로 전환합니다 — 기존 rate-limit 빠른 폴백과 동일한 방식입니다. `Refusal (<category>)` 형태의 결정론적 거부는 영향받지 않고 여전히 폴백 없이 하드 실패합니다.
@@ -71,7 +108,6 @@ bun install -g jeo-code
71
108
  jeo --version
72
109
  ```
73
110
 
74
- > 이름 변경 이전 버전에서 업그레이드하시나요? 이전 CLI 이름이었던 `joc` 바이너리는 이제 `scripts/install.sh` / `scripts/uninstall.sh`가 자동으로 제거합니다. 수동 제거: `rm -f ~/.local/bin/joc ~/.bun/bin/joc`.
75
111
 
76
112
  ## 빠른 시작
77
113
 
@@ -153,48 +189,71 @@ jeo 세션 저장이 켜져 있으면 재개 시 해당 세션에 저장된 CLI
153
189
  | `jeo session list\|attach\|rm` · `jeo export [id]` · `jeo chat "<msg>"` | tmux 세션 관리 · 트랜스크립트 내보내기 · 도구 없는 스트리밍 채팅 |
154
190
  | `jeo update [--check]` · `jeo whats-new` · `jeo memory-migrate` | npm 자가 업데이트 · 번들 릴리스 노트 · 레거시 `MEMORY.md` → OKF 번들 |
155
191
 
156
- ## Spec-first 워크플로
192
+ ## 핵심 워크플로우 (Core Workflows)
157
193
 
158
- 요구사항 → 플랜 → 승인 → 실행 → 검증이 `.jeo/state/`로 이어지며, 모든 핸드오프에 **차단 가능한 진짜 게이트**가 있습니다:
194
+ jeo-code는 작업의 규모와 신뢰 수준에 따라 3가지 주요 워크플로우를 제공합니다.
159
195
 
196
+ ### 워크플로우 1: 대화형 원샷 및 빠른 개발 루프 (Interactive / One-shot)
197
+ 일상적인 버그 수정, 함수 작성, 리팩토링에 사용하는 가장 빠른 워크플로우입니다.
160
198
  ```bash
161
- jeo deep-interview "만들고 싶은 것을 설명"
162
- jeo ralplan
163
- jeo approve <플랜경로>
164
- jeo team
165
- jeo ultragoal
199
+ jeo # 대화형 TUI 세션 시작
200
+ jeo "로그인 API에 rate limiting 적용해줘" # 원샷 자동 실행
166
201
  ```
202
+ - **흐름**: 사용자 요청 → 컨텍스트 검색(`search`, `find`, `read`) → 앵커 편집(`edit`, `write`) → 검증 훅(`post-turn`) 자동 실행 → 자체 수정 → `done`
203
+
204
+ ### 워크플로우 2: Spec-First 단계별 엔지니어링 파이프라인 (권장)
205
+ 대규모 기능 개발, 아키텍처 개편 시 모호성을 사전에 제거하고 검증된 계획대로 실행하는 엔터프라이즈급 워크플로우입니다.
206
+
207
+ 요구사항 → 계획 수립 → 계획 검토/승인 → 직렬/병렬 실행 → 종합 검증이 `.jeo/state/` 상태 파일로 안전하게 연결됩니다.
208
+
209
+ ```bash
210
+ jeo deep-interview "새로운 결제 웹훅 시스템 구축" # 1. 요구사항 소크라테스 인터뷰
211
+ jeo ralplan # 2. 비평가(Critic) 검증 기반 계획 수립
212
+ jeo approve .jeo/state/plan-*.json # 3. 계획 다이제스트 해시 무결성 검증 및 승인
213
+ jeo team # 4. 역할별 서브에이전트 파이프라인 실행
214
+ jeo ultragoal # 5. 최종 증거 기반 종합 검증 및 보고
215
+ ```
216
+ ![Interview → reviewed plan → approval → execution → verification](assets/workflow.svg)
217
+
167
218
  ```
168
219
  ┌──────────────────────┐
169
- │ deep-interview │ Socratic ambiguity gate · seed frozen when concrete
220
+ │ deep-interview │ 모호성 제거 인터뷰 (Socratic Ambiguity Gate) · 구체화 시 시드 고정
170
221
  └──────────┬───────────┘
171
222
  │ .jeo/state/<seed>.json
172
223
  ▼
173
224
  ┌──────────────────────┐
174
- │ ralplan │ Draft + repo-grounded critic → [OKAY] persisted
225
+ │ ralplan │ 초안 작성 + 실제 저장소 기반 Critic 검증 → [OKAY] 평결 영속화
175
226
  └──────────┬───────────┘
176
- │ requires [OKAY] verdict
227
+ │ [OKAY] 평결 및 다이제스트 일치 필수
177
228
  ▼
178
229
  ┌──────────────────────┐
179
- │ approve │ Schema + roles + [OKAY] — unlocks execution
230
+ │ approve │ 스키마 검증 + 역할 배정 + [OKAY] 승인 확인 → 실행 락 해제
180
231
  └──────────┬───────────┘
181
232
  │
182
233
  ▼
183
234
  ┌──────────────────────┐
184
- │ team │ Serial executor · run lock · mutation audit
235
+ │ team │ 직렬/병렬 서브에이전트 실행기 · 프로세스 락 · 부모 변이 감사
185
236
  └──────────┬───────────┘
186
- │ all tasks done
237
+ │ 모든 하위 태스크 완료 시
187
238
  ▼
188
239
  ┌──────────────────────┐
189
- │ ultragoal │ Honest verification — suite once, no fabrication
240
+ │ ultragoal │ 증거 기반 종합 검증 — 스위트 실행 및 통과 기준 정직한 보고
190
241
  └──────────────────────┘
191
242
  ```
192
243
 
193
- - **deep-interview** — 모호성 스코어링 기반 소크라테스 루프. 기준이 구체적일 때만 시드 동결(vague-only 기준은 거부), 시드는 자체 파서 라운드트립을 통과해야 합니다. 새 아이디어가 완료된 인터뷰를 조용히 재사용하지 않습니다.
194
- - **ralplan** — 드래프팅 패스 + **저장소를 직접 읽는 critic 서브에이전트 게이트**: `[OKAY]`/`[ITERATE]`/`[REJECT]` 평결이 강제·영속됩니다. 무효 플랜(스키마·미지 역할)은 complete로 마킹되지 않습니다.
195
- - **approve** — `team`이 실행하는 계약(스키마+역할)을 검증하고 영속된 `[OKAY]` 평결까지 요구합니다.
196
- - **team** — 직렬 플랜 실행기: 크로스 프로세스 런 락, stale 플랜 리셋, 태스크별 서브에이전트 계약, 부모측 변이 감사(쓰기 0건의 "완료"는 플래그), 실패 마커 + 재개 시 부분 편집 경고.
197
- - **ultragoal** — 정직한 검증: 스위트는 전역 신호로 1회 실행, 기준은 기록될 뿐 개별 통과로 조작되지 않습니다.
244
+ #### Spec-First 각 단계별 역할 및 게이트
245
+ - **`deep-interview`**: 소크라테스식 대화로 모호성을 평가하고 명확한 기준이 도출될 때까지 요구사항을 구체화(seed 고정). 새 아이디어가 완료된 인터뷰를 조용히 재사용하지 않습니다.
246
+ - **`ralplan`**: 초안 작성 + 저장소 실코드를 직접 읽는 `critic` 서브에이전트 게이트 통과(`[OKAY]` 평결 강제 영속화). 무효 플랜(스키마, 미지 역할)은 complete로 마킹되지 않습니다.
247
+ - **`approve`**: 계획 스키마, 서브에이전트 역할, 다이제스트 해시 무결성 및 `[OKAY]` 평결 검증 후 실행 승인.
248
+ - **`team`**: 직렬/병렬 플랜 실행기 (크로스 프로세스 런 락, Stale 상태 리셋, 파일 쓰기 변이 감사, 실패 시 롤백/부분 편집 경고. 같은 `parallel_group`의 연속된 단계는 별도 Git 워크트리에서 병렬 실행하고 순서대로 병합).
249
+ - **`ultragoal`**: 완료 후 전체 검증 스위트를 1회 실행하여 기준 통과 여부를 증거 기반으로 정직하게 보고.
250
+
251
+ ### 워크플로우 3: 자율 빌드 및 점진적 루프 (Autopilot & Routine)
252
+ 사람의 지속적인 개입 없이 벤치마크나 점수 기반으로 점진적 개선을 시도하거나 CI/CD에서 무인 실행할 때 사용합니다.
253
+ - **`jeo autopilot`**: 점수 래칫(Score Ratchet) 기반으로 테스트 점수가 향상될 때만 커밋을 유지(`keep`)하고, 퇴보하면 안전하게 롤백(`revert`)하는 자율 탐색 루프
254
+ - **`jeo routine init`**: GitHub Actions 워크플로를 생성하여 cron 일정이나 GitHub Issue/PR 생성 시 jeo를 헤드리스(`-p`)로 자동 실행하고 완료 시 PR 자동 생성
255
+
256
+ `/goal`은 대화와 기록된 도구 이력을 별도 LLM 호출로 판단하고, 현재 턴의 변경·최신 검증 증거를 결정론적으로 게이트합니다. 워크스페이스를 다시 읽거나 테스트 출력의 진위를 확인하지 않으며, launch 완료 게이트는 진행 중인 백그라운드 작업도 검사하지 않습니다.
198
257
 
199
258
  ## 검증 훅 (자기수정)
200
259
 
@@ -418,11 +477,11 @@ CI는 `.github/workflows/npm-publish.yml`로 배포합니다 — GitHub 릴리
418
477
  ## 변경 이력 (Changelog)
419
478
 
420
479
  <!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
480
+ - **[0.12.10]** (2026-11-02)
481
+ - **[0.12.11]** (2026-11-02)
421
482
  - **[0.12.9]** (2026-11-02)
422
483
  - **[0.12.7]** (2026-10-18) — Repair desktop screenshot vision feedback, macOS scrolling, complete drag gestures, and keyboard normalization.
423
484
  - **[0.12.6]** (2026-10-17) — Preserve OpenAI subscription authentication behind configured proxies, isolate account catalogs, and give provider-specific recovery instructions while retaining Antigravity OAuth calls.
424
- - **[0.12.5]** (2026-10-17) — Antigravity and Kimi provider support in interactive setup, Kimi live model cache rehydration, immediate discovery caching on provider probing.
425
- - **[0.12.4]** (2026-10-17) — Refresh Antigravity provider (`antigravity/*`) account catalogs with `antigravity/hub/2.23.1` so entitled Gemini 4 Argon and Gemini 3.8 Flash tiers appear directly in `/model provider antigravity`.
426
485
 
427
486
  See [CHANGELOG.md](CHANGELOG.md) for the full history.
428
487
  <!-- CHANGELOG:END -->
package/README.md CHANGED
@@ -1,12 +1,20 @@
1
1
  <p align="center">
2
- <img src="assets/hero.png" alt="jeo-code autonomous coding-agent hero illustration" width="100%" />
2
+ <img src="assets/hero.png" alt="The jeo-code red crayfish wizard and plush companions on a glowing fantasy landscape" width="100%" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">jeo-code (jeo)</h1>
6
6
 
7
7
  <p align="center">
8
8
  <strong>Encode intention. Decode software.</strong><br />
9
- A Bun-based AI coding-agent CLI — interviews, reviewed plans, gated execution, honest verification.
9
+ A Bun-based AI coding-agent CLI — interviews, reviewed plans, gated execution, evidence-aware checks.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="#key-features-overview">Key Features</a> ·
14
+ <a href="#core-workflows">Core Workflows</a> ·
15
+ <a href="#slash-commands">Slash Commands</a> ·
16
+ <a href="#cli-commands">CLI Commands</a> ·
17
+ <a href="#quick-start">Quick Start</a>
10
18
  </p>
11
19
 
12
20
  <p align="center">
@@ -34,12 +42,41 @@ Run `jeo` inside a repository and it reads files, edits them, runs commands, and
34
42
 
35
43
  - [Bidirectional messenger gateway (Discord, Telegram, Slack)](docs/integrations/messenger.md)
36
44
 
45
+ **Messenger gateway** — `jeo messenger` supports allowlisted Discord, Telegram, and Slack conversations separately from the notification daemon. Local tools are off by default; explicitly enabling `computer` grants access to the shared host desktop, and enabling `bash` grants shell authority. Neither is sandboxed. See the [messenger guide](docs/integrations/messenger.md).
46
+
37
47
  📖 **[Usage guide](docs/usage-guide.md)** — install, TUI controls (↑ recall, Ctrl+O, `!` shell), slash commands, `/resume`, and the spec-first workflow, with a demo video.
38
48
 
39
49
  <video src="https://raw.githubusercontent.com/akillness/jeo-code/main/docs/jeo-code-promo.mp4" controls muted playsinline width="100%"></video>
40
50
 
41
51
  > Demo not playing inline? ▶ [Play / download the demo video](docs/jeo-code-promo.mp4).
42
52
 
53
+ ## Key Features (Overview)
54
+
55
+ jeo-code is a **local-first AI coding agent CLI** designed to safely drive entire software engineering lifecycles — from ambiguity-resolving interviews and reviewed plans to concurrent subagent execution and self-healing verification loops.
56
+
57
+ ### 1. Intelligent Multi-Provider & Cost-Aware Routing
58
+ - **Unified Model Loop**: Seamless JSON tool-calling across Anthropic, OpenAI (+Codex), Gemini, Antigravity, Ollama, LM Studio, and 20+ OpenAI/Anthropic-compatible clouds.
59
+ - **Custom Endpoint Proxies**: Register private vLLM boxes, SGLang, corporate LiteLLM gateways, or local setups (`jeo provider add`) without hijacking default provider configs.
60
+ - **Turn-by-Turn Prompt Routing**: Automatically evaluates prompt complexity to route requests to the most cost-effective tier supported by active credentials (`/route`).
61
+ - **Fast Provider Failover**: Smoothly pivots to equivalent-tier models upon rate limits (429), timeouts, or safety filter false-positives.
62
+
63
+ ### 2. Surgical Code Editing & Self-Correcting Verification
64
+ - **Content-Anchored Edits**: Read outputs carry unique anchors (`42ab|`); line-anchored edits prevent drift, detect out-of-order changes, and reject stale modifications before file corruption can occur.
65
+ - **Automated Verification Hooks**: Executes configured post-edit test commands (`tsc`, `eslint`, test suites) and feeds diagnostics directly back into the agent loop for immediate in-flight repairs.
66
+ - **Deterministic Completion Gates**: Enforces proof of execution; `done` cannot be called while mutations remain unverified or verification hooks are failing.
67
+
68
+ ### 3. Multi-Agent Orchestration & Asynchronous Fan-Out
69
+ - **Specialized Roles**: Independently configure models, reasoning budgets, and step limits for `planner`, `architect`, `executor`, and `critic` roles (`/agents`).
70
+ - **Async Subagent Fan-Out (`task` & `eval`)**: Concurrently dispatch background tasks without blocking parent interactive turns, monitorable via `/jobs` and the inline TUI.
71
+ - **Economical Grader Allocation**: Subagents assigned to review (`critic`), verification (`/goal`), and batch jobs default to low-cost credentialed models.
72
+
73
+ ### 4. Advanced Interaction, Desktop Automation & Remote Ops
74
+ - **Headless Browser Tool**: First-class Playwright Chromium automation (`open`, `act`, `observe`) paired with vision-capable models to perform visual QA and element-level verification.
75
+ - **Remote Bot Daemon (Telegram, Discord, Slack)**: Background daemon (`jeo daemon start`) broadcasts subagent lifecycle transitions and accepts authorized steering commands (`/steer`, `/cancel`, `/sessions`).
76
+ - **Fail-Closed Computer Use**: Opt-in desktop GUI automation under explicit heartbeat supervisors and kill-switches (`/computer`).
77
+
78
+ ---
79
+
43
80
  ## Highlights
44
81
 
45
82
  - **Prompt routing (cost-aware, credential-aware)** — every turn can auto-route to a tier-appropriate model among only the providers your configured credentials actually serve (`/route [status|on|off|why|history]`), with a live equivalent-model fallback whenever a routed provider is rate-limited, unauthenticated, unreachable, or silently times out — see `/route why` for the last decision, `/route history` for the recent ones.
@@ -57,9 +94,9 @@ Run `jeo` inside a repository and it reads files, edits them, runs commands, and
57
94
  - **Cheap-tier grader routing** — the `/goal` verifier, the `critic` subagent role, and unpinned `task` fan-out batches default to a cheap credentialed model instead of silently riding the same full-price model as the work they're grading/executing (`resolveVerifierModel`, vision-capability-filtered for the browser `verify` action so a text-only cheap model never silently drops an attached screenshot).
58
95
  - **`jeo routine init`** — generates a GitHub Actions workflow that runs jeo headlessly (`jeo "<prompt>" -p`) on a schedule/issue/PR trigger, on GitHub's own runners — no laptop required, and zero new attack surface inside jeo itself (no in-process scheduler or webhook listener). `--dry-run` to preview, `--no-pr` for a direct commit instead of the default PR-per-run.
59
96
  - **Remote monitoring & control (Telegram, Discord, Slack)** — pair a bot once (`jeo notify setup --provider telegram|discord|slack`), then one shared `jeo daemon start` pushes a message on every subagent state edge (started → done/failed/cancelled) across every live session and accepts `/subagents`, `/steer`, `/cancel` (plus `/sessions` and `/send` on Discord/Slack) back from a human allowlist. Telegram adds forum topics, inline keyboards, and image attachments; Discord uses REST + Gateway WebSocket; Slack uses Web API + Socket Mode. Dedicated standalone setup guides and an installable Agent Skill (`channel-notify`) are included.
60
- - **Gates that cannot be talked around** — `approve` re-validates the exact plan digest it is approving and `team` refuses a plan whose reviewed digest changed; a `done` call is re-checked against the latest verification evidence (a later failed check invalidates an earlier pass, three correction bounces then a hard rejection); the `autopilot` ratchet records a failed rollback as `rollback_failed` and halts non-zero instead of claiming a reverted step.
97
+ - **Bounded workflow gates, not proof** — `approve` re-validates the exact plan digest it approves and `team` rejects a plan whose reviewed digest changed. At `done`, current-turn mutation and verification signals can block or downgrade completion; `/goal` adds a separate LLM judgment over conversation/tool history plus deterministic evidence gates. Neither mechanism independently re-reads the workspace, and tool/test output is evidence, not proof that the runner or result is trustworthy. These checks do not establish that background work cannot mutate files after the turn; the autopilot ratchet records a failed rollback as `rollback_failed` and halts non-zero.
61
98
  - **Session-scoped async execution** — fan out independent work through the `task` tool's real `tasks` array without blocking the parent turn; detached subagents, background jobs, and line monitors remain controllable from later turns with `subagent`/`job`/`monitor` actions (`list`, `inspect`, `await`, `cancel`, `tail`). The inline TUI keeps each worker's live activity in its own slot and tears down every registry on session exit or Ctrl-C.
62
- - **Independent verifier, actually enforced** — a plan can no longer skip its architect/critic step: `PlanSchema` rejects any plan that ends with an unverified mutation (a verifier placed BEFORE the mutation it should check doesn't count either), at both `ralplan` draft time and `team`/`approve` execution time. Every architect/critic verdict must also show real evidence — zero observed `read`/`search`/`find`/`ast_grep`/`lsp` calls blocks the verdict regardless of what the text claims.
99
+ - **Plan critic gate** — a plan cannot skip its architect/critic step: `PlanSchema` rejects plans ending with an unverified mutation (a verifier before the mutation does not count), at `ralplan` draft time and `team`/`approve` execution time. Critic verdicts require observed repository-read/search evidence; that supports reviewability, not independent validation of the workspace.
63
100
  - **Safety-boundary automatic model fallback** — an uncategorized safety refusal (a possible classifier false positive, not a genuine content-policy hit) now switches to a genuinely different-provider model instead of backing off forever on the same one — mirrors the existing rate-limit fast-fallback. A `Refusal (<category>)`-shaped deterministic hit is untouched and still hard-fails with zero fallback.
64
101
  - **Memory: earned confidence** — a concept's verification date is now written only when a distillation pass is explicitly marked verified, not on every write; `isConceptStale` treats an unverified (or >30-day-stale) concept as needing re-verification instead of trusting a passive timestamp.
65
102
  - **Dynamic Workflows (`eval` tool)** — write real JS control flow around subagent dispatch: `task(role, taskText, context?)`, `parallel(thunks)`, `pipeline(items, ...stages)`, and `log(message)`, composing sequential/branching orchestration that `task`'s single-stage `tasks[]` batch can't express. Runs in an isolated Worker thread with a genuinely preemptive timeout (`worker.terminate()`, not a same-process race) — same full-process trust as `bash`, no sandbox pretense, gated by the same interview mutation lock.
@@ -76,7 +113,6 @@ bun install -g jeo-code
76
113
  jeo --version
77
114
  ```
78
115
 
79
- > Upgrading from a pre-rename install? A stale `joc` binary (this project's old CLI name) is now auto-removed by `scripts/install.sh` / `scripts/uninstall.sh`; to remove it manually: `rm -f ~/.local/bin/joc ~/.bun/bin/joc`.
80
116
 
81
117
  ## Quick start
82
118
 
@@ -158,17 +194,31 @@ When jeo session persistence is enabled, resume uses that session's saved CLI co
158
194
  | `jeo session list\|attach\|rm` · `jeo export [id]` · `jeo chat "<msg>"` | tmux session management · transcript export · tool-less streaming chat |
159
195
  | `jeo update [--check]` · `jeo whats-new` · `jeo memory-migrate` | Self-update from npm · bundled release notes · legacy `MEMORY.md` → OKF bundle |
160
196
 
161
- ## Spec-first workflow
197
+ ## Core Workflows
198
+
199
+ jeo-code offers three operational paradigms tailored to project scope and desired autonomy:
200
+
201
+ ### Workflow 1: Interactive & One-Shot Rapid Loop
202
+ Ideal for everyday feature additions, single-file bugfixes, and code reviews.
203
+ ```bash
204
+ jeo # Launch interactive full TUI session
205
+ jeo "Add rate-limiting middleware to auth" # One-shot headless run with live streaming
206
+ ```
207
+ - **Lifecycle**: Prompt input → Discovery (`search`, `find`, `read`) → Anchor-protected updates (`edit`, `write`) → Automated validation (`post-turn` hooks) → Verification-gated completion (`done`).
162
208
 
163
- Requirements → plan → approval → execution → verification, carried through `.jeo/state/` with **real, blocking gates** at every handoff:
209
+ ### Workflow 2: Spec-First Multi-Phase Engineering Pipeline (Recommended)
210
+ Built for complex, multi-file features or architecture revamps requiring verified specifications and human sign-off before code is touched.
211
+
212
+ Requirements → Plan → Review & Approval → Orchestrated Execution → Final Verification, chained deterministically through `.jeo/state/`.
164
213
 
165
214
  ```bash
166
- jeo deep-interview "Describe what you want to build"
167
- jeo ralplan
168
- jeo approve <plan-path>
169
- jeo team
170
- jeo ultragoal
215
+ jeo deep-interview "Build payment webhook handling" # 1. Ambiguity-resolving Socratic interview
216
+ jeo ralplan # 2. Repo-grounded Critic plan generation
217
+ jeo approve .jeo/state/plan-*.json # 3. Digest validation & execution unlock
218
+ jeo team # 4. Serial/parallel subagent execution
219
+ jeo ultragoal # 5. Full test suite verification & reporting
171
220
  ```
221
+ ![Interview → reviewed plan → approval → execution → verification](assets/workflow.svg)
172
222
 
173
223
  ```
174
224
  ┌──────────────────────┐
@@ -192,15 +242,21 @@ jeo ultragoal
192
242
  │ all tasks done
193
243
  ▼
194
244
  ┌──────────────────────┐
195
- │ ultragoal │ Honest verification — suite once, no fabrication
245
+ │ ultragoal │ Evidence-aware reporting — suite once, no fabricated criteria
196
246
  └──────────────────────┘
197
247
  ```
198
248
 
199
- - **deep-interview** — Socratic loop with ambiguity scoring; freezes a seed only when criteria are concrete (vague-only criteria are refused) and the seed round-trips its own parser. A new idea never silently reuses a completed interview.
200
- - **ralplan** — drafting passes plus a **repo-grounded critic subagent gate**: the critic reads the actual repository, must return `[OKAY]`/`[ITERATE]`/`[REJECT]`, and the verdict is persisted. Invalid plans (schema, unknown roles) are never marked complete.
201
- - **approve** — validates the exact contract `team` executes (schema + roles) *and* requires the persisted `[OKAY]` consensus verdict.
202
- - **team** — serial plan executor with a cross-process run lock, stale-plan reset, per-task subagent contracts, a parent-side mutation audit (a "completed" task with zero observed writes is flagged), and failed-task markers that warn about partial edits on resume.
203
- - **ultragoal** — honest verification: the suite runs once as a global signal; criteria are recorded, never fabricated as individually passed.
249
+ #### Spec-First Pipeline Breakdown & Verification Gates
250
+ - **`deep-interview`**: Socratic loop with ambiguity scoring; freezes a seed only when criteria are concrete (vague-only criteria are refused) and the seed round-trips its own parser. A new idea never silently reuses a completed interview.
251
+ - **`ralplan`**: Drafting passes paired with a **repo-grounded critic subagent gate**: the critic inspects repository code directly, must emit `[OKAY]`/`[ITERATE]`/`[REJECT]`, and persists the verdict. Invalid plans (schema, unknown roles) are never marked complete.
252
+ - **`approve`**: Strictly validates the plan schema, assigned roles, digest hash integrity, and requires the persisted `[OKAY]` verdict before unlocking execution.
253
+ - **`team`**: Serial/parallel plan executor with cross-process run locks, stale-plan reset, per-task subagent contracts, parent-side mutation auditing (contiguous steps sharing a `parallel_group` run in separate git worktrees and are merged in order), and partial-edit warnings on resume.
254
+ - **`ultragoal`**: Evidence-aware completion reporting: the test suite runs once as a global verification signal, producing honest per-criterion verification records.
255
+
256
+ ### Workflow 3: Autonomous Autopilot & Headless CI/CD Routines
257
+ Designed for unassisted optimization runs and serverless repo event handling.
258
+ - **`jeo autopilot`**: Autonomous code-evolution loop driven by a ratchet mechanism — retains commits on test score improvements (`keep`) and cleanly rolls back on regressions (`revert`).
259
+ - **`jeo routine init`**: Generates GitHub Actions workflows (`.github/workflows/`) to trigger headless jeo runs on cron schedules or GitHub issues, opening ready-to-merge PRs.
204
260
 
205
261
  ## Verification hooks (self-correction)
206
262
 
@@ -410,11 +466,11 @@ Huge thanks to [gajae-code](https://github.com/Yeachan-Heo/gajae-code) for the i
410
466
  ## Changelog
411
467
 
412
468
  <!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
469
+ - **[0.12.10]** (2026-11-02)
470
+ - **[0.12.11]** (2026-11-02)
413
471
  - **[0.12.9]** (2026-11-02)
414
472
  - **[0.12.7]** (2026-10-18) — Repair desktop screenshot vision feedback, macOS scrolling, complete drag gestures, and keyboard normalization.
415
473
  - **[0.12.6]** (2026-10-17) — Preserve OpenAI subscription authentication behind configured proxies, isolate account catalogs, and give provider-specific recovery instructions while retaining Antigravity OAuth calls.
416
- - **[0.12.5]** (2026-10-17) — Antigravity and Kimi provider support in interactive setup, Kimi live model cache rehydration, immediate discovery caching on provider probing.
417
- - **[0.12.4]** (2026-10-17) — Refresh Antigravity provider (`antigravity/*`) account catalogs with `antigravity/hub/2.23.1` so entitled Gemini 4 Argon and Gemini 3.8 Flash tiers appear directly in `/model provider antigravity`.
418
474
 
419
475
  See [CHANGELOG.md](CHANGELOG.md) for the full history.
420
476
  <!-- CHANGELOG:END -->