{"version":3,"sources":["/Users/shyun/comcom/ain-enterprise/ain-adk/dist/cjs/chunk-KGNMX2EY.cjs","../../src/services/pii.service.ts"],"names":["PIIFilterMode"],"mappings":"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","file":"/Users/shyun/comcom/ain-enterprise/ain-adk/dist/cjs/chunk-KGNMX2EY.cjs","sourcesContent":[null,"import type { MemoryModule, ModelModule } from \"@/modules/index.js\";\nimport { loggers } from \"@/utils/logger.js\";\nimport piiDetectPrompt from \"./prompts/pii-detect.js\";\nimport piiFilterPrompt from \"./prompts/pii-filter.js\";\n\nexport enum PIIFilterMode {\n\tREJECT = \"reject\",\n\tMASK = \"mask\",\n\tDISABLED = \"disabled\",\n}\n\nexport class PIIService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(modelModule: ModelModule, memoryModule: MemoryModule) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\tgetMode(): PIIFilterMode {\n\t\tconst value = process.env.PII_FILTER_MODE?.toLowerCase();\n\t\tif (value === PIIFilterMode.REJECT) return PIIFilterMode.REJECT;\n\t\tif (value === PIIFilterMode.MASK) return PIIFilterMode.MASK;\n\t\treturn PIIFilterMode.DISABLED;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.getMode() !== PIIFilterMode.DISABLED;\n\t}\n\n\tasync containsPII(text: string): Promise<boolean> {\n\t\tif (!text.trim()) return false;\n\n\t\ttry {\n\t\t\tconst modelInstance = this.modelModule.getModel(\"pii-model\");\n\t\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\t\tconst messages = modelInstance.generateMessages({\n\t\t\t\tquery: text,\n\t\t\t\tsystemPrompt: await piiDetectPrompt(this.memoryModule),\n\t\t\t});\n\t\t\tconst response = await modelInstance.fetch(messages, modelOptions);\n\t\t\treturn response.content?.trim().toLowerCase() === \"true\";\n\t\t} catch (error) {\n\t\t\tloggers.intent.error(\"PII detection failed\", { error });\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync filterText(text: string): Promise<string> {\n\t\tif (!text.trim()) return text;\n\n\t\ttry {\n\t\t\tconst modelInstance = this.modelModule.getModel();\n\t\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\t\tconst messages = modelInstance.generateMessages({\n\t\t\t\tquery: text,\n\t\t\t\tsystemPrompt: await piiFilterPrompt(this.memoryModule),\n\t\t\t});\n\t\t\tconst response = await modelInstance.fetch(messages, modelOptions);\n\t\t\treturn response.content || text;\n\t\t} catch (error) {\n\t\t\tloggers.intent.error(\"PII filtering failed, returning original text\", {\n\t\t\t\terror,\n\t\t\t});\n\t\t\treturn text;\n\t\t}\n\t}\n}\n"]}