Spaces:
Running
Running
| import { MarkdownConfigSchema, ToolPolicySchema } from "openclaw/plugin-sdk"; | |
| import { z } from "zod"; | |
| const allowFromEntry = z.union([z.string(), z.number()]); | |
| const matrixActionSchema = z | |
| .object({ | |
| reactions: z.boolean().optional(), | |
| messages: z.boolean().optional(), | |
| pins: z.boolean().optional(), | |
| memberInfo: z.boolean().optional(), | |
| channelInfo: z.boolean().optional(), | |
| }) | |
| .optional(); | |
| const matrixDmSchema = z | |
| .object({ | |
| enabled: z.boolean().optional(), | |
| policy: z.enum(["pairing", "allowlist", "open", "disabled"]).optional(), | |
| allowFrom: z.array(allowFromEntry).optional(), | |
| }) | |
| .optional(); | |
| const matrixRoomSchema = z | |
| .object({ | |
| enabled: z.boolean().optional(), | |
| allow: z.boolean().optional(), | |
| requireMention: z.boolean().optional(), | |
| tools: ToolPolicySchema, | |
| autoReply: z.boolean().optional(), | |
| users: z.array(allowFromEntry).optional(), | |
| skills: z.array(z.string()).optional(), | |
| systemPrompt: z.string().optional(), | |
| }) | |
| .optional(); | |
| export const MatrixConfigSchema = z.object({ | |
| name: z.string().optional(), | |
| enabled: z.boolean().optional(), | |
| markdown: MarkdownConfigSchema, | |
| homeserver: z.string().optional(), | |
| userId: z.string().optional(), | |
| accessToken: z.string().optional(), | |
| password: z.string().optional(), | |
| deviceName: z.string().optional(), | |
| initialSyncLimit: z.number().optional(), | |
| encryption: z.boolean().optional(), | |
| allowlistOnly: z.boolean().optional(), | |
| groupPolicy: z.enum(["open", "disabled", "allowlist"]).optional(), | |
| replyToMode: z.enum(["off", "first", "all"]).optional(), | |
| threadReplies: z.enum(["off", "inbound", "always"]).optional(), | |
| textChunkLimit: z.number().optional(), | |
| chunkMode: z.enum(["length", "newline"]).optional(), | |
| mediaMaxMb: z.number().optional(), | |
| autoJoin: z.enum(["always", "allowlist", "off"]).optional(), | |
| autoJoinAllowlist: z.array(allowFromEntry).optional(), | |
| groupAllowFrom: z.array(allowFromEntry).optional(), | |
| dm: matrixDmSchema, | |
| groups: z.object({}).catchall(matrixRoomSchema).optional(), | |
| rooms: z.object({}).catchall(matrixRoomSchema).optional(), | |
| actions: matrixActionSchema, | |
| }); | |