34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import {
|
|
AllowFromListSchema,
|
|
buildCatchallMultiAccountChannelSchema,
|
|
DmPolicySchema,
|
|
GroupPolicySchema,
|
|
} from "openclaw/plugin-sdk/channel-config-schema";
|
|
import { z } from "zod";
|
|
import { MarkdownConfigSchema, ToolPolicySchema } from "../runtime-api.js";
|
|
|
|
const groupConfigSchema = z.object({
|
|
allow: z.boolean().optional(),
|
|
enabled: z.boolean().optional(),
|
|
requireMention: z.boolean().optional(),
|
|
tools: ToolPolicySchema,
|
|
});
|
|
|
|
const zalouserAccountSchema = z.object({
|
|
name: z.string().optional(),
|
|
enabled: z.boolean().optional(),
|
|
markdown: MarkdownConfigSchema,
|
|
profile: z.string().optional(),
|
|
dangerouslyAllowNameMatching: z.boolean().optional(),
|
|
dmPolicy: DmPolicySchema.optional(),
|
|
allowFrom: AllowFromListSchema,
|
|
historyLimit: z.number().int().min(0).optional(),
|
|
groupAllowFrom: AllowFromListSchema,
|
|
groupPolicy: GroupPolicySchema.optional().default("allowlist"),
|
|
groups: z.object({}).catchall(groupConfigSchema).optional(),
|
|
messagePrefix: z.string().optional(),
|
|
responsePrefix: z.string().optional(),
|
|
});
|
|
|
|
export const ZalouserConfigSchema = buildCatchallMultiAccountChannelSchema(zalouserAccountSchema);
|