Skip to Content
ReferenceOperationKind 分類

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 keyOWS API key で server に依頼 → policy で gatepassphrase 入力でローカル署名
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 statusERC-7702 delegation の確認
terms showTOS 同意状態の表示

policy-gated

チェーンへの書き込みを伴う署名操作。policy で制限可能で、agent モードでは OWS server 側のポリシー評価で gate されます。

コマンド説明
sendネイティブ / ERC-20 送金
call任意のコントラクト呼び出し
sign messageEIP-191 メッセージ署名
sign typed-dataEIP-712 構造化データ署名
sign transaction生トランザクション署名
sign hash任意 hash の raw 署名(agent モードでは sign_allowlisthashes / hashPattern ルール必須)
delegate revokeERC-7702 delegation の取消(復旧操作のため policy-gated)

delegateDELEGATE_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 rotateAPI 鍵ローテーション
key listAPI 鍵一覧(read-only との重複記載。こちらは owner context での確認用)
delegateERC-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 有無)と照合します。

OperationKindTTY あり(terminal)TTY なし(agent)
read-only通過通過
policy-gatedpassphrase 入力経路credential 必須(無ければ CREDENTIAL_REQUIRED
owner-onlypassphrase + readline 確認INTERACTIVE_INPUT_REQUIRED で必ず拒否

fail-closed: マッピングに登録されていないコマンドは自動的に owner-only 扱いとなり、agent モードから呼ばれた場合は拒否されます。これにより、新しいコマンドを追加した際にガード登録を忘れても安全側に倒れます。

旧設計からの変更点

KOVA_MODE 環境変数 / config.jsonmode フィールド、および「mode を見て分岐する」コードはすべて削除されています。Signer の経路選択は credential の有無のみ で決まります(mode 検知という概念自体を排しました)。

config set credential '' のみ「agent → owner 復帰」経路として guard より前で処理される例外として保持されています。

関連項目

Last updated on