@kya-os/checkpoint-wasm-runtime 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -0
- package/dist/adapters.js +0 -2
- package/dist/adapters.mjs +0 -2
- package/dist/edge.js +0 -2
- package/dist/edge.mjs +0 -2
- package/dist/engine-edge.js +0 -2
- package/dist/engine-edge.mjs +0 -2
- package/dist/engine.js +0 -2
- package/dist/engine.mjs +0 -2
- package/dist/index.js +0 -2
- package/dist/index.mjs +0 -2
- package/dist/node.js +0 -2
- package/dist/node.mjs +0 -2
- package/dist/orchestrator-edge.d.mts +5 -199
- package/dist/orchestrator-edge.d.ts +5 -199
- package/dist/orchestrator-edge.js +0 -2
- package/dist/orchestrator-edge.mjs +0 -2
- package/dist/orchestrator-node.d.mts +49 -0
- package/dist/orchestrator-node.d.ts +49 -0
- package/dist/orchestrator-node.js +547 -0
- package/dist/orchestrator-node.mjs +538 -0
- package/dist/orchestrator.d.mts +4 -47
- package/dist/orchestrator.d.ts +4 -47
- package/dist/orchestrator.js +0 -2
- package/dist/orchestrator.mjs +0 -2
- package/dist/render-decision-C1a-iuiW.d.mts +200 -0
- package/dist/render-decision-Dsjwt96g.d.ts +200 -0
- package/package.json +11 -1
- package/dist/adapters.js.map +0 -1
- package/dist/adapters.mjs.map +0 -1
- package/dist/edge.js.map +0 -1
- package/dist/edge.mjs.map +0 -1
- package/dist/engine-edge.js.map +0 -1
- package/dist/engine-edge.mjs.map +0 -1
- package/dist/engine.js.map +0 -1
- package/dist/engine.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/node.js.map +0 -1
- package/dist/node.mjs.map +0 -1
- package/dist/orchestrator-edge.js.map +0 -1
- package/dist/orchestrator-edge.mjs.map +0 -1
- package/dist/orchestrator.js.map +0 -1
- package/dist/orchestrator.mjs.map +0 -1
package/dist/edge.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts","../src/wasm-detector.ts","../src/wasm-bindgen/agentshield_wasm.js","../src/loaders/static-loader.ts","../src/policy/policy-loader.ts","../src/fallback/rules-detector.ts","../src/edge.ts"],"names":["version","ptr"],"mappings":"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","file":"edge.mjs","sourcesContent":["/**\n * AgentShield WASM Runtime Types\n *\n * Core interfaces following SOLID principles:\n * - Interface Segregation: Small, focused interfaces\n * - Dependency Inversion: Depend on abstractions\n */\n\n/**\n * Detection input - information about the request to analyze\n */\nexport interface IDetectionInput {\n /** User-Agent header value */\n userAgent?: string;\n /** Client IP address */\n ipAddress?: string;\n /** All request headers */\n headers: Record<string, string>;\n /** Request URL path */\n url?: string;\n /** HTTP method (GET, POST, etc.) */\n method?: string;\n /** Client fingerprint data (for browser detection) */\n clientFingerprint?: string;\n /** Request timestamp */\n timestamp?: Date;\n}\n\n/**\n * Verification method used to detect the agent\n */\nexport type VerificationMethod =\n | 'signature' // Cryptographic signature verification (highest confidence)\n | 'pattern' // User-agent or header pattern matching\n | 'behavioral' // Behavioral analysis\n | 'network' // Network/IP-based detection\n | 'mcp_i_handshake' // MCP-I protocol handshake\n | 'none'; // No verification method\n\n/**\n * Detection class - categorization of the detected entity\n */\nexport type DetectionClass =\n | { type: 'Human' }\n | { type: 'AiAgent'; agentType: string }\n | { type: 'Bot'; botType?: string }\n | { type: 'Automation'; toolType?: string }\n | { type: 'Unknown' };\n\n/**\n * Forgeability risk level\n * How easy it is to spoof the detection signals\n */\nexport type ForgeabilityRisk = 'low' | 'medium' | 'high';\n\n/**\n * Detected agent information\n */\nexport interface IDetectedAgent {\n /** Agent type identifier (e.g., 'openai', 'anthropic') */\n type: string;\n /** Human-readable agent name (e.g., 'ChatGPT', 'Claude') */\n name: string;\n /** Vendor/company name */\n vendor?: string;\n /** Model identifier if known */\n model?: string;\n /** Version if known */\n version?: string;\n}\n\n/**\n * Detection result - output from the detection engine\n * Confidence is ALWAYS on 0-100 scale\n */\nexport interface IDetectionResult {\n /** Whether the request was identified as coming from an agent */\n isAgent: boolean;\n /** Confidence score on 0-100 scale (NOT 0-1) */\n confidence: number;\n /** Detection classification */\n detectionClass: DetectionClass;\n /** Detected agent details if identified */\n detectedAgent?: IDetectedAgent;\n /** Method used for verification */\n verificationMethod: VerificationMethod;\n /** Risk level of signal forgeability */\n forgeabilityRisk: ForgeabilityRisk;\n /** Reasons/signals that contributed to detection */\n reasons: string[];\n /** Detection timestamp */\n timestamp: Date;\n /** Whether the request should be blocked (set by policy) */\n shouldBlock?: boolean;\n /** Reason for blocking (set by policy) */\n blockReason?: string;\n}\n\n/**\n * WASM bindings interface - functions exposed by the WASM module\n */\nexport interface IWasmBindings {\n /** Detect an agent from request metadata */\n detect_agent(metadata: IWasmRequestMetadata): IWasmDetectionResult;\n /** Get WASM module version */\n get_version(): string;\n /** Get build information */\n get_build_info(): string;\n}\n\n/**\n * WASM request metadata - input to WASM detect_agent function\n */\nexport interface IWasmRequestMetadata {\n user_agent: string | null;\n ip_address: string | null;\n headers: string; // JSON string\n timestamp: string; // ISO 8601\n url: string | null;\n method: string | null;\n client_fingerprint: string | null;\n free(): void;\n}\n\n/**\n * WASM detection result - output from WASM detect_agent function\n */\nexport interface IWasmDetectionResult {\n is_agent: boolean;\n confidence: number; // 0-100 scale (converted at WASM boundary)\n agent: string | null;\n verification_method: string;\n risk_level: string;\n timestamp: string;\n}\n\n/**\n * WASM loader interface - abstracts WASM loading strategy\n */\nexport interface IWasmLoader {\n /** Load the WASM module */\n load(): Promise<void>;\n /** Get the WASM bindings after loading */\n getBindings(): IWasmBindings;\n /** Check if WASM is loaded */\n isLoaded(): boolean;\n /** Get the loading strategy name */\n getStrategy(): string;\n}\n\n/**\n * Agent detector interface - main detection API\n */\nexport interface IDetector {\n /** Analyze a request and detect if it's from an agent */\n detect(input: IDetectionInput): Promise<IDetectionResult>;\n /** Check if the detector is ready */\n isReady(): boolean;\n /** Ensure the detector is initialized */\n ensureReady(): Promise<void>;\n /** Get detector version */\n getVersion(): Promise<string>;\n}\n\n/**\n * Customer policy - rules for agent handling\n */\nexport interface ICustomerPolicy {\n /** Project ID */\n projectId: string;\n /** Agents to always block */\n denyList?: string[];\n /** Agents to always allow (if set, blocks all others) */\n allowList?: string[];\n /** Minimum confidence to trigger blocking */\n blockThreshold?: number;\n /** Path-based rules */\n pathRules?: IPathRule[];\n /** Policy version for cache invalidation */\n version?: string;\n /** Last updated timestamp */\n updatedAt?: Date;\n}\n\n/**\n * Path-based rule for policy\n */\nexport interface IPathRule {\n /** Path pattern (glob or regex) */\n pattern: string;\n /** Action for matching paths */\n action: 'allow' | 'block' | 'challenge';\n /** Specific agents this rule applies to */\n agents?: string[];\n}\n\n/**\n * Policy loader interface - loads customer policies\n */\nexport interface IPolicyLoader {\n /** Load policy for an API key */\n loadPolicy(apiKey: string): Promise<ICustomerPolicy>;\n /** Get cached policy if available */\n getCachedPolicy(apiKey: string): ICustomerPolicy | null;\n /** Invalidate cached policy */\n invalidateCache(apiKey: string): void;\n}\n\n/**\n * Detector configuration options\n */\nexport interface IDetectorOptions {\n /** API key for loading customer policies */\n apiKey?: string;\n /** Custom WASM loader (for Edge Runtime static imports) */\n wasmLoader?: IWasmLoader;\n /** Whether to fall back to JavaScript if WASM fails */\n fallbackToJS?: boolean;\n /** Whether to cache policies */\n cachePolicy?: boolean;\n /** Policy cache TTL in milliseconds */\n policyTTL?: number;\n /** Base URL for policy API */\n policyApiUrl?: string;\n /** Enable debug logging */\n debug?: boolean;\n}\n\n/**\n * Confidence thresholds - centralized constants\n */\nexport const CONFIDENCE = {\n /** Minimum confidence for isAgent=true */\n THRESHOLD_AGENT: 30,\n /** Cryptographic signature verified */\n SIGNATURE_VERIFIED: 100,\n /** Signature header present but not verified */\n SIGNATURE_PRESENT: 85,\n /** Strong pattern match */\n PATTERN_HIGH: 85,\n /** Moderate pattern match */\n PATTERN_MEDIUM: 60,\n /** Weak pattern match */\n PATTERN_LOW: 40,\n /** Cloud IP detection only */\n CLOUD_IP: 30,\n} as const;\n","/**\n * Unified WASM Detector\n *\n * Single implementation of the AgentShield detection engine used by all packages.\n * Follows the Single Responsibility Principle: this class only handles detection.\n *\n * Key design decisions:\n * - Confidence is ALWAYS on 0-100 scale (no conversions needed)\n * - WASM output is used directly (no post-processing adjustments)\n * - Policy application is optional and happens after detection\n */\n\nimport type {\n IDetector,\n IDetectionInput,\n IDetectionResult,\n IWasmLoader,\n IWasmRequestMetadata,\n IPolicyLoader,\n ICustomerPolicy,\n DetectionClass,\n VerificationMethod,\n ForgeabilityRisk,\n IDetectorOptions,\n} from './types';\nimport { CONFIDENCE } from './types';\n\n/**\n * Convert verification method string from WASM to typed enum\n */\nfunction parseVerificationMethod(method: string): VerificationMethod {\n switch (method.toLowerCase()) {\n case 'signature':\n return 'signature';\n case 'pattern':\n return 'pattern';\n case 'behavioral':\n return 'behavioral';\n case 'network':\n return 'network';\n case 'mcp_i_handshake':\n return 'mcp_i_handshake';\n default:\n return 'none';\n }\n}\n\n/**\n * Determine forgeability risk based on verification method and confidence\n */\nfunction determineForgeabilityRisk(\n method: VerificationMethod,\n confidence: number\n): ForgeabilityRisk {\n // Cryptographic signature verification = low risk\n if (method === 'signature' && confidence >= 90) {\n return 'low';\n }\n\n // High confidence pattern match = medium risk\n if (confidence >= 80) {\n return 'medium';\n }\n\n // Everything else = high risk (easily spoofable)\n return 'high';\n}\n\n/**\n * Determine detection class from WASM result\n */\nfunction determineDetectionClass(\n isAgent: boolean,\n agentName: string | null,\n confidence: number\n): DetectionClass {\n if (!isAgent || confidence < CONFIDENCE.THRESHOLD_AGENT) {\n return { type: 'Human' };\n }\n\n if (agentName) {\n // Check if it's an AI agent\n const aiAgentPatterns = [\n 'chatgpt',\n 'gpt',\n 'openai',\n 'claude',\n 'anthropic',\n 'perplexity',\n 'gemini',\n 'google ai',\n 'copilot',\n 'bing chat',\n ];\n\n const lowerName = agentName.toLowerCase();\n if (aiAgentPatterns.some((pattern) => lowerName.includes(pattern))) {\n return { type: 'AiAgent', agentType: agentName };\n }\n\n // Check if it's a bot\n const botPatterns = ['bot', 'crawler', 'spider', 'scraper'];\n if (botPatterns.some((pattern) => lowerName.includes(pattern))) {\n return { type: 'Bot', botType: agentName };\n }\n\n // Check if it's automation\n const automationPatterns = ['selenium', 'puppeteer', 'playwright', 'cypress'];\n if (automationPatterns.some((pattern) => lowerName.includes(pattern))) {\n return { type: 'Automation', toolType: agentName };\n }\n\n // Default to AI agent if detected but unrecognized\n return { type: 'AiAgent', agentType: agentName };\n }\n\n return { type: 'Unknown' };\n}\n\n/**\n * Unified WASM Detector\n *\n * Main detection class that wraps the WASM engine and provides\n * a consistent interface across all AgentShield packages.\n */\nexport class WasmDetector implements IDetector {\n private ready = false;\n private loadPromise: Promise<void> | null = null;\n\n /**\n * Create a new WasmDetector\n * @param loader - WASM loader (static for Edge, dynamic for Node.js)\n * @param policyLoader - Optional policy loader for API key support\n * @param options - Detector configuration options\n */\n constructor(\n private readonly loader: IWasmLoader,\n private readonly policyLoader?: IPolicyLoader,\n private readonly options: IDetectorOptions = {}\n ) {}\n\n /**\n * Analyze a request and detect if it's from an agent\n */\n async detect(input: IDetectionInput): Promise<IDetectionResult> {\n // Ensure WASM is loaded\n await this.ensureReady();\n\n try {\n // Get WASM bindings\n const bindings = this.loader.getBindings();\n\n // Create WASM metadata\n const metadata: IWasmRequestMetadata = {\n user_agent: input.userAgent || null,\n ip_address: input.ipAddress || null,\n headers: JSON.stringify(input.headers || {}),\n timestamp: (input.timestamp || new Date()).toISOString(),\n url: input.url || null,\n method: input.method || null,\n client_fingerprint: input.clientFingerprint || null,\n free: () => {}, // No-op for JS\n };\n\n // Call WASM detection\n const wasmResult = bindings.detect_agent(metadata);\n\n // Convert WASM result to IDetectionResult\n // NOTE: WASM already outputs confidence on 0-100 scale\n // No conversion needed!\n const verificationMethod = parseVerificationMethod(wasmResult.verification_method);\n const forgeabilityRisk = determineForgeabilityRisk(verificationMethod, wasmResult.confidence);\n const detectionClass = determineDetectionClass(\n wasmResult.is_agent,\n wasmResult.agent,\n wasmResult.confidence\n );\n\n let result: IDetectionResult = {\n isAgent: wasmResult.is_agent,\n confidence: wasmResult.confidence, // Already 0-100, no conversion!\n detectionClass,\n detectedAgent: wasmResult.agent\n ? {\n type: this.inferAgentType(wasmResult.agent),\n name: wasmResult.agent,\n }\n : undefined,\n verificationMethod,\n forgeabilityRisk,\n reasons: this.extractReasons(wasmResult),\n timestamp: new Date(),\n };\n\n // Apply customer policy if available\n if (this.policyLoader && this.options.apiKey) {\n result = await this.applyPolicy(result);\n }\n\n return result;\n } catch (error) {\n // Log error if debug enabled\n if (this.options.debug) {\n console.error('[WasmDetector] Detection error:', error);\n }\n\n // Return safe default (assume human)\n return this.createDefaultResult();\n }\n }\n\n /**\n * Check if the detector is ready\n */\n isReady(): boolean {\n return this.ready;\n }\n\n /**\n * Ensure the detector is initialized\n */\n async ensureReady(): Promise<void> {\n if (this.ready) {\n return;\n }\n\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.initialize();\n return this.loadPromise;\n }\n\n /**\n * Get detector version\n */\n async getVersion(): Promise<string> {\n await this.ensureReady();\n return this.loader.getBindings().get_version();\n }\n\n /**\n * Initialize the detector\n */\n private async initialize(): Promise<void> {\n try {\n await this.loader.load();\n this.ready = true;\n\n if (this.options.debug) {\n const version = this.loader.getBindings().get_version();\n console.log(\n `[WasmDetector] Initialized with WASM v${version} (${this.loader.getStrategy()})`\n );\n }\n } catch (error) {\n this.loadPromise = null;\n throw error;\n }\n }\n\n /**\n * Apply customer policy to detection result\n */\n private async applyPolicy(result: IDetectionResult): Promise<IDetectionResult> {\n if (!this.policyLoader || !this.options.apiKey) {\n return result;\n }\n\n try {\n // Try to get cached policy first\n let policy = this.policyLoader.getCachedPolicy(this.options.apiKey);\n\n // Load policy if not cached\n if (!policy) {\n policy = await this.policyLoader.loadPolicy(this.options.apiKey);\n }\n\n return this.applyPolicyRules(result, policy);\n } catch (error) {\n if (this.options.debug) {\n console.warn('[WasmDetector] Failed to load policy:', error);\n }\n // Return original result if policy loading fails\n return result;\n }\n }\n\n /**\n * Check if agent name matches a policy list entry\n * Uses exact match or word-boundary prefix match to avoid false positives\n * e.g., \"gpt\" matches \"ChatGPT\" and \"GPT-4\" but not \"EgyptBot\"\n */\n private matchesPolicyEntry(agentName: string, policyEntry: string): boolean {\n const lowerAgent = agentName.toLowerCase();\n const lowerEntry = policyEntry.toLowerCase();\n\n // Exact match\n if (lowerAgent === lowerEntry) {\n return true;\n }\n\n // Word boundary match: entry appears as a complete word or at word boundaries\n // This prevents \"ai\" from matching \"baidubot\" while allowing \"gpt\" to match \"chatgpt\"\n const wordBoundaryRegex = new RegExp(\n `(^|[^a-z0-9])${this.escapeRegex(lowerEntry)}($|[^a-z0-9])`,\n 'i'\n );\n return wordBoundaryRegex.test(lowerAgent);\n }\n\n /**\n * Escape special regex characters in a string\n */\n private escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n /**\n * Apply policy rules to detection result\n */\n private applyPolicyRules(result: IDetectionResult, policy: ICustomerPolicy): IDetectionResult {\n // Check deny list\n if (policy.denyList && result.detectedAgent) {\n const agentName = result.detectedAgent.name;\n const isDenied = policy.denyList.some((denied) => this.matchesPolicyEntry(agentName, denied));\n\n if (isDenied) {\n return {\n ...result,\n shouldBlock: true,\n blockReason: 'deny_list',\n };\n }\n }\n\n // Check allow list (if set, blocks everything not in list, but allows listed agents)\n if (policy.allowList && policy.allowList.length > 0 && result.isAgent) {\n const agentName = result.detectedAgent?.name;\n\n // If agent was detected but not identified (no name), skip allow list check\n // Allow list is for named agents only - unidentified agents go through threshold check\n if (!agentName) {\n // Fall through to threshold check below\n } else {\n const isAllowed = policy.allowList.some((allowed) =>\n this.matchesPolicyEntry(agentName, allowed)\n );\n\n if (!isAllowed) {\n return {\n ...result,\n shouldBlock: true,\n blockReason: 'not_in_allow_list',\n };\n }\n\n // Agent is explicitly allowed - skip threshold check and don't block\n return {\n ...result,\n shouldBlock: false,\n };\n }\n }\n\n // Check confidence threshold (only for detected agents not in allow list)\n // Use !== undefined instead of truthiness check since 0 is a valid threshold\n // (meaning \"block all detected agents regardless of confidence\")\n if (\n policy.blockThreshold !== undefined &&\n result.isAgent &&\n result.confidence >= policy.blockThreshold\n ) {\n return {\n ...result,\n shouldBlock: true,\n blockReason: 'threshold',\n };\n }\n\n return result;\n }\n\n /**\n * Infer agent type from name\n */\n private inferAgentType(agentName: string): string {\n const lowerName = agentName.toLowerCase();\n\n if (\n lowerName.includes('chatgpt') ||\n lowerName.includes('openai') ||\n lowerName.includes('gpt')\n ) {\n return 'openai';\n }\n if (lowerName.includes('claude') || lowerName.includes('anthropic')) {\n return 'anthropic';\n }\n if (lowerName.includes('perplexity')) {\n return 'perplexity';\n }\n if (lowerName.includes('gemini') || lowerName.includes('google')) {\n return 'google';\n }\n if (lowerName.includes('copilot') || lowerName.includes('bing')) {\n return 'microsoft';\n }\n\n return 'unknown';\n }\n\n /**\n * Extract reasons from WASM result\n */\n private extractReasons(wasmResult: {\n verification_method: string;\n agent: string | null;\n }): string[] {\n const reasons: string[] = [];\n\n if (wasmResult.verification_method) {\n reasons.push(`method:${wasmResult.verification_method}`);\n }\n\n if (wasmResult.agent) {\n reasons.push(`agent:${wasmResult.agent.toLowerCase()}`);\n }\n\n return reasons;\n }\n\n /**\n * Create default result (assumed human)\n */\n private createDefaultResult(): IDetectionResult {\n return {\n isAgent: false,\n confidence: 0,\n detectionClass: { type: 'Human' },\n verificationMethod: 'none',\n forgeabilityRisk: 'high',\n reasons: ['detection_failed'],\n timestamp: new Date(),\n };\n }\n}\n","let wasm;\n\nconst cachedTextDecoder =\n typeof TextDecoder !== 'undefined'\n ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true })\n : {\n decode: () => {\n throw Error('TextDecoder not available');\n },\n };\n\nif (typeof TextDecoder !== 'undefined') {\n cachedTextDecoder.decode();\n}\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction logError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n let error = (function () {\n try {\n return e instanceof Error ? `${e.message}\\n\\nStack:\\n${e.stack}` : e.toString();\n } catch (_) {\n return '<failed to stringify thrown value>';\n }\n })();\n console.error(\n 'wasm-bindgen: imported JS function that was not marked as `catch` threw an error:',\n error\n );\n throw e;\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder =\n typeof TextEncoder !== 'undefined'\n ? new TextEncoder('utf-8')\n : {\n encode: () => {\n throw Error('TextEncoder not available');\n },\n };\n\nconst encodeString =\n typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n }\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length,\n };\n };\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (typeof arg !== 'string') throw new Error(`expected a string argument, found ${typeof arg}`);\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0()\n .subarray(ptr, ptr + buf.length)\n .set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7f) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, (len = offset + arg.length * 3), 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n if (ret.read !== arg.length) throw new Error('failed to pass whole string');\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (\n cachedDataViewMemory0 === null ||\n cachedDataViewMemory0.buffer.detached === true ||\n (cachedDataViewMemory0.buffer.detached === undefined &&\n cachedDataViewMemory0.buffer !== wasm.memory.buffer)\n ) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction _assertNum(n) {\n if (typeof n !== 'number') throw new Error(`expected a number argument, found ${typeof n}`);\n}\n\nfunction _assertBoolean(n) {\n if (typeof n !== 'boolean') {\n throw new Error(`expected a boolean argument, found ${typeof n}`);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n * Initialize the AgentShield WASM module\n */\nexport function init() {\n wasm.init();\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_export_3.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n/**\n * Analyze a request and detect if it's from an agent\n * @param {JsRequestMetadata} metadata\n * @returns {JsDetectionResult}\n */\nexport function detect_agent(metadata) {\n _assertClass(metadata, JsRequestMetadata);\n if (metadata.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n const ret = wasm.detect_agent(metadata.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return JsDetectionResult.__wrap(ret[0]);\n}\n\n/**\n * Get the version of the AgentShield library\n * @returns {string}\n */\nexport function version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.version();\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\nconst JsDetectionResultFinalization =\n typeof FinalizationRegistry === 'undefined'\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry((ptr) => wasm.__wbg_jsdetectionresult_free(ptr >>> 0, 1));\n/**\n * JavaScript-compatible detection result\n */\nexport class JsDetectionResult {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(JsDetectionResult.prototype);\n obj.__wbg_ptr = ptr;\n JsDetectionResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n JsDetectionResultFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_jsdetectionresult_free(ptr, 0);\n }\n /**\n * Whether the request was identified as coming from an agent\n * @returns {boolean}\n */\n get is_agent() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.__wbg_get_jsdetectionresult_is_agent(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Whether the request was identified as coming from an agent\n * @param {boolean} arg0\n */\n set is_agent(arg0) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertBoolean(arg0);\n wasm.__wbg_set_jsdetectionresult_is_agent(this.__wbg_ptr, arg0);\n }\n /**\n * Confidence score (0.0 to 1.0)\n * @returns {number}\n */\n get confidence() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.__wbg_get_jsdetectionresult_confidence(this.__wbg_ptr);\n return ret;\n }\n /**\n * Confidence score (0.0 to 1.0)\n * @param {number} arg0\n */\n set confidence(arg0) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n wasm.__wbg_set_jsdetectionresult_confidence(this.__wbg_ptr, arg0);\n }\n /**\n * Get the detected agent name\n * @returns {string | undefined}\n */\n get agent() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsdetectionresult_agent(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the verification method as a string\n * @returns {string}\n */\n get verification_method() {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsdetectionresult_verification_method(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Get the risk level as a string\n * @returns {string}\n */\n get risk_level() {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsdetectionresult_risk_level(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Get the timestamp as a string\n * @returns {string}\n */\n get timestamp() {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsdetectionresult_timestamp(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\n\nconst JsRequestMetadataFinalization =\n typeof FinalizationRegistry === 'undefined'\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry((ptr) => wasm.__wbg_jsrequestmetadata_free(ptr >>> 0, 1));\n/**\n * JavaScript-compatible request metadata\n */\nexport class JsRequestMetadata {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n JsRequestMetadataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_jsrequestmetadata_free(ptr, 0);\n }\n /**\n * Constructor for JsRequestMetadata\n * @param {string | null | undefined} user_agent\n * @param {string | null | undefined} ip_address\n * @param {string} headers\n * @param {string} timestamp\n * @param {string | null} [url]\n * @param {string | null} [method]\n * @param {string | null} [client_fingerprint]\n */\n constructor(user_agent, ip_address, headers, timestamp, url, method, client_fingerprint) {\n var ptr0 = isLikeNone(user_agent)\n ? 0\n : passStringToWasm0(user_agent, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(ip_address)\n ? 0\n : passStringToWasm0(ip_address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(headers, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(timestamp, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n var ptr4 = isLikeNone(url)\n ? 0\n : passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = isLikeNone(method)\n ? 0\n : passStringToWasm0(method, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = isLikeNone(client_fingerprint)\n ? 0\n : passStringToWasm0(client_fingerprint, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len6 = WASM_VECTOR_LEN;\n const ret = wasm.jsrequestmetadata_new(\n ptr0,\n len0,\n ptr1,\n len1,\n ptr2,\n len2,\n ptr3,\n len3,\n ptr4,\n len4,\n ptr5,\n len5,\n ptr6,\n len6\n );\n this.__wbg_ptr = ret >>> 0;\n JsRequestMetadataFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Get the user agent\n * @returns {string | undefined}\n */\n get user_agent() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_user_agent(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the IP address\n * @returns {string | undefined}\n */\n get ip_address() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_ip_address(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the headers as JSON string\n * @returns {string}\n */\n get headers() {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_headers(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Get the timestamp\n * @returns {string}\n */\n get timestamp() {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_timestamp(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Get the URL\n * @returns {string | undefined}\n */\n get url() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_url(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the method\n * @returns {string | undefined}\n */\n get method() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_method(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the client fingerprint\n * @returns {string | undefined}\n */\n get client_fingerprint() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.jsrequestmetadata_client_fingerprint(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\n '`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n',\n e\n );\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function () {\n return logError(function (arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n }, arguments);\n };\n imports.wbg.__wbg_getTime_46267b1c24877e30 = function () {\n return logError(function (arg0) {\n const ret = arg0.getTime();\n return ret;\n }, arguments);\n };\n imports.wbg.__wbg_log_c222819a41e063d3 = function () {\n return logError(function (arg0) {\n console.log(arg0);\n }, arguments);\n };\n imports.wbg.__wbg_new_31a97dac4f10fab7 = function () {\n return logError(function (arg0) {\n const ret = new Date(arg0);\n return ret;\n }, arguments);\n };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function () {\n return logError(function () {\n const ret = new Error();\n return ret;\n }, arguments);\n };\n imports.wbg.__wbg_now_807e54c39636c349 = function () {\n return logError(function () {\n const ret = Date.now();\n return ret;\n }, arguments);\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function () {\n return logError(function (arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments);\n };\n imports.wbg.__wbindgen_init_externref_table = function () {\n const table = wasm.__wbindgen_export_3;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n };\n imports.wbg.__wbindgen_string_new = function (arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_throw = function (arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({ module } = module);\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead');\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn(\n 'using deprecated parameters for the initialization function; pass a single object instead'\n );\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('agentshield_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (\n typeof module_or_path === 'string' ||\n (typeof Request === 'function' && module_or_path instanceof Request) ||\n (typeof URL === 'function' && module_or_path instanceof URL)\n ) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/**\n * Static WASM Loader for Edge Runtime\n *\n * This loader is designed for environments that require static WASM imports,\n * such as Vercel Edge Runtime and Cloudflare Workers.\n *\n * Usage:\n * ```typescript\n * // In your middleware.ts:\n * import wasmModule from '@kya-os/checkpoint-wasm-runtime/wasm?module';\n * import { StaticWasmLoader, WasmDetector } from '@kya-os/checkpoint-wasm-runtime/edge';\n *\n * const loader = new StaticWasmLoader(wasmModule);\n * const detector = new WasmDetector(loader);\n * ```\n *\n * The `?module` suffix tells bundlers (webpack, esbuild) to import the WASM\n * as a pre-compiled WebAssembly.Module, which is required for Edge Runtime.\n */\n\nimport type {\n IWasmLoader,\n IWasmBindings,\n IWasmRequestMetadata,\n IWasmDetectionResult,\n} from '../types';\n\n// Import the wasm-bindgen generated glue code\nimport {\n initSync,\n JsRequestMetadata,\n type JsDetectionResult,\n detect_agent,\n version,\n} from '../wasm-bindgen/agentshield_wasm.js';\n\n/**\n * Static WASM Loader\n *\n * For Edge Runtime environments that require pre-compiled WASM modules.\n * The consumer must provide the WASM module via a static import with `?module` suffix.\n *\n * This loader uses the wasm-bindgen generated JS glue code to properly\n * initialize the WASM module with all required imports.\n */\nexport class StaticWasmLoader implements IWasmLoader {\n private bindings: IWasmBindings | null = null;\n private loadPromise: Promise<void> | null = null;\n private wasmExports: unknown = null;\n\n /**\n * Create a new StaticWasmLoader\n * @param wasmModule - Pre-compiled WebAssembly.Module from static import\n */\n constructor(private readonly wasmModule: WebAssembly.Module) {\n if (!wasmModule) {\n throw new Error(\n 'StaticWasmLoader requires a WebAssembly.Module. ' +\n \"Import with: import wasmModule from './wasm.wasm?module'\"\n );\n }\n }\n\n /**\n * Load and instantiate the WASM module\n */\n async load(): Promise<void> {\n if (this.bindings) {\n return; // Already loaded\n }\n\n // Prevent concurrent loading - return existing promise if in progress\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.doLoad();\n return this.loadPromise;\n }\n\n /**\n * Internal load implementation using wasm-bindgen initSync\n */\n private async doLoad(): Promise<void> {\n try {\n // Use wasm-bindgen's initSync which handles all the import bindings correctly\n this.wasmExports = initSync({ module: this.wasmModule });\n\n // Create bindings wrapper using the wasm-bindgen exports\n this.bindings = this.createBindings();\n } catch (error) {\n // Reset loadPromise so future attempts can retry\n this.loadPromise = null;\n throw new Error(\n `Failed to instantiate WASM module: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * Get the WASM bindings after loading\n */\n getBindings(): IWasmBindings {\n if (!this.bindings) {\n throw new Error('WASM not loaded. Call load() first.');\n }\n return this.bindings;\n }\n\n /**\n * Check if WASM is loaded\n */\n isLoaded(): boolean {\n return this.bindings !== null;\n }\n\n /**\n * Get the loading strategy name\n */\n getStrategy(): string {\n return 'static-import';\n }\n\n /**\n * Create bindings wrapper using wasm-bindgen exports\n */\n private createBindings(): IWasmBindings {\n return {\n detect_agent: (metadata: IWasmRequestMetadata): IWasmDetectionResult => {\n // Create JsRequestMetadata instance using wasm-bindgen generated class\n const wasmMetadata = new JsRequestMetadata(\n metadata.user_agent,\n metadata.ip_address,\n metadata.headers,\n metadata.timestamp,\n metadata.url,\n metadata.method,\n metadata.client_fingerprint\n );\n\n let result: JsDetectionResult | null = null;\n\n try {\n // Call the wasm-bindgen exported detect_agent function\n result = detect_agent(wasmMetadata);\n\n // Extract result properties and return as IWasmDetectionResult\n return {\n is_agent: result.is_agent,\n confidence: result.confidence,\n agent: result.agent ?? null, // Convert undefined to null\n verification_method: result.verification_method,\n risk_level: result.risk_level,\n timestamp: result.timestamp,\n };\n } finally {\n // Free WASM memory for both objects - always free wasmMetadata,\n // and free result if it was successfully created\n result?.free();\n wasmMetadata.free();\n }\n },\n get_version: () => {\n try {\n return version();\n } catch {\n return '0.1.0-static';\n }\n },\n get_build_info: () => {\n return JSON.stringify({ version: '0.1.0', strategy: 'static-import' });\n },\n };\n }\n}\n\n/**\n * Create a static loader with validation\n */\nexport function createStaticLoader(wasmModule: WebAssembly.Module): StaticWasmLoader {\n return new StaticWasmLoader(wasmModule);\n}\n","/**\n * Policy Loader\n *\n * Loads customer policies from the AgentShield API.\n * Supports LRU caching with background refresh.\n */\n\nimport type { IPolicyLoader, ICustomerPolicy } from '../types';\n\n/**\n * Cached policy entry\n */\ninterface CachedPolicy {\n policy: ICustomerPolicy;\n loadedAt: number;\n refreshing: boolean;\n}\n\n/**\n * Policy loader configuration\n */\nexport interface PolicyLoaderConfig {\n /** Base URL for the policy API */\n apiUrl?: string;\n /** Cache TTL in milliseconds (default: 5 minutes) */\n cacheTTL?: number;\n /** Maximum number of policies to cache (default: 100) */\n maxCacheSize?: number;\n /** Enable background refresh (default: true) */\n backgroundRefresh?: boolean;\n /** Timeout for API requests in milliseconds (default: 5000) */\n timeout?: number;\n}\n\nconst DEFAULT_CONFIG: Required<PolicyLoaderConfig> = {\n apiUrl: 'https://api.agentshield.io',\n cacheTTL: 5 * 60 * 1000, // 5 minutes\n maxCacheSize: 100,\n backgroundRefresh: true,\n timeout: 5000,\n};\n\n/**\n * Policy Loader\n *\n * Loads and caches customer policies from the AgentShield API.\n * Follows Single Responsibility Principle: only handles policy loading.\n */\nexport class PolicyLoader implements IPolicyLoader {\n private cache = new Map<string, CachedPolicy>();\n private config: Required<PolicyLoaderConfig>;\n\n constructor(config: PolicyLoaderConfig = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Load policy for an API key\n */\n async loadPolicy(apiKey: string): Promise<ICustomerPolicy> {\n // Check cache first\n const cached = this.getCachedPolicy(apiKey);\n if (cached) {\n // Trigger background refresh if nearing expiry\n if (this.config.backgroundRefresh && this.shouldRefresh(apiKey)) {\n this.refreshInBackground(apiKey);\n }\n return cached;\n }\n\n // Fetch from API\n return this.fetchPolicy(apiKey);\n }\n\n /**\n * Get cached policy if available and not expired\n */\n getCachedPolicy(apiKey: string): ICustomerPolicy | null {\n const entry = this.cache.get(apiKey);\n if (!entry) {\n return null;\n }\n\n // Check if expired\n if (this.isExpired(entry)) {\n this.cache.delete(apiKey);\n return null;\n }\n\n return entry.policy;\n }\n\n /**\n * Invalidate cached policy\n */\n invalidateCache(apiKey: string): void {\n this.cache.delete(apiKey);\n }\n\n /**\n * Fetch policy from API and cache it\n */\n private async fetchPolicy(apiKey: string): Promise<ICustomerPolicy> {\n const policy = await this.fetchPolicyFromApi(apiKey);\n this.cachePolicy(apiKey, policy);\n return policy;\n }\n\n /**\n * Fetch policy from API without caching\n * Used internally for both direct fetches and background refreshes\n */\n private async fetchPolicyFromApi(apiKey: string): Promise<ICustomerPolicy> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const response = await fetch(`${this.config.apiUrl}/api/v1/policy`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${apiKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': 'agentshield-wasm-runtime/0.1.0',\n },\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n if (response.status === 401) {\n throw new PolicyLoadError('Invalid API key', 'INVALID_API_KEY');\n }\n if (response.status === 404) {\n // Return default policy if not found\n return this.getDefaultPolicy(apiKey);\n }\n throw new PolicyLoadError(`Failed to load policy: ${response.status}`, 'API_ERROR');\n }\n\n return (await response.json()) as ICustomerPolicy;\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error instanceof PolicyLoadError) {\n throw error;\n }\n\n if (error instanceof Error && error.name === 'AbortError') {\n throw new PolicyLoadError('Policy request timeout', 'TIMEOUT');\n }\n\n throw new PolicyLoadError(\n `Failed to load policy: ${error instanceof Error ? error.message : 'Unknown error'}`,\n 'NETWORK_ERROR'\n );\n }\n }\n\n /**\n * Cache a policy\n */\n private cachePolicy(apiKey: string, policy: ICustomerPolicy): void {\n // Enforce cache size limit (simple LRU: delete oldest)\n if (this.cache.size >= this.config.maxCacheSize) {\n const oldestKey = this.cache.keys().next().value;\n if (oldestKey) {\n this.cache.delete(oldestKey);\n }\n }\n\n this.cache.set(apiKey, {\n policy,\n loadedAt: Date.now(),\n refreshing: false,\n });\n }\n\n /**\n * Check if cached entry is expired\n */\n private isExpired(entry: CachedPolicy): boolean {\n return Date.now() - entry.loadedAt > this.config.cacheTTL;\n }\n\n /**\n * Check if cache entry should be refreshed\n */\n private shouldRefresh(apiKey: string): boolean {\n const entry = this.cache.get(apiKey);\n if (!entry) {\n return false;\n }\n\n // Refresh when 80% of TTL has passed\n const refreshThreshold = this.config.cacheTTL * 0.8;\n return Date.now() - entry.loadedAt > refreshThreshold && !entry.refreshing;\n }\n\n /**\n * Refresh policy in background\n */\n private async refreshInBackground(apiKey: string): Promise<void> {\n const entry = this.cache.get(apiKey);\n if (!entry || entry.refreshing) {\n return;\n }\n\n // Mark as refreshing\n entry.refreshing = true;\n\n try {\n // Use fetch-only method to avoid double caching\n const policy = await this.fetchPolicyFromApi(apiKey);\n this.cachePolicy(apiKey, policy);\n } catch {\n // Ignore errors in background refresh, keep serving stale cache\n } finally {\n // Reset refreshing flag on the current entry\n // (cachePolicy creates a new entry with refreshing: false, so this is\n // only needed if the fetch failed and we're still serving the old entry)\n const currentEntry = this.cache.get(apiKey);\n if (currentEntry && currentEntry.refreshing) {\n currentEntry.refreshing = false;\n }\n }\n }\n\n /**\n * Get default policy for a project\n */\n private getDefaultPolicy(apiKey: string): ICustomerPolicy {\n return {\n projectId: apiKey.split('_')[1] || 'unknown',\n blockThreshold: 90,\n };\n }\n}\n\n/**\n * Policy load error\n */\nexport class PolicyLoadError extends Error {\n constructor(\n message: string,\n public readonly code: 'INVALID_API_KEY' | 'API_ERROR' | 'NETWORK_ERROR' | 'TIMEOUT'\n ) {\n super(message);\n this.name = 'PolicyLoadError';\n }\n}\n\n/**\n * Create a policy loader with default configuration\n */\nexport function createPolicyLoader(config?: PolicyLoaderConfig): PolicyLoader {\n return new PolicyLoader(config);\n}\n","/**\n * Rules-Based Fallback Detector\n *\n * JavaScript fallback detector that uses merged-rules.json when WASM is unavailable.\n * This provides consistent detection using the same rules as WASM, just implemented in JS.\n */\n\nimport type {\n IDetector,\n IDetectionInput,\n IDetectionResult,\n DetectionClass,\n VerificationMethod,\n} from '../types';\nimport { CONFIDENCE } from '../types';\nimport { loadRulesSync, type DetectionRules } from '@kya-os/checkpoint-shared';\n\n/**\n * Rules-Based Fallback Detector\n *\n * Uses the same merged-rules.json as the WASM engine to provide\n * consistent detection when WASM is not available.\n */\nexport class RulesDetector implements IDetector {\n private rules: DetectionRules | null = null;\n private ready = false;\n\n /**\n * Analyze a request and detect if it's from an agent\n */\n async detect(input: IDetectionInput): Promise<IDetectionResult> {\n await this.ensureReady();\n\n const reasons: string[] = [];\n let confidence = 0;\n let detectedAgentName: string | null = null;\n let verificationMethod: VerificationMethod = 'none';\n\n const userAgent = input.userAgent || input.headers['user-agent'] || '';\n const normalizedHeaders = this.normalizeHeaders(input.headers);\n\n // Check User-Agent patterns\n if (userAgent && this.rules) {\n const uaMatch = this.matchUserAgent(userAgent);\n if (uaMatch) {\n confidence = Math.max(confidence, uaMatch.confidence);\n detectedAgentName = uaMatch.agentName;\n verificationMethod = 'pattern';\n reasons.push(`pattern:${uaMatch.agentKey}`);\n }\n }\n\n // Check suspicious headers\n if (this.rules) {\n const headerMatch = this.matchHeaders(normalizedHeaders);\n if (headerMatch.confidence > 0) {\n confidence = Math.max(confidence, headerMatch.confidence);\n reasons.push(`headers:${headerMatch.count}`);\n }\n }\n\n // Check for signature headers (indicates AI agent)\n if (this.hasSignatureHeaders(normalizedHeaders)) {\n confidence = Math.max(confidence, CONFIDENCE.SIGNATURE_PRESENT);\n reasons.push('signature_headers_present');\n verificationMethod = 'pattern'; // Can't verify signature in JS fallback\n }\n\n // Determine detection class\n const isAgent = confidence > CONFIDENCE.THRESHOLD_AGENT;\n const detectionClass = this.determineDetectionClass(isAgent, detectedAgentName, confidence);\n\n return {\n isAgent,\n confidence,\n detectionClass,\n detectedAgent: detectedAgentName\n ? {\n type: this.inferAgentType(detectedAgentName),\n name: detectedAgentName,\n }\n : undefined,\n verificationMethod,\n forgeabilityRisk: 'high', // JS fallback is always high risk\n reasons,\n timestamp: new Date(),\n };\n }\n\n /**\n * Check if the detector is ready\n */\n isReady(): boolean {\n return this.ready;\n }\n\n /**\n * Ensure the detector is initialized\n */\n async ensureReady(): Promise<void> {\n if (this.ready) {\n return;\n }\n\n try {\n this.rules = loadRulesSync();\n this.ready = true;\n } catch (error) {\n console.warn('[RulesDetector] Failed to load rules:', error);\n // Continue without rules - will return default results\n this.ready = true;\n }\n }\n\n /**\n * Get detector version\n */\n async getVersion(): Promise<string> {\n return '0.1.0-js-fallback';\n }\n\n /**\n * Normalize headers to lowercase keys\n */\n private normalizeHeaders(headers: Record<string, string>): Record<string, string> {\n const normalized: Record<string, string> = {};\n for (const [key, value] of Object.entries(headers)) {\n normalized[key.toLowerCase()] = value;\n }\n return normalized;\n }\n\n /**\n * Match user agent against rules\n */\n private matchUserAgent(\n userAgent: string\n ): { confidence: number; agentName: string; agentKey: string } | null {\n if (!this.rules) {\n return null;\n }\n\n const userAgents = this.rules.rules.userAgents;\n\n // Sort to check specific patterns first (generic_bot, dev_tools, automation_tools last)\n const genericKeys = ['generic_bot', 'dev_tools', 'automation_tools'];\n const entries = Object.entries(userAgents).sort((a, b) => {\n const aIsGeneric = genericKeys.includes(a[0]);\n const bIsGeneric = genericKeys.includes(b[0]);\n if (aIsGeneric && !bIsGeneric) return 1;\n if (!aIsGeneric && bIsGeneric) return -1;\n return 0;\n });\n\n for (const [agentKey, rule] of entries) {\n for (const pattern of rule.patterns) {\n try {\n const regex = new RegExp(pattern, 'i');\n if (regex.test(userAgent)) {\n return {\n // Convert 0-1 rule confidence to 0-100 scale\n confidence: rule.confidence * 100,\n agentName: this.getAgentName(agentKey),\n agentKey,\n };\n }\n } catch {\n // Invalid regex, skip\n }\n }\n }\n\n return null;\n }\n\n /**\n * Match headers against suspicious header rules\n */\n private matchHeaders(headers: Record<string, string>): { confidence: number; count: number } {\n if (!this.rules) {\n return { confidence: 0, count: 0 };\n }\n\n const suspicious = this.rules.rules.headers.suspicious || [];\n let maxConfidence = 0;\n let count = 0;\n\n for (const headerRule of suspicious) {\n if (headers[headerRule.name.toLowerCase()]) {\n // Convert 0-1 rule confidence to 0-100 scale\n maxConfidence = Math.max(maxConfidence, headerRule.confidence * 100);\n count++;\n }\n }\n\n return { confidence: maxConfidence, count };\n }\n\n /**\n * Check if signature headers are present\n */\n private hasSignatureHeaders(headers: Record<string, string>): boolean {\n return !!(headers['signature'] || headers['signature-input'] || headers['signature-agent']);\n }\n\n /**\n * Get human-readable agent name from rule key\n */\n private getAgentName(agentKey: string): string {\n const nameMap: Record<string, string> = {\n openai_gptbot: 'ChatGPT/GPTBot',\n anthropic_claude: 'Claude',\n perplexity_bot: 'Perplexity',\n google_ai: 'Google AI',\n microsoft_ai: 'Microsoft Copilot',\n meta_ai: 'Meta AI',\n cohere_bot: 'Cohere',\n huggingface_bot: 'HuggingFace',\n generic_bot: 'Generic Bot',\n dev_tools: 'Development Tool',\n automation_tools: 'Automation Tool',\n };\n return nameMap[agentKey] || agentKey;\n }\n\n /**\n * Infer agent type from name\n */\n private inferAgentType(agentName: string): string {\n const lowerName = agentName.toLowerCase();\n\n if (lowerName.includes('chatgpt') || lowerName.includes('gpt')) return 'openai';\n if (lowerName.includes('claude')) return 'anthropic';\n if (lowerName.includes('perplexity')) return 'perplexity';\n if (lowerName.includes('google')) return 'google';\n if (lowerName.includes('copilot') || lowerName.includes('bing')) return 'microsoft';\n\n return 'unknown';\n }\n\n /**\n * Determine detection class\n */\n private determineDetectionClass(\n isAgent: boolean,\n agentName: string | null,\n confidence: number\n ): DetectionClass {\n if (!isAgent || confidence < CONFIDENCE.THRESHOLD_AGENT) {\n return { type: 'Human' };\n }\n\n if (agentName) {\n const lowerName = agentName.toLowerCase();\n\n // AI agents\n const aiPatterns = ['chatgpt', 'gpt', 'claude', 'perplexity', 'gemini', 'copilot'];\n if (aiPatterns.some((p) => lowerName.includes(p))) {\n return { type: 'AiAgent', agentType: agentName };\n }\n\n // Bots\n if (lowerName.includes('bot') || lowerName.includes('crawler')) {\n return { type: 'Bot', botType: agentName };\n }\n\n // Automation\n if (lowerName.includes('automation') || lowerName.includes('tool')) {\n return { type: 'Automation', toolType: agentName };\n }\n\n return { type: 'AiAgent', agentType: agentName };\n }\n\n return { type: 'Unknown' };\n }\n}\n\n/**\n * Create a rules-based fallback detector\n */\nexport function createRulesDetector(): RulesDetector {\n return new RulesDetector();\n}\n","/**\n * AgentShield WASM Runtime - Edge Runtime Entry\n *\n * Optimized exports for Vercel Edge Runtime and Cloudflare Workers.\n * Uses static WASM imports for Edge Runtime compatibility.\n *\n * @example\n * ```typescript\n * // In your middleware.ts:\n * import wasmModule from '@kya-os/checkpoint-wasm-runtime/wasm?module';\n * import { createEdgeDetector, WasmDetector, StaticWasmLoader } from '@kya-os/checkpoint-wasm-runtime/edge';\n *\n * const detector = createEdgeDetector(wasmModule, {\n * apiKey: process.env.AGENTSHIELD_API_KEY,\n * });\n *\n * export async function middleware(request: NextRequest) {\n * const result = await detector.detect({\n * userAgent: request.headers.get('user-agent') || undefined,\n * headers: Object.fromEntries(request.headers.entries()),\n * });\n *\n * if (result.shouldBlock) {\n * return new NextResponse('Forbidden', { status: 403 });\n * }\n *\n * return NextResponse.next();\n * }\n * ```\n */\n\n// Export types\nexport type {\n IDetectionInput,\n IDetectionResult,\n IDetector,\n IWasmLoader,\n IPolicyLoader,\n ICustomerPolicy,\n IDetectedAgent,\n IDetectorOptions,\n DetectionClass,\n VerificationMethod,\n ForgeabilityRisk,\n} from './types';\n\nexport { CONFIDENCE } from './types';\n\n// Import classes for use in this module\nimport { WasmDetector } from './wasm-detector';\nimport { StaticWasmLoader, createStaticLoader } from './loaders/static-loader';\nimport { PolicyLoader, createPolicyLoader } from './policy/policy-loader';\nimport { RulesDetector, createRulesDetector } from './fallback/rules-detector';\n\n// Re-export for consumers\nexport { WasmDetector };\nexport { StaticWasmLoader, createStaticLoader };\nexport { PolicyLoader, createPolicyLoader };\nexport { RulesDetector, createRulesDetector };\n\n/**\n * Create a detector for Edge Runtime with static WASM import\n *\n * @param wasmModule - Pre-compiled WebAssembly.Module from static import\n * @param options - Detector configuration\n */\nexport function createEdgeDetector(\n wasmModule: WebAssembly.Module,\n options: import('./types').IDetectorOptions = {}\n): import('./types').IDetector {\n const loader = new StaticWasmLoader(wasmModule);\n\n let policyLoader: import('./types').IPolicyLoader | undefined;\n if (options.apiKey) {\n policyLoader = new PolicyLoader({\n apiUrl: options.policyApiUrl,\n cacheTTL: options.policyTTL,\n });\n }\n\n return new WasmDetector(loader, policyLoader, options);\n}\n\n/**\n * Create a fallback detector using JavaScript rules\n * Use this when WASM loading fails or is not available\n */\nexport function createFallbackDetector(): import('./types').IDetector {\n return new RulesDetector();\n}\n\n/**\n * Extract detection input from a Request object (Edge Runtime)\n */\nexport function extractInputFromRequest(request: Request): import('./types').IDetectionInput {\n const headers: Record<string, string> = {};\n request.headers.forEach((value, key) => {\n headers[key] = value;\n });\n\n const url = new URL(request.url);\n\n return {\n userAgent: request.headers.get('user-agent') || undefined,\n ipAddress:\n request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ||\n request.headers.get('x-real-ip') ||\n undefined,\n headers,\n url: url.pathname + url.search,\n method: request.method,\n };\n}\n"]}
|
package/dist/engine-edge.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../wasm/kya-os-engine-web/kya_os_engine.js","../src/engine/edge.ts"],"names":["ptr","verify"],"mappings":"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","file":"engine-edge.js","sourcesContent":["let wasm;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n/**\n * Cross-boundary `verify` wrapper. The JS host calls `engine.verify(input,\n * ctxSpec)`; on success it gets a [`VerifyResult`] JSON object; on\n * infrastructure failure (or malformed input) it gets a thrown JS error\n * whose message names the failure mode.\n *\n * **Error semantics**:\n *\n * - Verification *verdicts* (Block/Challenge/etc.) surface inside the\n * returned `VerifyResult` — they are not thrown.\n * - Engine [`VerifyError`][crate::error::VerifyError] (resolver / cache /\n * reputation / policy infra failures) surface as thrown JS errors.\n * - Serde deserialisation failures (malformed JS input) surface as thrown\n * JS errors too, mirroring the typed-vs-thrown split.\n *\n * # JS signature\n *\n * ```ts\n * function verify(input: AgentRequest, ctx: ContextSpec): VerifyResult;\n * ```\n * @param {any} input_js\n * @param {any} ctx_js\n * @returns {any}\n */\nexport function verify(input_js, ctx_js) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.verify(retptr, addHeapObject(input_js), addHeapObject(ctx_js));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_e83987f665cf5504 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_Number_bb48ca12f395cd08 = function(arg0) {\n const ret = Number(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {\n const ret = String(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_bigint_get_as_i64_f3ebc5a755000afd = function(arg0, arg1) {\n const v = getObject(arg1);\n const ret = typeof(v) === 'bigint' ? v : undefined;\n getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68 = function(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763 = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_in_bb933bd9e1b3bc0f = function(arg0, arg1) {\n const ret = getObject(arg0) in getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_bigint_cb320707dcd35f0b = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'bigint';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_function_ee8a6c5833c90377 = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_object_c818261d21f283a4 = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_string_fbb76cb2940daafd = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_2d472862bd29a478 = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_eq_6b13ab83478b1c50 = function(arg0, arg1) {\n const ret = getObject(arg0) === getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147 = function(arg0, arg1) {\n const ret = getObject(arg0) == getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_number_get_a20bf9b85341449d = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_string_get_e4f06c90489ad01b = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_b855445ff6a94295 = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_call_e762c39fa8ea36bf = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_done_2042aa2670fb1db1 = function(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n };\n imports.wbg.__wbg_entries_e171b586f8f6bdbf = function(arg0) {\n const ret = Object.entries(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_7bed016f185add81 = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_efcb449f58ec27c2 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_instanceof_ArrayBuffer_70beb1189ca63b38 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Map_8579b5e2ab5437c7 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Map;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Uint8Array_20c8e73002f7af98 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_isArray_96e0af9891d0945d = function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_isSafeInteger_d216eda7911dde36 = function(arg0) {\n const ret = Number.isSafeInteger(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_iterator_e5822695327a3c39 = function() {\n const ret = Symbol.iterator;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_length_69bca3cb64fc8748 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_length_cdd215e10d9dd507 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_new_1acc0b6eea89d040 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_5a79be3ab53b8aa5 = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_68651c719dcda04e = function() {\n const ret = new Map();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_e17d9f43105b08be = function() {\n const ret = new Array();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_next_020810e0ae8ebcb0 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_next_2c826fe5dfec6b6a = function(arg0) {\n const ret = getObject(arg0).next;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_prototypesetcall_2a6620b6922694b2 = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n };\n imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n };\n imports.wbg.__wbg_set_907fb406c34a251d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_c213c871859d6500 = function(arg0, arg1, arg2) {\n getObject(arg0)[arg1 >>> 0] = takeObject(arg2);\n };\n imports.wbg.__wbg_value_692627309814bb8c = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_9ae0607507abb057 = function(arg0) {\n // Cast intrinsic for `I64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('kya_os_engine_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/**\n * `kya-os-engine` WASM bridge for edge runtimes — Edge-WASM-1.\n *\n * The Node target (`./index.ts`) uses `fs.readFileSync` at module\n * load and exposes a sync `engineVerify`. That's incompatible with\n * Vercel Edge / Cloudflare Workers / browser embedding (no `fs`,\n * no sync wasm load).\n *\n * This module loads the `wasm-pack --target web` artifact via the\n * async `__wbg_init` default export, then exposes the same typed\n * `engineVerifyEdge(input, ctx) → Promise<VerifyResult>` shape with\n * a small lazy-init wrapper. First call awaits initialisation;\n * subsequent calls resolve synchronously on the JS side (the\n * underlying wasm `verify` is sync).\n *\n * **Why this matters for the consolidation narrative.** Phase A\n * shipped Node-only. Without an edge build, the first Vercel-edge\n * or Cloudflare-Workers deployment after Phase D would hit the\n * same wasm-bindgen-on-edge wall the Sites-1 F3 workaround was\n * created to dodge — and someone would re-introduce the\n * inline-TS detector that Q10 ratified deleting. Shipping the\n * edge target alongside the Node target keeps Phase D's\n * deletion narrative durable.\n */\n\nimport type { AgentRequest, ContextSpec, VerifyResult } from './types';\n\n// The `--target web` artifact exports `init` (default, async) and the\n// `verify` function. We dynamic-import it to keep this module's top\n// level free of side effects — important for edge runtimes that\n// statically analyse for `fs` / `node:` imports at deploy time.\n\ntype VerifyFn = (input: unknown, ctx: unknown) => unknown;\ntype InitFn = (\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n) => Promise<unknown>;\n\nlet initialised: Promise<VerifyFn> | null = null;\n\n/**\n * Initialise the edge wasm module. Idempotent — subsequent calls\n * return the same in-flight or resolved promise. Host wrappers can\n * call this at startup to eagerly load the wasm and avoid first-\n * request latency, but it's not required: `engineVerifyEdge`\n * lazily initialises on first call.\n *\n * @param moduleOrPath Optional pre-fetched `WebAssembly.Module` or\n * a URL / Request the wasm-bindgen loader will\n * fetch. Defaults to the bundled artifact via\n * `import.meta.url`. Cloudflare Workers / Vercel\n * Edge typically pass a pre-bundled `Module`.\n */\nexport function initEngineEdge(\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n): Promise<void> {\n return ensureReady(moduleOrPath).then(() => undefined);\n}\n\nfunction ensureReady(\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n): Promise<VerifyFn> {\n if (initialised) return initialised;\n\n // Dynamic import keeps this module's top level free of side\n // effects — important for edge runtimes that statically analyse\n // imports at deploy time. The generated wasm-bindgen module\n // has no static `.d.ts` types we can rely on; cast at the\n // boundary.\n const pending = (async () => {\n const mod = (await import('../../wasm/kya-os-engine-web/kya_os_engine.js')) as unknown as {\n default: InitFn;\n verify: VerifyFn;\n };\n // wasm-bindgen's generated init accepts EITHER an undefined\n // (use bundled wasm via `import.meta.url`) OR a `{ module_or_path }`\n // object. Passing the raw value triggers a `console.warn` on\n // every startup (\"using deprecated parameters for the\n // initialization function; pass a single object instead\").\n // Wrap explicitly to avoid the spurious warning that would\n // otherwise hit every Cloudflare Workers / Vercel Edge boot.\n await mod.default(moduleOrPath !== undefined ? { module_or_path: moduleOrPath } : undefined);\n return mod.verify;\n })();\n\n // Cache the in-flight promise so concurrent callers join the\n // same init. On rejection, clear the cache so subsequent calls\n // (including a retry with valid input) can re-attempt; the\n // pre-fix behavior cached the rejection forever.\n initialised = pending;\n pending.catch(() => {\n if (initialised === pending) {\n initialised = null;\n }\n });\n return initialised;\n}\n\n/**\n * Edge-runtime async equivalent of `engineVerify`.\n *\n * Identical contract (typed `AgentRequest` + `ContextSpec` in,\n * typed `VerifyResult` out) — only the return type changes from\n * `VerifyResult` to `Promise<VerifyResult>` because the underlying\n * wasm artifact is loaded async on this target.\n *\n * @throws If `engineVerify` rejects the input (deserialisation\n * failure) or the engine returns a `VerifyError`. Verdicts\n * surface inside the returned `VerifyResult`, not as throws.\n */\nexport async function engineVerifyEdge(\n input: AgentRequest,\n ctx: ContextSpec\n): Promise<VerifyResult> {\n const verify = await ensureReady();\n return verify(input, ctx) as VerifyResult;\n}\n\n// Re-export every typed shape so edge consumers don't need a second\n// import line for the ABI types.\nexport type {\n AgentRequest,\n A2ARequest,\n A2PRequest,\n BlockReason,\n ChallengeParams,\n ContextSpec,\n Decision,\n DidDocument,\n EngineInfo,\n EnforcementMode,\n HttpSignedRequest,\n InstructPayload,\n KeyType,\n McpIPayload,\n McpIRequest,\n PlainHttpRequest,\n RedirectTarget,\n SuggestedAction,\n VerificationMethod,\n VerifyResult,\n} from './types';\n"]}
|
package/dist/engine-edge.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../wasm/kya-os-engine-web/kya_os_engine.js","../src/engine/edge.ts"],"names":["ptr","verify"],"mappings":"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","file":"engine-edge.mjs","sourcesContent":["let wasm;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n/**\n * Cross-boundary `verify` wrapper. The JS host calls `engine.verify(input,\n * ctxSpec)`; on success it gets a [`VerifyResult`] JSON object; on\n * infrastructure failure (or malformed input) it gets a thrown JS error\n * whose message names the failure mode.\n *\n * **Error semantics**:\n *\n * - Verification *verdicts* (Block/Challenge/etc.) surface inside the\n * returned `VerifyResult` — they are not thrown.\n * - Engine [`VerifyError`][crate::error::VerifyError] (resolver / cache /\n * reputation / policy infra failures) surface as thrown JS errors.\n * - Serde deserialisation failures (malformed JS input) surface as thrown\n * JS errors too, mirroring the typed-vs-thrown split.\n *\n * # JS signature\n *\n * ```ts\n * function verify(input: AgentRequest, ctx: ContextSpec): VerifyResult;\n * ```\n * @param {any} input_js\n * @param {any} ctx_js\n * @returns {any}\n */\nexport function verify(input_js, ctx_js) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.verify(retptr, addHeapObject(input_js), addHeapObject(ctx_js));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_e83987f665cf5504 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_Number_bb48ca12f395cd08 = function(arg0) {\n const ret = Number(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {\n const ret = String(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_bigint_get_as_i64_f3ebc5a755000afd = function(arg0, arg1) {\n const v = getObject(arg1);\n const ret = typeof(v) === 'bigint' ? v : undefined;\n getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68 = function(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763 = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_in_bb933bd9e1b3bc0f = function(arg0, arg1) {\n const ret = getObject(arg0) in getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_bigint_cb320707dcd35f0b = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'bigint';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_function_ee8a6c5833c90377 = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_object_c818261d21f283a4 = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_string_fbb76cb2940daafd = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_2d472862bd29a478 = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_eq_6b13ab83478b1c50 = function(arg0, arg1) {\n const ret = getObject(arg0) === getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147 = function(arg0, arg1) {\n const ret = getObject(arg0) == getObject(arg1);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_number_get_a20bf9b85341449d = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_string_get_e4f06c90489ad01b = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_b855445ff6a94295 = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_call_e762c39fa8ea36bf = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_done_2042aa2670fb1db1 = function(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n };\n imports.wbg.__wbg_entries_e171b586f8f6bdbf = function(arg0) {\n const ret = Object.entries(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_7bed016f185add81 = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_efcb449f58ec27c2 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_instanceof_ArrayBuffer_70beb1189ca63b38 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Map_8579b5e2ab5437c7 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Map;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Uint8Array_20c8e73002f7af98 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_isArray_96e0af9891d0945d = function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_isSafeInteger_d216eda7911dde36 = function(arg0) {\n const ret = Number.isSafeInteger(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_iterator_e5822695327a3c39 = function() {\n const ret = Symbol.iterator;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_length_69bca3cb64fc8748 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_length_cdd215e10d9dd507 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_new_1acc0b6eea89d040 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_5a79be3ab53b8aa5 = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_68651c719dcda04e = function() {\n const ret = new Map();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_e17d9f43105b08be = function() {\n const ret = new Array();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_next_020810e0ae8ebcb0 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_next_2c826fe5dfec6b6a = function(arg0) {\n const ret = getObject(arg0).next;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_prototypesetcall_2a6620b6922694b2 = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n };\n imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n };\n imports.wbg.__wbg_set_907fb406c34a251d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_c213c871859d6500 = function(arg0, arg1, arg2) {\n getObject(arg0)[arg1 >>> 0] = takeObject(arg2);\n };\n imports.wbg.__wbg_value_692627309814bb8c = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_9ae0607507abb057 = function(arg0) {\n // Cast intrinsic for `I64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('kya_os_engine_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/**\n * `kya-os-engine` WASM bridge for edge runtimes — Edge-WASM-1.\n *\n * The Node target (`./index.ts`) uses `fs.readFileSync` at module\n * load and exposes a sync `engineVerify`. That's incompatible with\n * Vercel Edge / Cloudflare Workers / browser embedding (no `fs`,\n * no sync wasm load).\n *\n * This module loads the `wasm-pack --target web` artifact via the\n * async `__wbg_init` default export, then exposes the same typed\n * `engineVerifyEdge(input, ctx) → Promise<VerifyResult>` shape with\n * a small lazy-init wrapper. First call awaits initialisation;\n * subsequent calls resolve synchronously on the JS side (the\n * underlying wasm `verify` is sync).\n *\n * **Why this matters for the consolidation narrative.** Phase A\n * shipped Node-only. Without an edge build, the first Vercel-edge\n * or Cloudflare-Workers deployment after Phase D would hit the\n * same wasm-bindgen-on-edge wall the Sites-1 F3 workaround was\n * created to dodge — and someone would re-introduce the\n * inline-TS detector that Q10 ratified deleting. Shipping the\n * edge target alongside the Node target keeps Phase D's\n * deletion narrative durable.\n */\n\nimport type { AgentRequest, ContextSpec, VerifyResult } from './types';\n\n// The `--target web` artifact exports `init` (default, async) and the\n// `verify` function. We dynamic-import it to keep this module's top\n// level free of side effects — important for edge runtimes that\n// statically analyse for `fs` / `node:` imports at deploy time.\n\ntype VerifyFn = (input: unknown, ctx: unknown) => unknown;\ntype InitFn = (\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n) => Promise<unknown>;\n\nlet initialised: Promise<VerifyFn> | null = null;\n\n/**\n * Initialise the edge wasm module. Idempotent — subsequent calls\n * return the same in-flight or resolved promise. Host wrappers can\n * call this at startup to eagerly load the wasm and avoid first-\n * request latency, but it's not required: `engineVerifyEdge`\n * lazily initialises on first call.\n *\n * @param moduleOrPath Optional pre-fetched `WebAssembly.Module` or\n * a URL / Request the wasm-bindgen loader will\n * fetch. Defaults to the bundled artifact via\n * `import.meta.url`. Cloudflare Workers / Vercel\n * Edge typically pass a pre-bundled `Module`.\n */\nexport function initEngineEdge(\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n): Promise<void> {\n return ensureReady(moduleOrPath).then(() => undefined);\n}\n\nfunction ensureReady(\n moduleOrPath?: WebAssembly.Module | URL | string | Request | BufferSource\n): Promise<VerifyFn> {\n if (initialised) return initialised;\n\n // Dynamic import keeps this module's top level free of side\n // effects — important for edge runtimes that statically analyse\n // imports at deploy time. The generated wasm-bindgen module\n // has no static `.d.ts` types we can rely on; cast at the\n // boundary.\n const pending = (async () => {\n const mod = (await import('../../wasm/kya-os-engine-web/kya_os_engine.js')) as unknown as {\n default: InitFn;\n verify: VerifyFn;\n };\n // wasm-bindgen's generated init accepts EITHER an undefined\n // (use bundled wasm via `import.meta.url`) OR a `{ module_or_path }`\n // object. Passing the raw value triggers a `console.warn` on\n // every startup (\"using deprecated parameters for the\n // initialization function; pass a single object instead\").\n // Wrap explicitly to avoid the spurious warning that would\n // otherwise hit every Cloudflare Workers / Vercel Edge boot.\n await mod.default(moduleOrPath !== undefined ? { module_or_path: moduleOrPath } : undefined);\n return mod.verify;\n })();\n\n // Cache the in-flight promise so concurrent callers join the\n // same init. On rejection, clear the cache so subsequent calls\n // (including a retry with valid input) can re-attempt; the\n // pre-fix behavior cached the rejection forever.\n initialised = pending;\n pending.catch(() => {\n if (initialised === pending) {\n initialised = null;\n }\n });\n return initialised;\n}\n\n/**\n * Edge-runtime async equivalent of `engineVerify`.\n *\n * Identical contract (typed `AgentRequest` + `ContextSpec` in,\n * typed `VerifyResult` out) — only the return type changes from\n * `VerifyResult` to `Promise<VerifyResult>` because the underlying\n * wasm artifact is loaded async on this target.\n *\n * @throws If `engineVerify` rejects the input (deserialisation\n * failure) or the engine returns a `VerifyError`. Verdicts\n * surface inside the returned `VerifyResult`, not as throws.\n */\nexport async function engineVerifyEdge(\n input: AgentRequest,\n ctx: ContextSpec\n): Promise<VerifyResult> {\n const verify = await ensureReady();\n return verify(input, ctx) as VerifyResult;\n}\n\n// Re-export every typed shape so edge consumers don't need a second\n// import line for the ABI types.\nexport type {\n AgentRequest,\n A2ARequest,\n A2PRequest,\n BlockReason,\n ChallengeParams,\n ContextSpec,\n Decision,\n DidDocument,\n EngineInfo,\n EnforcementMode,\n HttpSignedRequest,\n InstructPayload,\n KeyType,\n McpIPayload,\n McpIRequest,\n PlainHttpRequest,\n RedirectTarget,\n SuggestedAction,\n VerificationMethod,\n VerifyResult,\n} from './types';\n"]}
|
package/dist/engine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/engine/index.ts"],"names":[],"mappings":";;;AAoCO,SAAS,YAAA,CAAa,OAAqB,GAAA,EAAgC;AAChF,EAAA,MAAM,MAAA,GAAS,CAAA,MAAA,EAAW,KAAA,EAAO,GAAG,CAAA;AACpC,EAAA,OAAO,MAAA;AACT","file":"engine.js","sourcesContent":["/**\n * `kya-os-engine` WASM bridge — E-1 (#2486 follow-up).\n *\n * Loads the Rust `kya-os-engine` WASM artifact and surfaces a typed\n * `engineVerify(input, ctx)` wrapper around its single `verify` export.\n *\n * The engine is **synchronous** by contract. Host wrappers pre-fetch\n * every async dependency (DID document, status list, reputation,\n * tenant policy) and ship the results as a plain-data\n * [`ContextSpec`] (see `./types`). The WASM glue on the Rust side\n * builds in-memory lookup-table adapters that satisfy the engine's\n * five sync DI traits — no JS callbacks cross the boundary.\n *\n * Subsequent E-2 / E-3 phases consume this module to verify HTTP\n * requests inside the Next.js + Express middlewares.\n */\n\nimport type { AgentRequest, ContextSpec, VerifyResult } from './types';\n\n// wasm-bindgen ships a Node.js entry that calls\n// `fs.readFileSync(__dirname + '/<name>_bg.wasm')` synchronously when\n// the module is imported. The auto-generated `.d.ts` types the export\n// loosely (`any`); we re-type at this wrapper boundary so callers see\n// the contract from `./types`.\nimport { verify as wasmVerify } from '../../wasm/kya-os-engine/kya_os_engine.js';\n\n/**\n * Verify an AgentRequest synchronously against a pre-fetched\n * [`ContextSpec`].\n *\n * @throws {Error} if the WASM glue rejects the input (deserialisation\n * failure) or the engine returns a `VerifyError` (resolver /\n * status-list / reputation / policy infrastructure failure). Engine\n * *verdicts* (Block / Challenge / etc.) DO NOT throw — they surface\n * inside the returned [`VerifyResult`].\n */\nexport function engineVerify(input: AgentRequest, ctx: ContextSpec): VerifyResult {\n const result = wasmVerify(input, ctx);\n return result as VerifyResult;\n}\n\nexport type {\n AgentRequest,\n A2ARequest,\n A2PRequest,\n BlockReason,\n ChallengeParams,\n ContextSpec,\n Decision,\n DidDocument,\n EngineInfo,\n EnforcementMode,\n HttpSignedRequest,\n InstructPayload,\n KeyType,\n McpIPayload,\n McpIRequest,\n PlainHttpRequest,\n RedirectTarget,\n SuggestedAction,\n VerificationMethod,\n VerifyResult,\n} from './types';\n"]}
|
package/dist/engine.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/engine/index.ts"],"names":[],"mappings":";AAoCO,SAAS,YAAA,CAAa,OAAqB,GAAA,EAAgC;AAChF,EAAA,MAAM,MAAA,GAAS,CAAA,MAAA,EAAW,KAAA,EAAO,GAAG,CAAA;AACpC,EAAA,OAAO,MAAA;AACT","file":"engine.mjs","sourcesContent":["/**\n * `kya-os-engine` WASM bridge — E-1 (#2486 follow-up).\n *\n * Loads the Rust `kya-os-engine` WASM artifact and surfaces a typed\n * `engineVerify(input, ctx)` wrapper around its single `verify` export.\n *\n * The engine is **synchronous** by contract. Host wrappers pre-fetch\n * every async dependency (DID document, status list, reputation,\n * tenant policy) and ship the results as a plain-data\n * [`ContextSpec`] (see `./types`). The WASM glue on the Rust side\n * builds in-memory lookup-table adapters that satisfy the engine's\n * five sync DI traits — no JS callbacks cross the boundary.\n *\n * Subsequent E-2 / E-3 phases consume this module to verify HTTP\n * requests inside the Next.js + Express middlewares.\n */\n\nimport type { AgentRequest, ContextSpec, VerifyResult } from './types';\n\n// wasm-bindgen ships a Node.js entry that calls\n// `fs.readFileSync(__dirname + '/<name>_bg.wasm')` synchronously when\n// the module is imported. The auto-generated `.d.ts` types the export\n// loosely (`any`); we re-type at this wrapper boundary so callers see\n// the contract from `./types`.\nimport { verify as wasmVerify } from '../../wasm/kya-os-engine/kya_os_engine.js';\n\n/**\n * Verify an AgentRequest synchronously against a pre-fetched\n * [`ContextSpec`].\n *\n * @throws {Error} if the WASM glue rejects the input (deserialisation\n * failure) or the engine returns a `VerifyError` (resolver /\n * status-list / reputation / policy infrastructure failure). Engine\n * *verdicts* (Block / Challenge / etc.) DO NOT throw — they surface\n * inside the returned [`VerifyResult`].\n */\nexport function engineVerify(input: AgentRequest, ctx: ContextSpec): VerifyResult {\n const result = wasmVerify(input, ctx);\n return result as VerifyResult;\n}\n\nexport type {\n AgentRequest,\n A2ARequest,\n A2PRequest,\n BlockReason,\n ChallengeParams,\n ContextSpec,\n Decision,\n DidDocument,\n EngineInfo,\n EnforcementMode,\n HttpSignedRequest,\n InstructPayload,\n KeyType,\n McpIPayload,\n McpIRequest,\n PlainHttpRequest,\n RedirectTarget,\n SuggestedAction,\n VerificationMethod,\n VerifyResult,\n} from './types';\n"]}
|