MCPcopy Create free account
hub / github.com/ChatLab/ChatLab / applyDesensitize

Function applyDesensitize

packages/node-runtime/src/ai/preprocessor/pipeline.ts:216–234  ·  view source on GitHub ↗
(
  messages: T[],
  rules: DesensitizeRule[],
  logger: PreprocessLogger
)

Source from the content-addressed store, hash-verified

214}
215
216function applyDesensitize<T extends PreprocessableMessage>(
217 messages: T[],
218 rules: DesensitizeRule[],
219 logger: PreprocessLogger
220): T[] {
221 const compiledRules = compileRules(rules, logger)
222 if (compiledRules.length === 0) return messages
223
224 return messages.map((msg) => {
225 if (!msg.content) return msg
226 let content = msg.content
227 for (const { regex, replacement } of compiledRules) {
228 regex.lastIndex = 0
229 content = content.replace(regex, replacement)
230 }
231 if (content === msg.content) return msg
232 return { ...msg, content }
233 })
234}
235
236const regexCache = new Map<string, RegExp | null>()
237

Callers 1

preprocessMessagesFunction · 0.85

Calls 1

compileRulesFunction · 0.85

Tested by

no test coverage detected