吸收数字员工策略治理审批路由收口

This commit is contained in:
baiyanyun
2026-06-15 14:40:41 +08:00
parent fd3b149172
commit 87b440e93f
7 changed files with 258 additions and 13 deletions

View File

@@ -2067,6 +2067,119 @@ function checkDigitalAdminGovernancePolicyRevisionMaterialization() {
console.log("[DigitalEmployeeCheck] admin governance policy and revision materialization hooks OK");
}
function checkDigitalAdminPolicyGovernanceClosure() {
console.log("\n[DigitalEmployeeCheck] Verify admin policy governance approval route closure hooks");
const backendRoot = path.resolve(packageRoot, "..", "..", "..", "qiming-backend");
const qimingRoot = path.resolve(packageRoot, "..", "..", "..", "qiming");
const servicePath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-application",
"src",
"main",
"java",
"com",
"xspaceagi",
"agent",
"core",
"application",
"service",
"DigitalEmployeeSyncApplicationServiceImpl.java",
);
const dtoPath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-adapter",
"src",
"main",
"java",
"com",
"xspaceagi",
"agent",
"core",
"adapter",
"dto",
"digital",
"DigitalEmployeeAdminWorkbenchRowDto.java",
);
const testPath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-application",
"src",
"test",
"java",
"com",
"xspaceagi",
"agent",
"core",
"application",
"service",
"DigitalEmployeeSyncApplicationServiceImplTest.java",
);
const qimingOpsPath = path.join(qimingRoot, "src", "pages", "SystemManagement", "Content", "DigitalEmployeeOps", "index.tsx");
const qimingTypesPath = path.join(qimingRoot, "src", "types", "interfaces", "systemManage.ts");
const docsPath = path.resolve(packageRoot, "..", "..", "docs", "digital-employee-frontend-integration-plan.md");
const service = fs.readFileSync(servicePath, "utf8");
const dto = fs.readFileSync(dtoPath, "utf8");
const test = fs.readFileSync(testPath, "utf8");
const qimingOps = fs.readFileSync(qimingOpsPath, "utf8");
const qimingTypes = fs.readFileSync(qimingTypesPath, "utf8");
const docs = fs.readFileSync(docsPath, "utf8");
const requiredSnippets = [
[service, "policy_center", "backend policy center view"],
[service, "governance_policies", "backend governance policies view"],
[service, "approval_policies", "backend approval policies view"],
[service, "route_governance", "backend route governance view"],
[service, "request_policy_edit", "backend low risk policy edit request action"],
[service, "request_policy_merge_review", "backend low risk policy merge review action"],
[service, "auto_merge_policy_disabled", "backend auto merge disabled reason"],
[service, "auto_decision_disabled", "backend auto decision disabled reason"],
[service, "route_recovery_disabled", "backend route recovery disabled reason"],
[dto, "merge_request_id", "backend merge request row field"],
[dto, "merge_recommendation", "backend merge recommendation row field"],
[dto, "approval_policy_edit_disabled", "backend approval policy edit guard field"],
[dto, "route_policy_edit_disabled", "backend route policy edit guard field"],
[dto, "route_recovery_disabled", "backend route recovery guard field"],
[dto, "high_risk_execution_disabled", "backend high risk execution guard field"],
[test, "queryAdminWorkbenchPolicyCenterReturnsPolicyEditAndMergeShellRows", "backend policy center closure test"],
[test, "queryAdminWorkbenchGovernancePoliciesReturnsExecutionGuardRows", "backend governance execution guard test"],
[test, "queryAdminWorkbenchApprovalPoliciesReturnsDecisionGuardShellRows", "backend approval decision guard test"],
[test, "queryAdminWorkbenchRouteGovernanceReturnsRecoveryGuardRows", "backend route recovery guard test"],
[test, "createAdminActionAllowsLowRiskPolicyGovernanceIntents", "backend low risk policy governance actions test"],
[test, "createAdminActionRejectsHighRiskPolicyGovernanceExecution", "backend high risk policy governance rejection test"],
[qimingTypes, "merge_request_id", "qiming merge request type field"],
[qimingTypes, "merge_recommendation", "qiming merge recommendation type field"],
[qimingTypes, "approval_policy_edit_disabled", "qiming approval policy guard type field"],
[qimingTypes, "route_policy_edit_disabled", "qiming route policy guard type field"],
[qimingTypes, "route_recovery_disabled", "qiming route recovery guard type field"],
[qimingTypes, "high_risk_execution_disabled", "qiming high risk guard type field"],
[qimingOps, "策略中心", "qiming policy center tab"],
[qimingOps, "治理策略", "qiming governance policies tab"],
[qimingOps, "审批策略", "qiming approval policies tab"],
[qimingOps, "路由治理", "qiming route governance tab"],
[qimingOps, "请求策略编辑", "qiming policy edit request action"],
[qimingOps, "请求合并复核", "qiming merge review action"],
[qimingOps, "策略编辑/合并安全壳", "qiming policy edit merge shell copy"],
[qimingOps, "合并建议", "qiming merge recommendation copy"],
[qimingOps, "审批策略编辑/裁决安全壳", "qiming approval decision shell copy"],
[qimingOps, "路由策略编辑/恢复安全壳", "qiming route recovery shell copy"],
[qimingOps, "高风险恢复执行不开放", "qiming high risk route recovery guard copy"],
[qimingOps, "真实远程策略强编辑不开放", "qiming remote force edit guard copy"],
[docs, "策略治理审批路由总收口已开始吸收", "docs policy governance closure absorption"],
];
const missing = requiredSnippets
.filter(([content, snippet]) => !content.includes(snippet))
.map(([, , label]) => label);
if (missing.length > 0) {
throw new Error(`Missing admin policy governance closure hooks: ${missing.join(", ")}`);
}
console.log("[DigitalEmployeeCheck] admin policy governance closure hooks OK");
}
function checkDigitalAdminPlanStepDispatchWorkbench() {
console.log("\n[DigitalEmployeeCheck] Verify admin plan step dispatch workbench hooks");
const backendRoot = path.resolve(packageRoot, "..", "..", "..", "qiming-backend");
@@ -3119,6 +3232,7 @@ function main() {
checkDigitalAdminPolicySchedulerWorkbenches();
checkDigitalAdminPlanGovernanceWorkbenches();
checkDigitalAdminGovernancePolicyRevisionMaterialization();
checkDigitalAdminPolicyGovernanceClosure();
checkDigitalAdminPlanStepDispatchWorkbench();
checkDigitalAdminCollaborationOperationsClosure();
checkDigitalAdminServiceOperationsWorkbench();