{"version":3,"sources":["../../src/processor-provider/types.ts","../../src/processor-provider/phase-filtered-processor.ts","../../src/processor-provider/providers/index.ts"],"names":["z","UnicodeNormalizer","TokenLimiterProcessor","ToolCallFilter","BatchPartsProcessor","ModerationProcessor","PromptInjectionDetector","PIIDetector","LanguageDetector","SystemPromptScrubber"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { ZodSchema } from 'zod/v4';\nimport type { Processor } from '../processors';\n\n/**\n * The five processor phases corresponding to the five optional methods on Processor.\n */\nexport type ProcessorPhase =\n  | 'processInput'\n  | 'processInputStep'\n  | 'processOutputStream'\n  | 'processOutputResult'\n  | 'processOutputStep';\n\n/**\n * All processor phases.\n */\nexport const ALL_PROCESSOR_PHASES: ProcessorPhase[] = [\n  'processInput',\n  'processInputStep',\n  'processOutputStream',\n  'processOutputResult',\n  'processOutputStep',\n];\n\n/**\n * Metadata about a processor provider.\n */\nexport interface ProcessorProviderInfo {\n  /** Unique identifier for this provider (e.g., 'moderation', 'token-limiter') */\n  id: string;\n  /** Human-readable name */\n  name: string;\n  /** Short description of the provider */\n  description?: string;\n}\n\n/**\n * Info about a processor available from a provider (used for UI listing).\n */\nexport interface ProcessorProviderProcessorInfo {\n  /** Unique slug for this processor within the provider */\n  slug: string;\n  /** Human-readable name */\n  name: string;\n  /** Description of what this processor does */\n  description?: string;\n  /** Which phases this processor supports */\n  availablePhases: ProcessorPhase[];\n}\n\n/**\n * Interface for processor providers that supply configurable processors to agents.\n *\n * Processor providers serve two purposes:\n * 1. **Discovery** — UI uses `info`, `configSchema`, `availablePhases` to render configuration forms\n * 2. **Runtime** — Agent hydration uses `createProcessor()` to instantiate processors from stored config\n */\nexport interface ProcessorProvider {\n  /** Provider metadata */\n  readonly info: ProcessorProviderInfo;\n\n  /**\n   * Zod schema describing the configuration this provider accepts.\n   * Used by the UI to render a configuration form.\n   * The validated config object is passed to `createProcessor()`.\n   */\n  readonly configSchema: ZodSchema;\n\n  /**\n   * Which processor phases this provider's processors support.\n   * Used by the UI to show which phases can be enabled.\n   */\n  readonly availablePhases: ProcessorPhase[];\n\n  /**\n   * Create a processor instance from the given configuration.\n   * Called during agent hydration to resolve stored processor configs into live instances.\n   *\n   * @param config - Configuration object matching `configSchema`\n   * @returns A Processor instance\n   */\n  createProcessor(config: Record<string, unknown>): Processor;\n}\n","import type { Mastra } from '../mastra';\nimport type { Processor } from '../processors';\nimport type { ProcessorPhase } from './types';\n\n/**\n * Wraps an existing Processor and only exposes the selected phases.\n * Unselected phase methods are left undefined, so the runner/step-creator skips them.\n */\nexport class PhaseFilteredProcessor<TId extends string = string, TTripwireMetadata = unknown> implements Processor<\n  TId,\n  TTripwireMetadata\n> {\n  readonly id: TId;\n  readonly name?: string;\n  readonly description?: string;\n  processorIndex?: number;\n\n  readonly #inner: Processor<TId, TTripwireMetadata>;\n  readonly #enabledPhases: Set<ProcessorPhase>;\n\n  constructor(inner: Processor<TId, TTripwireMetadata>, enabledPhases: ProcessorPhase[]) {\n    this.#inner = inner;\n    this.#enabledPhases = new Set(enabledPhases);\n    this.id = inner.id;\n    this.name = inner.name;\n    this.description = inner.description;\n\n    // Bind enabled phase methods to the inner processor\n    if (this.#enabledPhases.has('processInput') && inner.processInput) {\n      this.processInput = inner.processInput.bind(inner) as Processor<TId, TTripwireMetadata>['processInput'];\n    }\n    if (this.#enabledPhases.has('processInputStep') && inner.processInputStep) {\n      this.processInputStep = inner.processInputStep.bind(inner) as Processor<\n        TId,\n        TTripwireMetadata\n      >['processInputStep'];\n    }\n    if (this.#enabledPhases.has('processOutputStream') && inner.processOutputStream) {\n      this.processOutputStream = inner.processOutputStream.bind(inner) as Processor<\n        TId,\n        TTripwireMetadata\n      >['processOutputStream'];\n    }\n    if (this.#enabledPhases.has('processOutputResult') && inner.processOutputResult) {\n      this.processOutputResult = inner.processOutputResult.bind(inner) as Processor<\n        TId,\n        TTripwireMetadata\n      >['processOutputResult'];\n    }\n    if (this.#enabledPhases.has('processOutputStep') && inner.processOutputStep) {\n      this.processOutputStep = inner.processOutputStep.bind(inner) as Processor<\n        TId,\n        TTripwireMetadata\n      >['processOutputStep'];\n    }\n  }\n\n  processInput?: Processor<TId, TTripwireMetadata>['processInput'];\n  processInputStep?: Processor<TId, TTripwireMetadata>['processInputStep'];\n  processOutputStream?: Processor<TId, TTripwireMetadata>['processOutputStream'];\n  processOutputResult?: Processor<TId, TTripwireMetadata>['processOutputResult'];\n  processOutputStep?: Processor<TId, TTripwireMetadata>['processOutputStep'];\n\n  __registerMastra(mastra: Mastra<any, any, any, any, any, any, any, any, any, any>): void {\n    this.#inner.__registerMastra?.(mastra);\n  }\n}\n","import { z } from 'zod/v4';\n\nimport { BatchPartsProcessor } from '../../processors/processors/batch-parts';\nimport { LanguageDetector } from '../../processors/processors/language-detector';\nimport type { LanguageDetectorOptions } from '../../processors/processors/language-detector';\nimport { ModerationProcessor } from '../../processors/processors/moderation';\nimport type { ModerationOptions } from '../../processors/processors/moderation';\nimport type { PIIDetectorOptions } from '../../processors/processors/pii-detector';\nimport { PIIDetector } from '../../processors/processors/pii-detector';\nimport { PromptInjectionDetector } from '../../processors/processors/prompt-injection-detector';\nimport type { PromptInjectionOptions } from '../../processors/processors/prompt-injection-detector';\nimport { SystemPromptScrubber } from '../../processors/processors/system-prompt-scrubber';\nimport type { SystemPromptScrubberOptions } from '../../processors/processors/system-prompt-scrubber';\nimport { TokenLimiterProcessor } from '../../processors/processors/token-limiter';\nimport { ToolCallFilter } from '../../processors/processors/tool-call-filter';\nimport { UnicodeNormalizer } from '../../processors/processors/unicode-normalizer';\nimport type { ProcessorProvider, ProcessorPhase } from '../types';\n\n// Reusable schema fragments\nconst structuredOutputOptionsSchema = z.object({ jsonPromptInjection: z.boolean().optional() }).optional();\nconst providerOptionsSchema = z.record(z.string(), z.any()).optional();\n\n// ---------------------------------------------------------------------------\n// 1. unicode-normalizer\n// ---------------------------------------------------------------------------\nexport const unicodeNormalizerProvider: ProcessorProvider = {\n  info: {\n    id: 'unicode-normalizer',\n    name: 'Unicode Normalizer',\n    description: 'Normalizes Unicode text by stripping control characters, collapsing whitespace, and trimming.',\n  },\n  configSchema: z.object({\n    stripControlChars: z.boolean().optional(),\n    preserveEmojis: z.boolean().optional(),\n    collapseWhitespace: z.boolean().optional(),\n    trim: z.boolean().optional(),\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new UnicodeNormalizer(config);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 2. token-limiter\n// ---------------------------------------------------------------------------\nexport const tokenLimiterProvider: ProcessorProvider = {\n  info: {\n    id: 'token-limiter',\n    name: 'Token Limiter',\n    description: 'Limits the number of tokens in messages, supporting both input filtering and output truncation.',\n  },\n  configSchema: z.object({\n    limit: z.number(),\n    strategy: z.enum(['truncate', 'abort']).optional(),\n    countMode: z.enum(['cumulative', 'part']).optional(),\n  }),\n  availablePhases: ['processInput', 'processOutputStream', 'processOutputResult'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new TokenLimiterProcessor(\n      config as { limit: number; strategy?: 'truncate' | 'abort'; countMode?: 'cumulative' | 'part' },\n    );\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 3. tool-call-filter\n// ---------------------------------------------------------------------------\nexport const toolCallFilterProvider: ProcessorProvider = {\n  info: {\n    id: 'tool-call-filter',\n    name: 'Tool Call Filter',\n    description: 'Filters out tool calls and results from messages, optionally targeting specific tools.',\n  },\n  configSchema: z.object({\n    exclude: z.array(z.string()).optional(),\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new ToolCallFilter(config as { exclude?: string[] });\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 4. batch-parts\n// ---------------------------------------------------------------------------\nexport const batchPartsProvider: ProcessorProvider = {\n  info: {\n    id: 'batch-parts',\n    name: 'Batch Parts',\n    description: 'Batches multiple stream parts together to reduce stream overhead.',\n  },\n  configSchema: z.object({\n    batchSize: z.number().optional(),\n    maxWaitTime: z.number().optional(),\n    emitOnNonText: z.boolean().optional(),\n  }),\n  availablePhases: ['processOutputStream'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new BatchPartsProcessor(config as { batchSize?: number; maxWaitTime?: number; emitOnNonText?: boolean });\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 5. moderation\n// ---------------------------------------------------------------------------\nexport const moderationProvider: ProcessorProvider = {\n  info: {\n    id: 'moderation',\n    name: 'Moderation',\n    description: 'Evaluates content against configurable moderation categories for content safety.',\n  },\n  configSchema: z.object({\n    model: z.string(),\n    categories: z.array(z.string()).optional(),\n    threshold: z.number().optional(),\n    strategy: z.enum(['block', 'warn', 'filter']).optional(),\n    instructions: z.string().optional(),\n    includeScores: z.boolean().optional(),\n    chunkWindow: z.number().optional(),\n    structuredOutputOptions: structuredOutputOptionsSchema,\n    providerOptions: providerOptionsSchema,\n  }),\n  availablePhases: ['processInput', 'processOutputResult', 'processOutputStream'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new ModerationProcessor(config as unknown as ModerationOptions);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 6. prompt-injection-detector\n// ---------------------------------------------------------------------------\nexport const promptInjectionDetectorProvider: ProcessorProvider = {\n  info: {\n    id: 'prompt-injection-detector',\n    name: 'Prompt Injection Detector',\n    description: 'Identifies and handles prompt injection attacks, jailbreaks, and data exfiltration attempts.',\n  },\n  configSchema: z.object({\n    model: z.string(),\n    detectionTypes: z.array(z.string()).optional(),\n    threshold: z.number().optional(),\n    strategy: z.enum(['block', 'warn', 'filter', 'rewrite']).optional(),\n    instructions: z.string().optional(),\n    includeScores: z.boolean().optional(),\n    structuredOutputOptions: structuredOutputOptionsSchema,\n    providerOptions: providerOptionsSchema,\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new PromptInjectionDetector(config as unknown as PromptInjectionOptions);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 7. pii-detector\n// ---------------------------------------------------------------------------\nexport const piiDetectorProvider: ProcessorProvider = {\n  info: {\n    id: 'pii-detector',\n    name: 'PII Detector',\n    description: 'Identifies and redacts personally identifiable information for privacy compliance.',\n  },\n  configSchema: z.object({\n    model: z.string(),\n    detectionTypes: z.array(z.string()).optional(),\n    threshold: z.number().optional(),\n    strategy: z.enum(['block', 'warn', 'filter', 'redact']).optional(),\n    redactionMethod: z.enum(['mask', 'hash', 'remove', 'placeholder']).optional(),\n    instructions: z.string().optional(),\n    includeDetections: z.boolean().optional(),\n    preserveFormat: z.boolean().optional(),\n    structuredOutputOptions: structuredOutputOptionsSchema,\n    providerOptions: providerOptionsSchema,\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new PIIDetector(config as unknown as PIIDetectorOptions);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 8. language-detector\n// ---------------------------------------------------------------------------\nexport const languageDetectorProvider: ProcessorProvider = {\n  info: {\n    id: 'language-detector',\n    name: 'Language Detector',\n    description: 'Detects the language of input text and optionally translates it to a target language.',\n  },\n  configSchema: z.object({\n    model: z.string(),\n    targetLanguages: z.array(z.string()),\n    threshold: z.number().optional(),\n    strategy: z.enum(['detect', 'translate', 'block', 'warn']).optional(),\n    preserveOriginal: z.boolean().optional(),\n    instructions: z.string().optional(),\n    minTextLength: z.number().optional(),\n    includeDetectionDetails: z.boolean().optional(),\n    translationQuality: z.enum(['speed', 'quality', 'balanced']).optional(),\n    providerOptions: providerOptionsSchema,\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new LanguageDetector(config as unknown as LanguageDetectorOptions);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// 9. system-prompt-scrubber\n// ---------------------------------------------------------------------------\nexport const systemPromptScrubberProvider: ProcessorProvider = {\n  info: {\n    id: 'system-prompt-scrubber',\n    name: 'System Prompt Scrubber',\n    description: 'Detects and removes system prompt leakage from model outputs.',\n  },\n  configSchema: z.object({\n    model: z.string(),\n    strategy: z.enum(['block', 'warn', 'filter', 'redact']).optional(),\n    customPatterns: z.array(z.string()).optional(),\n    includeDetections: z.boolean().optional(),\n    instructions: z.string().optional(),\n    redactionMethod: z.enum(['mask', 'placeholder', 'remove']).optional(),\n    placeholderText: z.string().optional(),\n    structuredOutputOptions: structuredOutputOptionsSchema,\n  }),\n  availablePhases: ['processOutputStream', 'processOutputResult'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new SystemPromptScrubber(config as unknown as SystemPromptScrubberOptions);\n  },\n};\n\n// ---------------------------------------------------------------------------\n// Aggregated record of all built-in providers\n// ---------------------------------------------------------------------------\nexport const BUILT_IN_PROCESSOR_PROVIDERS: Record<string, ProcessorProvider> = {\n  'unicode-normalizer': unicodeNormalizerProvider,\n  'token-limiter': tokenLimiterProvider,\n  'tool-call-filter': toolCallFilterProvider,\n  'batch-parts': batchPartsProvider,\n  moderation: moderationProvider,\n  'prompt-injection-detector': promptInjectionDetectorProvider,\n  'pii-detector': piiDetectorProvider,\n  'language-detector': languageDetectorProvider,\n  'system-prompt-scrubber': systemPromptScrubberProvider,\n};\n"]}