ms-vite-plugin 1.1.2 → 1.1.4

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 +91 -1
  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,284 @@
1
+ # 工具模块 (Utils)
2
+
3
+ 工具模块提供了一系列实用的工具函数,包括时间格式化、资源文件读取、随机数生成、应用前台切换等常用功能。
4
+
5
+ ## 功能概览
6
+
7
+ - **时间处理**: 时间格式化功能
8
+ - **随机数生成**: 生成指定范围的随机数
9
+ - **应用控制**: 将应用切换到前台
10
+ - **编码转换**: 字符串编码与解码工具
11
+
12
+ ## API 参考
13
+
14
+ ### 时间处理
15
+
16
+ #### timeFormat - 格式化当前时间为指定格式的字符串。
17
+
18
+ ```python
19
+ def timeFormat(format: str) -> str
20
+ ```
21
+
22
+ **参数:**
23
+
24
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
25
+ | -------- | ---- | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
26
+ | `format` | str | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `hh` - 两位小时(24 小时制)<br> `mm` - 两位分钟<br> `ss` - 两位秒数 |
27
+
28
+ **返回值:**
29
+
30
+ | 类型 | 描述 |
31
+ | ----- | -------------------- |
32
+ | `str` | 格式化后的时间字符串 |
33
+
34
+ **示例:**
35
+
36
+ ```python
37
+ from kuaijs import utils, logger
38
+
39
+ # 标准日期时间格式
40
+ dateTime = utils.timeFormat("yyyy-MM-dd hh:mm:ss")
41
+ logger.info(dateTime) # 输出: 2024-01-15 14:30:25
42
+
43
+ # 仅日期格式
44
+ date = utils.timeFormat("yyyy-MM-dd")
45
+ logger.info(date) # 输出: 2024-01-15
46
+
47
+ # 仅时间格式
48
+ time = utils.timeFormat("hh:mm:ss")
49
+ logger.info(time) # 输出: 14:30:25
50
+
51
+ # 自定义分隔符
52
+ customFormat = utils.timeFormat("yyyy/MM/dd hh:mm")
53
+ logger.info(customFormat) # 输出: 2024/01/15 14:30
54
+
55
+ # 紧凑格式
56
+ compact = utils.timeFormat("yyyyMMddhhmmss")
57
+ logger.info(compact) # 输出: 20240115143025
58
+ ```
59
+
60
+ ### 随机数生成
61
+
62
+ #### random - 生成指定范围内的随机整数。
63
+
64
+ ```python
65
+ def random(min: int, max: int) -> int
66
+ ```
67
+
68
+ **参数:**
69
+
70
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
71
+ | ------ | ---- | -------- | ------ | -------------- |
72
+ | `min` | int | 是 | | 最小值(包含) |
73
+ | `max` | int | 是 | | 最大值(包含) |
74
+
75
+ **返回值:**
76
+
77
+ | 类型 | 描述 |
78
+ | ----- | -------------------- |
79
+ | `int` | 指定范围内的随机整数 |
80
+
81
+ **示例:**
82
+
83
+ ```python
84
+ from kuaijs import utils, logger
85
+ import os
86
+
87
+ # 生成1-10之间的随机数
88
+ randomNum = utils.random(1, 10)
89
+ logger.info(f"随机数: {randomNum}")
90
+
91
+ # 生成0-100之间的随机数
92
+ percentage = utils.random(0, 100)
93
+ logger.info(f"随机百分比: {percentage}")
94
+
95
+ # 生成随机延迟时间(毫秒)
96
+ delay = utils.random(1000, 5000)
97
+ logger.info(f"随机延迟: {delay} 毫秒")
98
+ os.sleep(delay / 1000.0)
99
+
100
+ # 生成随机索引
101
+ array = ["apple", "banana", "orange", "grape"]
102
+ randomIndex = utils.random(0, len(array) - 1)
103
+ logger.info(f"随机选择: {array[randomIndex]}")
104
+ ```
105
+
106
+ #### randomUUID - 生成随机 UUID。
107
+
108
+ ```python
109
+ def randomUUID() -> str
110
+ ```
111
+
112
+ **返回值:**
113
+
114
+ | 类型 | 描述 |
115
+ | ----- | ---------------- |
116
+ | `str` | 随机 UUID 字符串 |
117
+
118
+ **示例:**
119
+
120
+ ```python
121
+ from kuaijs import utils, logger
122
+
123
+ uuid = utils.randomUUID()
124
+ logger.info(uuid)
125
+ ```
126
+
127
+ ### 应用控制
128
+
129
+ #### takeMeToFront - 将快点 JS 应用切换到前台显示。
130
+
131
+ **注意事项**
132
+
133
+ - 此模块仅支持 快点 Agent 模式使用
134
+
135
+ ```python
136
+ def takeMeToFront() -> bool
137
+ ```
138
+
139
+ **示例:**
140
+
141
+ ```python
142
+ from kuaijs import utils, logger
143
+
144
+ # 将应用切换到前台
145
+ utils.takeMeToFront()
146
+ logger.info("应用已切换到前台")
147
+ ```
148
+
149
+ ### 编码转换
150
+
151
+ #### hexString - 字符串转 Hex 字符串。
152
+
153
+ ```python
154
+ def hexString(source: str) -> str
155
+ ```
156
+
157
+ **参数:**
158
+
159
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
160
+ | -------- | ---- | -------- | ------ | -------- |
161
+ | `source` | str | 是 | | 源字符串 |
162
+
163
+ **返回值:**
164
+
165
+ | 类型 | 描述 |
166
+ | ----- | ---------- |
167
+ | `str` | Hex 字符串 |
168
+
169
+ **示例:**
170
+
171
+ ```python
172
+ from kuaijs import utils, logger
173
+
174
+ hex_str = utils.hexString("hello")
175
+ logger.info(hex_str)
176
+ ```
177
+
178
+ #### base64Encoded - 字符串转 Base64。
179
+
180
+ ```python
181
+ def base64Encoded(source: str) -> str
182
+ ```
183
+
184
+ **参数:**
185
+
186
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
187
+ | -------- | ---- | -------- | ------ | -------- |
188
+ | `source` | str | 是 | | 源字符串 |
189
+
190
+ **返回值:**
191
+
192
+ | 类型 | 描述 |
193
+ | ----- | ------------- |
194
+ | `str` | Base64 字符串 |
195
+
196
+ **示例:**
197
+
198
+ ```python
199
+ from kuaijs import utils, logger
200
+
201
+ b64 = utils.base64Encoded("hello")
202
+ logger.info(b64)
203
+ ```
204
+
205
+ #### base64Decoded - Base64 转字符串。
206
+
207
+ ```python
208
+ def base64Decoded(source: str) -> str
209
+ ```
210
+
211
+ **参数:**
212
+
213
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
214
+ | -------- | ---- | -------- | ------ | ------------- |
215
+ | `source` | str | 是 | | Base64 字符串 |
216
+
217
+ **返回值:**
218
+
219
+ | 类型 | 描述 |
220
+ | ----- | -------------- |
221
+ | `str` | 解码后的字符串 |
222
+
223
+ **示例:**
224
+
225
+ ```python
226
+ from kuaijs import utils, logger
227
+
228
+ original = utils.base64Decoded("aGVsbG8=")
229
+ logger.info(original)
230
+ ```
231
+
232
+ #### hexStringBase64Encoded - 16 进制字符串转 Base64。
233
+
234
+ ```python
235
+ def hexStringBase64Encoded(hexString: str) -> str
236
+ ```
237
+
238
+ **参数:**
239
+
240
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
241
+ | ----------- | ---- | -------- | ------ | ------------- |
242
+ | `hexString` | str | 是 | | 16 进制字符串 |
243
+
244
+ **返回值:**
245
+
246
+ | 类型 | 描述 |
247
+ | ----- | ------------- |
248
+ | `str` | Base64 字符串 |
249
+
250
+ **示例:**
251
+
252
+ ```python
253
+ from kuaijs import utils, logger
254
+
255
+ b64 = utils.hexStringBase64Encoded("68656c6c6f")
256
+ logger.info(b64)
257
+ ```
258
+
259
+ #### hexStringBase64Decoded - Base64 转 16 进制字符串。
260
+
261
+ ```python
262
+ def hexStringBase64Decoded(base64HexString: str) -> str
263
+ ```
264
+
265
+ **参数:**
266
+
267
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
268
+ | ----------------- | ---- | -------- | ------ | ------------- |
269
+ | `base64HexString` | str | 是 | | Base64 字符串 |
270
+
271
+ **返回值:**
272
+
273
+ | 类型 | 描述 |
274
+ | ----- | ------------- |
275
+ | `str` | 16 进制字符串 |
276
+
277
+ **示例:**
278
+
279
+ ```python
280
+ from kuaijs import utils, logger
281
+
282
+ hex_str = utils.hexStringBase64Decoded("aGVsbG8=")
283
+ logger.info(hex_str)
284
+ ```
@@ -0,0 +1,281 @@
1
+ # YOLO 目标检测模块 (YOLO)
2
+
3
+ YOLO 模块基于 YOLOV8/YOLO11/YOLO26 算法和 NCNN 框架,提供高性能的实时目标检测功能,支持多种输入源和自定义模型,可用于物体识别、位置定位等应用场景。
4
+
5
+ ## 数据标注
6
+
7
+ 查看 [快点 Label](../label/dataAnnotation.md) 了解如何进行数据标注。
8
+
9
+ ## 功能概览
10
+
11
+ - **模型管理**: YOLOV8/YOLOV11/YOLOV26 模型加载和资源管理
12
+ - **目标检测**: 实时物体检测和位置识别
13
+ - **多源输入**: 支持屏幕截图、图片文件、URL 等多种输入源
14
+ - **结果处理**: 完整的检测结果信息和坐标数据
15
+ - **资源控制**: 完整的模型生命周期管理
16
+
17
+ ## 测试结果
18
+
19
+ | 设备型号 | 模型类型 | 检测耗时 |
20
+ | ---------- | ---------------- | --------- |
21
+ | iPhoneX | yolov8n(80 类别) | 70-100ms |
22
+ | iPhoneX | yolov8s(80 类别) | 160-200ms |
23
+ | iPhone SE3 | yolov8n(80 类别) | 30-50ms |
24
+ | iPhone SE3 | yolov8s(80 类别) | 70-100ms |
25
+
26
+ ## 数据结构
27
+
28
+ ### YoloResult
29
+
30
+ YOLO 检测结果字典,包含检测到的物体的完整信息。
31
+
32
+ ```python
33
+ from typing import TypedDict
34
+
35
+ class YoloResult(TypedDict):
36
+ x: int # 检测框的左上角x坐标
37
+ y: int # 检测框的左上角y坐标
38
+ ex: int # 检测框的右下角x坐标
39
+ ey: int # 检测框的右下角y坐标
40
+ centerX: int # 检测框的中心点x坐标
41
+ centerY: int # 检测框的中心点y坐标
42
+ width: int # 检测框的宽度
43
+ height: int # 检测框的高度
44
+ confidence: float # 检测框的置信度 (0-1)
45
+ classId: int # 检测框的类别ID
46
+ ```
47
+
48
+ **字段说明:**
49
+
50
+ | 字段名 | 类型 | 描述 |
51
+ | ------------------ | ----- | ------------------------------------------ |
52
+ | `x, y` | int | 检测框左上角坐标 |
53
+ | `ex, ey` | int | 检测框右下角坐标 |
54
+ | `centerX, centerY` | int | 检测框中心点坐标 |
55
+ | `width, height` | int | 检测框尺寸 |
56
+ | `confidence` | float | 检测置信度,范围 0-1,值越高表示检测越可靠 |
57
+ | `classId` | int | 物体类别 ID,对应训练模型的类别标签 |
58
+
59
+ ## API 参考
60
+
61
+ ### 模型管理
62
+
63
+ #### load - 加载 YOLO 模型(支持版本 8/11/26)
64
+
65
+ 加载模型是使用目标检测功能的前提。
66
+
67
+ ```python
68
+ def load(paramPath: str, binPath: str, nc: int, version: int = 11) -> Optional[str]
69
+ ```
70
+
71
+ **参数:**
72
+
73
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
74
+ | ----------- | ---- | -------- | ------ | ------------------------------------------- |
75
+ | `paramPath` | str | 是 | - | NCNN 模型的 param 文件绝对路径 |
76
+ | `binPath` | str | 是 | - | NCNN 模型的 bin 文件绝对路径 |
77
+ | `nc` | int | 是 | - | 模型的标签数量(在标签集 data.yaml 中查看) |
78
+ | `version` | int | 否 | 11 | YOLO 模型版本号(仅支持 8/11/26) |
79
+
80
+ **返回值:**
81
+
82
+ | 类型 | 描述 |
83
+ | ------------- | ------------------------------------ |
84
+ | `str \| None` | 加载成功返回模型 ID,失败返回 `None` |
85
+
86
+ **示例:**
87
+
88
+ ```python
89
+ from kuaijs import yolo
90
+
91
+ # 加载 YOLOv8 模型
92
+ model_id = yolo.load(
93
+ "yolov8n_ncnn_model/model.ncnn.param",
94
+ "yolov8n_ncnn_model/model.ncnn.bin",
95
+ 80,
96
+ 8,
97
+ )
98
+ ```
99
+
100
+ #### loadV11 - 加载 YOLOv11 模型(兼容 yolov8)
101
+
102
+ 加载模型是使用目标检测功能的前提。
103
+
104
+ ```python
105
+ def loadV11(paramPath: str, binPath: str, nc: int) -> Optional[str]
106
+ ```
107
+
108
+ **参数:**
109
+
110
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
111
+ | ----------- | ---- | -------- | ------ | ------------------------------------------- |
112
+ | `paramPath` | str | 是 | - | NCNN 模型的 param 文件绝对路径 |
113
+ | `binPath` | str | 是 | - | NCNN 模型的 bin 文件绝对路径 |
114
+ | `nc` | int | 是 | - | 模型的标签数量(在标签集 data.yaml 中查看) |
115
+
116
+ **返回值:**
117
+
118
+ | 类型 | 描述 |
119
+ | ------------- | ------------------------------------ |
120
+ | `str \| None` | 加载成功返回模型 ID,失败返回 `None` |
121
+
122
+ **示例:**
123
+
124
+ ```python
125
+ from kuaijs import yolo
126
+
127
+ # 加载 YOLOv11 模型
128
+ # 模型放在res目录
129
+ model_id = yolo.loadV11(
130
+ "yolo11n_ncnn_model/model.ncnn.param",
131
+ "yolo11n_ncnn_model/model.ncnn.bin",
132
+ 80 # COCO 数据集有 80 个类别
133
+ )
134
+
135
+ if model_id:
136
+ print(f"模型加载成功,ID: {model_id}")
137
+ else:
138
+ print("模型加载失败,请检查文件路径和格式")
139
+ ```
140
+
141
+ ### 目标检测
142
+
143
+ #### detect - 执行目标检测
144
+
145
+ 识别图像中的物体并返回检测结果。
146
+
147
+ ```python
148
+ def detect(
149
+ modelId: str,
150
+ img: str,
151
+ targetSize: int = 640,
152
+ threshold: float = 0.4,
153
+ nmsThreshold: float = 0.5
154
+ ) -> List[YoloResult]
155
+ ```
156
+
157
+ **参数:**
158
+
159
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
160
+ | -------------- | ----- | -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
161
+ | `modelId` | str | 是 | - | 模型 ID(通过 `loadV11` 获取) |
162
+ | `img` | str | 是 | - | 图像输入源:<br>- `"screen"` - 使用当前屏幕截图<br>- `str` - 图片文件路径或 HTTP 图片地址<br>- `imageId` - 图片 ID(通过 image 模块获取) |
163
+ | `targetSize` | int | 否 | 640 | 图像缩放的检测大小,通常为 640(与模型训练时一致) |
164
+ | `threshold` | float | 否 | 0.4 | 置信度阈值,默认 0.4,低于此值的检测结果会被过滤 |
165
+ | `nmsThreshold` | float | 否 | 0.5 | 非极大值抑制阈值,默认 0.5,用于去除重叠检测框 |
166
+
167
+ **返回值:**
168
+
169
+ | 类型 | 描述 |
170
+ | ------------------ | ---------------------------------------------- |
171
+ | `List[YoloResult]` | 检测结果数组,每个元素包含一个检测到的物体信息 |
172
+
173
+ **示例:**
174
+
175
+ ```python
176
+ from kuaijs import yolo
177
+
178
+ # 首先加载模型
179
+ mid = yolo.loadV11("yolo11n_ncnn_model/model.ncnn.param", "yolo11n_ncnn_model/model.ncnn.bin", 80)
180
+
181
+ if not mid:
182
+ print("模型加载失败")
183
+ else:
184
+ # 检测当前屏幕
185
+ screen_results = yolo.detect(
186
+ mid,
187
+ "screen", # 使用当前屏幕
188
+ 640, # 标准检测尺寸
189
+ 0.4, # 置信度阈值
190
+ 0.5 # NMS 阈值
191
+ )
192
+
193
+ print(f"屏幕检测到 {len(screen_results)} 个物体")
194
+
195
+ for i, r in enumerate(screen_results):
196
+ print(f"物体 {i + 1}:")
197
+ print(f" 类别ID: {r.classId}")
198
+ print(f" 置信度: {round(r.confidence * 100, 2)}%")
199
+ print(f" 边界框: ({r.x}, {r.y}, {r.ex}, {r.ey})")
200
+ print(f" 中心点: ({r.centerX}, {r.centerY})")
201
+ print(f" 尺寸: {r.width} x {r.height}")
202
+
203
+ # 检测图片文件
204
+ image_results = yolo.detect(
205
+ mid,
206
+ "/path/to/test_image.jpg",
207
+ 640,
208
+ 0.3, # 降低置信度阈值以检测更多物体
209
+ 0.5
210
+ )
211
+
212
+ if image_results:
213
+ print(f"图片中检测到 {len(image_results)} 个物体")
214
+ for r in image_results:
215
+ print(f"检测到类别 {r.classId},置信度: {round(r.confidence, 3)}")
216
+ else:
217
+ print("图片中未检测到任何物体")
218
+
219
+ # 检测网络图片
220
+ url_results = yolo.detect(
221
+ mid,
222
+ "https://example.com/test_image.jpg",
223
+ 640,
224
+ 0.5, # 提高置信度阈值以获得更可靠的结果
225
+ 0.4
226
+ )
227
+ print(f"网络图片检测结果: {len(url_results)} 个物体")
228
+ ```
229
+
230
+ ### 资源管理
231
+
232
+ #### free - 释放指定模型
233
+
234
+ 释放指定模型的资源。
235
+
236
+ ```python
237
+ def free(modelId: str) -> None
238
+ ```
239
+
240
+ **参数:**
241
+
242
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
243
+ | --------- | ---- | -------- | ------ | --------------- |
244
+ | `modelId` | str | 是 | - | 要释放的模型 ID |
245
+
246
+ **示例:**
247
+
248
+ ```python
249
+ from kuaijs import yolo
250
+
251
+ # 释放特定模型
252
+ if model_id:
253
+ yolo.free(model_id)
254
+ print(f"模型 {model_id} 资源已释放")
255
+
256
+ # 使用完毕后释放资源
257
+ def cleanup_model(mid):
258
+ if mid:
259
+ yolo.free(mid)
260
+ print("模型资源已清理")
261
+
262
+ cleanup_model(model_id)
263
+ ```
264
+
265
+ #### freeAll - 释放所有模型
266
+
267
+ 释放所有已加载模型的资源。
268
+
269
+ ```python
270
+ def freeAll() -> None
271
+ ```
272
+
273
+ **示例:**
274
+
275
+ ```python
276
+ from kuaijs import yolo
277
+
278
+ # 释放所有模型资源
279
+ yolo.freeAll()
280
+ print("所有 YOLO 模型资源已释放")
281
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ms-vite-plugin",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "type": "commonjs",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -8,17 +8,20 @@
8
8
  },
9
9
  "files": [
10
10
  "dist",
11
- "bin"
11
+ "bin",
12
+ "docs"
12
13
  ],
13
14
  "bin": {
14
15
  "ms-cli": "dist/cli.js",
15
- "ms": "dist/cli.js"
16
+ "ms": "dist/cli.js",
17
+ "ms-mcp": "dist/mcp-server.js"
16
18
  },
17
19
  "scripts": {
18
20
  "build": "tsc",
19
21
  "prepublishOnly": "npm run build"
20
22
  },
21
23
  "dependencies": {
24
+ "@modelcontextprotocol/sdk": "^1.18.1",
22
25
  "archiver": "^7.0.1",
23
26
  "commander": "^14.0.3",
24
27
  "crc": "^4.3.2",
@@ -26,7 +29,8 @@
26
29
  "uuid": "^14.0.0",
27
30
  "vite": "^8.0.9",
28
31
  "vite-plugin-bundle-obfuscator": "^1.11.0",
29
- "ws": "^8.20.0"
32
+ "ws": "^8.20.0",
33
+ "zod": "^4.1.12"
30
34
  },
31
35
  "devDependencies": {
32
36
  "@types/archiver": "^7.0.0",