@creatoria/miniapp-mcp 0.2.0 → 0.2.3

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 (253) hide show
  1. package/README.md +157 -73
  2. package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
  3. package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
  4. package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
  5. package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
  6. package/dist/capabilities/assert/handlers/index.d.ts +7 -0
  7. package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
  8. package/dist/capabilities/assert/handlers/index.js +7 -0
  9. package/dist/capabilities/assert/handlers/index.js.map +1 -0
  10. package/dist/capabilities/assert/index.d.ts +12 -2
  11. package/dist/capabilities/assert/index.d.ts.map +1 -1
  12. package/dist/capabilities/assert/index.js +87 -2
  13. package/dist/capabilities/assert/index.js.map +1 -1
  14. package/dist/capabilities/assert/schemas/index.d.ts +101 -0
  15. package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
  16. package/dist/capabilities/assert/schemas/index.js +62 -0
  17. package/dist/capabilities/assert/schemas/index.js.map +1 -0
  18. package/dist/capabilities/automator/handlers/close.d.ts +18 -0
  19. package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
  20. package/dist/capabilities/automator/handlers/close.js +45 -0
  21. package/dist/capabilities/automator/handlers/close.js.map +1 -0
  22. package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
  23. package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
  24. package/dist/capabilities/automator/handlers/connect.js +87 -0
  25. package/dist/capabilities/automator/handlers/connect.js.map +1 -0
  26. package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
  27. package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
  28. package/dist/capabilities/automator/handlers/disconnect.js +47 -0
  29. package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
  30. package/dist/capabilities/automator/handlers/index.d.ts +8 -0
  31. package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
  32. package/dist/capabilities/automator/handlers/index.js +8 -0
  33. package/dist/capabilities/automator/handlers/index.js.map +1 -0
  34. package/dist/capabilities/automator/handlers/launch.d.ts +30 -0
  35. package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
  36. package/dist/capabilities/automator/handlers/launch.js +91 -0
  37. package/dist/capabilities/automator/handlers/launch.js.map +1 -0
  38. package/dist/capabilities/automator/index.d.ts +11 -2
  39. package/dist/capabilities/automator/index.d.ts.map +1 -1
  40. package/dist/capabilities/automator/index.js +51 -2
  41. package/dist/capabilities/automator/index.js.map +1 -1
  42. package/dist/capabilities/automator/schemas/index.d.ts +5 -0
  43. package/dist/capabilities/automator/schemas/index.d.ts.map +1 -1
  44. package/dist/capabilities/automator/schemas/index.js +6 -4
  45. package/dist/capabilities/automator/schemas/index.js.map +1 -1
  46. package/dist/capabilities/automator/schemas/launch.d.ts +3 -0
  47. package/dist/capabilities/automator/schemas/launch.d.ts.map +1 -1
  48. package/dist/capabilities/automator/schemas/launch.js +4 -0
  49. package/dist/capabilities/automator/schemas/launch.js.map +1 -1
  50. package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
  51. package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
  52. package/dist/capabilities/element/handlers/element-handlers.js +383 -0
  53. package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
  54. package/dist/capabilities/element/handlers/index.d.ts +7 -0
  55. package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
  56. package/dist/capabilities/element/handlers/index.js +27 -0
  57. package/dist/capabilities/element/handlers/index.js.map +1 -0
  58. package/dist/capabilities/element/index.d.ts +17 -2
  59. package/dist/capabilities/element/index.d.ts.map +1 -1
  60. package/dist/capabilities/element/index.js +196 -2
  61. package/dist/capabilities/element/index.js.map +1 -1
  62. package/dist/capabilities/element/schemas/index.d.ts +325 -0
  63. package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
  64. package/dist/capabilities/element/schemas/index.js +168 -0
  65. package/dist/capabilities/element/schemas/index.js.map +1 -0
  66. package/dist/capabilities/index.d.ts +23 -4
  67. package/dist/capabilities/index.d.ts.map +1 -1
  68. package/dist/capabilities/index.js +29 -3
  69. package/dist/capabilities/index.js.map +1 -1
  70. package/dist/capabilities/loader.d.ts +61 -0
  71. package/dist/capabilities/loader.d.ts.map +1 -0
  72. package/dist/capabilities/loader.js +164 -0
  73. package/dist/capabilities/loader.js.map +1 -0
  74. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
  75. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
  76. package/dist/capabilities/miniprogram/handlers/call-wx.js +42 -0
  77. package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
  78. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
  79. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
  80. package/dist/capabilities/miniprogram/handlers/evaluate.js +56 -0
  81. package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
  82. package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
  83. package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
  84. package/dist/capabilities/miniprogram/handlers/index.js +12 -0
  85. package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
  86. package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
  87. package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
  88. package/dist/capabilities/miniprogram/handlers/navigate.js +61 -0
  89. package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
  90. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
  91. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
  92. package/dist/capabilities/miniprogram/handlers/page-stack.js +42 -0
  93. package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
  94. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
  95. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
  96. package/dist/capabilities/miniprogram/handlers/screenshot.js +146 -0
  97. package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
  98. package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
  99. package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
  100. package/dist/capabilities/miniprogram/handlers/system-info.js +36 -0
  101. package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
  102. package/dist/capabilities/miniprogram/index.d.ts +12 -2
  103. package/dist/capabilities/miniprogram/index.d.ts.map +1 -1
  104. package/dist/capabilities/miniprogram/index.js +66 -2
  105. package/dist/capabilities/miniprogram/index.js.map +1 -1
  106. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
  107. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
  108. package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
  109. package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
  110. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
  111. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
  112. package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
  113. package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
  114. package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
  115. package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
  116. package/dist/capabilities/miniprogram/schemas/index.js +10 -0
  117. package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
  118. package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
  119. package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
  120. package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
  121. package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
  122. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
  123. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
  124. package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
  125. package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
  126. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
  127. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
  128. package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
  129. package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
  130. package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
  131. package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
  132. package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
  133. package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
  134. package/dist/capabilities/network/handlers/index.d.ts +7 -0
  135. package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
  136. package/dist/capabilities/network/handlers/index.js +7 -0
  137. package/dist/capabilities/network/handlers/index.js.map +1 -0
  138. package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
  139. package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
  140. package/dist/capabilities/network/handlers/network-handlers.js +127 -0
  141. package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
  142. package/dist/capabilities/network/index.d.ts +12 -2
  143. package/dist/capabilities/network/index.d.ts.map +1 -1
  144. package/dist/capabilities/network/index.js +66 -2
  145. package/dist/capabilities/network/index.js.map +1 -1
  146. package/dist/capabilities/network/schemas/index.d.ts +53 -0
  147. package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
  148. package/dist/capabilities/network/schemas/index.js +33 -0
  149. package/dist/capabilities/network/schemas/index.js.map +1 -0
  150. package/dist/capabilities/page/handlers/index.d.ts +7 -0
  151. package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
  152. package/dist/capabilities/page/handlers/index.js +7 -0
  153. package/dist/capabilities/page/handlers/index.js.map +1 -0
  154. package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
  155. package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
  156. package/dist/capabilities/page/handlers/page-handlers.js +258 -0
  157. package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
  158. package/dist/capabilities/page/index.d.ts +12 -2
  159. package/dist/capabilities/page/index.d.ts.map +1 -1
  160. package/dist/capabilities/page/index.js +80 -2
  161. package/dist/capabilities/page/index.js.map +1 -1
  162. package/dist/capabilities/page/schemas/index.d.ts +91 -0
  163. package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
  164. package/dist/capabilities/page/schemas/index.js +55 -0
  165. package/dist/capabilities/page/schemas/index.js.map +1 -0
  166. package/dist/capabilities/record/handlers/index.d.ts +7 -0
  167. package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
  168. package/dist/capabilities/record/handlers/index.js +7 -0
  169. package/dist/capabilities/record/handlers/index.js.map +1 -0
  170. package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
  171. package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
  172. package/dist/capabilities/record/handlers/record-handlers.js +255 -0
  173. package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
  174. package/dist/capabilities/record/index.d.ts +12 -2
  175. package/dist/capabilities/record/index.d.ts.map +1 -1
  176. package/dist/capabilities/record/index.js +66 -2
  177. package/dist/capabilities/record/index.js.map +1 -1
  178. package/dist/capabilities/record/schemas/index.d.ts +47 -0
  179. package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
  180. package/dist/capabilities/record/schemas/index.js +33 -0
  181. package/dist/capabilities/record/schemas/index.js.map +1 -0
  182. package/dist/capabilities/registry.d.ts +138 -0
  183. package/dist/capabilities/registry.d.ts.map +1 -0
  184. package/dist/capabilities/registry.js +261 -0
  185. package/dist/capabilities/registry.js.map +1 -0
  186. package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
  187. package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
  188. package/dist/capabilities/snapshot/handlers/index.js +7 -0
  189. package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
  190. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
  191. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
  192. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
  193. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
  194. package/dist/capabilities/snapshot/index.d.ts +12 -2
  195. package/dist/capabilities/snapshot/index.d.ts.map +1 -1
  196. package/dist/capabilities/snapshot/index.js +45 -2
  197. package/dist/capabilities/snapshot/index.js.map +1 -1
  198. package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
  199. package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
  200. package/dist/capabilities/snapshot/schemas/index.js +28 -0
  201. package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
  202. package/dist/config/defaults.d.ts +4 -0
  203. package/dist/config/defaults.d.ts.map +1 -1
  204. package/dist/config/defaults.js +8 -0
  205. package/dist/config/defaults.js.map +1 -1
  206. package/dist/config/loader.d.ts +3 -0
  207. package/dist/config/loader.d.ts.map +1 -1
  208. package/dist/config/loader.js +21 -0
  209. package/dist/config/loader.js.map +1 -1
  210. package/dist/runtime/concurrency/mutex.d.ts +29 -0
  211. package/dist/runtime/concurrency/mutex.d.ts.map +1 -0
  212. package/dist/runtime/concurrency/mutex.js +46 -0
  213. package/dist/runtime/concurrency/mutex.js.map +1 -0
  214. package/dist/runtime/index.d.ts +2 -1
  215. package/dist/runtime/index.d.ts.map +1 -1
  216. package/dist/runtime/index.js +2 -1
  217. package/dist/runtime/index.js.map +1 -1
  218. package/dist/runtime/logging/tool-logger.js +2 -2
  219. package/dist/runtime/logging/tool-logger.js.map +1 -1
  220. package/dist/runtime/network/probe-port.d.ts +15 -0
  221. package/dist/runtime/network/probe-port.d.ts.map +1 -0
  222. package/dist/runtime/network/probe-port.js +33 -0
  223. package/dist/runtime/network/probe-port.js.map +1 -0
  224. package/dist/runtime/retry/index.d.ts +5 -0
  225. package/dist/runtime/retry/index.d.ts.map +1 -0
  226. package/dist/runtime/retry/index.js +5 -0
  227. package/dist/runtime/retry/index.js.map +1 -0
  228. package/dist/runtime/retry/retry.d.ts +61 -0
  229. package/dist/runtime/retry/retry.d.ts.map +1 -0
  230. package/dist/runtime/retry/retry.js +90 -0
  231. package/dist/runtime/retry/retry.js.map +1 -0
  232. package/dist/runtime/timeout/timeout.d.ts +10 -0
  233. package/dist/runtime/timeout/timeout.d.ts.map +1 -1
  234. package/dist/runtime/timeout/timeout.js +17 -5
  235. package/dist/runtime/timeout/timeout.js.map +1 -1
  236. package/dist/server.d.ts.map +1 -1
  237. package/dist/server.js +7 -6
  238. package/dist/server.js.map +1 -1
  239. package/dist/tools/index.d.ts.map +1 -1
  240. package/dist/tools/index.js +7 -3
  241. package/dist/tools/index.js.map +1 -1
  242. package/dist/tools/miniprogram.d.ts +11 -1
  243. package/dist/tools/miniprogram.d.ts.map +1 -1
  244. package/dist/tools/miniprogram.js +102 -20
  245. package/dist/tools/miniprogram.js.map +1 -1
  246. package/dist/types.d.ts +5 -0
  247. package/dist/types.d.ts.map +1 -1
  248. package/docs/current/01-architecture-migration.md +337 -0
  249. package/docs/current/02-screenshot-timeout-fix.md +589 -0
  250. package/docs/current/03-connect-screenshot-timeout-diagnosis.md +168 -0
  251. package/docs/current/04-toolchain-version-baseline.md +123 -0
  252. package/docs/current/README.md +229 -0
  253. package/package.json +2 -2
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Snapshot handlers - State capture and diagnostic utilities
3
+ */
4
+ import { getPageStack, getSystemInfo, screenshot } from '../../miniprogram/handlers/index.js';
5
+ import { getData } from '../../page/handlers/index.js';
6
+ import { getText, getSize, getOffset } from '../../element/handlers/index.js';
7
+ export async function snapshotPage(session, args) {
8
+ const { pagePath, filename, includeScreenshot = true, fullPage = false } = args;
9
+ const logger = session.logger;
10
+ try {
11
+ if (!session.miniProgram) {
12
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
13
+ }
14
+ if (!session.outputManager) {
15
+ throw new Error('OutputManager not available');
16
+ }
17
+ logger?.info('Capturing page snapshot', { pagePath, includeScreenshot });
18
+ if (filename) {
19
+ const { validateFilename } = await import('../../../runtime/validation/validation.js');
20
+ try {
21
+ validateFilename(filename, ['json']);
22
+ }
23
+ catch (error) {
24
+ const errorMessage = error instanceof Error ? error.message : String(error);
25
+ throw new Error(`Invalid filename: ${errorMessage}`);
26
+ }
27
+ }
28
+ const pageStackResult = await getPageStack(session);
29
+ const currentPageInfo = pageStackResult.pages[pageStackResult.pages.length - 1];
30
+ if (!currentPageInfo) {
31
+ throw new Error('No active page found');
32
+ }
33
+ const pageDataResult = await getData(session, { pagePath });
34
+ const timestamp = new Date().toISOString();
35
+ const snapshotData = {
36
+ timestamp,
37
+ pagePath: currentPageInfo.path,
38
+ pageData: pageDataResult.data,
39
+ pageQuery: currentPageInfo.query,
40
+ };
41
+ const outputManager = session.outputManager;
42
+ await outputManager.ensureOutputDir();
43
+ const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
44
+ const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
45
+ logger?.info('Page snapshot data saved', { path: snapshotPath });
46
+ let screenshotPath;
47
+ if (includeScreenshot) {
48
+ const screenshotFilename = snapshotFilename.replace('.json', '.png');
49
+ const screenshotResult = await screenshot(session, { filename: screenshotFilename, fullPage });
50
+ screenshotPath = screenshotResult.path;
51
+ logger?.info('Page screenshot saved', { path: screenshotPath });
52
+ }
53
+ logger?.info('Page snapshot completed', { snapshotPath, screenshotPath });
54
+ return {
55
+ success: true,
56
+ message: 'Page snapshot captured successfully',
57
+ snapshotPath,
58
+ screenshotPath,
59
+ data: snapshotData,
60
+ };
61
+ }
62
+ catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : String(error);
64
+ logger?.error('Page snapshot failed', { error: errorMessage, pagePath });
65
+ throw new Error(`Page snapshot failed: ${errorMessage}`);
66
+ }
67
+ }
68
+ export async function snapshotFull(session, args) {
69
+ const { filename, includeScreenshot = true, fullPage = false } = args;
70
+ const logger = session.logger;
71
+ try {
72
+ if (!session.miniProgram) {
73
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
74
+ }
75
+ if (!session.outputManager) {
76
+ throw new Error('OutputManager not available');
77
+ }
78
+ logger?.info('Capturing full application snapshot', { includeScreenshot });
79
+ if (filename) {
80
+ const { validateFilename } = await import('../../../runtime/validation/validation.js');
81
+ try {
82
+ validateFilename(filename, ['json']);
83
+ }
84
+ catch (error) {
85
+ const errorMessage = error instanceof Error ? error.message : String(error);
86
+ throw new Error(`Invalid filename: ${errorMessage}`);
87
+ }
88
+ }
89
+ const systemInfoResult = await getSystemInfo(session);
90
+ const pageStackResult = await getPageStack(session);
91
+ const currentPageInfo = pageStackResult.pages[pageStackResult.pages.length - 1];
92
+ if (!currentPageInfo) {
93
+ throw new Error('No active page found');
94
+ }
95
+ const pageDataResult = await getData(session, {});
96
+ const timestamp = new Date().toISOString();
97
+ const snapshotData = {
98
+ timestamp,
99
+ systemInfo: systemInfoResult.systemInfo,
100
+ pageStack: pageStackResult.pages,
101
+ currentPage: {
102
+ path: currentPageInfo.path,
103
+ query: currentPageInfo.query,
104
+ data: pageDataResult.data,
105
+ },
106
+ };
107
+ const outputManager = session.outputManager;
108
+ await outputManager.ensureOutputDir();
109
+ const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
110
+ const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
111
+ logger?.info('Application snapshot data saved', { path: snapshotPath });
112
+ let screenshotPath;
113
+ if (includeScreenshot) {
114
+ const screenshotFilename = snapshotFilename.replace('.json', '.png');
115
+ const screenshotResult = await screenshot(session, { filename: screenshotFilename, fullPage });
116
+ screenshotPath = screenshotResult.path;
117
+ logger?.info('Application screenshot saved', { path: screenshotPath });
118
+ }
119
+ logger?.info('Full application snapshot completed', { snapshotPath, screenshotPath });
120
+ return {
121
+ success: true,
122
+ message: 'Full application snapshot captured successfully',
123
+ snapshotPath,
124
+ screenshotPath,
125
+ data: snapshotData,
126
+ };
127
+ }
128
+ catch (error) {
129
+ const errorMessage = error instanceof Error ? error.message : String(error);
130
+ logger?.error('Full application snapshot failed', { error: errorMessage });
131
+ throw new Error(`Full application snapshot failed: ${errorMessage}`);
132
+ }
133
+ }
134
+ export async function snapshotElement(session, args) {
135
+ const { refId, filename, includeScreenshot = false } = args;
136
+ const logger = session.logger;
137
+ try {
138
+ if (!session.miniProgram) {
139
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
140
+ }
141
+ if (!session.outputManager) {
142
+ throw new Error('OutputManager not available');
143
+ }
144
+ logger?.info('Capturing element snapshot', { refId, includeScreenshot });
145
+ if (filename) {
146
+ const { validateFilename } = await import('../../../runtime/validation/validation.js');
147
+ try {
148
+ validateFilename(filename, ['json']);
149
+ }
150
+ catch (error) {
151
+ const errorMessage = error instanceof Error ? error.message : String(error);
152
+ throw new Error(`Invalid filename: ${errorMessage}`);
153
+ }
154
+ }
155
+ let text;
156
+ try {
157
+ const textResult = await getText(session, { refId });
158
+ text = textResult.text;
159
+ }
160
+ catch {
161
+ text = undefined;
162
+ }
163
+ const sizeResult = await getSize(session, { refId });
164
+ const offsetResult = await getOffset(session, { refId });
165
+ const timestamp = new Date().toISOString();
166
+ const snapshotData = {
167
+ timestamp,
168
+ refId,
169
+ text,
170
+ attributes: {},
171
+ size: sizeResult.size,
172
+ offset: offsetResult.offset,
173
+ };
174
+ const outputManager = session.outputManager;
175
+ await outputManager.ensureOutputDir();
176
+ const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
177
+ const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
178
+ logger?.info('Element snapshot data saved', { path: snapshotPath });
179
+ let screenshotPath;
180
+ if (includeScreenshot) {
181
+ const screenshotFilename = snapshotFilename.replace('.json', '.png');
182
+ const screenshotResult = await screenshot(session, { filename: screenshotFilename });
183
+ screenshotPath = screenshotResult.path;
184
+ logger?.info('Element screenshot saved', { path: screenshotPath });
185
+ }
186
+ logger?.info('Element snapshot completed', { snapshotPath, screenshotPath });
187
+ return {
188
+ success: true,
189
+ message: 'Element snapshot captured successfully',
190
+ snapshotPath,
191
+ screenshotPath,
192
+ data: snapshotData,
193
+ };
194
+ }
195
+ catch (error) {
196
+ const errorMessage = error instanceof Error ? error.message : String(error);
197
+ logger?.error('Element snapshot failed', { error: errorMessage, refId });
198
+ throw new Error(`Element snapshot failed: ${errorMessage}`);
199
+ }
200
+ }
201
+ //# sourceMappingURL=snapshot-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-handlers.js","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/snapshot-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
1
  /**
2
- * Snapshot capability bridge to legacy tool implementations.
2
+ * Snapshot Capability Module
3
+ *
4
+ * Provides tools for state capture and diagnostics including page snapshots,
5
+ * full application snapshots, and element snapshots.
3
6
  */
4
- export * from '../../tools/snapshot.js';
7
+ import type { CapabilityModule } from '../registry.js';
8
+ export * from './schemas/index.js';
9
+ export * from './handlers/index.js';
10
+ /**
11
+ * Snapshot capability module
12
+ */
13
+ export declare const capability: CapabilityModule;
14
+ export default capability;
5
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/snapshot/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/snapshot/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AAatE,cAAc,oBAAoB,CAAA;AAGlC,cAAc,qBAAqB,CAAA;AA6BnC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1,5 +1,48 @@
1
1
  /**
2
- * Snapshot capability bridge to legacy tool implementations.
2
+ * Snapshot Capability Module
3
+ *
4
+ * Provides tools for state capture and diagnostics including page snapshots,
5
+ * full application snapshots, and element snapshots.
3
6
  */
4
- export * from '../../tools/snapshot.js';
7
+ import { snapshotPageSchema, snapshotFullSchema, snapshotElementSchema, } from './schemas/index.js';
8
+ import { snapshotPage, snapshotFull, snapshotElement, } from './handlers/index.js';
9
+ // Re-export schemas for external use
10
+ export * from './schemas/index.js';
11
+ // Re-export handlers for external use
12
+ export * from './handlers/index.js';
13
+ /**
14
+ * Snapshot tool definitions - 3 tools
15
+ */
16
+ const tools = [
17
+ {
18
+ name: 'snapshot_page',
19
+ description: 'Capture complete page snapshot (data + screenshot)',
20
+ capability: 'snapshot',
21
+ inputSchema: snapshotPageSchema,
22
+ handler: snapshotPage,
23
+ },
24
+ {
25
+ name: 'snapshot_full',
26
+ description: 'Capture complete application snapshot (system info + page stack + current page)',
27
+ capability: 'snapshot',
28
+ inputSchema: snapshotFullSchema,
29
+ handler: snapshotFull,
30
+ },
31
+ {
32
+ name: 'snapshot_element',
33
+ description: 'Capture element snapshot (properties + optional screenshot)',
34
+ capability: 'snapshot',
35
+ inputSchema: snapshotElementSchema,
36
+ handler: snapshotElement,
37
+ },
38
+ ];
39
+ /**
40
+ * Snapshot capability module
41
+ */
42
+ export const capability = {
43
+ name: 'snapshot',
44
+ description: 'State capture and diagnostic utilities (3 tools)',
45
+ tools,
46
+ };
47
+ export default capability;
5
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/snapshot/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/snapshot/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAE5B,qCAAqC;AACrC,cAAc,oBAAoB,CAAA;AAElC,sCAAsC;AACtC,cAAc,qBAAqB,CAAA;AAEnC;;GAEG;AACH,MAAM,KAAK,GAAqB;IAC9B;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,oDAAoD;QACjE,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,YAAY;KACtB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iFAAiF;QAC9F,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,YAAY;KACtB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6DAA6D;QAC1E,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,eAAe;KACzB;CACF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,kDAAkD;IAC/D,KAAK;CACN,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Snapshot schemas exports - 3 snapshot tool schemas
3
+ */
4
+ import { z } from 'zod';
5
+ export declare const snapshotPageSchema: z.ZodObject<{
6
+ pagePath: z.ZodOptional<z.ZodString>;
7
+ filename: z.ZodOptional<z.ZodString>;
8
+ includeScreenshot: z.ZodOptional<z.ZodBoolean>;
9
+ fullPage: z.ZodOptional<z.ZodBoolean>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ filename?: string | undefined;
12
+ fullPage?: boolean | undefined;
13
+ pagePath?: string | undefined;
14
+ includeScreenshot?: boolean | undefined;
15
+ }, {
16
+ filename?: string | undefined;
17
+ fullPage?: boolean | undefined;
18
+ pagePath?: string | undefined;
19
+ includeScreenshot?: boolean | undefined;
20
+ }>;
21
+ export declare const snapshotFullSchema: z.ZodObject<{
22
+ filename: z.ZodOptional<z.ZodString>;
23
+ includeScreenshot: z.ZodOptional<z.ZodBoolean>;
24
+ fullPage: z.ZodOptional<z.ZodBoolean>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ filename?: string | undefined;
27
+ fullPage?: boolean | undefined;
28
+ includeScreenshot?: boolean | undefined;
29
+ }, {
30
+ filename?: string | undefined;
31
+ fullPage?: boolean | undefined;
32
+ includeScreenshot?: boolean | undefined;
33
+ }>;
34
+ export declare const snapshotElementSchema: z.ZodObject<{
35
+ refId: z.ZodString;
36
+ filename: z.ZodOptional<z.ZodString>;
37
+ includeScreenshot: z.ZodOptional<z.ZodBoolean>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ refId: string;
40
+ filename?: string | undefined;
41
+ includeScreenshot?: boolean | undefined;
42
+ }, {
43
+ refId: string;
44
+ filename?: string | undefined;
45
+ includeScreenshot?: boolean | undefined;
46
+ }>;
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAOkC,CAAA;AAEjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAM+D,CAAA;AAE9F,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAMwC,CAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Snapshot schemas exports - 3 snapshot tool schemas
3
+ */
4
+ import { z } from 'zod';
5
+ const refIdSchema = z.string().min(1).describe('Element reference ID from page_query');
6
+ export const snapshotPageSchema = z
7
+ .object({
8
+ pagePath: z.string().optional().describe('Page path (optional, defaults to current page)'),
9
+ filename: z.string().optional().describe('Output filename (optional, auto-generated if not provided)'),
10
+ includeScreenshot: z.boolean().optional().describe('Whether to include screenshot (default: true)'),
11
+ fullPage: z.boolean().optional().describe('Whether to capture full page or viewport only (default: false)'),
12
+ })
13
+ .describe('Capture complete page snapshot (data + screenshot)');
14
+ export const snapshotFullSchema = z
15
+ .object({
16
+ filename: z.string().optional().describe('Output filename (optional, auto-generated if not provided)'),
17
+ includeScreenshot: z.boolean().optional().describe('Whether to include screenshot (default: true)'),
18
+ fullPage: z.boolean().optional().describe('Whether to capture full page or viewport only (default: false)'),
19
+ })
20
+ .describe('Capture complete application snapshot (system info + page stack + current page)');
21
+ export const snapshotElementSchema = z
22
+ .object({
23
+ refId: refIdSchema,
24
+ filename: z.string().optional().describe('Output filename (optional, auto-generated if not provided)'),
25
+ includeScreenshot: z.boolean().optional().describe('Whether to include screenshot (default: false)'),
26
+ })
27
+ .describe('Capture element snapshot (properties + optional screenshot)');
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC1F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACtG,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACnG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CAC5G,CAAC;KACD,QAAQ,CAAC,oDAAoD,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACtG,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACnG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CAC5G,CAAC;KACD,QAAQ,CAAC,iFAAiF,CAAC,CAAA;AAE9F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACtG,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CACrG,CAAC;KACD,QAAQ,CAAC,6DAA6D,CAAC,CAAA"}
@@ -30,6 +30,10 @@ export declare const DEFAULT_EVALUATE_TIMEOUT: number;
30
30
  * Default timeout for launch operations (60 seconds in milliseconds)
31
31
  */
32
32
  export declare const DEFAULT_LAUNCH_TIMEOUT: number;
33
+ /**
34
+ * Default timeout for connect operations (30 seconds in milliseconds)
35
+ */
36
+ export declare const DEFAULT_CONNECT_TIMEOUT: number;
33
37
  /**
34
38
  * Default timeout for screenshot operations (10 seconds in milliseconds)
35
39
  */
@@ -1 +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"}
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,uBAAuB,QAAY,CAAA;AAEhD;;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,CAkBxD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAS1D,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"}
@@ -29,6 +29,10 @@ export const DEFAULT_EVALUATE_TIMEOUT = 5 * 1000;
29
29
  * Default timeout for launch operations (60 seconds in milliseconds)
30
30
  */
31
31
  export const DEFAULT_LAUNCH_TIMEOUT = 60 * 1000;
32
+ /**
33
+ * Default timeout for connect operations (30 seconds in milliseconds)
34
+ */
35
+ export const DEFAULT_CONNECT_TIMEOUT = 30 * 1000;
32
36
  /**
33
37
  * Default timeout for screenshot operations (10 seconds in milliseconds)
34
38
  */
@@ -67,6 +71,9 @@ export const DEFAULT_SERVER_CONFIG = {
67
71
  logFlushInterval: DEFAULT_LOG_FLUSH_INTERVAL,
68
72
  enableSessionReport: false, // F3: Session report generation (default: disabled)
69
73
  enableFailureSnapshot: false, // F2: Automatic failure snapshot capture (default: disabled)
74
+ launchTimeout: DEFAULT_LAUNCH_TIMEOUT,
75
+ connectTimeout: DEFAULT_CONNECT_TIMEOUT,
76
+ screenshotTimeout: DEFAULT_SCREENSHOT_TIMEOUT,
70
77
  };
71
78
  /**
72
79
  * Default session configuration
@@ -78,6 +85,7 @@ export const DEFAULT_SESSION_CONFIG = {
78
85
  timeout: DEFAULT_TIMEOUT,
79
86
  evaluateTimeout: DEFAULT_EVALUATE_TIMEOUT,
80
87
  launchTimeout: DEFAULT_LAUNCH_TIMEOUT,
88
+ connectTimeout: DEFAULT_CONNECT_TIMEOUT,
81
89
  screenshotTimeout: DEFAULT_SCREENSHOT_TIMEOUT,
82
90
  };
83
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wDAAwD,CAAA;AAE9F;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAe,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,WAAW,EAAE,EAAE,EAAE,2BAA2B;IAC5C,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;IACpE,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB;IACpD,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,eAAe;IACxB,cAAc,EAAE,uBAAuB;IACvC,QAAQ,EAAE,iBAAiB;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,uBAAuB;IACtC,gBAAgB,EAAE,0BAA0B;IAC5C,mBAAmB,EAAE,KAAK,EAAE,oDAAoD;IAChF,qBAAqB,EAAE,KAAK,EAAE,6DAA6D;CAC5F,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,WAAW,EAAE,EAAE,EAAE,2BAA2B;IAC5C,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;IACpE,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,wBAAwB;IACzC,aAAa,EAAE,sBAAsB;IACrC,iBAAiB,EAAE,0BAA0B;CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IACD,+CAA+C;IAC/C,+BAA+B;IAC/B,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAiC;IACjE,OAAO;QACL,GAAG,qBAAqB;QACxB,GAAG,UAAU;QACb,wDAAwD;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE;QAClD,yCAAyC;QACzC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,oBAAoB;KAC9D,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkC;IACnE,OAAO;QACL,GAAG,sBAAsB;QACzB,GAAG,UAAU;QACb,wDAAwD;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE;KACnD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wDAAwD,CAAA;AAE9F;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAe,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,WAAW,EAAE,EAAE,EAAE,2BAA2B;IAC5C,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;IACpE,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB;IACpD,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,eAAe;IACxB,cAAc,EAAE,uBAAuB;IACvC,QAAQ,EAAE,iBAAiB;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,uBAAuB;IACtC,gBAAgB,EAAE,0BAA0B;IAC5C,mBAAmB,EAAE,KAAK,EAAE,oDAAoD;IAChF,qBAAqB,EAAE,KAAK,EAAE,6DAA6D;IAC3F,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,uBAAuB;IACvC,iBAAiB,EAAE,0BAA0B;CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,WAAW,EAAE,EAAE,EAAE,2BAA2B;IAC5C,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;IACpE,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,wBAAwB;IACzC,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,uBAAuB;IACvC,iBAAiB,EAAE,0BAA0B;CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IACD,+CAA+C;IAC/C,+BAA+B;IAC/B,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAiC;IACjE,OAAO;QACL,GAAG,qBAAqB;QACxB,GAAG,UAAU;QACb,wDAAwD;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE;QAClD,yCAAyC;QACzC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,oBAAoB;KAC9D,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkC;IACnE,OAAO;QACL,GAAG,sBAAsB;QACzB,GAAG,UAAU;QACb,wDAAwD;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE;KACnD,CAAA;AACH,CAAC"}
@@ -26,6 +26,9 @@ export declare function loadConfigFile(filePath: string): Partial<ServerConfig>;
26
26
  * - MCP_OUTPUT_DIR
27
27
  * - MCP_TIMEOUT
28
28
  * - MCP_SESSION_TIMEOUT
29
+ * - MCP_LAUNCH_TIMEOUT
30
+ * - MCP_CONNECT_TIMEOUT
31
+ * - MCP_SCREENSHOT_TIMEOUT
29
32
  */
30
33
  export declare function loadConfigFromEnv(): Partial<ServerConfig>;
31
34
  /**
@@ -1 +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"}
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;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CA8DzD;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"}
@@ -91,6 +91,9 @@ export function loadConfigFile(filePath) {
91
91
  * - MCP_OUTPUT_DIR
92
92
  * - MCP_TIMEOUT
93
93
  * - MCP_SESSION_TIMEOUT
94
+ * - MCP_LAUNCH_TIMEOUT
95
+ * - MCP_CONNECT_TIMEOUT
96
+ * - MCP_SCREENSHOT_TIMEOUT
94
97
  */
95
98
  export function loadConfigFromEnv() {
96
99
  const config = {};
@@ -124,6 +127,24 @@ export function loadConfigFromEnv() {
124
127
  config.sessionTimeout = timeout;
125
128
  }
126
129
  }
130
+ if (process.env.MCP_LAUNCH_TIMEOUT) {
131
+ const timeout = parseInt(process.env.MCP_LAUNCH_TIMEOUT, 10);
132
+ if (!isNaN(timeout)) {
133
+ config.launchTimeout = timeout;
134
+ }
135
+ }
136
+ if (process.env.MCP_CONNECT_TIMEOUT) {
137
+ const timeout = parseInt(process.env.MCP_CONNECT_TIMEOUT, 10);
138
+ if (!isNaN(timeout)) {
139
+ config.connectTimeout = timeout;
140
+ }
141
+ }
142
+ if (process.env.MCP_SCREENSHOT_TIMEOUT) {
143
+ const timeout = parseInt(process.env.MCP_SCREENSHOT_TIMEOUT, 10);
144
+ if (!isNaN(timeout)) {
145
+ config.screenshotTimeout = timeout;
146
+ }
147
+ }
127
148
  return config;
128
149
  }
129
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Per-key serial queue (mutex).
3
+ *
4
+ * The WeChat automation SDK uses a single WebSocket with a serial request/response
5
+ * protocol. Operations like screenshot cannot run concurrently — firing several at
6
+ * once makes all but one hang until they time out. This mutex serializes calls that
7
+ * share a key (e.g. a session id) so concurrent callers are queued instead of racing.
8
+ */
9
+ /**
10
+ * Run `task` exclusively for the given `key`. Calls with the same key execute one at a
11
+ * time, in arrival order. Calls with different keys do not block each other.
12
+ *
13
+ * @param key - Serialization key (e.g. session id)
14
+ * @param task - The async operation to run under the lock
15
+ */
16
+ export declare function runExclusive<T>(key: string, task: () => Promise<T>): Promise<T>;
17
+ /**
18
+ * Serialize an operation against all other operations on the same session.
19
+ *
20
+ * The SDK multiplexes every request over ONE WebSocket. Running independent
21
+ * operations (screenshot, evaluate, navigate, …) concurrently makes them race for
22
+ * that single connection and all but one hang until timeout. Sharing one lock per
23
+ * session turns concurrent calls into an orderly queue.
24
+ *
25
+ * @param sessionId - The session whose SDK operations must run one at a time
26
+ * @param task - The async SDK operation to run under the session lock
27
+ */
28
+ export declare function withSessionLock<T>(sessionId: string, task: () => Promise<T>): Promise<T>;
29
+ //# sourceMappingURL=mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../../src/runtime/concurrency/mutex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuBrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAExF"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Per-key serial queue (mutex).
3
+ *
4
+ * The WeChat automation SDK uses a single WebSocket with a serial request/response
5
+ * protocol. Operations like screenshot cannot run concurrently — firing several at
6
+ * once makes all but one hang until they time out. This mutex serializes calls that
7
+ * share a key (e.g. a session id) so concurrent callers are queued instead of racing.
8
+ */
9
+ const tails = new Map();
10
+ /**
11
+ * Run `task` exclusively for the given `key`. Calls with the same key execute one at a
12
+ * time, in arrival order. Calls with different keys do not block each other.
13
+ *
14
+ * @param key - Serialization key (e.g. session id)
15
+ * @param task - The async operation to run under the lock
16
+ */
17
+ export async function runExclusive(key, task) {
18
+ const prev = tails.get(key) ?? Promise.resolve();
19
+ // Chain after the predecessor, ignoring its outcome so one caller's error
20
+ // never rejects the next caller in the queue.
21
+ const run = prev.then(() => task(), () => task());
22
+ // Advance the tail. Settle to a non-throwing promise so the chain stays clean.
23
+ const settled = run.then(() => undefined, () => undefined);
24
+ tails.set(key, settled);
25
+ // Drop the entry once this task is the last one, to avoid unbounded growth.
26
+ settled.then(() => {
27
+ if (tails.get(key) === settled)
28
+ tails.delete(key);
29
+ });
30
+ return run;
31
+ }
32
+ /**
33
+ * Serialize an operation against all other operations on the same session.
34
+ *
35
+ * The SDK multiplexes every request over ONE WebSocket. Running independent
36
+ * operations (screenshot, evaluate, navigate, …) concurrently makes them race for
37
+ * that single connection and all but one hang until timeout. Sharing one lock per
38
+ * session turns concurrent calls into an orderly queue.
39
+ *
40
+ * @param sessionId - The session whose SDK operations must run one at a time
41
+ * @param task - The async SDK operation to run under the session lock
42
+ */
43
+ export function withSessionLock(sessionId, task) {
44
+ return runExclusive(`session:${sessionId}`, task);
45
+ }
46
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../../src/runtime/concurrency/mutex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,GAAW,EAAE,IAAsB;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;IAEhD,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,IAAI,EAAE,EACZ,GAAG,EAAE,CAAC,IAAI,EAAE,CACb,CAAA;IAED,+EAA+E;IAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAEvB,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;QAChB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAI,SAAiB,EAAE,IAAsB;IAC1E,OAAO,YAAY,CAAC,WAAW,SAAS,EAAE,EAAE,IAAI,CAAC,CAAA;AACnD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Runtime facade aggregating session, logging, output, timeout, and validation helpers.
2
+ * Runtime facade aggregating session, logging, output, timeout, validation, and retry helpers.
3
3
  */
4
4
  export * from './session/index.js';
5
5
  export * from './logging/index.js';
@@ -7,4 +7,5 @@ export * from './outputs/index.js';
7
7
  export * from './timeout/index.js';
8
8
  export * from './validation/index.js';
9
9
  export * from './element/index.js';
10
+ export * from './retry/index.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}