@creatoria/miniapp-mcp 0.1.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 (160) hide show
  1. package/README.md +469 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +144 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/config/defaults.d.ts +73 -0
  7. package/dist/config/defaults.d.ts.map +1 -0
  8. package/dist/config/defaults.js +118 -0
  9. package/dist/config/defaults.js.map +1 -0
  10. package/dist/config/loader.d.ts +50 -0
  11. package/dist/config/loader.d.ts.map +1 -0
  12. package/dist/config/loader.js +189 -0
  13. package/dist/config/loader.js.map +1 -0
  14. package/dist/core/element-ref.d.ts +44 -0
  15. package/dist/core/element-ref.d.ts.map +1 -0
  16. package/dist/core/element-ref.js +213 -0
  17. package/dist/core/element-ref.js.map +1 -0
  18. package/dist/core/logger.d.ts +55 -0
  19. package/dist/core/logger.d.ts.map +1 -0
  20. package/dist/core/logger.js +378 -0
  21. package/dist/core/logger.js.map +1 -0
  22. package/dist/core/output.d.ts +21 -0
  23. package/dist/core/output.d.ts.map +1 -0
  24. package/dist/core/output.js +56 -0
  25. package/dist/core/output.js.map +1 -0
  26. package/dist/core/report-generator.d.ts +24 -0
  27. package/dist/core/report-generator.d.ts.map +1 -0
  28. package/dist/core/report-generator.js +212 -0
  29. package/dist/core/report-generator.js.map +1 -0
  30. package/dist/core/session.d.ts +83 -0
  31. package/dist/core/session.d.ts.map +1 -0
  32. package/dist/core/session.js +306 -0
  33. package/dist/core/session.js.map +1 -0
  34. package/dist/core/timeout.d.ts +49 -0
  35. package/dist/core/timeout.d.ts.map +1 -0
  36. package/dist/core/timeout.js +67 -0
  37. package/dist/core/timeout.js.map +1 -0
  38. package/dist/core/tool-logger.d.ts +83 -0
  39. package/dist/core/tool-logger.d.ts.map +1 -0
  40. package/dist/core/tool-logger.js +453 -0
  41. package/dist/core/tool-logger.js.map +1 -0
  42. package/dist/core/validation.d.ts +39 -0
  43. package/dist/core/validation.d.ts.map +1 -0
  44. package/dist/core/validation.js +93 -0
  45. package/dist/core/validation.js.map +1 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +6 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/server.d.ts +7 -0
  51. package/dist/server.d.ts.map +1 -0
  52. package/dist/server.js +85 -0
  53. package/dist/server.js.map +1 -0
  54. package/dist/tools/assert.d.ts +108 -0
  55. package/dist/tools/assert.d.ts.map +1 -0
  56. package/dist/tools/assert.js +291 -0
  57. package/dist/tools/assert.js.map +1 -0
  58. package/dist/tools/automator.d.ts +45 -0
  59. package/dist/tools/automator.d.ts.map +1 -0
  60. package/dist/tools/automator.js +186 -0
  61. package/dist/tools/automator.js.map +1 -0
  62. package/dist/tools/element.d.ts +253 -0
  63. package/dist/tools/element.d.ts.map +1 -0
  64. package/dist/tools/element.js +615 -0
  65. package/dist/tools/element.js.map +1 -0
  66. package/dist/tools/index.d.ts +97 -0
  67. package/dist/tools/index.d.ts.map +1 -0
  68. package/dist/tools/index.js +1565 -0
  69. package/dist/tools/index.js.map +1 -0
  70. package/dist/tools/miniprogram.d.ts +79 -0
  71. package/dist/tools/miniprogram.d.ts.map +1 -0
  72. package/dist/tools/miniprogram.js +245 -0
  73. package/dist/tools/miniprogram.js.map +1 -0
  74. package/dist/tools/network.d.ts +65 -0
  75. package/dist/tools/network.d.ts.map +1 -0
  76. package/dist/tools/network.js +205 -0
  77. package/dist/tools/network.js.map +1 -0
  78. package/dist/tools/page.d.ts +108 -0
  79. package/dist/tools/page.d.ts.map +1 -0
  80. package/dist/tools/page.js +307 -0
  81. package/dist/tools/page.js.map +1 -0
  82. package/dist/tools/record.d.ts +86 -0
  83. package/dist/tools/record.d.ts.map +1 -0
  84. package/dist/tools/record.js +316 -0
  85. package/dist/tools/record.js.map +1 -0
  86. package/dist/tools/snapshot.d.ts +82 -0
  87. package/dist/tools/snapshot.d.ts.map +1 -0
  88. package/dist/tools/snapshot.js +258 -0
  89. package/dist/tools/snapshot.js.map +1 -0
  90. package/dist/types.d.ts +240 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +5 -0
  93. package/dist/types.js.map +1 -0
  94. package/docs/SIMPLE_USAGE.md +210 -0
  95. package/docs/api/README.md +244 -0
  96. package/docs/api/assert.md +1015 -0
  97. package/docs/api/automator.md +345 -0
  98. package/docs/api/element.md +1454 -0
  99. package/docs/api/miniprogram.md +558 -0
  100. package/docs/api/network.md +883 -0
  101. package/docs/api/page.md +909 -0
  102. package/docs/api/record.md +963 -0
  103. package/docs/api/snapshot.md +792 -0
  104. package/docs/architecture.E-Docs.md +1359 -0
  105. package/docs/architecture.F1.md +720 -0
  106. package/docs/architecture.F2.md +871 -0
  107. package/docs/architecture.F3.md +905 -0
  108. package/docs/architecture.md +90 -0
  109. package/docs/charter.A1.align.yaml +170 -0
  110. package/docs/charter.A2.align.yaml +199 -0
  111. package/docs/charter.A3.align.yaml +242 -0
  112. package/docs/charter.A4.align.yaml +227 -0
  113. package/docs/charter.B1.align.yaml +179 -0
  114. package/docs/charter.B2.align.yaml +200 -0
  115. package/docs/charter.B3.align.yaml +200 -0
  116. package/docs/charter.B4.align.yaml +188 -0
  117. package/docs/charter.C1.align.yaml +190 -0
  118. package/docs/charter.C2.align.yaml +202 -0
  119. package/docs/charter.C3.align.yaml +211 -0
  120. package/docs/charter.C4.align.yaml +263 -0
  121. package/docs/charter.C5.align.yaml +220 -0
  122. package/docs/charter.D1.align.yaml +190 -0
  123. package/docs/charter.D2.align.yaml +234 -0
  124. package/docs/charter.D3.align.yaml +206 -0
  125. package/docs/charter.E-Docs.align.yaml +294 -0
  126. package/docs/charter.F1.align.yaml +193 -0
  127. package/docs/charter.F2.align.yaml +248 -0
  128. package/docs/charter.F3.align.yaml +287 -0
  129. package/docs/charter.G.align.yaml +174 -0
  130. package/docs/charter.align.yaml +111 -0
  131. package/docs/examples/session-report-usage.md +449 -0
  132. package/docs/maintenance.md +682 -0
  133. package/docs/playwright-mcp/350/260/203/347/240/224.md +53 -0
  134. package/docs/setup-guide.md +775 -0
  135. package/docs/tasks.A1.atomize.md +296 -0
  136. package/docs/tasks.A2.atomize.md +408 -0
  137. package/docs/tasks.A3.atomize.md +564 -0
  138. package/docs/tasks.A4.atomize.md +496 -0
  139. package/docs/tasks.B1.atomize.md +352 -0
  140. package/docs/tasks.B2.atomize.md +561 -0
  141. package/docs/tasks.B3.atomize.md +508 -0
  142. package/docs/tasks.B4.atomize.md +504 -0
  143. package/docs/tasks.C1.atomize.md +540 -0
  144. package/docs/tasks.C2.atomize.md +665 -0
  145. package/docs/tasks.C3.atomize.md +745 -0
  146. package/docs/tasks.C4.atomize.md +908 -0
  147. package/docs/tasks.C5.atomize.md +755 -0
  148. package/docs/tasks.D1.atomize.md +547 -0
  149. package/docs/tasks.D2.atomize.md +619 -0
  150. package/docs/tasks.D3.atomize.md +790 -0
  151. package/docs/tasks.E-Docs.atomize.md +1204 -0
  152. package/docs/tasks.atomize.md +189 -0
  153. package/docs/troubleshooting.md +855 -0
  154. package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +155 -0
  155. package/docs//345/274/200/345/217/221/344/273/273/345/212/241/350/256/241/345/210/222.md +110 -0
  156. package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226API/345/256/214/346/225/264/346/226/207/346/241/243.md +894 -0
  157. package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226/345/256/214/346/225/264/346/223/215/344/275/234/346/211/213/345/206/214.md +1885 -0
  158. package/docs//346/216/245/345/217/243/346/226/271/346/241/210.md +565 -0
  159. package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +380 -0
  160. package/package.json +87 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Default configuration values for the MCP server
3
+ */
4
+ import type { ServerConfig, SessionConfig } from '../types.js';
5
+ /**
6
+ * Default CLI path for WeChat DevTools on macOS
7
+ */
8
+ export declare const DEFAULT_CLI_PATH_MACOS = "/Applications/wechatwebdevtools.app/Contents/MacOS/cli";
9
+ /**
10
+ * Default automation port for WeChat DevTools
11
+ */
12
+ export declare const DEFAULT_AUTOMATION_PORT = 9420;
13
+ /**
14
+ * Default output directory for artifacts (relative to cwd)
15
+ */
16
+ export declare const DEFAULT_OUTPUT_DIR = ".mcp-artifacts";
17
+ /**
18
+ * Default session timeout (30 minutes in milliseconds)
19
+ */
20
+ export declare const DEFAULT_SESSION_TIMEOUT: number;
21
+ /**
22
+ * Default global timeout for operations (30 seconds in milliseconds)
23
+ */
24
+ export declare const DEFAULT_TIMEOUT: number;
25
+ /**
26
+ * Default timeout for evaluate operations (5 seconds in milliseconds)
27
+ */
28
+ export declare const DEFAULT_EVALUATE_TIMEOUT: number;
29
+ /**
30
+ * Default timeout for launch operations (60 seconds in milliseconds)
31
+ */
32
+ export declare const DEFAULT_LAUNCH_TIMEOUT: number;
33
+ /**
34
+ * Default timeout for screenshot operations (10 seconds in milliseconds)
35
+ */
36
+ export declare const DEFAULT_SCREENSHOT_TIMEOUT: number;
37
+ /**
38
+ * Default capabilities (all tools enabled)
39
+ */
40
+ export declare const DEFAULT_CAPABILITIES: string[];
41
+ /**
42
+ * Default log level
43
+ */
44
+ export declare const DEFAULT_LOG_LEVEL: "info";
45
+ /**
46
+ * Default log buffer size (number of log entries)
47
+ */
48
+ export declare const DEFAULT_LOG_BUFFER_SIZE = 100;
49
+ /**
50
+ * Default log flush interval (5 seconds in milliseconds)
51
+ */
52
+ export declare const DEFAULT_LOG_FLUSH_INTERVAL = 5000;
53
+ /**
54
+ * Default server configuration
55
+ */
56
+ export declare const DEFAULT_SERVER_CONFIG: Required<ServerConfig>;
57
+ /**
58
+ * Default session configuration
59
+ */
60
+ export declare const DEFAULT_SESSION_CONFIG: Required<SessionConfig>;
61
+ /**
62
+ * Get default CLI path for current platform
63
+ */
64
+ export declare function getDefaultCliPath(): string;
65
+ /**
66
+ * Merge user config with defaults for server config
67
+ */
68
+ export declare function mergeServerConfig(userConfig: Partial<ServerConfig>): Required<ServerConfig>;
69
+ /**
70
+ * Merge user config with defaults for session config
71
+ */
72
+ export declare function mergeSessionConfig(userConfig: Partial<SessionConfig>): Required<SessionConfig>;
73
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,sBAAsB,2DAA2D,CAAA;AAE9F;;GAEG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAiB,CAAA;AAErD;;GAEG;AACH,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAW,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAY,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAAW,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAG,MAAe,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAexD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAQ1D,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAS3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAO9F"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Default configuration values for the MCP server
3
+ */
4
+ /**
5
+ * Default CLI path for WeChat DevTools on macOS
6
+ */
7
+ export const DEFAULT_CLI_PATH_MACOS = '/Applications/wechatwebdevtools.app/Contents/MacOS/cli';
8
+ /**
9
+ * Default automation port for WeChat DevTools
10
+ */
11
+ export const DEFAULT_AUTOMATION_PORT = 9420;
12
+ /**
13
+ * Default output directory for artifacts (relative to cwd)
14
+ */
15
+ export const DEFAULT_OUTPUT_DIR = '.mcp-artifacts';
16
+ /**
17
+ * Default session timeout (30 minutes in milliseconds)
18
+ */
19
+ export const DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1000;
20
+ /**
21
+ * Default global timeout for operations (30 seconds in milliseconds)
22
+ */
23
+ export const DEFAULT_TIMEOUT = 30 * 1000;
24
+ /**
25
+ * Default timeout for evaluate operations (5 seconds in milliseconds)
26
+ */
27
+ export const DEFAULT_EVALUATE_TIMEOUT = 5 * 1000;
28
+ /**
29
+ * Default timeout for launch operations (60 seconds in milliseconds)
30
+ */
31
+ export const DEFAULT_LAUNCH_TIMEOUT = 60 * 1000;
32
+ /**
33
+ * Default timeout for screenshot operations (10 seconds in milliseconds)
34
+ */
35
+ export const DEFAULT_SCREENSHOT_TIMEOUT = 10 * 1000;
36
+ /**
37
+ * Default capabilities (all tools enabled)
38
+ */
39
+ export const DEFAULT_CAPABILITIES = ['core'];
40
+ /**
41
+ * Default log level
42
+ */
43
+ export const DEFAULT_LOG_LEVEL = 'info';
44
+ /**
45
+ * Default log buffer size (number of log entries)
46
+ */
47
+ export const DEFAULT_LOG_BUFFER_SIZE = 100;
48
+ /**
49
+ * Default log flush interval (5 seconds in milliseconds)
50
+ */
51
+ export const DEFAULT_LOG_FLUSH_INTERVAL = 5000;
52
+ /**
53
+ * Default server configuration
54
+ */
55
+ export const DEFAULT_SERVER_CONFIG = {
56
+ projectPath: '', // Must be provided by user
57
+ cliPath: process.platform === 'darwin' ? DEFAULT_CLI_PATH_MACOS : '',
58
+ port: DEFAULT_AUTOMATION_PORT,
59
+ autoPort: DEFAULT_AUTOMATION_PORT, // Alias for port
60
+ capabilities: DEFAULT_CAPABILITIES,
61
+ outputDir: DEFAULT_OUTPUT_DIR,
62
+ timeout: DEFAULT_TIMEOUT,
63
+ sessionTimeout: DEFAULT_SESSION_TIMEOUT,
64
+ logLevel: DEFAULT_LOG_LEVEL,
65
+ enableFileLog: false,
66
+ logBufferSize: DEFAULT_LOG_BUFFER_SIZE,
67
+ logFlushInterval: DEFAULT_LOG_FLUSH_INTERVAL,
68
+ enableSessionReport: false, // F3: Session report generation (default: disabled)
69
+ enableFailureSnapshot: false, // F2: Automatic failure snapshot capture (default: disabled)
70
+ };
71
+ /**
72
+ * Default session configuration
73
+ */
74
+ export const DEFAULT_SESSION_CONFIG = {
75
+ projectPath: '', // Must be provided by user
76
+ cliPath: process.platform === 'darwin' ? DEFAULT_CLI_PATH_MACOS : '',
77
+ port: DEFAULT_AUTOMATION_PORT,
78
+ timeout: DEFAULT_TIMEOUT,
79
+ evaluateTimeout: DEFAULT_EVALUATE_TIMEOUT,
80
+ launchTimeout: DEFAULT_LAUNCH_TIMEOUT,
81
+ screenshotTimeout: DEFAULT_SCREENSHOT_TIMEOUT,
82
+ };
83
+ /**
84
+ * Get default CLI path for current platform
85
+ */
86
+ export function getDefaultCliPath() {
87
+ if (process.platform === 'darwin') {
88
+ return DEFAULT_CLI_PATH_MACOS;
89
+ }
90
+ // Windows and Linux paths are not standardized
91
+ // User must provide via config
92
+ return '';
93
+ }
94
+ /**
95
+ * Merge user config with defaults for server config
96
+ */
97
+ export function mergeServerConfig(userConfig) {
98
+ return {
99
+ ...DEFAULT_SERVER_CONFIG,
100
+ ...userConfig,
101
+ // Ensure cliPath has a sensible default if not provided
102
+ cliPath: userConfig.cliPath || getDefaultCliPath(),
103
+ // Ensure capabilities is always an array
104
+ capabilities: userConfig.capabilities || DEFAULT_CAPABILITIES,
105
+ };
106
+ }
107
+ /**
108
+ * Merge user config with defaults for session config
109
+ */
110
+ export function mergeSessionConfig(userConfig) {
111
+ return {
112
+ ...DEFAULT_SESSION_CONFIG,
113
+ ...userConfig,
114
+ // Ensure cliPath has a sensible default if not provided
115
+ cliPath: userConfig.cliPath || getDefaultCliPath(),
116
+ };
117
+ }
118
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Configuration loader with support for files, environment variables, and CLI args
3
+ * Priority: CLI args > Environment variables > Config file > Defaults
4
+ */
5
+ import type { ServerConfig } from '../types.js';
6
+ /**
7
+ * Find config file in current directory or parent directories
8
+ */
9
+ export declare function findConfigFile(startDir?: string): string | null;
10
+ /**
11
+ * Auto-detect miniprogram project path
12
+ * Searches for project.config.json or app.json in current dir and subdirectories
13
+ */
14
+ export declare function autoDetectProjectPath(startDir?: string): string | null;
15
+ /**
16
+ * Load config from file
17
+ */
18
+ export declare function loadConfigFile(filePath: string): Partial<ServerConfig>;
19
+ /**
20
+ * Load config from environment variables
21
+ * Supported variables:
22
+ * - MCP_PROJECT_PATH
23
+ * - MCP_CLI_PATH
24
+ * - MCP_PORT
25
+ * - MCP_CAPABILITIES (comma-separated)
26
+ * - MCP_OUTPUT_DIR
27
+ * - MCP_TIMEOUT
28
+ * - MCP_SESSION_TIMEOUT
29
+ */
30
+ export declare function loadConfigFromEnv(): Partial<ServerConfig>;
31
+ /**
32
+ * Merge configs with priority: cliConfig > envConfig > fileConfig > defaults
33
+ */
34
+ export declare function mergeConfigs(fileConfig?: Partial<ServerConfig>, envConfig?: Partial<ServerConfig>, cliConfig?: Partial<ServerConfig>): Required<ServerConfig>;
35
+ /**
36
+ * Load complete configuration from all sources
37
+ *
38
+ * @param options - Optional overrides
39
+ * @param options.configPath - Explicit config file path (skips auto-discovery)
40
+ * @param options.cliConfig - CLI arguments config
41
+ * @param options.skipEnv - Skip loading from environment variables
42
+ * @param options.skipFile - Skip loading from config file
43
+ */
44
+ export declare function loadConfig(options?: {
45
+ configPath?: string;
46
+ cliConfig?: Partial<ServerConfig>;
47
+ skipEnv?: boolean;
48
+ skipFile?: boolean;
49
+ }): Required<ServerConfig>;
50
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAc/C;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAoB9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAwBrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyCzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,GAAE,OAAO,CAAC,YAAY,CAAM,EACtC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,EACrC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GACpC,QAAQ,CAAC,YAAY,CAAC,CAYxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACd,GACL,QAAQ,CAAC,YAAY,CAAC,CAwCxB"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Configuration loader with support for files, environment variables, and CLI args
3
+ * Priority: CLI args > Environment variables > Config file > Defaults
4
+ */
5
+ import { readFileSync, existsSync } from 'fs';
6
+ import { join } from 'path';
7
+ import { mergeServerConfig } from './defaults.js';
8
+ /**
9
+ * Config file names to search for (in order of priority)
10
+ */
11
+ const CONFIG_FILE_NAMES = ['.mcp.json', 'mcp.config.json', '.mcp.config.json'];
12
+ /**
13
+ * Environment variable prefix
14
+ * @unused Reserved for future environment variable support
15
+ */
16
+ const _ENV_PREFIX = 'MCP_';
17
+ /**
18
+ * Find config file in current directory or parent directories
19
+ */
20
+ export function findConfigFile(startDir = process.cwd()) {
21
+ let currentDir = startDir;
22
+ // Search up to 5 levels
23
+ for (let i = 0; i < 5; i++) {
24
+ for (const fileName of CONFIG_FILE_NAMES) {
25
+ const filePath = join(currentDir, fileName);
26
+ if (existsSync(filePath)) {
27
+ return filePath;
28
+ }
29
+ }
30
+ const parentDir = join(currentDir, '..');
31
+ if (parentDir === currentDir) {
32
+ break; // Reached root
33
+ }
34
+ currentDir = parentDir;
35
+ }
36
+ return null;
37
+ }
38
+ /**
39
+ * Auto-detect miniprogram project path
40
+ * Searches for project.config.json or app.json in current dir and subdirectories
41
+ */
42
+ export function autoDetectProjectPath(startDir = process.cwd()) {
43
+ const indicators = ['project.config.json', 'app.json'];
44
+ // Check current directory first
45
+ for (const indicator of indicators) {
46
+ if (existsSync(join(startDir, indicator))) {
47
+ return startDir;
48
+ }
49
+ }
50
+ // Check common subdirectories
51
+ const commonDirs = ['dist', 'build', 'miniprogram', 'src'];
52
+ for (const dir of commonDirs) {
53
+ const subDir = join(startDir, dir);
54
+ if (existsSync(subDir)) {
55
+ for (const indicator of indicators) {
56
+ if (existsSync(join(subDir, indicator))) {
57
+ return subDir;
58
+ }
59
+ }
60
+ }
61
+ }
62
+ return null;
63
+ }
64
+ /**
65
+ * Load config from file
66
+ */
67
+ export function loadConfigFile(filePath) {
68
+ try {
69
+ const content = readFileSync(filePath, 'utf-8');
70
+ const config = JSON.parse(content);
71
+ // Validate that it's an object (not array or null)
72
+ if (typeof config !== 'object' || config === null || Array.isArray(config)) {
73
+ throw new Error('Config file must contain a JSON object');
74
+ }
75
+ return config;
76
+ }
77
+ catch (error) {
78
+ if (error instanceof SyntaxError) {
79
+ throw new Error(`Invalid JSON in config file ${filePath}: ${error.message}`);
80
+ }
81
+ throw error;
82
+ }
83
+ }
84
+ /**
85
+ * Load config from environment variables
86
+ * Supported variables:
87
+ * - MCP_PROJECT_PATH
88
+ * - MCP_CLI_PATH
89
+ * - MCP_PORT
90
+ * - MCP_CAPABILITIES (comma-separated)
91
+ * - MCP_OUTPUT_DIR
92
+ * - MCP_TIMEOUT
93
+ * - MCP_SESSION_TIMEOUT
94
+ */
95
+ export function loadConfigFromEnv() {
96
+ const config = {};
97
+ if (process.env.MCP_PROJECT_PATH) {
98
+ config.projectPath = process.env.MCP_PROJECT_PATH;
99
+ }
100
+ if (process.env.MCP_CLI_PATH) {
101
+ config.cliPath = process.env.MCP_CLI_PATH;
102
+ }
103
+ if (process.env.MCP_PORT) {
104
+ const port = parseInt(process.env.MCP_PORT, 10);
105
+ if (!isNaN(port)) {
106
+ config.port = port;
107
+ }
108
+ }
109
+ if (process.env.MCP_CAPABILITIES) {
110
+ config.capabilities = process.env.MCP_CAPABILITIES.split(',').map((s) => s.trim());
111
+ }
112
+ if (process.env.MCP_OUTPUT_DIR) {
113
+ config.outputDir = process.env.MCP_OUTPUT_DIR;
114
+ }
115
+ if (process.env.MCP_TIMEOUT) {
116
+ const timeout = parseInt(process.env.MCP_TIMEOUT, 10);
117
+ if (!isNaN(timeout)) {
118
+ config.timeout = timeout;
119
+ }
120
+ }
121
+ if (process.env.MCP_SESSION_TIMEOUT) {
122
+ const timeout = parseInt(process.env.MCP_SESSION_TIMEOUT, 10);
123
+ if (!isNaN(timeout)) {
124
+ config.sessionTimeout = timeout;
125
+ }
126
+ }
127
+ return config;
128
+ }
129
+ /**
130
+ * Merge configs with priority: cliConfig > envConfig > fileConfig > defaults
131
+ */
132
+ export function mergeConfigs(fileConfig = {}, envConfig = {}, cliConfig = {}) {
133
+ // Start with file config
134
+ let merged = { ...fileConfig };
135
+ // Override with env config
136
+ merged = { ...merged, ...envConfig };
137
+ // Override with CLI config
138
+ merged = { ...merged, ...cliConfig };
139
+ // Merge with defaults (fills in missing values)
140
+ return mergeServerConfig(merged);
141
+ }
142
+ /**
143
+ * Load complete configuration from all sources
144
+ *
145
+ * @param options - Optional overrides
146
+ * @param options.configPath - Explicit config file path (skips auto-discovery)
147
+ * @param options.cliConfig - CLI arguments config
148
+ * @param options.skipEnv - Skip loading from environment variables
149
+ * @param options.skipFile - Skip loading from config file
150
+ */
151
+ export function loadConfig(options = {}) {
152
+ const { configPath, cliConfig = {}, skipEnv = false, skipFile = false } = options;
153
+ // Load from file
154
+ let fileConfig = {};
155
+ if (!skipFile) {
156
+ const foundPath = configPath || findConfigFile();
157
+ if (foundPath) {
158
+ try {
159
+ fileConfig = loadConfigFile(foundPath);
160
+ console.error(`Loaded config from: ${foundPath}`);
161
+ }
162
+ catch (error) {
163
+ console.error(`Failed to load config file: ${error}`);
164
+ // Continue with empty file config
165
+ }
166
+ }
167
+ }
168
+ // Load from environment
169
+ let envConfig = {};
170
+ if (!skipEnv) {
171
+ envConfig = loadConfigFromEnv();
172
+ const envKeys = Object.keys(envConfig);
173
+ if (envKeys.length > 0) {
174
+ console.error(`Loaded config from environment: ${envKeys.join(', ')}`);
175
+ }
176
+ }
177
+ // Auto-detect project path if not specified
178
+ let finalCliConfig = { ...cliConfig };
179
+ if (!finalCliConfig.projectPath && !fileConfig.projectPath && !envConfig.projectPath) {
180
+ const detected = autoDetectProjectPath();
181
+ if (detected) {
182
+ finalCliConfig.projectPath = detected;
183
+ console.error(`Auto-detected project path: ${detected}`);
184
+ }
185
+ }
186
+ // Merge all configs
187
+ return mergeConfigs(fileConfig, envConfig, finalCliConfig);
188
+ }
189
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * ElementRef resolver for locating elements in miniProgram pages
3
+ * Supports multiple location strategies: refId, selector, xpath, index
4
+ *
5
+ * Cache Invalidation:
6
+ * - Element cache is automatically cleared when page navigation is detected
7
+ * - Cached elements are validated against current page before use
8
+ * - Stale elements (from different pages) are removed automatically
9
+ */
10
+ import type { SessionState, ElementRefInput, ResolvedElement } from '../types.js';
11
+ import type { Page } from '../types/miniprogram-automator.js';
12
+ /**
13
+ * Generate a unique reference ID for caching elements
14
+ */
15
+ export declare function generateRefId(): string;
16
+ /**
17
+ * Check if page has changed and clear stale element cache
18
+ * Called before each element resolution to ensure cache validity
19
+ *
20
+ * @param state - Session state with element cache
21
+ * @param currentPagePath - Current page path
22
+ */
23
+ export declare function invalidateStaleCacheEntries(state: SessionState, currentPagePath: string): void;
24
+ /**
25
+ * Resolve page object from sessionState
26
+ * @param state - Session state containing miniProgram instance
27
+ * @param pagePath - Optional page path. If not provided, uses currentPage
28
+ * @returns Page object
29
+ * @throws Error if miniProgram not connected or page not found
30
+ */
31
+ export declare function resolvePage(state: SessionState, pagePath?: string): Promise<Page>;
32
+ /**
33
+ * Resolve element using various location strategies
34
+ * @param state - Session state containing element cache
35
+ * @param ref - Element reference input with location strategy
36
+ * @returns Resolved element with page, element object, and optional refId
37
+ * @throws Error if element not found or invalid reference
38
+ */
39
+ export declare function resolveElement(state: SessionState, ref: ElementRefInput): Promise<ResolvedElement>;
40
+ /**
41
+ * Validate ElementRefInput and provide helpful error messages
42
+ */
43
+ export declare function validateElementRef(ref: ElementRefInput): void;
44
+ //# sourceMappingURL=element-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-ref.d.ts","sourceRoot":"","sources":["../../src/core/element-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,mCAAmC,CAAA;AAEtE;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAgB9F;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,eAAe,CAAC,CAoI1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAwB7D"}