fix(p1r): 修正 API 覆盖矩阵必填与入口归属
This commit is contained in:
parent
4084fce699
commit
0d16c21fd9
@ -1,5 +1,5 @@
|
||||
{
|
||||
"generatedAt": "2026-05-25T09:12:54+00:00",
|
||||
"generatedAt": "2026-05-25T04:07:18+00:00",
|
||||
"sourceContracts": [
|
||||
"docs/api-contracts/account/openapi.yaml",
|
||||
"docs/api-contracts/ai/openapi.yaml",
|
||||
@ -39,8 +39,7 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -87,8 +86,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -135,8 +133,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -182,8 +179,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -231,8 +227,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -278,8 +273,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -325,8 +319,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -372,8 +365,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -419,8 +411,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -467,8 +458,7 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -514,8 +504,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -562,8 +551,7 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -610,8 +598,7 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/service/address/AddressService.java",
|
||||
@ -657,7 +644,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -705,7 +691,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -752,7 +737,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -802,7 +786,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -851,7 +834,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -899,7 +881,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -948,7 +929,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -995,7 +975,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1043,7 +1022,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1090,7 +1068,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1139,7 +1116,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1187,7 +1163,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1234,7 +1209,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1281,7 +1255,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1328,7 +1301,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1377,7 +1349,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1424,7 +1395,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/admin/AdminMuseAccountContractController.java",
|
||||
"muse-cloud/muse-module-member/muse-module-member-server/src/main/java/cn/iocoder/muse/module/member/controller/app/AppMuseAccountContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -1769,7 +1739,7 @@
|
||||
"path": "/admin-api/muse/ai/evaluation-runs",
|
||||
"operationId": "adminStartEvaluationRun",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -1932,7 +1902,7 @@
|
||||
"path": "/admin-api/muse/ai/prompts/{promptKey}/versions",
|
||||
"operationId": "adminCreatePromptVersion",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -2096,7 +2066,7 @@
|
||||
"path": "/admin-api/muse/ai/quality-policies/{policyKey}/versions",
|
||||
"operationId": "adminCreateQualityPolicyVersion",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -2160,8 +2130,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-server/src/main/java/cn/iocoder/muse/module/ai/service/chat/AiChatConversationService.java",
|
||||
@ -2594,8 +2563,7 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-server/src/main/java/cn/iocoder/muse/module/ai/service/chat/AiChatConversationService.java",
|
||||
@ -2640,7 +2608,7 @@
|
||||
"path": "/admin-api/muse/jobs/{jobId}/cancel",
|
||||
"operationId": "adminCancelJob",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -2650,8 +2618,7 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-server/src/main/java/cn/iocoder/muse/module/ai/service/chat/AiChatConversationService.java",
|
||||
@ -2696,7 +2663,7 @@
|
||||
"path": "/admin-api/muse/jobs/{jobId}/retry",
|
||||
"operationId": "adminRetryJob",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -2859,7 +2826,7 @@
|
||||
"path": "/admin-api/muse/source-events/{eventId}/retry",
|
||||
"operationId": "adminRetrySourceEvent",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -2968,7 +2935,7 @@
|
||||
"path": "/app-api/muse/agents",
|
||||
"operationId": "createUserAgent",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -3078,7 +3045,7 @@
|
||||
"path": "/app-api/muse/agents/{agentId}/versions",
|
||||
"operationId": "createAgentVersion",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -3143,7 +3110,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -3306,7 +3272,6 @@
|
||||
"implementationStatus": "generic_persistence",
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -3352,7 +3317,7 @@
|
||||
"path": "/app-api/muse/jobs/{jobId}/cancel",
|
||||
"operationId": "cancelUserJob",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [
|
||||
"New-API",
|
||||
"SSE"
|
||||
@ -3362,7 +3327,6 @@
|
||||
"completionStatus": "incomplete",
|
||||
"controllerFiles": [
|
||||
"muse-cloud/muse-framework/muse-spring-boot-starter-mybatis/src/main/java/cn/iocoder/muse/framework/mybatis/core/muse/MuseContractPersistenceService.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/admin/AdminMuseAiContractController.java",
|
||||
"muse-cloud/muse-module-ai/muse-module-ai-contract-server/src/main/java/cn/iocoder/muse/module/ai/controller/app/AppMuseAiContractController.java"
|
||||
],
|
||||
"serviceFiles": [
|
||||
@ -4815,7 +4779,7 @@
|
||||
"path": "/app-api/muse/works/{workId}/planning/candidates",
|
||||
"operationId": "createPlanningCandidate",
|
||||
"isWrite": true,
|
||||
"requiresCommandId": true,
|
||||
"requiresCommandId": false,
|
||||
"externalDependencies": [],
|
||||
"targetStage": "P1R-1 Content Real API",
|
||||
"implementationStatus": "catch_all",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# P1R API Coverage Report
|
||||
|
||||
- Generated at: `2026-05-25T09:12:54+00:00`
|
||||
- Generated at: `2026-05-25T04:07:18+00:00`
|
||||
- Total operations: `233`
|
||||
- Needs verification: `15`
|
||||
- Incomplete: `218`
|
||||
|
||||
@ -105,7 +105,7 @@ def collect_operations() -> list[Operation]:
|
||||
side = detect_side(full_path)
|
||||
is_write = method.upper() not in {"GET", "HEAD", "OPTIONS"}
|
||||
requires_command_id = operation_requires_command_id(operation_doc, document)
|
||||
implementation = classify_implementation(full_path, method.upper(), operation_id, domain, source_index)
|
||||
implementation = classify_implementation(full_path, side, method.upper(), operation_id, domain, source_index)
|
||||
operations.append(
|
||||
Operation(
|
||||
domain=domain,
|
||||
@ -162,11 +162,12 @@ def build_source_index() -> dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
def classify_implementation(path: str, method: str, operation_id: str, domain: str, source_index: dict[str, Any]) -> dict[str, Any]:
|
||||
def classify_implementation(path: str, side: str, method: str, operation_id: str, domain: str, source_index: dict[str, Any]) -> dict[str, Any]:
|
||||
matching_dedicated = files_containing_route_or_operation(
|
||||
source_index["dedicatedControllers"],
|
||||
source_index["allText"],
|
||||
path,
|
||||
side,
|
||||
method,
|
||||
operation_id,
|
||||
allow_operation_id_fallback=False,
|
||||
@ -176,6 +177,7 @@ def classify_implementation(path: str, method: str, operation_id: str, domain: s
|
||||
source_index["contractSupportFiles"],
|
||||
source_index["allText"],
|
||||
path,
|
||||
side,
|
||||
method,
|
||||
operation_id,
|
||||
allow_operation_id_fallback=False,
|
||||
@ -184,11 +186,12 @@ def classify_implementation(path: str, method: str, operation_id: str, domain: s
|
||||
source_index["genericPersistenceFiles"],
|
||||
source_index["allText"],
|
||||
path,
|
||||
side,
|
||||
method,
|
||||
operation_id,
|
||||
allow_operation_id_fallback=True,
|
||||
)
|
||||
matching_sse = files_containing_sse_placeholder_route(source_index["ssePlaceholderMappings"], path, method)
|
||||
matching_sse = files_containing_sse_placeholder_route(source_index["ssePlaceholderMappings"], path, side, method)
|
||||
|
||||
if matching_sse:
|
||||
return status(
|
||||
@ -239,6 +242,7 @@ def files_containing_route_or_operation(
|
||||
files: list[str],
|
||||
text_by_file: dict[str, str],
|
||||
path: str,
|
||||
side: str,
|
||||
method: str,
|
||||
operation_id: str,
|
||||
allow_operation_id_fallback: bool,
|
||||
@ -246,6 +250,8 @@ def files_containing_route_or_operation(
|
||||
route_variants = route_variants_for(path)
|
||||
matches: list[str] = []
|
||||
for file_path in files:
|
||||
if not file_matches_side(file_path, side):
|
||||
continue
|
||||
text = text_by_file[file_path]
|
||||
route_mappings = extract_route_mappings(text)
|
||||
route_matched = any(route_mapping_matches(route_mapping, method, route_variants) for route_mapping in route_mappings)
|
||||
@ -255,15 +261,25 @@ def files_containing_route_or_operation(
|
||||
return matches
|
||||
|
||||
|
||||
def files_containing_sse_placeholder_route(route_by_file: dict[str, list[RouteMapping]], path: str, method: str) -> list[str]:
|
||||
def files_containing_sse_placeholder_route(route_by_file: dict[str, list[RouteMapping]], path: str, side: str, method: str) -> list[str]:
|
||||
route_variants = route_variants_for(path)
|
||||
matches: list[str] = []
|
||||
for file_path, route_mappings in route_by_file.items():
|
||||
if not file_matches_side(file_path, side):
|
||||
continue
|
||||
if any(route_mapping_matches(route_mapping, method, route_variants) for route_mapping in route_mappings):
|
||||
matches.append(file_path)
|
||||
return matches
|
||||
|
||||
|
||||
def file_matches_side(file_path: str, side: str) -> bool:
|
||||
if "/controller/admin/" in file_path:
|
||||
return side == "admin"
|
||||
if "/controller/app/" in file_path:
|
||||
return side == "app"
|
||||
return True
|
||||
|
||||
|
||||
def route_variants_for(path: str) -> list[str]:
|
||||
variants = {
|
||||
path,
|
||||
@ -353,41 +369,55 @@ def detect_side(path: str) -> str:
|
||||
|
||||
|
||||
def operation_requires_command_id(operation_doc: dict[str, Any], document: dict[str, Any]) -> bool:
|
||||
text = json.dumps(operation_doc, ensure_ascii=False)
|
||||
if "commandId" in text or "X-Command-Id" in text:
|
||||
if operation_has_required_command_header(operation_doc, document):
|
||||
return True
|
||||
|
||||
# OpenAPI 操作通常通过 requestBody schema 引用本文件 components;这里只解析本文件局部引用,避免引入完整解析器。
|
||||
# 只把 schema.required 中的 commandId 视为必填;properties 或 description 里的 commandId 不代表请求必须携带。
|
||||
for content_doc in (operation_doc.get("requestBody") or {}).get("content", {}).values():
|
||||
if not isinstance(content_doc, dict):
|
||||
continue
|
||||
schema_doc = content_doc.get("schema")
|
||||
if isinstance(schema_doc, dict) and local_schema_has_command_id(schema_doc, document, set()):
|
||||
if isinstance(schema_doc, dict) and local_schema_requires_command_id(schema_doc, document, set()):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def local_schema_has_command_id(schema_doc: dict[str, Any], document: dict[str, Any], seen_refs: set[str]) -> bool:
|
||||
def operation_has_required_command_header(operation_doc: dict[str, Any], document: dict[str, Any]) -> bool:
|
||||
for parameter_doc in operation_doc.get("parameters") or []:
|
||||
if not isinstance(parameter_doc, dict):
|
||||
continue
|
||||
resolved = resolve_parameter(parameter_doc, document)
|
||||
if not isinstance(resolved, dict):
|
||||
continue
|
||||
if resolved.get("in") == "header" and resolved.get("name") == "X-Command-Id" and resolved.get("required") is True:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def resolve_parameter(parameter_doc: dict[str, Any], document: dict[str, Any]) -> Any:
|
||||
ref = parameter_doc.get("$ref")
|
||||
if isinstance(ref, str) and ref.startswith("#/"):
|
||||
return resolve_local_ref(document, ref)
|
||||
return parameter_doc
|
||||
|
||||
|
||||
def local_schema_requires_command_id(schema_doc: dict[str, Any], document: dict[str, Any], seen_refs: set[str]) -> bool:
|
||||
required_fields = schema_doc.get("required") or []
|
||||
properties = schema_doc.get("properties") or {}
|
||||
if "commandId" in required_fields or "commandId" in properties:
|
||||
if "commandId" in required_fields:
|
||||
return True
|
||||
|
||||
ref = schema_doc.get("$ref")
|
||||
if isinstance(ref, str) and ref.startswith("#/") and ref not in seen_refs:
|
||||
seen_refs.add(ref)
|
||||
resolved = resolve_local_ref(document, ref)
|
||||
if isinstance(resolved, dict) and local_schema_has_command_id(resolved, document, seen_refs):
|
||||
if isinstance(resolved, dict) and local_schema_requires_command_id(resolved, document, seen_refs):
|
||||
return True
|
||||
|
||||
# 只递归常见组合和嵌套 schema,覆盖 requestBody DTO,不处理跨文件响应 schema。
|
||||
# 只递归 OpenAPI 组合 schema;不递归 properties,避免把可选 commandId 误判成必填。
|
||||
for key in ("allOf", "anyOf", "oneOf"):
|
||||
for nested_schema in schema_doc.get(key) or []:
|
||||
if isinstance(nested_schema, dict) and local_schema_has_command_id(nested_schema, document, seen_refs):
|
||||
if isinstance(nested_schema, dict) and local_schema_requires_command_id(nested_schema, document, seen_refs):
|
||||
return True
|
||||
for nested_schema in properties.values():
|
||||
if isinstance(nested_schema, dict) and local_schema_has_command_id(nested_schema, document, seen_refs):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user