@@ -3,29 +3,33 @@ import type { CoreConfig } from "./types.js";
33import { resolveMatrixAccountConfig } from "./matrix/accounts.js" ;
44import { resolveMatrixRoomConfig } from "./matrix/monitor/rooms.js" ;
55
6- export function resolveMatrixGroupRequireMention ( params : ChannelGroupContext ) : boolean {
6+ function stripLeadingPrefixCaseInsensitive ( value : string , prefix : string ) : string {
7+ return value . toLowerCase ( ) . startsWith ( prefix . toLowerCase ( ) )
8+ ? value . slice ( prefix . length ) . trim ( )
9+ : value ;
10+ }
11+
12+ function resolveMatrixRoomConfigForGroup ( params : ChannelGroupContext ) {
713 const rawGroupId = params . groupId ?. trim ( ) ?? "" ;
814 let roomId = rawGroupId ;
9- const lower = roomId . toLowerCase ( ) ;
10- if ( lower . startsWith ( "matrix:" ) ) {
11- roomId = roomId . slice ( "matrix:" . length ) . trim ( ) ;
12- }
13- if ( roomId . toLowerCase ( ) . startsWith ( "channel:" ) ) {
14- roomId = roomId . slice ( "channel:" . length ) . trim ( ) ;
15- }
16- if ( roomId . toLowerCase ( ) . startsWith ( "room:" ) ) {
17- roomId = roomId . slice ( "room:" . length ) . trim ( ) ;
18- }
15+ roomId = stripLeadingPrefixCaseInsensitive ( roomId , "matrix:" ) ;
16+ roomId = stripLeadingPrefixCaseInsensitive ( roomId , "channel:" ) ;
17+ roomId = stripLeadingPrefixCaseInsensitive ( roomId , "room:" ) ;
18+
1919 const groupChannel = params . groupChannel ?. trim ( ) ?? "" ;
2020 const aliases = groupChannel ? [ groupChannel ] : [ ] ;
2121 const cfg = params . cfg as CoreConfig ;
2222 const matrixConfig = resolveMatrixAccountConfig ( { cfg, accountId : params . accountId } ) ;
23- const resolved = resolveMatrixRoomConfig ( {
23+ return resolveMatrixRoomConfig ( {
2424 rooms : matrixConfig . groups ?? matrixConfig . rooms ,
2525 roomId,
2626 aliases,
2727 name : groupChannel || undefined ,
2828 } ) . config ;
29+ }
30+
31+ export function resolveMatrixGroupRequireMention ( params : ChannelGroupContext ) : boolean {
32+ const resolved = resolveMatrixRoomConfigForGroup ( params ) ;
2933 if ( resolved ) {
3034 if ( resolved . autoReply === true ) {
3135 return false ;
@@ -43,27 +47,6 @@ export function resolveMatrixGroupRequireMention(params: ChannelGroupContext): b
4347export function resolveMatrixGroupToolPolicy (
4448 params : ChannelGroupContext ,
4549) : GroupToolPolicyConfig | undefined {
46- const rawGroupId = params . groupId ?. trim ( ) ?? "" ;
47- let roomId = rawGroupId ;
48- const lower = roomId . toLowerCase ( ) ;
49- if ( lower . startsWith ( "matrix:" ) ) {
50- roomId = roomId . slice ( "matrix:" . length ) . trim ( ) ;
51- }
52- if ( roomId . toLowerCase ( ) . startsWith ( "channel:" ) ) {
53- roomId = roomId . slice ( "channel:" . length ) . trim ( ) ;
54- }
55- if ( roomId . toLowerCase ( ) . startsWith ( "room:" ) ) {
56- roomId = roomId . slice ( "room:" . length ) . trim ( ) ;
57- }
58- const groupChannel = params . groupChannel ?. trim ( ) ?? "" ;
59- const aliases = groupChannel ? [ groupChannel ] : [ ] ;
60- const cfg = params . cfg as CoreConfig ;
61- const matrixConfig = resolveMatrixAccountConfig ( { cfg, accountId : params . accountId } ) ;
62- const resolved = resolveMatrixRoomConfig ( {
63- rooms : matrixConfig . groups ?? matrixConfig . rooms ,
64- roomId,
65- aliases,
66- name : groupChannel || undefined ,
67- } ) . config ;
50+ const resolved = resolveMatrixRoomConfigForGroup ( params ) ;
6851 return resolved ?. tools ;
6952}
0 commit comments