@microi.net/cli 5.2.6 → 5.2.8
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.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/assets/build-meta.json +5 -5
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +59 -59
- package/scripts/microi-cli.js +52 -29
- package/scripts/microi-skills.meta.json +221 -221
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +95 -95
- package/skills/ai-engine/SKILL.md +12 -4
- package/skills/app-store/SKILL.md +41 -20
- package/skills/message-notification/SKILL.md +8 -1
- package/skills/microi-client-frontend/SKILL.md +1 -1
- package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +1 -1
- package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +2 -2
- package/skills/microi-docs-coverage/references/capability-map.md +2 -1
- package/skills/microi-form-layout/SKILL.md +6 -6
- package/skills/microi-frontend-sdk/SKILL.md +6 -6
- package/skills/microi-sso/SKILL.md +1 -1
- package/skills/microi-sso/references/acceptance.md +1 -1
- package/skills/microi-sso/references/configuration-and-security.md +1 -1
- package/skills/microi-system-delivery/SKILL.md +2 -2
- package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +1 -1
- package/skills/microi.v8.js +1 -1
- package/skills/system-observability/SKILL.md +25 -7
- package/skills/translate-engine/SKILL.md +3 -0
- package/skills/ui-design/SKILL.md +1 -1
- package/skills/v8-api-config/SKILL.md +31 -9
- package/skills/v8-cache-pattern/SKILL.md +304 -289
- package/skills/v8-file-upload/SKILL.md +11 -8
- package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +1 -1
- package/skills/v8-menu-buttons/SKILL.md +1 -1
- package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +1 -1
- package/skills/v8-mongodb/SKILL.md +58 -18
- package/skills/v8-mq-mqtt/SKILL.md +130 -109
- package/skills/v8-mq-mqtt/references/mqtt-production.md +3 -2
- package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +14 -16
- package/skills/v8-saas-multi-tenant/SKILL.md +3 -0
- package/skills/v8-security/SKILL.md +10 -6
- package/skills/v8-table-event/SKILL.md +1 -1
- package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +1 -1
- package/skills/v8-utilities/SKILL.md +1 -1
- package/skills/v8-utilities/references/platform-http-routes.md +4 -2
- package/skills/v8-utilities/references/server-api-index.md +31 -10
- package/skills/v8-workflow/SKILL.md +1 -1
- package/skills/workspace-conventions/SKILL.md +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-24T23:28:15.830Z",
|
|
4
4
|
"policy": {
|
|
5
5
|
"maxEntryLines": 285,
|
|
6
6
|
"referenceBudgetLines": 245,
|
|
@@ -169,11 +169,11 @@
|
|
|
169
169
|
]
|
|
170
170
|
},
|
|
171
171
|
"microi-client-frontend": {
|
|
172
|
-
"originalSha256": "
|
|
173
|
-
"originalLines":
|
|
172
|
+
"originalSha256": "6f13faa9f35651d2cbda9d4b8283a326537b27724acbf4bf855c5d4138d7d3b0",
|
|
173
|
+
"originalLines": 661,
|
|
174
174
|
"prefixSha256": "65cd4f270c1895c459014ab1ce7c376f69ec5469fe94ddf0f82827eb8616d579",
|
|
175
175
|
"prefixBytes": 781,
|
|
176
|
-
"entryLines":
|
|
176
|
+
"entryLines": 212,
|
|
177
177
|
"chunks": [
|
|
178
178
|
{
|
|
179
179
|
"id": "microi-client-frontend-000",
|
|
@@ -195,8 +195,8 @@
|
|
|
195
195
|
"id": "microi-client-frontend-002",
|
|
196
196
|
"ordinal": 2,
|
|
197
197
|
"destination": "microi-client-frontend/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
199
|
-
"lines":
|
|
198
|
+
"sha256": "ca442fa8a4990040aa7172dd37b49437bc6de0c9b1f88d889a30f5e936321aa1",
|
|
199
|
+
"lines": 104,
|
|
200
200
|
"heading": "2. 表单引擎三层结构"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
"id": "microi-client-frontend-005",
|
|
220
220
|
"ordinal": 3,
|
|
221
221
|
"destination": "microi-client-frontend/references/progressive-01-3-动态按钮系统.md",
|
|
222
|
-
"sha256": "
|
|
222
|
+
"sha256": "0ffafbd99fc0ee478db91200bfc3645c288f20d45120cd7413fb00ac3fbd8952",
|
|
223
223
|
"lines": 42,
|
|
224
224
|
"heading": "3. 动态按钮系统"
|
|
225
225
|
},
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
"id": "microi-client-frontend-013",
|
|
284
284
|
"ordinal": 13,
|
|
285
285
|
"destination": "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md",
|
|
286
|
-
"sha256": "
|
|
286
|
+
"sha256": "8f876b46e20dce5020e17f87ac6f9acfb37c908ab27f7c9568d59e9e7a00d3b2",
|
|
287
287
|
"lines": 15,
|
|
288
288
|
"heading": "浏览器访问密钥路由"
|
|
289
289
|
}
|
|
@@ -316,17 +316,17 @@
|
|
|
316
316
|
]
|
|
317
317
|
},
|
|
318
318
|
"microi-form-layout": {
|
|
319
|
-
"originalSha256": "
|
|
320
|
-
"originalLines":
|
|
321
|
-
"prefixSha256": "
|
|
322
|
-
"prefixBytes":
|
|
323
|
-
"entryLines":
|
|
319
|
+
"originalSha256": "06f5ede02c22b7b060889b938b7d2bf1c9aab96f5a5708c50b3a88534acfaa56",
|
|
320
|
+
"originalLines": 412,
|
|
321
|
+
"prefixSha256": "619ed5b612cb11a3eafaa85f9f3aadc09a02f1e0e4ee04997c3ae65133354db5",
|
|
322
|
+
"prefixBytes": 4214,
|
|
323
|
+
"entryLines": 206,
|
|
324
324
|
"chunks": [
|
|
325
325
|
{
|
|
326
326
|
"id": "microi-form-layout-000",
|
|
327
327
|
"ordinal": 0,
|
|
328
328
|
"destination": "microi-form-layout/SKILL.md",
|
|
329
|
-
"sha256": "
|
|
329
|
+
"sha256": "79fcf1787c0fbdbe51363f25fcf72b060b714eed9cbc5593760f9080cff48e31",
|
|
330
330
|
"lines": 10,
|
|
331
331
|
"heading": "1. 三种分组能力速查"
|
|
332
332
|
},
|
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
"id": "microi-form-layout-001",
|
|
335
335
|
"ordinal": 1,
|
|
336
336
|
"destination": "microi-form-layout/SKILL.md",
|
|
337
|
-
"sha256": "
|
|
337
|
+
"sha256": "eb8f9a306f46484217f8fc6094a7dc8ea1f5315187430329d79fa71134c3b2da",
|
|
338
338
|
"lines": 50,
|
|
339
339
|
"heading": "2. 黄金决策流程(AI 必须按此顺序判断)"
|
|
340
340
|
},
|
|
@@ -342,7 +342,7 @@
|
|
|
342
342
|
"id": "microi-form-layout-002",
|
|
343
343
|
"ordinal": 3,
|
|
344
344
|
"destination": "microi-form-layout/SKILL.md",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "119311f1ec30de83c323a0604c0aefb12676da7c421fc459d1555b0a1a7858d0",
|
|
346
346
|
"lines": 41,
|
|
347
347
|
"heading": "4. AI 生成表单布局的标准动作"
|
|
348
348
|
},
|
|
@@ -350,15 +350,15 @@
|
|
|
350
350
|
"id": "microi-form-layout-003",
|
|
351
351
|
"ordinal": 4,
|
|
352
352
|
"destination": "microi-form-layout/SKILL.md",
|
|
353
|
-
"sha256": "
|
|
354
|
-
"lines":
|
|
353
|
+
"sha256": "02934831afff7bd9065406b074f5780cb5686ccdb63fcb350b8c409dad315c74",
|
|
354
|
+
"lines": 29,
|
|
355
355
|
"heading": "5. 必填与禁止"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"id": "microi-form-layout-004",
|
|
359
359
|
"ordinal": 5,
|
|
360
360
|
"destination": "microi-form-layout/SKILL.md",
|
|
361
|
-
"sha256": "
|
|
361
|
+
"sha256": "5de749261dec123edd0fc9186188cb90887892490298dad9d6944670457177df",
|
|
362
362
|
"lines": 20,
|
|
363
363
|
"heading": "6. 验收清单"
|
|
364
364
|
},
|
|
@@ -366,7 +366,7 @@
|
|
|
366
366
|
"id": "microi-form-layout-005",
|
|
367
367
|
"ordinal": 8,
|
|
368
368
|
"destination": "microi-form-layout/SKILL.md",
|
|
369
|
-
"sha256": "
|
|
369
|
+
"sha256": "941d45f4389751946df34ec388e28adbbe9965d6ad9f637f48fd35cc6aca5065",
|
|
370
370
|
"lines": 8,
|
|
371
371
|
"heading": "9. 与其他 Skill 的关系"
|
|
372
372
|
},
|
|
@@ -407,17 +407,17 @@
|
|
|
407
407
|
]
|
|
408
408
|
},
|
|
409
409
|
"microi-frontend-sdk": {
|
|
410
|
-
"originalSha256": "
|
|
410
|
+
"originalSha256": "7d244b24626787ccc88be38f5088ffcd6dbb736a8155a1ab7ae71ce134284644",
|
|
411
411
|
"originalLines": 317,
|
|
412
|
-
"prefixSha256": "
|
|
413
|
-
"prefixBytes":
|
|
414
|
-
"entryLines":
|
|
412
|
+
"prefixSha256": "5ee94a9174a22577011c64f29a93f6983c8450d471d26f12fa884d7c4b3a879a",
|
|
413
|
+
"prefixBytes": 895,
|
|
414
|
+
"entryLines": 190,
|
|
415
415
|
"chunks": [
|
|
416
416
|
{
|
|
417
417
|
"id": "microi-frontend-sdk-000",
|
|
418
418
|
"ordinal": 0,
|
|
419
419
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
420
|
-
"sha256": "
|
|
420
|
+
"sha256": "4b1d4f626b1c4de344339a2fba6b2eaf48e9e5a018c2faa1f7480b90254a4cfb",
|
|
421
421
|
"lines": 45,
|
|
422
422
|
"heading": "必须采用的模式"
|
|
423
423
|
},
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
"id": "microi-frontend-sdk-001",
|
|
426
426
|
"ordinal": 1,
|
|
427
427
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
428
|
-
"sha256": "
|
|
428
|
+
"sha256": "c418c6c9e6846d2ce4db04501520036e2c6b0f162c282d6e099e802c9b83f72d",
|
|
429
429
|
"lines": 14,
|
|
430
430
|
"heading": "必须委托 SDK 的能力"
|
|
431
431
|
},
|
|
@@ -433,7 +433,7 @@
|
|
|
433
433
|
"id": "microi-frontend-sdk-002",
|
|
434
434
|
"ordinal": 2,
|
|
435
435
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
436
|
-
"sha256": "
|
|
436
|
+
"sha256": "54b302bfe2a8830a3043ae7804ca775d6159453bea0cfdeac61c3b97d36466ed",
|
|
437
437
|
"lines": 48,
|
|
438
438
|
"heading": "登录与验证码封装"
|
|
439
439
|
},
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
"id": "microi-frontend-sdk-003",
|
|
442
442
|
"ordinal": 3,
|
|
443
443
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
444
|
-
"sha256": "
|
|
444
|
+
"sha256": "fd0dbc19f767d1b69c41582a99d2c578c2e4ee8c871df89fd67ed054641d1931",
|
|
445
445
|
"lines": 11,
|
|
446
446
|
"heading": "请求头规则"
|
|
447
447
|
},
|
|
@@ -449,7 +449,7 @@
|
|
|
449
449
|
"id": "microi-frontend-sdk-004",
|
|
450
450
|
"ordinal": 5,
|
|
451
451
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
452
|
-
"sha256": "
|
|
452
|
+
"sha256": "f5644fc45280e53988d1eed432e57afc2c56fc58b1232505950359219b5220d2",
|
|
453
453
|
"lines": 17,
|
|
454
454
|
"heading": "上传规则"
|
|
455
455
|
},
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
"id": "microi-frontend-sdk-005",
|
|
458
458
|
"ordinal": 6,
|
|
459
459
|
"destination": "microi-frontend-sdk/SKILL.md",
|
|
460
|
-
"sha256": "
|
|
460
|
+
"sha256": "ea5ffc6757b73bb3251b34d26b2902674c3a0c7f5277dcf8745e39ff11fe6b56",
|
|
461
461
|
"lines": 23,
|
|
462
462
|
"heading": "项目封装规则"
|
|
463
463
|
},
|
|
@@ -745,17 +745,17 @@
|
|
|
745
745
|
]
|
|
746
746
|
},
|
|
747
747
|
"microi-system-delivery": {
|
|
748
|
-
"originalSha256": "
|
|
749
|
-
"originalLines":
|
|
750
|
-
"prefixSha256": "
|
|
751
|
-
"prefixBytes":
|
|
752
|
-
"entryLines":
|
|
748
|
+
"originalSha256": "8c6b1c249454fa833693406b7de31d7f1e729ed87df5b9df64d182026da18ce7",
|
|
749
|
+
"originalLines": 503,
|
|
750
|
+
"prefixSha256": "0af36d909e7a31f49d0c8dcd66478251a1c9140a2dd7e118da7a99415448e563",
|
|
751
|
+
"prefixBytes": 1529,
|
|
752
|
+
"entryLines": 137,
|
|
753
753
|
"chunks": [
|
|
754
754
|
{
|
|
755
755
|
"id": "microi-system-delivery-000",
|
|
756
756
|
"ordinal": 0,
|
|
757
757
|
"destination": "microi-system-delivery/SKILL.md",
|
|
758
|
-
"sha256": "
|
|
758
|
+
"sha256": "088aaa73360be7d63b64ca476e884371140c7807d118c05f04d87a12de0c7701",
|
|
759
759
|
"lines": 12,
|
|
760
760
|
"heading": "交付总原则"
|
|
761
761
|
},
|
|
@@ -771,7 +771,7 @@
|
|
|
771
771
|
"id": "microi-system-delivery-002",
|
|
772
772
|
"ordinal": 3,
|
|
773
773
|
"destination": "microi-system-delivery/SKILL.md",
|
|
774
|
-
"sha256": "
|
|
774
|
+
"sha256": "5b929c8ab1cf588601fb0e27149ef05893bc5000eecf05e58961c4f785251e31",
|
|
775
775
|
"lines": 52,
|
|
776
776
|
"heading": "平台安全与存量兼容验收(强制)"
|
|
777
777
|
},
|
|
@@ -795,8 +795,8 @@
|
|
|
795
795
|
"id": "microi-system-delivery-005",
|
|
796
796
|
"ordinal": 2,
|
|
797
797
|
"destination": "microi-system-delivery/references/progressive-01-标准工作流.md",
|
|
798
|
-
"sha256": "
|
|
799
|
-
"lines":
|
|
798
|
+
"sha256": "8e90f8c4618b882000935a83b8ed581ff20c32d9b888f74eb0ace8c39439a46e",
|
|
799
|
+
"lines": 183,
|
|
800
800
|
"heading": "标准工作流"
|
|
801
801
|
},
|
|
802
802
|
{
|
|
@@ -942,11 +942,11 @@
|
|
|
942
942
|
]
|
|
943
943
|
},
|
|
944
944
|
"microi-uniapp-frontend": {
|
|
945
|
-
"originalSha256": "
|
|
946
|
-
"originalLines":
|
|
947
|
-
"prefixSha256": "
|
|
948
|
-
"prefixBytes":
|
|
949
|
-
"entryLines":
|
|
945
|
+
"originalSha256": "3727756264593f239e06109dbd5d11c1f53eb576484e445f4d664303b38260c8",
|
|
946
|
+
"originalLines": 499,
|
|
947
|
+
"prefixSha256": "6b843b9a940cd2a4019b3873d72a9d346b0e6ab872afb0966f093b76dcc27131",
|
|
948
|
+
"prefixBytes": 2486,
|
|
949
|
+
"entryLines": 190,
|
|
950
950
|
"chunks": [
|
|
951
951
|
{
|
|
952
952
|
"id": "microi-uniapp-frontend-000",
|
|
@@ -1610,11 +1610,11 @@
|
|
|
1610
1610
|
]
|
|
1611
1611
|
},
|
|
1612
1612
|
"ui-design": {
|
|
1613
|
-
"originalSha256": "
|
|
1614
|
-
"originalLines":
|
|
1613
|
+
"originalSha256": "f4c2d975c1fe1332cb419be8cf036effc29393a809868015b6602a25bc318f8e",
|
|
1614
|
+
"originalLines": 1639,
|
|
1615
1615
|
"prefixSha256": "d537abb190e152d01a556e7fb730fc15304e14a28ba6853e76056e883c79097f",
|
|
1616
1616
|
"prefixBytes": 1101,
|
|
1617
|
-
"entryLines":
|
|
1617
|
+
"entryLines": 213,
|
|
1618
1618
|
"chunks": [
|
|
1619
1619
|
{
|
|
1620
1620
|
"id": "ui-design-000",
|
|
@@ -1636,8 +1636,8 @@
|
|
|
1636
1636
|
"id": "ui-design-002",
|
|
1637
1637
|
"ordinal": 2,
|
|
1638
1638
|
"destination": "ui-design/SKILL.md",
|
|
1639
|
-
"sha256": "
|
|
1640
|
-
"lines":
|
|
1639
|
+
"sha256": "0d1bac0d19d61d288a6eb25f18fc15a045bca3df9a01399d5ce5224c8accffd3",
|
|
1640
|
+
"lines": 24,
|
|
1641
1641
|
"heading": "高端视觉标准"
|
|
1642
1642
|
},
|
|
1643
1643
|
{
|
|
@@ -2221,18 +2221,18 @@
|
|
|
2221
2221
|
]
|
|
2222
2222
|
},
|
|
2223
2223
|
"v8-file-upload": {
|
|
2224
|
-
"originalSha256": "
|
|
2225
|
-
"originalLines":
|
|
2226
|
-
"prefixSha256": "
|
|
2227
|
-
"prefixBytes":
|
|
2228
|
-
"entryLines":
|
|
2224
|
+
"originalSha256": "c6a1d4ed64cc2abbd9c3bc42c4d9473535564b45277f4a563e1452006325eaeb",
|
|
2225
|
+
"originalLines": 557,
|
|
2226
|
+
"prefixSha256": "dd9e661499692931e0da053fdb6060a3ff2827eb5862d1a820f05159038ead5d",
|
|
2227
|
+
"prefixBytes": 7475,
|
|
2228
|
+
"entryLines": 219,
|
|
2229
2229
|
"chunks": [
|
|
2230
2230
|
{
|
|
2231
2231
|
"id": "v8-file-upload-000",
|
|
2232
2232
|
"ordinal": 0,
|
|
2233
2233
|
"destination": "v8-file-upload/SKILL.md",
|
|
2234
|
-
"sha256": "
|
|
2235
|
-
"lines":
|
|
2234
|
+
"sha256": "841bb634227ea21cf97abcbee5dc6220042e73139170e6a6c304bfce83274e7a",
|
|
2235
|
+
"lines": 12,
|
|
2236
2236
|
"heading": "核心 API"
|
|
2237
2237
|
},
|
|
2238
2238
|
{
|
|
@@ -2247,7 +2247,7 @@
|
|
|
2247
2247
|
"id": "v8-file-upload-002",
|
|
2248
2248
|
"ordinal": 2,
|
|
2249
2249
|
"destination": "v8-file-upload/SKILL.md",
|
|
2250
|
-
"sha256": "
|
|
2250
|
+
"sha256": "c20863b68d13b3bd41caee90a5e12878501a35b3d9f8d40a80efe3f6b46125a9",
|
|
2251
2251
|
"lines": 101,
|
|
2252
2252
|
"heading": "接收前端上传的文件"
|
|
2253
2253
|
},
|
|
@@ -2255,7 +2255,7 @@
|
|
|
2255
2255
|
"id": "v8-file-upload-003",
|
|
2256
2256
|
"ordinal": 5,
|
|
2257
2257
|
"destination": "v8-file-upload/SKILL.md",
|
|
2258
|
-
"sha256": "
|
|
2258
|
+
"sha256": "d02dfde4abd2349cd92de1daee129bc08ba42142b5f6229736588cb3e0dbf43c",
|
|
2259
2259
|
"lines": 13,
|
|
2260
2260
|
"heading": "跨平台文件同步登录会话"
|
|
2261
2261
|
},
|
|
@@ -2271,7 +2271,7 @@
|
|
|
2271
2271
|
"id": "v8-file-upload-005",
|
|
2272
2272
|
"ordinal": 3,
|
|
2273
2273
|
"destination": "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md",
|
|
2274
|
-
"sha256": "
|
|
2274
|
+
"sha256": "6136a38af209aad174ca1cacd61fcfc66e3428e1e8bf75be8a2490bcb094b71e",
|
|
2275
2275
|
"lines": 143,
|
|
2276
2276
|
"heading": "公有桶 vs 私有桶"
|
|
2277
2277
|
},
|
|
@@ -2579,11 +2579,11 @@
|
|
|
2579
2579
|
]
|
|
2580
2580
|
},
|
|
2581
2581
|
"v8-menu-buttons": {
|
|
2582
|
-
"originalSha256": "
|
|
2583
|
-
"originalLines":
|
|
2582
|
+
"originalSha256": "d1a252ab09149e5058b016002193b189f33084c336ec7c407d80351c75783baa",
|
|
2583
|
+
"originalLines": 680,
|
|
2584
2584
|
"prefixSha256": "5967d6ba9436052555abaf1397243096e55015aedf618a3aa61baee3c46896c5",
|
|
2585
2585
|
"prefixBytes": 966,
|
|
2586
|
-
"entryLines":
|
|
2586
|
+
"entryLines": 183,
|
|
2587
2587
|
"chunks": [
|
|
2588
2588
|
{
|
|
2589
2589
|
"id": "v8-menu-buttons-000",
|
|
@@ -2613,16 +2613,16 @@
|
|
|
2613
2613
|
"id": "v8-menu-buttons-003",
|
|
2614
2614
|
"ordinal": 4,
|
|
2615
2615
|
"destination": "v8-menu-buttons/SKILL.md",
|
|
2616
|
-
"sha256": "
|
|
2617
|
-
"lines":
|
|
2616
|
+
"sha256": "d04e7a71ffe8baa47c2430077d0fd0bb44dffc62c7e7ce2bca9d02b220ae24f5",
|
|
2617
|
+
"lines": 95,
|
|
2618
2618
|
"heading": "4.1 模式 B2:在线微服务定制页(OpenAppDialog)"
|
|
2619
2619
|
},
|
|
2620
2620
|
{
|
|
2621
2621
|
"id": "v8-menu-buttons-004",
|
|
2622
2622
|
"ordinal": 1,
|
|
2623
2623
|
"destination": "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md",
|
|
2624
|
-
"sha256": "
|
|
2625
|
-
"lines":
|
|
2624
|
+
"sha256": "9550f2e3a75583bb6f2ab940d423931511f39b6ad8a11fc982c6b24bca6416d1",
|
|
2625
|
+
"lines": 156,
|
|
2626
2626
|
"heading": "2. 按钮对象 Schema"
|
|
2627
2627
|
},
|
|
2628
2628
|
{
|
|
@@ -2745,25 +2745,25 @@
|
|
|
2745
2745
|
]
|
|
2746
2746
|
},
|
|
2747
2747
|
"v8-mq-mqtt": {
|
|
2748
|
-
"originalSha256": "
|
|
2749
|
-
"originalLines":
|
|
2750
|
-
"prefixSha256": "
|
|
2751
|
-
"prefixBytes":
|
|
2752
|
-
"entryLines":
|
|
2748
|
+
"originalSha256": "179866e71e8e00ba97327b9e1853a62221566811fade4b434056aea75f3ed0a2",
|
|
2749
|
+
"originalLines": 337,
|
|
2750
|
+
"prefixSha256": "d601c2986655b2fbf818fe9739ee41543c4ff3c9df2f12a825e5d4b9a532aa08",
|
|
2751
|
+
"prefixBytes": 801,
|
|
2752
|
+
"entryLines": 175,
|
|
2753
2753
|
"chunks": [
|
|
2754
2754
|
{
|
|
2755
2755
|
"id": "v8-mq-mqtt-000",
|
|
2756
2756
|
"ordinal": 0,
|
|
2757
2757
|
"destination": "v8-mq-mqtt/SKILL.md",
|
|
2758
|
-
"sha256": "
|
|
2759
|
-
"lines":
|
|
2758
|
+
"sha256": "4a6559aed1af036591a04002c6e3311d9f0957fbbabbcafdc4a6bad95dabd843",
|
|
2759
|
+
"lines": 140,
|
|
2760
2760
|
"heading": "V8.MQ — RabbitMQ 消息队列"
|
|
2761
2761
|
},
|
|
2762
2762
|
{
|
|
2763
2763
|
"id": "v8-mq-mqtt-001",
|
|
2764
2764
|
"ordinal": 2,
|
|
2765
2765
|
"destination": "v8-mq-mqtt/SKILL.md",
|
|
2766
|
-
"sha256": "
|
|
2766
|
+
"sha256": "f65fe365f1adca83c0eabe95f73a658d6d79f33b3d9a8d34c5b35ede841e7d73",
|
|
2767
2767
|
"lines": 12,
|
|
2768
2768
|
"heading": "注意事项"
|
|
2769
2769
|
},
|
|
@@ -2786,25 +2786,25 @@
|
|
|
2786
2786
|
]
|
|
2787
2787
|
},
|
|
2788
2788
|
"v8-security": {
|
|
2789
|
-
"originalSha256": "
|
|
2790
|
-
"originalLines":
|
|
2791
|
-
"prefixSha256": "
|
|
2792
|
-
"prefixBytes":
|
|
2793
|
-
"entryLines":
|
|
2789
|
+
"originalSha256": "47f1d4392b637af2b25a658e475bdcf8ee888b6e51098b888e477ce1aa1c9985",
|
|
2790
|
+
"originalLines": 497,
|
|
2791
|
+
"prefixSha256": "c3b2ae10a39461ee69fda3c7e994d072ca6d8c9dc6f2338742bc8f07e0dcffd0",
|
|
2792
|
+
"prefixBytes": 1648,
|
|
2793
|
+
"entryLines": 184,
|
|
2794
2794
|
"chunks": [
|
|
2795
2795
|
{
|
|
2796
2796
|
"id": "v8-security-000",
|
|
2797
2797
|
"ordinal": 0,
|
|
2798
2798
|
"destination": "v8-security/SKILL.md",
|
|
2799
|
-
"sha256": "
|
|
2800
|
-
"lines":
|
|
2799
|
+
"sha256": "d03ee34e72925db55f9022de26dfc251c0d3d69fac52ae6a910d42ddfc142ae7",
|
|
2800
|
+
"lines": 50,
|
|
2801
2801
|
"heading": "0. 租户动态系统设置与密钥边界"
|
|
2802
2802
|
},
|
|
2803
2803
|
{
|
|
2804
2804
|
"id": "v8-security-001",
|
|
2805
2805
|
"ordinal": 1,
|
|
2806
2806
|
"destination": "v8-security/SKILL.md",
|
|
2807
|
-
"sha256": "
|
|
2807
|
+
"sha256": "9e477268919238bb6a2525116de3c8386aa439d8e93c5d66f3893cb07740b374",
|
|
2808
2808
|
"lines": 13,
|
|
2809
2809
|
"heading": "0.5 接口引擎配置安全"
|
|
2810
2810
|
},
|
|
@@ -2812,7 +2812,7 @@
|
|
|
2812
2812
|
"id": "v8-security-002",
|
|
2813
2813
|
"ordinal": 2,
|
|
2814
2814
|
"destination": "v8-security/SKILL.md",
|
|
2815
|
-
"sha256": "
|
|
2815
|
+
"sha256": "7229e5f8d200c0dfbab08752405f5e88d7edc80e9e92b6802880c022b09ca893",
|
|
2816
2816
|
"lines": 28,
|
|
2817
2817
|
"heading": "1. 防 SQL 注入"
|
|
2818
2818
|
},
|
|
@@ -2828,7 +2828,7 @@
|
|
|
2828
2828
|
"id": "v8-security-004",
|
|
2829
2829
|
"ordinal": 5,
|
|
2830
2830
|
"destination": "v8-security/SKILL.md",
|
|
2831
|
-
"sha256": "
|
|
2831
|
+
"sha256": "1703ea824e4807b24d30225d41e16fb36b0fecc21c63a4ab0296106185460a27",
|
|
2832
2832
|
"lines": 22,
|
|
2833
2833
|
"heading": "4. 防 XSS"
|
|
2834
2834
|
},
|
|
@@ -2928,7 +2928,7 @@
|
|
|
2928
2928
|
]
|
|
2929
2929
|
},
|
|
2930
2930
|
"v8-table-event": {
|
|
2931
|
-
"originalSha256": "
|
|
2931
|
+
"originalSha256": "b6edccc8a4a64ffb49e51b914a5ba713c76b3919548c3f6758ff66e47c7db4fd",
|
|
2932
2932
|
"originalLines": 388,
|
|
2933
2933
|
"prefixSha256": "de1f151904fd00a31a3c680c26bdb1d9c1a210193193e8bfefb5dc68f4c2bc02",
|
|
2934
2934
|
"prefixBytes": 717,
|
|
@@ -2954,7 +2954,7 @@
|
|
|
2954
2954
|
"id": "v8-table-event-002",
|
|
2955
2955
|
"ordinal": 2,
|
|
2956
2956
|
"destination": "v8-table-event/SKILL.md",
|
|
2957
|
-
"sha256": "
|
|
2957
|
+
"sha256": "86c13bfd4dbc035e5498fe072ed176780ed31975b64eda09c1a378de986ab73d",
|
|
2958
2958
|
"lines": 9,
|
|
2959
2959
|
"heading": "事件触发规则"
|
|
2960
2960
|
},
|
|
@@ -3034,7 +3034,7 @@
|
|
|
3034
3034
|
"id": "v8-table-event-012",
|
|
3035
3035
|
"ordinal": 12,
|
|
3036
3036
|
"destination": "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md",
|
|
3037
|
-
"sha256": "
|
|
3037
|
+
"sha256": "db5bf410bc6babf14d3d91cc61b9875c81bc1be24b2c1b7c62334bc6819e4e55",
|
|
3038
3038
|
"lines": 18,
|
|
3039
3039
|
"heading": "注意事项"
|
|
3040
3040
|
}
|
|
@@ -3061,11 +3061,11 @@
|
|
|
3061
3061
|
]
|
|
3062
3062
|
},
|
|
3063
3063
|
"v8-workflow": {
|
|
3064
|
-
"originalSha256": "
|
|
3064
|
+
"originalSha256": "0392bb7a0a39cdb807bd9dd9f4c8a27342344e93cedc5151b23b7762a91db409",
|
|
3065
3065
|
"originalLines": 325,
|
|
3066
3066
|
"prefixSha256": "f6e971cb0401edcf858ee18f0b293f8dc40135e4252789712d1d15fb6b4dd70d",
|
|
3067
3067
|
"prefixBytes": 714,
|
|
3068
|
-
"entryLines":
|
|
3068
|
+
"entryLines": 192,
|
|
3069
3069
|
"chunks": [
|
|
3070
3070
|
{
|
|
3071
3071
|
"id": "v8-workflow-000",
|
|
@@ -3119,7 +3119,7 @@
|
|
|
3119
3119
|
"id": "v8-workflow-006",
|
|
3120
3120
|
"ordinal": 8,
|
|
3121
3121
|
"destination": "v8-workflow/SKILL.md",
|
|
3122
|
-
"sha256": "
|
|
3122
|
+
"sha256": "8e2a82330c7f49c3a03920123531d310ea329fd310179918d835e3c05d49771a",
|
|
3123
3123
|
"lines": 22,
|
|
3124
3124
|
"heading": "前端发起流程"
|
|
3125
3125
|
},
|
|
@@ -3196,11 +3196,11 @@
|
|
|
3196
3196
|
]
|
|
3197
3197
|
},
|
|
3198
3198
|
"workspace-conventions": {
|
|
3199
|
-
"originalSha256": "
|
|
3200
|
-
"originalLines":
|
|
3199
|
+
"originalSha256": "e3e9df472a85d8a72bac517100de0a8f40d251c524595d14b1d59f8a38809e66",
|
|
3200
|
+
"originalLines": 571,
|
|
3201
3201
|
"prefixSha256": "b58cd0a59d3643525695b94a5941278a5088c33cbe2ce81620359f37db69878e",
|
|
3202
3202
|
"prefixBytes": 252,
|
|
3203
|
-
"entryLines":
|
|
3203
|
+
"entryLines": 219,
|
|
3204
3204
|
"chunks": [
|
|
3205
3205
|
{
|
|
3206
3206
|
"id": "workspace-conventions-000",
|
|
@@ -3246,8 +3246,8 @@
|
|
|
3246
3246
|
"id": "workspace-conventions-005",
|
|
3247
3247
|
"ordinal": 5,
|
|
3248
3248
|
"destination": "workspace-conventions/SKILL.md",
|
|
3249
|
-
"sha256": "
|
|
3250
|
-
"lines":
|
|
3249
|
+
"sha256": "52273704562fac1245fa364ca811949ccb2685dce8375f99bdc4029a314dd758",
|
|
3250
|
+
"lines": 37,
|
|
3251
3251
|
"heading": "Microi 源码路径速查(工作区根相对路径)"
|
|
3252
3252
|
},
|
|
3253
3253
|
{
|
|
@@ -7,7 +7,7 @@ description: Microi AI 引擎、MiniMax 图片/音乐/视频生成与预览、
|
|
|
7
7
|
|
|
8
8
|
# Microi AI Engine
|
|
9
9
|
|
|
10
|
-
平台媒体生成的受控 HTTP 入口包括 `/api/Ai/GenerateMiniMaxImage`、`/api/Ai/GenerateMiniMaxMusic`、`/api/Ai/CreateMiniMaxVideo`、`/api/Ai/GetMiniMaxVideoTask`、`/api/Ai/GetMiniMaxVideoFile`、`/api/Ai/PersistMiniMaxVideoFile`;AI
|
|
10
|
+
平台媒体生成的受控 HTTP 入口包括 `/api/Ai/GenerateMiniMaxImage`、`/api/Ai/GenerateMiniMaxMusic`、`/api/Ai/CreateMiniMaxVideo`、`/api/Ai/GetMiniMaxVideoTask`、`/api/Ai/GetMiniMaxVideoFile`、`/api/Ai/PersistMiniMaxVideoFile`;AI 工作流统一调用 Managed 接口引擎 `/apiengine/platform-ai-workflow`,通过 `Action` 选择概览、节点详情、生成、列表、读取、保存或删除。调用方只提交业务参数和模型选择,供应商密钥、租户配额、任务归属和文件读取权限由服务端判定。生成结果必须先进入当前租户 HDFS 或受控临时句柄,浏览器不接触供应商密钥、图片 Base64、音频十六进制或原始视频任务 Id。`PersistMiniMaxVideoFile` 只能转存当前登录用户所属且已完成的任务,禁止作为任意 URL 搬运器。
|
|
11
11
|
|
|
12
12
|
## 能力
|
|
13
13
|
|
|
@@ -38,7 +38,7 @@ description: Microi AI 引擎、MiniMax 图片/音乐/视频生成与预览、
|
|
|
38
38
|
|
|
39
39
|
`Chat/ChatStream` 虽声明 GET/POST,含问题、附件和会话上下文的业务调用默认使用 POST,避免敏感内容进入 URL 日志。Controller 和 `V8.AI` 必须从可信执行上下文覆盖当前用户和 `OsClient`,并清除客户端提交的 `ApiKey/Endpoint`。所谓打字机效果必须来自真实 SSE 增量块;`microi_chat` 只返回最终结果,不能被描述成逐 token MCP 流。
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
安全数据分析的新客户端调用 `/apiengine/platform-ai-runtime` 并固定 `Action=NL2SQL`;旧 `/api/Ai/NL2SQL` 只保留兼容转发。最终都由租户/用户绑定的 `V8.AI.NL2SQL` 从当前用户权限生成表白名单;任何通用包装接口都不得接受客户端自报的表名作为授权。
|
|
42
42
|
|
|
43
43
|
## 代码分层
|
|
44
44
|
|
|
@@ -46,8 +46,13 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
|
|
|
46
46
|
|
|
47
47
|
- Controller、Hub 只调用 `IMicroiAI`、`AiProxyService`、`SubscriptionService`、`AiWorkflowService` 等 `Microi.AI` 门面,不直接查询 `mic_ai` / `mic_sub_order`,不接触上游密钥和向量基础设施。
|
|
48
48
|
- “授权 + 执行”必须由领域门面原子完成,不能让接口层先生成可伪造的 `AllowedTables` 或遗漏某一步。
|
|
49
|
-
- AI 的 Qdrant/Ollama/Embedding 配置、Schema 初始化和其它生命周期任务由 `AddMicroiAI()` 在模块内自注册;API 的 `Program.cs` 只负责调用模块注册。
|
|
50
|
-
- `Microi.Core` 只承载跨模块契约和模型。新增入口时先扩展 AI 领域服务,再添加薄 Controller/Hub 适配,禁止复制业务流程。
|
|
49
|
+
- AI 的 Qdrant/Ollama/Embedding 配置、Schema 初始化和其它生命周期任务由 `AddMicroiAI()` 在模块内自注册;API 的 `Program.cs` 只负责调用模块注册。
|
|
50
|
+
- `Microi.Core` 只承载跨模块契约和模型。新增入口时先扩展 AI 领域服务,再添加薄 Controller/Hub 适配,禁止复制业务流程。
|
|
51
|
+
- AI 账户统一入口是 Managed 接口引擎 `/apiengine/platform-ai-account`;套餐、订阅和订单由 V8 编排。支付宝回调 C# 只做可信租户选择/归一化、该租户配置验签和一次性 Managed 调用;`CompletePayment` 在同一接口引擎事务内完成订单条件认领、金额校验、订阅续期/新建与平台/供应商 API Key 分配。供应商协议、密钥隔离、分布式额度原子、任务句柄和受控媒体落盘仍由绑定原子完成。
|
|
52
|
+
- 非流式 `UpdateConversationTitle / RecognizeIntent / Chat / NL2SQL / NL2V8EngineSync` 统一进入 Managed `/apiengine/platform-ai-runtime`,旧 Controller 同名路由只做兼容转发;SSE/流式、Provider Proxy、媒体、文件和策略元数据保持原生。`platform-ai-runtime` 只调用绑定当前租户和当前用户的 `V8.AI` 原子,不接收客户端伪造的租户、用户、Endpoint、ApiKey、表白名单或管理员标记。
|
|
53
|
+
- AI 官方应用只有一个应用级租户扩展点 `platform-ai-custom-hook`,策略为 `CreateIfMissing`。`mci_ai_data_assistant` 与 `platform-ai-runtime` 只传 `Stage`、`SourceApiEngineKey`、`Action`;支付动作最多增加 `EventId`、`Provider`,账户其它动作只增加白名单资源元数据。Hook 禁止接收订单号、交易号、金额、标题、SQL、模型、附件、提示词或问题原文及其摘要、回答、供应商/平台密钥、供应商任务号、文件句柄或媒体内容。匿名发现接口不调用 Hook,`/v1/usage` 继续由 C# 凭据网关直接校验,使 `Authorization` 永不进入 V8。
|
|
54
|
+
- 9 张 `mic_sub_*` 订阅表与 `mci_ai_token_account`、`mci_ai_token_log` 由官方 `app.microi.ai-engine` 应用升级提供,必须同时声明 DDL、PhysicalColumns、DiyTables、DiyFields;`PromptPreview` 属于日志表正式字段。`mci_ai_token_recharge` 当前不在该运行时实体闭包内,禁止根据线上残留自行扩包。运行时发现缺失时失败关闭,禁止在请求路径自动建表、加列或修改业务 Schema。
|
|
55
|
+
- `Sys_User.AiApiKey` 归官方 `app.microi.sys_user`,由系统账号包同时维护建表 DDL、PhysicalColumns 和隐藏只读 DiyField;AI助手包不得重复声明 `Sys_User`。缺列错误必须提示升级系统账号应用,不能误导用户升级 AI助手。
|
|
51
56
|
|
|
52
57
|
## 模型与密钥
|
|
53
58
|
|
|
@@ -73,6 +78,9 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
|
|
|
73
78
|
## 跨端 AI 助手与商城交付
|
|
74
79
|
|
|
75
80
|
- PC 与移动端复用 `mci_ai_data_assistant`。`Bootstrap` 返回的 `Enabled`、`Models`、`AllowedDomains` 和 `Prompts` 是跨端共同事实源;快捷问题来自启用的 `mci_ai_data_domain.PromptExamples`,前端不能维护另一套固定文案。
|
|
81
|
+
- 官方 AI助手应用归 `app.microi.ai-engine`。v6.3.6 的接口引擎必须严格只有 Managed `mci_ai_data_assistant`、Managed `platform-ai-account`、Managed `platform-ai-runtime` 和 CreateIfMissing `platform-ai-custom-hook` 四项,并声明 `V8.Method.ManageAiPlatform`、`V8.Method.RequireManagedProtocolContext` 与所需 `V8.AI` 能力;后端缺少任一能力时安装预检失败关闭。
|
|
82
|
+
- `ai_app_list`、`ai_app_detail`、`ai_app_get_file`、`ai_app_save_file`、`ai_app_create`、`ai_app_build`、`ai_app_preview`、`ai_app_download_source_zip`、`ai_app_download_build_zip`、`ai_app_moveobject_probe`、`ai_app_moveobject_exec_probe`、`ai_app_publish_store` 这 12 个 `ai_app_*` 归 `app.microi.store` 维护。AI助手包移除它们的资源选择和所有权声明,但不会删除目标租户既有运行时接口记录;既有记录继续由应用商城包升级。
|
|
83
|
+
- v6.3.6 还必须保持 AI助手包的 DDL、PhysicalColumns、DiyTables、DiyFields、DataSets 全层不再包含重复的 `mci_ai_app_version`、`mci_ai_app_file`、`sys_microistore`,这些表交回 Store/SaaS 既有平台包维护;当前仅 AI助手包拥有的 `app_mic_aiapp`、`mci_ai_app` 继续保留。
|
|
76
84
|
- 普通角色必须匹配启用的 `mci_ai_role_policy`。只有后端可信的 `V8.CurrentUser.Level >= 9999` 可以在新安装租户缺少角色策略时获得安全兜底:从目标租户动态读取已启用业务域和模型,范围为 `All`,仍保持 `AllowRawSql=false`、敏感字段默认关闭。不得相信客户端提交的 Level、角色名或账号名。
|
|
77
85
|
- 当租户要求“所有角色均可使用 AI 助手”时,必须为 `sys_role` 中每个目标角色建立显式启用策略;受限角色使用 `Self`/`Department` 与最小业务域,管理角色才可使用经确认的 `All`。禁止把“人人可打开助手”实现成普通角色默认全库可读。
|
|
78
86
|
- `Sys_Config.DisableAiAssistant` 是负向开关:缺失、空值或 `0/false` 都显示 AI 助手,只有显式 `1/true` 才关闭图标。商城升级应复用旧 `IsShowAiAssistant` 的字段元数据 Id 就地改名;兼容读取可以保留旧物理列,但旧字段元数据必须在 PC 与移动端隐藏,禁止同时暴露正向、负向两个开关。关闭该开关前后都要做策略覆盖验收:回读 `sys_role` 与 `mci_ai_role_policy`,断言每个目标角色都有唯一启用策略,`AllowedDomains`、`AllowedModels` 均非空且模型仍处于启用状态;再至少用超级管理员、普通员工和客户身份分别调用 `Bootstrap`,确认 `Enabled=true` 且返回范围符合角色。仅看到入口图标不算可用。
|