@creatoria/miniapp-mcp 0.1.3 → 0.2.2

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 (414) hide show
  1. package/README.md +131 -66
  2. package/dist/app/cli/index.d.ts +6 -0
  3. package/dist/app/cli/index.d.ts.map +1 -0
  4. package/dist/app/cli/index.js +6 -0
  5. package/dist/app/cli/index.js.map +1 -0
  6. package/dist/app/index.d.ts +6 -0
  7. package/dist/app/index.d.ts.map +1 -0
  8. package/dist/app/index.js +6 -0
  9. package/dist/app/index.js.map +1 -0
  10. package/dist/app/server/index.d.ts +7 -0
  11. package/dist/app/server/index.d.ts.map +1 -0
  12. package/dist/app/server/index.js +6 -0
  13. package/dist/app/server/index.js.map +1 -0
  14. package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
  15. package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
  16. package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
  17. package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
  18. package/dist/capabilities/assert/handlers/index.d.ts +7 -0
  19. package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
  20. package/dist/capabilities/assert/handlers/index.js +7 -0
  21. package/dist/capabilities/assert/handlers/index.js.map +1 -0
  22. package/dist/capabilities/assert/index.d.ts +15 -0
  23. package/dist/capabilities/assert/index.d.ts.map +1 -0
  24. package/dist/capabilities/assert/index.js +90 -0
  25. package/dist/capabilities/assert/index.js.map +1 -0
  26. package/dist/capabilities/assert/schemas/index.d.ts +101 -0
  27. package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
  28. package/dist/capabilities/assert/schemas/index.js +62 -0
  29. package/dist/capabilities/assert/schemas/index.js.map +1 -0
  30. package/dist/capabilities/automator/handlers/close.d.ts +18 -0
  31. package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
  32. package/dist/capabilities/automator/handlers/close.js +45 -0
  33. package/dist/capabilities/automator/handlers/close.js.map +1 -0
  34. package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
  35. package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
  36. package/dist/capabilities/automator/handlers/connect.js +51 -0
  37. package/dist/capabilities/automator/handlers/connect.js.map +1 -0
  38. package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
  39. package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
  40. package/dist/capabilities/automator/handlers/disconnect.js +44 -0
  41. package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
  42. package/dist/capabilities/automator/handlers/index.d.ts +8 -0
  43. package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
  44. package/dist/capabilities/automator/handlers/index.js +8 -0
  45. package/dist/capabilities/automator/handlers/index.js.map +1 -0
  46. package/dist/capabilities/automator/handlers/launch.d.ts +25 -0
  47. package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
  48. package/dist/capabilities/automator/handlers/launch.js +61 -0
  49. package/dist/capabilities/automator/handlers/launch.js.map +1 -0
  50. package/dist/capabilities/automator/index.d.ts +15 -0
  51. package/dist/capabilities/automator/index.d.ts.map +1 -0
  52. package/dist/capabilities/automator/index.js +55 -0
  53. package/dist/capabilities/automator/index.js.map +1 -0
  54. package/dist/capabilities/automator/schemas/close.d.ts +5 -0
  55. package/dist/capabilities/automator/schemas/close.d.ts.map +1 -0
  56. package/dist/capabilities/automator/schemas/close.js +11 -0
  57. package/dist/capabilities/automator/schemas/close.js.map +1 -0
  58. package/dist/capabilities/automator/schemas/connect.d.ts +11 -0
  59. package/dist/capabilities/automator/schemas/connect.d.ts.map +1 -0
  60. package/dist/capabilities/automator/schemas/connect.js +19 -0
  61. package/dist/capabilities/automator/schemas/connect.js.map +1 -0
  62. package/dist/capabilities/automator/schemas/disconnect.d.ts +5 -0
  63. package/dist/capabilities/automator/schemas/disconnect.d.ts.map +1 -0
  64. package/dist/capabilities/automator/schemas/disconnect.js +11 -0
  65. package/dist/capabilities/automator/schemas/disconnect.js.map +1 -0
  66. package/dist/capabilities/automator/schemas/index.d.ts +9 -0
  67. package/dist/capabilities/automator/schemas/index.d.ts.map +1 -0
  68. package/dist/capabilities/automator/schemas/index.js +14 -0
  69. package/dist/capabilities/automator/schemas/index.js.map +1 -0
  70. package/dist/capabilities/automator/schemas/launch.d.ts +17 -0
  71. package/dist/capabilities/automator/schemas/launch.d.ts.map +1 -0
  72. package/dist/capabilities/automator/schemas/launch.js +26 -0
  73. package/dist/capabilities/automator/schemas/launch.js.map +1 -0
  74. package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
  75. package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
  76. package/dist/capabilities/element/handlers/element-handlers.js +383 -0
  77. package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
  78. package/dist/capabilities/element/handlers/index.d.ts +7 -0
  79. package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
  80. package/dist/capabilities/element/handlers/index.js +27 -0
  81. package/dist/capabilities/element/handlers/index.js.map +1 -0
  82. package/dist/capabilities/element/index.d.ts +20 -0
  83. package/dist/capabilities/element/index.d.ts.map +1 -0
  84. package/dist/capabilities/element/index.js +199 -0
  85. package/dist/capabilities/element/index.js.map +1 -0
  86. package/dist/capabilities/element/schemas/index.d.ts +325 -0
  87. package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
  88. package/dist/capabilities/element/schemas/index.js +168 -0
  89. package/dist/capabilities/element/schemas/index.js.map +1 -0
  90. package/dist/capabilities/index.d.ts +34 -0
  91. package/dist/capabilities/index.d.ts.map +1 -0
  92. package/dist/capabilities/index.js +40 -0
  93. package/dist/capabilities/index.js.map +1 -0
  94. package/dist/capabilities/loader.d.ts +61 -0
  95. package/dist/capabilities/loader.d.ts.map +1 -0
  96. package/dist/capabilities/loader.js +164 -0
  97. package/dist/capabilities/loader.js.map +1 -0
  98. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
  99. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
  100. package/dist/capabilities/miniprogram/handlers/call-wx.js +37 -0
  101. package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
  102. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
  103. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
  104. package/dist/capabilities/miniprogram/handlers/evaluate.js +51 -0
  105. package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
  106. package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
  107. package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
  108. package/dist/capabilities/miniprogram/handlers/index.js +12 -0
  109. package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
  110. package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
  111. package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
  112. package/dist/capabilities/miniprogram/handlers/navigate.js +56 -0
  113. package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
  114. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
  115. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
  116. package/dist/capabilities/miniprogram/handlers/page-stack.js +37 -0
  117. package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
  118. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
  119. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
  120. package/dist/capabilities/miniprogram/handlers/screenshot.js +132 -0
  121. package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
  122. package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
  123. package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
  124. package/dist/capabilities/miniprogram/handlers/system-info.js +31 -0
  125. package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
  126. package/dist/capabilities/miniprogram/index.d.ts +15 -0
  127. package/dist/capabilities/miniprogram/index.d.ts.map +1 -0
  128. package/dist/capabilities/miniprogram/index.js +69 -0
  129. package/dist/capabilities/miniprogram/index.js.map +1 -0
  130. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
  131. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
  132. package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
  133. package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
  134. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
  135. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
  136. package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
  137. package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
  138. package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
  139. package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
  140. package/dist/capabilities/miniprogram/schemas/index.js +10 -0
  141. package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
  142. package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
  143. package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
  144. package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
  145. package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
  146. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
  147. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
  148. package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
  149. package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
  150. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
  151. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
  152. package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
  153. package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
  154. package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
  155. package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
  156. package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
  157. package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
  158. package/dist/capabilities/network/handlers/index.d.ts +7 -0
  159. package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
  160. package/dist/capabilities/network/handlers/index.js +7 -0
  161. package/dist/capabilities/network/handlers/index.js.map +1 -0
  162. package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
  163. package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
  164. package/dist/capabilities/network/handlers/network-handlers.js +127 -0
  165. package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
  166. package/dist/capabilities/network/index.d.ts +15 -0
  167. package/dist/capabilities/network/index.d.ts.map +1 -0
  168. package/dist/capabilities/network/index.js +69 -0
  169. package/dist/capabilities/network/index.js.map +1 -0
  170. package/dist/capabilities/network/schemas/index.d.ts +53 -0
  171. package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
  172. package/dist/capabilities/network/schemas/index.js +33 -0
  173. package/dist/capabilities/network/schemas/index.js.map +1 -0
  174. package/dist/capabilities/page/handlers/index.d.ts +7 -0
  175. package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
  176. package/dist/capabilities/page/handlers/index.js +7 -0
  177. package/dist/capabilities/page/handlers/index.js.map +1 -0
  178. package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
  179. package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
  180. package/dist/capabilities/page/handlers/page-handlers.js +258 -0
  181. package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
  182. package/dist/capabilities/page/index.d.ts +15 -0
  183. package/dist/capabilities/page/index.d.ts.map +1 -0
  184. package/dist/capabilities/page/index.js +83 -0
  185. package/dist/capabilities/page/index.js.map +1 -0
  186. package/dist/capabilities/page/schemas/index.d.ts +91 -0
  187. package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
  188. package/dist/capabilities/page/schemas/index.js +55 -0
  189. package/dist/capabilities/page/schemas/index.js.map +1 -0
  190. package/dist/capabilities/record/handlers/index.d.ts +7 -0
  191. package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
  192. package/dist/capabilities/record/handlers/index.js +7 -0
  193. package/dist/capabilities/record/handlers/index.js.map +1 -0
  194. package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
  195. package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
  196. package/dist/capabilities/record/handlers/record-handlers.js +255 -0
  197. package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
  198. package/dist/capabilities/record/index.d.ts +15 -0
  199. package/dist/capabilities/record/index.d.ts.map +1 -0
  200. package/dist/capabilities/record/index.js +69 -0
  201. package/dist/capabilities/record/index.js.map +1 -0
  202. package/dist/capabilities/record/schemas/index.d.ts +47 -0
  203. package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
  204. package/dist/capabilities/record/schemas/index.js +33 -0
  205. package/dist/capabilities/record/schemas/index.js.map +1 -0
  206. package/dist/capabilities/registry.d.ts +138 -0
  207. package/dist/capabilities/registry.d.ts.map +1 -0
  208. package/dist/capabilities/registry.js +261 -0
  209. package/dist/capabilities/registry.js.map +1 -0
  210. package/dist/capabilities/schema-registry.d.ts +4 -0
  211. package/dist/capabilities/schema-registry.d.ts.map +1 -0
  212. package/dist/capabilities/schema-registry.js +18 -0
  213. package/dist/capabilities/schema-registry.js.map +1 -0
  214. package/dist/capabilities/schema-types.d.ts +22 -0
  215. package/dist/capabilities/schema-types.d.ts.map +1 -0
  216. package/dist/capabilities/schema-types.js +2 -0
  217. package/dist/capabilities/schema-types.js.map +1 -0
  218. package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
  219. package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
  220. package/dist/capabilities/snapshot/handlers/index.js +7 -0
  221. package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
  222. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
  223. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
  224. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
  225. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
  226. package/dist/capabilities/snapshot/index.d.ts +15 -0
  227. package/dist/capabilities/snapshot/index.d.ts.map +1 -0
  228. package/dist/capabilities/snapshot/index.js +48 -0
  229. package/dist/capabilities/snapshot/index.js.map +1 -0
  230. package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
  231. package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
  232. package/dist/capabilities/snapshot/schemas/index.js +28 -0
  233. package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
  234. package/dist/config/loader.js +1 -1
  235. package/dist/config/loader.js.map +1 -1
  236. package/dist/core/element-ref.d.ts +1 -43
  237. package/dist/core/element-ref.d.ts.map +1 -1
  238. package/dist/core/element-ref.js +1 -212
  239. package/dist/core/element-ref.js.map +1 -1
  240. package/dist/core/logger.d.ts +1 -54
  241. package/dist/core/logger.d.ts.map +1 -1
  242. package/dist/core/logger.js +1 -377
  243. package/dist/core/logger.js.map +1 -1
  244. package/dist/core/output.d.ts +1 -20
  245. package/dist/core/output.d.ts.map +1 -1
  246. package/dist/core/output.js +1 -55
  247. package/dist/core/output.js.map +1 -1
  248. package/dist/core/report-generator.d.ts +1 -23
  249. package/dist/core/report-generator.d.ts.map +1 -1
  250. package/dist/core/report-generator.js +1 -211
  251. package/dist/core/report-generator.js.map +1 -1
  252. package/dist/core/session.d.ts +2 -82
  253. package/dist/core/session.d.ts.map +1 -1
  254. package/dist/core/session.js +2 -305
  255. package/dist/core/session.js.map +1 -1
  256. package/dist/core/timeout.d.ts +1 -48
  257. package/dist/core/timeout.d.ts.map +1 -1
  258. package/dist/core/timeout.js +1 -66
  259. package/dist/core/timeout.js.map +1 -1
  260. package/dist/core/tool-logger.d.ts +1 -82
  261. package/dist/core/tool-logger.d.ts.map +1 -1
  262. package/dist/core/tool-logger.js +1 -452
  263. package/dist/core/tool-logger.js.map +1 -1
  264. package/dist/core/validation.d.ts +1 -38
  265. package/dist/core/validation.d.ts.map +1 -1
  266. package/dist/core/validation.js +1 -92
  267. package/dist/core/validation.js.map +1 -1
  268. package/dist/runtime/element/element-ref.d.ts +44 -0
  269. package/dist/runtime/element/element-ref.d.ts.map +1 -0
  270. package/dist/runtime/element/element-ref.js +214 -0
  271. package/dist/runtime/element/element-ref.js.map +1 -0
  272. package/dist/runtime/element/index.d.ts +2 -0
  273. package/dist/runtime/element/index.d.ts.map +1 -0
  274. package/dist/runtime/element/index.js +2 -0
  275. package/dist/runtime/element/index.js.map +1 -0
  276. package/dist/runtime/index.d.ts +11 -0
  277. package/dist/runtime/index.d.ts.map +1 -0
  278. package/dist/runtime/index.js +11 -0
  279. package/dist/runtime/index.js.map +1 -0
  280. package/dist/runtime/logging/index.d.ts +3 -0
  281. package/dist/runtime/logging/index.d.ts.map +1 -0
  282. package/dist/runtime/logging/index.js +3 -0
  283. package/dist/runtime/logging/index.js.map +1 -0
  284. package/dist/runtime/logging/logger.d.ts +55 -0
  285. package/dist/runtime/logging/logger.d.ts.map +1 -0
  286. package/dist/runtime/logging/logger.js +379 -0
  287. package/dist/runtime/logging/logger.js.map +1 -0
  288. package/dist/runtime/logging/tool-logger.d.ts +83 -0
  289. package/dist/runtime/logging/tool-logger.d.ts.map +1 -0
  290. package/dist/runtime/logging/tool-logger.js +454 -0
  291. package/dist/runtime/logging/tool-logger.js.map +1 -0
  292. package/dist/runtime/outputs/index.d.ts +3 -0
  293. package/dist/runtime/outputs/index.d.ts.map +1 -0
  294. package/dist/runtime/outputs/index.js +3 -0
  295. package/dist/runtime/outputs/index.js.map +1 -0
  296. package/dist/runtime/outputs/output-manager.d.ts +12 -0
  297. package/dist/runtime/outputs/output-manager.d.ts.map +1 -0
  298. package/dist/runtime/outputs/output-manager.js +39 -0
  299. package/dist/runtime/outputs/output-manager.js.map +1 -0
  300. package/dist/runtime/outputs/report-generator.d.ts +5 -0
  301. package/dist/runtime/outputs/report-generator.d.ts.map +1 -0
  302. package/dist/runtime/outputs/report-generator.js +175 -0
  303. package/dist/runtime/outputs/report-generator.js.map +1 -0
  304. package/dist/runtime/retry/index.d.ts +5 -0
  305. package/dist/runtime/retry/index.d.ts.map +1 -0
  306. package/dist/runtime/retry/index.js +5 -0
  307. package/dist/runtime/retry/index.js.map +1 -0
  308. package/dist/runtime/retry/retry.d.ts +61 -0
  309. package/dist/runtime/retry/retry.d.ts.map +1 -0
  310. package/dist/runtime/retry/retry.js +90 -0
  311. package/dist/runtime/retry/retry.js.map +1 -0
  312. package/dist/runtime/session/index.d.ts +3 -0
  313. package/dist/runtime/session/index.d.ts.map +1 -0
  314. package/dist/runtime/session/index.js +3 -0
  315. package/dist/runtime/session/index.js.map +1 -0
  316. package/dist/runtime/session/store.d.ts +28 -0
  317. package/dist/runtime/session/store.d.ts.map +1 -0
  318. package/dist/runtime/session/store.js +154 -0
  319. package/dist/runtime/session/store.js.map +1 -0
  320. package/dist/runtime/session/utils/cleanup.d.ts +3 -0
  321. package/dist/runtime/session/utils/cleanup.d.ts.map +1 -0
  322. package/dist/runtime/session/utils/cleanup.js +78 -0
  323. package/dist/runtime/session/utils/cleanup.js.map +1 -0
  324. package/dist/runtime/timeout/index.d.ts +2 -0
  325. package/dist/runtime/timeout/index.d.ts.map +1 -0
  326. package/dist/runtime/timeout/index.js +2 -0
  327. package/dist/runtime/timeout/index.js.map +1 -0
  328. package/dist/runtime/timeout/timeout.d.ts +59 -0
  329. package/dist/runtime/timeout/timeout.d.ts.map +1 -0
  330. package/dist/runtime/timeout/timeout.js +77 -0
  331. package/dist/runtime/timeout/timeout.js.map +1 -0
  332. package/dist/runtime/validation/index.d.ts +2 -0
  333. package/dist/runtime/validation/index.d.ts.map +1 -0
  334. package/dist/runtime/validation/index.js +2 -0
  335. package/dist/runtime/validation/index.js.map +1 -0
  336. package/dist/runtime/validation/validation.d.ts +39 -0
  337. package/dist/runtime/validation/validation.d.ts.map +1 -0
  338. package/dist/runtime/validation/validation.js +93 -0
  339. package/dist/runtime/validation/validation.js.map +1 -0
  340. package/dist/schemas/automator/miniprogram_close.json +12 -0
  341. package/dist/schemas/automator/miniprogram_connect.json +19 -0
  342. package/dist/schemas/automator/miniprogram_disconnect.json +12 -0
  343. package/dist/schemas/automator/miniprogram_launch.json +30 -0
  344. package/dist/server.js +5 -5
  345. package/dist/server.js.map +1 -1
  346. package/dist/tools/index.d.ts.map +1 -1
  347. package/dist/tools/index.js +8 -4
  348. package/dist/tools/index.js.map +1 -1
  349. package/dist/tools/miniprogram.d.ts +11 -2
  350. package/dist/tools/miniprogram.d.ts.map +1 -1
  351. package/dist/tools/miniprogram.js +111 -41
  352. package/dist/tools/miniprogram.js.map +1 -1
  353. package/dist/tools/page.js +2 -2
  354. package/dist/tools/page.js.map +1 -1
  355. package/docs/current/01-architecture-migration.md +337 -0
  356. package/docs/current/02-screenshot-timeout-fix.md +589 -0
  357. package/docs/current/README.md +226 -0
  358. package/docs/directory-structure-and-code-style-best-practices.md +91 -0
  359. package/docs/migration/README.md +34 -0
  360. package/docs/migration/TC-ALIGN-01-notes.md +35 -0
  361. package/docs/migration/runtime-skeleton.md +50 -0
  362. package/docs/migration/tool-schema-strategy.md +75 -0
  363. package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +14 -14
  364. package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +7 -7
  365. package/package.json +4 -2
  366. package/docs/SIMPLE_USAGE.md +0 -210
  367. package/docs/architecture.E-Docs.md +0 -1359
  368. package/docs/architecture.F1.md +0 -720
  369. package/docs/architecture.F2.md +0 -871
  370. package/docs/architecture.F3.md +0 -905
  371. package/docs/architecture.md +0 -90
  372. package/docs/charter.A1.align.yaml +0 -170
  373. package/docs/charter.A2.align.yaml +0 -199
  374. package/docs/charter.A3.align.yaml +0 -242
  375. package/docs/charter.A4.align.yaml +0 -227
  376. package/docs/charter.B1.align.yaml +0 -179
  377. package/docs/charter.B2.align.yaml +0 -200
  378. package/docs/charter.B3.align.yaml +0 -200
  379. package/docs/charter.B4.align.yaml +0 -188
  380. package/docs/charter.C1.align.yaml +0 -190
  381. package/docs/charter.C2.align.yaml +0 -202
  382. package/docs/charter.C3.align.yaml +0 -211
  383. package/docs/charter.C4.align.yaml +0 -263
  384. package/docs/charter.C5.align.yaml +0 -220
  385. package/docs/charter.D1.align.yaml +0 -190
  386. package/docs/charter.D2.align.yaml +0 -234
  387. package/docs/charter.D3.align.yaml +0 -206
  388. package/docs/charter.E-Docs.align.yaml +0 -294
  389. package/docs/charter.F1.align.yaml +0 -193
  390. package/docs/charter.F2.align.yaml +0 -248
  391. package/docs/charter.F3.align.yaml +0 -287
  392. package/docs/charter.G.align.yaml +0 -174
  393. package/docs/charter.align.yaml +0 -111
  394. package/docs/maintenance.md +0 -682
  395. package/docs/playwright-mcp/350/260/203/347/240/224.md +0 -53
  396. package/docs/setup-guide.md +0 -775
  397. package/docs/tasks.A1.atomize.md +0 -296
  398. package/docs/tasks.A2.atomize.md +0 -408
  399. package/docs/tasks.A3.atomize.md +0 -564
  400. package/docs/tasks.A4.atomize.md +0 -496
  401. package/docs/tasks.B1.atomize.md +0 -352
  402. package/docs/tasks.B2.atomize.md +0 -561
  403. package/docs/tasks.B3.atomize.md +0 -508
  404. package/docs/tasks.B4.atomize.md +0 -504
  405. package/docs/tasks.C1.atomize.md +0 -540
  406. package/docs/tasks.C2.atomize.md +0 -665
  407. package/docs/tasks.C3.atomize.md +0 -745
  408. package/docs/tasks.C4.atomize.md +0 -908
  409. package/docs/tasks.C5.atomize.md +0 -755
  410. package/docs/tasks.D1.atomize.md +0 -547
  411. package/docs/tasks.D2.atomize.md +0 -619
  412. package/docs/tasks.D3.atomize.md +0 -790
  413. package/docs/tasks.E-Docs.atomize.md +0 -1204
  414. package/docs/tasks.atomize.md +0 -189
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Centralized Tool Registry for MCP Server
3
+ *
4
+ * Provides unified tool registration, lookup, and validation.
5
+ * All capabilities register their tools through this registry.
6
+ */
7
+ /**
8
+ * Centralized Tool Registry
9
+ *
10
+ * Features:
11
+ * - Unique tool name enforcement
12
+ * - Capability-based organization
13
+ * - Schema and handler management
14
+ * - MCP Tool type conversion
15
+ */
16
+ export class ToolRegistry {
17
+ tools = new Map();
18
+ capabilities = new Map();
19
+ /**
20
+ * Register a single tool definition
21
+ */
22
+ register(definition) {
23
+ if (this.tools.has(definition.name)) {
24
+ throw new Error(`Duplicate tool registration: ${definition.name}`);
25
+ }
26
+ this.tools.set(definition.name, definition);
27
+ }
28
+ /**
29
+ * Register a complete capability module
30
+ */
31
+ registerCapability(module) {
32
+ if (this.capabilities.has(module.name)) {
33
+ throw new Error(`Duplicate capability registration: ${module.name}`);
34
+ }
35
+ this.capabilities.set(module.name, module);
36
+ // Register all tools from this capability
37
+ for (const tool of module.tools) {
38
+ this.register({ ...tool, capability: module.name });
39
+ }
40
+ }
41
+ /**
42
+ * Get a tool definition by name
43
+ */
44
+ get(name) {
45
+ return this.tools.get(name);
46
+ }
47
+ /**
48
+ * Get handler for a tool
49
+ */
50
+ getHandler(name) {
51
+ return this.tools.get(name)?.handler;
52
+ }
53
+ /**
54
+ * Get all registered tool definitions
55
+ */
56
+ getAll() {
57
+ return Array.from(this.tools.values());
58
+ }
59
+ /**
60
+ * Get tools by capability name
61
+ */
62
+ getByCapability(capabilityName) {
63
+ return Array.from(this.tools.values()).filter((t) => t.capability === capabilityName);
64
+ }
65
+ /**
66
+ * Get all registered capabilities
67
+ */
68
+ getCapabilities() {
69
+ return Array.from(this.capabilities.values());
70
+ }
71
+ /**
72
+ * Check if a tool exists
73
+ */
74
+ has(name) {
75
+ return this.tools.has(name);
76
+ }
77
+ /**
78
+ * Get total number of registered tools
79
+ */
80
+ get size() {
81
+ return this.tools.size;
82
+ }
83
+ /**
84
+ * JSON Schema type for MCP Tool inputSchema
85
+ */
86
+ createJsonSchema(properties = {}, required) {
87
+ return {
88
+ type: 'object',
89
+ properties,
90
+ ...(required && required.length > 0 ? { required } : {}),
91
+ };
92
+ }
93
+ /**
94
+ * Convert Zod schema to JSON Schema for MCP Tool format
95
+ */
96
+ zodToJsonSchema(schema) {
97
+ // Use zod-to-json-schema or manual conversion
98
+ // For now, use the shape if available
99
+ const zodSchema = schema;
100
+ if (zodSchema._def?.typeName === 'ZodObject') {
101
+ const shape = zodSchema._def.shape?.();
102
+ if (shape) {
103
+ const properties = {};
104
+ const required = [];
105
+ for (const [key, value] of Object.entries(shape)) {
106
+ const fieldSchema = value;
107
+ properties[key] = this.zodFieldToJsonSchema(fieldSchema);
108
+ // Check if field is required (not optional)
109
+ if (!fieldSchema.isOptional?.()) {
110
+ required.push(key);
111
+ }
112
+ }
113
+ return this.createJsonSchema(properties, required);
114
+ }
115
+ }
116
+ // Fallback for non-object schemas
117
+ return this.createJsonSchema({});
118
+ }
119
+ /**
120
+ * Convert a single Zod field to JSON Schema
121
+ */
122
+ zodFieldToJsonSchema(field) {
123
+ const typeName = field._def?.typeName;
124
+ // Handle optional wrapper
125
+ if (typeName === 'ZodOptional') {
126
+ return this.zodFieldToJsonSchema(field._def.innerType);
127
+ }
128
+ // Handle basic types
129
+ switch (typeName) {
130
+ case 'ZodString':
131
+ return {
132
+ type: 'string',
133
+ ...(field._def.description ? { description: field._def.description } : {}),
134
+ };
135
+ case 'ZodNumber':
136
+ return {
137
+ type: 'number',
138
+ ...(field._def.description ? { description: field._def.description } : {}),
139
+ };
140
+ case 'ZodBoolean':
141
+ return {
142
+ type: 'boolean',
143
+ ...(field._def.description ? { description: field._def.description } : {}),
144
+ };
145
+ case 'ZodArray':
146
+ return {
147
+ type: 'array',
148
+ items: this.zodFieldToJsonSchema(field._def.type),
149
+ ...(field._def.description ? { description: field._def.description } : {}),
150
+ };
151
+ case 'ZodEnum':
152
+ return {
153
+ type: 'string',
154
+ enum: field._def.values,
155
+ ...(field._def.description ? { description: field._def.description } : {}),
156
+ };
157
+ case 'ZodObject':
158
+ return this.zodToJsonSchema(field);
159
+ default:
160
+ // Default to any type
161
+ return { description: field._def?.description };
162
+ }
163
+ }
164
+ /**
165
+ * Convert registered tools to MCP Tool format
166
+ */
167
+ toMCPTools() {
168
+ return Array.from(this.tools.values()).map((def) => ({
169
+ name: def.name,
170
+ description: def.description,
171
+ inputSchema: this.zodToJsonSchema(def.inputSchema),
172
+ }));
173
+ }
174
+ /**
175
+ * Convert tools for specific capabilities to MCP Tool format
176
+ */
177
+ toMCPToolsForCapabilities(capabilityNames) {
178
+ // If 'core' is specified, return all tools
179
+ if (capabilityNames.includes('core')) {
180
+ return this.toMCPTools();
181
+ }
182
+ // Otherwise, filter by capability names
183
+ return Array.from(this.tools.values())
184
+ .filter((def) => capabilityNames.includes(def.capability))
185
+ .map((def) => ({
186
+ name: def.name,
187
+ description: def.description,
188
+ inputSchema: this.zodToJsonSchema(def.inputSchema),
189
+ }));
190
+ }
191
+ /**
192
+ * Get handlers map for specific capabilities
193
+ */
194
+ getHandlersForCapabilities(capabilityNames) {
195
+ const handlers = new Map();
196
+ // If 'core' is specified, return all handlers
197
+ if (capabilityNames.includes('core')) {
198
+ for (const [name, def] of this.tools) {
199
+ handlers.set(name, def.handler);
200
+ }
201
+ return handlers;
202
+ }
203
+ // Otherwise, filter by capability names
204
+ for (const [name, def] of this.tools) {
205
+ if (capabilityNames.includes(def.capability)) {
206
+ handlers.set(name, def.handler);
207
+ }
208
+ }
209
+ return handlers;
210
+ }
211
+ /**
212
+ * Get statistics about registered tools
213
+ */
214
+ getStats() {
215
+ const byCapability = {};
216
+ for (const def of this.tools.values()) {
217
+ byCapability[def.capability] = (byCapability[def.capability] || 0) + 1;
218
+ }
219
+ return {
220
+ total: this.tools.size,
221
+ byCapability,
222
+ };
223
+ }
224
+ /**
225
+ * Validate all registrations
226
+ */
227
+ validate() {
228
+ const errors = [];
229
+ for (const def of this.tools.values()) {
230
+ // Check required fields
231
+ if (!def.name) {
232
+ errors.push('Tool missing name');
233
+ }
234
+ if (!def.description) {
235
+ errors.push(`Tool ${def.name} missing description`);
236
+ }
237
+ if (!def.handler) {
238
+ errors.push(`Tool ${def.name} missing handler`);
239
+ }
240
+ if (!def.inputSchema) {
241
+ errors.push(`Tool ${def.name} missing inputSchema`);
242
+ }
243
+ }
244
+ return {
245
+ valid: errors.length === 0,
246
+ errors,
247
+ };
248
+ }
249
+ /**
250
+ * Clear all registrations (useful for testing)
251
+ */
252
+ clear() {
253
+ this.tools.clear();
254
+ this.capabilities.clear();
255
+ }
256
+ }
257
+ /**
258
+ * Global tool registry instance
259
+ */
260
+ export const globalRegistry = new ToolRegistry();
261
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;IACzC,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE1D;;OAEG;IACH,QAAQ,CAAC,UAA0B;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAwB;QACzC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE1C,0CAA0C;QAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,cAAsB;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAA;IACvF,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,aAAsC,EAAE,EACxC,QAAmB;QAEnB,OAAO;YACL,IAAI,EAAE,QAAiB;YACvB,UAAU;YACV,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAA;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,MAAkB;QAElB,8CAA8C;QAC9C,sCAAsC;QACtC,MAAM,SAAS,GAAG,MAAa,CAAA;QAE/B,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;YACtC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,UAAU,GAA4B,EAAE,CAAA;gBAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;gBAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,MAAM,WAAW,GAAG,KAAY,CAAA;oBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;oBAExD,4CAA4C;oBAC5C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;wBAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACpB,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,KAAU;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAA;QAErC,0BAA0B;QAC1B,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxD,CAAC;QAED,qBAAqB;QACrB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,WAAW;gBACd,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAA;YACH,KAAK,WAAW;gBACd,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAA;YACH,KAAK,YAAY;gBACf,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAA;YACH,KAAK,UAAU;gBACb,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAA;YACH,KAAK,SAAS;gBACZ,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;oBACvB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAA;YACH,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YACpC;gBACE,sBAAsB;gBACtB,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;SACnD,CAAC,CAAC,CAAA;IACL,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,eAAyB;QACjD,2CAA2C;QAC3C,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;QAC1B,CAAC;QAED,wCAAwC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;SACnD,CAAC,CAAC,CAAA;IACP,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,eAAyB;QAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;QAE/C,8CAA8C;QAC9C,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,wCAAwC;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ;QAIN,MAAM,YAAY,GAA2B,EAAE,CAAA;QAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACxE,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACtB,YAAY;SACb,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,MAAM,GAAa,EAAE,CAAA;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,wBAAwB;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAClC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,sBAAsB,CAAC,CAAA;YACrD,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,kBAAkB,CAAC,CAAA;YACjD,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,sBAAsB,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM;SACP,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { ToolSchemaLookupResult } from './schema-types.js';
2
+ export declare function getToolSchema(toolName: string): ToolSchemaLookupResult | undefined;
3
+ export declare function listToolSchemas(): ToolSchemaLookupResult[];
4
+ //# sourceMappingURL=schema-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/schema-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAgB/D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAElF;AAED,wBAAgB,eAAe,IAAI,sBAAsB,EAAE,CAE1D"}
@@ -0,0 +1,18 @@
1
+ import { automatorSchemas } from './automator/schemas/index.js';
2
+ const schemaMap = new Map();
3
+ function registerSchemas(schemas) {
4
+ for (const schema of schemas) {
5
+ if (schemaMap.has(schema.name)) {
6
+ throw new Error(`Duplicate schema definition for tool: ${schema.name}`);
7
+ }
8
+ schemaMap.set(schema.name, schema);
9
+ }
10
+ }
11
+ registerSchemas(automatorSchemas);
12
+ export function getToolSchema(toolName) {
13
+ return schemaMap.get(toolName);
14
+ }
15
+ export function listToolSchemas() {
16
+ return Array.from(schemaMap.values());
17
+ }
18
+ //# sourceMappingURL=schema-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../../src/capabilities/schema-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAA;AAE3D,SAAS,eAAe,CAAC,OAAiC;IACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;AACH,CAAC;AAED,eAAe,CAAC,gBAAgB,CAAC,CAAA;AAEjC,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;AACvC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ZodTypeAny } from 'zod';
2
+ export interface ToolSchemaDefinition {
3
+ /** 工具名称,与 MCP 注册名一致 */
4
+ name: string;
5
+ /** 能力分组,例如 automator/miniprogram 等 */
6
+ capability: string;
7
+ /** 与工具清单描述保持一致的简介 */
8
+ description: string;
9
+ /** 输入参数 schema */
10
+ input: ZodTypeAny;
11
+ /** 可选输出 schema(后续阶段使用) */
12
+ output?: ZodTypeAny;
13
+ }
14
+ export type ToolSchemaRegistry = Record<string, ToolSchemaDefinition>;
15
+ export interface ToolSchemaLookupResult {
16
+ name: string;
17
+ capability: string;
18
+ description: string;
19
+ input: ZodTypeAny;
20
+ output?: ZodTypeAny;
21
+ }
22
+ //# sourceMappingURL=schema-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../src/capabilities/schema-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAErE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../../src/capabilities/schema-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Snapshot handlers exports
3
+ *
4
+ * All 3 handlers are now independently implemented in this directory.
5
+ */
6
+ export { snapshotPage, snapshotFull, snapshotElement, type SnapshotPageArgs, type SnapshotPageResult, type SnapshotFullArgs, type SnapshotFullResult, type SnapshotElementArgs, type SnapshotElementResult, } from './snapshot-handlers.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Snapshot handlers exports
3
+ *
4
+ * All 3 handlers are now independently implemented in this directory.
5
+ */
6
+ export { snapshotPage, snapshotFull, snapshotElement, } from './snapshot-handlers.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,GAOhB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Snapshot handlers - State capture and diagnostic utilities
3
+ */
4
+ import type { SessionState } from '../../../types.js';
5
+ export interface SnapshotPageArgs {
6
+ pagePath?: string;
7
+ filename?: string;
8
+ includeScreenshot?: boolean;
9
+ fullPage?: boolean;
10
+ }
11
+ export interface SnapshotPageResult {
12
+ success: boolean;
13
+ message: string;
14
+ snapshotPath: string;
15
+ screenshotPath?: string;
16
+ data: {
17
+ timestamp: string;
18
+ pagePath: string;
19
+ pageData: any;
20
+ pageQuery: Record<string, any>;
21
+ };
22
+ }
23
+ export declare function snapshotPage(session: SessionState, args: SnapshotPageArgs): Promise<SnapshotPageResult>;
24
+ export interface SnapshotFullArgs {
25
+ filename?: string;
26
+ includeScreenshot?: boolean;
27
+ fullPage?: boolean;
28
+ }
29
+ export interface SnapshotFullResult {
30
+ success: boolean;
31
+ message: string;
32
+ snapshotPath: string;
33
+ screenshotPath?: string;
34
+ data: {
35
+ timestamp: string;
36
+ systemInfo: any;
37
+ pageStack: Array<{
38
+ path: string;
39
+ query: Record<string, any>;
40
+ }>;
41
+ currentPage: {
42
+ path: string;
43
+ query: Record<string, any>;
44
+ data: any;
45
+ };
46
+ };
47
+ }
48
+ export declare function snapshotFull(session: SessionState, args: SnapshotFullArgs): Promise<SnapshotFullResult>;
49
+ export interface SnapshotElementArgs {
50
+ refId: string;
51
+ filename?: string;
52
+ includeScreenshot?: boolean;
53
+ }
54
+ export interface SnapshotElementResult {
55
+ success: boolean;
56
+ message: string;
57
+ snapshotPath: string;
58
+ screenshotPath?: string;
59
+ data: {
60
+ timestamp: string;
61
+ refId: string;
62
+ text?: string;
63
+ attributes: Record<string, any>;
64
+ size: {
65
+ width: number;
66
+ height: number;
67
+ } | null;
68
+ offset: {
69
+ left: number;
70
+ top: number;
71
+ } | null;
72
+ };
73
+ }
74
+ export declare function snapshotElement(session: SessionState, args: SnapshotElementArgs): Promise<SnapshotElementResult>;
75
+ //# sourceMappingURL=snapshot-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-handlers.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/snapshot-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AASrD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,GAAG,CAAA;QACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC/B,CAAA;CACF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2E7G;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,GAAG,CAAA;QACf,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;SAAE,CAAC,CAAA;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC1B,IAAI,EAAE,GAAG,CAAA;SACV,CAAA;KACF,CAAA;CACF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgF7G;AAMD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;QAC9C,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAC7C,CAAA;CACF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+EtH"}
@@ -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