crosspad-mcp-server 4.0.0 → 5.0.0
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/dist/config.d.ts +13 -3
- package/dist/config.js +89 -20
- package/dist/config.js.map +1 -1
- package/dist/index.js +214 -308
- package/dist/index.js.map +1 -1
- package/dist/tools/app-manager.d.ts +37 -0
- package/dist/tools/app-manager.js +230 -0
- package/dist/tools/app-manager.js.map +1 -0
- package/dist/tools/architecture.d.ts +1 -1
- package/dist/tools/architecture.js +43 -32
- package/dist/tools/architecture.js.map +1 -1
- package/dist/tools/build-check.js +2 -2
- package/dist/tools/build-check.js.map +1 -1
- package/dist/tools/build.js +2 -4
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/diff-core.js.map +1 -1
- package/dist/tools/idf-build.js +3 -3
- package/dist/tools/idf-build.js.map +1 -1
- package/dist/tools/log.js +3 -3
- package/dist/tools/log.js.map +1 -1
- package/dist/tools/repos.js +38 -28
- package/dist/tools/repos.js.map +1 -1
- package/dist/tools/screenshot.d.ts +1 -2
- package/dist/tools/screenshot.js +3 -10
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/symbols.js +4 -3
- package/dist/tools/symbols.js.map +1 -1
- package/dist/tools/test.js +2 -5
- package/dist/tools/test.js.map +1 -1
- package/dist/utils/exec.d.ts +12 -4
- package/dist/utils/exec.js +52 -17
- package/dist/utils/exec.js.map +1 -1
- package/package.json +24 -4
- package/server.json +0 -23
- package/src/config.ts +0 -45
- package/src/index.ts +0 -484
- package/src/tools/architecture.ts +0 -260
- package/src/tools/build-check.ts +0 -178
- package/src/tools/build.ts +0 -130
- package/src/tools/diff-core.ts +0 -130
- package/src/tools/idf-build.ts +0 -182
- package/src/tools/input.ts +0 -80
- package/src/tools/log.ts +0 -75
- package/src/tools/repos.ts +0 -75
- package/src/tools/scaffold.ts +0 -229
- package/src/tools/screenshot.ts +0 -100
- package/src/tools/settings.ts +0 -68
- package/src/tools/stats.ts +0 -38
- package/src/tools/symbols.ts +0 -185
- package/src/tools/test.ts +0 -264
- package/src/utils/exec.ts +0 -376
- package/src/utils/git.ts +0 -45
- package/src/utils/remote-client.ts +0 -107
- package/tsconfig.json +0 -16
package/dist/index.js
CHANGED
|
@@ -2,348 +2,254 @@
|
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
+
// Tool implementations
|
|
5
6
|
import { crosspadBuild, crosspadRun } from "./tools/build.js";
|
|
6
|
-
import { crosspadReposStatus } from "./tools/repos.js";
|
|
7
|
-
import { crosspadScaffoldApp } from "./tools/scaffold.js";
|
|
8
|
-
import { crosspadInterfaces, crosspadApps } from "./tools/architecture.js";
|
|
9
7
|
import { crosspadBuildCheck } from "./tools/build-check.js";
|
|
10
|
-
import { crosspadSearchSymbols } from "./tools/symbols.js";
|
|
11
|
-
import { crosspadDiffCore } from "./tools/diff-core.js";
|
|
12
8
|
import { crosspadLog } from "./tools/log.js";
|
|
9
|
+
import { crosspadIdfBuild } from "./tools/idf-build.js";
|
|
13
10
|
import { crosspadTest, crosspadTestScaffold } from "./tools/test.js";
|
|
11
|
+
import { crosspadReposStatus } from "./tools/repos.js";
|
|
12
|
+
import { crosspadDiffCore } from "./tools/diff-core.js";
|
|
13
|
+
import { crosspadSearchSymbols } from "./tools/symbols.js";
|
|
14
|
+
import { crosspadInterfaces, crosspadApps } from "./tools/architecture.js";
|
|
15
|
+
import { crosspadScaffoldApp } from "./tools/scaffold.js";
|
|
14
16
|
import { crosspadScreenshot } from "./tools/screenshot.js";
|
|
15
17
|
import { crosspadInput } from "./tools/input.js";
|
|
16
|
-
import { crosspadSettingsGet, crosspadSettingsSet } from "./tools/settings.js";
|
|
17
18
|
import { crosspadStats } from "./tools/stats.js";
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
version: "4.0.0",
|
|
22
|
-
}, {
|
|
23
|
-
capabilities: {
|
|
24
|
-
logging: {},
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* Create an OnLine callback that streams each line to the MCP client
|
|
29
|
-
* via logging notifications. Build output is "info", errors are "error".
|
|
30
|
-
*/
|
|
19
|
+
import { crosspadSettingsGet, crosspadSettingsSet } from "./tools/settings.js";
|
|
20
|
+
import { crosspadAppList, crosspadAppInstall, crosspadAppRemove, crosspadAppUpdate, crosspadAppSync, } from "./tools/app-manager.js";
|
|
21
|
+
const server = new McpServer({ name: "crosspad", version: "5.0.0" }, { capabilities: { logging: {} } });
|
|
31
22
|
function makeStreamLogger(logger) {
|
|
32
23
|
return (stream, line) => {
|
|
33
24
|
if (!line.trim())
|
|
34
|
-
return;
|
|
25
|
+
return;
|
|
35
26
|
const level = stream === "stderr" ? "warning" : "info";
|
|
36
27
|
server.server.sendLoggingMessage({ level, logger, data: line }).catch(() => { });
|
|
37
28
|
};
|
|
38
29
|
}
|
|
30
|
+
function jsonResponse(data) {
|
|
31
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
32
|
+
}
|
|
39
33
|
// ═══════════════════════════════════════════════════════════════════════
|
|
40
|
-
//
|
|
34
|
+
// TOOL 1: crosspad_build
|
|
41
35
|
// ═══════════════════════════════════════════════════════════════════════
|
|
42
|
-
server.tool("crosspad_build", "Build
|
|
43
|
-
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
.describe("
|
|
47
|
-
|
|
36
|
+
server.tool("crosspad_build", "Build, run, or check the CrossPad PC simulator or ESP-IDF firmware.", {
|
|
37
|
+
action: z.enum(["pc", "pc_run", "pc_check", "pc_log", "idf"])
|
|
38
|
+
.describe("pc: build simulator. pc_run: launch exe. pc_check: build health check. pc_log: capture stdout. idf: build ESP-IDF firmware."),
|
|
39
|
+
mode: z.enum(["incremental", "clean", "reconfigure", "fullclean"]).default("incremental")
|
|
40
|
+
.describe("Build mode (pc: incremental/clean/reconfigure, idf: build/fullclean/clean)").optional(),
|
|
41
|
+
timeout_seconds: z.number().default(5).optional()
|
|
42
|
+
.describe("pc_log: capture duration in seconds"),
|
|
43
|
+
max_lines: z.number().default(200).optional()
|
|
44
|
+
.describe("pc_log: max output lines"),
|
|
45
|
+
}, async ({ action, mode, timeout_seconds, max_lines }) => {
|
|
48
46
|
const onLine = makeStreamLogger("build");
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
server.tool("crosspad_log", "Launch CrossPad.exe, capture stdout/stderr for a few seconds, then kill it. Great for checking init sequence, crash messages, or runtime errors without leaving the process running.", {
|
|
67
|
-
timeout_seconds: z
|
|
68
|
-
.number()
|
|
69
|
-
.default(5)
|
|
70
|
-
.describe("How long to let the process run before killing it (default: 5)"),
|
|
71
|
-
max_lines: z
|
|
72
|
-
.number()
|
|
73
|
-
.default(200)
|
|
74
|
-
.describe("Max lines of output to return (default: 200)"),
|
|
75
|
-
}, async ({ timeout_seconds, max_lines }) => {
|
|
76
|
-
const onLine = makeStreamLogger("log");
|
|
77
|
-
const result = await crosspadLog(timeout_seconds, max_lines, onLine);
|
|
78
|
-
return {
|
|
79
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
// ═══════════════════════════════════════════════════════════════════════
|
|
83
|
-
// ESP-IDF BUILD
|
|
84
|
-
// ═══════════════════════════════════════════════════════════════════════
|
|
85
|
-
server.tool("crosspad_idf_build", "Build the crosspad-idf ESP32-S3 firmware using idf.py. Use fullclean after adding new app directories or CMakeLists.txt changes.", {
|
|
86
|
-
mode: z
|
|
87
|
-
.enum(["build", "fullclean", "clean"])
|
|
88
|
-
.default("build")
|
|
89
|
-
.describe("build: incremental idf.py build. fullclean: idf.py fullclean + build (required after new app dirs). clean: delete build/ + build."),
|
|
90
|
-
}, async ({ mode }) => {
|
|
91
|
-
const onLine = makeStreamLogger("idf-build");
|
|
92
|
-
const result = await crosspadIdfBuild(mode, onLine);
|
|
93
|
-
return {
|
|
94
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
95
|
-
};
|
|
47
|
+
switch (action) {
|
|
48
|
+
case "pc": {
|
|
49
|
+
const m = (mode === "fullclean" ? "clean" : mode ?? "incremental");
|
|
50
|
+
return jsonResponse(await crosspadBuild(m, onLine));
|
|
51
|
+
}
|
|
52
|
+
case "pc_run":
|
|
53
|
+
return jsonResponse(crosspadRun());
|
|
54
|
+
case "pc_check":
|
|
55
|
+
return jsonResponse(crosspadBuildCheck());
|
|
56
|
+
case "pc_log":
|
|
57
|
+
return jsonResponse(await crosspadLog(timeout_seconds ?? 5, max_lines ?? 200, onLine));
|
|
58
|
+
case "idf": {
|
|
59
|
+
const m = (mode === "reconfigure" ? "build" : mode ?? "build");
|
|
60
|
+
return jsonResponse(await crosspadIdfBuild(m, onLine));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
96
63
|
});
|
|
97
64
|
// ═══════════════════════════════════════════════════════════════════════
|
|
98
|
-
//
|
|
65
|
+
// TOOL 2: crosspad_test
|
|
99
66
|
// ═══════════════════════════════════════════════════════════════════════
|
|
100
|
-
server.tool("crosspad_test", "
|
|
101
|
-
|
|
102
|
-
.
|
|
103
|
-
|
|
104
|
-
.describe("Catch2 test name filter (e.g. '[core]'
|
|
105
|
-
list_only: z
|
|
106
|
-
.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
67
|
+
server.tool("crosspad_test", "Run Catch2 tests or scaffold test infrastructure for crosspad-pc.", {
|
|
68
|
+
action: z.enum(["run", "scaffold"])
|
|
69
|
+
.describe("run: build + run tests. scaffold: generate test boilerplate."),
|
|
70
|
+
filter: z.string().default("").optional()
|
|
71
|
+
.describe("Catch2 test name filter (e.g. '[core]')"),
|
|
72
|
+
list_only: z.boolean().default(false).optional()
|
|
73
|
+
.describe("List tests without running"),
|
|
74
|
+
}, async ({ action, filter, list_only }) => {
|
|
75
|
+
if (action === "scaffold") {
|
|
76
|
+
return jsonResponse(crosspadTestScaffold());
|
|
77
|
+
}
|
|
110
78
|
const onLine = makeStreamLogger("test");
|
|
111
|
-
|
|
112
|
-
return {
|
|
113
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
114
|
-
};
|
|
115
|
-
});
|
|
116
|
-
server.tool("crosspad_test_scaffold", "Generate test infrastructure: tests/CMakeLists.txt (Catch2 v3), sample test file, and CMake patch instructions. Returns file contents — does NOT write to disk.", {}, async () => {
|
|
117
|
-
const result = crosspadTestScaffold();
|
|
118
|
-
return {
|
|
119
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
120
|
-
};
|
|
79
|
+
return jsonResponse(await crosspadTest(filter ?? "", list_only ?? false, onLine));
|
|
121
80
|
});
|
|
122
81
|
// ═══════════════════════════════════════════════════════════════════════
|
|
123
|
-
//
|
|
82
|
+
// TOOL 3: crosspad_sim
|
|
124
83
|
// ═══════════════════════════════════════════════════════════════════════
|
|
125
|
-
server.tool("
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
84
|
+
server.tool("crosspad_sim", "Interact with the running simulator: screenshots, input, stats, settings.", {
|
|
85
|
+
action: z.enum(["screenshot", "input", "stats", "settings_get", "settings_set"])
|
|
86
|
+
.describe("screenshot: capture PNG. input: send event. stats: runtime diagnostics. settings_get/set: read/write settings."),
|
|
87
|
+
// screenshot params
|
|
88
|
+
region: z.enum(["full", "lcd"]).default("full").optional()
|
|
89
|
+
.describe("screenshot: full window or LCD only"),
|
|
90
|
+
filename: z.string().optional()
|
|
91
|
+
.describe("screenshot: custom filename"),
|
|
92
|
+
save_to_file: z.boolean().default(true).optional()
|
|
93
|
+
.describe("screenshot: save to disk (default) or return base64"),
|
|
94
|
+
// input params
|
|
95
|
+
input_action: z.enum(["click", "pad_press", "pad_release", "encoder_rotate", "encoder_press", "encoder_release", "key"]).optional()
|
|
96
|
+
.describe("input: event type"),
|
|
97
|
+
x: z.number().optional().describe("input click: X coordinate"),
|
|
98
|
+
y: z.number().optional().describe("input click: Y coordinate"),
|
|
99
|
+
pad: z.number().optional().describe("input pad: index 0-15"),
|
|
100
|
+
velocity: z.number().optional().describe("input pad_press: velocity 0-127"),
|
|
101
|
+
delta: z.number().optional().describe("input encoder_rotate: rotation delta"),
|
|
102
|
+
keycode: z.number().optional().describe("input key: SDL keycode"),
|
|
103
|
+
// settings params
|
|
104
|
+
category: z.string().default("all").optional()
|
|
105
|
+
.describe("settings_get: all/display/keypad/vibration/wireless/audio/system"),
|
|
106
|
+
key: z.string().optional()
|
|
107
|
+
.describe("settings_set: dotted key name (e.g. 'lcd_brightness')"),
|
|
108
|
+
value: z.number().optional()
|
|
109
|
+
.describe("settings_set: numeric value"),
|
|
110
|
+
}, async ({ action, region, filename, save_to_file, input_action, x, y, pad, velocity, delta, keycode, category, key, value }) => {
|
|
111
|
+
switch (action) {
|
|
112
|
+
case "screenshot":
|
|
113
|
+
return jsonResponse(await crosspadScreenshot(save_to_file ?? true, filename));
|
|
114
|
+
case "input": {
|
|
115
|
+
if (!input_action) {
|
|
116
|
+
return jsonResponse({ success: false, error: "input_action is required for action=input" });
|
|
117
|
+
}
|
|
118
|
+
let input;
|
|
119
|
+
switch (input_action) {
|
|
120
|
+
case "click":
|
|
121
|
+
input = { action: "click", x: x ?? 0, y: y ?? 0 };
|
|
122
|
+
break;
|
|
123
|
+
case "pad_press":
|
|
124
|
+
input = { action: "pad_press", pad: pad ?? 0, velocity: velocity ?? 127 };
|
|
125
|
+
break;
|
|
126
|
+
case "pad_release":
|
|
127
|
+
input = { action: "pad_release", pad: pad ?? 0 };
|
|
128
|
+
break;
|
|
129
|
+
case "encoder_rotate":
|
|
130
|
+
input = { action: "encoder_rotate", delta: delta ?? 1 };
|
|
131
|
+
break;
|
|
132
|
+
case "encoder_press":
|
|
133
|
+
input = { action: "encoder_press" };
|
|
134
|
+
break;
|
|
135
|
+
case "encoder_release":
|
|
136
|
+
input = { action: "encoder_release" };
|
|
137
|
+
break;
|
|
138
|
+
case "key":
|
|
139
|
+
input = { action: "key", keycode: keycode ?? 0 };
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
return jsonResponse(await crosspadInput(input));
|
|
143
|
+
}
|
|
144
|
+
case "stats":
|
|
145
|
+
return jsonResponse(await crosspadStats());
|
|
146
|
+
case "settings_get":
|
|
147
|
+
return jsonResponse(await crosspadSettingsGet(category ?? "all"));
|
|
148
|
+
case "settings_set": {
|
|
149
|
+
if (!key || value === undefined) {
|
|
150
|
+
return jsonResponse({ success: false, error: "key and value required for settings_set" });
|
|
151
|
+
}
|
|
152
|
+
return jsonResponse(await crosspadSettingsSet(key, value));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
141
155
|
});
|
|
142
156
|
// ═══════════════════════════════════════════════════════════════════════
|
|
143
|
-
//
|
|
157
|
+
// TOOL 4: crosspad_repo
|
|
144
158
|
// ═══════════════════════════════════════════════════════════════════════
|
|
145
|
-
server.tool("
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
.default(50)
|
|
158
|
-
.describe("Max results to return"),
|
|
159
|
-
}, async ({ query, kind, repos, max_results }) => {
|
|
160
|
-
const result = crosspadSearchSymbols(query, kind, repos, max_results);
|
|
161
|
-
return {
|
|
162
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
163
|
-
};
|
|
164
|
-
});
|
|
165
|
-
server.tool("crosspad_scaffold_app", "Generate boilerplate for a new CrossPad app (cpp, hpp, CMakeLists.txt, optional pad logic). Returns file contents for Claude to write — does NOT create files on disk.", {
|
|
166
|
-
name: z
|
|
167
|
-
.string()
|
|
168
|
-
.describe("PascalCase app name, e.g. 'Metronome'"),
|
|
169
|
-
display_name: z
|
|
170
|
-
.string()
|
|
171
|
-
.optional()
|
|
172
|
-
.describe("Human-readable name (defaults to name)"),
|
|
173
|
-
has_pad_logic: z
|
|
174
|
-
.boolean()
|
|
175
|
-
.default(false)
|
|
176
|
-
.describe("Generate IPadLogicHandler stub"),
|
|
177
|
-
icon: z
|
|
178
|
-
.string()
|
|
179
|
-
.default("CrossPad_Logo_110w.png")
|
|
180
|
-
.describe("Icon filename"),
|
|
181
|
-
}, async ({ name, display_name, has_pad_logic, icon }) => {
|
|
182
|
-
const result = crosspadScaffoldApp({
|
|
183
|
-
name,
|
|
184
|
-
display_name,
|
|
185
|
-
has_pad_logic,
|
|
186
|
-
icon,
|
|
187
|
-
});
|
|
188
|
-
return {
|
|
189
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
190
|
-
};
|
|
191
|
-
});
|
|
192
|
-
server.tool("crosspad_interfaces", 'Query crosspad-core interfaces and their implementations across all platforms. Use query="list" to list all interfaces, "implementations <InterfaceName>" to find implementations, or "capabilities" to show platform capability flags.', {
|
|
193
|
-
query: z
|
|
194
|
-
.string()
|
|
195
|
-
.describe('"list", "implementations <InterfaceName>", or "capabilities"'),
|
|
196
|
-
}, async ({ query }) => {
|
|
197
|
-
const result = crosspadInterfaces(query);
|
|
198
|
-
return {
|
|
199
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
200
|
-
};
|
|
201
|
-
});
|
|
202
|
-
server.tool("crosspad_apps", "List all registered CrossPad apps (found via REGISTER_APP macro or _register_*_app functions).", {
|
|
203
|
-
platform: z
|
|
204
|
-
.enum(["pc", "esp32", "2player", "all"])
|
|
205
|
-
.default("pc")
|
|
206
|
-
.describe("Which platform to scan"),
|
|
207
|
-
}, async ({ platform }) => {
|
|
208
|
-
const result = crosspadApps(platform);
|
|
209
|
-
return {
|
|
210
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
211
|
-
};
|
|
159
|
+
server.tool("crosspad_repo", "Git status and submodule diffs across all CrossPad repos.", {
|
|
160
|
+
action: z.enum(["status", "diff"])
|
|
161
|
+
.describe("status: git status all repos. diff: submodule drift analysis."),
|
|
162
|
+
submodule: z.enum(["crosspad-core", "crosspad-gui", "both"]).default("both").optional()
|
|
163
|
+
.describe("diff: which submodule to analyze"),
|
|
164
|
+
}, async ({ action, submodule }) => {
|
|
165
|
+
switch (action) {
|
|
166
|
+
case "status":
|
|
167
|
+
return jsonResponse(crosspadReposStatus());
|
|
168
|
+
case "diff":
|
|
169
|
+
return jsonResponse(crosspadDiffCore(submodule ?? "both"));
|
|
170
|
+
}
|
|
212
171
|
});
|
|
213
172
|
// ═══════════════════════════════════════════════════════════════════════
|
|
214
|
-
//
|
|
173
|
+
// TOOL 5: crosspad_code
|
|
215
174
|
// ═══════════════════════════════════════════════════════════════════════
|
|
216
|
-
server.tool("
|
|
217
|
-
|
|
218
|
-
.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
encoder_rotate {delta} — rotate encoder (positive=CW, negative=CCW)
|
|
242
|
-
encoder_press — press encoder button
|
|
243
|
-
encoder_release — release encoder button
|
|
244
|
-
key {keycode} — SDL keycode (e.g. 13=Enter, 27=Escape)
|
|
245
|
-
|
|
246
|
-
LCD area is centered at roughly x=85..405, y=20..260 within the 490x680 window.`, {
|
|
247
|
-
action: z
|
|
248
|
-
.enum(["click", "pad_press", "pad_release", "encoder_rotate", "encoder_press", "encoder_release", "key"])
|
|
249
|
-
.describe("Input action type"),
|
|
250
|
-
x: z.number().optional().describe("X coordinate for click"),
|
|
251
|
-
y: z.number().optional().describe("Y coordinate for click"),
|
|
252
|
-
pad: z.number().optional().describe("Pad index 0-15 for pad_press/pad_release"),
|
|
253
|
-
velocity: z.number().optional().describe("Velocity 0-127 for pad_press (default: 127)"),
|
|
254
|
-
delta: z.number().optional().describe("Rotation delta for encoder_rotate"),
|
|
255
|
-
keycode: z.number().optional().describe("SDL keycode for key action"),
|
|
256
|
-
}, async ({ action, x, y, pad, velocity, delta, keycode }) => {
|
|
257
|
-
let input;
|
|
175
|
+
server.tool("crosspad_code", "Search symbols, query interfaces, list registered apps, or scaffold new apps across CrossPad repos.", {
|
|
176
|
+
action: z.enum(["search", "interfaces", "apps", "scaffold"])
|
|
177
|
+
.describe("search: find classes/functions/macros. interfaces: query crosspad-core interfaces. apps: list REGISTER_APP registrations. scaffold: generate app boilerplate."),
|
|
178
|
+
// search params
|
|
179
|
+
query: z.string().optional()
|
|
180
|
+
.describe("search: symbol name. interfaces: 'list', 'implementations <Name>', or 'capabilities'."),
|
|
181
|
+
kind: z.enum(["class", "function", "macro", "enum", "typedef", "all"]).default("all").optional()
|
|
182
|
+
.describe("search: filter by symbol kind"),
|
|
183
|
+
repos: z.array(z.string()).default(["all"]).optional()
|
|
184
|
+
.describe("search: repo names to scan, or ['all']"),
|
|
185
|
+
max_results: z.number().default(50).optional()
|
|
186
|
+
.describe("search: result cap"),
|
|
187
|
+
// apps params
|
|
188
|
+
platform: z.enum(["pc", "idf", "arduino", "all"]).default("all").optional()
|
|
189
|
+
.describe("apps: platform to scan"),
|
|
190
|
+
// scaffold params
|
|
191
|
+
name: z.string().optional()
|
|
192
|
+
.describe("scaffold: PascalCase app name"),
|
|
193
|
+
display_name: z.string().optional()
|
|
194
|
+
.describe("scaffold: human-readable name"),
|
|
195
|
+
has_pad_logic: z.boolean().default(false).optional()
|
|
196
|
+
.describe("scaffold: generate IPadLogicHandler stub"),
|
|
197
|
+
icon: z.string().default("CrossPad_Logo_110w.png").optional()
|
|
198
|
+
.describe("scaffold: icon filename"),
|
|
199
|
+
}, async ({ action, query, kind, repos, max_results, platform, name, display_name, has_pad_logic, icon }) => {
|
|
258
200
|
switch (action) {
|
|
259
|
-
case "
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
case "encoder_release":
|
|
275
|
-
input = { action: "encoder_release" };
|
|
276
|
-
break;
|
|
277
|
-
case "key":
|
|
278
|
-
input = { action: "key", keycode: keycode ?? 0 };
|
|
279
|
-
break;
|
|
280
|
-
default:
|
|
281
|
-
return {
|
|
282
|
-
content: [{ type: "text", text: JSON.stringify({ success: false, error: "Unknown action" }) }],
|
|
283
|
-
};
|
|
201
|
+
case "search": {
|
|
202
|
+
if (!query)
|
|
203
|
+
return jsonResponse({ error: "query is required for action=search" });
|
|
204
|
+
return jsonResponse(crosspadSearchSymbols(query, kind ?? "all", repos ?? ["all"], max_results ?? 50));
|
|
205
|
+
}
|
|
206
|
+
case "interfaces": {
|
|
207
|
+
return jsonResponse(crosspadInterfaces(query ?? "list"));
|
|
208
|
+
}
|
|
209
|
+
case "apps":
|
|
210
|
+
return jsonResponse(crosspadApps(platform ?? "all"));
|
|
211
|
+
case "scaffold": {
|
|
212
|
+
if (!name)
|
|
213
|
+
return jsonResponse({ error: "name is required for action=scaffold" });
|
|
214
|
+
return jsonResponse(crosspadScaffoldApp({ name, display_name, has_pad_logic: has_pad_logic ?? false, icon: icon ?? "CrossPad_Logo_110w.png" }));
|
|
215
|
+
}
|
|
284
216
|
}
|
|
285
|
-
const result = await crosspadInput(input);
|
|
286
|
-
return {
|
|
287
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
288
|
-
};
|
|
289
|
-
});
|
|
290
|
-
server.tool("crosspad_stats", `Query runtime statistics from the running simulator. Returns:
|
|
291
|
-
- Platform capabilities (active flags)
|
|
292
|
-
- Pad state (16 pads: pressed, playing, note, channel, RGB color)
|
|
293
|
-
- Active/registered pad logic handlers
|
|
294
|
-
- Registered apps list
|
|
295
|
-
- Heap stats (SRAM/PSRAM free/total)
|
|
296
|
-
- Settings summary (brightness, theme, kit, audio engine)`, {}, async () => {
|
|
297
|
-
const result = await crosspadStats();
|
|
298
|
-
return {
|
|
299
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
300
|
-
};
|
|
301
217
|
});
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
.describe("
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const result = await crosspadSettingsGet(category);
|
|
333
|
-
return {
|
|
334
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
335
|
-
};
|
|
336
|
-
}
|
|
337
|
-
else {
|
|
338
|
-
if (!key || value === undefined) {
|
|
339
|
-
return {
|
|
340
|
-
content: [{ type: "text", text: JSON.stringify({ success: false, error: "key and value required for set" }) }],
|
|
341
|
-
};
|
|
218
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
219
|
+
// TOOL 6: crosspad_apps
|
|
220
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
221
|
+
server.tool("crosspad_apps", "Manage CrossPad app packages: list, install, remove, update from the crosspad-apps registry.", {
|
|
222
|
+
action: z.enum(["list", "install", "remove", "update", "sync"])
|
|
223
|
+
.describe("list: available apps. install: add app submodule. remove: remove app. update: update app(s). sync: sync manifest."),
|
|
224
|
+
app_name: z.string().optional()
|
|
225
|
+
.describe("install/remove/update: app ID from registry"),
|
|
226
|
+
ref: z.string().default("main").optional()
|
|
227
|
+
.describe("install: git ref (branch/tag/commit)"),
|
|
228
|
+
force: z.boolean().default(false).optional()
|
|
229
|
+
.describe("install: install even if incompatible"),
|
|
230
|
+
update_all: z.boolean().default(false).optional()
|
|
231
|
+
.describe("update: update all installed apps"),
|
|
232
|
+
show_all: z.boolean().default(false).optional()
|
|
233
|
+
.describe("list: include incompatible apps"),
|
|
234
|
+
}, async ({ action, app_name, ref, force, update_all, show_all }) => {
|
|
235
|
+
const onLine = makeStreamLogger("app-manager");
|
|
236
|
+
switch (action) {
|
|
237
|
+
case "list":
|
|
238
|
+
return jsonResponse(crosspadAppList(show_all ?? false));
|
|
239
|
+
case "install": {
|
|
240
|
+
if (!app_name)
|
|
241
|
+
return jsonResponse({ success: false, error: "app_name required" });
|
|
242
|
+
return jsonResponse(await crosspadAppInstall(app_name, ref ?? "main", force ?? false, onLine));
|
|
243
|
+
}
|
|
244
|
+
case "remove": {
|
|
245
|
+
if (!app_name)
|
|
246
|
+
return jsonResponse({ success: false, error: "app_name required" });
|
|
247
|
+
return jsonResponse(await crosspadAppRemove(app_name, onLine));
|
|
342
248
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
249
|
+
case "update":
|
|
250
|
+
return jsonResponse(await crosspadAppUpdate(app_name, update_all ?? false, onLine));
|
|
251
|
+
case "sync":
|
|
252
|
+
return jsonResponse(await crosspadAppSync(onLine));
|
|
347
253
|
}
|
|
348
254
|
});
|
|
349
255
|
// ═══════════════════════════════════════════════════════════════════════
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|