@microi.net/cli 4.6.2 → 4.6.7

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 (39) hide show
  1. package/dist/mcp-server.js +101 -93
  2. package/dist/microi-cli.js +198 -47
  3. package/dist/microi-skills.meta.json +148 -142
  4. package/dist/microi.skills/.microi-skills-version.json +2 -2
  5. package/dist/microi.skills/README.md +3 -2
  6. package/dist/microi.skills/ai-engine/SKILL.md +38 -11
  7. package/dist/microi.skills/app-store/SKILL.md +134 -99
  8. package/dist/microi.skills/message-notification/agents/openai.yaml +0 -1
  9. package/dist/microi.skills/microi-ai-application/SKILL.md +8 -0
  10. package/dist/microi.skills/microi-client-frontend/SKILL.md +401 -394
  11. package/dist/microi.skills/microi-db-schema/SKILL.md +165 -164
  12. package/dist/microi.skills/microi-deployment/SKILL.md +29 -3
  13. package/dist/microi.skills/microi-docs-coverage/references/capability-map.md +4 -3
  14. package/dist/microi.skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +10 -3
  15. package/dist/microi.skills/microi-form-engine/SKILL.md +165 -159
  16. package/dist/microi.skills/microi-system-delivery/SKILL.md +205 -196
  17. package/dist/microi.skills/microi-ui/SKILL.md +330 -321
  18. package/dist/microi.skills/microi.v8.js +1818 -1758
  19. package/dist/microi.skills/ocr-engine/SKILL.md +111 -0
  20. package/dist/microi.skills/ocr-engine/agents/openai.yaml +4 -0
  21. package/dist/microi.skills/page-engine/SKILL.md +2 -0
  22. package/dist/microi.skills/performance-testing/SKILL.md +2 -2
  23. package/dist/microi.skills/playwright-e2e/SKILL.md +14 -40
  24. package/dist/microi.skills/print-engine/SKILL.md +9 -3
  25. package/dist/microi.skills/report-engine/SKILL.md +1 -1
  26. package/dist/microi.skills/translate-engine/SKILL.md +47 -5
  27. package/dist/microi.skills/ui-design/SKILL.md +1596 -1575
  28. package/dist/microi.skills/ui-design/assets/templates/MCI-DESIGN.md +199 -98
  29. package/dist/microi.skills/ui-design/references/design-pattern-library.md +184 -171
  30. package/dist/microi.skills/ui-design/references/mci-design-contract.md +163 -84
  31. package/dist/microi.skills/v8-file-upload/SKILL.md +8 -0
  32. package/dist/microi.skills/v8-frontend-events/SKILL.md +4 -1
  33. package/dist/microi.skills/v8-frontend-events/references/bluetooth-print.md +28 -22
  34. package/dist/microi.skills/v8-http-integration/SKILL.md +22 -1
  35. package/dist/microi.skills/v8-saas-multi-tenant/SKILL.md +2 -1
  36. package/dist/microi.skills/v8-security/SKILL.md +7 -6
  37. package/dist/microi.skills/v8-utilities/references/server-api-index.md +1 -0
  38. package/dist/microi.skills/workspace-conventions/SKILL.md +22 -23
  39. package/package.json +1 -1
@@ -1,28 +1,28 @@
1
1
  {
2
- "builtAt": "2026-08-03T07:14:57.461Z",
2
+ "builtAt": "2026-08-05T14:09:50.477Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "4.6.2",
6
+ "version": "4.6.7",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "4.6.2",
10
+ "version": "4.6.7",
11
11
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
12
12
  "managedBy": "Microi.VSCode/bump-version.js"
13
13
  },
14
14
  "output": {
15
15
  "dir": "dist/microi.skills",
16
- "files": 103,
17
- "skills": 57,
18
- "bytes": 1536139
16
+ "files": 105,
17
+ "skills": 58,
18
+ "bytes": 1605303
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "4bba533fb2e09890b489748bb74140e49db06aa670e9ab374796ae1b5199850f",
22
- "README.md": "8ce5d0625122fcd0f125401e3d7a1a3a67e8ae75c0a1a5441231e238c7042786",
23
- "ai-engine/SKILL.md": "ad435d66b246ae432d456608d4ba059a9d9b9cdcf7b3eae08d51e79285ab59c6",
21
+ ".microi-skills-version.json": "7bbf166e985d6a885f4d713912e6d6950d3e9d3a619f323c33ddae533c046bdb",
22
+ "README.md": "f88db8f5a0ad3788583b1a0787cb4c485f1027e50a5c21997da41334e2be3b82",
23
+ "ai-engine/SKILL.md": "371b00ce9860d1516f6eb7eeaed001cbfa852c52e7c0cfccbedc4a71a113e568",
24
24
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
25
- "app-store/SKILL.md": "0c1578976086f0c166b75ce87dff41db18462f3e57f64c495b80ffc337ff3313",
25
+ "app-store/SKILL.md": "24329f1ee4e4bc5d22b9f15edfeb0f8a7661d4717409cd55507ca9433499efc8",
26
26
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
27
27
  "business-blueprint/SKILL.md": "ea379a85476d262f4fc72a5846a06354893065052ef64370bbc7e3a2753a498d",
28
28
  "datasource-engine/SKILL.md": "bfd0cab8318eef375ca49f27c0511fce7e939a1c795678e83cf2d3438e24915f",
@@ -32,27 +32,27 @@
32
32
  "job-engine/SKILL.md": "12f175f8de9610a6994bf11931810f4dce2cd0cdcd1f5b575dee4fd2b636658c",
33
33
  "job-engine/agents/openai.yaml": "65889ee39bc34caca9085539d8954a381aab93590c5635eea3bb6f4c001934af",
34
34
  "message-notification/SKILL.md": "4b066401133ecf687755c5ea8d9dbb2166acc91bc2035dc9c2b96d8d33dd97de",
35
- "message-notification/agents/openai.yaml": "603e3737afb5c06583f4dbdc5d10cdd4d5f2130232290674b31a2f325e554d57",
35
+ "message-notification/agents/openai.yaml": "d0e259921410e94caaf8b376d690a529842446e3f32c9523b7dfd1bda599f58c",
36
36
  "message-notification/references/contracts.md": "a33e3dd4093430ed1dc5b79a978d8981479e975a7dd30fde6f68559360369f06",
37
37
  "microi-ai-app-auth.js": "8023db6ae655bc33027f389a64ef7937ac09da35eb1b8a497aaefb986834242a",
38
- "microi-ai-application/SKILL.md": "74b0e8c76352b46ab1e101410d5b3d9ec6d9e0701ca9c7a10a6ab44f3c55db7c",
38
+ "microi-ai-application/SKILL.md": "b267798bd59cedca874ccbefdd6fd3f9be48d383d2aacb151c3fa6e880905e30",
39
39
  "microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
40
40
  "microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
41
- "microi-client-frontend/SKILL.md": "eed67be739a7a86351ef163968953191dcd77cf61831a17ebacbd4de0102c31c",
41
+ "microi-client-frontend/SKILL.md": "a5a0a93fa70df02bb696f83bd812cb01f23aa9141303dcb8f93017ac3e8b8f96",
42
42
  "microi-datasource-mapping/SKILL.md": "1626bdf242038838028aa1235c5a6262e22680984583c47a8fc4e5fffb24b7df",
43
- "microi-db-schema/SKILL.md": "78c3e2b480f4b39848c792650deab48143b0f04cd8d1d3884af9eaccd60f8b71",
43
+ "microi-db-schema/SKILL.md": "2e4dfd98d7e10bad0e8f68682725e88ebbaa5518bc548f8780685e2cd248defd",
44
44
  "microi-db-schema/agents/openai.yaml": "c725a2be4c904472f9e46dc4b49aa642c9f3a4437c91a28ba7cc27167497ede7",
45
45
  "microi-db-schema/references/core-tables.md": "b71164d9afe8cd6085745a27dddb31722014a85f8ab22f09ab447738612fea6a",
46
46
  "microi-db-schema/references/form-component-options.md": "c4c5085d4b2e4fc79b09d255fa1655c2007e863e3c102ccf805ca57abdf79028",
47
47
  "microi-db-schema/references/schema-overview.md": "8909f78c1eb651f1c1f251474051d75e548ac95c961e4e8491160e15a04ec0a1",
48
48
  "microi-db-schema/references/schema.md": "4e533fce9b42a26e404bfe86e2808f30c0bc3ddfe0d65b568c2ff4825c1742d3",
49
49
  "microi-db-schema/references/table-catalog.md": "ea0ef573d0e112c335e3ab66035bce4e5c3039c7bf25c6e3743f086913b46b97",
50
- "microi-deployment/SKILL.md": "1f3271e442c4476e9304704e2b6e7dd79f45d4c8a689a9d7ce5db86745d2f9a5",
50
+ "microi-deployment/SKILL.md": "f1261f8f9ffe09c69079e9a66efaa9679dd6aa8d50d0e94ab6f2e5869ceec5b4",
51
51
  "microi-deployment/references/deployment-matrix.md": "32d9d1424bf19eae0d2cee2b1667203c830ea7610c71a806e7ddf785a0083009",
52
52
  "microi-docs-coverage/SKILL.md": "5fad3dd7b83cf01ef7a303506902c95da7ae85d60b0067d266f1e2fa2326db95",
53
- "microi-docs-coverage/references/capability-map.md": "f1a4ba0ec68ffafd707e32d8f037e521fb8b534f9ce1e385b26dcae060996af2",
54
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "44b79f2eeb9076e3e9673d06daf3923065ed458ceea2f200604dfe474bded161",
55
- "microi-form-engine/SKILL.md": "7f1bba18a5bed223a3b43552a30ac02c2307e53ff74b970b256da845f1359a07",
53
+ "microi-docs-coverage/references/capability-map.md": "0d3ffff2ecaf3612680a610ffa0df0b731f9ed39432605aa5720c16ce42bd93a",
54
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "ebd57f17f2ebae499bfa59ad17830db458590feb76f7f0f20219ff0987b33af3",
55
+ "microi-form-engine/SKILL.md": "568f669aae269ed34466415a05c263f31c1487acd2f52a43405749f3be780644",
56
56
  "microi-form-engine/references/component-catalog.md": "68963c2d5211a4610c09fab1fa127a349339abbb7427509b183d4be72e977c7b",
57
57
  "microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
58
58
  "microi-form-layout/SKILL.md": "48814c2c138e2c0fb6a11d39cf458df6a1cc28a3156c7540db1fa482a2ce6aec",
@@ -64,31 +64,33 @@
64
64
  "microi-solution-quotation/SKILL.md": "1bd47bd019a62bdc904612a7d8e2501c76df66eed9ef247544dd7fe38eba02e4",
65
65
  "microi-solution-quotation/agents/openai.yaml": "9e3f994cc842c927ca25e23216f6ce5e8f8313fc39b1c7142d9b652ca73e7dd1",
66
66
  "microi-solution-quotation/scripts/build_solution_quote.py": "2a8a90ed95308b900da3db433402d857f838b594df624f5a83b62307471a31e7",
67
- "microi-system-delivery/SKILL.md": "a20fb79009abbe648d12d45d532e4b22907f36d0a878a3ab38dfcb45737ff7c3",
68
- "microi-ui/SKILL.md": "c38b3d5a8d564bd1c4575255744d5d0081d5a142c73e25da5a0206dd1d32cc89",
67
+ "microi-system-delivery/SKILL.md": "e659f133eccec698742bf854677dfe4666a527adb392bfb1264808cbf779e7af",
68
+ "microi-ui/SKILL.md": "606a9cfc2e9cbcb41e9e26ef9c09bb2ca31c4edc24af00058aa059b54a01f2fe",
69
69
  "microi-uniapp-frontend/SKILL.md": "d031dca0ed4182954e383e9828263d46414330f0a014487867b628f655b5bb26",
70
- "microi.v8.js": "0e885a961bca626005387885d3b9e7deecb7dc7e3eb07d95582e2c3e3a11d4f6",
70
+ "microi.v8.js": "bc886f196fc4dc9604a5edc89afd59a75a64dcb36066fc0ca7f07879d5870732",
71
71
  "module-engine/SKILL.md": "c5624f19be8abba47bc7194c75df938fc635d815eb3e5a6e225adc4e8ef83c0c",
72
72
  "module-engine/references/module-config.md": "314ccec98665b1991913c35c65ca245fd9a8850c8b7bb2116db655c7ef687496",
73
- "page-engine/SKILL.md": "97c2c8120612fa02280c601574dd6e9e94fa0b21785134db66571f906d54a82f",
74
- "performance-testing/SKILL.md": "7f4c8fba9bab090bb2d795ade4067e550f9e479d8fe24fe10a2a9d6b536e46cb",
75
- "playwright-e2e/SKILL.md": "5a3661d81d2cd0f5e9f6a88f6a57bb81aec1aed2122cff9c4843aa947e702a01",
76
- "print-engine/SKILL.md": "6ed34f2cf161d3c962f18b61297341785bdd1926e0004298ebbb52f2ae15416c",
73
+ "ocr-engine/SKILL.md": "16f7ee8d3485f47d2cb524f0c3fdea609f7de5581ba46da9f34d32772422c050",
74
+ "ocr-engine/agents/openai.yaml": "3a6cc9984a246c41332c5f53d1badef31b78f81324333ea0d6337cb20c7fc898",
75
+ "page-engine/SKILL.md": "9ee0ff0e27ce39a45cea836a5d387c16b891b20f551163e0dd6878580c07696d",
76
+ "performance-testing/SKILL.md": "1ca522046ed62266828045d6273077ea95ac31e7f1c56a8d25c298e2d8a018ff",
77
+ "playwright-e2e/SKILL.md": "c3c5058a9b4e63600f6e8f3acd3f9b3d424253c212522c6158721625d8e2ac9e",
78
+ "print-engine/SKILL.md": "34e54e9e05a18e1aeeae6ad84259495682da46478e0418788c04770fc6e9bba0",
77
79
  "production-readonly-audit/SKILL.md": "dcf95c3c418db1bcbb71346a62f79254d851852939f4208f71b974194c2280ff",
78
- "report-engine/SKILL.md": "c04a51b067de43c3e14172de1209055da07cc7e1b79b8b2d1541c17fdab1442e",
80
+ "report-engine/SKILL.md": "939958a812d32b27bee9eecae2c3c0c5d08a848f99d24f23d1155e9673b1b9da",
79
81
  "report-engine/agents/openai.yaml": "6705efa604e24e8286e605d7bb8c240e2434d23657ee9012fd68a96503a4a0f9",
80
82
  "search-engine/SKILL.md": "ddabf0b288d04c72985d3528e12c19bcd212a292a09593514d8385c4cb2c53a4",
81
83
  "search-engine/agents/openai.yaml": "5ddbe54965386287b00eba1cd7e38f3c7058edc437538f12ddb165f96f75a6eb",
82
84
  "spider-engine/SKILL.md": "09e9e164dc09c35bb4bebfbe77e3ba18164c89503313b28a1b4f1061e0de5e30",
83
- "translate-engine/SKILL.md": "979522ee0debc67a219f771b1d9ba082241743b15042ba54a213054aaf8af9bb",
85
+ "translate-engine/SKILL.md": "4147778f7ee1c96e41ce9cda72c5666bfd2f9efe71df7fb91b2393aaf157b40a",
84
86
  "translate-engine/agents/openai.yaml": "8eb47e08a691219bbe22a797ddbdf73234ec77f86e5724bc735fb0738d899112",
85
- "ui-design/SKILL.md": "9e1b4636281d6ff716e143f2bc9a4904ed305347dbefc225e80079acc6910f00",
87
+ "ui-design/SKILL.md": "72026459d3a2da49abee8af379f0a4c13ecfc955bd61e4e0d8e398d1af4213d1",
86
88
  "ui-design/assets/pattern-showcase/app.js": "68a8d404c30096da853c6edbc7cb27f336982147ddfebccd66c03ba3d99427cd",
87
89
  "ui-design/assets/pattern-showcase/index.html": "242f94772a5f14e38296f1e925f30a9a5fef2103975831cbd47861a3fc14d5bc",
88
90
  "ui-design/assets/pattern-showcase/styles.css": "77c34ddae0dd9c665c8774dc6def4bd8f4f5ed02470d4343d116ed141c87eccb",
89
- "ui-design/assets/templates/MCI-DESIGN.md": "1da0248a9e959face2987838265cb7007b5b80ce9cb03c8b2b9d3333c4d037df",
90
- "ui-design/references/design-pattern-library.md": "69e93e1f9ed7de7bf5cbd40246c36cbf95a0121367e89c45229d7d28fc934fdb",
91
- "ui-design/references/mci-design-contract.md": "ffccefb294723450714f2f6a7d236e8033547c582e0e2a86ffc4ee69d31a2d81",
91
+ "ui-design/assets/templates/MCI-DESIGN.md": "24ec5c46a60fb180e041878277614feeb3ab42851d27cdea74f9f462c533cfb0",
92
+ "ui-design/references/design-pattern-library.md": "dd8c4a4855fa3f9a3c616eaa635b93f2b594f8bc826122f237a6e0ded9317e97",
93
+ "ui-design/references/mci-design-contract.md": "3312b7ecc09567d4da18289b4e0bbb4061ed3ff94b71b6f72b46ea7d65a577eb",
92
94
  "ui-design/references/motion-and-media.md": "3d73161a5ad19e3d1ebecf681febd592ea0e1bca42e6340ef6a08cd9a9fd25be",
93
95
  "ui-design/references/product-flow-recipes.md": "b6a41c2d2b18f59594024f232e38497c140e5d8f25b54099a7e2a47609c52edc",
94
96
  "uniapp-mall-assets/SKILL.md": "153b661fdbfdbb1200f676e8d35d213bbbf2cd8a1fcacfc75370004c3acffa21",
@@ -98,134 +100,136 @@
98
100
  "v8-debugging/SKILL.md": "92cfb55d7d4597fd458d8bd657839856497ef02886c58ba96e002980ad33bd39",
99
101
  "v8-explorer-tree/SKILL.md": "9ecb0a2bdb9a6cbdf1ce74c0a97ca1ffa9157fae4e18fd87f97104c14d54ef5d",
100
102
  "v8-export-import/SKILL.md": "e55299d75b24bcbb6248ec2572b55cd0515fb4fbfadaa1f78bcbe4a8d701a1f9",
101
- "v8-file-upload/SKILL.md": "46fb3ea4a9867014a3c40635ae5d73de5064283822f973cca1e78703a4909670",
103
+ "v8-file-upload/SKILL.md": "3c1f9390ed6c2457796b341e45fca7f5492a9cda4419d35dae33cbfa2fc80383",
102
104
  "v8-formengine-http/SKILL.md": "d975bc116e100f91d80acf7932128de6fff78c5fcd17557d3d5a5504e3359682",
103
- "v8-frontend-events/SKILL.md": "3ce956f7571389bb117a74c23af2cfdf69094f99cb204e7752e50dd25be2872e",
105
+ "v8-frontend-events/SKILL.md": "f6da61a6389d6f01e92b7bcc4bd24588164c60fecf951993c2b42f2890470eb0",
104
106
  "v8-frontend-events/references/bluetooth-print-api.md": "c5667cc6a9ed1bf385a21ddbc28e39993bc9e6d527bc31b53fb4ad582abf719e",
105
- "v8-frontend-events/references/bluetooth-print.md": "6865c72adc5c65cf0958fa0e7edaba99f9cdede71c13d3c2f4ceb4168ea3bb56",
106
- "v8-http-integration/SKILL.md": "231098de4f00dce961adf7be58c04da06ee8e1e230a5c489621f3fee75184bb8",
107
+ "v8-frontend-events/references/bluetooth-print.md": "d57f6981d846093277c1456c84bbf9586f65db70129d007fe25fdfb12f58e589",
108
+ "v8-http-integration/SKILL.md": "08bb5e9e7a18be162dc907cc02ab8b60ab0aee198617f3c9e1354c620b6f2dc4",
107
109
  "v8-image-processing/SKILL.md": "69fc700953ceec455604666e15a46a5d665cfc1e7c5134d0d47f2b0f938197cb",
108
110
  "v8-image-processing/agents/openai.yaml": "009d8b643bea6203a8056c7323b68fbe6a92c594809415cf657868074e52a576",
109
111
  "v8-image-processing/references/api-reference.md": "f8f293f64749d9681a1d4d5c25d5ef85ae1cfb7523487c43d08a03e9ebe36fb6",
110
112
  "v8-menu-buttons/SKILL.md": "fc933bf7685db029517f05df5e75560118ceb90a4a9d52922f046d34334a3082",
111
113
  "v8-mongodb/SKILL.md": "7da703b5dc9fb9613cca1929fd854e3d333ad7d86200b839bb78ccdc8e0cc6cf",
112
114
  "v8-mq-mqtt/SKILL.md": "3894fc353a3e9896b16b54b9e12758f0aea950968f80b7f3ec86c6652040341c",
113
- "v8-saas-multi-tenant/SKILL.md": "79a534087d1321f4534380af3f95b4a4d135eccffdf0e08f569cd7d7db7463c9",
114
- "v8-security/SKILL.md": "0d288a96356c42190b6e061246bf2edff3bc0cd8a2ade5fad1491c4e539e98cc",
115
+ "v8-saas-multi-tenant/SKILL.md": "0145ddd39e109e39b601cfac45b746624f21d9dfce5951b662ac713e80f3fc72",
116
+ "v8-security/SKILL.md": "9558b6888bcb30593e38f5c4544529ecc4077643fe4ec8311950f3d94f0c058a",
115
117
  "v8-sql-query/SKILL.md": "0ebedf72732479e24ca7528120345d468f98fbf96c21a8f45aaa64eb8ef6a488",
116
118
  "v8-table-event/SKILL.md": "ddeb3020e8c7e3002c8f8598a65208b7a2f706ee13f040037f85979c7bc1e8fd",
117
119
  "v8-template-engine/SKILL.md": "20002c2124214641b782db9deabb367c151b6be1b2d32f6689c163dcb0925cce",
118
120
  "v8-utilities/SKILL.md": "cdc1c33e2c464a89635bbcb96bf5079d9e22c58a0c70158634c2ab70fd034d3b",
119
121
  "v8-utilities/references/client-api-index.md": "e7b4c9dea4e83e449b9efbb23c3d19da500d8683996a2dba06c568b79adbee60",
120
122
  "v8-utilities/references/platform-http-routes.md": "87579eef4e89b4c80e1757ad34ec951e0ccadb6bd15aab4f3ab247f55d5f1cd5",
121
- "v8-utilities/references/server-api-index.md": "9fd2871b522e39276bcf0cc7526bd6b44c017d051334ce466e2daf9a83b0185e",
123
+ "v8-utilities/references/server-api-index.md": "761f4910050b217d3fecc14f4405b779a0f1661cbd8051086fd35b067a794dc8",
122
124
  "v8-workflow/SKILL.md": "cd6738edd79f628948adfac898b6d58a81feb28d1ec6d1f83fc12758fb570819",
123
- "workspace-conventions/SKILL.md": "d1a2c8f20f861a09dcd75b0d65d65dcdcd76523741a0e0666086c241dcda4e5f"
125
+ "workspace-conventions/SKILL.md": "a498653fca2c3f1b43241b789a3f07f6aece36d89609999a5177a42705615b0d"
124
126
  },
125
127
  "fileVersions": {
126
- ".microi-skills-version.json": "4.6.2",
127
- "README.md": "4.6.2",
128
- "ai-engine/SKILL.md": "4.6.2",
129
- "ai-engine/agents/openai.yaml": "4.6.2",
130
- "app-store/SKILL.md": "4.6.2",
131
- "app-store/agents/openai.yaml": "4.6.2",
132
- "business-blueprint/SKILL.md": "4.6.2",
133
- "datasource-engine/SKILL.md": "4.6.2",
134
- "datasource-engine/agents/openai.yaml": "4.6.2",
135
- "dos-orm/SKILL.md": "4.6.2",
136
- "dos-orm/references/api-reference.md": "4.6.2",
137
- "job-engine/SKILL.md": "4.6.2",
138
- "job-engine/agents/openai.yaml": "4.6.2",
139
- "message-notification/SKILL.md": "4.6.2",
140
- "message-notification/agents/openai.yaml": "4.6.2",
141
- "message-notification/references/contracts.md": "4.6.2",
142
- "microi-ai-app-auth.js": "4.6.2",
143
- "microi-ai-application/SKILL.md": "4.6.2",
144
- "microi-ai-application/agents/openai.yaml": "4.6.2",
145
- "microi-ai-application/references/frontend-baseline.md": "4.6.2",
146
- "microi-client-frontend/SKILL.md": "4.6.2",
147
- "microi-datasource-mapping/SKILL.md": "4.6.2",
148
- "microi-db-schema/SKILL.md": "4.6.2",
149
- "microi-db-schema/agents/openai.yaml": "4.6.2",
150
- "microi-db-schema/references/core-tables.md": "4.6.2",
151
- "microi-db-schema/references/form-component-options.md": "4.6.2",
152
- "microi-db-schema/references/schema-overview.md": "4.6.2",
153
- "microi-db-schema/references/schema.md": "4.6.2",
154
- "microi-db-schema/references/table-catalog.md": "4.6.2",
155
- "microi-deployment/SKILL.md": "4.6.2",
156
- "microi-deployment/references/deployment-matrix.md": "4.6.2",
157
- "microi-docs-coverage/SKILL.md": "4.6.2",
158
- "microi-docs-coverage/references/capability-map.md": "4.6.2",
159
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.6.2",
160
- "microi-form-engine/SKILL.md": "4.6.2",
161
- "microi-form-engine/references/component-catalog.md": "4.6.2",
162
- "microi-form-engine/references/data-source-events.md": "4.6.2",
163
- "microi-form-layout/SKILL.md": "4.6.2",
164
- "microi-frontend-sdk/SKILL.md": "4.6.2",
165
- "microi-left-right-layout/SKILL.md": "4.6.2",
166
- "microi-microservice/SKILL.md": "4.6.2",
167
- "microi-microservice/references/runtime-delivery.md": "4.6.2",
168
- "microi-mobile-app-quality/SKILL.md": "4.6.2",
169
- "microi-solution-quotation/SKILL.md": "4.6.2",
170
- "microi-solution-quotation/agents/openai.yaml": "4.6.2",
171
- "microi-solution-quotation/scripts/build_solution_quote.py": "4.6.2",
172
- "microi-system-delivery/SKILL.md": "4.6.2",
173
- "microi-ui/SKILL.md": "4.6.2",
174
- "microi-uniapp-frontend/SKILL.md": "4.6.2",
175
- "microi.v8.js": "4.6.2",
176
- "module-engine/SKILL.md": "4.6.2",
177
- "module-engine/references/module-config.md": "4.6.2",
178
- "page-engine/SKILL.md": "4.6.2",
179
- "performance-testing/SKILL.md": "4.6.2",
180
- "playwright-e2e/SKILL.md": "4.6.2",
181
- "print-engine/SKILL.md": "4.6.2",
182
- "production-readonly-audit/SKILL.md": "4.6.2",
183
- "report-engine/SKILL.md": "4.6.2",
184
- "report-engine/agents/openai.yaml": "4.6.2",
185
- "search-engine/SKILL.md": "4.6.2",
186
- "search-engine/agents/openai.yaml": "4.6.2",
187
- "spider-engine/SKILL.md": "4.6.2",
188
- "translate-engine/SKILL.md": "4.6.2",
189
- "translate-engine/agents/openai.yaml": "4.6.2",
190
- "ui-design/SKILL.md": "4.6.2",
191
- "ui-design/assets/pattern-showcase/app.js": "4.6.2",
192
- "ui-design/assets/pattern-showcase/index.html": "4.6.2",
193
- "ui-design/assets/pattern-showcase/styles.css": "4.6.2",
194
- "ui-design/assets/templates/MCI-DESIGN.md": "4.6.2",
195
- "ui-design/references/design-pattern-library.md": "4.6.2",
196
- "ui-design/references/mci-design-contract.md": "4.6.2",
197
- "ui-design/references/motion-and-media.md": "4.6.2",
198
- "ui-design/references/product-flow-recipes.md": "4.6.2",
199
- "uniapp-mall-assets/SKILL.md": "4.6.2",
200
- "v8-api-config/SKILL.md": "4.6.2",
201
- "v8-cache-pattern/SKILL.md": "4.6.2",
202
- "v8-crud-api/SKILL.md": "4.6.2",
203
- "v8-debugging/SKILL.md": "4.6.2",
204
- "v8-explorer-tree/SKILL.md": "4.6.2",
205
- "v8-export-import/SKILL.md": "4.6.2",
206
- "v8-file-upload/SKILL.md": "4.6.2",
207
- "v8-formengine-http/SKILL.md": "4.6.2",
208
- "v8-frontend-events/SKILL.md": "4.6.2",
209
- "v8-frontend-events/references/bluetooth-print-api.md": "4.6.2",
210
- "v8-frontend-events/references/bluetooth-print.md": "4.6.2",
211
- "v8-http-integration/SKILL.md": "4.6.2",
212
- "v8-image-processing/SKILL.md": "4.6.2",
213
- "v8-image-processing/agents/openai.yaml": "4.6.2",
214
- "v8-image-processing/references/api-reference.md": "4.6.2",
215
- "v8-menu-buttons/SKILL.md": "4.6.2",
216
- "v8-mongodb/SKILL.md": "4.6.2",
217
- "v8-mq-mqtt/SKILL.md": "4.6.2",
218
- "v8-saas-multi-tenant/SKILL.md": "4.6.2",
219
- "v8-security/SKILL.md": "4.6.2",
220
- "v8-sql-query/SKILL.md": "4.6.2",
221
- "v8-table-event/SKILL.md": "4.6.2",
222
- "v8-template-engine/SKILL.md": "4.6.2",
223
- "v8-utilities/SKILL.md": "4.6.2",
224
- "v8-utilities/references/client-api-index.md": "4.6.2",
225
- "v8-utilities/references/platform-http-routes.md": "4.6.2",
226
- "v8-utilities/references/server-api-index.md": "4.6.2",
227
- "v8-workflow/SKILL.md": "4.6.2",
228
- "workspace-conventions/SKILL.md": "4.6.2"
128
+ ".microi-skills-version.json": "4.6.7",
129
+ "README.md": "4.6.7",
130
+ "ai-engine/SKILL.md": "4.6.7",
131
+ "ai-engine/agents/openai.yaml": "4.6.7",
132
+ "app-store/SKILL.md": "4.6.7",
133
+ "app-store/agents/openai.yaml": "4.6.7",
134
+ "business-blueprint/SKILL.md": "4.6.7",
135
+ "datasource-engine/SKILL.md": "4.6.7",
136
+ "datasource-engine/agents/openai.yaml": "4.6.7",
137
+ "dos-orm/SKILL.md": "4.6.7",
138
+ "dos-orm/references/api-reference.md": "4.6.7",
139
+ "job-engine/SKILL.md": "4.6.7",
140
+ "job-engine/agents/openai.yaml": "4.6.7",
141
+ "message-notification/SKILL.md": "4.6.7",
142
+ "message-notification/agents/openai.yaml": "4.6.7",
143
+ "message-notification/references/contracts.md": "4.6.7",
144
+ "microi-ai-app-auth.js": "4.6.7",
145
+ "microi-ai-application/SKILL.md": "4.6.7",
146
+ "microi-ai-application/agents/openai.yaml": "4.6.7",
147
+ "microi-ai-application/references/frontend-baseline.md": "4.6.7",
148
+ "microi-client-frontend/SKILL.md": "4.6.7",
149
+ "microi-datasource-mapping/SKILL.md": "4.6.7",
150
+ "microi-db-schema/SKILL.md": "4.6.7",
151
+ "microi-db-schema/agents/openai.yaml": "4.6.7",
152
+ "microi-db-schema/references/core-tables.md": "4.6.7",
153
+ "microi-db-schema/references/form-component-options.md": "4.6.7",
154
+ "microi-db-schema/references/schema-overview.md": "4.6.7",
155
+ "microi-db-schema/references/schema.md": "4.6.7",
156
+ "microi-db-schema/references/table-catalog.md": "4.6.7",
157
+ "microi-deployment/SKILL.md": "4.6.7",
158
+ "microi-deployment/references/deployment-matrix.md": "4.6.7",
159
+ "microi-docs-coverage/SKILL.md": "4.6.7",
160
+ "microi-docs-coverage/references/capability-map.md": "4.6.7",
161
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.6.7",
162
+ "microi-form-engine/SKILL.md": "4.6.7",
163
+ "microi-form-engine/references/component-catalog.md": "4.6.7",
164
+ "microi-form-engine/references/data-source-events.md": "4.6.7",
165
+ "microi-form-layout/SKILL.md": "4.6.7",
166
+ "microi-frontend-sdk/SKILL.md": "4.6.7",
167
+ "microi-left-right-layout/SKILL.md": "4.6.7",
168
+ "microi-microservice/SKILL.md": "4.6.7",
169
+ "microi-microservice/references/runtime-delivery.md": "4.6.7",
170
+ "microi-mobile-app-quality/SKILL.md": "4.6.7",
171
+ "microi-solution-quotation/SKILL.md": "4.6.7",
172
+ "microi-solution-quotation/agents/openai.yaml": "4.6.7",
173
+ "microi-solution-quotation/scripts/build_solution_quote.py": "4.6.7",
174
+ "microi-system-delivery/SKILL.md": "4.6.7",
175
+ "microi-ui/SKILL.md": "4.6.7",
176
+ "microi-uniapp-frontend/SKILL.md": "4.6.7",
177
+ "microi.v8.js": "4.6.7",
178
+ "module-engine/SKILL.md": "4.6.7",
179
+ "module-engine/references/module-config.md": "4.6.7",
180
+ "ocr-engine/SKILL.md": "4.6.7",
181
+ "ocr-engine/agents/openai.yaml": "4.6.7",
182
+ "page-engine/SKILL.md": "4.6.7",
183
+ "performance-testing/SKILL.md": "4.6.7",
184
+ "playwright-e2e/SKILL.md": "4.6.7",
185
+ "print-engine/SKILL.md": "4.6.7",
186
+ "production-readonly-audit/SKILL.md": "4.6.7",
187
+ "report-engine/SKILL.md": "4.6.7",
188
+ "report-engine/agents/openai.yaml": "4.6.7",
189
+ "search-engine/SKILL.md": "4.6.7",
190
+ "search-engine/agents/openai.yaml": "4.6.7",
191
+ "spider-engine/SKILL.md": "4.6.7",
192
+ "translate-engine/SKILL.md": "4.6.7",
193
+ "translate-engine/agents/openai.yaml": "4.6.7",
194
+ "ui-design/SKILL.md": "4.6.7",
195
+ "ui-design/assets/pattern-showcase/app.js": "4.6.7",
196
+ "ui-design/assets/pattern-showcase/index.html": "4.6.7",
197
+ "ui-design/assets/pattern-showcase/styles.css": "4.6.7",
198
+ "ui-design/assets/templates/MCI-DESIGN.md": "4.6.7",
199
+ "ui-design/references/design-pattern-library.md": "4.6.7",
200
+ "ui-design/references/mci-design-contract.md": "4.6.7",
201
+ "ui-design/references/motion-and-media.md": "4.6.7",
202
+ "ui-design/references/product-flow-recipes.md": "4.6.7",
203
+ "uniapp-mall-assets/SKILL.md": "4.6.7",
204
+ "v8-api-config/SKILL.md": "4.6.7",
205
+ "v8-cache-pattern/SKILL.md": "4.6.7",
206
+ "v8-crud-api/SKILL.md": "4.6.7",
207
+ "v8-debugging/SKILL.md": "4.6.7",
208
+ "v8-explorer-tree/SKILL.md": "4.6.7",
209
+ "v8-export-import/SKILL.md": "4.6.7",
210
+ "v8-file-upload/SKILL.md": "4.6.7",
211
+ "v8-formengine-http/SKILL.md": "4.6.7",
212
+ "v8-frontend-events/SKILL.md": "4.6.7",
213
+ "v8-frontend-events/references/bluetooth-print-api.md": "4.6.7",
214
+ "v8-frontend-events/references/bluetooth-print.md": "4.6.7",
215
+ "v8-http-integration/SKILL.md": "4.6.7",
216
+ "v8-image-processing/SKILL.md": "4.6.7",
217
+ "v8-image-processing/agents/openai.yaml": "4.6.7",
218
+ "v8-image-processing/references/api-reference.md": "4.6.7",
219
+ "v8-menu-buttons/SKILL.md": "4.6.7",
220
+ "v8-mongodb/SKILL.md": "4.6.7",
221
+ "v8-mq-mqtt/SKILL.md": "4.6.7",
222
+ "v8-saas-multi-tenant/SKILL.md": "4.6.7",
223
+ "v8-security/SKILL.md": "4.6.7",
224
+ "v8-sql-query/SKILL.md": "4.6.7",
225
+ "v8-table-event/SKILL.md": "4.6.7",
226
+ "v8-template-engine/SKILL.md": "4.6.7",
227
+ "v8-utilities/SKILL.md": "4.6.7",
228
+ "v8-utilities/references/client-api-index.md": "4.6.7",
229
+ "v8-utilities/references/platform-http-routes.md": "4.6.7",
230
+ "v8-utilities/references/server-api-index.md": "4.6.7",
231
+ "v8-workflow/SKILL.md": "4.6.7",
232
+ "workspace-conventions/SKILL.md": "4.6.7"
229
233
  },
230
234
  "files": [
231
235
  ".microi-skills-version.json",
@@ -280,6 +284,8 @@
280
284
  "microi.v8.js",
281
285
  "module-engine/SKILL.md",
282
286
  "module-engine/references/module-config.md",
287
+ "ocr-engine/SKILL.md",
288
+ "ocr-engine/agents/openai.yaml",
283
289
  "page-engine/SKILL.md",
284
290
  "performance-testing/SKILL.md",
285
291
  "playwright-e2e/SKILL.md",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "4.6.2",
2
+ "version": "4.6.7",
3
3
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
4
4
  "managedBy": "Microi.VSCode/bump-version.js",
5
- "updatedAt": "2026-08-03T07:14:49.443Z"
5
+ "updatedAt": "2026-08-05T14:09:41.443Z"
6
6
  }
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## 包含的 Skills
10
10
 
11
- 当前仓库包含 57 个 `SKILL.md`。以下清单按任务类型组织;AI 必须先完整读取与当前任务匹配的 Skill,再执行源码、MCP、文档或交付操作。
11
+ 当前仓库包含 58 个 `SKILL.md`。以下清单按任务类型组织;AI 必须先完整读取与当前任务匹配的 Skill,再执行源码、MCP、文档或交付操作。
12
12
 
13
13
  ### V8 引擎核心(后端)
14
14
 
@@ -30,6 +30,7 @@
30
30
  | **v8-debugging** | 调试模式、异常捕获、系统日志 | `v8-debugging/SKILL.md` |
31
31
  | **v8-security** | 安全最佳实践(权限/输入验证/防注入) | `v8-security/SKILL.md` |
32
32
  | **v8-utilities** | 前后端 V8 上下文、通用函数、扫码、消息、Base64、加密和专项 API 索引 | `v8-utilities/SKILL.md` |
33
+ | **ocr-engine** | 通用 OCR 网关、SaaS 配置、PaddleX 服务与多节点验收 | `ocr-engine/SKILL.md` |
33
34
  | **spider-engine** | 爬虫/浏览器采集 Worker、会话、目标地址、配额与交付边界 | `spider-engine/SKILL.md` |
34
35
 
35
36
  ### V8 引擎核心(前端)
@@ -223,7 +224,7 @@ done
223
224
 
224
225
  - 浏览器 FormEngine 请求优先携带真实 `_SysMenuId`;历史无菜单调用由后端从用户真实菜单缓存安全推断,后端可信 V8 不要求 `_SysMenuId`。
225
226
  - `_InvokeType: 'Client'` 会触发表单 V8 事件,不是授权标记,也不能用来“避免递归”。
226
- - 平台保护表和控制面 API 只允许 `Level >= 9999`;普通角色的表权限不能绕过该基线。
227
+ - 平台表按管理员专用、只读委托、按角色管理分级;控制面 API 与管理员专用表只允许主库复核后的 `Level >= 9999`,普通角色权限不能绕过,全部平台表拒绝匿名。
227
228
  - 多租户、文件、Redis、MQ、对象存储和搜索能力必须由服务端绑定当前 `OsClient`。
228
229
  - `setTimeout`、`Task.Run` 和进程内静态状态不能承担可靠后台任务或集群锁。
229
230
  - 上传上限由平台默认值和 `sys_osclients` 租户配置共同约束;私有文件的浏览器访问必须绑定菜单、记录、字段和附件。
@@ -11,9 +11,32 @@ description: Microi AI 引擎、模型代理、NL2SQL/NL2V8 与知识库规范
11
11
 
12
12
  当前入口并不共用一条检索链路:普通 `Chat/ChatStream` 使用服务端会话上下文和固定核心规范 Prompt;`NL2SQL` 使用当前租户 Schema 双模式检索;`NL2V8` 使用 Skill 镜像与当前租户 Schema 双模式检索。默认模式不依赖 Ollama、`nomic-embed-text` 或 Qdrant;只有显式开启向量数据库时才增加向量通道。`Microi.Server/Microi.AI` 不是 MCP Host,没有注册 MCP Tools,也没有处理 `tool_calls` 的代理循环。MCP Server 目前由 Codex、Copilot、Cursor、Claude Code 等外部宿主调用。禁止仅凭 Prompt 中出现“使用 MCP”就声称在线 AI 已经执行工具。
13
13
 
14
- 未来若给平台在线 AI 增加工具调用,优先在 `Microi.AI` 内建立受限 Tool Gateway,复用 FormEngine、V8McpLogic 等后端服务的授权入口;不要让后端使用超级管理员 Token 再请求自己的 MCP。每次工具调用必须继承当前用户、`OsClient`、Token/权限快照和审计上下文,模型只能提出调用建议,服务端仍负责参数白名单、写操作确认、幂等、步数/时长/结果大小上限和权威回读。工具返回的数据继续按不可信内容处理,不能反向覆盖系统规则。
15
-
16
- ## 代码分层
14
+ 未来若给平台在线 AI 增加工具调用,优先在 `Microi.AI` 内建立受限 Tool Gateway,复用 FormEngine、V8McpLogic 等后端服务的授权入口;不要让后端使用超级管理员 Token 再请求自己的 MCP。每次工具调用必须继承当前用户、`OsClient`、Token/权限快照和审计上下文,模型只能提出调用建议,服务端仍负责参数白名单、写操作确认、幂等、步数/时长/结果大小上限和权威回读。工具返回的数据继续按不可信内容处理,不能反向覆盖系统规则。
15
+
16
+ ## 商业授权与调用入口
17
+
18
+ 内置在线 AI 有两套不能混淆的授权:
19
+
20
+ - `Chat/ChatStream/NL2SQL/NL2SQLStreaming/NL2V8Engine` 统一读取宿主 `IMicroiFeatureLicense`。未修改的官方发布物只有本机通过官方 RSA 公钥、当前 HID 和有效期验证的 `Personal/Enterprise` License 才能继续推理;客户自建私钥/公钥不能替换内嵌官方信任根。验签在本机完成,`api.itdos.com` 只负责签发和周期性作废查询,不是每次调用的在线依赖。
21
+ - `MicroiAI` 与 `AiProxyService` 会拒绝宿主替换的 `IMicroiFeatureLicense` 实现,统一回到 `Microi.net` 的封闭校验器;签发地址固定为 `https://api.itdos.com`,签发私钥目录不得进入构建、NuGet 或发布包。拥有服务器管理员权限的人仍可能篡改本地二进制或机器指令,纯本地 DRM 无法从理论上阻止这种物理控制;但没有官方私钥就不能生成可被未修改吾码节点接受、并可转发给其它正常节点使用的有效 License。
22
+ - 官方中转站另用 `sk-microi-*` ApiKey 和账号 Token 额度鉴权。服务器 License 不能代替中转 ApiKey,中转 ApiKey 也不能把本地核心 AI 入口变成已授权。
23
+ - `AiProxyService` 的 `ProxyChat/ProxyChatStream`、头像生成与 `/v1/chat/completions` 在领域层读取同一服务器 License,并继续执行登录态或平台 ApiKey/订阅链路。模型清单、套餐、订单和用量属于不触发模型推理的发现/账户接口,可以在未授权时用于配置与购买流程。
24
+
25
+ 跨端调用必须按现有事实描述:
26
+
27
+ | 调用方 | 当前入口 | 关键边界 |
28
+ |---|---|---|
29
+ | 前端 V8 | `await V8.AI.Chat(...)` / `V8.AI.ChatGet(...)` | 自动使用当前 ApiBase、登录 Token 与租户;清除客户端身份、Endpoint、ApiKey;普通返回为 `DosResult` |
30
+ | 浏览器流式 UI | `await V8.AI.ChatStream(..., onChunk, {Signal})` | 内置解析 `message/result/error/done` SSE、Token 轮换和取消;`onChunk` 接收真实增量 |
31
+ | 后端 V8 | `await V8.AI.Chat(...)` / `ChatStream(...)` | 对象创建时绑定当前 `OsClient` 与认证用户;匿名上下文拒绝,不需要自请求 HTTP |
32
+ | MCP | `microi_chat` | 使用 MCP 已登录 Token 和绑定租户;只接受对话白名单参数,返回最终 `DosResult`,不冒充逐 token 流 |
33
+ | OpenAI 兼容客户端 | `POST /v1/chat/completions` | 使用 `Bearer sk-microi-*`,请求体 `stream` 控制普通/流式 |
34
+
35
+ `Chat/ChatStream` 虽声明 GET/POST,含问题、附件和会话上下文的业务调用默认使用 POST,避免敏感内容进入 URL 日志。Controller 和 `V8.AI` 必须从可信执行上下文覆盖当前用户和 `OsClient`,并清除客户端提交的 `ApiKey/Endpoint`。所谓打字机效果必须来自真实 SSE 增量块;`microi_chat` 只返回最终结果,不能被描述成逐 token MCP 流。
36
+
37
+ 安全数据分析必须继续调用 `/api/Ai/NL2SQL`,由服务端从当前用户权限生成表白名单;通用 AI 包装接口不得接受客户端自报的表名作为授权。
38
+
39
+ ## 代码分层
17
40
 
18
41
  AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.Api` 只是 HTTP、SSE 与 SignalR 传输层,可以做路由、请求绑定、读取认证中间件产生的可信用户/租户、传递取消信号和写响应,但不能承载模型选择、Schema/Skill 检索、NL2SQL 授权与执行、提示词编排、代理路由、供应商密钥、额度计量、订阅支付状态或 AI 工作流。
19
42
 
@@ -24,9 +47,11 @@ AI 业务统一实现在 `Microi.Server/Microi.AI`。`Microi.Server/Microi.net.A
24
47
 
25
48
  ## 模型与密钥
26
49
 
27
- - 模型 Provider、Endpoint、ApiKey、AuthPrefix 和上游模型 Id 只保存在服务端受保护配置。
28
- - 普通用户使用平台签发的受限 API Key/订阅身份,不能枚举或读取上游密钥。
29
- - 当前计量记录除问题摘要外还可能持久化完整 `Question`、`Answer`,部分诊断日志也会输出问题或摘要。处理现有版本时必须把这些字段视为敏感业务数据,限制查询权限和留存;不要声称已经全面脱敏。
50
+ - 模型 Provider、Endpoint、ApiKey、AuthPrefix 和上游模型 Id 只保存在服务端受保护配置。
51
+ - 普通用户使用平台签发的受限 API Key/订阅身份,不能枚举或读取上游密钥。
52
+ - 使用 Microi.AI 中转站时,租户侧 AI Bootstrap 通过官方 `official_ai_relay_models` 发现可用运行模型。该接口是跨租户只读公共契约,必须保持启用、允许匿名 HTTP 调用,并且只返回模型标识、展示名等公开白名单字段,绝不能返回中转密钥或上游 Endpoint。消费者不得把 `NoAuth` 静默伪装为“没有配置模型”;应返回可诊断错误,同时前端显示明确空态。
53
+ - PC、UniApp 和其它客户端通过 `POST /apiengine/{key}` 发送的 JSON Body 必须完整进入 `V8.Param`;兼容入口 `/api/ApiEngine/Run` 的 JSON Body 还必须包含 `ApiEngineKey`。API 层只负责请求绑定和清除客户端伪造的可信字段,模型选择、权限策略与对话逻辑仍全部位于 `Microi.AI` 或受控 AI 接口引擎中。
54
+ - 当前计量记录除问题摘要外还可能持久化完整 `Question`、`Answer`,部分诊断日志也会输出问题或摘要。处理现有版本时必须把这些字段视为敏感业务数据,限制查询权限和留存;不要声称已经全面脱敏。
30
55
  - 发布目标是日志只记录 trace id、模型、耗时、token 计数和状态,Prompt/Answer 按租户策略脱敏,密码、Token、连接串和完整业务数据不落日志。该目标必须用源码和真实数据回读证明。
31
56
  - OpenAI 代理流式接口会传递 HTTP 请求取消信号;普通 `ChatStream` 与 `NL2V8` 当前主要使用内部超时 Token。不要声称浏览器断开一定立即终止上游调用或计费。
32
57
 
@@ -116,10 +141,12 @@ MCP 提供实时事实和受控执行;关键词索引提供低依赖、确定
116
141
 
117
142
  配额扣减使用共享数据库/Redis 的原子条件更新,按用户、租户、模型和时间窗隔离。进程内计数只能做本节点优化。请求重试使用稳定 request id,避免上游已成功但本地超时导致重复计费。
118
143
 
119
- ## 验收清单
120
-
121
- - [ ] 模型密钥只在服务端,普通用户不可枚举
122
- - [ ] Schema/向量/对话/配额按 `OsClient` 隔离
144
+ ## 验收清单
145
+
146
+ - [ ] 模型密钥只在服务端,普通用户不可枚举
147
+ - [ ] 官方中转模型清单可在无 Token 下返回非空公开白名单,且不含 ApiKey、Endpoint;Bootstrap 失败不会被静默降级为空列表
148
+ - [ ] 直接动态路由与 `/api/ApiEngine/Run` 兼容入口的 JSON Body 均能到达 `V8.Param`,HTTP 伪造可信字段仍被清除
149
+ - [ ] Schema/向量/对话/配额按 `OsClient` 隔离
123
150
  - [ ] `EnableVectorDatabase` 缺失、空值或 `0` 时不创建、连接、初始化、同步或搜索 Embedding/Ollama/Qdrant
124
151
  - [ ] 默认链路使用结构化大模型扩词;扩词失败时中文 2/3 字确定性回退仍能召回常见业务实体
125
152
  - [ ] 文档明确区分普通 Chat、NL2SQL Schema 双模式检索和 NL2V8 Skill + Schema 双模式检索
@@ -134,7 +161,7 @@ MCP 提供实时事实和受控执行;关键词索引提供低依赖、确定
134
161
  - [ ] 带行级范围或高风险查询失败关闭,并改走审核、参数化和审计的业务 ApiEngine
135
162
  - [ ] NL2V8 保存前有确认、语法、版本、回读和执行验证
136
163
  - [ ] Prompt injection 不能调用未授权工具
137
- - [ ] 未实现 MCP Tool/Agent Loop 时,界面和文档不会声称在线 AI 已执行 MCP
164
+ - [ ] `microi_chat` 只调用对话入口、拒绝身份/密钥/Endpoint 覆盖并返回最终结果;在尚无模型 `tool_calls` Agent Loop 时,不会声称平台在线 AI 已执行其它 MCP 工具
138
165
  - [ ] 各流式入口分别验证断开取消或明确仅有超时,不做过度承诺
139
166
  - [ ] Prompt/Answer 当前留存范围已披露;全面脱敏只能在真实实现并回读后声明
140
167
  - [ ] 新旧节点知识库版本可共存