吸收数字员工服务技能记忆审计收口

This commit is contained in:
baiyanyun
2026-06-15 16:21:46 +08:00
parent de33710423
commit fd06f3bce3
7 changed files with 376 additions and 27 deletions

View File

@@ -3226,6 +3226,118 @@ function checkDigitalAdminGovernanceCommandWorkbench() {
console.log("[DigitalEmployeeCheck] admin governance command workbench hooks OK");
}
function checkDigitalAdminServiceSkillMemoryAuditClosure() {
console.log("\n[DigitalEmployeeCheck] Verify admin service skill memory audit 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, "record_start_request", "backend start request action"],
[service, "record_install_request", "backend install request action"],
[service, "request_memory_merge_review", "backend memory merge review action"],
[service, "request_repair_approval", "backend repair approval action"],
[service, "install_action_disabled", "backend install disabled reason"],
[service, "remote_memory_policy_disabled", "backend remote memory policy disabled reason"],
[service, "billing_actual_disabled", "backend billing disabled reason"],
[dto, "start_request_id", "backend start request row field"],
[dto, "stop_request_id", "backend stop request row field"],
[dto, "lease_takeover_request_id", "backend lease takeover request row field"],
[dto, "auto_recovery_request_id", "backend auto recovery request row field"],
[dto, "start_service_disabled", "backend start service disabled row field"],
[dto, "stop_service_disabled", "backend stop service disabled row field"],
[dto, "permission_edit_request_id", "backend permission edit request row field"],
[dto, "memory_merge_request_id", "backend memory merge request row field"],
[dto, "remote_memory_policy_request_id", "backend remote memory policy request row field"],
[dto, "billing_actual_disabled", "backend billing actual disabled row field"],
[dto, "sandbox_archive_file_disabled", "backend sandbox archive file disabled row field"],
[dto, "auto_repair_execution_disabled", "backend auto repair disabled row field"],
[dto, "repair_approval_required", "backend repair approval required row field"],
[test, "queryAdminWorkbenchServiceOperationsReturnsStartStopAndRecoveryShellRows", "backend service shell test"],
[test, "queryAdminWorkbenchSkillAuditsReturnsInstallUpgradePermissionShellRows", "backend skill shell test"],
[test, "queryAdminWorkbenchMemoryGovernanceReturnsMergeAndRemotePolicyShellRows", "backend memory shell test"],
[test, "queryAdminWorkbenchAuditsReturnsBillingArchiveAndRepairShellRows", "backend audit shell test"],
[test, "createAdminActionAllowsLowRiskServiceSkillMemoryAuditIntents", "backend low risk service skill memory audit action test"],
[test, "createAdminActionRejectsHighRiskServiceSkillMemoryAuditExecution", "backend high risk service skill memory audit action test"],
[qimingTypes, "start_request_id", "qiming start request type field"],
[qimingTypes, "permission_edit_request_id", "qiming permission edit request type field"],
[qimingTypes, "memory_merge_request_id", "qiming memory merge request type field"],
[qimingTypes, "billing_actual_disabled", "qiming billing actual disabled type field"],
[qimingOps, "记录启动请求", "qiming start request action"],
[qimingOps, "记录安装请求", "qiming install request action"],
[qimingOps, "请求记忆合并复核", "qiming memory merge review action"],
[qimingOps, "请求修复审批", "qiming repair approval action"],
[qimingOps, "真实账单禁用", "qiming billing disabled copy"],
[qimingOps, "自动修复执行禁用", "qiming auto repair disabled copy"],
[qimingOps, "不升级技能", "qiming skill upgrade safety copy"],
[qimingOps, "不触发真实下发", "qiming memory policy safety copy"],
[docs, "服务技能记忆审计诊断总收口已开始吸收", "docs service skill memory audit closure absorption"],
];
const missing = requiredSnippets
.filter(([content, snippet]) => !content.includes(snippet))
.map(([, , label]) => label);
if (missing.length > 0) {
throw new Error(`Missing admin service skill memory audit closure hooks: ${missing.join(", ")}`);
}
console.log("[DigitalEmployeeCheck] admin service skill memory audit closure hooks OK");
}
function checkLocalDatabaseSchema() {
console.log("\n[DigitalEmployeeCheck] Verify local SQLite digital schema");
const dbPath = path.join(os.homedir(), ".qimingclaw", "qimingclaw.db");
@@ -3306,6 +3418,7 @@ function main() {
checkDigitalAdminDiagnosticRepairPreview();
checkDigitalAdminDailyReportWorkbench();
checkDigitalAdminGovernanceCommandWorkbench();
checkDigitalAdminServiceSkillMemoryAuditClosure();
checkLocalDatabaseSchema();
console.log("\n[DigitalEmployeeCheck] All checks passed");
} catch (error) {