aiterm-mcp 0.55.2 → 0.55.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/CHANGELOG.md +16 -1
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/claude-parent-receiver.js +4 -0
- package/dist/index.js +16 -1
- package/docs/DESIGN.md +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.55.3] - 2026-10-06
|
|
11
|
+
|
|
12
|
+
### 修正
|
|
13
|
+
|
|
14
|
+
- Claude Code親からの呼び出しを誤りで返す時、その呼び出しの置き場(Aiterm stateの`claude-parent-hooks/<tool_use_id>/`)を
|
|
15
|
+
返す前に消す(ADR 0096、`aiterm-steer-delivery` 0.2.3)。Claude Codeは誤りの返りで`PostToolUse`のhookを走らせないので、
|
|
16
|
+
`request.json`だけの置き場が、1日後の見回りまで残っていた。連携元の本番で、`harness: "claude-code"`へ`write_scope`を
|
|
17
|
+
付けて断られた`agent_launch`の置き場が残っているのを見た。
|
|
18
|
+
- 消すのは、配送を結んでいない置き場だけ。配送を結んだ後に誤りで返した呼び出しの置き場は、今までどおり残す。
|
|
19
|
+
- 入力の検査で断る返りと、handlerの例外から作られる返りでも消す。
|
|
20
|
+
- Claude Codeが自分で断った呼び出し(引数が道具の定義に合わない)と、Claude側で打ち切られた呼び出しは、Aitermへ
|
|
21
|
+
返りが渡らないので、今までどおり1日後の見回りが消す。
|
|
22
|
+
- 道具の返り、配送の記録、hookの登録は変わらない。`aiterm-setup`の流し直しは要らない。
|
|
23
|
+
|
|
10
24
|
## [0.55.2] - 2026-10-06
|
|
11
25
|
|
|
12
26
|
### 修正
|
|
@@ -2283,7 +2297,8 @@ prototype (preserved under `prototype/python/` as the porting source and referen
|
|
|
2283
2297
|
`ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
|
|
2284
2298
|
provenance.
|
|
2285
2299
|
|
|
2286
|
-
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.55.
|
|
2300
|
+
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.55.3...HEAD
|
|
2301
|
+
[0.55.3]: https://github.com/kitepon/aiterm-mcp/compare/v0.55.2...v0.55.3
|
|
2287
2302
|
[0.55.2]: https://github.com/kitepon/aiterm-mcp/compare/v0.55.1...v0.55.2
|
|
2288
2303
|
[0.55.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.55.0...v0.55.1
|
|
2289
2304
|
[0.55.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.54.0...v0.55.0
|
package/README.ja.md
CHANGED
|
@@ -209,7 +209,7 @@ runtime-error store は canonical dotagents config の `collection.enabled: true
|
|
|
209
209
|
場合だけ収集し、既定OFF、network送信は行いません。tag起点CIのnpm provenance(OIDC Trusted
|
|
210
210
|
Publishing)で公開し、GitHub Release が Official MCP Registry を再登録します。
|
|
211
211
|
|
|
212
|
-
**状態:** 開発継続中 · 現行公開版 **v0.55.
|
|
212
|
+
**状態:** 開発継続中 · 現行公開版 **v0.55.3** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
|
|
213
213
|
|
|
214
214
|
### 更新と巻き戻し
|
|
215
215
|
|
package/README.md
CHANGED
|
@@ -223,7 +223,7 @@ collection is off by default and performs no network I/O. It ships via
|
|
|
223
223
|
tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
|
|
224
224
|
Release re-registers the Official MCP Registry entry.
|
|
225
225
|
|
|
226
|
-
**Status:** actively maintained · current public release **v0.55.
|
|
226
|
+
**Status:** actively maintained · current public release **v0.55.3** · 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).
|
|
227
227
|
|
|
228
228
|
### Update and rollback
|
|
229
229
|
|
|
@@ -17,6 +17,10 @@ export function claudeParentFromRequest(clientName, metadata, root = defaultRoot
|
|
|
17
17
|
}
|
|
18
18
|
export function verifyClaudeParent(parent) { steer.verifyClaudeParent(AITERM_PROFILE, parent); }
|
|
19
19
|
export function bindClaudeParentDelivery(parent, deliveryId) { steer.bindClaudeParentDelivery(AITERM_PROFILE, parent, deliveryId); }
|
|
20
|
+
/** 誤りで返す呼び出しの置き場を消す。配送を結んだ置き場は消さない。 */
|
|
21
|
+
export function discardClaudeHookRequest(clientName, metadata, root = defaultRoot()) {
|
|
22
|
+
return steer.discardClaudeHookRequest(clientName, metadata, root);
|
|
23
|
+
}
|
|
20
24
|
/** SessionEndはその時点の依頼だけを終了する。同じ会話をresumeした新規依頼は別requestになる。 */
|
|
21
25
|
export function closeClaudeParentSession(input, root = defaultRoot()) { steer.closeClaudeParentSession(input, root); }
|
|
22
26
|
export function submitClaudeParentAnswer(parent, deliveryId, text) {
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
13
13
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
14
|
+
import { CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
14
15
|
import { z } from "zod";
|
|
15
16
|
import { agentModelsResult } from "./model-catalog.js";
|
|
16
17
|
import * as core from "./core.js";
|
|
@@ -20,7 +21,7 @@ import { createRequire } from "node:module";
|
|
|
20
21
|
import { ParentDeliveryManager, deliveryKey } from "./parent-delivery.js";
|
|
21
22
|
import { acceptRemote, callRemoteTool, observeRemoteAgentDone, remoteInputDescription, remoteInputSchema, remoteLabel, remoteWaitProcess } from "./remote.js";
|
|
22
23
|
import { codexParentFromRequest } from "./codex-parent-receiver.js";
|
|
23
|
-
import { claudeParentFromRequest } from "./claude-parent-receiver.js";
|
|
24
|
+
import { claudeParentFromRequest, discardClaudeHookRequest } from "./claude-parent-receiver.js";
|
|
24
25
|
import { parentDeliveryDiagnostic } from "./parent-hook-diagnostic.js";
|
|
25
26
|
import { cursorParentFromRequest, isCursorMcpClient } from "./cursor-parent-receiver.js";
|
|
26
27
|
import { waitProcessCommandLine } from "./cursor-parent-receive.js";
|
|
@@ -31,6 +32,20 @@ import { INTERIM_RESULT_META_KEY, interimRequestFromMeta } from "./interim-words
|
|
|
31
32
|
// 除去済み=どちらの静的構文も 18〜22 全域を満たせないため(実行時 require が唯一全域で動く)。
|
|
32
33
|
const pkg = createRequire(import.meta.url)("../package.json");
|
|
33
34
|
const server = new McpServer({ name: "aiterm", version: pkg.version });
|
|
35
|
+
// 誤りの返りでは、Claude Code親は受け口のPostToolUse hookを走らせず、配送を結ばなかった呼び出しの置き場が残る。
|
|
36
|
+
// 返す前にここで消す(ADR 0096)。McpServerは入力の検査の失敗やhandlerの例外も誤りの返りへ変えるので、
|
|
37
|
+
// toolごとのhandlerではなくtools/callの返りを見る。McpServerがそのhandlerを置くのは最初のtool登録の時で、その前に包む。
|
|
38
|
+
const setRequestHandler = server.server.setRequestHandler.bind(server.server);
|
|
39
|
+
server.server.setRequestHandler = ((schema, handler) => setRequestHandler(schema, schema !== CallToolRequestSchema ? handler : async (request, extra) => {
|
|
40
|
+
const result = await handler(request, extra);
|
|
41
|
+
// 片付けの失敗で返りを変えない。残った置き場は、後の依頼のhookが見回って消す。
|
|
42
|
+
if (result?.isError)
|
|
43
|
+
try {
|
|
44
|
+
await discardClaudeHookRequest(server.server.getClientVersion()?.name, extra._meta);
|
|
45
|
+
}
|
|
46
|
+
catch { /* 見回りへ回す */ }
|
|
47
|
+
return result;
|
|
48
|
+
}));
|
|
34
49
|
let parentDelivery = null;
|
|
35
50
|
// 別端末の子の配送。記録の保存場所を分けるため、この端末の子とは別のmanagerにする。
|
|
36
51
|
let remoteParentDelivery = null;
|
package/docs/DESIGN.md
CHANGED
|
@@ -187,6 +187,7 @@ hookはNodeの実行ファイルと引数配列で直接起動し、shellやWind
|
|
|
187
187
|
hookとの受け渡しはAiterm stateの`claude-parent-hooks`へ、道具の呼び出しごとの置き場として置く。
|
|
188
188
|
届いた置き場は、送り手がhookの出し終えた記録を確かめた時に消す。届かなかった置き場と、配送を結ばなかった置き場は1日残し、
|
|
189
189
|
次の依頼の`PreToolUse`のhookが消す。依頼元が居て配送を待っている置き場は残す(ADR 0094)。
|
|
190
|
+
誤りで返す呼び出しは、Claude Codeが`PostToolUse`を走らせないので、配送を結んでいない置き場をAitermが返す前に消す(ADR 0096)。
|
|
190
191
|
|
|
191
192
|
hookの登録は、`args`を使わずshellを通す1行で書く(ADR 0089)。POSIXは`exec '<node>' '<hook>'`、Windowsは
|
|
192
193
|
`& '<node>' '<hook>'; exit (Get-Variable LASTEXITCODE -ValueOnly)`と`shell: "powershell"`。同じ設定をGrokも読み、
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiterm-mcp",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.3",
|
|
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": [
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
74
|
-
"aiterm-steer-delivery": "^0.2.
|
|
74
|
+
"aiterm-steer-delivery": "^0.2.3",
|
|
75
75
|
"ws": "8.21.3",
|
|
76
76
|
"zod": "^4.4.3"
|
|
77
77
|
},
|