1+ import {
2+ AllowFromListSchema ,
3+ buildNestedDmConfigSchema ,
4+ DmPolicySchema ,
5+ GroupPolicySchema ,
6+ } from "openclaw/plugin-sdk/compat" ;
17import { MarkdownConfigSchema , ToolPolicySchema } from "openclaw/plugin-sdk/matrix" ;
28import { z } from "zod" ;
39import { buildSecretInputSchema } from "./secret-input.js" ;
410
5- const allowFromEntry = z . union ( [ z . string ( ) , z . number ( ) ] ) ;
6-
711const matrixActionSchema = z
812 . object ( {
913 reactions : z . boolean ( ) . optional ( ) ,
@@ -14,22 +18,14 @@ const matrixActionSchema = z
1418 } )
1519 . optional ( ) ;
1620
17- const matrixDmSchema = z
18- . object ( {
19- enabled : z . boolean ( ) . optional ( ) ,
20- policy : z . enum ( [ "pairing" , "allowlist" , "open" , "disabled" ] ) . optional ( ) ,
21- allowFrom : z . array ( allowFromEntry ) . optional ( ) ,
22- } )
23- . optional ( ) ;
24-
2521const matrixRoomSchema = z
2622 . object ( {
2723 enabled : z . boolean ( ) . optional ( ) ,
2824 allow : z . boolean ( ) . optional ( ) ,
2925 requireMention : z . boolean ( ) . optional ( ) ,
3026 tools : ToolPolicySchema ,
3127 autoReply : z . boolean ( ) . optional ( ) ,
32- users : z . array ( allowFromEntry ) . optional ( ) ,
28+ users : AllowFromListSchema ,
3329 skills : z . array ( z . string ( ) ) . optional ( ) ,
3430 systemPrompt : z . string ( ) . optional ( ) ,
3531 } )
@@ -49,17 +45,17 @@ export const MatrixConfigSchema = z.object({
4945 initialSyncLimit : z . number ( ) . optional ( ) ,
5046 encryption : z . boolean ( ) . optional ( ) ,
5147 allowlistOnly : z . boolean ( ) . optional ( ) ,
52- groupPolicy : z . enum ( [ "open" , "disabled" , "allowlist" ] ) . optional ( ) ,
48+ groupPolicy : GroupPolicySchema . optional ( ) ,
5349 replyToMode : z . enum ( [ "off" , "first" , "all" ] ) . optional ( ) ,
5450 threadReplies : z . enum ( [ "off" , "inbound" , "always" ] ) . optional ( ) ,
5551 textChunkLimit : z . number ( ) . optional ( ) ,
5652 chunkMode : z . enum ( [ "length" , "newline" ] ) . optional ( ) ,
5753 responsePrefix : z . string ( ) . optional ( ) ,
5854 mediaMaxMb : z . number ( ) . optional ( ) ,
5955 autoJoin : z . enum ( [ "always" , "allowlist" , "off" ] ) . optional ( ) ,
60- autoJoinAllowlist : z . array ( allowFromEntry ) . optional ( ) ,
61- groupAllowFrom : z . array ( allowFromEntry ) . optional ( ) ,
62- dm : matrixDmSchema ,
56+ autoJoinAllowlist : AllowFromListSchema ,
57+ groupAllowFrom : AllowFromListSchema ,
58+ dm : buildNestedDmConfigSchema ( ) ,
6359 groups : z . object ( { } ) . catchall ( matrixRoomSchema ) . optional ( ) ,
6460 rooms : z . object ( { } ) . catchall ( matrixRoomSchema ) . optional ( ) ,
6561 actions : matrixActionSchema ,
0 commit comments