{"version":3,"file":"index.cjs","names":["#inner","#enabledPhases","z","UnicodeNormalizer","TokenLimiterProcessor","ToolCallFilter","BatchPartsProcessor","ModerationProcessor","PromptInjectionDetector","PIIDetector","LanguageDetector","SystemPromptScrubber"],"sources":["../../src/processor-provider/types.ts","../../src/processor-provider/phase-filtered-processor.ts","../../src/processor-provider/providers/index.ts"],"sourcesContent":["import type { ZodSchema } from 'zod/v4';\nimport type { Processor } from '../processors';\n\n/**\n * The six processor phases corresponding to the six optional message-mutating\n * methods on Processor. (processAPIError is intentionally excluded — it is an\n * error-handler phase with a different return shape and isn't surfaced through\n * processor providers.)\n */\nexport type ProcessorPhase =\n  | 'processInput'\n  | 'processInputStep'\n  | 'processOutputStream'\n  | 'processOutputResult'\n  | 'processOutputStep'\n  | 'processToolResult';\n\n/**\n * All processor phases.\n */\nexport const ALL_PROCESSOR_PHASES: ProcessorPhase[] = [\n  'processInput',\n  'processInputStep',\n  'processOutputStream',\n  'processOutputResult',\n  'processOutputStep',\n  'processToolResult',\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    if (this.#enabledPhases.has('processToolResult') && inner.processToolResult) {\n      this.processToolResult = inner.processToolResult.bind(inner) as Processor<\n        TId,\n        TTripwireMetadata\n      >['processToolResult'];\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  processToolResult?: Processor<TId, TTripwireMetadata>['processToolResult'];\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 type { ToolCallFilterOptions } 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\n  .object({ jsonPromptInjection: z.union([z.boolean(), z.enum(['system', 'inline', 'auto'])]).optional() })\n  .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    filterAfterToolSteps: z.number().optional(),\n    preserveModelOutput: z.boolean().optional(),\n  }),\n  availablePhases: ['processInput'] as ProcessorPhase[],\n  createProcessor(config) {\n    return new ToolCallFilter(config as ToolCallFilterOptions);\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"],"mappings":"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"}