{"version":3,"file":"moderation.d.ts","names":["BaseChatModel","AgentMiddleware","ViolationStage","ModerationResult","Record","ModerationModel","OpenAIModerationError","content","stage","result","message","Error","OpenAIModerationMiddlewareOptions","openAIModerationMiddleware"],"sources":["../../../../../src/agents/middleware/provider/openai/moderation.d.ts"],"sourcesContent":["import type { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { AgentMiddleware } from \"../../types.js\";\n/**\n * Stage where a violation occurred.\n */\nexport type ViolationStage = \"input\" | \"output\" | \"tool\";\n/**\n * Result of moderation.\n * @see https://platform.openai.com/docs/api-reference/moderations/object\n */\ninterface ModerationResult {\n    flagged: boolean;\n    categories: Record<string, boolean>;\n    category_scores: Record<string, number>;\n    category_applied_input_types: Record<string, string[]>;\n}\ntype ModerationModel = \"omni-moderation-latest\" | \"omni-moderation-2024-09-26\" | \"text-moderation-latest\" | \"text-moderation-stable\";\n/**\n * Error raised when OpenAI flags content and `exitBehavior` is set to `\"error\"`.\n */\nexport declare class OpenAIModerationError extends Error {\n    content: string;\n    stage: ViolationStage;\n    result: ModerationResult;\n    originalMessage: string;\n    constructor({ content, stage, result, message }: {\n        content: string;\n        stage: ViolationStage;\n        result: ModerationResult;\n        message: string;\n    });\n}\n/**\n * Options for configuring the OpenAI Moderation middleware.\n */\nexport interface OpenAIModerationMiddlewareOptions {\n    /**\n     * OpenAI model to use for moderation. Can be either a model name or a BaseChatModel instance.\n     * @example\n     * ```ts\n     * const model = new ChatOpenAI({ model: \"gpt-4o-mini\" });\n     * const middleware = openAIModerationMiddleware({ model });\n     * const agent = createAgent({\n     *   model,\n     *   middleware: [middleware],\n     * });\n     * ```\n     * @example\n     * ```ts\n     * const middleware = openAIModerationMiddleware({ model: \"gpt-4o-mini\" });\n     * const agent = createAgent({\n     *   model: \"gpt-5\",\n     *   middleware: [middleware],\n     * });\n     * ```\n     */\n    model: string | BaseChatModel;\n    /**\n     * Moderation model to use.\n     * @default \"omni-moderation-latest\"\n     */\n    moderationModel?: ModerationModel;\n    /**\n     * Whether to check user input messages.\n     * @default true\n     */\n    checkInput?: boolean;\n    /**\n     * Whether to check model output messages.\n     * @default true\n     */\n    checkOutput?: boolean;\n    /**\n     * Whether to check tool result messages.\n     * @default false\n     */\n    checkToolResults?: boolean;\n    /**\n     * How to handle violations.\n     * - `\"error\"`: Throw an error when content is flagged\n     * - `\"end\"`: End the agent execution and return a violation message\n     * - `\"replace\"`: Replace the flagged content with a violation message\n     * @default \"end\"\n     */\n    exitBehavior?: \"error\" | \"end\" | \"replace\";\n    /**\n     * Custom template for violation messages.\n     * Available placeholders: `{categories}`, `{category_scores}`, `{original_content}`\n     */\n    violationMessage?: string;\n}\n/**\n * Middleware that moderates agent traffic using OpenAI's moderation endpoint.\n *\n * This middleware checks messages for content policy violations at different stages:\n * - Input: User messages before they reach the model\n * - Output: AI model responses\n * - Tool results: Results returned from tool executions\n *\n * @param options - Configuration options for the middleware\n * @param options.model - OpenAI model to use for moderation. Can be either a model name or a BaseChatModel instance.\n * @param options.moderationModel - Moderation model to use.\n * @param options.checkInput - Whether to check user input messages.\n * @param options.checkOutput - Whether to check model output messages.\n * @param options.checkToolResults - Whether to check tool result messages.\n * @param options.exitBehavior - How to handle violations.\n * @param options.violationMessage - Custom template for violation messages.\n * @returns Middleware function that can be used to moderate agent traffic.\n *\n * @example  Using model instance\n * ```ts\n * import { createAgent, openAIModerationMiddleware } from \"langchain\";\n *\n * const middleware = openAIModerationMiddleware({\n *   checkInput: true,\n *   checkOutput: true,\n *   exitBehavior: \"end\"\n * });\n *\n * const agent = createAgent({\n *   model: \"openai:gpt-4o\",\n *   tools: [...],\n *   middleware: [middleware],\n * });\n * ```\n *\n * @example Using model name\n * ```ts\n * import { createAgent, openAIModerationMiddleware } from \"langchain\";\n *\n * const middleware = openAIModerationMiddleware({\n *   model: \"gpt-4o-mini\",\n *   checkInput: true,\n *   checkOutput: true,\n *   exitBehavior: \"end\"\n * });\n *\n * const agent = createAgent({\n *   model: \"openai:gpt-4o\",\n *   tools: [...],\n *   middleware: [middleware],\n * });\n * ```\n *\n * @example Custom violation message\n * ```ts\n * const middleware = openAIModerationMiddleware({\n *   violationMessage: \"Content flagged: {categories}. Scores: {category_scores}\"\n * });\n * ```\n */\nexport declare function openAIModerationMiddleware(options: OpenAIModerationMiddlewareOptions): AgentMiddleware;\nexport {};\n//# sourceMappingURL=moderation.d.ts.map"],"mappings":";;;;;KAgBKK,eAAAA;;;;;;;;UAmBYO,iCAAAA;;;;;;;;;;;;;;;;;;;;;kBAqBGZ;;;;;oBAKEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0FEQ,0BAAAA,UAAoCD,oCAAoCX"}