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.
Files changed (54) hide show
  1. package/dist/config.d.ts +13 -3
  2. package/dist/config.js +89 -20
  3. package/dist/config.js.map +1 -1
  4. package/dist/index.js +214 -308
  5. package/dist/index.js.map +1 -1
  6. package/dist/tools/app-manager.d.ts +37 -0
  7. package/dist/tools/app-manager.js +230 -0
  8. package/dist/tools/app-manager.js.map +1 -0
  9. package/dist/tools/architecture.d.ts +1 -1
  10. package/dist/tools/architecture.js +43 -32
  11. package/dist/tools/architecture.js.map +1 -1
  12. package/dist/tools/build-check.js +2 -2
  13. package/dist/tools/build-check.js.map +1 -1
  14. package/dist/tools/build.js +2 -4
  15. package/dist/tools/build.js.map +1 -1
  16. package/dist/tools/diff-core.js.map +1 -1
  17. package/dist/tools/idf-build.js +3 -3
  18. package/dist/tools/idf-build.js.map +1 -1
  19. package/dist/tools/log.js +3 -3
  20. package/dist/tools/log.js.map +1 -1
  21. package/dist/tools/repos.js +38 -28
  22. package/dist/tools/repos.js.map +1 -1
  23. package/dist/tools/screenshot.d.ts +1 -2
  24. package/dist/tools/screenshot.js +3 -10
  25. package/dist/tools/screenshot.js.map +1 -1
  26. package/dist/tools/symbols.js +4 -3
  27. package/dist/tools/symbols.js.map +1 -1
  28. package/dist/tools/test.js +2 -5
  29. package/dist/tools/test.js.map +1 -1
  30. package/dist/utils/exec.d.ts +12 -4
  31. package/dist/utils/exec.js +52 -17
  32. package/dist/utils/exec.js.map +1 -1
  33. package/package.json +24 -4
  34. package/server.json +0 -23
  35. package/src/config.ts +0 -45
  36. package/src/index.ts +0 -484
  37. package/src/tools/architecture.ts +0 -260
  38. package/src/tools/build-check.ts +0 -178
  39. package/src/tools/build.ts +0 -130
  40. package/src/tools/diff-core.ts +0 -130
  41. package/src/tools/idf-build.ts +0 -182
  42. package/src/tools/input.ts +0 -80
  43. package/src/tools/log.ts +0 -75
  44. package/src/tools/repos.ts +0 -75
  45. package/src/tools/scaffold.ts +0 -229
  46. package/src/tools/screenshot.ts +0 -100
  47. package/src/tools/settings.ts +0 -68
  48. package/src/tools/stats.ts +0 -38
  49. package/src/tools/symbols.ts +0 -185
  50. package/src/tools/test.ts +0 -264
  51. package/src/utils/exec.ts +0 -376
  52. package/src/utils/git.ts +0 -45
  53. package/src/utils/remote-client.ts +0 -107
  54. package/tsconfig.json +0 -16
package/dist/config.d.ts CHANGED
@@ -1,10 +1,20 @@
1
1
  export declare const IS_WINDOWS: boolean;
2
2
  export declare const IS_MAC: boolean;
3
3
  export declare const CROSSPAD_PC_ROOT: string;
4
- export declare const REPOS: Record<string, string>;
4
+ export declare const CROSSPAD_IDF_ROOT: string;
5
+ export declare const IDF_PATH: string;
5
6
  export declare const VCVARSALL: string;
6
7
  export declare const VCPKG_TOOLCHAIN: string;
7
8
  export declare const BUILD_DIR: string;
8
9
  export declare const BIN_EXE: string;
9
- export declare const CROSSPAD_IDF_ROOT: string;
10
- export declare const IDF_PATH: string;
10
+ /** Returns only repos that actually exist on disk. Cached for server lifetime. */
11
+ export declare function getRepos(): Record<string, string>;
12
+ export declare const REPOS: Record<string, string>;
13
+ /**
14
+ * Resolve the crosspad-core include path. Checks:
15
+ * 1. Standalone repo at $GIT_DIR/crosspad-core
16
+ * 2. Submodule inside platform-idf: $IDF_ROOT/components/crosspad-core
17
+ * 3. Submodule inside crosspad-pc: $PC_ROOT/crosspad-core
18
+ * Returns null if not found anywhere.
19
+ */
20
+ export declare function resolveCrosspadCore(): string | null;
package/dist/config.js CHANGED
@@ -1,33 +1,102 @@
1
+ import fs from "fs";
1
2
  import path from "path";
2
3
  import os from "os";
3
4
  export const IS_WINDOWS = process.platform === "win32";
4
5
  export const IS_MAC = process.platform === "darwin";
5
- // Base directory for all CrossPad repos (override with CROSSPAD_GIT_DIR)
6
- const defaultGitDir = IS_WINDOWS
7
- ? "C:/Users/Mateusz/GIT"
8
- : path.join(os.homedir(), "GIT");
9
- const GIT_DIR = process.env.CROSSPAD_GIT_DIR || defaultGitDir;
6
+ // ═══════════════════════════════════════════════════════════════════════
7
+ // BASE PATHS — all overridable via env vars
8
+ // ═══════════════════════════════════════════════════════════════════════
9
+ const GIT_DIR = process.env.CROSSPAD_GIT_DIR || path.join(os.homedir(), "GIT");
10
10
  export const CROSSPAD_PC_ROOT = process.env.CROSSPAD_PC_ROOT || path.join(GIT_DIR, "crosspad-pc");
11
- export const REPOS = {
12
- "crosspad-core": path.join(GIT_DIR, "crosspad-core"),
13
- "crosspad-gui": path.join(GIT_DIR, "crosspad-gui"),
14
- "crosspad-pc": CROSSPAD_PC_ROOT,
15
- "ESP32-S3": path.join(GIT_DIR, "ESP32-S3"),
16
- "2playerCrosspad": path.join(GIT_DIR, "P4_TEST", "2playerCrosspad"),
17
- "crosspad-idf": path.join(GIT_DIR, "crosspad-idf"),
18
- };
19
- // MSVC only used on Windows
11
+ export const CROSSPAD_IDF_ROOT = process.env.CROSSPAD_IDF_ROOT || path.join(GIT_DIR, "platform-idf");
12
+ // ═══════════════════════════════════════════════════════════════════════
13
+ // ESP-IDF SDK PATH — fallback chain
14
+ // ═══════════════════════════════════════════════════════════════════════
15
+ function findIdfPath() {
16
+ if (process.env.IDF_PATH)
17
+ return process.env.IDF_PATH;
18
+ // Try common paths
19
+ const candidates = [
20
+ path.join(os.homedir(), "esp", "esp-idf"),
21
+ path.join(os.homedir(), "esp", "v5.5.4", "esp-idf"),
22
+ path.join(os.homedir(), "esp", "v5.5", "esp-idf"),
23
+ ];
24
+ for (const p of candidates) {
25
+ if (fs.existsSync(p))
26
+ return p;
27
+ }
28
+ // Last resort — return the most common default even if missing
29
+ return path.join(os.homedir(), "esp", "esp-idf");
30
+ }
31
+ export const IDF_PATH = findIdfPath();
32
+ // ═══════════════════════════════════════════════════════════════════════
33
+ // MSVC / VCPKG — Windows-only build tools
34
+ // ═══════════════════════════════════════════════════════════════════════
20
35
  export const VCVARSALL = process.env.VCVARSALL ||
21
36
  "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat";
22
- // vcpkg — platform-aware defaults
23
37
  const defaultVcpkgRoot = IS_WINDOWS ? "C:/vcpkg" : path.join(os.homedir(), "vcpkg");
24
38
  const vcpkgRoot = process.env.VCPKG_ROOT || defaultVcpkgRoot;
25
39
  export const VCPKG_TOOLCHAIN = path.join(vcpkgRoot, "scripts", "buildsystems", "vcpkg.cmake");
40
+ // ═══════════════════════════════════════════════════════════════════════
41
+ // PC SIMULATOR PATHS
42
+ // ═══════════════════════════════════════════════════════════════════════
26
43
  export const BUILD_DIR = path.join(CROSSPAD_PC_ROOT, "build");
27
44
  const EXE_EXT = IS_WINDOWS ? ".exe" : "";
28
- export const BIN_EXE = path.join(CROSSPAD_PC_ROOT, "bin", `CrossPad${EXE_EXT}`);
29
- // ESP-IDF
30
- export const CROSSPAD_IDF_ROOT = process.env.CROSSPAD_IDF_ROOT || path.join(GIT_DIR, "crosspad-idf");
31
- const defaultIdfPath = path.join(os.homedir(), "esp", "v5.5", "esp-idf");
32
- export const IDF_PATH = process.env.IDF_PATH || defaultIdfPath;
45
+ export const BIN_EXE = path.join(CROSSPAD_PC_ROOT, "bin", `main${EXE_EXT}`);
46
+ // ═══════════════════════════════════════════════════════════════════════
47
+ // REPOS dynamic discovery, cached
48
+ // ═══════════════════════════════════════════════════════════════════════
49
+ /** Known repo candidates: name expected path */
50
+ const REPO_CANDIDATES = {
51
+ "crosspad-core": path.join(GIT_DIR, "crosspad-core"),
52
+ "crosspad-gui": path.join(GIT_DIR, "crosspad-gui"),
53
+ "crosspad-pc": CROSSPAD_PC_ROOT,
54
+ "platform-idf": CROSSPAD_IDF_ROOT,
55
+ "ESP32-S3": path.join(GIT_DIR, "ESP32-S3"),
56
+ "2playerCrosspad": path.join(GIT_DIR, "2playerCrosspad"),
57
+ };
58
+ let cachedRepos = null;
59
+ /** Returns only repos that actually exist on disk. Cached for server lifetime. */
60
+ export function getRepos() {
61
+ if (cachedRepos)
62
+ return cachedRepos;
63
+ const found = {};
64
+ for (const [name, repoPath] of Object.entries(REPO_CANDIDATES)) {
65
+ if (fs.existsSync(repoPath)) {
66
+ found[name] = repoPath;
67
+ }
68
+ }
69
+ cachedRepos = found;
70
+ return found;
71
+ }
72
+ // Legacy compat — some tool files still import REPOS directly
73
+ export const REPOS = REPO_CANDIDATES;
74
+ // ═══════════════════════════════════════════════════════════════════════
75
+ // CROSSPAD-CORE RESOLUTION — finds crosspad-core wherever it lives
76
+ // ═══════════════════════════════════════════════════════════════════════
77
+ let cachedCrosspadCorePath = undefined;
78
+ /**
79
+ * Resolve the crosspad-core include path. Checks:
80
+ * 1. Standalone repo at $GIT_DIR/crosspad-core
81
+ * 2. Submodule inside platform-idf: $IDF_ROOT/components/crosspad-core
82
+ * 3. Submodule inside crosspad-pc: $PC_ROOT/crosspad-core
83
+ * Returns null if not found anywhere.
84
+ */
85
+ export function resolveCrosspadCore() {
86
+ if (cachedCrosspadCorePath !== undefined)
87
+ return cachedCrosspadCorePath;
88
+ const candidates = [
89
+ path.join(GIT_DIR, "crosspad-core"),
90
+ path.join(CROSSPAD_IDF_ROOT, "components", "crosspad-core"),
91
+ path.join(CROSSPAD_PC_ROOT, "crosspad-core"),
92
+ ];
93
+ for (const p of candidates) {
94
+ if (fs.existsSync(path.join(p, "include", "crosspad"))) {
95
+ cachedCrosspadCorePath = p;
96
+ return p;
97
+ }
98
+ }
99
+ cachedCrosspadCorePath = null;
100
+ return null;
101
+ }
33
102
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAEpD,yEAAyE;AACzE,MAAM,aAAa,GAAG,UAAU;IAC9B,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,KAAK,GAA2B;IAC3C,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;IACpD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;IAClD,aAAa,EAAE,gBAAgB;IAC/B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC;IACnE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;CACnD,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GACpB,OAAO,CAAC,GAAG,CAAC,SAAS;IACrB,kGAAkG,CAAC;AAErG,kCAAkC;AAClC,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACpF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,gBAAgB,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAE9D,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAW,OAAO,EAAE,CAAC,CAAC;AAEhF,UAAU;AACV,MAAM,CAAC,MAAM,iBAAiB,GAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAEtE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}