ms-vite-plugin 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/build.js +6 -0
  2. package/dist/cli.js +98 -8
  3. package/dist/mcp/device-config.d.ts +55 -0
  4. package/dist/mcp/device-config.js +183 -0
  5. package/dist/mcp/docs-service.d.ts +65 -0
  6. package/dist/mcp/docs-service.js +168 -0
  7. package/dist/mcp/project.d.ts +16 -0
  8. package/dist/mcp/project.js +74 -0
  9. package/dist/mcp/tools.d.ts +18 -0
  10. package/dist/mcp/tools.js +825 -0
  11. package/dist/mcp/types.d.ts +32 -0
  12. package/dist/mcp/types.js +11 -0
  13. package/dist/mcp-server.d.ts +2 -0
  14. package/dist/mcp-server.js +86 -0
  15. package/dist/project.d.ts +89 -0
  16. package/dist/project.js +306 -0
  17. package/dist/version.d.ts +12 -0
  18. package/dist/version.js +63 -0
  19. package/docs/api/action.md +922 -0
  20. package/docs/api/appleocr.md +229 -0
  21. package/docs/api/config.md +122 -0
  22. package/docs/api/cryptoUtils.md +232 -0
  23. package/docs/api/device.md +374 -0
  24. package/docs/api/file.md +516 -0
  25. package/docs/api/global.md +617 -0
  26. package/docs/api/hid.md +1032 -0
  27. package/docs/api/hotUpdate.md +166 -0
  28. package/docs/api/http.md +548 -0
  29. package/docs/api/image.md +907 -0
  30. package/docs/api/ime.md +290 -0
  31. package/docs/api/logger.md +324 -0
  32. package/docs/api/media.md +248 -0
  33. package/docs/api/mysql.md +441 -0
  34. package/docs/api/netCard.md +200 -0
  35. package/docs/api/node.md +353 -0
  36. package/docs/api/paddleocr.md +246 -0
  37. package/docs/api/pip.md +242 -0
  38. package/docs/api/system.md +572 -0
  39. package/docs/api/thread.md +269 -0
  40. package/docs/api/tomatoocr.md +425 -0
  41. package/docs/api/tts.md +334 -0
  42. package/docs/api/ui.md +947 -0
  43. package/docs/api/utils.md +265 -0
  44. package/docs/api/yolo.md +310 -0
  45. package/docs/apicn/action.md +919 -0
  46. package/docs/apicn/appleocr.md +233 -0
  47. package/docs/apicn/config.md +120 -0
  48. package/docs/apicn/device.md +385 -0
  49. package/docs/apicn/file.md +511 -0
  50. package/docs/apicn/global.md +613 -0
  51. package/docs/apicn/hid.md +1033 -0
  52. package/docs/apicn/hotUpdate.md +170 -0
  53. package/docs/apicn/http.md +672 -0
  54. package/docs/apicn/image.md +924 -0
  55. package/docs/apicn/ime.md +290 -0
  56. package/docs/apicn/logger.md +332 -0
  57. package/docs/apicn/media.md +252 -0
  58. package/docs/apicn/mysql.md +445 -0
  59. package/docs/apicn/netCard.md +200 -0
  60. package/docs/apicn/node.md +362 -0
  61. package/docs/apicn/paddleocr.md +255 -0
  62. package/docs/apicn/pip.md +242 -0
  63. package/docs/apicn/system.md +575 -0
  64. package/docs/apicn/thread.md +269 -0
  65. package/docs/apicn/tts.md +338 -0
  66. package/docs/apicn/ui.md +933 -0
  67. package/docs/apicn/utils.md +265 -0
  68. package/docs/apicn/yolo.md +314 -0
  69. package/docs/apipython/action.md +901 -0
  70. package/docs/apipython/appleocr.md +226 -0
  71. package/docs/apipython/config.md +126 -0
  72. package/docs/apipython/cryptoUtils.md +246 -0
  73. package/docs/apipython/device.md +365 -0
  74. package/docs/apipython/file.md +476 -0
  75. package/docs/apipython/g.md +154 -0
  76. package/docs/apipython/hid.md +1059 -0
  77. package/docs/apipython/hotUpdate.md +154 -0
  78. package/docs/apipython/image.md +938 -0
  79. package/docs/apipython/ime.md +306 -0
  80. package/docs/apipython/logger.md +330 -0
  81. package/docs/apipython/media.md +221 -0
  82. package/docs/apipython/mysql.md +432 -0
  83. package/docs/apipython/netCard.md +219 -0
  84. package/docs/apipython/node.md +331 -0
  85. package/docs/apipython/overview.md +66 -0
  86. package/docs/apipython/paddleocr.md +211 -0
  87. package/docs/apipython/pip.md +231 -0
  88. package/docs/apipython/system.md +458 -0
  89. package/docs/apipython/tomatoocr.md +444 -0
  90. package/docs/apipython/tts.md +331 -0
  91. package/docs/apipython/ui.md +949 -0
  92. package/docs/apipython/utils.md +284 -0
  93. package/docs/apipython/yolo.md +281 -0
  94. package/package.json +8 -4
@@ -0,0 +1,211 @@
1
+ # PaddleOCR 模块 (PaddleOCR)
2
+
3
+ PaddleOCR 模块基于百度飞桨 PaddleOCR 技术,提供强大的光学字符识别(OCR)功能,支持中英文文本识别,可用于屏幕截图、图片文件等多种输入源的文字识别。
4
+
5
+ ## 功能概览
6
+
7
+ - **模型管理**: PP-OCRv5 模型加载和资源管理
8
+ - **多源识别**: 支持屏幕截图、图片文件、URL 等多种输入源
9
+ - **区域识别**: 支持指定区域的精确文字识别
10
+ - **结构化结果**: 提供详细的文本位置、置信度和方向信息
11
+ - **资源控制**: 完整的模型生命周期管理
12
+
13
+ ## 类型定义
14
+
15
+ ### OCRResult
16
+
17
+ 识别结果的数据结构,包含完整的文本信息和位置数据。
18
+
19
+ ```python
20
+ from typing import TypedDict, List
21
+
22
+ class OCRResult(TypedDict):
23
+ text: str # 识别的文本内容
24
+ confidence: float # 识别置信度 (0-1)
25
+ x: int # 文本区域左上角 x 坐标
26
+ y: int # 文本区域左上角 y 坐标
27
+ ex: int # 文本区域右下角 x 坐标
28
+ ey: int # 文本区域右下角 y 坐标
29
+ width: int # 文本区域宽度
30
+ height: int # 文本区域高度
31
+ centerX: int # 文本区域中心点 x 坐标
32
+ centerY: int # 文本区域中心点 y 坐标
33
+ angle: float # 文本区域角度 (-90 到 90 度)
34
+ orientation: int # 文本区域方向 (0 横向,1 竖向)
35
+ ```
36
+
37
+ ## API 参考
38
+
39
+ ### 模型管理
40
+
41
+ #### `loadV5` - 初始化 PP-OCRv5 模型
42
+
43
+ 初始化 PP-OCRv5 模型,这是使用 OCR 功能的前提。
44
+
45
+ ```python
46
+ def loadV5(maxSideLen: int = 640) -> bool
47
+ ```
48
+
49
+ **参数:**
50
+
51
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
52
+ | ------------ | ---- | -------- | ------ | -------------------------------- |
53
+ | `maxSideLen` | int | 否 | 640 | 输入图像的最大边长,默认值为 640 |
54
+
55
+ **返回值:**
56
+
57
+ | 类型 | 描述 |
58
+ | ------ | ---------------- |
59
+ | `bool` | 是否成功加载模型 |
60
+
61
+ **示例:**
62
+
63
+ ```python
64
+ from kuaijs import paddleocr
65
+
66
+ # 使用默认参数加载模型
67
+ loaded = paddleocr.loadV5()
68
+ if loaded:
69
+ print("PP-OCRv5 模型加载成功")
70
+ ```
71
+
72
+ ### 文字识别
73
+
74
+ #### `recognize` - 执行 OCR 文字识别
75
+
76
+ 执行 OCR 文字识别,支持多种输入源和指定识别区域。
77
+
78
+ ```python
79
+ def recognize(
80
+ input: str,
81
+ x: int = 0,
82
+ y: int = 0,
83
+ ex: int = 0,
84
+ ey: int = 0,
85
+ confidenceThreshold: float = 0.6
86
+ ) -> List[OCRResult]
87
+ ```
88
+
89
+ **参数:**
90
+
91
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
92
+ | --------------------- | ----- | -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- |
93
+ | `input` | str | 是 | - | 输入源,支持以下类型:<br>- `"screen"` - 当前屏幕截图<br>- 图片文件路径或 URL<br>- `imageId` - 图片 ID(通过 image 模块获取) |
94
+ | `x` | int | 否 | 0 | 识别区域左上角 x 坐标 |
95
+ | `y` | int | 否 | 0 | 识别区域左上角 y 坐标 |
96
+ | `ex` | int | 否 | 0 | 识别区域右下角 x 坐标 |
97
+ | `ey` | int | 否 | 0 | 识别区域右下角 y 坐标 |
98
+ | `confidenceThreshold` | float | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
99
+
100
+ **返回值:**
101
+
102
+ | 类型 | 描述 |
103
+ | ----------------- | -------------------------------------------------------------- |
104
+ | `List[OCRResult]` | 识别结果数组,每个元素包含文本内容、位置信息和置信度等详细数据 |
105
+
106
+ **示例:**
107
+
108
+ ```python
109
+ from kuaijs import paddleocr
110
+
111
+ # 首先加载模型
112
+ if not paddleocr.loadV5():
113
+ print("模型加载失败")
114
+ else:
115
+ # 识别整个屏幕
116
+ full_screen_results = paddleocr.recognize("screen", 0, 0, 0, 0)
117
+ print(f"识别到 {len(full_screen_results)} 个文本区域")
118
+ for r in full_screen_results:
119
+ print(f"文本: {r.text}, 置信度: {r.confidence}")
120
+
121
+ # 识别屏幕指定区域
122
+ region_results = paddleocr.recognize("screen", 100, 100, 500, 300)
123
+ if region_results:
124
+ top = region_results[0]
125
+ print(f"指定区域文本: {top.text}, 中心: ({top.centerX}, {top.centerY})")
126
+
127
+ # 识别图片文件
128
+ image_results = paddleocr.recognize("/path/to/image.png", 0, 0, 800, 600)
129
+ for r in image_results:
130
+ print(f"图片文字: {r.text}")
131
+
132
+ # 识别网络图片
133
+ url_results = paddleocr.recognize("https://example.com/image.jpg", 0, 0, 1000, 800)
134
+ print(f"网络图片识别结果数量: {len(url_results)}")
135
+ ```
136
+
137
+ #### `findText` - 在识别结果中查找目标文本并返回对应子串坐标
138
+
139
+ 在 OCR 识别结果中查找指定文本,返回匹配文本的坐标和置信度等信息。
140
+
141
+ ```python
142
+ def findText(
143
+ input: str,
144
+ targetTexts: List[str],
145
+ x: int = 0,
146
+ y: int = 0,
147
+ ex: int = 0,
148
+ ey: int = 0,
149
+ confidenceThreshold: float = 0.6
150
+ ) -> List[OCRResult]
151
+ ```
152
+
153
+ **参数:**
154
+
155
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
156
+ | --------------------- | --------- | -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- |
157
+ | `input` | str | 是 | - | 输入源,支持以下类型:<br>- `"screen"` - 当前屏幕截图<br>- 图片文件路径或 URL<br>- `imageId` - 图片 ID(通过 image 模块获取) |
158
+ | `targetTexts` | List[str] | 是 | - | 目标文本数组,例如 `["登录", "确定"]` |
159
+ | `x` | int | 否 | 0 | 查找区域左上角 x 坐标 |
160
+ | `y` | int | 否 | 0 | 查找区域左上角 y 坐标 |
161
+ | `ex` | int | 否 | 0 | 查找区域右下角 x 坐标 |
162
+ | `ey` | int | 否 | 0 | 查找区域右下角 y 坐标 |
163
+ | `confidenceThreshold` | float | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
164
+
165
+ **返回值:**
166
+
167
+ | 类型 | 描述 |
168
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------- |
169
+ | `List[OCRResult]` | 匹配结果数组。每个元素为命中的文本片段坐标信息,`text` 字段为命中的目标文本,其他字段包含位置、方向和置信度等信息 |
170
+
171
+ **示例:**
172
+
173
+ ```python
174
+ from kuaijs import paddleocr
175
+
176
+ # 首先加载模型
177
+ if not paddleocr.loadV5():
178
+ print("模型加载失败")
179
+ else:
180
+ # 在整个屏幕中查找目标文本
181
+ hit_results = paddleocr.findText("screen", ["登录", "确定"], 0, 0, 0, 0, 0.6)
182
+ if hit_results:
183
+ for i, r in enumerate(hit_results, 1):
184
+ print(f"命中{i}: {r.text}, 中心点=({r.centerX}, {r.centerY}), 置信度={r.confidence}")
185
+ else:
186
+ print("未命中目标文本")
187
+
188
+ # 在指定区域查找目标文本
189
+ region_hits = paddleocr.findText("screen", ["下一步"], 100, 100, 500, 400)
190
+ print(f"区域命中数量: {len(region_hits)}")
191
+ ```
192
+
193
+ ### 资源管理
194
+
195
+ #### `free` - 释放 OCR 模型占用的内存资源
196
+
197
+ 释放 OCR 模型占用的内存资源。
198
+
199
+ ```python
200
+ def free() -> None
201
+ ```
202
+
203
+ **示例:**
204
+
205
+ ```python
206
+ from kuaijs import paddleocr
207
+
208
+ # 使用完毕后释放资源
209
+ paddleocr.free()
210
+ print("OCR 模型资源已释放")
211
+ ```
@@ -0,0 +1,231 @@
1
+ # 悬浮窗模块 (PIP)
2
+
3
+ 悬浮窗模块提供了画中画(Picture in Picture)功能,允许在应用中显示悬浮的日志窗口,支持自定义样式和控制脚本启停。
4
+
5
+ ## 功能特性
6
+
7
+ - **悬浮窗显示**: 支持在屏幕上显示悬浮的日志窗口
8
+ - **自定义样式**: 可配置窗口大小、字体、颜色等
9
+ - **脚本控制**: 支持通过悬浮窗控制脚本的启停
10
+
11
+ ## 类型定义
12
+
13
+ ### LogViewParams
14
+
15
+ 悬浮窗参数配置。
16
+
17
+ ```python
18
+ from typing import TypedDict
19
+
20
+ class LogViewParams(TypedDict):
21
+ width: int # 悬浮窗宽度,不能小于 100
22
+ height: int # 悬浮窗高度,不能小于 100
23
+ textSize: int # 日志的字体大小
24
+ textColor: str # 日志的文字颜色,格式如 #FFFFFF
25
+ backgroundColor: str # 日志的背景颜色,格式如 #000000
26
+ ```
27
+
28
+ ## API 参考
29
+
30
+ ### setLogViewParams - 设置悬浮窗显示参数
31
+
32
+ 设置悬浮窗日志窗口的显示参数,必须在显示日志窗口之前调用才会生效。
33
+
34
+ ```python
35
+ def setLogViewParams(params: LogViewParams) -> None
36
+ ```
37
+
38
+ **参数:**
39
+
40
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
41
+ | -------- | --------------- | -------- | ------ | ---------------------- |
42
+ | `params` | `LogViewParams` | 是 | - | 包含显示参数的配置对象 |
43
+
44
+ **示例:**
45
+
46
+ ```python
47
+ from kuaijs import pip
48
+
49
+ # 配置悬浮窗参数
50
+ pip.setLogViewParams({
51
+ "width": 300,
52
+ "height": 400,
53
+ "textSize": 14,
54
+ "textColor": "#FFFFFF",
55
+ "backgroundColor": "#000000"
56
+ })
57
+ ```
58
+
59
+ ### isPipActive - 判断悬浮窗是否打开
60
+
61
+ 判断悬浮窗是否当前打开。
62
+
63
+ ```python
64
+ def isPipActive() -> bool
65
+ ```
66
+
67
+ **返回值:**
68
+
69
+ | 类型 | 描述 |
70
+ | ------ | --------------------------------------------- |
71
+ | `bool` | `True` 代表开启了悬浮窗,`False` 代表没有开启 |
72
+
73
+ **示例:**
74
+
75
+ ```python
76
+ from kuaijs import pip
77
+
78
+ # 检查悬浮窗是否打开
79
+ is_active = pip.isPipActive()
80
+ if is_active:
81
+ print("悬浮窗当前已打开")
82
+ else:
83
+ print("悬浮窗当前未打开")
84
+ ```
85
+
86
+ ### showLogWindow - 显示日志窗口
87
+
88
+ 显示悬浮窗日志窗口。应用必须在前台才可调用。
89
+
90
+ ```python
91
+ def showLogWindow() -> bool
92
+ ```
93
+
94
+ **返回值:**
95
+
96
+ | 类型 | 描述 |
97
+ | ------ | --------------------------------- |
98
+ | `bool` | `True` 代表成功,`False` 代表失败 |
99
+
100
+ **示例:**
101
+
102
+ ```python
103
+ from kuaijs import pip, utils
104
+
105
+ # 将应用切入前台
106
+ utils.takeMeToFront()
107
+
108
+ # 显示悬浮窗
109
+ success = pip.showLogWindow()
110
+ if success:
111
+ print("悬浮窗显示成功")
112
+ else:
113
+ print("悬浮窗显示失败,请检查权限设置")
114
+ ```
115
+
116
+ ### closeLogWindow - 关闭日志窗口
117
+
118
+ 关闭悬浮窗日志窗口。应用必须在前台才可调用。
119
+
120
+ ```python
121
+ def closeLogWindow() -> bool
122
+ ```
123
+
124
+ **返回值:**
125
+
126
+ | 类型 | 描述 |
127
+ | ------ | --------------------------------- |
128
+ | `bool` | `True` 代表成功,`False` 代表失败 |
129
+
130
+ **示例:**
131
+
132
+ ```python
133
+ from kuaijs import pip, utils
134
+
135
+ # 将应用切入前台
136
+ utils.takeMeToFront()
137
+
138
+ # 关闭悬浮窗
139
+ success = pip.closeLogWindow()
140
+ if success:
141
+ print("悬浮窗关闭成功")
142
+ else:
143
+ print("悬浮窗关闭失败")
144
+ ```
145
+
146
+ ### setPipCtrlScript - 设置脚本控制权限
147
+
148
+ 设置是否允许悬浮窗控制脚本的启停。
149
+
150
+ ```python
151
+ def setPipCtrlScript(ctrl: bool) -> bool
152
+ ```
153
+
154
+ **参数:**
155
+
156
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
157
+ | ------ | ------ | -------- | ------ | ------------------------------------------- |
158
+ | `ctrl` | `bool` | 是 | - | `True` 代表允许控制,`False` 代表不允许控制 |
159
+
160
+ **返回值:**
161
+
162
+ | 类型 | 描述 |
163
+ | ------ | --------------------------------- |
164
+ | `bool` | `True` 代表成功,`False` 代表失败 |
165
+
166
+ **示例:**
167
+
168
+ ```python
169
+ from kuaijs import pip
170
+
171
+ # 允许悬浮窗控制脚本
172
+ ok1 = pip.setPipCtrlScript(True)
173
+
174
+ # 禁止悬浮窗控制脚本
175
+ ok2 = pip.setPipCtrlScript(False)
176
+ ```
177
+
178
+ ## 完整使用示例
179
+
180
+ ```python
181
+ from kuaijs import pip, utils
182
+
183
+ # 将应用切入前台
184
+ utils.takeMeToFront()
185
+
186
+ # 1. 配置悬浮窗参数
187
+ pip.setLogViewParams({
188
+ "width": 350,
189
+ "height": 500,
190
+ "textSize": 16,
191
+ "textColor": "#00FF00", # 绿色文字
192
+ "backgroundColor": "#1A1A1A" # 深灰色背景
193
+ })
194
+
195
+ # 2. 允许悬浮窗控制脚本
196
+ pip.setPipCtrlScript(True)
197
+
198
+ # 3. 显示悬浮窗
199
+ pip.showLogWindow()
200
+ ```
201
+
202
+ ## 注意事项
203
+
204
+ 1. **前台限制**:所有悬浮窗操作都必须在应用前台状态下进行
205
+ 2. **设备兼容性**:仅支持 iOS 15+ 且具备画中画功能的设备
206
+ 3. **参数限制**:悬浮窗的宽度和高度都不能小于 100 像素
207
+ 4. **配置时机**:`setLogViewParams()` 必须在 `showLogWindow()` 之前调用
208
+ 5. **颜色格式**:颜色值必须使用十六进制格式(如:`#FFFFFF`)
209
+ 6. **尺寸适配**:iOS 系统会对画中画窗口的尺寸进行限制和自动调整,实际显示的画中画窗口大小可能与设置的 `width` 和 `height` 参数不完全一致
210
+ 7. **内容渲染**:画中画内容渲染会自动适配系统分配的实际窗口尺寸,而不是使用配置的尺寸参数
211
+ 8. **脚本控制**:如果已调用 `setPipCtrlScript(True)`,则可以通过悬浮窗控制脚本的启停
212
+
213
+ ## 故障排除
214
+
215
+ ### 悬浮窗无法显示
216
+
217
+ - 确认设备支持悬浮窗功能
218
+ - 检查悬浮窗权限是否已开启
219
+ - 确认参数配置是否正确(宽高不小于 100)
220
+
221
+ ### 悬浮窗显示异常
222
+
223
+ - 检查颜色值格式是否正确
224
+ - 确认字体大小设置是否合理
225
+ - 验证窗口尺寸是否在有效范围内
226
+
227
+ ### 脚本控制无效
228
+
229
+ - 确认已调用 `setPipCtrlScript(True)`
230
+ - 检查悬浮窗是否正常显示
231
+ - 验证脚本运行状态是否正常