(content: string)
| 126 | ] |
| 127 | |
| 128 | export function isValidMessage(content: string): boolean { |
| 129 | const trimmed = content.trim() |
| 130 | if (!trimmed) return false |
| 131 | |
| 132 | if (trimmed.length <= 2 && !MEANINGFUL_SHORT_ZH.includes(trimmed)) return false |
| 133 | |
| 134 | const lower = trimmed.toLowerCase() |
| 135 | if (MEANINGLESS_SHORT_EN.includes(lower)) return false |
| 136 | |
| 137 | if (/^[\p{Emoji}\s[\]()()]+$/u.test(trimmed)) return false |
| 138 | if (PLACEHOLDERS.some((p) => lower === p.toLowerCase())) return false |
| 139 | if (SYSTEM_PATTERNS_ZH.some((p) => p.test(trimmed))) return false |
| 140 | if (SYSTEM_PATTERNS_EN.some((p) => p.test(trimmed))) return false |
| 141 | |
| 142 | return true |
| 143 | } |
| 144 | |
| 145 | export function filterValidMessages(messages: SummaryMessage[]): Array<{ senderName: string; content: string }> { |
| 146 | return messages |
no outgoing calls
no test coverage detected