aiterm-mcp 0.24.2 → 0.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -96,6 +96,12 @@ host統合は、kitepon.devの製品開発を支える内部基盤
96
96
 
97
97
  14 ツール: 6 つの **PTY ツール**(`pty_open` / `pty_send` / `pty_read` / `pty_key` / `pty_close` / `pty_list`)で 1 本の永続端末を開き・操作し・読む。加えて 4 つの **エージェント起動ツール**(`claude_agent` / `codex_agent` / `grok_agent` / `composer_agent`)が別のコーディングエージェントの TUI を新しい端末の中に起動し、`agent_configure`が起動中のCodex/Claudeのmodel・effortを再起動なしで変更し、`claude_turn`がdurable caller向けの構造化issue/recoveryを、`claude_approval`が相関済みClaude承認UI中継を、`diagnostics`が安全なfactory readinessを返す。バックエンドは **tmux** なので、MCP サーバや AI クライアントが再起動してもセッションは生き残る。
98
98
 
99
+ **v0.24.3ではlauncherへ渡す環境変数を現在のMCP processから明示選択できる。** `env_vars`へ
100
+ 変数名だけを指定すると、aitermは起動時の現在値を読み、存在する値だけをそのagentへ渡す。永続tmux
101
+ serverがMCP processより先に起動していても、古いserver環境に席identityやworkflow変数を消されない。
102
+ あわせてCodex v0.147が長寿命footerへ加える任意`fast`を認識し、idleな`medium fast ·` sessionでも
103
+ 再描画・再試行・再起動なしに`agent_configure`できる。
104
+
99
105
  **v0.24.2では長寿命Codexでも設定変更を維持。** 起動時headerがcapture範囲外へ流れた後は、
100
106
  常駐するmodel/effort footerと入力欄でCodexを識別する。idle sessionをそのまま変更でき、
101
107
  caller側の画面再描画、再試行、agent再起動は不要。
@@ -180,10 +186,17 @@ $ aiterm-wait --session codex1 --cursor <event_cursor> # exit 0=done / 3=timeo
180
186
 
181
187
  | ツール | 起動するもの | 主な引数 |
182
188
  | --- | --- | --- |
183
- | `claude_agent` | Claude Code CLI(Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`), `cwd?`, `session_name?` |
184
- | `codex_agent` | Codex CLI(OpenAI・端末設定/CLI既定、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`/`ultra`), `cwd?`, `session_name?`, `write_scope?` |
185
- | `grok_agent` | Grok Build(xAI、既定`grok-4.5`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `cwd?`, `session_name?`, `write_scope?` |
186
- | `composer_agent` | Grok Build(xAI、既定`grok-composer-2.5-fast`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `cwd?`, `session_name?`, `write_scope?` |
189
+ | `claude_agent` | Claude Code CLI(Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`), `env_vars?`, `cwd?`, `session_name?` |
190
+ | `codex_agent` | Codex CLI(OpenAI・端末設定/CLI既定、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`/`ultra`), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
191
+ | `grok_agent` | Grok Build(xAI、既定`grok-4.5`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
192
+ | `composer_agent` | Grok Build(xAI、既定`grok-composer-2.5-fast`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
193
+
194
+ `env_vars`は環境変数の**名前**だけを並べるallowlistであり、name/value mapではない。aitermは
195
+ launcher起動時に現在のMCP processから各名前を読み、存在する値をshell quoteして、その1回のvendor
196
+ 起動コマンドへ入れる。未設定名は省略し、shell変数名として不正な名前はsession作成前に失敗する。
197
+ 全環境の暗黙copy、tmux server再起動、retry、fallbackは行わない。値はMCP tool引数には入らないが、
198
+ PTYの起動コマンドとして送られ、sessionの`.lastcmd`にも保持されるため、起動先vendorと同じOS userへ
199
+ 到達する。秘密転送路ではなく、席identityやworkflow用の非secret変数だけに使う。
187
200
 
188
201
  各ベンダーのCLIが導入・認証済みであること。CLI不在・不正なmodel/effort・実在しない`cwd`はsession作成前に失敗し、残骸を残さない。ClaudeはさらにPTY作成前に同じCLIの`auth status --json`が`loggedIn:true`を返すことを要求する。4 launcherは通常のvendor credential/config storeをその場で使い、fake `HOME`、private `CODEX_HOME`/`GROK_HOME`、project/user config snapshotを作らない。Claudeだけは完了相関用Stop hook settingsを通常の`user,project,local` settingsへ加算する。Grok/Composerは画面入力欄だけでなく通常sessionの`mcp_init_completed` eventも確認してから送信し、共有MCP初期化中の早送信を防ぐ。相関付きClaudeのactive turn中はC-c以外の`pty_key`と素送信を拒否し、承認UIは`claude_approval`で単発Yes/Noだけを相関付きで中継する。
189
202
 
@@ -391,10 +404,10 @@ consumer は `aiterm-runtime-errors snapshot` を読み、durable ingestion 後
391
404
 
392
405
  | ツール | 起動するもの | 主な引数 |
393
406
  | --- | --- | --- |
394
- | `claude_agent` | Claude Code CLI(Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`), `cwd?`, `session_name?` |
395
- | `codex_agent` | Codex CLI(OpenAI・端末設定/CLI既定、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`/`ultra`), `cwd?`, `session_name?`, `write_scope?` |
396
- | `grok_agent` | Grok Build(xAI、既定`grok-4.5`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `cwd?`, `session_name?`, `write_scope?` |
397
- | `composer_agent` | Grok Build(xAI、既定`grok-composer-2.5-fast`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `cwd?`, `session_name?`, `write_scope?` |
407
+ | `claude_agent` | Claude Code CLI(Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`), `env_vars?`, `cwd?`, `session_name?` |
408
+ | `codex_agent` | Codex CLI(OpenAI・端末設定/CLI既定、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`(`low`/`medium`/`high`/`xhigh`/`max`/`ultra`), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
409
+ | `grok_agent` | Grok Build(xAI、既定`grok-4.5`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
410
+ | `composer_agent` | Grok Build(xAI、既定`grok-composer-2.5-fast`、`model?`で上書き) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?`は非対応(指定時は明示エラー), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
398
411
 
399
412
  対応するCLI(`claude` / `codex` / `grok`)の導入・認証が必要。前提違反はsession作成前に明示失敗する。4 launcherすべてが通常project/user環境と同じ非ブロックdispatch契約を使う。Claude/Codex/Grok/Composerのdepth 1 live smokeと、Claude親→Claude孫のdepth 2 nested delegation smokeはgreenであり、fixtureによる検証とは区別して記録する。
400
413
 
package/README.md CHANGED
@@ -96,6 +96,13 @@ toolchain behind kitepon.dev's products.
96
96
 
97
97
  Fourteen tools: six **PTY tools** — `pty_open` / `pty_send` / `pty_read` / `pty_key` / `pty_close` / `pty_list` — to open, drive, and read one persistent terminal, four **agent launchers** — `claude_agent` / `codex_agent` / `grok_agent` / `composer_agent` — that each start another coding agent's TUI inside a fresh one, `agent_configure` to change a running Codex/Claude session's model and effort without restarting it, `claude_turn` for durable structured issue/recovery, `claude_approval` for correlated Claude approval prompts, and `diagnostics` for safe factory readiness. The backend is **tmux**, so sessions survive even if the MCP server or the AI client restarts.
98
98
 
99
+ **v0.24.3 forwards explicitly selected launcher environment variables from the current MCP process.**
100
+ Pass variable names in `env_vars`; aiterm reads their current values at launch and injects only the
101
+ present ones into that agent. This works even when the persistent tmux server predates the MCP
102
+ process, so a stale tmux-server environment cannot erase per-seat identity or workflow variables.
103
+ It also recognizes Codex v0.147's optional `fast` token in long-lived model/effort footers, keeping
104
+ `agent_configure` available on an idle `medium fast ·` session without redraw, retry, or restart.
105
+
99
106
  **v0.24.2 keeps in-place configuration working in long-lived Codex sessions.** Once the
100
107
  startup header has scrolled out of the captured pane, aiterm recognizes Codex by its persistent
101
108
  model/effort footer together with the input prompt. An idle session is therefore configured
@@ -201,10 +208,19 @@ One call per model, so the tool name itself tells you which model you get:
201
208
 
202
209
  | Tool | Launches | Key args |
203
210
  | --- | --- | --- |
204
- | `claude_agent` | Claude Code CLI (Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`), `cwd?`, `session_name?`, `launch_operation_id?` |
205
- | `codex_agent` | Codex CLI (OpenAI; terminal config/CLI default unless overridden) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`/`ultra`; ultra enables proactive automatic delegation), `cwd?`, `session_name?`, `write_scope?` |
206
- | `grok_agent` | Grok Build, model `grok-4.5` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error; Grok CLI `--effort` is headless-only), `cwd?`, `session_name?`, `write_scope?` |
207
- | `composer_agent` | Grok Build, model `grok-composer-2.5-fast` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error), `cwd?`, `session_name?`, `write_scope?` |
211
+ | `claude_agent` | Claude Code CLI (Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`), `env_vars?`, `cwd?`, `session_name?`, `launch_operation_id?` |
212
+ | `codex_agent` | Codex CLI (OpenAI; terminal config/CLI default unless overridden) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`/`ultra`; ultra enables proactive automatic delegation), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
213
+ | `grok_agent` | Grok Build, model `grok-4.5` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error; Grok CLI `--effort` is headless-only), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
214
+ | `composer_agent` | Grok Build, model `grok-composer-2.5-fast` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
215
+
216
+ `env_vars` is an allowlist of environment-variable **names**, not a name/value map. At launch,
217
+ aiterm reads each valid name from its current MCP process, shell-quotes present values, and places
218
+ them on that one vendor launch command. Missing names are omitted; invalid shell variable names
219
+ fail before session creation. There is no implicit whole-environment copy, tmux-server restart,
220
+ retry, or fallback. Values do not enter the MCP tool arguments, but they are delivered through the
221
+ PTY launch command and retained in aiterm's per-session `.lastcmd`; the launched vendor and other
222
+ processes with access to the same OS user may read them. Use this for non-secret seat identity and
223
+ workflow variables, not as a secret transport.
208
224
 
209
225
  The vendor CLI must be installed and authenticated (`claude` for `claude_agent`; `codex` for `codex_agent`; `grok` for both Grok tools). aiterm resolves the binary via `CLAUDE_BIN` / `CODEX_BIN` / `GROK_BIN`, then each documented default location, then `PATH`. Prerequisites are checked **before** a session exists: empty `model` values and unsupported effort values are rejected up front; a missing CLI binary or a nonexistent `cwd` fails for all four. Before creating a Claude session, aiterm also requires a successful structured `claude auth status --json` result with `loggedIn: true`; unavailable, malformed, or failed authentication leaves **zero leftover session**. All launchers use the normal vendor-owned credential and configuration stores in place. No launcher creates a fake `HOME`, a private `CODEX_HOME`/`GROK_HOME`, or a snapshot of project/user configuration.
210
226
 
@@ -417,10 +433,10 @@ Each launcher starts a specific vendor's interactive coding-agent TUI inside a f
417
433
 
418
434
  | Tool | Launches | Key args |
419
435
  | --- | --- | --- |
420
- | `claude_agent` | Claude Code CLI (Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`), `cwd?`, `session_name?`, `launch_operation_id?` |
421
- | `codex_agent` | Codex CLI (OpenAI; terminal config/CLI default unless overridden) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`/`ultra`; ultra enables proactive automatic delegation), `cwd?`, `session_name?`, `write_scope?` |
422
- | `grok_agent` | Grok Build, model `grok-4.5` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error; Grok CLI `--effort` is headless-only), `cwd?`, `session_name?`, `write_scope?` |
423
- | `composer_agent` | Grok Build, model `grok-composer-2.5-fast` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error), `cwd?`, `session_name?`, `write_scope?` |
436
+ | `claude_agent` | Claude Code CLI (Anthropic) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`), `env_vars?`, `cwd?`, `session_name?`, `launch_operation_id?` |
437
+ | `codex_agent` | Codex CLI (OpenAI; terminal config/CLI default unless overridden) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` (`low`/`medium`/`high`/`xhigh`/`max`/`ultra`; ultra enables proactive automatic delegation), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
438
+ | `grok_agent` | Grok Build, model `grok-4.5` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error; Grok CLI `--effort` is headless-only), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
439
+ | `composer_agent` | Grok Build, model `grok-composer-2.5-fast` by default (`model?` overrides) (xAI) | `prompt?`, `throughline_source_session?`, `model?`, `reasoning_effort?` unsupported (an explicit value is an error), `env_vars?`, `cwd?`, `session_name?`, `write_scope?` |
424
440
 
425
441
  The vendor CLI must be installed and authenticated (`claude` for `claude_agent`; `codex` for `codex_agent`; `grok` for both Grok tools). Binary resolution uses `CLAUDE_BIN` / `CODEX_BIN` / `GROK_BIN`, then each documented default location, then `PATH`. Missing binaries, invalid model/effort values, and nonexistent `cwd` fail before a session is created. Claude additionally requires a structured healthy authentication status before any PTY exists, and correlated Claude sessions reject `/login` and `/logout`; repair authentication once in a normal terminal. All four launchers share the normal project/user environment and the same non-blocking dispatch contract. Claude, Codex, Grok, and Composer depth-1 live smokes and a Claude depth-2 nested-delegation smoke are green; fixture coverage remains a separate claim. Native Windows can launch agents but correlated completion is not supported yet.
426
442
 
@@ -516,6 +532,11 @@ symlink, filter, or replace vendor configuration, authentication, MCP, plugin, s
516
532
  trust, memory, or history stores. Cleanup removes only aiterm-owned launch metadata and completion
517
533
  correlation files.
518
534
 
535
+ The ordinary environment still comes from the shell/tmux session. When a caller needs a value that
536
+ belongs to the current MCP process rather than the older persistent tmux server, every launcher
537
+ accepts `env_vars: ["NAME", ...]`. Only those names are refreshed at launch; this is a narrow
538
+ per-launch overlay, not a replacement environment or configuration snapshot.
539
+
519
540
  ## License
520
541
 
521
542
  MIT
package/dist/core.js CHANGED
@@ -3326,7 +3326,7 @@ function isAgentTuiReady(kind, screen) {
3326
3326
  // 起動直後は製品header、長寿命sessionでは常駐footerがCodex TUIの識別子になる。
3327
3327
  // capture-paneは直近45行だけなので、会話が進むとheaderは正常に画面外へ流れる。
3328
3328
  const codexFrontend = screen.includes("OpenAI Codex")
3329
- || /(^|\n)\s*\S+\s+(?:low|medium|high|xhigh|max|ultra)\s+·\s+\S.*$/m.test(screen);
3329
+ || /(^|\n)\s*\S+\s+(?:low|medium|high|xhigh|max|ultra)(?:\s+fast)?\s+·\s+\S.*$/m.test(screen);
3330
3330
  return codexFrontend && /(^|\n)\s*[›>]/.test(screen);
3331
3331
  }
3332
3332
  // Grok Build 0.2.117 は起動完了後に製品名を消し、model footerだけを残す。
@@ -4020,10 +4020,15 @@ function buildAgentCmd(kind, bin, model, effort, prompt, meta = null) {
4020
4020
  parts.push(shq(prompt)); // 初手プロンプト(任意)
4021
4021
  return parts.join(" ");
4022
4022
  }
4023
- function agentEnvPrefix(meta, sid) {
4023
+ function agentEnvPrefix(meta, sid, envVars = []) {
4024
+ const inherited = envVars.flatMap((name) => {
4025
+ const value = process.env[name];
4026
+ return value === undefined ? [] : [`${name}=${shq(value)}`];
4027
+ });
4024
4028
  if (!meta)
4025
- return "";
4029
+ return inherited.length ? inherited.join(" ") + " " : "";
4026
4030
  const common = [
4031
+ ...inherited,
4027
4032
  `AITERM_AGENT_KIND=${shq(meta.kind)}`,
4028
4033
  `AITERM_SESSION_ID=${shq(sid)}`,
4029
4034
  `AITERM_AGENT_SESSION_ID=${shq(sid)}`,
@@ -4131,6 +4136,12 @@ export function openAgent(kind, opts = {}) {
4131
4136
  }
4132
4137
  const effort = opts.reasoning_effort ?? null;
4133
4138
  const writeScope = opts.write_scope;
4139
+ const envVars = opts.env_vars ?? [];
4140
+ for (const name of envVars) {
4141
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {
4142
+ throw new AitermError(`env_vars に無効な環境変数名があります: ${JSON.stringify(name)}`, 2);
4143
+ }
4144
+ }
4134
4145
  if (effort && kind === "claude" && !CLAUDE_EFFORTS.has(effort)) {
4135
4146
  throw new AitermError("Claude Code の reasoning_effort は low/medium/high/xhigh/max のいずれかです", 2);
4136
4147
  }
@@ -4249,7 +4260,7 @@ export function openAgent(kind, opts = {}) {
4249
4260
  agentMetadataNegativeCache.delete(sid);
4250
4261
  launchNote = buildAgentLaunchNote(kind, model, effort, meta);
4251
4262
  const cmd = buildAgentCmd(kind, binForCmd, model, effort, opts.prompt ?? null, meta);
4252
- const envPrefix = agentEnvPrefix(meta, sid);
4263
+ const envPrefix = agentEnvPrefix(meta, sid, envVars);
4253
4264
  const full = cwdForCmd ? `cd ${shq(cwdForCmd)} && ${envPrefix}${cmd}` : `${envPrefix}${cmd}`;
4254
4265
  // force:true で送る。起動骨格は `bin '...'` の固定形で、prompt/cwd/effort は shq でクオート済みの
4255
4266
  // 引数=シェルは決して破壊コマンドとして実行しない。破壊ゲート(生シェルコマンド想定)を prompt に
@@ -4320,6 +4331,7 @@ export async function openAgentWithInitialPrompt(kind, opts = {}) {
4320
4331
  agent_done: true,
4321
4332
  launch_operation_id: opts.launch_operation_id ?? null,
4322
4333
  write_scope: opts.write_scope,
4334
+ env_vars: opts.env_vars,
4323
4335
  });
4324
4336
  // argv prompt(grok/composer)は composer を経由しないため submit 座礁観測の対象外。
4325
4337
  return [sid, hint, prompt ? 0 : null, null];
@@ -4333,6 +4345,7 @@ export async function openAgentWithInitialPrompt(kind, opts = {}) {
4333
4345
  agent_done: true,
4334
4346
  launch_operation_id: opts.launch_operation_id ?? null,
4335
4347
  write_scope: opts.write_scope,
4348
+ env_vars: opts.env_vars,
4336
4349
  });
4337
4350
  try {
4338
4351
  const initial = await sendInitialAgentPrompt(sid, prompt, {
package/dist/index.js CHANGED
@@ -483,6 +483,7 @@ function registerAgentTool(toolName, kind, desc) {
483
483
  // grok/composer の effort は対話 TUI で無効(headless 専用)=core 側が起動前に明示エラーで拒否。
484
484
  // codex は CLI 側の値集合が版で変わるため縛らない(core 側も同方針)。
485
485
  reasoning_effort: z.string().nullish().describe(agentEffortDesc(kind)),
486
+ env_vars: z.array(z.string()).optional().describe("起動したagentへ現在のMCP processから継承する環境変数名。値はtool引数へ渡さない"),
486
487
  cwd: z.string().nullish().describe("作業ディレクトリ(対象リポのルート等・任意)"),
487
488
  session_name: z.string().nullish().describe("セッション名(省略で自動採番)"),
488
489
  ...writeScopeInputSchema,
@@ -502,13 +503,14 @@ function registerAgentTool(toolName, kind, desc) {
502
503
  submit_residue: z.boolean().nullable(),
503
504
  ...writeScopeOutputSchema,
504
505
  },
505
- }, async ({ prompt, throughline_source_session, model, reasoning_effort, cwd, session_name, launch_operation_id, write_scope }) => {
506
+ }, async ({ prompt, throughline_source_session, model, reasoning_effort, env_vars, cwd, session_name, launch_operation_id, write_scope }) => {
506
507
  try {
507
508
  const [sid, hint, eventCursor, submitResidue] = await core.openAgentWithInitialPrompt(kind, {
508
509
  prompt: prompt ?? undefined,
509
510
  throughline_source_session,
510
511
  model: model ?? undefined,
511
512
  reasoning_effort: reasoning_effort ?? undefined,
513
+ env_vars,
512
514
  cwd: cwd ?? undefined,
513
515
  session_name: session_name ?? undefined,
514
516
  launch_operation_id: launch_operation_id ?? undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiterm-mcp",
3
- "version": "0.24.2",
3
+ "version": "0.24.3",
4
4
  "mcpName": "io.github.kitepon-rgb/aiterm-mcp",
5
5
  "description": "Persistent tmux terminal MCP that lets Claude Code drive Codex CLI's interactive TUI, including slash commands and $imagegen. Also runs durable PTY sessions for SSH, containers, REPLs, and coding agents.",
6
6
  "keywords": [