aiterm-mcp 0.38.0 → 0.38.1
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 +8 -1
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/cursor-parent-receiver.js +9 -1
- package/dist/index.js +7 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.38.1] - 2026-09-22
|
|
11
|
+
|
|
12
|
+
### 修正
|
|
13
|
+
|
|
14
|
+
- Cursor親のhookへ渡るtool結果は本文だけで、`structuredContent`の`delivery_id`が落ちる。dispatchの本文へ`delivery_id`行を出し、hookがその行から会話へ束縛する。
|
|
15
|
+
|
|
10
16
|
## [0.38.0] - 2026-09-22
|
|
11
17
|
|
|
12
18
|
### 追加
|
|
@@ -1738,7 +1744,8 @@ prototype (preserved under `prototype/python/` as the porting source and referen
|
|
|
1738
1744
|
`ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
|
|
1739
1745
|
provenance.
|
|
1740
1746
|
|
|
1741
|
-
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.
|
|
1747
|
+
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.1...HEAD
|
|
1748
|
+
[0.38.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.38.0...v0.38.1
|
|
1742
1749
|
[0.38.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.10...v0.38.0
|
|
1743
1750
|
[0.37.10]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.9...v0.37.10
|
|
1744
1751
|
[0.37.9]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.8...v0.37.9
|
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.
|
|
205
|
+
**状態:** 開発継続中 · 現行公開版 **v0.38.1** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
|
|
206
206
|
|
|
207
207
|
### 更新と巻き戻し
|
|
208
208
|
|
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.
|
|
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).
|
|
220
220
|
|
|
221
221
|
### Update and rollback
|
|
222
222
|
|
|
@@ -126,7 +126,7 @@ function deliveryIdFromResult(value, depth = 0) {
|
|
|
126
126
|
if (entry !== null && typeof entry === "object" && entry.type === "text") {
|
|
127
127
|
const text = entry.text;
|
|
128
128
|
if (typeof text === "string") {
|
|
129
|
-
const id = deliveryIdFromResult(text, depth + 1);
|
|
129
|
+
const id = deliveryIdFromResult(text, depth + 1) ?? deliveryIdInText(text);
|
|
130
130
|
if (id)
|
|
131
131
|
return id;
|
|
132
132
|
}
|
|
@@ -135,6 +135,14 @@ function deliveryIdFromResult(value, depth = 0) {
|
|
|
135
135
|
}
|
|
136
136
|
return null;
|
|
137
137
|
}
|
|
138
|
+
function deliveryIdInText(text) {
|
|
139
|
+
for (const line of text.split("\n")) {
|
|
140
|
+
const match = /^delivery_id=([0-9a-f-]{36})$/i.exec(line.trim());
|
|
141
|
+
if (match && deliveryIdSchema.safeParse(match[1]).success)
|
|
142
|
+
return match[1];
|
|
143
|
+
}
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
138
146
|
function toolBaseName(name) {
|
|
139
147
|
const tail = name.split(/[:.]/).pop() ?? name;
|
|
140
148
|
return tail.replace(/^mcp__aiterm__/, "");
|
package/dist/index.js
CHANGED
|
@@ -42,6 +42,10 @@ async function deliveryForRequest(extra) {
|
|
|
42
42
|
await parentDelivery.prepare(parent);
|
|
43
43
|
return parentDelivery.request(parent);
|
|
44
44
|
}
|
|
45
|
+
function deliveryIdLine(delivery) {
|
|
46
|
+
const id = delivery?.result()?.delivery_id;
|
|
47
|
+
return id ? `\ndelivery_id=${id}` : "";
|
|
48
|
+
}
|
|
45
49
|
function completionWait(delivery, session, eventCursor) {
|
|
46
50
|
if (eventCursor === null)
|
|
47
51
|
return { wait_process: null, wait_command: null };
|
|
@@ -213,7 +217,8 @@ server.registerTool("pty_send", {
|
|
|
213
217
|
type: "text",
|
|
214
218
|
text: `dispatchした(harness=${receipt.harness}, vendor=${receipt.vendor})。\n` +
|
|
215
219
|
core.agentDispatchGuide(receipt.session_id, receipt.event_cursor) +
|
|
216
|
-
core.agentSubmitResidueWarning(receipt.session_id, receipt.submit_residue)
|
|
220
|
+
core.agentSubmitResidueWarning(receipt.session_id, receipt.submit_residue) +
|
|
221
|
+
deliveryIdLine(delivery),
|
|
217
222
|
},
|
|
218
223
|
],
|
|
219
224
|
structuredContent: {
|
|
@@ -718,7 +723,7 @@ async function launchAgent(kind, args, extra) {
|
|
|
718
723
|
: {}),
|
|
719
724
|
};
|
|
720
725
|
return {
|
|
721
|
-
content: [{ type: "text", text: `session_id: ${sid}\n${hint}` }],
|
|
726
|
+
content: [{ type: "text", text: `session_id: ${sid}\n${hint}${deliveryIdLine(delivery)}` }],
|
|
722
727
|
structuredContent: structured,
|
|
723
728
|
...(initialDelivery.status === "submitted_unconfirmed" ? { isError: true } : {}),
|
|
724
729
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiterm-mcp",
|
|
3
|
-
"version": "0.38.
|
|
3
|
+
"version": "0.38.1",
|
|
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": [
|