@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
@@ -1,220 +0,0 @@
1
- # Charter: [C5] 工具注册器
2
-
3
- task_id: C5
4
- task_name: 工具注册器实现(registerTools 函数 + 元数据系统)
5
- stage: C
6
- phase: Align (Retrospective)
7
- created_at: "2025-10-02"
8
- status: COMPLETED
9
- estimated_hours: 3-4
10
- actual_hours: 4
11
-
12
- ## Goal (目标)
13
-
14
- 实现统一的工具注册系统,按 capabilities 动态注册工具,提供工具分类、元数据管理和验证机制。
15
-
16
- **核心交付物**:
17
- - `src/tools/index.ts` - registerTools 函数 + 元数据系统 (1433 lines)
18
- - `tests/unit/tool-registration.test.ts` - 单元测试 (400 lines, 46 tests)
19
- - 功能:
20
- - registerTools(server, context) 函数
21
- - 6 个工具分类系统(AUTOMATOR, MINIPROGRAM, PAGE, ELEMENT, ASSERT, SNAPSHOT)
22
- - TOOL_CATEGORIES 元数据(工具分类、描述、数量统计)
23
- - Capabilities 过滤机制
24
- - Schema 验证和 handler 绑定
25
-
26
- ## Non-Goals (非目标)
27
-
28
- - ❌ 不实现工具的具体逻辑(由 C1-C4 完成)
29
- - ❌ 不实现动态工具加载(静态注册)
30
- - ❌ 不实现工具版本管理
31
- - ❌ 不实现工具权限控制
32
-
33
- ## Scope (范围)
34
-
35
- ### In Scope (包含)
36
-
37
- 1. **registerTools 函数**
38
- - ✅ 接收 MCP Server 实例
39
- - ✅ 接收 ToolContext(getSession, deleteSession 回调)
40
- - ✅ 根据 capabilities 过滤工具
41
- - ✅ 批量注册工具到 Server
42
- - ✅ 返回已注册工具列表
43
-
44
- 2. **工具分类系统**
45
- - ✅ AUTOMATOR_TOOLS: 4 个工具(launch, connect, disconnect, close)
46
- - ✅ MINIPROGRAM_TOOLS: 6 个工具(navigate, callWx, evaluate, screenshot, getPageStack, getSystemInfo)
47
- - ✅ PAGE_TOOLS: 8 个工具(query, queryAll, waitFor, getData, setData, callMethod, getSize, getScrollTop)
48
- - ✅ ELEMENT_TOOLS: 23 个核心工具 + 子类操作
49
- - ✅ ASSERT_TOOLS: 断言工具(Stage D)
50
- - ✅ SNAPSHOT_TOOLS: 快照工具(Stage D)
51
-
52
- 3. **TOOL_CATEGORIES 元数据**
53
- - ✅ 工具分类名称和描述
54
- - ✅ 每个分类包含的工具列表
55
- - ✅ 工具数量统计
56
- - ✅ Capability 映射关系
57
-
58
- 4. **Capabilities 过滤**
59
- - ✅ 支持 'core'(Automator + MiniProgram + Page + Element)
60
- - ✅ 支持 'assert'(Assert 工具)
61
- - ✅ 支持 'snapshot'(Snapshot 工具)
62
- - ✅ 支持 'record'(Record 工具)
63
- - ✅ 支持 'network'(Network Mock 工具)
64
- - ✅ 支持 'tracing'(Tracing 工具)
65
- - ✅ 支持组合 capabilities
66
-
67
- 5. **工具验证**
68
- - ✅ Schema 定义验证
69
- - ✅ Handler 函数存在性检查
70
- - ✅ 工具名称唯一性检查
71
- - ✅ 错误日志和异常处理
72
-
73
- 6. **ToolContext 接口**
74
- - ✅ getSession(sessionId): Session
75
- - ✅ deleteSession(sessionId): void
76
- - ✅ 传递给所有工具 handler
77
-
78
- ### Out of Scope (不包含)
79
-
80
- - ❌ 工具具体实现(C1-C4)
81
- - ❌ 动态工具加载
82
- - ❌ 工具版本管理
83
- - ❌ 工具权限控制
84
- - ❌ 工具使用统计
85
-
86
- ## Constraints (约束)
87
-
88
- ### Technical Constraints (技术约束)
89
-
90
- 1. **MCP SDK 兼容**
91
- - 使用 Server.setRequestHandler(CallToolRequestSchema, ...)
92
- - 遵循 MCP 工具定义规范
93
- - 正确返回工具列表和执行结果
94
-
95
- 2. **工具命名规范**
96
- - 格式: `miniapp_{level}_{action}`
97
- - 示例: `miniapp_automator_launch`, `miniapp_element_tap`
98
- - 全局唯一性
99
-
100
- 3. **Capabilities 映射**
101
- - core: Automator + MiniProgram + Page + Element
102
- - assert: Assert 工具
103
- - snapshot: Snapshot 工具
104
- - record: Record 工具
105
- - network: Network Mock 工具
106
- - tracing: Tracing 工具
107
-
108
- 4. **ToolContext 依赖注入**
109
- - 通过参数传递 getSession/deleteSession
110
- - 避免全局状态
111
- - 便于测试和扩展
112
-
113
- ### Business Constraints (业务约束)
114
-
115
- 1. **注册时间**: <100ms
116
- 2. **工具总数**: 当前 ~60 个工具(core + assert + snapshot)
117
- 3. **内存占用**: 注册后 <10MB
118
-
119
- ## Success Criteria (成功标准)
120
-
121
- ### Functional Criteria (功能标准)
122
-
123
- - ✅ registerTools 正确注册工具
124
- - ✅ capabilities 过滤正确
125
- - ✅ 工具 handler 正确绑定
126
- - ✅ schema 验证通过
127
- - ✅ 返回正确的工具列表
128
- - ✅ TOOL_CATEGORIES 元数据完整
129
-
130
- ### Quality Criteria (质量标准)
131
-
132
- - ✅ TypeScript 编译 0 错误
133
- - ✅ 单元测试覆盖率 >80%
134
- - ✅ 46 个测试用例全部通过
135
- - ✅ 无 ESLint 错误
136
- - ✅ JSDoc 注释完整
137
-
138
- ### Documentation Criteria (文档标准)
139
-
140
- - ✅ registerTools 函数有详细注释
141
- - ✅ TOOL_CATEGORIES 有清晰说明
142
- - ✅ Capabilities 映射文档完整
143
- - ⏳ charter.C5.align.yaml (本文档)
144
- - ⏳ tasks.C5.atomize.md (任务卡)
145
-
146
- ## Definition of Done (完成标准)
147
-
148
- **代码**:
149
- - ✅ `src/tools/index.ts` 实现完成 (1433 lines)
150
- - ✅ TypeScript 编译通过
151
- - ✅ registerTools 函数正确工作
152
-
153
- **测试**:
154
- - ✅ `tests/unit/tool-registration.test.ts` (400 lines)
155
- - ✅ 46 个测试用例全部通过
156
- - ✅ 覆盖所有 capabilities 组合
157
- - ✅ Mock Server 和 Context
158
-
159
- **文档**:
160
- - ⏳ charter.C5.align.yaml (追溯)
161
- - ⏳ tasks.C5.atomize.md (追溯)
162
- - ✅ README 工具列表更新
163
-
164
- **Git**:
165
- - ✅ 已提交(Stage C 提交)
166
-
167
- ## Dependencies (依赖)
168
-
169
- **前置任务**:
170
- - ✅ C1: Automator 工具
171
- - ✅ C2: MiniProgram 工具
172
- - ✅ C3: Page 工具
173
- - ✅ C4: Element 工具
174
- - ✅ B1: MCP Server 骨架
175
-
176
- **后续任务**:
177
- - C5 → E3 (CLI 传递 capabilities 参数)
178
- - C5 → D1 (Assert 工具注册)
179
- - C5 → D2 (Snapshot 工具注册)
180
-
181
- ## Risks (风险)
182
-
183
- ### Technical Risks (技术风险)
184
-
185
- 1. **工具数量增长** - 🟡 中风险
186
- - 影响:工具过多可能影响性能
187
- - 缓解:按 capabilities 分组加载
188
-
189
- 2. **命名冲突** - 🟢 已缓解
190
- - 风险:工具名称重复
191
- - 缓解:注册时检查唯一性
192
-
193
- 3. **Schema 验证失败** - 🟢 已缓解
194
- - 风险:Schema 定义错误导致注册失败
195
- - 缓解:单元测试覆盖所有工具
196
-
197
- ### Business Risks (业务风险)
198
-
199
- 1. **注册时间过长** - 🟢 已缓解
200
- - 影响:启动慢
201
- - 缓解:优化注册逻辑,<100ms
202
-
203
- ## Open Questions (未决问题)
204
-
205
- - ❓ 是否需要支持动态工具加载?(当前静态注册)
206
- - ❓ 是否需要工具版本管理?(当前无版本)
207
- - ❓ 是否需要工具使用统计?(当前不收集)
208
-
209
- ## References (参考资料)
210
-
211
- - `docs/完整实现方案.md` - 工具分层设计
212
- - `docs/微信小程序自动化完整操作手册.md` - 完整 API 参考
213
- - `@modelcontextprotocol/sdk` 文档
214
- - C1-C4 任务文档
215
-
216
- ---
217
-
218
- **Approval**: ✅ RETROSPECTIVE APPROVED
219
- **Implementation**: ✅ COMPLETED (1433 lines + 46 tests)
220
- **Documentation**: ⏳ IN PROGRESS
@@ -1,190 +0,0 @@
1
- # Charter: [D1] 断言工具集
2
-
3
- task_id: D1
4
- task_name: 断言工具集实现
5
- stage: D
6
- phase: Align (Retrospective)
7
- created_at: "2025-10-02"
8
- status: COMPLETED
9
- estimated_hours: 2-3
10
- actual_hours: 2.5
11
-
12
- ## Goal (目标)
13
-
14
- 实现完整的断言工具集,为小程序自动化测试提供强大的验证能力。
15
-
16
- **核心交付物**:
17
- - `src/tools/assert.ts` - 9 个断言工具实现 (465 lines)
18
- - `tests/unit/assert.test.ts` - 单元测试 (394 lines, 27 tests)
19
- - 工具: assertExists, assertNotExists, assertText, assertTextContains, assertValue, assertAttribute, assertProperty, assertData, assertVisible
20
-
21
- ## Non-Goals (非目标)
22
-
23
- - ❌ 不实现自定义断言逻辑(仅标准断言)
24
- - ❌ 不实现软断言(所有断言失败即抛错)
25
- - ❌ 不实现断言结果聚合报告(留给未来)
26
- - ❌ 不实现快照比对(属于 D2)
27
-
28
- ## Scope (范围)
29
-
30
- ### In Scope (包含)
31
-
32
- 1. **元素存在性断言**
33
- - ✅ assertExists - 断言元素存在
34
- - ✅ assertNotExists - 断言元素不存在
35
- - ✅ 支持 selector 和 pagePath 参数
36
-
37
- 2. **文本内容断言**
38
- - ✅ assertText - 精确文本匹配
39
- - ✅ assertTextContains - 文本包含子串
40
- - ✅ 返回期望值和实际值对比
41
-
42
- 3. **表单值断言**
43
- - ✅ assertValue - input/textarea 值断言
44
- - ✅ 支持任意表单组件
45
-
46
- 4. **属性和状态断言**
47
- - ✅ assertAttribute - HTML 属性断言
48
- - ✅ assertProperty - JavaScript 属性断言
49
- - ✅ assertVisible - 可见性断言(基于尺寸)
50
-
51
- 5. **页面数据断言**
52
- - ✅ assertData - Page data 断言
53
- - ✅ 支持嵌套路径访问
54
-
55
- ### Out of Scope (不包含)
56
-
57
- - ❌ 正则表达式匹配(使用字符串精确/包含匹配)
58
- - ❌ 数值范围断言(使用精确匹配)
59
- - ❌ 数组长度/内容断言(使用 JSON 比较)
60
- - ❌ 自定义匹配器
61
-
62
- ## Constraints (约束)
63
-
64
- ### Technical Constraints (技术约束)
65
-
66
- 1. **工具依赖**
67
- - 复用 Page 工具(query, getData)
68
- - 复用 Element 工具(getText, getValue, getAttribute, etc.)
69
- - 通过函数调用而非直接 SessionState 访问
70
-
71
- 2. **错误格式**
72
- - 所有断言失败抛出 Error
73
- - 错误消息格式: `Assertion failed: <详细说明>`
74
- - 包含期望值 vs 实际值对比
75
-
76
- 3. **返回值结构**
77
- - 成功: `{ success: true, message: string, actual?: any }`
78
- - 失败: 抛出 Error(不返回 success: false)
79
-
80
- 4. **日志记录**
81
- - 使用 session.logger 记录所有断言
82
- - 包含 info(成功)和 error(失败)
83
-
84
- ### Business Constraints (业务约束)
85
-
86
- 1. **执行时间**: 单个断言 <500ms
87
- 2. **错误信息**: 必须清晰指明失败原因
88
- 3. **可组合性**: 可在测试流程中链式使用
89
-
90
- ## Success Criteria (成功标准)
91
-
92
- ### Functional Criteria (功能标准)
93
-
94
- - ✅ assertExists 正确检测元素存在性
95
- - ✅ assertNotExists 正确检测元素不存在
96
- - ✅ assertText 精确匹配文本内容
97
- - ✅ assertTextContains 检测子串包含
98
- - ✅ assertValue 验证表单值
99
- - ✅ assertAttribute 验证 HTML 属性
100
- - ✅ assertProperty 验证 JS 属性
101
- - ✅ assertData 验证页面数据(含嵌套)
102
- - ✅ assertVisible 验证元素可见性(非零尺寸)
103
-
104
- ### Quality Criteria (质量标准)
105
-
106
- - ✅ TypeScript 编译 0 错误
107
- - ✅ 单元测试覆盖率 >90%
108
- - ✅ 27 个测试用例全部通过
109
- - ✅ 无 ESLint 错误
110
- - ✅ JSDoc 注释完整
111
-
112
- ### Documentation Criteria (文档标准)
113
-
114
- - ✅ 每个工具有函数签名和 JSDoc
115
- - ✅ 错误消息格式统一
116
- - ⏳ charter.D1.align.yaml (本文档)
117
- - ⏳ tasks.D1.atomize.md (任务卡)
118
-
119
- ## Definition of Done (完成标准)
120
-
121
- **代码**:
122
- - ✅ `src/tools/assert.ts` 实现完成 (465 lines)
123
- - ✅ 9 个断言工具全部实现
124
- - ✅ TypeScript 编译通过
125
-
126
- **测试**:
127
- - ✅ `tests/unit/assert.test.ts` (394 lines)
128
- - ✅ 27 个测试用例全部通过
129
- - ✅ 覆盖成功和失败场景
130
- - ✅ Mock page/element 工具依赖
131
-
132
- **文档**:
133
- - ⏳ charter.D1.align.yaml (追溯)
134
- - ⏳ tasks.D1.atomize.md (追溯)
135
- - ✅ 代码注释完整
136
-
137
- **Git**:
138
- - ✅ 已提交(commit: feat: [D1] 断言工具集实现)
139
-
140
- ## Dependencies (依赖)
141
-
142
- **前置任务**:
143
- - ✅ C3: Page 工具(query, getData)
144
- - ✅ C4: Element 工具(getText, getValue, getAttribute, getProperty, getSize)
145
- - ✅ B2: SessionState 和日志系统
146
-
147
- **后续任务**:
148
- - D1 → Stage E (集成到工具注册器)
149
- - D1 → Stage F (端到端测试示例)
150
-
151
- ## Risks (风险)
152
-
153
- ### Technical Risks (技术风险)
154
-
155
- 1. **断言性能** - 🟢 低风险
156
- - 影响:大量断言可能拖慢测试
157
- - 缓解:每个断言基于单次元素/数据查询
158
-
159
- 2. **错误消息可读性** - 🟢 已缓解
160
- - 风险:期望值 vs 实际值不清晰
161
- - 缓解:统一格式 `Expected: "...", Actual: "..."`
162
-
163
- 3. **深度嵌套数据比较** - 🟡 中风险
164
- - 风险:JSON.stringify 可能无法正确比较复杂对象
165
- - 缓解:当前使用 JSON 序列化比较,未来可引入深度比较库
166
-
167
- ### Business Risks (业务风险)
168
-
169
- 1. **断言失败定位** - 🟢 已缓解
170
- - 影响:用户不知道哪个断言失败
171
- - 缓解:错误消息包含 selector/refId/path 信息
172
-
173
- ## Open Questions (未决问题)
174
-
175
- - ❓ 是否需要支持正则表达式匹配?(当前仅字符串)
176
- - ❓ 是否需要软断言(收集所有失败后统一报告)?(当前硬断言)
177
- - ❓ 是否需要自定义匹配器扩展机制?(当前固定 9 个工具)
178
-
179
- ## References (参考资料)
180
-
181
- - `docs/完整实现方案.md` - 工具分层设计
182
- - `src/tools/page.ts` - Page 工具依赖
183
- - `src/tools/element.ts` - Element 工具依赖
184
- - Playwright Assertions - 断言设计参考
185
-
186
- ---
187
-
188
- **Approval**: ✅ RETROSPECTIVE APPROVED
189
- **Implementation**: ✅ COMPLETED
190
- **Documentation**: ⏳ IN PROGRESS
@@ -1,234 +0,0 @@
1
- # Charter: [D2] 快照工具集
2
-
3
- task_id: D2
4
- task_name: 快照工具集实现
5
- stage: D
6
- phase: Align (Retrospective)
7
- created_at: "2025-10-02"
8
- status: COMPLETED
9
- estimated_hours: 2-3
10
- actual_hours: 2
11
-
12
- ## Goal (目标)
13
-
14
- 实现完整的快照工具集,为小程序自动化测试提供状态捕获和回溯能力。
15
-
16
- **核心交付物**:
17
- - `src/tools/snapshot.ts` - 3 个快照工具实现 (352 lines)
18
- - `tests/unit/snapshot.test.ts` - 单元测试 (251 lines, 10 tests)
19
- - 工具: snapshotPage, snapshotFull, snapshotElement
20
-
21
- ## Non-Goals (非目标)
22
-
23
- - ❌ 不实现快照比对(diff)功能
24
- - ❌ 不实现快照回放(restore)功能
25
- - ❌ 不实现快照压缩/归档(仅原始 JSON + PNG)
26
- - ❌ 不实现多快照管理(仅单次捕获)
27
-
28
- ## Scope (范围)
29
-
30
- ### In Scope (包含)
31
-
32
- 1. **snapshotPage - 页面快照**
33
- - ✅ 捕获当前页面数据(data + query)
34
- - ✅ 可选截图(PNG 格式)
35
- - ✅ 保存为 JSON + 可选 PNG
36
- - ✅ 返回文件路径
37
-
38
- 2. **snapshotFull - 完整应用快照**
39
- - ✅ 捕获系统信息(systemInfo)
40
- - ✅ 捕获页面栈(pageStack)
41
- - ✅ 捕获当前页面数据
42
- - ✅ 可选截图(PNG 格式)
43
- - ✅ 保存为 JSON + 可选 PNG
44
-
45
- 3. **snapshotElement - 元素快照**
46
- - ✅ 捕获元素文本(text)
47
- - ✅ 捕获元素尺寸(size)
48
- - ✅ 捕获元素位置(offset)
49
- - ✅ 可选截图(PNG 格式)
50
- - ✅ 保存为 JSON + 可选 PNG
51
-
52
- 4. **通用功能**
53
- - ✅ 自动生成文件名(带时间戳)
54
- - ✅ 支持自定义文件名
55
- - ✅ 使用 OutputManager 管理文件
56
- - ✅ 时间戳记录(ISO8601 格式)
57
-
58
- ### Out of Scope (不包含)
59
-
60
- - ❌ 快照比对(diff)
61
- - ❌ 快照恢复(restore)
62
- - ❌ 快照版本控制(git-like)
63
- - ❌ 快照压缩(zip/tar)
64
-
65
- ## Constraints (约束)
66
-
67
- ### Technical Constraints (技术约束)
68
-
69
- 1. **工具依赖**
70
- - 复用 MiniProgram 工具(getPageStack, getSystemInfo, screenshot)
71
- - 复用 Page 工具(getData)
72
- - 复用 Element 工具(getText, getSize, getOffset)
73
- - 使用 OutputManager 管理文件输出
74
-
75
- 2. **文件格式**
76
- - JSON: 结构化数据,包含时间戳
77
- - PNG: 截图文件(可选)
78
- - 文件命名: `snapshot-{timestamp}.json` 或自定义
79
-
80
- 3. **数据结构**
81
- - **snapshotPage**:
82
- ```typescript
83
- {
84
- timestamp: string // ISO8601
85
- pagePath: string // 当前页面路径
86
- pageData: any // 页面 data
87
- pageQuery: Record<string, any> // 页面 query
88
- }
89
- ```
90
- - **snapshotFull**:
91
- ```typescript
92
- {
93
- timestamp: string
94
- systemInfo: any // 系统信息
95
- pageStack: Array<{path, query}> // 页面栈
96
- currentPage: {
97
- path: string
98
- query: Record<string, any>
99
- data: any
100
- }
101
- }
102
- ```
103
- - **snapshotElement**:
104
- ```typescript
105
- {
106
- timestamp: string
107
- refId: string
108
- text?: string
109
- attributes: Record<string, any>
110
- size: {width, height} | null
111
- offset: {left, top} | null
112
- }
113
- ```
114
-
115
- 4. **返回值结构**
116
- ```typescript
117
- {
118
- success: boolean
119
- message: string
120
- snapshotPath: string // JSON 文件路径
121
- screenshotPath?: string // PNG 文件路径(可选)
122
- data: {/* 快照数据 */}
123
- }
124
- ```
125
-
126
- ### Business Constraints (业务约束)
127
-
128
- 1. **执行时间**: 单次快照 <2s(含截图)
129
- 2. **文件大小**: JSON <1MB, PNG <5MB
130
- 3. **存储位置**: 默认 `outputDir`,可配置
131
-
132
- ## Success Criteria (成功标准)
133
-
134
- ### Functional Criteria (功能标准)
135
-
136
- - ✅ snapshotPage 正确捕获页面数据和截图
137
- - ✅ snapshotFull 正确捕获应用全局状态
138
- - ✅ snapshotElement 正确捕获元素状态
139
- - ✅ JSON 文件包含完整数据和时间戳
140
- - ✅ 截图可选(includeScreenshot 参数)
141
- - ✅ 支持自定义文件名
142
- - ✅ 文件保存到正确路径
143
-
144
- ### Quality Criteria (质量标准)
145
-
146
- - ✅ TypeScript 编译 0 错误
147
- - ✅ 单元测试覆盖率 >80%
148
- - ✅ 10 个测试用例全部通过
149
- - ✅ 无 ESLint 错误
150
- - ✅ JSDoc 注释完整
151
-
152
- ### Documentation Criteria (文档标准)
153
-
154
- - ✅ 每个工具有函数签名和 JSDoc
155
- - ✅ 数据结构定义清晰
156
- - ⏳ charter.D2.align.yaml (本文档)
157
- - ⏳ tasks.D2.atomize.md (任务卡)
158
-
159
- ## Definition of Done (完成标准)
160
-
161
- **代码**:
162
- - ✅ `src/tools/snapshot.ts` 实现完成 (352 lines)
163
- - ✅ 3 个快照工具全部实现
164
- - ✅ TypeScript 编译通过
165
-
166
- **测试**:
167
- - ✅ `tests/unit/snapshot.test.ts` (251 lines)
168
- - ✅ 10 个测试用例全部通过
169
- - ✅ 覆盖成功和失败场景
170
- - ✅ Mock miniprogram/page/element 工具依赖
171
-
172
- **文档**:
173
- - ⏳ charter.D2.align.yaml (追溯)
174
- - ⏳ tasks.D2.atomize.md (追溯)
175
- - ✅ 代码注释完整
176
-
177
- **Git**:
178
- - ✅ 已提交(commit: feat: [D2] 快照能力实现)
179
-
180
- ## Dependencies (依赖)
181
-
182
- **前置任务**:
183
- - ✅ C2: MiniProgram 工具(getPageStack, getSystemInfo, screenshot)
184
- - ✅ C3: Page 工具(getData)
185
- - ✅ C4: Element 工具(getText, getSize, getOffset)
186
- - ✅ B3: OutputManager 实现
187
-
188
- **后续任务**:
189
- - D2 → Stage E (集成到工具注册器)
190
- - D2 → Stage F (端到端测试示例)
191
-
192
- ## Risks (风险)
193
-
194
- ### Technical Risks (技术风险)
195
-
196
- 1. **大数据量快照** - 🟡 中风险
197
- - 影响:页面数据过大导致 JSON 文件巨大
198
- - 缓解:当前无限制,未来可添加大小警告
199
-
200
- 2. **截图失败** - 🟢 已缓解
201
- - 风险:截图工具失败导致快照失败
202
- - 缓解:截图为可选(includeScreenshot: false 可跳过)
203
-
204
- 3. **文件名冲突** - 🟢 已缓解
205
- - 风险:时间戳相同导致文件覆盖
206
- - 缓解:OutputManager 使用 `Date.now()` 精确到毫秒
207
-
208
- ### Business Risks (业务风险)
209
-
210
- 1. **存储空间** - 🟡 中风险
211
- - 影响:大量快照占用磁盘空间
212
- - 缓解:用户自行管理 outputDir 清理
213
-
214
- ## Open Questions (未决问题)
215
-
216
- - ❓ 是否需要快照压缩(zip)以节省空间?(当前原始文件)
217
- - ❓ 是否需要快照比对功能?(当前仅捕获)
218
- - ❓ 是否需要快照恢复功能?(当前仅只读)
219
- - ❓ 是否需要限制单个快照文件大小?(当前无限制)
220
-
221
- ## References (参考资料)
222
-
223
- - `docs/完整实现方案.md` - 工具分层设计
224
- - `src/tools/miniprogram.ts` - MiniProgram 工具依赖
225
- - `src/tools/page.ts` - Page 工具依赖
226
- - `src/tools/element.ts` - Element 工具依赖
227
- - `src/core/output.ts` - OutputManager 实现
228
- - Playwright Screenshots - 截图功能参考
229
-
230
- ---
231
-
232
- **Approval**: ✅ RETROSPECTIVE APPROVED
233
- **Implementation**: ✅ COMPLETED
234
- **Documentation**: ⏳ IN PROGRESS