UNPKG

@kya-os/agentshield-nextjs

Version:

Next.js middleware for AgentShield AI agent detection

1 lines 90.9 kB
{"version":3,"sources":["../src/wasm-confidence.ts","../src/wasm-loader.ts","../src/edge-detector-with-wasm.ts","../src/edge-safe-detector.ts","../src/storage/memory-adapter.ts","../src/storage/redis-adapter.ts","../src/storage/index.ts","../src/enhanced-middleware.ts"],"names":["response","EdgeAgentDetectorWrapperWithWasm"],"mappings":"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","file":"enhanced-middleware.mjs","sourcesContent":["/**\n * Internal WASM confidence enhancement logic\n * This was previously in the user's lib/agentshield-simple-wasm.ts\n */\n\n/**\n * Check if WASM is available in the current environment\n */\nexport async function checkWasmAvailability(): Promise<boolean> {\n try {\n // Check if WebAssembly is available\n if (typeof WebAssembly === 'undefined') {\n return false;\n }\n\n // In Edge Runtime, we can't use WebAssembly.compile()\n // Instead, just check for the presence of WebAssembly object\n // The actual WASM module will be loaded separately\n \n // Check for basic WebAssembly API availability\n if (!WebAssembly.instantiate || !WebAssembly.Module) {\n return false;\n }\n \n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Determine if WASM verification should be indicated\n * Based on the detection confidence level\n */\nexport function shouldIndicateWasmVerification(confidence: number): boolean {\n // WASM verification is indicated for pattern-based detections\n // that achieve high confidence (>= 85 on 0-100 scale)\n return confidence >= 85 && confidence < 100; // Updated to 0-100 scale\n}\n\n/**\n * Apply WASM confidence boost for enhanced detection\n */\nexport function getWasmConfidenceBoost(\n baseConfidence: number,\n reasons: string[] = []\n): number {\n // If signature verification succeeded, always return 100%\n if (reasons.some(r =>\n r.includes('signature_agent') &&\n !r.includes('signature_headers_present')\n )) {\n return 100; // Updated to 0-100 scale (was 1.0)\n }\n\n // For high-confidence pattern detection, boost to 95%\n if (baseConfidence >= 85) { // Updated to 0-100 scale (was 0.85)\n return 95; // Updated to 0-100 scale (was 0.95)\n }\n\n // For medium-high confidence, apply smaller boost\n if (baseConfidence >= 70) { // Updated to 0-100 scale (was 0.7)\n return Math.min(baseConfidence * 1.1, 90); // Updated to 0-100 scale (was 0.9)\n }\n\n // No boost for lower confidence\n return baseConfidence;\n}\n\n/**\n * Get verification method based on detection\n */\nexport function getVerificationMethod(\n confidence: number,\n reasons: string[] = []\n): string {\n // Check for signature verification\n if (reasons.some(r => \n r.includes('signature_agent') && \n !r.includes('signature_headers_present')\n )) {\n return 'signature';\n }\n \n // Check for WASM enhancement\n if (shouldIndicateWasmVerification(confidence)) {\n return 'wasm-enhanced';\n }\n \n // Default to pattern matching\n return 'pattern';\n}","/**\n * WASM Loader for AgentShield in Edge Runtime\n * Handles loading and initialization of WebAssembly module\n *\n * IMPORTANT: wasm-bindgen Import Names Limitation\n * ================================================\n * The import function names (e.g., __wbg_log_1d3ae13c3d5e6b8e) are generated\n * by wasm-bindgen with hash suffixes that change with each WASM rebuild.\n * If the WASM module is rebuilt, these function names MUST be updated to match\n * the new exports from wasm-pack.\n *\n * To get the correct function names after a WASM rebuild:\n * 1. Run `wasm-pack build --target web` in the rust/crates/agentshield-wasm directory\n * 2. Check the generated `agentshield_wasm_bg.js` file for the actual export names\n * 3. Update the import object in this file to match\n *\n * TODO: Consider using the generated JS bindings from wasm-pack instead of\n * manually specifying imports, or add CI verification to catch mismatches.\n */\n\n// Dynamic WASM loading - no direct imports to avoid build issues\nlet wasmInstance: WebAssembly.Instance | null = null;\ninterface WasmExports {\n detect_agent: (ptr: number, len: number) => number;\n get_version: () => number;\n __wbindgen_malloc: (size: number) => number;\n __wbindgen_free: (ptr: number, size: number) => void;\n __wbindgen_realloc: (ptr: number, oldSize: number, newSize: number) => number;\n memory: WebAssembly.Memory;\n [key: string]: unknown;\n}\nlet wasmExports: WasmExports | null = null;\nlet initPromise: Promise<void> | null = null;\n\n// Store the WASM module URL for runtime loading\nconst WASM_PATH = '/wasm/agentshield_wasm_bg.wasm';\n\n// Store base URL for constructing absolute URLs in Edge Runtime\nlet baseUrl: string | null = null;\n\n/**\n * Set the base URL for WASM loading (needed in Edge Runtime)\n */\nexport function setWasmBaseUrl(url: string) {\n baseUrl = url;\n}\n\n/**\n * Construct the full WASM URL based on context\n */\nfunction getWasmUrl(): string {\n // If we have a base URL (Edge Runtime), construct absolute URL\n if (baseUrl) {\n try {\n const url = new URL(baseUrl);\n // Use the origin to construct the full URL\n return `${url.origin}${WASM_PATH}`;\n } catch {\n // Fallback to relative path if URL construction fails\n return WASM_PATH;\n }\n }\n // Default to relative path\n return WASM_PATH;\n}\n\n/**\n * Initialize the WASM module\n * This is safe to call multiple times - it will only initialize once\n */\nexport async function initWasm(): Promise<boolean> {\n if (wasmExports) return true;\n if (initPromise) {\n await initPromise;\n return !!wasmExports;\n }\n\n initPromise = (async () => {\n try {\n // Create AbortController for timeout\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 3000); // 3 second timeout\n\n try {\n const wasmUrl = getWasmUrl();\n\n // Try streaming compilation first (most efficient)\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n const response = await fetch(wasmUrl, { signal: controller.signal });\n clearTimeout(timeout);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch WASM: ${response.status}`);\n }\n\n // Clone response for streaming (in case we need to retry)\n const streamResponse = response.clone();\n\n // Use streaming compilation for best performance\n const { instance } = await WebAssembly.instantiateStreaming(streamResponse, {\n wbg: {\n __wbg_log_1d3ae13c3d5e6b8e: (ptr: number, len: number) => {\n if (process.env.NODE_ENV !== 'production') {\n console.debug('WASM:', ptr, len);\n }\n },\n __wbindgen_throw: (ptr: number, len: number) => {\n throw new Error(`WASM Error at ${ptr}, length ${len}`);\n },\n },\n });\n\n wasmInstance = instance;\n wasmExports = instance.exports as WasmExports;\n\n if (process.env.NODE_ENV !== 'production') {\n console.debug('[AgentShield] ✅ WASM module initialized with streaming');\n }\n return;\n } catch (streamError) {\n // If not aborted, try fallback\n if (!controller.signal.aborted) {\n if (process.env.NODE_ENV !== 'production') {\n console.debug(\n '[AgentShield] Streaming compilation failed, falling back to standard compilation'\n );\n }\n } else {\n throw streamError;\n }\n }\n }\n\n // Fallback to standard compilation if streaming not available\n const response = await fetch(wasmUrl, { signal: controller.signal });\n clearTimeout(timeout);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch WASM: ${response.status}`);\n }\n\n const wasmArrayBuffer = await response.arrayBuffer();\n const compiledModule = await WebAssembly.compile(wasmArrayBuffer);\n\n const imports = {\n wbg: {\n __wbg_log_1d3ae13c3d5e6b8e: (ptr: number, len: number) => {\n if (process.env.NODE_ENV !== 'production') {\n console.debug('WASM:', ptr, len);\n }\n },\n __wbindgen_throw: (ptr: number, len: number) => {\n throw new Error(`WASM Error at ${ptr}, length ${len}`);\n },\n },\n };\n\n wasmInstance = await WebAssembly.instantiate(compiledModule, imports);\n wasmExports = wasmInstance.exports as WasmExports;\n\n if (process.env.NODE_ENV !== 'production') {\n console.debug('[AgentShield] ✅ WASM module initialized via fallback');\n }\n } catch (fetchError: unknown) {\n const error = fetchError as { name?: string; message?: string };\n if (error.name === 'AbortError') {\n console.warn(\n '[AgentShield] WASM fetch timed out after 3 seconds - using pattern detection'\n );\n } else {\n console.warn(\n '[AgentShield] Failed to fetch WASM file:',\n error.message || 'Unknown error'\n );\n }\n wasmExports = null;\n }\n } catch (error) {\n console.error('[AgentShield] Failed to initialize WASM:', error);\n wasmExports = null;\n }\n })();\n\n await initPromise;\n return !!wasmExports;\n}\n\n/**\n * Detect agent using WASM\n * Returns null if WASM is not available\n *\n * NOTE: This function currently returns null to gracefully fall back to pattern detection.\n * The raw WASM instantiation approach in this file is incompatible with wasm-bindgen's\n * generated bindings which require complex JS glue code for memory management and\n * string marshalling. For proper WASM detection, use edge-wasm-middleware.ts which\n * correctly handles the wasm-bindgen API with JsRequestMetadata creation.\n *\n * TODO: Rewrite this to use the high-level wasm-bindgen JS bindings or port the\n * edge-wasm-middleware.ts pattern here.\n */\nexport async function detectAgentWithWasm(\n _userAgent: string | undefined,\n _headers: Record<string, string>,\n _ipAddress?: string\n): Promise<{\n isAgent: boolean;\n confidence: number;\n agent?: string;\n verificationMethod: string;\n riskLevel: string;\n} | null> {\n // Return null to fall back to pattern detection\n // The raw WASM API used in this file doesn't match wasm-bindgen's generated exports\n // which require JsRequestMetadata objects created via jsrequestmetadata_new()\n return null;\n}\n\n/**\n * Get WASM version\n */\nexport async function getWasmVersion(): Promise<string | null> {\n const initialized = await initWasm();\n if (!initialized || !wasmExports) {\n return null;\n }\n\n if (typeof wasmExports.version === 'function') {\n return wasmExports.version();\n }\n\n return 'unknown';\n}\n\n/**\n * Check if WASM is available and working\n */\nexport async function isWasmAvailable(): Promise<boolean> {\n try {\n const initialized = await initWasm();\n if (!initialized) return false;\n\n // Try to get version as a simple test\n const version = await getWasmVersion();\n return version !== null;\n } catch {\n return false;\n }\n}\n","/**\n * Enhanced EdgeAgentDetector with WASM support\n * Provides both pattern-based and WASM-based detection\n */\n\nimport { detectAgentWithWasm, initWasm, isWasmAvailable, setWasmBaseUrl } from './wasm-loader';\nimport {\n loadRulesSync,\n type DetectionRules,\n type DetectionResult,\n type DetectionInput,\n mapVerificationMethod,\n} from '@kya-os/agentshield-shared';\n\ntype EventHandler = (...args: unknown[]) => void;\n\n// Load centralized rules - this will fail fast if rules cannot be loaded\nconst rules: DetectionRules = loadRulesSync();\n\n/**\n * EdgeAgentDetector with WASM enhancement\n */\nexport class EdgeAgentDetectorWithWasm {\n private wasmEnabled: boolean = false;\n private initPromise: Promise<void> | null = null;\n private baseUrl: string | null = null;\n private rules: DetectionRules;\n\n constructor(private enableWasm: boolean = true) {\n this.rules = rules;\n }\n\n /**\n * Set the base URL for WASM loading in Edge Runtime\n */\n setBaseUrl(url: string) {\n this.baseUrl = url;\n setWasmBaseUrl(url);\n }\n\n /**\n * Initialize the detector (including WASM if enabled)\n */\n async init(): Promise<void> {\n if (!this.enableWasm) {\n this.wasmEnabled = false;\n return;\n }\n\n if (this.initPromise) {\n await this.initPromise;\n return;\n }\n\n this.initPromise = (async () => {\n try {\n // Try to initialize WASM\n const wasmAvailable = await isWasmAvailable();\n\n if (wasmAvailable) {\n // Set base URL if provided before initializing\n if (this.baseUrl) {\n setWasmBaseUrl(this.baseUrl);\n }\n await initWasm(); // Actually initialize WASM\n this.wasmEnabled = true;\n // WASM detection enabled\n