aiterm-mcp 0.38.1 → 0.38.2

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/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.38.2] - 2026-09-25
11
+
12
+ ### 修正
13
+
14
+ - Claude Code初回起動時のテーマ選択を、画面で選択済みの項目を確定して通過する。続くログイン方式の選択は入力欄と誤認せず、公式CLIでの初回設定が必要と明示する。
15
+ - WindowsのCursor親受け口試験で、Windows専用の起動引数を誤って`null`と期待していた判定を修正する。
16
+
10
17
  ## [0.38.1] - 2026-09-22
11
18
 
12
19
  ### 修正
@@ -1744,7 +1751,8 @@ prototype (preserved under `prototype/python/` as the porting source and referen
1744
1751
  `ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
1745
1752
  provenance.
1746
1753
 
1747
- [Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.1...HEAD
1754
+ [Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.2...HEAD
1755
+ [0.38.2]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.1...v0.38.2
1748
1756
  [0.38.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.0...v0.38.1
1749
1757
  [0.38.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.10...v0.38.0
1750
1758
  [0.37.10]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.9...v0.37.10
package/README.ja.md CHANGED
@@ -202,7 +202,7 @@ runtime-error store は canonical dotagents config の `collection.enabled: true
202
202
  場合だけ収集し、既定OFF、network送信は行いません。tag起点CIのnpm provenance(OIDC Trusted
203
203
  Publishing)で公開し、GitHub Release が Official MCP Registry を再登録します。
204
204
 
205
- **状態:** 開発継続中 · 現行公開版 **v0.38.1** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
205
+ **状態:** 開発継続中 · 現行公開版 **v0.38.2** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
206
206
 
207
207
  ### 更新と巻き戻し
208
208
 
@@ -486,6 +486,8 @@ aiterm は同じ核心の洞察——端末を出会いの場にする——を
486
486
 
487
487
  `agent_launch({ harness, cwd, trust_project: true })`はpromptなしでも既知のworkspace・project hooks・MCP初期同意を
488
488
  進め、入力受付とharness生存を確認して`startup.status="ready"`を返す。指定なしのpromptなし起動は`not_checked`。
489
+ Claude Code初回起動の文字表示テーマ選択では、画面で選択済みの項目を確定して起動を続ける。
490
+ 続いてログイン方式の選択が出た場合は`vendor_onboarding_required`を返す。公式の対話型Claude Code CLIで初回設定を完了する。
489
491
  WindowsのCodexもhook確認を認識し、npm shim経由の起動を一つのharnessとして識別する。
490
492
  初手の`initial_prompt.status`は`not_requested`/`not_sent`/`submitted_unconfirmed`/`started`を区別する。
491
493
  未送信・未確認の失敗もsession付きstructuredContentを保持する。未確認のpromptを再送せず、返ったcursorで観測する。
package/README.md CHANGED
@@ -216,7 +216,7 @@ collection is off by default and performs no network I/O. It ships via
216
216
  tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
217
217
  Release re-registers the Official MCP Registry entry.
218
218
 
219
- **Status:** actively maintained · current public release **v0.38.1** · runs on Linux · WSL2 · macOS · native Windows (tmux on POSIX, the tmux-CLI-compatible [psmux](https://github.com/psmux/psmux) on native Windows — no WSL required) · MIT · see the [CHANGELOG](CHANGELOG.md).
219
+ **Status:** actively maintained · current public release **v0.38.2** · runs on Linux · WSL2 · macOS · native Windows (tmux on POSIX, the tmux-CLI-compatible [psmux](https://github.com/psmux/psmux) on native Windows — no WSL required) · MIT · see the [CHANGELOG](CHANGELOG.md).
220
220
 
221
221
  ### Update and rollback
222
222
 
@@ -517,6 +517,8 @@ displayed token count or null. Callers do not need raw argv or pane-text parsing
517
517
 
518
518
  `agent_launch({ harness, cwd, trust_project: true })` completes known workspace, project-hook, and project-MCP startup
519
519
  consent even without a prompt, then verifies input readiness and harness liveness before returning `startup.status="ready"`.
520
+ For Claude Code's first-run text-style menu, it confirms the item already selected on screen before continuing startup.
521
+ If the CLI then requests an account login method, the launch reports `vendor_onboarding_required`; complete that choice in the official interactive Claude Code CLI.
520
522
  A prompt-free launch without this option retains `startup.status="not_checked"`. `initial_prompt.status` distinguishes
521
523
  `not_requested`, `not_sent`, `submitted_unconfirmed`, and `started`. Failure responses retain structured session information.
522
524
  WindowsのCodexもhook確認を認識し、npm shim経由の起動を一つのharnessとして識別する。
@@ -180,6 +180,8 @@ export function claudeLaunchNote(model, effort, meta) {
180
180
  export function claudeTuiReady(screen) {
181
181
  if (!screen.includes("Claude Code"))
182
182
  return false;
183
+ if (claudeLoginMethodMenu(screen))
184
+ return false;
183
185
  const lastMarker = screen.split(/\r?\n/u).filter((line) => /^\s*❯/u.test(line)).at(-1)?.trim();
184
186
  if (!lastMarker)
185
187
  return false;
@@ -190,6 +192,8 @@ export function claudeTuiReady(screen) {
190
192
  }
191
193
  export function claudePaneObservation(screen) {
192
194
  const tail = screen.split("\n").slice(-32).join("\n");
195
+ if (claudeLoginMethodMenu(screen))
196
+ return { state: "blocked", reason: "vendor_onboarding_required" };
193
197
  if (/Do you want to proceed\?/.test(tail) && /(?:^|\n)\s*[❯>]?\s*\d+\.\s+(?:Yes|No)\s*$/m.test(tail))
194
198
  return { state: "blocked", reason: "tool_approval" };
195
199
  if (/esc to interrupt/i.test(tail))
@@ -202,7 +206,18 @@ export function claudePaneObservation(screen) {
202
206
  return { state: "blocked", reason: "startup_dialog" };
203
207
  return { state: "unknown", reason: "unrecognized_screen" };
204
208
  }
209
+ function claudeLoginMethodMenu(screen) {
210
+ const tail = screen.split("\n").slice(-32).join("\n");
211
+ const lastMarker = tail.split(/\r?\n/u).filter(line => /^\s*❯/u.test(line)).at(-1)?.trim();
212
+ return tail.includes("Select login method:")
213
+ && /^❯\s*(?:Claude account with subscription|Anthropic Console account|3rd-party platform)/u.test(lastMarker ?? "");
214
+ }
205
215
  export function claudeStartupAction(screen, trustProject) {
216
+ const tail = screen.split("\n").slice(-32).join("\n");
217
+ const lastMarker = tail.split(/\r?\n/u).filter(line => /^\s*❯/u.test(line)).at(-1)?.trim();
218
+ if (tail.includes("Choose the text style that looks best with your terminal")
219
+ && /^❯\s*[1-7]\.\s*(?:Auto \(match terminal\)|Dark mode|Light mode)/u.test(lastMarker ?? ""))
220
+ return { kind: "initial_theme_selected", keys: ["Enter"] };
206
221
  // 既存launcherで扱っていた2確認は従来の起動契約を維持する。
207
222
  if (screen.includes("Is this a project you created or one you trust")
208
223
  && screen.includes("No, exit") && screen.includes("Yes, I trust this folder"))
package/docs/DESIGN.md CHANGED
@@ -171,6 +171,8 @@ APIエラー監視の参照先を一致させ、監視中のリンク変更で
171
171
  hookを外す時は`aiterm-setup --remove-cursor-parent-hooks`で専用entryだけを解除する。
172
172
 
173
173
  `trust_project:true`は対象projectの既知のworkspace、hooks、MCP初期同意を起動準備として進める意図である。
174
+ Claude Codeの初回テーマ選択は選択済みの項目を確定し、後続の起動準備へ進める。
175
+ ログイン方式の選択はユーザーのアカウント設定として扱い、composerと誤認せず`vendor_onboarding_required`で止める。
174
176
  promptなしでも入力受付とharness生存を確認して`startup.ready`を返す。指定なしのpromptなし起動は
175
177
  従来どおり`startup.not_checked`で返す。初手receiptは未要求・未送信・送信済み未確認・開始確認を分ける。
176
178
  開始の証拠は送信後の実行表示、実行中の既知承認、または同じcursor以降の完了だけとし、残存なしでは代用しない。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiterm-mcp",
3
- "version": "0.38.1",
3
+ "version": "0.38.2",
4
4
  "mcpName": "io.github.kitepon/aiterm-mcp",
5
5
  "description": "Persistent terminal MCP with one harness-based launcher for Claude Code, Codex CLI, Grok CLI, and Cursor Agent CLI, plus durable PTYs for SSH, containers, and REPLs.",
6
6
  "keywords": [