@creatoria/miniapp-mcp 0.2.0 → 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 (228) hide show
  1. package/README.md +127 -73
  2. package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
  3. package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
  4. package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
  5. package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
  6. package/dist/capabilities/assert/handlers/index.d.ts +7 -0
  7. package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
  8. package/dist/capabilities/assert/handlers/index.js +7 -0
  9. package/dist/capabilities/assert/handlers/index.js.map +1 -0
  10. package/dist/capabilities/assert/index.d.ts +12 -2
  11. package/dist/capabilities/assert/index.d.ts.map +1 -1
  12. package/dist/capabilities/assert/index.js +87 -2
  13. package/dist/capabilities/assert/index.js.map +1 -1
  14. package/dist/capabilities/assert/schemas/index.d.ts +101 -0
  15. package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
  16. package/dist/capabilities/assert/schemas/index.js +62 -0
  17. package/dist/capabilities/assert/schemas/index.js.map +1 -0
  18. package/dist/capabilities/automator/handlers/close.d.ts +18 -0
  19. package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
  20. package/dist/capabilities/automator/handlers/close.js +45 -0
  21. package/dist/capabilities/automator/handlers/close.js.map +1 -0
  22. package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
  23. package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
  24. package/dist/capabilities/automator/handlers/connect.js +51 -0
  25. package/dist/capabilities/automator/handlers/connect.js.map +1 -0
  26. package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
  27. package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
  28. package/dist/capabilities/automator/handlers/disconnect.js +44 -0
  29. package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
  30. package/dist/capabilities/automator/handlers/index.d.ts +8 -0
  31. package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
  32. package/dist/capabilities/automator/handlers/index.js +8 -0
  33. package/dist/capabilities/automator/handlers/index.js.map +1 -0
  34. package/dist/capabilities/automator/handlers/launch.d.ts +25 -0
  35. package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
  36. package/dist/capabilities/automator/handlers/launch.js +61 -0
  37. package/dist/capabilities/automator/handlers/launch.js.map +1 -0
  38. package/dist/capabilities/automator/index.d.ts +11 -2
  39. package/dist/capabilities/automator/index.d.ts.map +1 -1
  40. package/dist/capabilities/automator/index.js +51 -2
  41. package/dist/capabilities/automator/index.js.map +1 -1
  42. package/dist/capabilities/automator/schemas/index.d.ts +5 -0
  43. package/dist/capabilities/automator/schemas/index.d.ts.map +1 -1
  44. package/dist/capabilities/automator/schemas/index.js +6 -4
  45. package/dist/capabilities/automator/schemas/index.js.map +1 -1
  46. package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
  47. package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
  48. package/dist/capabilities/element/handlers/element-handlers.js +383 -0
  49. package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
  50. package/dist/capabilities/element/handlers/index.d.ts +7 -0
  51. package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
  52. package/dist/capabilities/element/handlers/index.js +27 -0
  53. package/dist/capabilities/element/handlers/index.js.map +1 -0
  54. package/dist/capabilities/element/index.d.ts +17 -2
  55. package/dist/capabilities/element/index.d.ts.map +1 -1
  56. package/dist/capabilities/element/index.js +196 -2
  57. package/dist/capabilities/element/index.js.map +1 -1
  58. package/dist/capabilities/element/schemas/index.d.ts +325 -0
  59. package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
  60. package/dist/capabilities/element/schemas/index.js +168 -0
  61. package/dist/capabilities/element/schemas/index.js.map +1 -0
  62. package/dist/capabilities/index.d.ts +23 -4
  63. package/dist/capabilities/index.d.ts.map +1 -1
  64. package/dist/capabilities/index.js +29 -3
  65. package/dist/capabilities/index.js.map +1 -1
  66. package/dist/capabilities/loader.d.ts +61 -0
  67. package/dist/capabilities/loader.d.ts.map +1 -0
  68. package/dist/capabilities/loader.js +164 -0
  69. package/dist/capabilities/loader.js.map +1 -0
  70. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
  71. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
  72. package/dist/capabilities/miniprogram/handlers/call-wx.js +37 -0
  73. package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
  74. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
  75. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
  76. package/dist/capabilities/miniprogram/handlers/evaluate.js +51 -0
  77. package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
  78. package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
  79. package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
  80. package/dist/capabilities/miniprogram/handlers/index.js +12 -0
  81. package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
  82. package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
  83. package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
  84. package/dist/capabilities/miniprogram/handlers/navigate.js +56 -0
  85. package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
  86. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
  87. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
  88. package/dist/capabilities/miniprogram/handlers/page-stack.js +37 -0
  89. package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
  90. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
  91. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
  92. package/dist/capabilities/miniprogram/handlers/screenshot.js +132 -0
  93. package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
  94. package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
  95. package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
  96. package/dist/capabilities/miniprogram/handlers/system-info.js +31 -0
  97. package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
  98. package/dist/capabilities/miniprogram/index.d.ts +12 -2
  99. package/dist/capabilities/miniprogram/index.d.ts.map +1 -1
  100. package/dist/capabilities/miniprogram/index.js +66 -2
  101. package/dist/capabilities/miniprogram/index.js.map +1 -1
  102. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
  103. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
  104. package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
  105. package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
  106. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
  107. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
  108. package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
  109. package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
  110. package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
  111. package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
  112. package/dist/capabilities/miniprogram/schemas/index.js +10 -0
  113. package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
  114. package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
  115. package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
  116. package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
  117. package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
  118. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
  119. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
  120. package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
  121. package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
  122. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
  123. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
  124. package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
  125. package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
  126. package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
  127. package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
  128. package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
  129. package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
  130. package/dist/capabilities/network/handlers/index.d.ts +7 -0
  131. package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
  132. package/dist/capabilities/network/handlers/index.js +7 -0
  133. package/dist/capabilities/network/handlers/index.js.map +1 -0
  134. package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
  135. package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
  136. package/dist/capabilities/network/handlers/network-handlers.js +127 -0
  137. package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
  138. package/dist/capabilities/network/index.d.ts +12 -2
  139. package/dist/capabilities/network/index.d.ts.map +1 -1
  140. package/dist/capabilities/network/index.js +66 -2
  141. package/dist/capabilities/network/index.js.map +1 -1
  142. package/dist/capabilities/network/schemas/index.d.ts +53 -0
  143. package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
  144. package/dist/capabilities/network/schemas/index.js +33 -0
  145. package/dist/capabilities/network/schemas/index.js.map +1 -0
  146. package/dist/capabilities/page/handlers/index.d.ts +7 -0
  147. package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
  148. package/dist/capabilities/page/handlers/index.js +7 -0
  149. package/dist/capabilities/page/handlers/index.js.map +1 -0
  150. package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
  151. package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
  152. package/dist/capabilities/page/handlers/page-handlers.js +258 -0
  153. package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
  154. package/dist/capabilities/page/index.d.ts +12 -2
  155. package/dist/capabilities/page/index.d.ts.map +1 -1
  156. package/dist/capabilities/page/index.js +80 -2
  157. package/dist/capabilities/page/index.js.map +1 -1
  158. package/dist/capabilities/page/schemas/index.d.ts +91 -0
  159. package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
  160. package/dist/capabilities/page/schemas/index.js +55 -0
  161. package/dist/capabilities/page/schemas/index.js.map +1 -0
  162. package/dist/capabilities/record/handlers/index.d.ts +7 -0
  163. package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
  164. package/dist/capabilities/record/handlers/index.js +7 -0
  165. package/dist/capabilities/record/handlers/index.js.map +1 -0
  166. package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
  167. package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
  168. package/dist/capabilities/record/handlers/record-handlers.js +255 -0
  169. package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
  170. package/dist/capabilities/record/index.d.ts +12 -2
  171. package/dist/capabilities/record/index.d.ts.map +1 -1
  172. package/dist/capabilities/record/index.js +66 -2
  173. package/dist/capabilities/record/index.js.map +1 -1
  174. package/dist/capabilities/record/schemas/index.d.ts +47 -0
  175. package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
  176. package/dist/capabilities/record/schemas/index.js +33 -0
  177. package/dist/capabilities/record/schemas/index.js.map +1 -0
  178. package/dist/capabilities/registry.d.ts +138 -0
  179. package/dist/capabilities/registry.d.ts.map +1 -0
  180. package/dist/capabilities/registry.js +261 -0
  181. package/dist/capabilities/registry.js.map +1 -0
  182. package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
  183. package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
  184. package/dist/capabilities/snapshot/handlers/index.js +7 -0
  185. package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
  186. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
  187. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
  188. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
  189. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
  190. package/dist/capabilities/snapshot/index.d.ts +12 -2
  191. package/dist/capabilities/snapshot/index.d.ts.map +1 -1
  192. package/dist/capabilities/snapshot/index.js +45 -2
  193. package/dist/capabilities/snapshot/index.js.map +1 -1
  194. package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
  195. package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
  196. package/dist/capabilities/snapshot/schemas/index.js +28 -0
  197. package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
  198. package/dist/runtime/index.d.ts +2 -1
  199. package/dist/runtime/index.d.ts.map +1 -1
  200. package/dist/runtime/index.js +2 -1
  201. package/dist/runtime/index.js.map +1 -1
  202. package/dist/runtime/logging/tool-logger.js +2 -2
  203. package/dist/runtime/logging/tool-logger.js.map +1 -1
  204. package/dist/runtime/retry/index.d.ts +5 -0
  205. package/dist/runtime/retry/index.d.ts.map +1 -0
  206. package/dist/runtime/retry/index.js +5 -0
  207. package/dist/runtime/retry/index.js.map +1 -0
  208. package/dist/runtime/retry/retry.d.ts +61 -0
  209. package/dist/runtime/retry/retry.d.ts.map +1 -0
  210. package/dist/runtime/retry/retry.js +90 -0
  211. package/dist/runtime/retry/retry.js.map +1 -0
  212. package/dist/runtime/timeout/timeout.d.ts +10 -0
  213. package/dist/runtime/timeout/timeout.d.ts.map +1 -1
  214. package/dist/runtime/timeout/timeout.js +10 -0
  215. package/dist/runtime/timeout/timeout.js.map +1 -1
  216. package/dist/server.js +4 -4
  217. package/dist/server.js.map +1 -1
  218. package/dist/tools/index.d.ts.map +1 -1
  219. package/dist/tools/index.js +7 -3
  220. package/dist/tools/index.js.map +1 -1
  221. package/dist/tools/miniprogram.d.ts +11 -1
  222. package/dist/tools/miniprogram.d.ts.map +1 -1
  223. package/dist/tools/miniprogram.js +102 -20
  224. package/dist/tools/miniprogram.js.map +1 -1
  225. package/docs/current/01-architecture-migration.md +337 -0
  226. package/docs/current/02-screenshot-timeout-fix.md +589 -0
  227. package/docs/current/README.md +226 -0
  228. package/package.json +1 -1
package/README.md CHANGED
@@ -9,12 +9,13 @@ Model Context Protocol (MCP) server for WeChat Mini Program automation using the
9
9
 
10
10
  ## Features
11
11
 
12
- - 🤖 **LLM-Friendly**: 65 AI-optimized tools for natural language automation
13
- - 🎯 **Complete Coverage**: Automator, MiniProgram, Page, Element, Assert, Snapshot, Record, Network tools
14
- - 🔧 **Zero Config**: Auto-detects project path from `project.config.json` or `app.json`
15
- - 📦 **npx Ready**: No installation needed, just `npx -y @creatoria/miniapp-mcp`
16
- - 🧪 **Test Automation**: Built-in assertion and recording capabilities
17
- - 🎨 **TypeScript**: Full type definitions with 545 passing tests
12
+ - **LLM-Friendly**: 65 AI-optimized tools for natural language automation
13
+ - **Complete Coverage**: Automator, MiniProgram, Page, Element, Assert, Snapshot, Record, Network tools
14
+ - **Robust Runtime**: Built-in timeout protection and retry mechanism for all async operations
15
+ - **Zero Config**: Auto-detects project path from `project.config.json` or `app.json`
16
+ - **npx Ready**: No installation needed, just `npx -y @creatoria/miniapp-mcp`
17
+ - **Test Automation**: Built-in assertion and recording capabilities
18
+ - **TypeScript**: Full type definitions with comprehensive test coverage
18
19
 
19
20
  ## Quick Start
20
21
 
@@ -127,107 +128,161 @@ The server automatically searches for mini program projects:
127
128
  <details>
128
129
  <summary><strong>Automator (4 tools)</strong> - Connection & Lifecycle</summary>
129
130
 
130
- - `miniprogram_launch` - Launch WeChat Mini Program
131
- - `miniprogram_connect` - Connect to running DevTools instance
132
- - `miniprogram_disconnect` - Disconnect but keep IDE running
133
- - `miniprogram_close` - Close session and cleanup resources
131
+ | Tool | Description |
132
+ |------|-------------|
133
+ | `miniprogram_launch` | Launch WeChat Mini Program with automator |
134
+ | `miniprogram_connect` | Connect to running DevTools instance |
135
+ | `miniprogram_disconnect` | Disconnect but keep IDE running |
136
+ | `miniprogram_close` | Close session and cleanup resources |
134
137
 
135
138
  </details>
136
139
 
137
140
  <details>
138
141
  <summary><strong>MiniProgram (6 tools)</strong> - App-Level Operations</summary>
139
142
 
140
- - `miniprogram_navigate` - Navigate using navigateTo/redirectTo/reLaunch/switchTab/navigateBack
141
- - `miniprogram_call_wx` - Call WeChat API methods (wx.*)
142
- - `miniprogram_evaluate` - Execute JavaScript in mini program context
143
- - `miniprogram_screenshot` - Take screenshots
144
- - `miniprogram_get_page_stack` - Get current page stack
145
- - `miniprogram_get_system_info` - Get system information
143
+ | Tool | Description |
144
+ |------|-------------|
145
+ | `miniprogram_navigate` | Navigate using navigateTo/redirectTo/reLaunch/switchTab/navigateBack |
146
+ | `miniprogram_call_wx` | Call WeChat API methods (wx.*) |
147
+ | `miniprogram_evaluate` | Execute JavaScript in mini program context |
148
+ | `miniprogram_screenshot` | Take screenshots (supports base64 return and fullPage mode) |
149
+ | `miniprogram_get_page_stack` | Get current page stack |
150
+ | `miniprogram_get_system_info` | Get system information |
146
151
 
147
152
  </details>
148
153
 
149
154
  <details>
150
155
  <summary><strong>Page (8 tools)</strong> - Page-Level Operations</summary>
151
156
 
152
- - `page_query` - Query single element
153
- - `page_query_all` - Query all matching elements
154
- - `page_wait_for` - Wait for condition or selector
155
- - `page_get_data` - Get page data
156
- - `page_set_data` - Set page data
157
- - `page_call_method` - Call page methods
158
- - `page_get_size` - Get page dimensions
159
- - `page_get_scroll_top` - Get scroll position
157
+ | Tool | Description |
158
+ |------|-------------|
159
+ | `page_query` | Query single element |
160
+ | `page_query_all` | Query all matching elements |
161
+ | `page_wait_for` | Wait for condition or selector |
162
+ | `page_get_data` | Get page data |
163
+ | `page_set_data` | Set page data |
164
+ | `page_call_method` | Call page methods |
165
+ | `page_get_size` | Get page dimensions |
166
+ | `page_get_scroll_top` | Get scroll position |
160
167
 
161
168
  </details>
162
169
 
163
170
  <details>
164
171
  <summary><strong>Element (23 tools)</strong> - Element-Level Operations</summary>
165
172
 
166
- - `element_tap` - Tap/click element
167
- - `element_longpress` - Long press element
168
- - `element_input` - Input text (input/textarea)
169
- - `element_get_text` - Get text content
170
- - `element_get_attribute` - Get element attribute
171
- - `element_get_property` - Get element property
172
- - `element_get_value` - Get element value
173
- - `element_trigger` - Trigger custom events
174
- - Component-specific: ScrollView, Swiper, MovableView, Slider methods
173
+ | Tool | Description |
174
+ |------|-------------|
175
+ | `element_tap` | Tap/click element |
176
+ | `element_longpress` | Long press element |
177
+ | `element_input` | Input text (input/textarea) |
178
+ | `element_get_text` | Get text content |
179
+ | `element_get_attribute` | Get element attribute |
180
+ | `element_get_property` | Get element property |
181
+ | `element_get_value` | Get element value |
182
+ | `element_get_size` | Get element size |
183
+ | `element_get_offset` | Get element offset |
184
+ | `element_trigger` | Trigger custom events |
185
+ | `element_get_style` | Get element style |
186
+ | `element_touchstart` | Touch start event |
187
+ | `element_touchmove` | Touch move event |
188
+ | `element_touchend` | Touch end event |
189
+ | `element_scroll_to` | Scroll to position (ScrollView) |
190
+ | `element_scroll_width` | Get scroll width (ScrollView) |
191
+ | `element_scroll_height` | Get scroll height (ScrollView) |
192
+ | `element_swipe_to` | Swipe to index (Swiper) |
193
+ | `element_move_to` | Move to position (MovableView) |
194
+ | `element_slide_to` | Slide to value (Slider) |
195
+ | `element_call_context_method` | Call context method |
196
+ | `element_set_data` | Set data on custom element |
197
+ | `element_call_method` | Call method on custom element |
175
198
 
176
199
  </details>
177
200
 
178
201
  <details>
179
202
  <summary><strong>Assert (9 tools)</strong> - Testing & Verification</summary>
180
203
 
181
- - `assert_exists` - Assert element exists
182
- - `assert_not_exists` - Assert element doesn't exist
183
- - `assert_text` - Assert text equals expected
184
- - `assert_text_contains` - Assert text contains substring
185
- - `assert_value` - Assert value equals expected
186
- - `assert_attribute` - Assert attribute equals expected
187
- - `assert_property` - Assert property equals expected
188
- - `assert_data` - Assert page data equals expected
189
- - `assert_visible` - Assert element is visible
204
+ | Tool | Description |
205
+ |------|-------------|
206
+ | `assert_exists` | Assert element exists |
207
+ | `assert_not_exists` | Assert element doesn't exist |
208
+ | `assert_text` | Assert text equals expected |
209
+ | `assert_text_contains` | Assert text contains substring |
210
+ | `assert_value` | Assert value equals expected |
211
+ | `assert_attribute` | Assert attribute equals expected |
212
+ | `assert_property` | Assert property equals expected |
213
+ | `assert_data` | Assert page data equals expected |
214
+ | `assert_visible` | Assert element is visible |
190
215
 
191
216
  </details>
192
217
 
193
218
  <details>
194
219
  <summary><strong>Snapshot (3 tools)</strong> - State Capture</summary>
195
220
 
196
- - `snapshot_page` - Capture page snapshot (data + screenshot)
197
- - `snapshot_full` - Capture full app snapshot (system + page stack)
198
- - `snapshot_element` - Capture element snapshot
221
+ | Tool | Description |
222
+ |------|-------------|
223
+ | `snapshot_page` | Capture page snapshot (data + screenshot) |
224
+ | `snapshot_full` | Capture full app snapshot (system + page stack) |
225
+ | `snapshot_element` | Capture element snapshot |
199
226
 
200
227
  </details>
201
228
 
202
229
  <details>
203
230
  <summary><strong>Record (6 tools)</strong> - Action Recording</summary>
204
231
 
205
- - `record_start` - Start recording actions
206
- - `record_stop` - Stop and save recording
207
- - `record_list` - List saved recordings
208
- - `record_get` - Get recording details
209
- - `record_delete` - Delete recording
210
- - `record_replay` - Replay recorded actions
232
+ | Tool | Description |
233
+ |------|-------------|
234
+ | `record_start` | Start recording actions |
235
+ | `record_stop` | Stop and save recording |
236
+ | `record_list` | List saved recordings |
237
+ | `record_get` | Get recording details |
238
+ | `record_delete` | Delete recording |
239
+ | `record_replay` | Replay recorded actions |
211
240
 
212
241
  </details>
213
242
 
214
243
  <details>
215
244
  <summary><strong>Network (6 tools)</strong> - Mock & Testing</summary>
216
245
 
217
- - `network_mock_wx_method` - Mock WeChat API methods
218
- - `network_restore_wx_method` - Restore mocked methods
219
- - `network_mock_request` - Mock wx.request responses
220
- - `network_mock_request_failure` - Mock request failures
221
- - `network_restore_request` - Restore wx.request
222
- - `network_restore_all_mocks` - Restore all mocks
246
+ | Tool | Description |
247
+ |------|-------------|
248
+ | `network_mock_wx_method` | Mock WeChat API methods |
249
+ | `network_restore_wx_method` | Restore mocked methods |
250
+ | `network_mock_request` | Mock wx.request responses |
251
+ | `network_mock_request_failure` | Mock request failures |
252
+ | `network_restore_request` | Restore wx.request |
253
+ | `network_restore_all_mocks` | Restore all mocks |
223
254
 
224
255
  </details>
225
256
 
257
+ ## Runtime Features
258
+
259
+ ### Timeout Protection
260
+
261
+ All async operations are protected with configurable timeouts to prevent hanging:
262
+
263
+ | Operation | Default Timeout |
264
+ |-----------|----------------|
265
+ | Navigation | 30s |
266
+ | Screenshot (viewport) | 10s |
267
+ | Screenshot (fullPage) | 30s |
268
+ | wx.* API calls | 10s |
269
+ | Page stack queries | 5s |
270
+ | System info queries | 5s |
271
+ | Element queries | 10s |
272
+ | Wait operations | 30s |
273
+
274
+ ### Retry Mechanism
275
+
276
+ Transient errors are automatically retried with configurable strategies:
277
+ - Default: 2 retries with 1s delay
278
+ - Exponential backoff available
279
+ - Custom retry predicates supported
280
+
226
281
  ## Requirements
227
282
 
228
283
  - **Node.js**: >= 18.0.0
229
284
  - **WeChat DevTools**: [Download](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
230
- - Enable CLI/HTTP calls in Settings Security
285
+ - Enable CLI/HTTP calls in Settings -> Security
231
286
  - Default automation port: 9420
232
287
  - **Mini Program Project**: Any WeChat mini program with `project.config.json` or `app.json`
233
288
 
@@ -239,14 +294,23 @@ The server automatically searches for mini program projects:
239
294
  You: "Launch the mini program and navigate to the product list page"
240
295
 
241
296
  Claude: [Calls miniprogram_connect + miniprogram_navigate]
242
- Connected to DevTools
243
- Navigated to pages/product/list
297
+ Connected to DevTools
298
+ Navigated to pages/product/list
244
299
 
245
300
  You: "Find the first product title and verify it contains 'iPhone'"
246
301
 
247
302
  Claude: [Calls page_query + element_get_text + assert_text_contains]
248
- Found element with text: "iPhone 15 Pro"
249
- Assertion passed: text contains "iPhone"
303
+ Found element with text: "iPhone 15 Pro"
304
+ Assertion passed: text contains "iPhone"
305
+ ```
306
+
307
+ ### Screenshot with Base64 Return
308
+
309
+ ```
310
+ You: "Take a screenshot and show me what the page looks like"
311
+
312
+ Claude: [Calls miniprogram_screenshot with returnBase64=true]
313
+ Screenshot captured successfully (base64 returned directly)
250
314
  ```
251
315
 
252
316
  ### Programmatic Usage
@@ -266,16 +330,6 @@ See [examples/](./examples/) directory for complete workflows:
266
330
  - [Runtime Skeleton Mapping](./docs/migration/runtime-skeleton.md)
267
331
  - [Tool Schema Strategy](./docs/migration/tool-schema-strategy.md)
268
332
  - [Troubleshooting](./docs/troubleshooting.md) - Common issues and solutions
269
- - [完整实现方案](./docs/完整实现方案.md) - Detailed implementation blueprint (ZH)
270
- - [微信小程序自动化完整操作手册](./docs/微信小程序自动化完整操作手册.md) - Official automation guidance (ZH)
271
-
272
- ## Migration Planning
273
-
274
- - Active branch: `migration-structure-prep`
275
- - Current focus: stabilize 0.1.x while reshaping runtime/app/capability layers
276
- - Task tracking: `.llm/task_cards/`, latest status in `.llm/state.json`
277
- - Schema generation: `pnpm generate:schemas`(根据 Zod schema 生成工具 JSON Schema)
278
- - Runtime layout: 详见 `docs/migration/runtime-skeleton.md`
279
333
 
280
334
  ## Development
281
335
 
@@ -314,4 +368,4 @@ MIT License - see [LICENSE](./LICENSE) file for details.
314
368
 
315
369
  ---
316
370
 
317
- Made with ❤️ for the WeChat Mini Program developer community
371
+ Made with love for the WeChat Mini Program developer community
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Assert handlers - Testing and verification utilities
3
+ */
4
+ import type { SessionState } from '../../../types.js';
5
+ export interface AssertExistsArgs {
6
+ selector: string;
7
+ pagePath?: string;
8
+ }
9
+ export interface AssertExistsResult {
10
+ success: boolean;
11
+ message: string;
12
+ }
13
+ export declare function assertExists(session: SessionState, args: AssertExistsArgs): Promise<AssertExistsResult>;
14
+ export interface AssertNotExistsArgs {
15
+ selector: string;
16
+ pagePath?: string;
17
+ }
18
+ export interface AssertNotExistsResult {
19
+ success: boolean;
20
+ message: string;
21
+ }
22
+ export declare function assertNotExists(session: SessionState, args: AssertNotExistsArgs): Promise<AssertNotExistsResult>;
23
+ export interface AssertTextArgs {
24
+ refId: string;
25
+ expected: string;
26
+ }
27
+ export interface AssertTextResult {
28
+ success: boolean;
29
+ message: string;
30
+ actual: string;
31
+ }
32
+ export declare function assertText(session: SessionState, args: AssertTextArgs): Promise<AssertTextResult>;
33
+ export interface AssertTextContainsArgs {
34
+ refId: string;
35
+ expected: string;
36
+ }
37
+ export interface AssertTextContainsResult {
38
+ success: boolean;
39
+ message: string;
40
+ actual: string;
41
+ }
42
+ export declare function assertTextContains(session: SessionState, args: AssertTextContainsArgs): Promise<AssertTextContainsResult>;
43
+ export interface AssertValueArgs {
44
+ refId: string;
45
+ expected: string;
46
+ }
47
+ export interface AssertValueResult {
48
+ success: boolean;
49
+ message: string;
50
+ actual: string;
51
+ }
52
+ export declare function assertValue(session: SessionState, args: AssertValueArgs): Promise<AssertValueResult>;
53
+ export interface AssertAttributeArgs {
54
+ refId: string;
55
+ name: string;
56
+ expected: string;
57
+ }
58
+ export interface AssertAttributeResult {
59
+ success: boolean;
60
+ message: string;
61
+ actual: string;
62
+ }
63
+ export declare function assertAttribute(session: SessionState, args: AssertAttributeArgs): Promise<AssertAttributeResult>;
64
+ export interface AssertPropertyArgs {
65
+ refId: string;
66
+ name: string;
67
+ expected: any;
68
+ }
69
+ export interface AssertPropertyResult {
70
+ success: boolean;
71
+ message: string;
72
+ actual: any;
73
+ }
74
+ export declare function assertProperty(session: SessionState, args: AssertPropertyArgs): Promise<AssertPropertyResult>;
75
+ export interface AssertDataArgs {
76
+ path?: string;
77
+ expected: any;
78
+ pagePath?: string;
79
+ }
80
+ export interface AssertDataResult {
81
+ success: boolean;
82
+ message: string;
83
+ actual: any;
84
+ }
85
+ export declare function assertData(session: SessionState, args: AssertDataArgs): Promise<AssertDataResult>;
86
+ export interface AssertVisibleArgs {
87
+ refId: string;
88
+ }
89
+ export interface AssertVisibleResult {
90
+ success: boolean;
91
+ message: string;
92
+ size: {
93
+ width: number;
94
+ height: number;
95
+ };
96
+ }
97
+ export declare function assertVisible(session: SessionState, args: AssertVisibleArgs): Promise<AssertVisibleResult>;
98
+ //# sourceMappingURL=assert-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-handlers.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/assert/handlers/assert-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Assert handlers - Testing and verification utilities
3
+ */
4
+ import { query, getData } from '../../page/handlers/index.js';
5
+ import { getText, getValue, getAttribute, getProperty, getSize } from '../../element/handlers/index.js';
6
+ export async function assertExists(session, args) {
7
+ const { selector, pagePath } = args;
8
+ const logger = session.logger;
9
+ try {
10
+ logger?.info('Asserting element exists', { selector, pagePath });
11
+ const result = await query(session, { selector, pagePath, save: false });
12
+ if (!result.exists) {
13
+ throw new Error(`Assertion failed: Element not found with selector: ${selector}`);
14
+ }
15
+ logger?.info('Element exists assertion passed', { selector });
16
+ return { success: true, message: `Element exists: ${selector}` };
17
+ }
18
+ catch (error) {
19
+ const errorMessage = error instanceof Error ? error.message : String(error);
20
+ logger?.error('Element exists assertion failed', { error: errorMessage, selector });
21
+ throw new Error(`Assertion failed: ${errorMessage}`);
22
+ }
23
+ }
24
+ export async function assertNotExists(session, args) {
25
+ const { selector, pagePath } = args;
26
+ const logger = session.logger;
27
+ try {
28
+ logger?.info('Asserting element does not exist', { selector, pagePath });
29
+ const result = await query(session, { selector, pagePath, save: false });
30
+ if (result.exists) {
31
+ throw new Error(`Assertion failed: Element should not exist but found with selector: ${selector}`);
32
+ }
33
+ logger?.info('Element not exists assertion passed', { selector });
34
+ return { success: true, message: `Element does not exist: ${selector}` };
35
+ }
36
+ catch (error) {
37
+ const errorMessage = error instanceof Error ? error.message : String(error);
38
+ if (errorMessage.includes('Element not found')) {
39
+ logger?.info('Element not exists assertion passed', { selector });
40
+ return { success: true, message: `Element does not exist: ${selector}` };
41
+ }
42
+ logger?.error('Element not exists assertion failed', { error: errorMessage, selector });
43
+ throw new Error(`Assertion failed: ${errorMessage}`);
44
+ }
45
+ }
46
+ export async function assertText(session, args) {
47
+ const { refId, expected } = args;
48
+ const logger = session.logger;
49
+ try {
50
+ logger?.info('Asserting element text', { refId, expected });
51
+ const result = await getText(session, { refId });
52
+ const actual = result.text;
53
+ if (actual !== expected) {
54
+ throw new Error(`Assertion failed: Text mismatch. Expected: "${expected}", Actual: "${actual}"`);
55
+ }
56
+ logger?.info('Text assertion passed', { refId, expected, actual });
57
+ return { success: true, message: `Text matches: "${expected}"`, actual };
58
+ }
59
+ catch (error) {
60
+ const errorMessage = error instanceof Error ? error.message : String(error);
61
+ logger?.error('Text assertion failed', { error: errorMessage, refId, expected });
62
+ throw new Error(`Assertion failed: ${errorMessage}`);
63
+ }
64
+ }
65
+ export async function assertTextContains(session, args) {
66
+ const { refId, expected } = args;
67
+ const logger = session.logger;
68
+ try {
69
+ logger?.info('Asserting element text contains', { refId, expected });
70
+ const result = await getText(session, { refId });
71
+ const actual = result.text;
72
+ if (!actual.includes(expected)) {
73
+ throw new Error(`Assertion failed: Text does not contain expected substring. Expected to contain: "${expected}", Actual: "${actual}"`);
74
+ }
75
+ logger?.info('Text contains assertion passed', { refId, expected, actual });
76
+ return { success: true, message: `Text contains: "${expected}"`, actual };
77
+ }
78
+ catch (error) {
79
+ const errorMessage = error instanceof Error ? error.message : String(error);
80
+ logger?.error('Text contains assertion failed', { error: errorMessage, refId, expected });
81
+ throw new Error(`Assertion failed: ${errorMessage}`);
82
+ }
83
+ }
84
+ export async function assertValue(session, args) {
85
+ const { refId, expected } = args;
86
+ const logger = session.logger;
87
+ try {
88
+ logger?.info('Asserting element value', { refId, expected });
89
+ const result = await getValue(session, { refId });
90
+ const actual = result.value;
91
+ if (actual !== expected) {
92
+ throw new Error(`Assertion failed: Value mismatch. Expected: "${expected}", Actual: "${actual}"`);
93
+ }
94
+ logger?.info('Value assertion passed', { refId, expected, actual });
95
+ return { success: true, message: `Value matches: "${expected}"`, actual };
96
+ }
97
+ catch (error) {
98
+ const errorMessage = error instanceof Error ? error.message : String(error);
99
+ logger?.error('Value assertion failed', { error: errorMessage, refId, expected });
100
+ throw new Error(`Assertion failed: ${errorMessage}`);
101
+ }
102
+ }
103
+ export async function assertAttribute(session, args) {
104
+ const { refId, name, expected } = args;
105
+ const logger = session.logger;
106
+ try {
107
+ logger?.info('Asserting element attribute', { refId, name, expected });
108
+ const result = await getAttribute(session, { refId, name });
109
+ const actual = result.value;
110
+ if (actual !== expected) {
111
+ throw new Error(`Assertion failed: Attribute "${name}" mismatch. Expected: "${expected}", Actual: "${actual}"`);
112
+ }
113
+ logger?.info('Attribute assertion passed', { refId, name, expected, actual });
114
+ return { success: true, message: `Attribute "${name}" matches: "${expected}"`, actual: actual ?? '' };
115
+ }
116
+ catch (error) {
117
+ const errorMessage = error instanceof Error ? error.message : String(error);
118
+ logger?.error('Attribute assertion failed', { error: errorMessage, refId, name, expected });
119
+ throw new Error(`Assertion failed: ${errorMessage}`);
120
+ }
121
+ }
122
+ export async function assertProperty(session, args) {
123
+ const { refId, name, expected } = args;
124
+ const logger = session.logger;
125
+ try {
126
+ logger?.info('Asserting element property', { refId, name, expected });
127
+ const result = await getProperty(session, { refId, name });
128
+ const actual = result.value;
129
+ if (JSON.stringify(actual) !== JSON.stringify(expected)) {
130
+ throw new Error(`Assertion failed: Property "${name}" mismatch. Expected: ${JSON.stringify(expected)}, Actual: ${JSON.stringify(actual)}`);
131
+ }
132
+ logger?.info('Property assertion passed', { refId, name, expected, actual });
133
+ return { success: true, message: `Property "${name}" matches`, actual };
134
+ }
135
+ catch (error) {
136
+ const errorMessage = error instanceof Error ? error.message : String(error);
137
+ logger?.error('Property assertion failed', { error: errorMessage, refId, name, expected });
138
+ throw new Error(`Assertion failed: ${errorMessage}`);
139
+ }
140
+ }
141
+ export async function assertData(session, args) {
142
+ const { path, expected, pagePath } = args;
143
+ const logger = session.logger;
144
+ try {
145
+ logger?.info('Asserting page data', { path, expected, pagePath });
146
+ const result = await getData(session, { path, pagePath });
147
+ const actual = result.data;
148
+ if (JSON.stringify(actual) !== JSON.stringify(expected)) {
149
+ throw new Error(`Assertion failed: Page data${path ? ` at path "${path}"` : ''} mismatch. Expected: ${JSON.stringify(expected)}, Actual: ${JSON.stringify(actual)}`);
150
+ }
151
+ logger?.info('Data assertion passed', { path, expected, actual, pagePath });
152
+ return { success: true, message: `Page data${path ? ` at "${path}"` : ''} matches`, actual };
153
+ }
154
+ catch (error) {
155
+ const errorMessage = error instanceof Error ? error.message : String(error);
156
+ logger?.error('Data assertion failed', { error: errorMessage, path, expected, pagePath });
157
+ throw new Error(`Assertion failed: ${errorMessage}`);
158
+ }
159
+ }
160
+ export async function assertVisible(session, args) {
161
+ const { refId } = args;
162
+ const logger = session.logger;
163
+ try {
164
+ logger?.info('Asserting element is visible', { refId });
165
+ const result = await getSize(session, { refId });
166
+ const size = result.size;
167
+ if (!size || size.width === 0 || size.height === 0) {
168
+ throw new Error(`Assertion failed: Element is not visible. Size: ${JSON.stringify(size)}`);
169
+ }
170
+ logger?.info('Visible assertion passed', { refId, size });
171
+ return { success: true, message: `Element is visible`, size };
172
+ }
173
+ catch (error) {
174
+ const errorMessage = error instanceof Error ? error.message : String(error);
175
+ logger?.error('Visible assertion failed', { error: errorMessage, refId });
176
+ throw new Error(`Assertion failed: ${errorMessage}`);
177
+ }
178
+ }
179
+ //# sourceMappingURL=assert-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-handlers.js","sourceRoot":"","sources":["../../../../src/capabilities/assert/handlers/assert-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAgBvG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB,EAAE,IAAsB;IAC9E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAExE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,sDAAsD,QAAQ,EAAE,CAAC,CAAA;QACnF,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB,EAAE,IAAyB;IACpF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAExE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAExE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,uEAAuE,QAAQ,EAAE,CAAC,CAAA;QACpG,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,QAAQ,EAAE,EAAE,CAAA;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE3E,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,QAAQ,EAAE,EAAE,CAAA;QAC1E,CAAC;QAED,MAAM,EAAE,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAqB,EAAE,IAAoB;IAC1E,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QAE1B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,eAAe,MAAM,GAAG,CAAC,CAAA;QAClG,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAA;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAqB,EAAE,IAA4B;IAC1F,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QAE1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qFAAqF,QAAQ,eAAe,MAAM,GAAG,CAAC,CAAA;QACxI,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAA;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAqB,EAAE,IAAqB;IAC5E,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE5D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAE3B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,eAAe,MAAM,GAAG,CAAC,CAAA;QACnG,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAA;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACjF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB,EAAE,IAAyB;IACpF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAE3B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,0BAA0B,QAAQ,eAAe,MAAM,GAAG,CAAC,CAAA;QACjH,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,IAAI,eAAe,QAAQ,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAA;IACvG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3F,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAqB,EAAE,IAAwB;IAClF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAErE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5I,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,EAAE,CAAA;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC1F,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAqB,EAAE,IAAoB;IAC1E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QAE1B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,wBAAwB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtK,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzF,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAqB,EAAE,IAAuB;IAChF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAExB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,EAAE,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Assert handlers exports
3
+ *
4
+ * All 9 handlers are now independently implemented in this directory.
5
+ */
6
+ export { assertExists, assertNotExists, assertText, assertTextContains, assertValue, assertAttribute, assertProperty, assertData, assertVisible, type AssertExistsArgs, type AssertExistsResult, type AssertNotExistsArgs, type AssertNotExistsResult, type AssertTextArgs, type AssertTextResult, type AssertTextContainsArgs, type AssertTextContainsResult, type AssertValueArgs, type AssertValueResult, type AssertAttributeArgs, type AssertAttributeResult, type AssertPropertyArgs, type AssertPropertyResult, type AssertDataArgs, type AssertDataResult, type AssertVisibleArgs, type AssertVisibleResult, } from './assert-handlers.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/assert/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Assert handlers exports
3
+ *
4
+ * All 9 handlers are now independently implemented in this directory.
5
+ */
6
+ export { assertExists, assertNotExists, assertText, assertTextContains, assertValue, assertAttribute, assertProperty, assertData, assertVisible, } from './assert-handlers.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/assert/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,GAmBd,MAAM,sBAAsB,CAAA"}
@@ -1,5 +1,15 @@
1
1
  /**
2
- * Assert capability bridge to legacy tool implementations.
2
+ * Assert Capability Module
3
+ *
4
+ * Provides tools for testing and verification including element assertions,
5
+ * text validation, attribute/property checks, and data assertions.
3
6
  */
4
- export * from '../../tools/assert.js';
7
+ import type { CapabilityModule } from '../registry.js';
8
+ export * from './schemas/index.js';
9
+ export * from './handlers/index.js';
10
+ /**
11
+ * Assert capability module
12
+ */
13
+ export declare const capability: CapabilityModule;
14
+ export default capability;
5
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/assert/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/assert/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AAyBtE,cAAc,oBAAoB,CAAA;AAGlC,cAAc,qBAAqB,CAAA;AAuEnC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA;AAED,eAAe,UAAU,CAAA"}