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/tools/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import { BIN_EXE, CROSSPAD_PC_ROOT } from "../config.js";
|
|
3
|
-
import {
|
|
3
|
+
import { runCommandStream } from "../utils/exec.js";
|
|
4
4
|
/**
|
|
5
5
|
* Launch main.exe, capture stdout/stderr for up to `timeout_seconds`,
|
|
6
6
|
* then kill the process and return the output.
|
|
@@ -12,14 +12,14 @@ export async function crosspadLog(timeoutSeconds = 5, maxLines = 200, onLine) {
|
|
|
12
12
|
success: false,
|
|
13
13
|
exe_path: BIN_EXE,
|
|
14
14
|
stdout: "",
|
|
15
|
-
stderr:
|
|
15
|
+
stderr: "bin/main.exe not found — build first",
|
|
16
16
|
exit_code: null,
|
|
17
17
|
duration_seconds: 0,
|
|
18
18
|
truncated: false,
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
onLine?.("stdout", `[crosspad] Launching ${BIN_EXE} (capturing for ${timeoutSeconds}s)...`);
|
|
22
|
-
const result = await
|
|
22
|
+
const result = await runCommandStream(`"${BIN_EXE}"`, CROSSPAD_PC_ROOT, onLine ?? (() => { }), timeoutSeconds * 1000);
|
|
23
23
|
// Truncate to maxLines
|
|
24
24
|
let stdout = result.stdout;
|
|
25
25
|
let stderr = result.stderr;
|
package/dist/tools/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAY5D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,iBAAyB,CAAC,EAC1B,WAAmB,GAAG,EACtB,MAAe;IAEf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,sCAAsC;YAC9C,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,EAAE,wBAAwB,OAAO,mBAAmB,cAAc,OAAO,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,IAAI,OAAO,GAAG,EACd,gBAAgB,EAChB,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EACpB,cAAc,GAAG,IAAI,CACtB,CAAC;IAEF,uBAAuB;IACvB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,WAAW,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,WAAW,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAEjE,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI;QAC5C,QAAQ,EAAE,OAAO;QACjB,MAAM;QACN,MAAM;QACN,SAAS,EAAE,QAAQ;QACnB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,EAAE;QAC1D,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/tools/repos.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import {
|
|
3
|
+
import { getRepos, CROSSPAD_PC_ROOT, CROSSPAD_IDF_ROOT } from "../config.js";
|
|
4
4
|
import { getRepoStatus, getSubmodulePin, getHead } from "../utils/git.js";
|
|
5
|
-
function detectMode() {
|
|
6
|
-
const corePath = path.join(
|
|
5
|
+
function detectMode(rootPath) {
|
|
6
|
+
const corePath = path.join(rootPath, "crosspad-core");
|
|
7
7
|
try {
|
|
8
8
|
const stat = fs.lstatSync(corePath);
|
|
9
|
-
// Windows junctions report as symlinks in Node.js
|
|
10
9
|
if (stat.isSymbolicLink())
|
|
11
10
|
return "dev-mode";
|
|
12
|
-
// Check for .git file (submodule) or .git dir
|
|
13
11
|
const gitPath = path.join(corePath, ".git");
|
|
14
12
|
if (fs.existsSync(gitPath))
|
|
15
13
|
return "submodule-mode";
|
|
@@ -21,20 +19,10 @@ function detectMode() {
|
|
|
21
19
|
}
|
|
22
20
|
export function crosspadReposStatus() {
|
|
23
21
|
const repos = [];
|
|
24
|
-
|
|
22
|
+
const discovered = getRepos();
|
|
23
|
+
for (const [name, repoPath] of Object.entries(discovered)) {
|
|
25
24
|
try {
|
|
26
|
-
|
|
27
|
-
repos.push(getRepoStatus(name, repoPath));
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
repos.push({
|
|
31
|
-
name,
|
|
32
|
-
path: repoPath,
|
|
33
|
-
branch: "",
|
|
34
|
-
head: "",
|
|
35
|
-
dirtyFiles: [`(repo not found at ${repoPath})`],
|
|
36
|
-
});
|
|
37
|
-
}
|
|
25
|
+
repos.push(getRepoStatus(name, repoPath));
|
|
38
26
|
}
|
|
39
27
|
catch (err) {
|
|
40
28
|
repos.push({
|
|
@@ -46,17 +34,39 @@ export function crosspadReposStatus() {
|
|
|
46
34
|
});
|
|
47
35
|
}
|
|
48
36
|
}
|
|
49
|
-
const mode =
|
|
50
|
-
|
|
37
|
+
const mode = fs.existsSync(CROSSPAD_PC_ROOT)
|
|
38
|
+
? detectMode(CROSSPAD_PC_ROOT)
|
|
39
|
+
: "unknown";
|
|
40
|
+
// Submodule sync info — check both crosspad-pc and platform-idf
|
|
51
41
|
const submoduleSync = {};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
42
|
+
const parentRepos = [
|
|
43
|
+
{ name: "crosspad-pc", root: CROSSPAD_PC_ROOT },
|
|
44
|
+
{ name: "platform-idf", root: CROSSPAD_IDF_ROOT },
|
|
45
|
+
];
|
|
46
|
+
for (const parent of parentRepos) {
|
|
47
|
+
if (!fs.existsSync(parent.root))
|
|
48
|
+
continue;
|
|
49
|
+
for (const sub of ["crosspad-core", "crosspad-gui"]) {
|
|
50
|
+
const subPath = path.join(parent.root, sub.includes("/") ? sub : `components/${sub}`);
|
|
51
|
+
// crosspad-pc has crosspad-core at root, platform-idf has it in components/
|
|
52
|
+
const actualSubPath = fs.existsSync(path.join(parent.root, sub))
|
|
53
|
+
? sub
|
|
54
|
+
: `components/${sub}`;
|
|
55
|
+
const pinned = getSubmodulePin(parent.root, actualSubPath);
|
|
56
|
+
if (pinned === null)
|
|
57
|
+
continue; // not a submodule in this repo
|
|
58
|
+
let localHead = null;
|
|
59
|
+
const fullSubPath = path.join(parent.root, actualSubPath);
|
|
60
|
+
if (fs.existsSync(fullSubPath)) {
|
|
61
|
+
localHead = getHead(fullSubPath);
|
|
62
|
+
}
|
|
63
|
+
const key = `${parent.name}/${sub}`;
|
|
64
|
+
submoduleSync[key] = {
|
|
65
|
+
pinned,
|
|
66
|
+
local_head: localHead,
|
|
67
|
+
in_sync: pinned !== null && localHead !== null && localHead.startsWith(pinned.slice(0, 7)),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
71
|
return { repos, crosspad_pc_mode: mode, submodule_sync: submoduleSync };
|
|
62
72
|
}
|
package/dist/tools/repos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repos.js","sourceRoot":"","sources":["../../src/tools/repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"repos.js","sourceRoot":"","sources":["../../src/tools/repos.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,5 @@ export interface ScreenshotResult {
|
|
|
19
19
|
* Take a screenshot of the simulator window.
|
|
20
20
|
* @param save_to_file If true, simulator writes PNG directly to disk (fast path).
|
|
21
21
|
* @param filename Custom filename (default: screenshot_<timestamp>.png)
|
|
22
|
-
* @param region "full" for entire window (490x680), "lcd" for LCD only (320x240)
|
|
23
22
|
*/
|
|
24
|
-
export declare function crosspadScreenshot(saveToFile?: boolean, filename?: string
|
|
23
|
+
export declare function crosspadScreenshot(saveToFile?: boolean, filename?: string): Promise<ScreenshotResult>;
|
package/dist/tools/screenshot.js
CHANGED
|
@@ -13,9 +13,8 @@ import { CROSSPAD_PC_ROOT } from "../config.js";
|
|
|
13
13
|
* Take a screenshot of the simulator window.
|
|
14
14
|
* @param save_to_file If true, simulator writes PNG directly to disk (fast path).
|
|
15
15
|
* @param filename Custom filename (default: screenshot_<timestamp>.png)
|
|
16
|
-
* @param region "full" for entire window (490x680), "lcd" for LCD only (320x240)
|
|
17
16
|
*/
|
|
18
|
-
export async function crosspadScreenshot(saveToFile = true, filename
|
|
17
|
+
export async function crosspadScreenshot(saveToFile = true, filename) {
|
|
19
18
|
const running = await isSimulatorRunning();
|
|
20
19
|
if (!running) {
|
|
21
20
|
return {
|
|
@@ -32,10 +31,7 @@ export async function crosspadScreenshot(saveToFile = true, filename, region = "
|
|
|
32
31
|
fs.mkdirSync(screenshotsDir, { recursive: true });
|
|
33
32
|
}
|
|
34
33
|
const filePath = path.join(screenshotsDir, fname).replace(/\\/g, "/");
|
|
35
|
-
const
|
|
36
|
-
if (region === "lcd")
|
|
37
|
-
cmd.region = "lcd";
|
|
38
|
-
const resp = await sendRemoteCommand(cmd);
|
|
34
|
+
const resp = await sendRemoteCommand({ cmd: "screenshot", file: filePath });
|
|
39
35
|
if (!resp.ok) {
|
|
40
36
|
return {
|
|
41
37
|
success: false,
|
|
@@ -52,10 +48,7 @@ export async function crosspadScreenshot(saveToFile = true, filename, region = "
|
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
50
|
// Inline path: returns base64-encoded PNG
|
|
55
|
-
const
|
|
56
|
-
if (region === "lcd")
|
|
57
|
-
inlineCmd.region = "lcd";
|
|
58
|
-
const resp = await sendRemoteCommand(inlineCmd);
|
|
51
|
+
const resp = await sendRemoteCommand({ cmd: "screenshot" });
|
|
59
52
|
if (!resp.ok) {
|
|
60
53
|
return {
|
|
61
54
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAahD
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAahD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAsB,IAAI,EAC1B,QAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yDAAyD;SACjE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,mDAAmD;YACnD,MAAM,KAAK,GAAG,QAAQ,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;YACzD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEtE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE5E,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,mBAAmB;iBACrD,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,KAAe;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAgB;gBAC7B,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,QAAQ;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAc;aAC1B,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,mBAAmB;aACrD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAgB;YAC7B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,IAAI,CAAC,IAAc;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/tools/symbols.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import {
|
|
2
|
+
import { getRepos } from "../config.js";
|
|
3
3
|
import { runCommand } from "../utils/exec.js";
|
|
4
4
|
/**
|
|
5
5
|
* Build a regex pattern that matches definition lines containing the query.
|
|
@@ -35,9 +35,10 @@ function buildPattern(query, kind) {
|
|
|
35
35
|
*/
|
|
36
36
|
export function crosspadSearchSymbols(query, kind = "all", repos = ["all"], maxResults = 50) {
|
|
37
37
|
const results = [];
|
|
38
|
+
const allRepos = getRepos();
|
|
38
39
|
const targetRepos = repos.includes("all")
|
|
39
|
-
? Object.entries(
|
|
40
|
-
: Object.entries(
|
|
40
|
+
? Object.entries(allRepos)
|
|
41
|
+
: Object.entries(allRepos).filter(([name]) => repos.includes(name));
|
|
41
42
|
const pattern = buildPattern(escapeForRegex(query), kind);
|
|
42
43
|
if (!pattern) {
|
|
43
44
|
return { query, kind_filter: kind, results: [], total_matches: 0, truncated: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/tools/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/tools/symbols.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/test.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import { CROSSPAD_PC_ROOT, VCPKG_TOOLCHAIN } from "../config.js";
|
|
3
|
+
import { CROSSPAD_PC_ROOT, VCPKG_TOOLCHAIN, IS_WINDOWS } from "../config.js";
|
|
4
4
|
import { runBuild, runBuildStream } from "../utils/exec.js";
|
|
5
|
-
import { IS_WINDOWS } from "../config.js";
|
|
6
5
|
const TESTS_DIR = path.join(CROSSPAD_PC_ROOT, "tests");
|
|
7
6
|
const BIN_DIR = path.join(CROSSPAD_PC_ROOT, "bin");
|
|
8
7
|
const EXE_EXT = IS_WINDOWS ? ".exe" : "";
|
|
@@ -28,9 +27,7 @@ export async function crosspadTest(filter = "", listOnly = false, onLine) {
|
|
|
28
27
|
}
|
|
29
28
|
// Ensure cmake is configured with BUILD_TESTING=ON
|
|
30
29
|
onLine?.("stdout", "[crosspad] Configuring cmake with BUILD_TESTING=ON...");
|
|
31
|
-
const
|
|
32
|
-
const genFlag = generator ? ` -G ${generator}` : "";
|
|
33
|
-
const configCmd = `cmake -B build${genFlag} -DCMAKE_TOOLCHAIN_FILE=${VCPKG_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON`;
|
|
30
|
+
const configCmd = `cmake -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE=${VCPKG_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON`;
|
|
34
31
|
let configResult;
|
|
35
32
|
if (onLine) {
|
|
36
33
|
configResult = await runBuildStream(configCmd, CROSSPAD_PC_ROOT, onLine, 120_000);
|
package/dist/tools/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/exec.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface ExecResult {
|
|
|
13
13
|
durationMs: number;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* Run a command with the MSVC environment, capturing output.
|
|
16
|
+
* Run a command with the MSVC environment, capturing output. Windows-only.
|
|
17
17
|
*/
|
|
18
18
|
export declare function runWithMsvc(cmd: string, cwd: string, timeoutMs?: number): ExecResult;
|
|
19
19
|
/**
|
|
@@ -29,9 +29,9 @@ export declare function runWithMsvcStream(cmd: string, cwd: string, onLine: OnLi
|
|
|
29
29
|
*/
|
|
30
30
|
export declare function runCommandStream(cmd: string, cwd: string, onLine: OnLine, timeoutMs?: number): Promise<ExecResult>;
|
|
31
31
|
/**
|
|
32
|
-
* Capture ESP-IDF environment
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* Capture ESP-IDF environment. Cached for the lifetime of the server process.
|
|
33
|
+
* - Windows: runs export.bat and parses `set` output
|
|
34
|
+
* - Linux/Mac: sources export.sh and captures env via null-delimited output
|
|
35
35
|
*/
|
|
36
36
|
export declare function getIdfEnv(): Record<string, string>;
|
|
37
37
|
/**
|
|
@@ -52,6 +52,14 @@ export declare function runBuild(cmd: string, cwd: string, timeoutMs?: number):
|
|
|
52
52
|
* Windows: MSVC env + cmd.exe shell. Unix: default shell.
|
|
53
53
|
*/
|
|
54
54
|
export declare function runBuildStream(cmd: string, cwd: string, onLine: OnLine, timeoutMs?: number): Promise<ExecResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Run a command with the ESP-IDF environment, platform-aware.
|
|
57
|
+
*/
|
|
58
|
+
export declare function runIdf(cmd: string, cwd: string, timeoutMs?: number): ExecResult;
|
|
59
|
+
/**
|
|
60
|
+
* Run a command with the ESP-IDF environment, streaming, platform-aware.
|
|
61
|
+
*/
|
|
62
|
+
export declare function runIdfStream(cmd: string, cwd: string, onLine: OnLine, timeoutMs?: number): Promise<ExecResult>;
|
|
55
63
|
/**
|
|
56
64
|
* Spawn a detached process (for crosspad_run).
|
|
57
65
|
*/
|
package/dist/utils/exec.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { execSync, spawn } from "child_process";
|
|
2
2
|
import { VCVARSALL, IS_WINDOWS, IDF_PATH } from "../config.js";
|
|
3
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
4
|
+
// MSVC ENVIRONMENT (Windows-only)
|
|
5
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
3
6
|
let cachedMsvcEnv = null;
|
|
4
7
|
/**
|
|
5
8
|
* Capture MSVC environment by running vcvarsall.bat and parsing `set` output.
|
|
@@ -27,8 +30,11 @@ export function getMsvcEnv() {
|
|
|
27
30
|
cachedMsvcEnv = env;
|
|
28
31
|
return env;
|
|
29
32
|
}
|
|
33
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
34
|
+
// SYNC COMMAND EXECUTION
|
|
35
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
30
36
|
/**
|
|
31
|
-
* Run a command with the MSVC environment, capturing output.
|
|
37
|
+
* Run a command with the MSVC environment, capturing output. Windows-only.
|
|
32
38
|
*/
|
|
33
39
|
export function runWithMsvc(cmd, cwd, timeoutMs = 300_000) {
|
|
34
40
|
const env = getMsvcEnv();
|
|
@@ -118,7 +124,6 @@ function spawnStreaming(cmd, cwd, env, shell, onLine, timeoutMs) {
|
|
|
118
124
|
}, timeoutMs);
|
|
119
125
|
function flushLines(buf, stream) {
|
|
120
126
|
const parts = buf.split("\n");
|
|
121
|
-
// Last part is incomplete — keep it in buffer
|
|
122
127
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
123
128
|
const line = parts[i].replace(/\r$/, "");
|
|
124
129
|
onLine(stream, line);
|
|
@@ -139,7 +144,6 @@ function spawnStreaming(cmd, cwd, env, shell, onLine, timeoutMs) {
|
|
|
139
144
|
});
|
|
140
145
|
child.on("close", (code) => {
|
|
141
146
|
clearTimeout(timer);
|
|
142
|
-
// Flush remaining partial lines
|
|
143
147
|
if (stdoutBuf.length > 0)
|
|
144
148
|
onLine("stdout", stdoutBuf.replace(/\r$/, ""));
|
|
145
149
|
if (stderrBuf.length > 0)
|
|
@@ -182,33 +186,52 @@ export function runCommandStream(cmd, cwd, onLine, timeoutMs = 60_000) {
|
|
|
182
186
|
// ═══════════════════════════════════════════════════════════════════════
|
|
183
187
|
let cachedIdfEnv = null;
|
|
184
188
|
/**
|
|
185
|
-
* Capture ESP-IDF environment
|
|
186
|
-
*
|
|
187
|
-
*
|
|
189
|
+
* Capture ESP-IDF environment. Cached for the lifetime of the server process.
|
|
190
|
+
* - Windows: runs export.bat and parses `set` output
|
|
191
|
+
* - Linux/Mac: sources export.sh and captures env via null-delimited output
|
|
188
192
|
*/
|
|
189
193
|
export function getIdfEnv() {
|
|
190
|
-
if (!IS_WINDOWS) {
|
|
191
|
-
return { ...process.env };
|
|
192
|
-
}
|
|
193
194
|
if (cachedIdfEnv)
|
|
194
195
|
return cachedIdfEnv;
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
if (IS_WINDOWS) {
|
|
197
|
+
const exportBat = `${IDF_PATH}\\export.bat`;
|
|
198
|
+
const cmd = `set MSYSTEM=&& set PYTHONIOENCODING=utf-8&& call "${exportBat}" >nul 2>&1 && set`;
|
|
199
|
+
const output = execSync(cmd, {
|
|
200
|
+
shell: "cmd.exe",
|
|
201
|
+
encoding: "utf-8",
|
|
202
|
+
timeout: 60_000,
|
|
203
|
+
});
|
|
204
|
+
const env = {};
|
|
205
|
+
for (const line of output.split("\n")) {
|
|
206
|
+
const eq = line.indexOf("=");
|
|
207
|
+
if (eq > 0) {
|
|
208
|
+
env[line.slice(0, eq)] = line.slice(eq + 1).trimEnd();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
cachedIdfEnv = env;
|
|
212
|
+
return env;
|
|
213
|
+
}
|
|
214
|
+
// Linux/Mac: source export.sh and capture environment
|
|
215
|
+
const exportSh = `${IDF_PATH}/export.sh`;
|
|
216
|
+
const cmd = `bash -c '. "${exportSh}" >/dev/null 2>&1 && env -0'`;
|
|
197
217
|
const output = execSync(cmd, {
|
|
198
|
-
shell: "cmd.exe",
|
|
199
218
|
encoding: "utf-8",
|
|
200
219
|
timeout: 60_000,
|
|
220
|
+
env: { ...process.env, IDF_PATH },
|
|
201
221
|
});
|
|
202
222
|
const env = {};
|
|
203
|
-
for (const
|
|
204
|
-
|
|
223
|
+
for (const entry of output.split("\0")) {
|
|
224
|
+
if (!entry)
|
|
225
|
+
continue;
|
|
226
|
+
const eq = entry.indexOf("=");
|
|
205
227
|
if (eq > 0) {
|
|
206
|
-
env[
|
|
228
|
+
env[entry.slice(0, eq)] = entry.slice(eq + 1);
|
|
207
229
|
}
|
|
208
230
|
}
|
|
209
231
|
cachedIdfEnv = env;
|
|
210
232
|
return env;
|
|
211
233
|
}
|
|
234
|
+
const IDF_SHELL = IS_WINDOWS ? "cmd.exe" : "/bin/bash";
|
|
212
235
|
/**
|
|
213
236
|
* Run a command with the ESP-IDF environment, capturing output.
|
|
214
237
|
*/
|
|
@@ -219,7 +242,7 @@ export function runWithIdf(cmd, cwd, timeoutMs = 600_000) {
|
|
|
219
242
|
const stdout = execSync(cmd, {
|
|
220
243
|
cwd,
|
|
221
244
|
env,
|
|
222
|
-
shell:
|
|
245
|
+
shell: IDF_SHELL,
|
|
223
246
|
encoding: "utf-8",
|
|
224
247
|
timeout: timeoutMs,
|
|
225
248
|
stdio: ["pipe", "pipe", "pipe"],
|
|
@@ -247,7 +270,7 @@ export function runWithIdf(cmd, cwd, timeoutMs = 600_000) {
|
|
|
247
270
|
*/
|
|
248
271
|
export function runWithIdfStream(cmd, cwd, onLine, timeoutMs = 600_000) {
|
|
249
272
|
const env = getIdfEnv();
|
|
250
|
-
return spawnStreaming(cmd, cwd, env,
|
|
273
|
+
return spawnStreaming(cmd, cwd, env, IDF_SHELL, onLine, timeoutMs);
|
|
251
274
|
}
|
|
252
275
|
// ═══════════════════════════════════════════════════════════════════════
|
|
253
276
|
// PLATFORM-AGNOSTIC BUILD WRAPPERS
|
|
@@ -272,6 +295,18 @@ export function runBuildStream(cmd, cwd, onLine, timeoutMs = 300_000) {
|
|
|
272
295
|
}
|
|
273
296
|
return runCommandStream(cmd, cwd, onLine, timeoutMs);
|
|
274
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* Run a command with the ESP-IDF environment, platform-aware.
|
|
300
|
+
*/
|
|
301
|
+
export function runIdf(cmd, cwd, timeoutMs = 600_000) {
|
|
302
|
+
return runWithIdf(cmd, cwd, timeoutMs);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Run a command with the ESP-IDF environment, streaming, platform-aware.
|
|
306
|
+
*/
|
|
307
|
+
export function runIdfStream(cmd, cwd, onLine, timeoutMs = 600_000) {
|
|
308
|
+
return runWithIdfStream(cmd, cwd, onLine, timeoutMs);
|
|
309
|
+
}
|
|
275
310
|
/** Strip \r from Windows line endings */
|
|
276
311
|
function normalizeLineEndings(s) {
|
|
277
312
|
return s.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
package/dist/utils/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crosspad-mcp-server",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP development server for CrossPad",
|
|
5
|
-
"mcpName": "io.github.crosspad/crosspad-mcp",
|
|
3
|
+
"version": "5.0.0",
|
|
4
|
+
"description": "MCP development server for CrossPad — build, test, manage apps, interact with simulator",
|
|
6
5
|
"type": "module",
|
|
7
6
|
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"crosspad-mcp-server": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"keywords": [
|
|
14
|
+
"mcp",
|
|
15
|
+
"crosspad",
|
|
16
|
+
"esp32",
|
|
17
|
+
"esp-idf",
|
|
18
|
+
"model-context-protocol",
|
|
19
|
+
"claude",
|
|
20
|
+
"embedded",
|
|
21
|
+
"music-controller"
|
|
22
|
+
],
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "https://github.com/CrossPad/crosspad-mcp.git"
|
|
26
|
+
},
|
|
27
|
+
"license": "MIT",
|
|
8
28
|
"scripts": {
|
|
9
29
|
"build": "tsc",
|
|
10
|
-
"
|
|
30
|
+
"prepublishOnly": "tsc",
|
|
11
31
|
"dev": "tsc --watch"
|
|
12
32
|
},
|
|
13
33
|
"dependencies": {
|
package/server.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
|
|
3
|
-
"name": "io.github.crosspad/crosspad-mcp",
|
|
4
|
-
"description": "Development workflow server for CrossPad — build, test, run, screenshot, and navigate code",
|
|
5
|
-
"version": "4.0.0",
|
|
6
|
-
"repository": {
|
|
7
|
-
"url": "https://github.com/CrossPad/crosspad-mcp",
|
|
8
|
-
"source": "github",
|
|
9
|
-
"id": "CrossPad/crosspad-mcp"
|
|
10
|
-
},
|
|
11
|
-
"packages": [
|
|
12
|
-
{
|
|
13
|
-
"registry_type": "npm",
|
|
14
|
-
"registry_base_url": "https://registry.npmjs.org",
|
|
15
|
-
"identifier": "crosspad-mcp-server",
|
|
16
|
-
"version": "4.0.0",
|
|
17
|
-
"runtime_hint": "npx",
|
|
18
|
-
"transport": {
|
|
19
|
-
"type": "stdio"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
}
|