aiterm-mcp 0.60.0 → 0.60.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 +12 -1
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/core.js +2 -2
- package/dist/harnesses/cursor.js +11 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.60.1] - 2026-10-13
|
|
11
|
+
|
|
12
|
+
### 修正
|
|
13
|
+
|
|
14
|
+
- WindowsでCursorの実行ファイル(`CURSOR_AGENT_BIN`、または既定の`~/.local/bin/cursor-agent`)がshebangのscriptの時、席のpaneの中で起きなかった。
|
|
15
|
+
WindowsのCursorの席はPowerShell 7のpaneから起こすが、PowerShellは`.exe`・`.com`・`.cmd`・`.bat`・`.ps1`でないfileを自分のconsoleで走らせない。
|
|
16
|
+
「実行できませんでした」で空のPowerShellのまま席が残るか、拡張子の関連付けでpaneの外の別の窓(Git Bash)に開いて、`pty_close`で席を閉じてもprocessが残った
|
|
17
|
+
(WindowsのCIが、偽のCursorの`bash.exe`を1回ごとに1つ残していた)。scriptは、control command(`status`・`models`)と同じGit Bashを、paneの中で挟んで走らせる。
|
|
18
|
+
公式の`cursor-agent.exe`・`cursor-agent.cmd`の起こし方は変えていない(本物の席は、閉じた後にprocessが残らない事をfoxで見た)。
|
|
19
|
+
|
|
10
20
|
## [0.60.0] - 2026-10-13
|
|
11
21
|
|
|
12
22
|
### 追加
|
|
@@ -2681,7 +2691,8 @@ prototype (preserved under `prototype/python/` as the porting source and referen
|
|
|
2681
2691
|
`ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
|
|
2682
2692
|
provenance.
|
|
2683
2693
|
|
|
2684
|
-
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.60.
|
|
2694
|
+
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.60.1...HEAD
|
|
2695
|
+
[0.60.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.60.0...v0.60.1
|
|
2685
2696
|
[0.60.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.59.1...v0.60.0
|
|
2686
2697
|
[0.59.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.59.0...v0.59.1
|
|
2687
2698
|
[0.59.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.58.4...v0.59.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.60.
|
|
212
|
+
**状態:** 開発継続中 · 現行公開版 **v0.60.1** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
|
|
213
213
|
|
|
214
214
|
### 更新と巻き戻し
|
|
215
215
|
|
package/README.md
CHANGED
|
@@ -227,7 +227,7 @@ collection is off by default and performs no network I/O. It ships via
|
|
|
227
227
|
tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
|
|
228
228
|
Release re-registers the Official MCP Registry entry.
|
|
229
229
|
|
|
230
|
-
**Status:** actively maintained · current public release **v0.60.
|
|
230
|
+
**Status:** actively maintained · current public release **v0.60.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).
|
|
231
231
|
|
|
232
232
|
### Update and rollback
|
|
233
233
|
|
package/dist/core.js
CHANGED
|
@@ -28,7 +28,7 @@ import { isDeepStrictEqual } from "node:util";
|
|
|
28
28
|
import { grokAuthPlan, grokAuthStatus, grokAuthPane, GROK_MODEL_DEFAULTS, realGrokHome, resolveAndValidateGrokAuth, assertGrokModelAvailable, grokModelChoices, grokModelFromFooter, grokFooterModelName, grokModelDefaultsFromBody, restoreGrokModelDefaults, grokEventsTranscript, latestGrokCompletion, grokTurnSettled, observeGrokDone, buildGrokAgentCmd, grokLaunchNote, grokEnvTokens, grokTuiReady, grokTuiBusy, grokPaneObservation, grokRateLimitDialog, grokPromptAwaitingAccept, grokUnacceptedPromptRestored, grokStartupAction, grokLaunchBlockingDialog, assertGrokSandboxNotRejected, GROK_COMPOSER_MARKER_RE, grokFooterHasConfiguration, grokTranscriptText, createGrokAgentMetadata, } from "./harnesses/grok.js";
|
|
29
29
|
import { codexAuthPlan, codexAuthStatus, codexAuthPane, realCodexHome, readCodexConfigPins, bindCodexTranscriptSession, latestCodexCompletion, codexTurnSettled, codexRunningTurn, observeCodexDone, buildCodexAgentCmd, codexLaunchNote, codexTuiReady, codexPaneObservation, codexTuiBusy, codexHelperProcess, codexRateLimitModelSwitchDialog, codexApprovalDialog, codexStartupAction, CODEX_COMPOSER_MARKER_RE, codexModelChoice, codexEffortChoice, codexMoreReasoningChoice, codexTranscriptText, createCodexAgentMetadata, codexModelChoices, codexFastCommandOffered, codexFooterShowsFast, codexServiceTierNotices, restoreCodexDefaults, restoreCodexDefaultInFile, } from "./harnesses/codex.js";
|
|
30
30
|
import { claudeAuthPlan, claudeAuthStatus, claudeAuthPane, OPERATION_ID_RE, CLAUDE_RESULT_MAX_BYTES, CLAUDE_EFFORTS, agentManagedClaudeSettingsPath, agentClaudeResultPath, agentClaudeOperationPath, agentClaudeApprovalReceiptPath, agentClaudeDispatchReceiptPath, validateOperationId, readClaudeResultText, assertClaudeAuthenticationReady, claudeModelChoices, claudeConfigDir, claudeFastIndicatorShown, claudeFastResult, buildClaudeAgentCmd, claudeLaunchNote, claudeTuiReady, claudePaneObservation, claudeUsageLimit, claudeLiveSelectMenu, claudeModelPicker, claudeModelPickerRow, claudeModelSwitchConfirm, claudeModelSwitchResult, claudeStartupAction, claudeLoginMethodMenu, CLAUDE_COMPOSER_MARKER_RE, createClaudeAgentMetadata, claudeSessionTranscriptPath, claudeApiErrorFromLine, claudeApiErrorAfter, } from "./harnesses/claude.js";
|
|
31
|
-
import { cursorAuthPlan, cursorAuthStatus, cursorAuthPane, bindCursorTranscriptSession, cursorTurnBoundary, latestCursorCompletion, observeCursorDone, cursorTranscriptText, assertCursorAuthenticationReady, assertCursorModelAvailable, cursorModelChoices, cursorModelIsFastVariant, cursorFastParameter, cursorHeaderShowsFast, cursorPickerView, cursorEffortSelected, cursorParameterRows, cursorUserConfigPath, CURSOR_DEFAULT_MODEL_KEYS, realCursorHome, buildCursorAgentCmd, cursorAgentArgv, cursorPwshLaunchLine, cursorPromptWithLineage, createCursorAgentMetadata, cursorLaunchNote, cursorEffortNavigation, cursorTuiReady, cursorPaneObservation, cursorPromptHooksRunning, cursorUsageLimit, CURSOR_SUBMIT_SEQUENCE, CURSOR_COMPOSER_CONTENT_MARKER_RE, validateCursorModelEffort, } from "./harnesses/cursor.js";
|
|
31
|
+
import { cursorAuthPlan, cursorAuthStatus, cursorAuthPane, bindCursorTranscriptSession, cursorTurnBoundary, latestCursorCompletion, observeCursorDone, cursorTranscriptText, assertCursorAuthenticationReady, assertCursorModelAvailable, cursorModelChoices, cursorModelIsFastVariant, cursorFastParameter, cursorHeaderShowsFast, cursorPickerView, cursorEffortSelected, cursorParameterRows, cursorUserConfigPath, CURSOR_DEFAULT_MODEL_KEYS, realCursorHome, buildCursorAgentCmd, cursorAgentArgv, cursorPwshArgv, cursorPwshLaunchLine, cursorPromptWithLineage, createCursorAgentMetadata, cursorLaunchNote, cursorEffortNavigation, cursorTuiReady, cursorPaneObservation, cursorPromptHooksRunning, cursorUsageLimit, CURSOR_SUBMIT_SEQUENCE, CURSOR_COMPOSER_CONTENT_MARKER_RE, validateCursorModelEffort, } from "./harnesses/cursor.js";
|
|
32
32
|
import { interimFromNow, readInterimWords, recordInterimBoundary } from "./interim-words.js";
|
|
33
33
|
import { codexSeatTurn, observeSteerDone, readSteerEntry, recordSteer } from "./steer-follow.js";
|
|
34
34
|
import { resolveAgentBin, resolveThroughlineBin, runThroughlineHandoffContext, isWindowsNativeExecutable, agentBinForPaneShell, resolveWinPaneShell } from "./agent-resolver.js";
|
|
@@ -5962,7 +5962,7 @@ export function openAgent(kind, opts = {}) {
|
|
|
5962
5962
|
launchNote = buildAgentLaunchNote(kind, model, effort, meta);
|
|
5963
5963
|
let full;
|
|
5964
5964
|
if (paneShell === "pwsh" && meta) {
|
|
5965
|
-
full = cursorPwshLaunchLine(cwd, cursorAgentEnvEntries(meta, sid, envVars), cursorAgentArgv(bin, model, effort, opts.prompt ?? null, meta, cursorFast));
|
|
5965
|
+
full = cursorPwshLaunchLine(cwd, cursorAgentEnvEntries(meta, sid, envVars), cursorPwshArgv(cursorAgentArgv(bin, model, effort, opts.prompt ?? null, meta, cursorFast), () => resolveWinPaneShell("bash")));
|
|
5966
5966
|
}
|
|
5967
5967
|
else {
|
|
5968
5968
|
const cmd = buildAgentCmd(kind, binForCmd, model, effort, opts.prompt ?? null, meta, cursorFast);
|
package/dist/harnesses/cursor.js
CHANGED
|
@@ -550,6 +550,17 @@ export function cursorPwshLaunchLine(cwd, env, argv) {
|
|
|
550
550
|
parts.push(`& ${argv.map(psq).join(" ")}`);
|
|
551
551
|
return parts.join("; ");
|
|
552
552
|
}
|
|
553
|
+
/**
|
|
554
|
+
* PowerShell 7のpaneで走らせるargv。PowerShellが自分のconsoleで走らせるのは .exe・.com・.cmd・.bat・.ps1 だけで、
|
|
555
|
+
* それ以外(受入が許すshebangのscript。拡張子なしも含む)を `&` で呼ぶと、拡張子の関連付けでpaneの外の別の窓に開く
|
|
556
|
+
* (fox実測 2026-10-14: `.sh` は `git-bash.exe` の窓で起き、席を閉じてもprocessが残った)。
|
|
557
|
+
* scriptは、control commandと同じGit Bashをpaneの中で挟んで走らせる。
|
|
558
|
+
*/
|
|
559
|
+
export function cursorPwshArgv(argv, scriptShell) {
|
|
560
|
+
if (/\.(?:exe|com|cmd|bat|ps1)$/i.test(argv[0]))
|
|
561
|
+
return argv;
|
|
562
|
+
return [scriptShell(), argv[0].replace(/\\/g, "/"), ...argv.slice(1)];
|
|
563
|
+
}
|
|
553
564
|
export function cursorPromptWithLineage(meta, prompt) {
|
|
554
565
|
return `${subagentInstruction(meta)}\n\n${prompt}`;
|
|
555
566
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiterm-mcp",
|
|
3
|
-
"version": "0.60.
|
|
3
|
+
"version": "0.60.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": [
|