mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 05:16:23 -06:00
fix(config): accept execApprovals.enabled="auto" in zod schema
This commit is contained in:
@@ -310,6 +310,15 @@ describe("discord config schema", () => {
|
||||
expect(cfg.execApprovals?.approvers).toEqual(["555"]);
|
||||
});
|
||||
|
||||
it.each([true, false, "auto"] as const)("accepts execApprovals.enabled=%s", (enabled) => {
|
||||
const cfg = expectValidDiscordConfig({ execApprovals: { enabled } });
|
||||
expect(cfg.execApprovals?.enabled).toBe(enabled);
|
||||
});
|
||||
|
||||
it("rejects execApprovals.enabled with other string values", () => {
|
||||
expectInvalidDiscordConfig({ execApprovals: { enabled: "on" } });
|
||||
});
|
||||
|
||||
it("rejects numeric IDs that are not valid non-negative safe integers", () => {
|
||||
const cases = [106232522769186816, -1, 123.45];
|
||||
for (const id of cases) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,7 @@
|
||||
import { z } from "zod";
|
||||
|
||||
export const NativeExecApprovalEnableModeSchema = z.union([z.boolean(), z.literal("auto")]);
|
||||
|
||||
const ExecApprovalForwardTargetSchema = z
|
||||
.object({
|
||||
channel: z.string().min(1),
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
} from "../shared/custom-command-config.js";
|
||||
import { normalizeOptionalString } from "../shared/string-coerce.js";
|
||||
import { ToolPolicySchema } from "./zod-schema.agent-runtime.js";
|
||||
import { NativeExecApprovalEnableModeSchema } from "./zod-schema.approvals.js";
|
||||
import {
|
||||
ChannelHealthMonitorSchema,
|
||||
ChannelHeartbeatVisibilitySchema,
|
||||
@@ -248,7 +249,7 @@ export const TelegramAccountSchemaBase = z
|
||||
capabilities: TelegramCapabilitiesSchema.optional(),
|
||||
execApprovals: z
|
||||
.object({
|
||||
enabled: z.boolean().optional(),
|
||||
enabled: NativeExecApprovalEnableModeSchema.optional(),
|
||||
approvers: TelegramIdListSchema.optional(),
|
||||
agentFilter: z.array(z.string()).optional(),
|
||||
sessionFilter: z.array(z.string()).optional(),
|
||||
@@ -681,7 +682,7 @@ export const DiscordAccountSchema = z
|
||||
healthMonitor: ChannelHealthMonitorSchema,
|
||||
execApprovals: z
|
||||
.object({
|
||||
enabled: z.boolean().optional(),
|
||||
enabled: NativeExecApprovalEnableModeSchema.optional(),
|
||||
approvers: DiscordIdListSchema.optional(),
|
||||
agentFilter: z.array(z.string()).optional(),
|
||||
sessionFilter: z.array(z.string()).optional(),
|
||||
@@ -1023,7 +1024,7 @@ export const SlackAccountSchema = z
|
||||
capabilities: SlackCapabilitiesSchema.optional(),
|
||||
execApprovals: z
|
||||
.object({
|
||||
enabled: z.boolean().optional(),
|
||||
enabled: NativeExecApprovalEnableModeSchema.optional(),
|
||||
approvers: z.array(z.union([z.string(), z.number()])).optional(),
|
||||
agentFilter: z.array(z.string()).optional(),
|
||||
sessionFilter: z.array(z.string()).optional(),
|
||||
|
||||
Reference in New Issue
Block a user