UNPKG

@ethicalzen/sdk

Version:

Official EthicalZen SDK for Node.js - AI safety guardrails made simple

56 lines 1.96 kB
import { Request, Response, NextFunction } from 'express'; import { EthicalZenConfig, EnforcementResponse } from './client'; export interface MiddlewareConfig extends EthicalZenConfig { contractId: string; enforceOn?: 'request' | 'response' | 'both'; failureMode?: 'block' | 'log' | 'pass'; onViolation?: (result: EnforcementResponse, req: Request, res: Response) => void; extractPayload?: (req: Request, res: Response) => any; } /** * Express middleware for automatic EthicalZen enforcement * * @param config - Middleware configuration * @returns Express middleware function * * @example * ```typescript * import { EthicalZenMiddleware } from '@ethicalzen/sdk'; * * app.use(EthicalZenMiddleware({ * apiKey: process.env.ETHICALZEN_API_KEY, * contractId: 'chatbot/general/us/v1.0', * enforceOn: 'response' * })); * * app.post('/chat', async (req, res) => { * const response = await generateAIResponse(req.body); * res.json({ message: response }); // Automatically validated! * }); * ``` */ export declare function EthicalZenMiddleware(config: MiddlewareConfig): (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>; /** * Route-specific middleware for selective enforcement * * @param config - Middleware configuration * @returns Express middleware function * * @example * ```typescript * import { enforceRoute } from '@ethicalzen/sdk'; * * app.post('/chat', * enforceRoute({ * apiKey: process.env.ETHICALZEN_API_KEY, * contractId: 'chatbot/general/us/v1.0' * }), * async (req, res) => { * const response = await generateAIResponse(req.body); * res.json({ message: response }); * } * ); * ``` */ export declare function enforceRoute(config: MiddlewareConfig): (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>; //# sourceMappingURL=middleware.d.ts.map