crosspad-mcp-server 5.0.1 → 6.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.
Files changed (42) hide show
  1. package/README.md +31 -18
  2. package/dist/config.d.ts +2 -2
  3. package/dist/config.js +17 -13
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.js +139 -31
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/app-manager.d.ts +43 -9
  8. package/dist/tools/app-manager.js +195 -117
  9. package/dist/tools/app-manager.js.map +1 -1
  10. package/dist/tools/architecture.js +0 -2
  11. package/dist/tools/architecture.js.map +1 -1
  12. package/dist/tools/build.d.ts +4 -0
  13. package/dist/tools/build.js +4 -2
  14. package/dist/tools/build.js.map +1 -1
  15. package/dist/tools/idf-build.d.ts +13 -0
  16. package/dist/tools/idf-build.js +8 -4
  17. package/dist/tools/idf-build.js.map +1 -1
  18. package/dist/tools/idf-flash.d.ts +20 -0
  19. package/dist/tools/idf-flash.js +184 -0
  20. package/dist/tools/idf-flash.js.map +1 -0
  21. package/dist/tools/idf-monitor.d.ts +29 -0
  22. package/dist/tools/idf-monitor.js +168 -0
  23. package/dist/tools/idf-monitor.js.map +1 -0
  24. package/dist/tools/midi.d.ts +27 -0
  25. package/dist/tools/midi.js +112 -0
  26. package/dist/tools/midi.js.map +1 -0
  27. package/dist/tools/repo-actions.d.ts +46 -0
  28. package/dist/tools/repo-actions.js +273 -0
  29. package/dist/tools/repo-actions.js.map +1 -0
  30. package/dist/tools/symbols.d.ts +16 -1
  31. package/dist/tools/symbols.js +118 -50
  32. package/dist/tools/symbols.js.map +1 -1
  33. package/dist/tools/test.d.ts +7 -0
  34. package/dist/tools/test.js +4 -2
  35. package/dist/tools/test.js.map +1 -1
  36. package/dist/utils/device.d.ts +38 -0
  37. package/dist/utils/device.js +287 -0
  38. package/dist/utils/device.js.map +1 -0
  39. package/dist/utils/remote-client.d.ts +1 -0
  40. package/dist/utils/remote-client.js +24 -1
  41. package/dist/utils/remote-client.js.map +1 -1
  42. package/package.json +6 -3
@@ -1,12 +1,27 @@
1
1
  /**
2
2
  * MCP tool: manage CrossPad app packages via the crosspad-apps registry.
3
- * - list: reads registry + manifest JSON directly (no Python needed)
3
+ * - list: reads registry + manifest JSON from ALL detected repos (no Python needed)
4
4
  * - install/remove/update/sync: delegates to app_manager.py via Python subprocess
5
+ *
6
+ * Each platform repo has app_manager.py at a different path:
7
+ * platform-idf → tools/app_manager.py
8
+ * crosspad-pc → scripts/app_manager.py
9
+ * ESP32-S3 → scripts/app_manager.py
5
10
  */
6
11
  import { OnLine } from "../utils/exec.js";
12
+ interface AppEntry {
13
+ name: string;
14
+ version: string;
15
+ description: string;
16
+ repo: string;
17
+ component_path: string;
18
+ icon: string;
19
+ category: string;
20
+ platforms: string[];
21
+ requires: Record<string, string>;
22
+ }
7
23
  export interface AppListResult {
8
24
  success: boolean;
9
- platform: string;
10
25
  apps: Array<{
11
26
  id: string;
12
27
  name: string;
@@ -14,9 +29,11 @@ export interface AppListResult {
14
29
  description: string;
15
30
  category: string;
16
31
  platforms: string[];
17
- installed: boolean;
18
- installed_version?: string;
19
- installed_ref?: string;
32
+ installed_in: Array<{
33
+ platform: string;
34
+ version: string;
35
+ ref: string;
36
+ }>;
20
37
  compatible: boolean;
21
38
  }>;
22
39
  installed_count: number;
@@ -26,12 +43,29 @@ export interface AppListResult {
26
43
  export interface AppActionResult {
27
44
  success: boolean;
28
45
  action: string;
46
+ platform: string;
29
47
  app_name?: string;
30
48
  output: string;
31
49
  error?: string;
32
50
  }
51
+ interface PlatformInfo {
52
+ label: string;
53
+ root: string;
54
+ scriptDir: string;
55
+ platformId: string;
56
+ }
57
+ /** @internal exported for testing */
58
+ export declare function getAvailablePlatforms(): PlatformInfo[];
59
+ /** @internal exported for testing */
60
+ export declare function isCompatible(app: AppEntry, platformId: string): boolean;
61
+ /**
62
+ * Build a Python command that invokes app_manager.py's AppManager class.
63
+ */
64
+ /** @internal exported for testing */
65
+ export declare function buildPythonCmd(projectRoot: string, scriptDir: string, method: string, args?: string): string;
33
66
  export declare function crosspadAppList(showAll?: boolean): AppListResult;
34
- export declare function crosspadAppInstall(appName: string, ref?: string, force?: boolean, onLine?: OnLine): Promise<AppActionResult>;
35
- export declare function crosspadAppRemove(appName: string, onLine?: OnLine): Promise<AppActionResult>;
36
- export declare function crosspadAppUpdate(appName?: string, updateAll?: boolean, onLine?: OnLine): Promise<AppActionResult>;
37
- export declare function crosspadAppSync(onLine?: OnLine): Promise<AppActionResult>;
67
+ export declare function crosspadAppInstall(appName: string, platform: string, ref?: string, force?: boolean, onLine?: OnLine): Promise<AppActionResult>;
68
+ export declare function crosspadAppRemove(appName: string, platform: string, onLine?: OnLine): Promise<AppActionResult>;
69
+ export declare function crosspadAppUpdate(platform: string, appName?: string, updateAll?: boolean, onLine?: OnLine): Promise<AppActionResult>;
70
+ export declare function crosspadAppSync(platform: string, onLine?: OnLine): Promise<AppActionResult>;
71
+ export {};
@@ -1,36 +1,76 @@
1
1
  /**
2
2
  * MCP tool: manage CrossPad app packages via the crosspad-apps registry.
3
- * - list: reads registry + manifest JSON directly (no Python needed)
3
+ * - list: reads registry + manifest JSON from ALL detected repos (no Python needed)
4
4
  * - install/remove/update/sync: delegates to app_manager.py via Python subprocess
5
+ *
6
+ * Each platform repo has app_manager.py at a different path:
7
+ * platform-idf → tools/app_manager.py
8
+ * crosspad-pc → scripts/app_manager.py
9
+ * ESP32-S3 → scripts/app_manager.py
5
10
  */
6
11
  import fs from "fs";
7
12
  import path from "path";
8
- import { CROSSPAD_IDF_ROOT } from "../config.js";
13
+ import { execSync } from "child_process";
14
+ import { getRepos } from "../config.js";
9
15
  import { runCommand, runCommandStream } from "../utils/exec.js";
16
+ /** @internal exported for testing */
17
+ export function getAvailablePlatforms() {
18
+ const repos = getRepos();
19
+ const platforms = [];
20
+ if (repos["platform-idf"]) {
21
+ platforms.push({
22
+ label: "idf",
23
+ root: repos["platform-idf"],
24
+ scriptDir: "tools",
25
+ platformId: "esp-idf",
26
+ });
27
+ }
28
+ if (repos["crosspad-pc"]) {
29
+ platforms.push({
30
+ label: "pc",
31
+ root: repos["crosspad-pc"],
32
+ scriptDir: "scripts",
33
+ platformId: "pc",
34
+ });
35
+ }
36
+ if (repos["ESP32-S3"]) {
37
+ platforms.push({
38
+ label: "arduino",
39
+ root: repos["ESP32-S3"],
40
+ scriptDir: "scripts",
41
+ platformId: "arduino",
42
+ });
43
+ }
44
+ return platforms;
45
+ }
46
+ function resolvePlatform(platform) {
47
+ return getAvailablePlatforms().find((p) => p.label === platform) ?? null;
48
+ }
10
49
  // ═══════════════════════════════════════════════════════════════════════
11
50
  // HELPERS
12
51
  // ═══════════════════════════════════════════════════════════════════════
13
- const PLATFORM = "esp-idf";
14
- function loadRegistryJson() {
15
- // Try local cache first, then cached registry
16
- const candidates = [
17
- path.join(CROSSPAD_IDF_ROOT, "app-registry.json"),
18
- ];
19
- for (const p of candidates) {
20
- if (fs.existsSync(p)) {
21
- try {
22
- const data = JSON.parse(fs.readFileSync(p, "utf-8"));
23
- return data.apps ?? {};
24
- }
25
- catch {
26
- continue;
27
- }
28
- }
52
+ const REGISTRY_CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
53
+ let _registryCache = null;
54
+ function loadRegistryJsonFrom(repoRoot) {
55
+ const registryPath = path.join(repoRoot, "app-registry.json");
56
+ // Return cached if fresh and from same source
57
+ if (_registryCache && _registryCache.source === registryPath && Date.now() - _registryCache.timestamp < REGISTRY_CACHE_TTL_MS) {
58
+ return _registryCache.data;
59
+ }
60
+ if (!fs.existsSync(registryPath))
61
+ return null;
62
+ try {
63
+ const data = JSON.parse(fs.readFileSync(registryPath, "utf-8"));
64
+ const apps = data.apps ?? {};
65
+ _registryCache = { data: apps, timestamp: Date.now(), source: registryPath };
66
+ return apps;
67
+ }
68
+ catch {
69
+ return null;
29
70
  }
30
- return null;
31
71
  }
32
- function loadManifest() {
33
- const manifestPath = path.join(CROSSPAD_IDF_ROOT, "apps.json");
72
+ function loadManifestFrom(repoRoot) {
73
+ const manifestPath = path.join(repoRoot, "apps.json");
34
74
  if (!fs.existsSync(manifestPath))
35
75
  return {};
36
76
  try {
@@ -41,16 +81,17 @@ function loadManifest() {
41
81
  return {};
42
82
  }
43
83
  }
44
- function isCompatible(app) {
45
- return app.platforms.includes(PLATFORM);
84
+ /** @internal exported for testing */
85
+ export function isCompatible(app, platformId) {
86
+ return app.platforms.includes(platformId);
46
87
  }
47
88
  /**
48
89
  * Build a Python command that invokes app_manager.py's AppManager class.
49
90
  */
50
- function buildPythonCmd(method, args = "") {
51
- const toolsDir = path.join(CROSSPAD_IDF_ROOT, "tools").replace(/\\/g, "/");
52
- const projectDir = CROSSPAD_IDF_ROOT.replace(/\\/g, "/");
53
- // Inline Python script that imports and calls AppManager
91
+ /** @internal exported for testing */
92
+ export function buildPythonCmd(projectRoot, scriptDir, method, args = "") {
93
+ const toolsDir = path.join(projectRoot, scriptDir).replace(/\\/g, "/");
94
+ const projectDir = projectRoot.replace(/\\/g, "/");
54
95
  const script = [
55
96
  `import sys, os`,
56
97
  `sys.path.insert(0, '${toolsDir}')`,
@@ -61,44 +102,68 @@ function buildPythonCmd(method, args = "") {
61
102
  return `python3 -c "${script}"`;
62
103
  }
63
104
  // ═══════════════════════════════════════════════════════════════════════
64
- // LIST — reads JSON directly, fast, no Python dependency
105
+ // LIST — reads JSON from ALL repos, aggregates installation status
65
106
  // ═══════════════════════════════════════════════════════════════════════
66
107
  export function crosspadAppList(showAll = false) {
67
- if (!fs.existsSync(CROSSPAD_IDF_ROOT)) {
108
+ const platforms = getAvailablePlatforms();
109
+ if (platforms.length === 0) {
68
110
  return {
69
111
  success: false,
70
- platform: PLATFORM,
71
112
  apps: [],
72
113
  installed_count: 0,
73
114
  total_count: 0,
74
- error: `platform-idf not found at ${CROSSPAD_IDF_ROOT}`,
115
+ error: "No CrossPad repos found on disk.",
75
116
  };
76
117
  }
77
- // Try to refresh registry if stale or missing
78
- let apps = loadRegistryJson();
79
- if (!apps) {
80
- // Try fetching via Python (which downloads registry on first use)
81
- const refreshCmd = buildPythonCmd("_load_registry");
82
- runCommand(refreshCmd, CROSSPAD_IDF_ROOT, 30_000);
83
- apps = loadRegistryJson();
118
+ // Load registry from first repo that has it
119
+ let registry = null;
120
+ for (const plat of platforms) {
121
+ registry = loadRegistryJsonFrom(plat.root);
122
+ if (registry)
123
+ break;
124
+ }
125
+ if (!registry) {
126
+ // Try refreshing via Python on the first available platform
127
+ const plat = platforms[0];
128
+ const refreshCmd = buildPythonCmd(plat.root, plat.scriptDir, "_load_registry");
129
+ runCommand(refreshCmd, plat.root, 30_000);
130
+ registry = loadRegistryJsonFrom(plat.root);
84
131
  }
85
- if (!apps) {
132
+ if (!registry) {
86
133
  return {
87
134
  success: false,
88
- platform: PLATFORM,
89
135
  apps: [],
90
136
  installed_count: 0,
91
137
  total_count: 0,
92
138
  error: "Could not load registry. Ensure 'gh' CLI is installed and authenticated.",
93
139
  };
94
140
  }
95
- const manifest = loadManifest();
141
+ // Load manifests from ALL repos
142
+ const manifests = [];
143
+ for (const plat of platforms) {
144
+ const installed = loadManifestFrom(plat.root);
145
+ if (Object.keys(installed).length > 0) {
146
+ manifests.push({ platform: plat.label, platformId: plat.platformId, installed });
147
+ }
148
+ }
96
149
  const result = [];
97
- for (const [id, app] of Object.entries(apps)) {
98
- const compatible = isCompatible(app);
150
+ for (const [id, app] of Object.entries(registry)) {
151
+ // Check where this app is installed
152
+ const installedIn = [];
153
+ for (const m of manifests) {
154
+ const entry = m.installed[id];
155
+ if (entry) {
156
+ installedIn.push({
157
+ platform: m.platform,
158
+ version: entry.version,
159
+ ref: entry.ref,
160
+ });
161
+ }
162
+ }
163
+ // Compatible = supported on at least one detected platform
164
+ const compatible = platforms.some((p) => app.platforms.includes(p.platformId));
99
165
  if (!showAll && !compatible)
100
166
  continue;
101
- const installed = manifest[id];
102
167
  result.push({
103
168
  id,
104
169
  name: app.name,
@@ -106,70 +171,113 @@ export function crosspadAppList(showAll = false) {
106
171
  description: app.description,
107
172
  category: app.category,
108
173
  platforms: app.platforms,
109
- installed: !!installed,
110
- installed_version: installed?.version,
111
- installed_ref: installed?.ref,
174
+ installed_in: installedIn,
112
175
  compatible,
113
176
  });
114
177
  }
115
- const installedCount = result.filter((a) => a.installed).length;
178
+ const installedCount = result.filter((a) => a.installed_in.length > 0).length;
116
179
  return {
117
180
  success: true,
118
- platform: PLATFORM,
119
181
  apps: result,
120
182
  installed_count: installedCount,
121
- total_count: Object.keys(apps).length,
183
+ total_count: Object.keys(registry).length,
122
184
  };
123
185
  }
124
186
  // ═══════════════════════════════════════════════════════════════════════
125
- // INSTALL / REMOVE / UPDATE / SYNC — delegates to Python
187
+ // INSTALL / REMOVE / UPDATE / SYNC — delegates to Python per platform
126
188
  // ═══════════════════════════════════════════════════════════════════════
127
- export async function crosspadAppInstall(appName, ref = "main", force = false, onLine) {
128
- const forceArg = force ? ", force=True" : "";
129
- const cmd = buildPythonCmd("install", `'${appName}', ref='${ref}'${forceArg}`);
130
- onLine?.("stdout", `[app-manager] Installing ${appName} (ref=${ref})...`);
131
- if (onLine) {
132
- const result = await runCommandStream(cmd, CROSSPAD_IDF_ROOT, onLine, 120_000);
189
+ function requirePlatform(platform) {
190
+ const info = resolvePlatform(platform);
191
+ if (!info) {
192
+ const available = getAvailablePlatforms().map((p) => p.label);
133
193
  return {
134
- success: result.success,
135
- action: "install",
136
- app_name: appName,
137
- output: result.stdout,
138
- error: result.success ? undefined : result.stderr || result.stdout,
194
+ error: {
195
+ success: false,
196
+ action: "",
197
+ platform,
198
+ output: "",
199
+ error: `Unknown platform "${platform}". Available: ${available.join(", ")}`,
200
+ },
139
201
  };
140
202
  }
141
- const result = runCommand(cmd, CROSSPAD_IDF_ROOT, 120_000);
142
- return {
143
- success: result.success,
144
- action: "install",
145
- app_name: appName,
146
- output: result.stdout,
147
- error: result.success ? undefined : result.stderr || result.stdout,
148
- };
203
+ return { info };
204
+ }
205
+ let _pythonOk = null;
206
+ function isPythonAvailable() {
207
+ if (_pythonOk !== null)
208
+ return _pythonOk;
209
+ try {
210
+ execSync("python3 --version", { stdio: "ignore", timeout: 5000 });
211
+ _pythonOk = true;
212
+ }
213
+ catch {
214
+ _pythonOk = false;
215
+ }
216
+ return _pythonOk;
217
+ }
218
+ function validatePythonSetup(info) {
219
+ if (!isPythonAvailable()) {
220
+ return "python3 is not installed or not in PATH. Install Python 3 to use app management.";
221
+ }
222
+ const scriptPath = path.join(info.root, info.scriptDir, "app_manager.py");
223
+ if (!fs.existsSync(scriptPath)) {
224
+ return `app_manager.py not found at ${scriptPath}. Run 'idf.py app-list' first to bootstrap the script.`;
225
+ }
226
+ return null;
149
227
  }
150
- export async function crosspadAppRemove(appName, onLine) {
151
- const cmd = buildPythonCmd("remove", `'${appName}'`);
152
- onLine?.("stdout", `[app-manager] Removing ${appName}...`);
228
+ async function runPythonAction(info, action, method, args, appName, onLine, timeoutMs) {
229
+ const validationError = validatePythonSetup(info);
230
+ if (validationError) {
231
+ return {
232
+ success: false,
233
+ action,
234
+ platform: info.label,
235
+ app_name: appName,
236
+ output: "",
237
+ error: validationError,
238
+ };
239
+ }
240
+ const cmd = buildPythonCmd(info.root, info.scriptDir, method, args);
153
241
  if (onLine) {
154
- const result = await runCommandStream(cmd, CROSSPAD_IDF_ROOT, onLine, 60_000);
242
+ const result = await runCommandStream(cmd, info.root, onLine, timeoutMs);
155
243
  return {
156
244
  success: result.success,
157
- action: "remove",
245
+ action,
246
+ platform: info.label,
158
247
  app_name: appName,
159
248
  output: result.stdout,
160
249
  error: result.success ? undefined : result.stderr || result.stdout,
161
250
  };
162
251
  }
163
- const result = runCommand(cmd, CROSSPAD_IDF_ROOT, 60_000);
252
+ const result = runCommand(cmd, info.root, timeoutMs);
164
253
  return {
165
254
  success: result.success,
166
- action: "remove",
255
+ action,
256
+ platform: info.label,
167
257
  app_name: appName,
168
258
  output: result.stdout,
169
259
  error: result.success ? undefined : result.stderr || result.stdout,
170
260
  };
171
261
  }
172
- export async function crosspadAppUpdate(appName, updateAll = false, onLine) {
262
+ export async function crosspadAppInstall(appName, platform, ref = "main", force = false, onLine) {
263
+ const resolved = requirePlatform(platform);
264
+ if ("error" in resolved)
265
+ return { ...resolved.error, action: "install" };
266
+ const forceArg = force ? ", force=True" : "";
267
+ onLine?.("stdout", `[app-manager] Installing ${appName} on ${platform} (ref=${ref})...`);
268
+ return runPythonAction(resolved.info, "install", "install", `'${appName}', ref='${ref}'${forceArg}`, appName, onLine, 120_000);
269
+ }
270
+ export async function crosspadAppRemove(appName, platform, onLine) {
271
+ const resolved = requirePlatform(platform);
272
+ if ("error" in resolved)
273
+ return { ...resolved.error, action: "remove" };
274
+ onLine?.("stdout", `[app-manager] Removing ${appName} from ${platform}...`);
275
+ return runPythonAction(resolved.info, "remove", "remove", `'${appName}'`, appName, onLine, 60_000);
276
+ }
277
+ export async function crosspadAppUpdate(platform, appName, updateAll = false, onLine) {
278
+ const resolved = requirePlatform(platform);
279
+ if ("error" in resolved)
280
+ return { ...resolved.error, action: "update" };
173
281
  let args;
174
282
  if (updateAll) {
175
283
  args = "update_all=True";
@@ -181,50 +289,20 @@ export async function crosspadAppUpdate(appName, updateAll = false, onLine) {
181
289
  return {
182
290
  success: false,
183
291
  action: "update",
292
+ platform,
184
293
  output: "",
185
294
  error: "Specify app_name or set update_all=true",
186
295
  };
187
296
  }
188
- const cmd = buildPythonCmd("update", args);
189
297
  const label = updateAll ? "all apps" : appName;
190
- onLine?.("stdout", `[app-manager] Updating ${label}...`);
191
- if (onLine) {
192
- const result = await runCommandStream(cmd, CROSSPAD_IDF_ROOT, onLine, 120_000);
193
- return {
194
- success: result.success,
195
- action: "update",
196
- app_name: appName,
197
- output: result.stdout,
198
- error: result.success ? undefined : result.stderr || result.stdout,
199
- };
200
- }
201
- const result = runCommand(cmd, CROSSPAD_IDF_ROOT, 120_000);
202
- return {
203
- success: result.success,
204
- action: "update",
205
- app_name: appName,
206
- output: result.stdout,
207
- error: result.success ? undefined : result.stderr || result.stdout,
208
- };
298
+ onLine?.("stdout", `[app-manager] Updating ${label} on ${platform}...`);
299
+ return runPythonAction(resolved.info, "update", "update", args, appName, onLine, 120_000);
209
300
  }
210
- export async function crosspadAppSync(onLine) {
211
- const cmd = buildPythonCmd("sync");
212
- onLine?.("stdout", "[app-manager] Syncing manifest...");
213
- if (onLine) {
214
- const result = await runCommandStream(cmd, CROSSPAD_IDF_ROOT, onLine, 60_000);
215
- return {
216
- success: result.success,
217
- action: "sync",
218
- output: result.stdout,
219
- error: result.success ? undefined : result.stderr || result.stdout,
220
- };
221
- }
222
- const result = runCommand(cmd, CROSSPAD_IDF_ROOT, 60_000);
223
- return {
224
- success: result.success,
225
- action: "sync",
226
- output: result.stdout,
227
- error: result.success ? undefined : result.stderr || result.stdout,
228
- };
301
+ export async function crosspadAppSync(platform, onLine) {
302
+ const resolved = requirePlatform(platform);
303
+ if ("error" in resolved)
304
+ return { ...resolved.error, action: "sync" };
305
+ onLine?.("stdout", `[app-manager] Syncing manifest on ${platform}...`);
306
+ return runPythonAction(resolved.info, "sync", "sync", "", undefined, onLine, 60_000);
229
307
  }
230
308
  //# sourceMappingURL=app-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-manager.js","sourceRoot":"","sources":["../../src/tools/app-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-manager.js","sourceRoot":"","sources":["../../src/tools/app-manager.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,6 @@ function findImplementations(interfaceName) {
40
40
  "crosspad-gui": "gui",
41
41
  "crosspad-pc": "PC",
42
42
  "ESP32-S3": "arduino",
43
- "2playerCrosspad": "2player",
44
43
  "platform-idf": "idf",
45
44
  };
46
45
  for (const [name, repoPath] of Object.entries(repos)) {
@@ -92,7 +91,6 @@ function queryCapabilities() {
92
91
  "crosspad-pc": "PC",
93
92
  "ESP32-S3": "arduino",
94
93
  "platform-idf": "idf",
95
- "2playerCrosspad": "2player",
96
94
  };
97
95
  const platforms = {};
98
96
  for (const [name, repoPath] of Object.entries(repos)) {
@@ -1 +1 @@
1
- {"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/tools/architecture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/tools/architecture.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export interface BuildResult {
6
6
  warnings_count: number;
7
7
  output_path: string;
8
8
  }
9
+ /** @internal exported for testing */
10
+ export declare function parseErrors(output: string): string[];
11
+ /** @internal exported for testing */
12
+ export declare function countWarnings(output: string): number;
9
13
  export declare function crosspadBuild(mode: "incremental" | "clean" | "reconfigure", onLine?: OnLine): Promise<BuildResult>;
10
14
  export interface RunResult {
11
15
  pid: number | null;
@@ -1,7 +1,8 @@
1
1
  import fs from "fs";
2
2
  import { CROSSPAD_PC_ROOT, BUILD_DIR, BIN_EXE, VCPKG_TOOLCHAIN } from "../config.js";
3
3
  import { runBuild, runBuildStream, spawnDetached } from "../utils/exec.js";
4
- function parseErrors(output) {
4
+ /** @internal exported for testing */
5
+ export function parseErrors(output) {
5
6
  const errors = [];
6
7
  for (const line of output.split("\n")) {
7
8
  if (/\berror\b/i.test(line) && !line.includes("error(s)")) {
@@ -10,7 +11,8 @@ function parseErrors(output) {
10
11
  }
11
12
  return errors.slice(0, 20); // Cap at 20 errors
12
13
  }
13
- function countWarnings(output) {
14
+ /** @internal exported for testing */
15
+ export function countWarnings(output) {
14
16
  let count = 0;
15
17
  for (const line of output.split("\n")) {
16
18
  if (/\bwarning\b/i.test(line) && !line.includes("warning(s)")) {