CLI / TUI / Web
源码版本v2026.7.20
職務
UI 層はユーザーが agent に触れるもう一組の入口(ゲートウェイのメッセージプラットフォーム以外):CLI(hermes_cli/、コマンドラインのサブコマンド体系)、TUI(ui-tui/、TypeScript 端末 UI + tui_gateway/ Python 橋渡し)、Web(web/、ブラウザ UI)。三者とも最終的にユーザー入力を agent の run_conversation に送り、出力を描画し戻す。ゲートウェイ層とは並列——ゲートウェイが外部プラットフォームを、UI 層がローカルユーザーを受け持つ。
主要ファイル
CLI
hermes_cli/__init__.py— パッケージ入口_parser.py— コマンドライン引数解析auth.py/auth_commands.py— 認証(Nous Portal など)active_sessions.py— アクティブセッション管理backup.py/checkpoints.py— バックアップとチェックポイントblueprint_cmd.py— ブループリントコマンドbrowser_connect.py/bundles.py/callbacks.pybanner.py/build_info.py— バナーとビルド情報
TUI
ui-tui/README— 端末 UI(TypeScript、packages/src を含む)ui-tui/package.json— 依存とスクリプトtui_gateway/entry.py— TUI ゲートウェイ入口server.py— TUI サーバーtransport.py/ws.py— トランスポートと WebSocketevent_publisher.py— イベントパブリッシュhost_supervisor.py/compute_host.py— ホスト監督slash_worker.py/synthetic_turn.py/render.py/project_tree.py_stdin_recovery.py— stdin 回復
Web
web/README— ブラウザ UIweb/index.html/vite.config.ts— Vite 入口web/src/— フロントエンドソース
データフロー
- CLI:
hermes <subcommand>→hermes_cli/_parser.pyが解析 → サブコマンドモジュール(auth/backup/blueprint/...)が実行。対話系コマンドは最終的にAIAgent.run_conversation:6350を呼ぶ。 - TUI:
ui-tui/(TS フロントエンド)が WebSocket でtui_gateway/ws.pyに接続、tui_gatewayが端末イベントを agent に橋渡し(tui_gateway/server.pyが agent を保持)。出力はtui_gateway/event_publisher.pyでフロントに送られる。 - Web:
web/(Vite フロントエンド)も同様にバックエンド経由で agent に接続し、対話とツール結果を描画する。 - 三者の agent インスタンスはすべて
init_agent:276で組み立てられ、同じ機能層を共有する。
まとめ
UI 層 = 三つの殻(CLI/TUI/Web)+ 一つの tui_gateway 橋渡し。業務を持たず、入出力の形だけを担う。ゲートウェイ層と並列:ゲートウェイは外部メッセージプラットフォーム、UI 層はローカル端末/ブラウザを受け持つ。ACP(参照)は IDE を受け持ち、完全な「触達面」を構成する。