OperationKind 分類
Kova は、すべてのコマンドを 3 つの OperationKind に分類し、実行 context(TTY 有無)と認証手段(passphrase / OWS API key)の組み合わせで経路を自動決定します。これにより、AI エージェントが意図せず危険な操作を実行することを構造的に防ぎます。
上位概念は Core Concepts: Security の OperationKind 3 分類 を参照してください。本ページは各分類に属するコマンドの完全なリストとリファレンスです。
3 つの分類
| OperationKind | 副作用 | 認証 | agent から(非 TTY) | terminal から(TTY) |
|---|---|---|---|---|
read-only | なし | 不要 | そのまま実行 | そのまま実行 |
policy-gated | あり(チェーン書込) | passphrase または API key | OWS API key で server に依頼 → policy で gate | passphrase 入力でローカル署名 |
owner-only | あり(local state / 鍵生成 / policy 更新) | passphrase 必須 | block (INTERACTIVE_INPUT_REQUIRED) | passphrase + readline 確認 |
fail-closed default: 上記いずれにも明示的に分類されない操作は owner-only として扱われます。CLI 入口のガードが要件を強制し、agent モードからの owner-only 操作呼び出しは構造的に拒否されます。
read-only
情報取得のみで、ウォレットやチェーンへの書き込みを伴わないコマンド。認証は不要で、agent / terminal どちらからもそのまま実行できます。
| コマンド | 説明 |
|---|---|
balance | 残高取得 |
wallet info | ウォレット情報 |
policy list | 登録済みポリシー一覧 |
key list | 発行済み API 鍵一覧 |
status | アクティブプロファイル / authMethod の確認 |
config list / config profile list / config profile show | 設定値の閲覧・プロファイル参照(config get は撤去され config list に統合) |
delegate status | ERC-7702 delegation の確認 |
terms show | TOS 同意状態の表示 |
policy-gated
チェーンへの書き込みを伴う署名操作。policy で制限可能で、agent モードでは OWS server 側のポリシー評価で gate されます。
| コマンド | 説明 |
|---|---|
send | ネイティブ / ERC-20 送金 |
call | 任意のコントラクト呼び出し |
sign message | EIP-191 メッセージ署名 |
sign typed-data | EIP-712 構造化データ署名 |
sign transaction | 生トランザクション署名 |
sign hash | 任意 hash の raw 署名(agent モードでは sign_allowlist の hashes / hashPattern ルール必須) |
delegate revoke | ERC-7702 delegation の取消(復旧操作のため policy-gated) |
delegate(DELEGATE_SET)はデフォルトで owner-only ですが、active profile に紐づくポリシーがdelegate_allowlistルールを持つときに限り、ガードが動的に policy-gated にダウングレードします。これにより許可済み implementation への delegation は agent からも実行できます。
Agent mode: OWS API key + server 側 Policy で制御 Terminal mode: passphrase 入力でローカル署名
owner-only
ウォレット所有者のみが実行できる、local state や鍵管理に関わる操作。agent モードからは INTERACTIVE_INPUT_REQUIRED で必ず拒否されます。
| コマンド | 説明 |
|---|---|
wallet export | シードフレーズ / 秘密鍵のエクスポート |
wallet reset-passphrase | パスフレーズのリセット |
policy create | ポリシー作成 |
policy remove | ポリシー削除 |
policy update | ポリシー更新 |
key rotate | API 鍵ローテーション |
key list | API 鍵一覧(read-only との重複記載。こちらは owner context での確認用) |
delegate | ERC-7702 delegation の設定(delegate_allowlist ルール有効時のみ policy-gated にダウングレード) |
config set | 設定値の更新(profile は read-only のため config set は非 profile キーのみ対象) |
plugin install | プラグイン導入 |
plugin uninstall | プラグイン削除 |
skills install | スキルリポジトリ導入 |
skills remove | スキルリポジトリ削除 |
skills update | スキルリポジトリ更新 |
init | 初期化(対話セットアップ・credential 発行を含む) |
Agent mode: INTERACTIVE_INPUT_REQUIRED エラーで block
Terminal mode: passphrase + readline 確認で実行
ガード実装
CLI 入口のガードが、各コマンドに対応する OperationKind を取得し、現在の context(TTY 有無 + credential 有無)と照合します。
| OperationKind | TTY あり(terminal) | TTY なし(agent) |
|---|---|---|
read-only | 通過 | 通過 |
policy-gated | passphrase 入力経路 | credential 必須(無ければ CREDENTIAL_REQUIRED) |
owner-only | passphrase + readline 確認 | INTERACTIVE_INPUT_REQUIRED で必ず拒否 |
fail-closed: マッピングに登録されていないコマンドは自動的に owner-only 扱いとなり、agent モードから呼ばれた場合は拒否されます。これにより、新しいコマンドを追加した際にガード登録を忘れても安全側に倒れます。
旧設計からの変更点
旧 KOVA_MODE 環境変数 / config.json の mode フィールド、および「mode を見て分岐する」コードはすべて削除されています。Signer の経路選択は credential の有無のみ で決まります(mode 検知という概念自体を排しました)。
config set credential '' のみ「agent → owner 復帰」経路として guard より前で処理される例外として保持されています。
関連項目
- Core Concepts: Security — セキュリティ全体像と OperationKind の上位概念
- init コマンド — 初期セットアップ・credential 発行
- launch コマンド — credential を環境変数として注入してエージェントを起動