Terminal Opener (ターミナルオープナー)
scripts/open-terminal.js を使用して、実行可能ファイルとそのすべての引数を個別のプロセスエントリとして保持します。シェルコマンド文字列を決して補間しないでください。すべての spawn は shell: false に設定してください。デフォルトでは起動しないプランとして動作します。ユーザーが明示的に実際のウィンドウを要求し、argv がレビューされた場合にのみ --launch を使用します。起動されたプロセスは、呼び出し元プロセスの完全な環境(シークレットを含む変数)を継承します。ランチャーは環境をフィルタリングしません。ターゲットコマンドに公開しても安全な環境のシェルから実行してください。
コマンドを起動する
ランチャーオプションを -- の前に指定し、その後に1つの実行可能ファイルとその引数配列を指定します。
node skills/terminal-opener/scripts/open-terminal.js \
--launch \
--cwd /absolute/host/path \
-- ssh -t example.test command-with-arguments
まず通常モードで実行します。WezTerm に mux で新しいウィンドウを試させ、mux が利用できない場合はランチャーをデタッチド wezterm start プロセスにフォールバックさせます。フォールバックが使用された場合、JSON出力(または人間可読な失敗行)から muxFailure を読み取り、muxパスが失敗した理由を診断してください。
ターミナル設定からの回復
ユーザー設定や mux の状態が要求されたコマンドに干渉する可能性がある場合は、--recover または --standalone を追加します。次のようにデタッチド WezTerm プロセスを開始します。
--skip-config start --always-new-process
回復モードでは、すべてのユーザーターミナル設定が意図的にスキルされることを想定しています。
起動前に検査する
--launch を省略(または --dry-run を追加)し、--json を追加すると、ウィンドウを開かずに、正確な実行可能ファイル、argv、作業ディレクトリ、ターミナルアダプタ、プライマリ起動、およびフォールバックを検査できます。JSONプランは、呼び出し元に対する構成境界として扱ってください。
コマンドなしで --detect --json を実行し、ターミナルの利用可能性をプローブします。アダプタが存在しないかサポートされていない場合、返された action に従ってください。現在のアダプタには WezTerm を使用し、その他の要求されたターミナルは実行すべきコマンドとしてではなく、サポート外の計画として扱ってください。