UNPKG

@kya-os/agentshield-nextjs

Version:

Next.js middleware for AgentShield AI agent detection

56 lines (52 loc) 1.59 kB
import { NextRequest, NextResponse } from 'next/server'; import { DetectionResult } from '@kya-os/agentshield'; /** * Edge-compatible session tracking for AI agents * Uses cookie-based storage to work in Edge Runtime */ interface SessionData { id: string; agent: string; confidence: number; detectedAt: number; expires: number; } interface SessionTrackingConfig { enabled: boolean; cookieName?: string; cookieMaxAge?: number; encryptionKey?: string; } declare class EdgeSessionTracker { private readonly config; constructor(config: SessionTrackingConfig); /** * Track a new AI agent session */ track(_request: NextRequest, response: NextResponse, result: DetectionResult): Promise<NextResponse>; /** * Check for existing AI agent session */ check(request: NextRequest): Promise<SessionData | null>; /** * Clear an existing session */ clear(response: NextResponse): NextResponse; /** * Simple encryption using Web Crypto API (Edge-compatible) */ private encrypt; /** * Simple decryption (Edge-compatible) */ private decrypt; } /** * Stateless session checker for non-Next.js environments (Express, etc.) * Uses a combination of headers to identify continued sessions */ declare class StatelessSessionChecker { static check(headers: Record<string, string>): SessionData | null; static setHeaders(response: any, session: SessionData): void; } export { EdgeSessionTracker, type SessionData, type SessionTrackingConfig, StatelessSessionChecker };