mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
refactor(gateway): own warning parser in protocol package
This commit is contained in:
@@ -78,7 +78,8 @@
|
||||
"prepack": "pnpm run build && node --import tsx ../../scripts/protocol-gen.ts --out ./protocol.schema.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"typebox": "1.3.6"
|
||||
"typebox": "1.3.6",
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.19.0"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { z } from "zod";
|
||||
|
||||
/** Structured install-policy warning details carried in Gateway error payloads. */
|
||||
export const INSTALL_POLICY_WARNING_ACKNOWLEDGEMENT_REQUIRED =
|
||||
"install_policy_warning_acknowledgement_required" as const;
|
||||
@@ -19,3 +21,28 @@ export type InstallPolicyWarningErrorDetails = {
|
||||
reason: string;
|
||||
findings?: InstallPolicyWarningErrorFinding[];
|
||||
};
|
||||
|
||||
const installPolicyWarningFindingSchema = z.object({
|
||||
ruleId: z.string().trim().min(1),
|
||||
severity: z.enum(["info", "warn", "critical"]),
|
||||
message: z.string().trim().min(1),
|
||||
file: z.string().trim().min(1).optional(),
|
||||
line: z.number().int().positive().optional(),
|
||||
evidence: z.string().trim().min(1).optional(),
|
||||
});
|
||||
|
||||
const installPolicyWarningErrorDetailsSchema = z.object({
|
||||
installPolicyCode: z.literal(INSTALL_POLICY_WARNING_ACKNOWLEDGEMENT_REQUIRED),
|
||||
targetName: z.string().trim().min(1),
|
||||
targetType: z.enum(["skill", "plugin"]),
|
||||
requestMode: z.enum(["install", "update"]),
|
||||
reason: z.string().trim().min(1),
|
||||
findings: z.array(installPolicyWarningFindingSchema).optional(),
|
||||
});
|
||||
|
||||
export function readInstallPolicyWarningErrorDetails(
|
||||
value: unknown,
|
||||
): InstallPolicyWarningErrorDetails | undefined {
|
||||
const parsed = installPolicyWarningErrorDetailsSchema.safeParse(value);
|
||||
return parsed.success ? parsed.data : undefined;
|
||||
}
|
||||
|
||||
Generated
+3
@@ -2231,6 +2231,9 @@ importers:
|
||||
typebox:
|
||||
specifier: 1.3.6
|
||||
version: 1.3.6
|
||||
zod:
|
||||
specifier: 4.4.3
|
||||
version: 4.4.3
|
||||
|
||||
packages/llm-core:
|
||||
dependencies:
|
||||
|
||||
@@ -1,30 +1 @@
|
||||
import { z } from "zod";
|
||||
import {
|
||||
INSTALL_POLICY_WARNING_ACKNOWLEDGEMENT_REQUIRED,
|
||||
type InstallPolicyWarningErrorDetails,
|
||||
} from "../../packages/gateway-protocol/src/install-policy-warning-error-details.js";
|
||||
|
||||
const installPolicyWarningFindingSchema = z.object({
|
||||
ruleId: z.string().trim().min(1),
|
||||
severity: z.enum(["info", "warn", "critical"]),
|
||||
message: z.string().trim().min(1),
|
||||
file: z.string().trim().min(1).optional(),
|
||||
line: z.number().int().positive().optional(),
|
||||
evidence: z.string().trim().min(1).optional(),
|
||||
});
|
||||
|
||||
const installPolicyWarningErrorDetailsSchema = z.object({
|
||||
installPolicyCode: z.literal(INSTALL_POLICY_WARNING_ACKNOWLEDGEMENT_REQUIRED),
|
||||
targetName: z.string().trim().min(1),
|
||||
targetType: z.enum(["skill", "plugin"]),
|
||||
requestMode: z.enum(["install", "update"]),
|
||||
reason: z.string().trim().min(1),
|
||||
findings: z.array(installPolicyWarningFindingSchema).optional(),
|
||||
});
|
||||
|
||||
export function readInstallPolicyWarningErrorDetails(
|
||||
value: unknown,
|
||||
): InstallPolicyWarningErrorDetails | undefined {
|
||||
const parsed = installPolicyWarningErrorDetailsSchema.safeParse(value);
|
||||
return parsed.success ? parsed.data : undefined;
|
||||
}
|
||||
export { readInstallPolicyWarningErrorDetails } from "../../packages/gateway-protocol/src/install-policy-warning-error-details.js";
|
||||
|
||||
Reference in New Issue
Block a user