arc drain は実体のある CLI プロセスであり、チャットのターンではありません —— それを起動したセッションを終了させても、このプロセス自体を kill しない限り drain は止まりません。arc drain は /dev/code-agents(または --subscribe-path で渡したパス)を subscribe し、起動されるたびに work ledger から準備の完了した作業を claim して、その作業を渡して /dev/code-agents/.actions/run を exec します。作業の集合が空であれば 0 で終了します。arc drain は自分では ledger の行を作成することはなく、それを消費するだけです。
使用法
arc drain --cwd <dir> [options]--cwd <dir>(必須、デフォルトなし):/dev/code-agents/.actions/runに渡す作業ディレクトリ。daemon 自身のプロジェクトの checkout であってはならない--work-root <path>:work コレクションのルート。すなわち、どの AFS パスが作業レコードを保持するか(デフォルト/work)--subscribe-path <path>:起動通知を subscribe する AFS パスのプレフィックス。例:/dev/code-agentsや/settled(デフォルト/dev/code-agents)--engine <id>:この engine id にのみディスパッチを限定する(デフォルト:最初に見つかったアイドル状態のディスパッチ先)--peer <id>:この peer id にのみディスパッチを限定する(デフォルト:最初に見つかったアイドル状態のオンライン peer)
グローバルフラグ(概要 を参照):--json、--view、--instance / -i(どのローカル ARC インスタンスか;省略すると default)、および --home(インスタンスのルート;どのインスタンスにするかを選ぶには --instance を使う)。--standalone もグローバルです(ad-hoc モード:稼働中のデーモンではなく、現在のディレクトリのローカル設定から AFS を読み込む)。--instance を渡さない限り、drain は通常デフォルトインスタンスに対して実行されます。
arc drain は、対象インスタンスの daemon が既に起動していることを前提としています(例えば arc service start で)。drain に自動起動させてしまうと、代わりにデフォルトの /work マウントを省略した、より軽量な AFS が起動し、ledger に到達する前に No module found for path: /work in namespace 'default' で失敗します。
例(作業の集合が空、daemon は起動済み)
$ arc drain --cwd /path/to/a/work/tree
ready set emptyCtrl-C(SIGINT)を押すか SIGTERM を送ると drain を停止できます。どちらも現在の待機をきれいに中断します。
例(必須フラグの指定なし)
$ arc drain
ERROR: --cwd is required (no default — must not be the daemon's own project checkout)