@xiuchang-midscene/shared 2.0.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 (382) hide show
  1. package/README.md +9 -0
  2. package/dist/es/baseDB.mjs +109 -0
  3. package/dist/es/baseDB.mjs.bak +109 -0
  4. package/dist/es/build/copy-static.mjs +31 -0
  5. package/dist/es/build/copy-static.mjs.bak +31 -0
  6. package/dist/es/build/rspack-config.mjs +4 -0
  7. package/dist/es/build/rspack-config.mjs.bak +4 -0
  8. package/dist/es/cli/cli-runner.mjs +140 -0
  9. package/dist/es/cli/cli-runner.mjs.bak +140 -0
  10. package/dist/es/cli/index.mjs +2 -0
  11. package/dist/es/cli/index.mjs.bak +2 -0
  12. package/dist/es/common.mjs +37 -0
  13. package/dist/es/common.mjs.bak +37 -0
  14. package/dist/es/constants/example-code.mjs +223 -0
  15. package/dist/es/constants/example-code.mjs.bak +223 -0
  16. package/dist/es/constants/index.mjs +23 -0
  17. package/dist/es/constants/index.mjs.bak +23 -0
  18. package/dist/es/env/basic.mjs +6 -0
  19. package/dist/es/env/basic.mjs.bak +6 -0
  20. package/dist/es/env/constants.mjs +70 -0
  21. package/dist/es/env/constants.mjs.bak +70 -0
  22. package/dist/es/env/global-config-manager.mjs +94 -0
  23. package/dist/es/env/global-config-manager.mjs.bak +94 -0
  24. package/dist/es/env/helper.mjs +43 -0
  25. package/dist/es/env/helper.mjs.bak +43 -0
  26. package/dist/es/env/index.mjs +5 -0
  27. package/dist/es/env/index.mjs.bak +5 -0
  28. package/dist/es/env/init-debug.mjs +18 -0
  29. package/dist/es/env/init-debug.mjs.bak +18 -0
  30. package/dist/es/env/model-config-manager.mjs +79 -0
  31. package/dist/es/env/model-config-manager.mjs.bak +79 -0
  32. package/dist/es/env/parse-model-config.mjs +132 -0
  33. package/dist/es/env/parse-model-config.mjs.bak +132 -0
  34. package/dist/es/env/types.mjs +220 -0
  35. package/dist/es/env/types.mjs.bak +220 -0
  36. package/dist/es/env/utils.mjs +26 -0
  37. package/dist/es/env/utils.mjs.bak +26 -0
  38. package/dist/es/extractor/constants.mjs +2 -0
  39. package/dist/es/extractor/constants.mjs.bak +2 -0
  40. package/dist/es/extractor/debug.mjs +6 -0
  41. package/dist/es/extractor/debug.mjs.bak +6 -0
  42. package/dist/es/extractor/dom-util.mjs +92 -0
  43. package/dist/es/extractor/dom-util.mjs.bak +92 -0
  44. package/dist/es/extractor/index.mjs +5 -0
  45. package/dist/es/extractor/index.mjs.bak +5 -0
  46. package/dist/es/extractor/locator.mjs +250 -0
  47. package/dist/es/extractor/locator.mjs.bak +250 -0
  48. package/dist/es/extractor/tree.mjs +78 -0
  49. package/dist/es/extractor/tree.mjs.bak +78 -0
  50. package/dist/es/extractor/util.mjs +245 -0
  51. package/dist/es/extractor/util.mjs.bak +245 -0
  52. package/dist/es/extractor/web-extractor.mjs +303 -0
  53. package/dist/es/extractor/web-extractor.mjs.bak +303 -0
  54. package/dist/es/img/box-select.mjs +824 -0
  55. package/dist/es/img/box-select.mjs.bak +824 -0
  56. package/dist/es/img/canvas-fallback.mjs +238 -0
  57. package/dist/es/img/canvas-fallback.mjs.bak +238 -0
  58. package/dist/es/img/get-photon.mjs +45 -0
  59. package/dist/es/img/get-photon.mjs.bak +45 -0
  60. package/dist/es/img/get-sharp.mjs +11 -0
  61. package/dist/es/img/get-sharp.mjs.bak +11 -0
  62. package/dist/es/img/index.mjs +4 -0
  63. package/dist/es/img/index.mjs.bak +4 -0
  64. package/dist/es/img/info.mjs +29 -0
  65. package/dist/es/img/info.mjs.bak +29 -0
  66. package/dist/es/img/transform.mjs +295 -0
  67. package/dist/es/img/transform.mjs.bak +295 -0
  68. package/dist/es/index.mjs +4 -0
  69. package/dist/es/index.mjs.bak +4 -0
  70. package/dist/es/logger.mjs +64 -0
  71. package/dist/es/logger.mjs.bak +64 -0
  72. package/dist/es/mcp/base-server.mjs +281 -0
  73. package/dist/es/mcp/base-server.mjs.bak +281 -0
  74. package/dist/es/mcp/base-tools.mjs +91 -0
  75. package/dist/es/mcp/base-tools.mjs.bak +91 -0
  76. package/dist/es/mcp/chrome-path.mjs +35 -0
  77. package/dist/es/mcp/chrome-path.mjs.bak +35 -0
  78. package/dist/es/mcp/index.mjs +7 -0
  79. package/dist/es/mcp/index.mjs.bak +7 -0
  80. package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
  81. package/dist/es/mcp/inject-report-html-plugin.mjs.bak +53 -0
  82. package/dist/es/mcp/launcher-helper.mjs +52 -0
  83. package/dist/es/mcp/launcher-helper.mjs.bak +52 -0
  84. package/dist/es/mcp/tool-generator.mjs +297 -0
  85. package/dist/es/mcp/tool-generator.mjs.bak +297 -0
  86. package/dist/es/mcp/types.mjs +3 -0
  87. package/dist/es/mcp/types.mjs.bak +3 -0
  88. package/dist/es/node/fs.mjs +44 -0
  89. package/dist/es/node/fs.mjs.bak +44 -0
  90. package/dist/es/node/index.mjs +2 -0
  91. package/dist/es/node/index.mjs.bak +2 -0
  92. package/dist/es/node/port.mjs +24 -0
  93. package/dist/es/node/port.mjs.bak +24 -0
  94. package/dist/es/oss/demo.mjs +30 -0
  95. package/dist/es/oss/demo.mjs.bak +30 -0
  96. package/dist/es/oss/index.mjs +90 -0
  97. package/dist/es/oss/index.mjs.bak +90 -0
  98. package/dist/es/polyfills/async-hooks.mjs +2 -0
  99. package/dist/es/polyfills/async-hooks.mjs.bak +2 -0
  100. package/dist/es/polyfills/index.mjs +1 -0
  101. package/dist/es/polyfills/index.mjs.bak +1 -0
  102. package/dist/es/types/index.mjs +3 -0
  103. package/dist/es/types/index.mjs.bak +3 -0
  104. package/dist/es/us-keyboard-layout.mjs +1414 -0
  105. package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
  106. package/dist/es/us-keyboard-layout.mjs.bak +1414 -0
  107. package/dist/es/utils.mjs +72 -0
  108. package/dist/es/utils.mjs.bak +72 -0
  109. package/dist/es/zod-schema-utils.mjs +54 -0
  110. package/dist/es/zod-schema-utils.mjs.bak +54 -0
  111. package/dist/lib/baseDB.js +149 -0
  112. package/dist/lib/baseDB.js.bak +149 -0
  113. package/dist/lib/build/copy-static.js +79 -0
  114. package/dist/lib/build/copy-static.js.bak +79 -0
  115. package/dist/lib/build/rspack-config.js +38 -0
  116. package/dist/lib/build/rspack-config.js.bak +38 -0
  117. package/dist/lib/cli/cli-runner.js +196 -0
  118. package/dist/lib/cli/cli-runner.js.bak +196 -0
  119. package/dist/lib/cli/index.js +48 -0
  120. package/dist/lib/cli/index.js.bak +48 -0
  121. package/dist/lib/common.js +93 -0
  122. package/dist/lib/common.js.bak +93 -0
  123. package/dist/lib/constants/example-code.js +260 -0
  124. package/dist/lib/constants/example-code.js.bak +260 -0
  125. package/dist/lib/constants/index.js +96 -0
  126. package/dist/lib/constants/index.js.bak +96 -0
  127. package/dist/lib/env/basic.js +40 -0
  128. package/dist/lib/env/basic.js.bak +40 -0
  129. package/dist/lib/env/constants.js +113 -0
  130. package/dist/lib/env/constants.js.bak +113 -0
  131. package/dist/lib/env/global-config-manager.js +128 -0
  132. package/dist/lib/env/global-config-manager.js.bak +128 -0
  133. package/dist/lib/env/helper.js +80 -0
  134. package/dist/lib/env/helper.js.bak +80 -0
  135. package/dist/lib/env/index.js +90 -0
  136. package/dist/lib/env/index.js.bak +90 -0
  137. package/dist/lib/env/init-debug.js +52 -0
  138. package/dist/lib/env/init-debug.js.bak +52 -0
  139. package/dist/lib/env/model-config-manager.js +113 -0
  140. package/dist/lib/env/model-config-manager.js.bak +113 -0
  141. package/dist/lib/env/parse-model-config.js +178 -0
  142. package/dist/lib/env/parse-model-config.js.bak +178 -0
  143. package/dist/lib/env/types.js +554 -0
  144. package/dist/lib/env/types.js.bak +554 -0
  145. package/dist/lib/env/utils.js +72 -0
  146. package/dist/lib/env/utils.js.bak +72 -0
  147. package/dist/lib/extractor/constants.js +42 -0
  148. package/dist/lib/extractor/constants.js.bak +42 -0
  149. package/dist/lib/extractor/debug.js +12 -0
  150. package/dist/lib/extractor/debug.js.bak +12 -0
  151. package/dist/lib/extractor/dom-util.js +153 -0
  152. package/dist/lib/extractor/dom-util.js.bak +153 -0
  153. package/dist/lib/extractor/index.js +81 -0
  154. package/dist/lib/extractor/index.js.bak +81 -0
  155. package/dist/lib/extractor/locator.js +296 -0
  156. package/dist/lib/extractor/locator.js.bak +296 -0
  157. package/dist/lib/extractor/tree.js +124 -0
  158. package/dist/lib/extractor/tree.js.bak +124 -0
  159. package/dist/lib/extractor/util.js +336 -0
  160. package/dist/lib/extractor/util.js.bak +336 -0
  161. package/dist/lib/extractor/web-extractor.js +349 -0
  162. package/dist/lib/extractor/web-extractor.js.bak +349 -0
  163. package/dist/lib/img/box-select.js +875 -0
  164. package/dist/lib/img/box-select.js.bak +875 -0
  165. package/dist/lib/img/canvas-fallback.js +305 -0
  166. package/dist/lib/img/canvas-fallback.js.bak +305 -0
  167. package/dist/lib/img/get-photon.js +82 -0
  168. package/dist/lib/img/get-photon.js.bak +82 -0
  169. package/dist/lib/img/get-sharp.js +45 -0
  170. package/dist/lib/img/get-sharp.js.bak +45 -0
  171. package/dist/lib/img/index.js +95 -0
  172. package/dist/lib/img/index.js.bak +95 -0
  173. package/dist/lib/img/info.js +83 -0
  174. package/dist/lib/img/info.js.bak +83 -0
  175. package/dist/lib/img/transform.js +387 -0
  176. package/dist/lib/img/transform.js.bak +387 -0
  177. package/dist/lib/index.js +47 -0
  178. package/dist/lib/index.js.bak +47 -0
  179. package/dist/lib/logger.js +114 -0
  180. package/dist/lib/logger.js.bak +114 -0
  181. package/dist/lib/mcp/base-server.js +331 -0
  182. package/dist/lib/mcp/base-server.js.bak +331 -0
  183. package/dist/lib/mcp/base-tools.js +125 -0
  184. package/dist/lib/mcp/base-tools.js.bak +125 -0
  185. package/dist/lib/mcp/chrome-path.js +72 -0
  186. package/dist/lib/mcp/chrome-path.js.bak +72 -0
  187. package/dist/lib/mcp/index.js +100 -0
  188. package/dist/lib/mcp/index.js.bak +100 -0
  189. package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
  190. package/dist/lib/mcp/inject-report-html-plugin.js.bak +98 -0
  191. package/dist/lib/mcp/launcher-helper.js +86 -0
  192. package/dist/lib/mcp/launcher-helper.js.bak +86 -0
  193. package/dist/lib/mcp/tool-generator.js +334 -0
  194. package/dist/lib/mcp/tool-generator.js.bak +334 -0
  195. package/dist/lib/mcp/types.js +40 -0
  196. package/dist/lib/mcp/types.js.bak +40 -0
  197. package/dist/lib/node/fs.js +97 -0
  198. package/dist/lib/node/fs.js.bak +97 -0
  199. package/dist/lib/node/index.js +65 -0
  200. package/dist/lib/node/index.js.bak +65 -0
  201. package/dist/lib/node/port.js +61 -0
  202. package/dist/lib/node/port.js.bak +61 -0
  203. package/dist/lib/oss/demo.js +36 -0
  204. package/dist/lib/oss/demo.js.bak +36 -0
  205. package/dist/lib/oss/index.js +138 -0
  206. package/dist/lib/oss/index.js.bak +138 -0
  207. package/dist/lib/polyfills/async-hooks.js +36 -0
  208. package/dist/lib/polyfills/async-hooks.js.bak +36 -0
  209. package/dist/lib/polyfills/index.js +58 -0
  210. package/dist/lib/polyfills/index.js.bak +58 -0
  211. package/dist/lib/types/index.js +37 -0
  212. package/dist/lib/types/index.js.bak +37 -0
  213. package/dist/lib/us-keyboard-layout.js +1457 -0
  214. package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
  215. package/dist/lib/us-keyboard-layout.js.bak +1457 -0
  216. package/dist/lib/utils.js +148 -0
  217. package/dist/lib/utils.js.bak +148 -0
  218. package/dist/lib/zod-schema-utils.js +97 -0
  219. package/dist/lib/zod-schema-utils.js.bak +97 -0
  220. package/dist/types/baseDB.d.ts +25 -0
  221. package/dist/types/baseDB.d.ts.bak +25 -0
  222. package/dist/types/build/copy-static.d.ts +31 -0
  223. package/dist/types/build/copy-static.d.ts.bak +31 -0
  224. package/dist/types/build/rspack-config.d.ts +8 -0
  225. package/dist/types/build/rspack-config.d.ts.bak +8 -0
  226. package/dist/types/cli/cli-runner.d.ts +14 -0
  227. package/dist/types/cli/cli-runner.d.ts.bak +14 -0
  228. package/dist/types/cli/index.d.ts +2 -0
  229. package/dist/types/cli/index.d.ts.bak +2 -0
  230. package/dist/types/common.d.ts +12 -0
  231. package/dist/types/common.d.ts.bak +12 -0
  232. package/dist/types/constants/example-code.d.ts +2 -0
  233. package/dist/types/constants/example-code.d.ts.bak +2 -0
  234. package/dist/types/constants/index.d.ts +21 -0
  235. package/dist/types/constants/index.d.ts.bak +21 -0
  236. package/dist/types/env/basic.d.ts +6 -0
  237. package/dist/types/env/basic.d.ts.bak +6 -0
  238. package/dist/types/env/constants.d.ts +40 -0
  239. package/dist/types/env/constants.d.ts.bak +40 -0
  240. package/dist/types/env/global-config-manager.d.ts +32 -0
  241. package/dist/types/env/global-config-manager.d.ts.bak +32 -0
  242. package/dist/types/env/helper.d.ts +4 -0
  243. package/dist/types/env/helper.d.ts.bak +4 -0
  244. package/dist/types/env/index.d.ts +4 -0
  245. package/dist/types/env/index.d.ts.bak +4 -0
  246. package/dist/types/env/init-debug.d.ts +1 -0
  247. package/dist/types/env/init-debug.d.ts.bak +1 -0
  248. package/dist/types/env/model-config-manager.d.ts +25 -0
  249. package/dist/types/env/model-config-manager.d.ts.bak +25 -0
  250. package/dist/types/env/parse-model-config.d.ts +31 -0
  251. package/dist/types/env/parse-model-config.d.ts.bak +31 -0
  252. package/dist/types/env/types.d.ts +318 -0
  253. package/dist/types/env/types.d.ts.bak +318 -0
  254. package/dist/types/env/utils.d.ts +38 -0
  255. package/dist/types/env/utils.d.ts.bak +38 -0
  256. package/dist/types/extractor/constants.d.ts +1 -0
  257. package/dist/types/extractor/constants.d.ts.bak +1 -0
  258. package/dist/types/extractor/debug.d.ts +1 -0
  259. package/dist/types/extractor/debug.d.ts.bak +1 -0
  260. package/dist/types/extractor/dom-util.d.ts +56 -0
  261. package/dist/types/extractor/dom-util.d.ts.bak +56 -0
  262. package/dist/types/extractor/index.d.ts +32 -0
  263. package/dist/types/extractor/index.d.ts.bak +32 -0
  264. package/dist/types/extractor/locator.d.ts +9 -0
  265. package/dist/types/extractor/locator.d.ts.bak +9 -0
  266. package/dist/types/extractor/tree.d.ts +6 -0
  267. package/dist/types/extractor/tree.d.ts.bak +6 -0
  268. package/dist/types/extractor/util.d.ts +47 -0
  269. package/dist/types/extractor/util.d.ts.bak +47 -0
  270. package/dist/types/extractor/web-extractor.d.ts +19 -0
  271. package/dist/types/extractor/web-extractor.d.ts.bak +19 -0
  272. package/dist/types/img/box-select.d.ts +26 -0
  273. package/dist/types/img/box-select.d.ts.bak +26 -0
  274. package/dist/types/img/canvas-fallback.d.ts +105 -0
  275. package/dist/types/img/canvas-fallback.d.ts.bak +105 -0
  276. package/dist/types/img/get-photon.d.ts +19 -0
  277. package/dist/types/img/get-photon.d.ts.bak +19 -0
  278. package/dist/types/img/get-sharp.d.ts +3 -0
  279. package/dist/types/img/get-sharp.d.ts.bak +3 -0
  280. package/dist/types/img/index.d.ts +3 -0
  281. package/dist/types/img/index.d.ts.bak +3 -0
  282. package/dist/types/img/info.d.ts +29 -0
  283. package/dist/types/img/info.d.ts.bak +29 -0
  284. package/dist/types/img/transform.d.ts +107 -0
  285. package/dist/types/img/transform.d.ts.bak +107 -0
  286. package/dist/types/index.d.ts +4 -0
  287. package/dist/types/index.d.ts.bak +4 -0
  288. package/dist/types/logger.d.ts +5 -0
  289. package/dist/types/logger.d.ts.bak +5 -0
  290. package/dist/types/mcp/base-server.d.ts +93 -0
  291. package/dist/types/mcp/base-server.d.ts.bak +93 -0
  292. package/dist/types/mcp/base-tools.d.ts +79 -0
  293. package/dist/types/mcp/base-tools.d.ts.bak +79 -0
  294. package/dist/types/mcp/chrome-path.d.ts +2 -0
  295. package/dist/types/mcp/chrome-path.d.ts.bak +2 -0
  296. package/dist/types/mcp/index.d.ts +7 -0
  297. package/dist/types/mcp/index.d.ts.bak +7 -0
  298. package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
  299. package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +18 -0
  300. package/dist/types/mcp/launcher-helper.d.ts +94 -0
  301. package/dist/types/mcp/launcher-helper.d.ts.bak +94 -0
  302. package/dist/types/mcp/tool-generator.d.ts +10 -0
  303. package/dist/types/mcp/tool-generator.d.ts.bak +10 -0
  304. package/dist/types/mcp/types.d.ts +103 -0
  305. package/dist/types/mcp/types.d.ts.bak +103 -0
  306. package/dist/types/node/fs.d.ts +15 -0
  307. package/dist/types/node/fs.d.ts.bak +15 -0
  308. package/dist/types/node/index.d.ts +2 -0
  309. package/dist/types/node/index.d.ts.bak +2 -0
  310. package/dist/types/node/port.d.ts +8 -0
  311. package/dist/types/node/port.d.ts.bak +8 -0
  312. package/dist/types/oss/demo.d.ts +1 -0
  313. package/dist/types/oss/demo.d.ts.bak +1 -0
  314. package/dist/types/oss/index.d.ts +34 -0
  315. package/dist/types/oss/index.d.ts.bak +34 -0
  316. package/dist/types/polyfills/async-hooks.d.ts +6 -0
  317. package/dist/types/polyfills/async-hooks.d.ts.bak +6 -0
  318. package/dist/types/polyfills/index.d.ts +4 -0
  319. package/dist/types/polyfills/index.d.ts.bak +4 -0
  320. package/dist/types/types/index.d.ts +34 -0
  321. package/dist/types/types/index.d.ts.bak +34 -0
  322. package/dist/types/us-keyboard-layout.d.ts +32 -0
  323. package/dist/types/us-keyboard-layout.d.ts.bak +32 -0
  324. package/dist/types/utils.d.ts +34 -0
  325. package/dist/types/utils.d.ts.bak +34 -0
  326. package/dist/types/zod-schema-utils.d.ts +23 -0
  327. package/dist/types/zod-schema-utils.d.ts.bak +23 -0
  328. package/package.json +132 -0
  329. package/src/baseDB.ts +158 -0
  330. package/src/build/copy-static.ts +68 -0
  331. package/src/build/rspack-config.ts +12 -0
  332. package/src/cli/cli-runner.ts +224 -0
  333. package/src/cli/index.ts +8 -0
  334. package/src/common.ts +67 -0
  335. package/src/constants/example-code.ts +223 -0
  336. package/src/constants/index.ts +29 -0
  337. package/src/env/basic.ts +12 -0
  338. package/src/env/constants.ts +234 -0
  339. package/src/env/global-config-manager.ts +191 -0
  340. package/src/env/helper.ts +58 -0
  341. package/src/env/index.ts +4 -0
  342. package/src/env/init-debug.ts +34 -0
  343. package/src/env/model-config-manager.ts +149 -0
  344. package/src/env/parse-model-config.ts +294 -0
  345. package/src/env/types.ts +547 -0
  346. package/src/env/utils.ts +89 -0
  347. package/src/extractor/constants.ts +5 -0
  348. package/src/extractor/debug.ts +10 -0
  349. package/src/extractor/dom-util.ts +226 -0
  350. package/src/extractor/index.ts +48 -0
  351. package/src/extractor/locator.ts +469 -0
  352. package/src/extractor/tree.ts +179 -0
  353. package/src/extractor/util.ts +482 -0
  354. package/src/extractor/web-extractor.ts +481 -0
  355. package/src/img/box-select.ts +588 -0
  356. package/src/img/canvas-fallback.ts +393 -0
  357. package/src/img/get-photon.ts +108 -0
  358. package/src/img/get-sharp.ts +18 -0
  359. package/src/img/index.ts +26 -0
  360. package/src/img/info.ts +75 -0
  361. package/src/img/transform.ts +594 -0
  362. package/src/index.ts +8 -0
  363. package/src/logger.ts +96 -0
  364. package/src/mcp/base-server.ts +502 -0
  365. package/src/mcp/base-tools.ts +185 -0
  366. package/src/mcp/chrome-path.ts +48 -0
  367. package/src/mcp/index.ts +7 -0
  368. package/src/mcp/inject-report-html-plugin.ts +119 -0
  369. package/src/mcp/launcher-helper.ts +200 -0
  370. package/src/mcp/tool-generator.ts +429 -0
  371. package/src/mcp/types.ts +112 -0
  372. package/src/node/fs.ts +84 -0
  373. package/src/node/index.ts +2 -0
  374. package/src/node/port.ts +37 -0
  375. package/src/oss/demo.ts +61 -0
  376. package/src/oss/index.ts +187 -0
  377. package/src/polyfills/async-hooks.ts +6 -0
  378. package/src/polyfills/index.ts +4 -0
  379. package/src/types/index.ts +52 -0
  380. package/src/us-keyboard-layout.ts +723 -0
  381. package/src/utils.ts +149 -0
  382. package/src/zod-schema-utils.ts +133 -0
@@ -0,0 +1,79 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { BaseAgent, BaseDevice, IMidsceneTools, ToolDefinition } from './types';
3
+ /**
4
+ * Base class for platform-specific MCP tools
5
+ * Generic type TAgent allows subclasses to use their specific agent types
6
+ */
7
+ export declare abstract class BaseMidsceneTools<TAgent extends BaseAgent = BaseAgent> implements IMidsceneTools {
8
+ protected mcpServer?: McpServer;
9
+ protected agent?: TAgent;
10
+ protected toolDefinitions: ToolDefinition[];
11
+ /**
12
+ * Ensure agent is initialized and ready for use.
13
+ * Must be implemented by subclasses to create platform-specific agent.
14
+ * @param initParam Optional initialization parameter (platform-specific, e.g., URL, device ID)
15
+ * @returns Promise resolving to initialized agent instance
16
+ * @throws Error if agent initialization fails
17
+ */
18
+ protected abstract ensureAgent(initParam?: string): Promise<TAgent>;
19
+ /**
20
+ * Optional: prepare platform-specific tools (e.g., device connection)
21
+ */
22
+ protected preparePlatformTools(): ToolDefinition[];
23
+ /**
24
+ * Must be implemented by subclasses to create a temporary device instance
25
+ * This allows getting real actionSpace without connecting to device
26
+ */
27
+ protected abstract createTemporaryDevice(): BaseDevice;
28
+ /**
29
+ * Initialize all tools by querying actionSpace
30
+ * Uses two-layer fallback strategy:
31
+ * 1. Try to get actionSpace from connected agent (if available)
32
+ * 2. Create temporary device instance to read actionSpace (always succeeds)
33
+ */
34
+ initTools(): Promise<void>;
35
+ /**
36
+ * Attach to MCP server and register all tools
37
+ */
38
+ attachToServer(server: McpServer): void;
39
+ /**
40
+ * Cleanup method - destroy agent and release resources
41
+ */
42
+ destroy(): Promise<void>;
43
+ /**
44
+ * Get tool definitions
45
+ */
46
+ getToolDefinitions(): ToolDefinition[];
47
+ /**
48
+ * Set agent for the tools manager
49
+ */
50
+ setAgent(agent: TAgent): void;
51
+ /**
52
+ * Helper: Convert base64 screenshot to image content array
53
+ */
54
+ protected buildScreenshotContent(screenshot: string): {
55
+ type: "image";
56
+ data: string;
57
+ mimeType: string;
58
+ }[];
59
+ /**
60
+ * Helper: Build a simple text result for tool responses
61
+ */
62
+ protected buildTextResult(text: string): {
63
+ content: {
64
+ type: "text";
65
+ text: string;
66
+ }[];
67
+ };
68
+ /**
69
+ * Create a disconnect handler for releasing platform resources
70
+ * @param platformName Human-readable platform name for the response message
71
+ * @returns Handler function that destroys the agent and returns appropriate response
72
+ */
73
+ protected createDisconnectHandler(platformName: string): () => Promise<{
74
+ content: {
75
+ type: "text";
76
+ text: string;
77
+ }[];
78
+ }>;
79
+ }
@@ -0,0 +1,79 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { BaseAgent, BaseDevice, IMidsceneTools, ToolDefinition } from './types';
3
+ /**
4
+ * Base class for platform-specific MCP tools
5
+ * Generic type TAgent allows subclasses to use their specific agent types
6
+ */
7
+ export declare abstract class BaseMidsceneTools<TAgent extends BaseAgent = BaseAgent> implements IMidsceneTools {
8
+ protected mcpServer?: McpServer;
9
+ protected agent?: TAgent;
10
+ protected toolDefinitions: ToolDefinition[];
11
+ /**
12
+ * Ensure agent is initialized and ready for use.
13
+ * Must be implemented by subclasses to create platform-specific agent.
14
+ * @param initParam Optional initialization parameter (platform-specific, e.g., URL, device ID)
15
+ * @returns Promise resolving to initialized agent instance
16
+ * @throws Error if agent initialization fails
17
+ */
18
+ protected abstract ensureAgent(initParam?: string): Promise<TAgent>;
19
+ /**
20
+ * Optional: prepare platform-specific tools (e.g., device connection)
21
+ */
22
+ protected preparePlatformTools(): ToolDefinition[];
23
+ /**
24
+ * Must be implemented by subclasses to create a temporary device instance
25
+ * This allows getting real actionSpace without connecting to device
26
+ */
27
+ protected abstract createTemporaryDevice(): BaseDevice;
28
+ /**
29
+ * Initialize all tools by querying actionSpace
30
+ * Uses two-layer fallback strategy:
31
+ * 1. Try to get actionSpace from connected agent (if available)
32
+ * 2. Create temporary device instance to read actionSpace (always succeeds)
33
+ */
34
+ initTools(): Promise<void>;
35
+ /**
36
+ * Attach to MCP server and register all tools
37
+ */
38
+ attachToServer(server: McpServer): void;
39
+ /**
40
+ * Cleanup method - destroy agent and release resources
41
+ */
42
+ destroy(): Promise<void>;
43
+ /**
44
+ * Get tool definitions
45
+ */
46
+ getToolDefinitions(): ToolDefinition[];
47
+ /**
48
+ * Set agent for the tools manager
49
+ */
50
+ setAgent(agent: TAgent): void;
51
+ /**
52
+ * Helper: Convert base64 screenshot to image content array
53
+ */
54
+ protected buildScreenshotContent(screenshot: string): {
55
+ type: "image";
56
+ data: string;
57
+ mimeType: string;
58
+ }[];
59
+ /**
60
+ * Helper: Build a simple text result for tool responses
61
+ */
62
+ protected buildTextResult(text: string): {
63
+ content: {
64
+ type: "text";
65
+ text: string;
66
+ }[];
67
+ };
68
+ /**
69
+ * Create a disconnect handler for releasing platform resources
70
+ * @param platformName Human-readable platform name for the response message
71
+ * @returns Handler function that destroys the agent and returns appropriate response
72
+ */
73
+ protected createDisconnectHandler(platformName: string): () => Promise<{
74
+ content: {
75
+ type: "text";
76
+ text: string;
77
+ }[];
78
+ }>;
79
+ }
@@ -0,0 +1,2 @@
1
+ export declare function getSystemChromePath(): string | undefined;
2
+ export declare function resolveChromePath(): string;
@@ -0,0 +1,2 @@
1
+ export declare function getSystemChromePath(): string | undefined;
2
+ export declare function resolveChromePath(): string;
@@ -0,0 +1,7 @@
1
+ export * from './base-server';
2
+ export * from './base-tools';
3
+ export * from './tool-generator';
4
+ export * from './types';
5
+ export * from './inject-report-html-plugin';
6
+ export * from './launcher-helper';
7
+ export * from './chrome-path';
@@ -0,0 +1,7 @@
1
+ export * from './base-server';
2
+ export * from './base-tools';
3
+ export * from './tool-generator';
4
+ export * from './types';
5
+ export * from './inject-report-html-plugin';
6
+ export * from './launcher-helper';
7
+ export * from './chrome-path';
@@ -0,0 +1,18 @@
1
+ interface RslibPluginApi {
2
+ onAfterBuild: (callback: () => void) => void;
3
+ }
4
+ /**
5
+ * Rslib plugin to inject report HTML from @xiuchang-midscene/core dist into MCP bundle.
6
+ * This runs after build and reads the already-injected HTML from core.
7
+ *
8
+ * Prerequisites:
9
+ * - @midscene/report must be in devDependencies to ensure correct build order
10
+ * - @xiuchang-midscene/core dist must exist with injected HTML
11
+ *
12
+ * @param packageDir - The directory of the MCP package (use __dirname)
13
+ */
14
+ export declare function injectReportHtmlFromCore(packageDir: string): {
15
+ name: string;
16
+ setup(api: RslibPluginApi): void;
17
+ };
18
+ export {};
@@ -0,0 +1,18 @@
1
+ interface RslibPluginApi {
2
+ onAfterBuild: (callback: () => void) => void;
3
+ }
4
+ /**
5
+ * Rslib plugin to inject report HTML from @midscene/core dist into MCP bundle.
6
+ * This runs after build and reads the already-injected HTML from core.
7
+ *
8
+ * Prerequisites:
9
+ * - @midscene/report must be in devDependencies to ensure correct build order
10
+ * - @midscene/core dist must exist with injected HTML
11
+ *
12
+ * @param packageDir - The directory of the MCP package (use __dirname)
13
+ */
14
+ export declare function injectReportHtmlFromCore(packageDir: string): {
15
+ name: string;
16
+ setup(api: RslibPluginApi): void;
17
+ };
18
+ export {};
@@ -0,0 +1,94 @@
1
+ import type { BaseMCPServer } from './base-server';
2
+ import type { HttpLaunchOptions, LaunchMCPServerResult } from './base-server';
3
+ import type { IMidsceneTools } from './types';
4
+ export interface LaunchMCPServerOptions extends HttpLaunchOptions {
5
+ /**
6
+ * Whether to show server logs
7
+ * @default true
8
+ */
9
+ verbose?: boolean;
10
+ }
11
+ /**
12
+ * Generic agent type (avoid importing from @xiuchang-midscene/core to prevent circular deps)
13
+ */
14
+ export interface GenericAgent<TDevice = any> {
15
+ interface: TDevice;
16
+ constructor: {
17
+ name: string;
18
+ };
19
+ }
20
+ /**
21
+ * Additional information for logging server startup
22
+ */
23
+ export interface StartupInfo {
24
+ port?: number;
25
+ host?: string;
26
+ }
27
+ export interface MCPServerLauncherConfig<AgentType extends GenericAgent = GenericAgent, ToolsManagerType extends IMidsceneTools = IMidsceneTools> {
28
+ agent: AgentType;
29
+ platformName: string;
30
+ ToolsManagerClass: new (...args: any[]) => ToolsManagerType;
31
+ MCPServerClass: new (toolsManager?: ToolsManagerType) => BaseMCPServer;
32
+ }
33
+ /**
34
+ * Create a generic MCP server launcher for a given agent, tools manager, and MCP server.
35
+ *
36
+ * This helper centralizes the common wiring logic used by platform-specific launchers:
37
+ * it constructs a tools manager, attaches the provided `agent` to it, then instantiates
38
+ * the `MCPServerClass` and exposes convenience methods to start the server over stdio
39
+ * (`launch`) or HTTP (`launchHttp`).
40
+ *
41
+ * Use this helper when adding a new platform-specific launcher or when you want to
42
+ * avoid duplicating boilerplate code for starting an MCP server. Typically, callers
43
+ * provide:
44
+ * - an `agent` instance that contains the underlying device on its `interface` property
45
+ * - a `ToolsManagerClass` that knows how to expose tools for that agent
46
+ * - an `MCPServerClass` that implements the MCP protocol and supports `launch` and
47
+ * `launchHttp` methods.
48
+ *
49
+ * The returned object has two methods:
50
+ * - `launch(options?)` to start the server using stdio transport
51
+ * - `launchHttp(options)` to start the server using HTTP transport
52
+ * Both methods accept a `verbose` flag to control console logging.
53
+ *
54
+ * @param config Configuration describing the agent, platform name (for logging),
55
+ * tools manager implementation, and MCP server implementation.
56
+ *
57
+ * @returns An object with `launch` and `launchHttp` methods to start the MCP server.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * import { createMCPServerLauncher } from '@xiuchang-midscene/shared/mcp';
62
+ * import { Agent } from '@xiuchang-midscene/core/agent';
63
+ * import { WebMidsceneTools } from './web-tools';
64
+ * import { WebMCPServer } from './server';
65
+ *
66
+ * const agent = new Agent();
67
+ * const launcher = createMCPServerLauncher({
68
+ * agent,
69
+ * platformName: 'Web',
70
+ * ToolsManagerClass: WebMidsceneTools,
71
+ * MCPServerClass: WebMCPServer,
72
+ * });
73
+ *
74
+ * // Start with stdio
75
+ * await launcher.launch({ verbose: true });
76
+ *
77
+ * // Or start with HTTP
78
+ * await launcher.launchHttp({ port: 3000, host: 'localhost' });
79
+ * ```
80
+ *
81
+ * @internal
82
+ */
83
+ export declare function createMCPServerLauncher<AgentType extends GenericAgent, ToolsManagerType extends IMidsceneTools>(config: MCPServerLauncherConfig<AgentType, ToolsManagerType>): {
84
+ /**
85
+ * Launch the MCP server with stdio transport
86
+ */
87
+ launch(options?: {
88
+ verbose?: boolean;
89
+ }): Promise<LaunchMCPServerResult>;
90
+ /**
91
+ * Launch the MCP server with HTTP transport
92
+ */
93
+ launchHttp(options: LaunchMCPServerOptions): Promise<LaunchMCPServerResult>;
94
+ };
@@ -0,0 +1,94 @@
1
+ import type { BaseMCPServer } from './base-server';
2
+ import type { HttpLaunchOptions, LaunchMCPServerResult } from './base-server';
3
+ import type { IMidsceneTools } from './types';
4
+ export interface LaunchMCPServerOptions extends HttpLaunchOptions {
5
+ /**
6
+ * Whether to show server logs
7
+ * @default true
8
+ */
9
+ verbose?: boolean;
10
+ }
11
+ /**
12
+ * Generic agent type (avoid importing from @midscene/core to prevent circular deps)
13
+ */
14
+ export interface GenericAgent<TDevice = any> {
15
+ interface: TDevice;
16
+ constructor: {
17
+ name: string;
18
+ };
19
+ }
20
+ /**
21
+ * Additional information for logging server startup
22
+ */
23
+ export interface StartupInfo {
24
+ port?: number;
25
+ host?: string;
26
+ }
27
+ export interface MCPServerLauncherConfig<AgentType extends GenericAgent = GenericAgent, ToolsManagerType extends IMidsceneTools = IMidsceneTools> {
28
+ agent: AgentType;
29
+ platformName: string;
30
+ ToolsManagerClass: new (...args: any[]) => ToolsManagerType;
31
+ MCPServerClass: new (toolsManager?: ToolsManagerType) => BaseMCPServer;
32
+ }
33
+ /**
34
+ * Create a generic MCP server launcher for a given agent, tools manager, and MCP server.
35
+ *
36
+ * This helper centralizes the common wiring logic used by platform-specific launchers:
37
+ * it constructs a tools manager, attaches the provided `agent` to it, then instantiates
38
+ * the `MCPServerClass` and exposes convenience methods to start the server over stdio
39
+ * (`launch`) or HTTP (`launchHttp`).
40
+ *
41
+ * Use this helper when adding a new platform-specific launcher or when you want to
42
+ * avoid duplicating boilerplate code for starting an MCP server. Typically, callers
43
+ * provide:
44
+ * - an `agent` instance that contains the underlying device on its `interface` property
45
+ * - a `ToolsManagerClass` that knows how to expose tools for that agent
46
+ * - an `MCPServerClass` that implements the MCP protocol and supports `launch` and
47
+ * `launchHttp` methods.
48
+ *
49
+ * The returned object has two methods:
50
+ * - `launch(options?)` to start the server using stdio transport
51
+ * - `launchHttp(options)` to start the server using HTTP transport
52
+ * Both methods accept a `verbose` flag to control console logging.
53
+ *
54
+ * @param config Configuration describing the agent, platform name (for logging),
55
+ * tools manager implementation, and MCP server implementation.
56
+ *
57
+ * @returns An object with `launch` and `launchHttp` methods to start the MCP server.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * import { createMCPServerLauncher } from '@midscene/shared/mcp';
62
+ * import { Agent } from '@midscene/core/agent';
63
+ * import { WebMidsceneTools } from './web-tools';
64
+ * import { WebMCPServer } from './server';
65
+ *
66
+ * const agent = new Agent();
67
+ * const launcher = createMCPServerLauncher({
68
+ * agent,
69
+ * platformName: 'Web',
70
+ * ToolsManagerClass: WebMidsceneTools,
71
+ * MCPServerClass: WebMCPServer,
72
+ * });
73
+ *
74
+ * // Start with stdio
75
+ * await launcher.launch({ verbose: true });
76
+ *
77
+ * // Or start with HTTP
78
+ * await launcher.launchHttp({ port: 3000, host: 'localhost' });
79
+ * ```
80
+ *
81
+ * @internal
82
+ */
83
+ export declare function createMCPServerLauncher<AgentType extends GenericAgent, ToolsManagerType extends IMidsceneTools>(config: MCPServerLauncherConfig<AgentType, ToolsManagerType>): {
84
+ /**
85
+ * Launch the MCP server with stdio transport
86
+ */
87
+ launch(options?: {
88
+ verbose?: boolean;
89
+ }): Promise<LaunchMCPServerResult>;
90
+ /**
91
+ * Launch the MCP server with HTTP transport
92
+ */
93
+ launchHttp(options: LaunchMCPServerOptions): Promise<LaunchMCPServerResult>;
94
+ };
@@ -0,0 +1,10 @@
1
+ import type { ActionSpaceItem, BaseAgent, ToolDefinition } from './types';
2
+ /**
3
+ * Converts DeviceAction from actionSpace into MCP ToolDefinition
4
+ * This is the core logic that removes need for hardcoded tool definitions
5
+ */
6
+ export declare function generateToolsFromActionSpace(actionSpace: ActionSpaceItem[], getAgent: () => Promise<BaseAgent>): ToolDefinition[];
7
+ /**
8
+ * Generate common tools (screenshot, act)
9
+ */
10
+ export declare function generateCommonTools(getAgent: () => Promise<BaseAgent>): ToolDefinition[];
@@ -0,0 +1,10 @@
1
+ import type { ActionSpaceItem, BaseAgent, ToolDefinition } from './types';
2
+ /**
3
+ * Converts DeviceAction from actionSpace into MCP ToolDefinition
4
+ * This is the core logic that removes need for hardcoded tool definitions
5
+ */
6
+ export declare function generateToolsFromActionSpace(actionSpace: ActionSpaceItem[], getAgent: () => Promise<BaseAgent>): ToolDefinition[];
7
+ /**
8
+ * Generate common tools (screenshot, act)
9
+ */
10
+ export declare function generateCommonTools(getAgent: () => Promise<BaseAgent>): ToolDefinition[];
@@ -0,0 +1,103 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { z } from 'zod';
3
+ /**
4
+ * Default timeout constants for app loading verification
5
+ */
6
+ export declare const defaultAppLoadingTimeoutMs = 10000;
7
+ export declare const defaultAppLoadingCheckIntervalMs = 2000;
8
+ /**
9
+ * Content item types for tool results (MCP compatible)
10
+ */
11
+ export type ToolResultContent = {
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image';
16
+ data: string;
17
+ mimeType: string;
18
+ } | {
19
+ type: 'audio';
20
+ data: string;
21
+ mimeType: string;
22
+ } | {
23
+ type: 'resource';
24
+ resource: {
25
+ text: string;
26
+ uri: string;
27
+ mimeType?: string;
28
+ } | {
29
+ uri: string;
30
+ blob: string;
31
+ mimeType?: string;
32
+ };
33
+ };
34
+ /**
35
+ * Result type for tool execution (MCP compatible)
36
+ */
37
+ export interface ToolResult {
38
+ [x: string]: unknown;
39
+ content: ToolResultContent[];
40
+ isError?: boolean;
41
+ _meta?: Record<string, unknown>;
42
+ }
43
+ /**
44
+ * Tool handler function type
45
+ * Takes parsed arguments and returns a tool result
46
+ */
47
+ export type ToolHandler<T = Record<string, unknown>> = (args: T) => Promise<ToolResult>;
48
+ /**
49
+ * Tool schema type using Zod
50
+ */
51
+ export type ToolSchema = Record<string, z.ZodTypeAny>;
52
+ /**
53
+ * Tool definition for MCP server
54
+ */
55
+ export interface ToolDefinition<T = Record<string, unknown>> {
56
+ name: string;
57
+ description: string;
58
+ schema: ToolSchema;
59
+ handler: ToolHandler<T>;
60
+ }
61
+ /**
62
+ * Tool type for mcpKitForAgent return value
63
+ */
64
+ export type Tool = ToolDefinition;
65
+ /**
66
+ * Action space item definition
67
+ * Note: Intentionally no index signature to maintain compatibility with DeviceAction
68
+ */
69
+ export interface ActionSpaceItem {
70
+ name: string;
71
+ description?: string;
72
+ args?: Record<string, unknown>;
73
+ paramSchema?: z.ZodTypeAny;
74
+ }
75
+ /**
76
+ * Base agent interface
77
+ * Represents a platform-specific agent (Android, iOS, Web)
78
+ * Note: Return types use `unknown` for compatibility with platform-specific implementations
79
+ */
80
+ export interface BaseAgent {
81
+ getActionSpace(): Promise<ActionSpaceItem[]>;
82
+ destroy?(): Promise<void>;
83
+ page?: {
84
+ screenshotBase64(): Promise<string>;
85
+ };
86
+ aiAction?: (description: string, params?: Record<string, unknown>) => Promise<unknown>;
87
+ aiWaitFor?: (assertion: string, options: Record<string, unknown>) => Promise<unknown>;
88
+ }
89
+ /**
90
+ * Base device interface for temporary device instances
91
+ */
92
+ export interface BaseDevice {
93
+ actionSpace(): ActionSpaceItem[];
94
+ destroy?(): Promise<void>;
95
+ }
96
+ /**
97
+ * Interface for platform-specific MCP tools manager
98
+ */
99
+ export interface IMidsceneTools {
100
+ attachToServer(server: McpServer): void;
101
+ initTools(): Promise<void>;
102
+ destroy?(): Promise<void>;
103
+ }
@@ -0,0 +1,103 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { z } from 'zod';
3
+ /**
4
+ * Default timeout constants for app loading verification
5
+ */
6
+ export declare const defaultAppLoadingTimeoutMs = 10000;
7
+ export declare const defaultAppLoadingCheckIntervalMs = 2000;
8
+ /**
9
+ * Content item types for tool results (MCP compatible)
10
+ */
11
+ export type ToolResultContent = {
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image';
16
+ data: string;
17
+ mimeType: string;
18
+ } | {
19
+ type: 'audio';
20
+ data: string;
21
+ mimeType: string;
22
+ } | {
23
+ type: 'resource';
24
+ resource: {
25
+ text: string;
26
+ uri: string;
27
+ mimeType?: string;
28
+ } | {
29
+ uri: string;
30
+ blob: string;
31
+ mimeType?: string;
32
+ };
33
+ };
34
+ /**
35
+ * Result type for tool execution (MCP compatible)
36
+ */
37
+ export interface ToolResult {
38
+ [x: string]: unknown;
39
+ content: ToolResultContent[];
40
+ isError?: boolean;
41
+ _meta?: Record<string, unknown>;
42
+ }
43
+ /**
44
+ * Tool handler function type
45
+ * Takes parsed arguments and returns a tool result
46
+ */
47
+ export type ToolHandler<T = Record<string, unknown>> = (args: T) => Promise<ToolResult>;
48
+ /**
49
+ * Tool schema type using Zod
50
+ */
51
+ export type ToolSchema = Record<string, z.ZodTypeAny>;
52
+ /**
53
+ * Tool definition for MCP server
54
+ */
55
+ export interface ToolDefinition<T = Record<string, unknown>> {
56
+ name: string;
57
+ description: string;
58
+ schema: ToolSchema;
59
+ handler: ToolHandler<T>;
60
+ }
61
+ /**
62
+ * Tool type for mcpKitForAgent return value
63
+ */
64
+ export type Tool = ToolDefinition;
65
+ /**
66
+ * Action space item definition
67
+ * Note: Intentionally no index signature to maintain compatibility with DeviceAction
68
+ */
69
+ export interface ActionSpaceItem {
70
+ name: string;
71
+ description?: string;
72
+ args?: Record<string, unknown>;
73
+ paramSchema?: z.ZodTypeAny;
74
+ }
75
+ /**
76
+ * Base agent interface
77
+ * Represents a platform-specific agent (Android, iOS, Web)
78
+ * Note: Return types use `unknown` for compatibility with platform-specific implementations
79
+ */
80
+ export interface BaseAgent {
81
+ getActionSpace(): Promise<ActionSpaceItem[]>;
82
+ destroy?(): Promise<void>;
83
+ page?: {
84
+ screenshotBase64(): Promise<string>;
85
+ };
86
+ aiAction?: (description: string, params?: Record<string, unknown>) => Promise<unknown>;
87
+ aiWaitFor?: (assertion: string, options: Record<string, unknown>) => Promise<unknown>;
88
+ }
89
+ /**
90
+ * Base device interface for temporary device instances
91
+ */
92
+ export interface BaseDevice {
93
+ actionSpace(): ActionSpaceItem[];
94
+ destroy?(): Promise<void>;
95
+ }
96
+ /**
97
+ * Interface for platform-specific MCP tools manager
98
+ */
99
+ export interface IMidsceneTools {
100
+ attachToServer(server: McpServer): void;
101
+ initTools(): Promise<void>;
102
+ destroy?(): Promise<void>;
103
+ }
@@ -0,0 +1,15 @@
1
+ interface PkgInfo {
2
+ name: string;
3
+ version: string;
4
+ dir: string;
5
+ }
6
+ export declare function getRunningPkgInfo(dir?: string): PkgInfo | null;
7
+ /**
8
+ * Find the nearest package.json file recursively
9
+ * @param {string} dir - Home directory
10
+ * @returns {string|null} - The most recent package.json file path or null
11
+ */
12
+ export declare function findNearestPackageJson(dir: string): string | null;
13
+ export declare function getElementInfosScriptContent(): string;
14
+ export declare function getExtraReturnLogic(tree?: boolean): Promise<string | null>;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ interface PkgInfo {
2
+ name: string;
3
+ version: string;
4
+ dir: string;
5
+ }
6
+ export declare function getRunningPkgInfo(dir?: string): PkgInfo | null;
7
+ /**
8
+ * Find the nearest package.json file recursively
9
+ * @param {string} dir - Home directory
10
+ * @returns {string|null} - The most recent package.json file path or null
11
+ */
12
+ export declare function findNearestPackageJson(dir: string): string | null;
13
+ export declare function getElementInfosScriptContent(): string;
14
+ export declare function getExtraReturnLogic(tree?: boolean): Promise<string | null>;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './fs';
2
+ export * from './port';
@@ -0,0 +1,2 @@
1
+ export * from './fs';
2
+ export * from './port';