aiterm-mcp 0.29.23 → 0.29.25
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 +16 -1
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/core.js +36 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.29.25] - 2026-09-02
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- 無人Claude起動時に最初だけ表示されるBypass Permissions確認を進め、続くworkspace trust確認と初回promptまで一度の起動で完了する。
|
|
15
|
+
|
|
16
|
+
## [0.29.24] - 2026-09-02
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- 無人Claude起動時のworkspace trust確認を起動処理内で完了し、初回promptを入力欄へ届ける。
|
|
21
|
+
- Cursorの長文pasteで末尾が画面外にある場合も、本文入りcomposerを未submitとして検出し、偽の成功receiptを返さない。
|
|
22
|
+
|
|
10
23
|
## [0.29.23] - 2026-09-02
|
|
11
24
|
|
|
12
25
|
### Changed
|
|
@@ -1487,7 +1500,9 @@ prototype (preserved under `prototype/python/` as the porting source and referen
|
|
|
1487
1500
|
`ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
|
|
1488
1501
|
provenance.
|
|
1489
1502
|
|
|
1490
|
-
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.
|
|
1503
|
+
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.25...HEAD
|
|
1504
|
+
[0.29.25]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.24...v0.29.25
|
|
1505
|
+
[0.29.24]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.23...v0.29.24
|
|
1491
1506
|
[0.29.23]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.22...v0.29.23
|
|
1492
1507
|
[0.29.22]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.21...v0.29.22
|
|
1493
1508
|
[0.29.21]: https://github.com/kitepon/aiterm-mcp/compare/v0.29.20...v0.29.21
|
package/README.ja.md
CHANGED
|
@@ -153,7 +153,7 @@ runtime-error store は canonical dotagents config の `collection.enabled: true
|
|
|
153
153
|
場合だけ収集し、既定OFF、network送信は行いません。tag起点CIのnpm provenance(OIDC Trusted
|
|
154
154
|
Publishing)で公開し、GitHub Release が Official MCP Registry を再登録します。
|
|
155
155
|
|
|
156
|
-
**状態:** 開発継続中 · 現行公開版 **v0.29.
|
|
156
|
+
**状態:** 開発継続中 · 現行公開版 **v0.29.25** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
|
|
157
157
|
|
|
158
158
|
### 更新と巻き戻し
|
|
159
159
|
|
package/README.md
CHANGED
|
@@ -169,7 +169,7 @@ collection is off by default and performs no network I/O. It ships via
|
|
|
169
169
|
tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
|
|
170
170
|
Release re-registers the Official MCP Registry entry.
|
|
171
171
|
|
|
172
|
-
**Status:** actively maintained · current public release **v0.29.
|
|
172
|
+
**Status:** actively maintained · current public release **v0.29.25** · 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).
|
|
173
173
|
|
|
174
174
|
### Update and rollback
|
|
175
175
|
|
package/dist/core.js
CHANGED
|
@@ -2354,10 +2354,24 @@ function isAgentTuiActionRequired(kind, screen) {
|
|
|
2354
2354
|
if (kind === "claude") {
|
|
2355
2355
|
return /new MCP servers? found in this project/iu.test(screen)
|
|
2356
2356
|
|| screen.includes("Is this a project you created or one you trust")
|
|
2357
|
-
|| screen.includes("trust this folder")
|
|
2357
|
+
|| screen.includes("trust this folder")
|
|
2358
|
+
|| (screen.includes("Claude Code running in Bypass Permissions mode") && screen.includes("Yes, I accept"));
|
|
2358
2359
|
}
|
|
2359
2360
|
return false;
|
|
2360
2361
|
}
|
|
2362
|
+
function isClaudeWorkspaceTrustScreen(screen) {
|
|
2363
|
+
return screen.includes("Is this a project you created or one you trust")
|
|
2364
|
+
&& screen.includes("No, exit")
|
|
2365
|
+
&& screen.includes("Yes, I trust this folder");
|
|
2366
|
+
}
|
|
2367
|
+
function isClaudeBypassPermissionsScreen(screen) {
|
|
2368
|
+
return screen.includes("Claude Code running in Bypass Permissions mode")
|
|
2369
|
+
&& screen.includes("No, exit")
|
|
2370
|
+
&& screen.includes("Yes, I accept");
|
|
2371
|
+
}
|
|
2372
|
+
function isClaudeManagedLaunchConfirmation(screen) {
|
|
2373
|
+
return isClaudeWorkspaceTrustScreen(screen) || isClaudeBypassPermissionsScreen(screen);
|
|
2374
|
+
}
|
|
2361
2375
|
async function waitAgentTuiReadyImpl(kind, sample, sleepFn, opts = {}) {
|
|
2362
2376
|
const timeoutMs = opts.timeoutMs ?? AGENT_TUI_READY_TIMEOUT_MS;
|
|
2363
2377
|
const pollMs = opts.pollMs ?? AGENT_TUI_READY_POLL_MS;
|
|
@@ -2427,6 +2441,17 @@ function agentSubmitResidueOnScreen(kind, screen, tail) {
|
|
|
2427
2441
|
}
|
|
2428
2442
|
if (markerIdx < 0)
|
|
2429
2443
|
return null;
|
|
2444
|
+
if (kind === "cursor") {
|
|
2445
|
+
// Cursorは長いpasteを入力欄の先頭側だけ表示することがあり、送信文の末尾一致では
|
|
2446
|
+
// 座礁を検出できない。最新composerのmarkerと同じ行にplaceholder以外の本文が
|
|
2447
|
+
// 残っていれば、その本文自体を未submitの陽性証拠とする。
|
|
2448
|
+
const sameRowText = lines[markerIdx]
|
|
2449
|
+
.replace(/^\s*(?:->|>|→)\s*/u, "")
|
|
2450
|
+
.trim();
|
|
2451
|
+
if (sameRowText.length > 0
|
|
2452
|
+
&& !/^(?:Add a follow-up|Plan,\s*search,\s*build anything)\b/iu.test(sameRowText))
|
|
2453
|
+
return true;
|
|
2454
|
+
}
|
|
2430
2455
|
return normalizeResidueText(lines.slice(markerIdx).join("")).includes(tail);
|
|
2431
2456
|
}
|
|
2432
2457
|
async function detectAgentSubmitResidueImpl(kind, text, sample, sleepFn, opts = {}) {
|
|
@@ -2562,7 +2587,16 @@ export async function sendInitialAgentPrompt(name, text, o = {}) {
|
|
|
2562
2587
|
throw new AitermError(`agent session '${name}' は起動時 prompt の完了待ちです。初回応答完了後に再度操作してください。`, 2);
|
|
2563
2588
|
}
|
|
2564
2589
|
setInitialPromptState(meta, "not_sent");
|
|
2565
|
-
|
|
2590
|
+
let ready = await waitAgentTuiReady(name, meta, o.ready_timeout ?? AGENT_TUI_READY_TIMEOUT_MS);
|
|
2591
|
+
// 無人Claude起動でCLI自身が順に出す、bypass mode確認とworkspace trustだけを
|
|
2592
|
+
// 起動処理の一部として進める。通常turn中の権限確認やMCP承認には触れない。
|
|
2593
|
+
for (let confirmations = 0; !ready.ready && meta.kind === "claude" && confirmations < 3 && isClaudeManagedLaunchConfirmation(ready.lastScreen); confirmations++) {
|
|
2594
|
+
sendKey(name, "Down", { preserveAgentOperation: true });
|
|
2595
|
+
await sleep(AGENT_SUBMIT_DELAY_MS);
|
|
2596
|
+
sendKey(name, "Enter", { preserveAgentOperation: true });
|
|
2597
|
+
await sleep(AGENT_SUBMIT_DELAY_MS);
|
|
2598
|
+
ready = await waitAgentTuiReady(name, meta, o.ready_timeout ?? AGENT_TUI_READY_TIMEOUT_MS);
|
|
2599
|
+
}
|
|
2566
2600
|
if (!ready.ready) {
|
|
2567
2601
|
// ready失敗は成功形で返さず明示エラーにする(実被弾 2026-08-25: Codexのupdate確認ダイアログで
|
|
2568
2602
|
// 未送信のまま成功形receiptが返り、呼び出し側が40分気づけなかった)。sessionは調査/復旧用に残る。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiterm-mcp",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.25",
|
|
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": [
|