weztermcp 0.1.0 → 0.1.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/README.md +10 -2
- package/build/exec_async.js +4 -0
- package/build/exec_async.js.map +1 -0
- package/build/index.js +29 -9
- package/build/index.js.map +1 -1
- package/build/send_control_character.js +1 -3
- package/build/send_control_character.js.map +1 -1
- package/build/wezterm_check.js +1 -3
- package/build/wezterm_check.js.map +1 -1
- package/build/wezterm_executor.js +58 -16
- package/build/wezterm_executor.js.map +1 -1
- package/build/wezterm_output_reader.js +1 -3
- package/build/wezterm_output_reader.js.map +1 -1
- package/package.json +1 -2
- package/build/index.d.ts +0 -3
- package/build/index.d.ts.map +0 -1
- package/build/send_control_character.d.ts +0 -8
- package/build/send_control_character.d.ts.map +0 -1
- package/build/wezterm_check.d.ts +0 -6
- package/build/wezterm_check.d.ts.map +0 -1
- package/build/wezterm_executor.d.ts +0 -20
- package/build/wezterm_executor.d.ts.map +0 -1
- package/build/wezterm_output_reader.d.ts +0 -11
- package/build/wezterm_output_reader.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -12,10 +12,18 @@ It allows you to control WezTerm from Claude Desktop and other MCP clients.
|
|
|
12
12
|
| `wezterm_pane_write` | `command: string`, `pane_id: number` | — | Writes text or runs a command in the specified pane |
|
|
13
13
|
| `wezterm_pane_read` | — | `lines: number` (default 50), `pane_id: number` | Reads output from a pane's scrollback buffer |
|
|
14
14
|
| `wezterm_pane_send_key` | `character: string`, `pane_id: number` | — | Sends a control character to the specified pane (e.g. `"c"` for Ctrl+C) |
|
|
15
|
-
| `wezterm_pane_list` | — |
|
|
15
|
+
| `wezterm_pane_list` | — | `window_id: number`, `tab_id: number` | Lists panes, scoped to the active window/tab by default |
|
|
16
16
|
| `wezterm_pane_switch` | `pane_id: number` | — | Switches focus to the specified pane |
|
|
17
17
|
| `wezterm_pane_close` | `pane_id: number` | — | Closes the specified pane |
|
|
18
|
-
| `wezterm_pane_split` | `
|
|
18
|
+
| `wezterm_pane_split` | `direction: "Right"\|"Left"\|"Top"\|"Bottom"` | `pane_id: number`, `window_id: number`, `tab_id: number` | Splits a pane and returns the new pane ID |
|
|
19
|
+
|
|
20
|
+
## Multi-window and multi-tab support
|
|
21
|
+
|
|
22
|
+
`pane_id` is globally unique across all of WezTerm's windows and tabs, so most tools (`wezterm_pane_write`, `wezterm_pane_read`, `wezterm_pane_send_key`, `wezterm_pane_switch`, `wezterm_pane_close`) don't need window/tab scoping — they just target the pane directly.
|
|
23
|
+
|
|
24
|
+
`wezterm_pane_list` and `wezterm_pane_split` are the exceptions, since they need to know *which* window/tab to operate on when a specific pane isn't given:
|
|
25
|
+
- `wezterm_pane_list` defaults to listing only the panes in the currently focused window and tab. Pass `window_id` and/or `tab_id` to list panes elsewhere.
|
|
26
|
+
- `wezterm_pane_split` defaults to splitting the currently focused pane. If `pane_id` is omitted, pass `window_id`/`tab_id` to split the focused pane within that window/tab instead.
|
|
19
27
|
|
|
20
28
|
## Security
|
|
21
29
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec_async.js","sourceRoot":"","sources":["../src/exec_async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -12,7 +12,13 @@ const server = new Server({
|
|
|
12
12
|
capabilities: {
|
|
13
13
|
tools: {},
|
|
14
14
|
},
|
|
15
|
+
instructions: "wezterm_pane_write does not return command output — follow it with wezterm_pane_read to see results. " +
|
|
16
|
+
"Call wezterm_pane_list first to discover valid pane_id values before targeting a pane with any other tool. " +
|
|
17
|
+
"wezterm_pane_close is destructive and irreversible; confirm with the user before closing a pane.",
|
|
15
18
|
});
|
|
19
|
+
const executor = new WeztermExecutor();
|
|
20
|
+
const outputReader = new WeztermOutputReader();
|
|
21
|
+
const controlCharSender = new SendControlCharacter();
|
|
16
22
|
// Tool definitions
|
|
17
23
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
18
24
|
return {
|
|
@@ -76,10 +82,19 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
76
82
|
{
|
|
77
83
|
name: "wezterm_pane_list",
|
|
78
84
|
title: "List WezTerm Panes",
|
|
79
|
-
description: "EXECUTION TOOL. Enumerates
|
|
85
|
+
description: "EXECUTION TOOL. Enumerates open panes, returning pane IDs, window/tab IDs, and titles. WHEN: 'what panes are open', 'show pane list', 'which pane is active', 'find pane ID'. Default (no window_id/tab_id): scoped to the currently active/focused window and tab only, not every pane across every window. Pass window_id and/or tab_id to list panes elsewhere. Does NOT switch focus or read pane content. Use returned pane_id values with other tools. Example: call before wezterm_pane_write to discover the target pane_id.",
|
|
80
86
|
inputSchema: {
|
|
81
87
|
type: "object",
|
|
82
|
-
properties: {
|
|
88
|
+
properties: {
|
|
89
|
+
window_id: {
|
|
90
|
+
type: "number",
|
|
91
|
+
description: "Integer ID of the window to scope the listing to. Default: the window containing the currently focused pane. Combine with wezterm_pane_list (no args) to discover window_id values.",
|
|
92
|
+
},
|
|
93
|
+
tab_id: {
|
|
94
|
+
type: "number",
|
|
95
|
+
description: "Integer ID of the tab to scope the listing to. Default: the tab containing the currently focused pane. Combine with wezterm_pane_list (no args) to discover tab_id values.",
|
|
96
|
+
},
|
|
97
|
+
},
|
|
83
98
|
},
|
|
84
99
|
},
|
|
85
100
|
{
|
|
@@ -121,7 +136,15 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
121
136
|
properties: {
|
|
122
137
|
pane_id: {
|
|
123
138
|
type: "number",
|
|
124
|
-
description: "Integer ID of the pane to split. Obtain valid IDs from wezterm_pane_list. The existing pane retains its content; the new pane opens a fresh shell.",
|
|
139
|
+
description: "Integer ID of the pane to split. Obtain valid IDs from wezterm_pane_list. The existing pane retains its content; the new pane opens a fresh shell. Default: the currently focused pane, optionally narrowed by window_id/tab_id.",
|
|
140
|
+
},
|
|
141
|
+
window_id: {
|
|
142
|
+
type: "number",
|
|
143
|
+
description: "Only used when pane_id is omitted. Scopes which window's focused pane is split. Default: the window containing the currently focused pane.",
|
|
144
|
+
},
|
|
145
|
+
tab_id: {
|
|
146
|
+
type: "number",
|
|
147
|
+
description: "Only used when pane_id is omitted. Scopes which tab's focused pane is split. Default: the tab containing the currently focused pane.",
|
|
125
148
|
},
|
|
126
149
|
direction: {
|
|
127
150
|
type: "string",
|
|
@@ -129,7 +152,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
129
152
|
description: "Direction in which to create the new pane relative to the existing one. 'Right' and 'Left' split vertically (side by side); 'Top' and 'Bottom' split horizontally (stacked). Must be exactly one of: Right, Left, Top, Bottom (case-sensitive).",
|
|
130
153
|
},
|
|
131
154
|
},
|
|
132
|
-
required: ["
|
|
155
|
+
required: ["direction"],
|
|
133
156
|
},
|
|
134
157
|
},
|
|
135
158
|
],
|
|
@@ -137,9 +160,6 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
137
160
|
});
|
|
138
161
|
// Tool execution
|
|
139
162
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
140
|
-
const executor = new WeztermExecutor();
|
|
141
|
-
const outputReader = new WeztermOutputReader();
|
|
142
|
-
const controlCharSender = new SendControlCharacter();
|
|
143
163
|
switch (request.params.name) {
|
|
144
164
|
case "wezterm_pane_write":
|
|
145
165
|
return await executor.writeToTerminal(request.params.arguments.command, request.params.arguments.pane_id);
|
|
@@ -150,13 +170,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
150
170
|
case "wezterm_pane_send_key":
|
|
151
171
|
return await controlCharSender.send(request.params.arguments.character, request.params.arguments.pane_id);
|
|
152
172
|
case "wezterm_pane_list":
|
|
153
|
-
return await executor.listPanes();
|
|
173
|
+
return await executor.listPanes(request.params.arguments.window_id, request.params.arguments.tab_id);
|
|
154
174
|
case "wezterm_pane_switch":
|
|
155
175
|
return await executor.switchPane(request.params.arguments.pane_id);
|
|
156
176
|
case "wezterm_pane_close":
|
|
157
177
|
return await executor.closePane(request.params.arguments.pane_id);
|
|
158
178
|
case "wezterm_pane_split":
|
|
159
|
-
return await executor.splitPane(request.params.arguments.pane_id, request.params.arguments.direction);
|
|
179
|
+
return await executor.splitPane(request.params.arguments.pane_id, request.params.arguments.direction, request.params.arguments.window_id, request.params.arguments.tab_id);
|
|
160
180
|
default:
|
|
161
181
|
throw new Error(`Unknown tool: ${request.params.name}`);
|
|
162
182
|
}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { promisify } from "util";
|
|
1
|
+
import { execAsync } from "./exec_async.js";
|
|
3
2
|
import { assertWeztermInstalled, notInstalledResult } from "./wezterm_check.js";
|
|
4
|
-
const execAsync = promisify(exec);
|
|
5
3
|
export default class SendControlCharacter {
|
|
6
4
|
weztermCli;
|
|
7
5
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send_control_character.js","sourceRoot":"","sources":["../src/send_control_character.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"send_control_character.js","sourceRoot":"","sources":["../src/send_control_character.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC/B,UAAU,CAAS;IAE3B;QACE,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,MAAe;QAC3C,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC3C,IAAI,GAAG;YAAE,OAAO,kBAAkB,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,UAAU,GAA8B;gBAC5C,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;gBACrB,CAAC,EAAE,OAAO,EAAE,SAAS;aACtB,CAAC;YAEF,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,aAAa,QAAQ,MAAM,UAAU,GAAG,CAAC,CAAC;YAE5E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gCAAgC,SAAS,CAAC,WAAW,EAAE,EAAE;qBAChE;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
package/build/wezterm_check.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { promisify } from "util";
|
|
3
|
-
const execAsync = promisify(exec);
|
|
1
|
+
import { execAsync } from "./exec_async.js";
|
|
4
2
|
export const NOT_INSTALLED_MSG = "WezTerm is not installed or not on PATH. Install it from https://wezfurlong.org/wezterm/ and ensure 'wezterm' is accessible.";
|
|
5
3
|
export async function assertWeztermInstalled() {
|
|
6
4
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_check.js","sourceRoot":"","sources":["../src/wezterm_check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wezterm_check.js","sourceRoot":"","sources":["../src/wezterm_check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAC5B,8HAA8H,CAAC;AAEjI,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { promisify } from "util";
|
|
1
|
+
import { execAsync } from "./exec_async.js";
|
|
3
2
|
import { assertWeztermInstalled, notInstalledResult } from "./wezterm_check.js";
|
|
4
|
-
const execAsync = promisify(exec);
|
|
5
3
|
export default class WeztermExecutor {
|
|
6
4
|
weztermCli;
|
|
7
5
|
constructor() {
|
|
8
6
|
this.weztermCli = "wezterm cli";
|
|
9
7
|
}
|
|
8
|
+
async listAllPanes() {
|
|
9
|
+
const { stdout } = await execAsync(`${this.weztermCli} list --format json`);
|
|
10
|
+
return JSON.parse(stdout);
|
|
11
|
+
}
|
|
12
|
+
async getFocusedPaneId() {
|
|
13
|
+
const { stdout } = await execAsync(`${this.weztermCli} list-clients --format json`);
|
|
14
|
+
const clients = JSON.parse(stdout);
|
|
15
|
+
return clients[0]?.focused_pane_id;
|
|
16
|
+
}
|
|
17
|
+
async resolveTargetPaneId(windowId, tabId) {
|
|
18
|
+
const focusedPaneId = await this.getFocusedPaneId();
|
|
19
|
+
if (windowId === undefined && tabId === undefined) {
|
|
20
|
+
return focusedPaneId;
|
|
21
|
+
}
|
|
22
|
+
const panes = await this.listAllPanes();
|
|
23
|
+
const focusedPane = panes.find((p) => p.pane_id === focusedPaneId);
|
|
24
|
+
const inScope = (p) => (windowId === undefined || p.window_id === windowId) &&
|
|
25
|
+
(tabId === undefined || p.tab_id === tabId);
|
|
26
|
+
if (focusedPane && inScope(focusedPane)) {
|
|
27
|
+
return focusedPaneId;
|
|
28
|
+
}
|
|
29
|
+
return panes.find(inScope)?.pane_id;
|
|
30
|
+
}
|
|
10
31
|
async writeToTerminal(command, paneId) {
|
|
11
32
|
const err = await assertWeztermInstalled();
|
|
12
33
|
if (err)
|
|
@@ -34,20 +55,30 @@ export default class WeztermExecutor {
|
|
|
34
55
|
};
|
|
35
56
|
}
|
|
36
57
|
}
|
|
37
|
-
async listPanes() {
|
|
58
|
+
async listPanes(windowId, tabId) {
|
|
38
59
|
const err = await assertWeztermInstalled();
|
|
39
60
|
if (err)
|
|
40
61
|
return notInstalledResult();
|
|
41
62
|
try {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
63
|
+
const panes = await this.listAllPanes();
|
|
64
|
+
let scopedWindowId = windowId;
|
|
65
|
+
let scopedTabId = tabId;
|
|
66
|
+
if (scopedWindowId === undefined && scopedTabId === undefined) {
|
|
67
|
+
const focusedPaneId = await this.getFocusedPaneId();
|
|
68
|
+
const focusedPane = panes.find((p) => p.pane_id === focusedPaneId);
|
|
69
|
+
if (focusedPane) {
|
|
70
|
+
scopedWindowId = focusedPane.window_id;
|
|
71
|
+
scopedTabId = focusedPane.tab_id;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const filtered = panes.filter((p) => (scopedWindowId === undefined || p.window_id === scopedWindowId) &&
|
|
75
|
+
(scopedTabId === undefined || p.tab_id === scopedTabId));
|
|
76
|
+
const text = filtered.length
|
|
77
|
+
? filtered
|
|
78
|
+
.map((p) => `pane_id=${p.pane_id} window_id=${p.window_id} tab_id=${p.tab_id} title="${p.title}"`)
|
|
79
|
+
.join("\n")
|
|
80
|
+
: "(no panes found)";
|
|
81
|
+
return { content: [{ type: "text", text }] };
|
|
51
82
|
}
|
|
52
83
|
catch (error) {
|
|
53
84
|
return {
|
|
@@ -102,18 +133,29 @@ export default class WeztermExecutor {
|
|
|
102
133
|
};
|
|
103
134
|
}
|
|
104
135
|
}
|
|
105
|
-
async splitPane(paneId, direction) {
|
|
136
|
+
async splitPane(paneId, direction, windowId, tabId) {
|
|
106
137
|
const err = await assertWeztermInstalled();
|
|
107
138
|
if (err)
|
|
108
139
|
return notInstalledResult();
|
|
109
140
|
const dirFlag = `--${direction.toLowerCase()}`;
|
|
110
141
|
try {
|
|
111
|
-
const
|
|
142
|
+
const targetPaneId = paneId !== undefined ? paneId : await this.resolveTargetPaneId(windowId, tabId);
|
|
143
|
+
if (targetPaneId === undefined) {
|
|
144
|
+
return {
|
|
145
|
+
content: [
|
|
146
|
+
{
|
|
147
|
+
type: "text",
|
|
148
|
+
text: "Failed to split pane: could not resolve a target pane. Specify pane_id explicitly, or ensure a WezTerm window/tab is focused.",
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const { stdout } = await execAsync(`${this.weztermCli} split-pane --pane-id ${targetPaneId} ${dirFlag}`);
|
|
112
154
|
return {
|
|
113
155
|
content: [
|
|
114
156
|
{
|
|
115
157
|
type: "text",
|
|
116
|
-
text: `Split pane ${
|
|
158
|
+
text: `Split pane ${targetPaneId} ${direction}. New pane id: ${stdout.trim()}`,
|
|
117
159
|
},
|
|
118
160
|
],
|
|
119
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_executor.js","sourceRoot":"","sources":["../src/wezterm_executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wezterm_executor.js","sourceRoot":"","sources":["../src/wezterm_executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { promisify } from "util";
|
|
1
|
+
import { execAsync } from "./exec_async.js";
|
|
3
2
|
import { assertWeztermInstalled, notInstalledResult } from "./wezterm_check.js";
|
|
4
|
-
const execAsync = promisify(exec);
|
|
5
3
|
export default class WeztermOutputReader {
|
|
6
4
|
weztermCli;
|
|
7
5
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_output_reader.js","sourceRoot":"","sources":["../src/wezterm_output_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wezterm_output_reader.js","sourceRoot":"","sources":["../src/wezterm_output_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC9B,UAAU,CAAS;IAE3B;QACE,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,EAAE,MAAe;QAClD,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC3C,IAAI,GAAG;YAAE,OAAO,kBAAkB,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,OAAe,CAAC;YACpB,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,sBAAsB,UAAU,EAAE,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC;gBACzB,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,oCAAoC,SAAS,GAAG,UAAU,EAAE,CAAC;YAC3F,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YAE5C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM,IAAI,gBAAgB;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mCAAmC,KAAK,CAAC,OAAO,8FAA8F;qBACrJ;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAe;QACrC,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC3C,IAAI,GAAG;YAAE,OAAO,kBAAkB,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAChC,GAAG,IAAI,CAAC,UAAU,sBAAsB,UAAU,EAAE,CACrD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM,IAAI,gBAAgB;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE;qBACxD;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weztermcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "mcp server for wezterm ",
|
|
5
5
|
"homepage": "https://github.com/ajmarkow/weztermcp#readme",
|
|
6
6
|
"repository": {
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
"@types/node": "^22.15.23",
|
|
37
37
|
"jest": "^29.7.0",
|
|
38
38
|
"ts-jest": "^29.4.11",
|
|
39
|
-
"ts-node": "^10.9.2",
|
|
40
39
|
"typescript": "^5.8.3"
|
|
41
40
|
}
|
|
42
41
|
}
|
package/build/index.d.ts
DELETED
package/build/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send_control_character.d.ts","sourceRoot":"","sources":["../src/send_control_character.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,UAAU,CAAS;;IAMrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;CAoC5E"}
|
package/build/wezterm_check.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const NOT_INSTALLED_MSG = "WezTerm is not installed or not on PATH. Install it from https://wezfurlong.org/wezterm/ and ensure 'wezterm' is accessible.";
|
|
2
|
-
export declare function assertWeztermInstalled(): Promise<string | null>;
|
|
3
|
-
export declare function notInstalledResult(): {
|
|
4
|
-
content: any[];
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=wezterm_check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_check.d.ts","sourceRoot":"","sources":["../src/wezterm_check.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,iIACkG,CAAC;AAEjI,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUrE;AAED,wBAAgB,kBAAkB,IAAI;IAAE,OAAO,EAAE,GAAG,EAAE,CAAA;CAAE,CAEvD"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export default class WeztermExecutor {
|
|
2
|
-
private weztermCli;
|
|
3
|
-
constructor();
|
|
4
|
-
writeToTerminal(command: string, paneId: number): Promise<{
|
|
5
|
-
content: any[];
|
|
6
|
-
}>;
|
|
7
|
-
listPanes(): Promise<{
|
|
8
|
-
content: any[];
|
|
9
|
-
}>;
|
|
10
|
-
switchPane(paneId: number): Promise<{
|
|
11
|
-
content: any[];
|
|
12
|
-
}>;
|
|
13
|
-
closePane(paneId: number): Promise<{
|
|
14
|
-
content: any[];
|
|
15
|
-
}>;
|
|
16
|
-
splitPane(paneId: number, direction: "Right" | "Left" | "Top" | "Bottom"): Promise<{
|
|
17
|
-
content: any[];
|
|
18
|
-
}>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=wezterm_executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_executor.d.ts","sourceRoot":"","sources":["../src/wezterm_executor.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,UAAU,CAAS;;IAMrB,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IA4BxB,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAyBxC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAyBvD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAetD,SAAS,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAC7C,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;CA2B/B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default class WeztermOutputReader {
|
|
2
|
-
private weztermCli;
|
|
3
|
-
constructor();
|
|
4
|
-
readOutput(lines?: number, paneId?: number): Promise<{
|
|
5
|
-
content: any[];
|
|
6
|
-
}>;
|
|
7
|
-
readCurrentScreen(paneId?: number): Promise<{
|
|
8
|
-
content: any[];
|
|
9
|
-
}>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=wezterm_output_reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wezterm_output_reader.d.ts","sourceRoot":"","sources":["../src/wezterm_output_reader.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC,OAAO,CAAC,UAAU,CAAS;;IAMrB,UAAU,CAAC,KAAK,GAAE,MAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAoC5E,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;CA4BtE"}
|