@kya-os/checkpoint-wasm-runtime 1.0.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 +58 -0
- package/dist/adapters.d.mts +257 -0
- package/dist/adapters.d.ts +257 -0
- package/dist/adapters.js +603 -0
- package/dist/adapters.js.map +1 -0
- package/dist/adapters.mjs +586 -0
- package/dist/adapters.mjs.map +1 -0
- package/dist/dynamic-loader-cS-pUisw.d.ts +65 -0
- package/dist/dynamic-loader-qGJacfEC.d.mts +65 -0
- package/dist/edge.d.mts +22 -0
- package/dist/edge.d.ts +22 -0
- package/dist/edge.js +1403 -0
- package/dist/edge.js.map +1 -0
- package/dist/edge.mjs +1391 -0
- package/dist/edge.mjs.map +1 -0
- package/dist/engine-edge.d.mts +58 -0
- package/dist/engine-edge.d.ts +58 -0
- package/dist/engine-edge.js +537 -0
- package/dist/engine-edge.js.map +1 -0
- package/dist/engine-edge.mjs +533 -0
- package/dist/engine-edge.mjs.map +1 -0
- package/dist/engine.d.mts +34 -0
- package/dist/engine.d.ts +34 -0
- package/dist/engine.js +11 -0
- package/dist/engine.js.map +1 -0
- package/dist/engine.mjs +9 -0
- package/dist/engine.mjs.map +1 -0
- package/dist/index.d.mts +58 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.js +1652 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1637 -0
- package/dist/index.mjs.map +1 -0
- package/dist/node.d.mts +26 -0
- package/dist/node.d.ts +26 -0
- package/dist/node.js +972 -0
- package/dist/node.js.map +1 -0
- package/dist/node.mjs +960 -0
- package/dist/node.mjs.map +1 -0
- package/dist/orchestrator-edge.d.mts +243 -0
- package/dist/orchestrator-edge.d.ts +243 -0
- package/dist/orchestrator-edge.js +1076 -0
- package/dist/orchestrator-edge.js.map +1 -0
- package/dist/orchestrator-edge.mjs +1065 -0
- package/dist/orchestrator-edge.mjs.map +1 -0
- package/dist/orchestrator.d.mts +50 -0
- package/dist/orchestrator.d.ts +50 -0
- package/dist/orchestrator.js +1185 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/orchestrator.mjs +1172 -0
- package/dist/orchestrator.mjs.map +1 -0
- package/dist/rules-detector-DjbTJ1-Q.d.mts +470 -0
- package/dist/rules-detector-DjbTJ1-Q.d.ts +470 -0
- package/dist/static-loader-C1hUlksK.d.ts +72 -0
- package/dist/static-loader-Ds4iNw7c.d.mts +72 -0
- package/dist/types-D0j85fF0.d.mts +163 -0
- package/dist/types-D0j85fF0.d.ts +163 -0
- package/package.json +141 -0
- package/wasm/agentshield_wasm.d.ts +485 -0
- package/wasm/agentshield_wasm.js +1551 -0
- package/wasm/agentshield_wasm_bg.wasm +0 -0
- package/wasm/agentshield_wasm_bg.wasm.d.ts +97 -0
- package/wasm/kya-os-engine/kya_os_engine.d.ts +24 -0
- package/wasm/kya-os-engine/kya_os_engine.js +517 -0
- package/wasm/kya-os-engine/kya_os_engine_bg.wasm +0 -0
- package/wasm/kya-os-engine/kya_os_engine_bg.wasm.d.ts +8 -0
- package/wasm/kya-os-engine-web/kya_os_engine.d.ts +56 -0
- package/wasm/kya-os-engine-web/kya_os_engine.js +574 -0
- package/wasm/kya-os-engine-web/kya_os_engine_bg.wasm +0 -0
- package/wasm/kya-os-engine-web/kya_os_engine_bg.wasm.d.ts +8 -0
- package/wasm/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../wasm/kya-os-engine-web/kya_os_engine.js","../src/engine/adapters/outbound-url-policy.ts","../src/engine/index.ts","../src/engine/adapters/util.ts","../src/engine/orchestrator/build-agent-request.ts","../src/engine/orchestrator/verify-request.ts","../src/engine/edge.ts","../src/engine/orchestrator/render-decision.ts","../src/engine/orchestrator/verify-request-edge.ts"],"names":["ptr","verifyRequest","verify","DEFAULT_REPUTATION_BASELINE","defaultLogger","verifyRequestEdge","blockWithParseError","fetchCredentialStatus","isDidResolverError"],"mappings":"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","file":"orchestrator.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 * Shared egress guard for verifier-owned outbound fetches.\n *\n * MCP-I payloads are attacker controlled until the signature verifies. Any\n * host-side fetch derived from that payload must reject obvious local/private\n * targets before invoking `fetch`.\n */\n\nconst BLOCKED_HOSTNAMES = new Set(['localhost', 'metadata', 'metadata.google.internal']);\n\nexport class UnsafeOutboundUrl extends Error {\n readonly kind = 'UnsafeOutboundUrl';\n}\n\nexport function assertSafeHttpsUrl(rawUrl: string, label = 'outbound URL'): string {\n let parsed: URL;\n try {\n parsed = new URL(rawUrl);\n } catch {\n throw new UnsafeOutboundUrl(`${label} must be a valid URL: ${rawUrl}`);\n }\n\n if (parsed.protocol !== 'https:') {\n throw new UnsafeOutboundUrl(`${label} must use https: ${rawUrl}`);\n }\n if (parsed.username || parsed.password) {\n throw new UnsafeOutboundUrl(`${label} must not contain credentials: ${rawUrl}`);\n }\n\n const hostname = normalizeHostname(parsed.hostname);\n if (!hostname || isBlockedHostname(hostname)) {\n throw new UnsafeOutboundUrl(`${label} targets a local or private host: ${rawUrl}`);\n }\n\n return rawUrl;\n}\n\nfunction normalizeHostname(hostname: string): string {\n let normalized = hostname.trim().toLowerCase();\n if (normalized.startsWith('[') && normalized.endsWith(']')) {\n normalized = normalized.slice(1, -1);\n }\n while (normalized.endsWith('.')) {\n normalized = normalized.slice(0, -1);\n }\n return normalized;\n}\n\nfunction isBlockedHostname(hostname: string): boolean {\n if (BLOCKED_HOSTNAMES.has(hostname) || hostname.endsWith('.localhost')) {\n return true;\n }\n\n const ipv4 = parseIpv4(hostname);\n if (ipv4) {\n return isBlockedIpv4(ipv4);\n }\n\n return isBlockedIpv6(hostname);\n}\n\nfunction parseIpv4(hostname: string): [number, number, number, number] | null {\n const parts = hostname.split('.');\n if (parts.length !== 4) return null;\n\n const octets = parts.map((part) => {\n if (!/^\\d{1,3}$/.test(part)) return Number.NaN;\n const value = Number(part);\n return value >= 0 && value <= 255 ? value : Number.NaN;\n });\n\n if (octets.some(Number.isNaN)) return null;\n return octets as [number, number, number, number];\n}\n\nfunction isBlockedIpv4([a, b]: [number, number, number, number]): boolean {\n return (\n a === 0 ||\n a === 10 ||\n a === 127 ||\n (a === 100 && b >= 64 && b <= 127) ||\n (a === 169 && b === 254) ||\n (a === 172 && b >= 16 && b <= 31) ||\n (a === 192 && b === 168) ||\n (a === 198 && (b === 18 || b === 19)) ||\n a >= 224\n );\n}\n\nfunction isBlockedIpv6(hostname: string): boolean {\n if (!hostname.includes(':')) return false;\n\n const ipv4Mapped = hostname.match(/(?:^|:)ffff:(\\d{1,3}(?:\\.\\d{1,3}){3})$/);\n if (ipv4Mapped) {\n const ipv4 = parseIpv4(ipv4Mapped[1]);\n return ipv4 ? isBlockedIpv4(ipv4) : true;\n }\n\n if (hostname === '::' || hostname === '::1' || hostname === '0:0:0:0:0:0:0:1') {\n return true;\n }\n\n const firstSegment = Number.parseInt(hostname.split(':')[0] || '0', 16);\n if (Number.isNaN(firstSegment)) return true;\n\n return (\n (firstSegment & 0xfe00) === 0xfc00 || // unique local fc00::/7\n (firstSegment & 0xffc0) === 0xfe80 || // link-local fe80::/10\n (firstSegment & 0xff00) === 0xff00 // multicast ff00::/8\n );\n}\n","/**\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","/**\n * Shared utilities for the Phase B adapters.\n *\n * Anything used by more than one adapter belongs here so a future\n * bug fix touches one site, not N.\n */\n\n/**\n * base64url decode without external deps. Pads if necessary,\n * substitutes URL-safe chars, returns the raw bytes as `Uint8Array`.\n * RFC 4648 § 5 — characters `-` and `_` substitute for `+` and `/`;\n * padding `=` is optional and stripped in URL contexts.\n */\nexport function base64UrlDecode(input: string): Uint8Array {\n const padded = input.replace(/-/g, '+').replace(/_/g, '/');\n const padding = padded.length % 4 === 0 ? '' : '='.repeat(4 - (padded.length % 4));\n return new Uint8Array(Buffer.from(padded + padding, 'base64'));\n}\n","/**\n * HTTP-to-`AgentRequest` translator — Phase C.1.\n *\n * Detects which engine protocol the request belongs to and builds\n * the typed `AgentRequest` the WASM consumes. Conservative\n * detection: never escalates an ambiguous request into a higher\n * verification tier. Anonymous PlainHttp is the default.\n *\n * **What this layer parses and what it doesn't.** It parses *only\n * what's needed to drive conditional pre-fetch* — header presence,\n * the MCP-I envelope's payload segment (to extract `iss` + `sub` +\n * optional credentialStatus URL). It does **not** verify\n * signatures, decode VC chains for revocation bits, or evaluate\n * scope. Those live in the engine (H-1's parser + Stages 2-5).\n *\n * **Buffer-portability note.** This module uses `Buffer.from(...)` and\n * `Buffer.isBuffer(...)` at multiple call sites (the JWS preflight\n * `hasMalformedJwsBody`, both `tryBuildMcpIFromBody` variants, the\n * legacy-header reconstitution path, and `bodyAsBytes`). All of these\n * assume the Node `Buffer` global is available — provided natively by\n * the Node runtime, polyfilled on Vercel Edge, and gated behind\n * `nodejs_compat` on Cloudflare Workers. Bare-Edge and pure-browser\n * embedders would need a `Buffer` polyfill or a refactor to\n * `TextEncoder` / `Uint8Array.from`. Tracked as a follow-up since\n * Phase D's Vercel Node + Vercel Edge targets are both covered today.\n */\n\nimport { base64UrlDecode } from '../adapters/util';\nimport type {\n AgentRequest,\n HttpSignedRequest,\n McpIPayload,\n McpIRequest,\n PlainHttpRequest,\n} from '../types';\n\nimport type { IncomingHttpLike } from './types';\n\n// -----------------------------------------------------------------------------\n// Public surface.\n// -----------------------------------------------------------------------------\n\nexport interface BuildAgentRequestOpts {\n /** See `VerifyRequestOpts.legacyEnvelopeFallback`. */\n legacyEnvelopeFallback?: boolean;\n}\n\n/**\n * Translate an HTTP-like request into the engine's `AgentRequest`.\n *\n * Detection order (conservative — never escalate ambiguous input):\n * 1. MCP-I L2 detached proof in `_meta.proof.jws` (spec form).\n * 2. (Legacy, opt-in) MCP-I in `KYA-Delegation` header\n * (Envelope-1 #2537 transition window only).\n * 3. RFC 9421 HTTP Message Signatures (`Signature-Input` header).\n * 4. PlainHttp (default — anonymous traffic).\n */\nexport function buildAgentRequest(\n req: IncomingHttpLike,\n opts: BuildAgentRequestOpts = {}\n): AgentRequest {\n // 1. MCP-I L2 detached proof — spec form, body's `_meta.proof.jws`.\n const mcpI = tryBuildMcpIFromBody(req);\n if (mcpI) {\n return { protocol: 'McpI', request: mcpI };\n }\n\n // 2. MCP-I legacy header (Envelope-1 transition only).\n if (opts.legacyEnvelopeFallback) {\n const legacyMcpI = tryBuildMcpIFromLegacyHeader(req);\n if (legacyMcpI) {\n return { protocol: 'McpI', request: legacyMcpI };\n }\n }\n\n // 3. RFC 9421 HTTP Message Signatures.\n if (getHeader(req, 'signature-input')) {\n return { protocol: 'HttpSigned', request: buildHttpSigned(req) };\n }\n\n // 4. Default — anonymous PlainHttp.\n return { protocol: 'PlainHttp', request: buildPlainHttp(req) };\n}\n\n/**\n * Preflight check — does the request body carry a `_meta.proof.jws`\n * string that `parseJwsPayloadStruct` cannot project into a typed\n * `McpIPayload`?\n *\n * The caller declared intent (an MCP-I envelope) by including the\n * JWS field; structural failure to extract the payload means the\n * envelope is malformed, not absent. Without this preflight, the\n * orchestrator would silently fall through to PlainHttp — pre-#2560\n * that happened to also Block (engine returned `Block(ParseError)`\n * for every PlainHttp), so the regression was invisible; post-#2560\n * the engine's Stage 1 + stub policy returns `Permit` for anonymous\n * PlainHttp and tampered envelopes would be silently accepted.\n *\n * Returns `true` when the orchestrator should synthesize\n * `Block(ParseError)` BEFORE calling `buildAgentRequest`.\n */\nexport function hasMalformedJwsBody(req: IncomingHttpLike): boolean {\n const parsed = parseBodyAsObject(req.body);\n if (!parsed || typeof parsed !== 'object') return false;\n const meta = (parsed as Record<string, unknown>)._meta;\n if (!meta || typeof meta !== 'object') return false;\n const proof = (meta as Record<string, unknown>).proof;\n if (!proof || typeof proof !== 'object') return false;\n const jws = (proof as Record<string, unknown>).jws;\n if (typeof jws !== 'string' || jws.length === 0) return false;\n const raw = Array.from(Buffer.from(jws, 'utf8'));\n return parseJwsPayloadStruct(raw) === null;\n}\n\n// -----------------------------------------------------------------------------\n// Identifier extractors — drive conditional pre-fetch in Phase C.2.\n// -----------------------------------------------------------------------------\n\n/**\n * Issuer DID — Stage 1 (identity resolution) targets this. `null`\n * for PlainHttp (anonymous → no DID to resolve).\n */\nexport function extractIssuer(request: AgentRequest): string | null {\n if (request.protocol === 'McpI') return request.request.payload.iss || null;\n return null;\n}\n\n/**\n * Agent DID — used by ReputationOracle. Defaults to `payload.sub`\n * for MCP-I (subject = the agent the proof is *about*).\n */\nexport function extractAgentDid(request: AgentRequest): string | null {\n if (request.protocol === 'McpI') return request.request.payload.sub || null;\n return null;\n}\n\n/**\n * Status-list URL for revocation pre-fetch. Pulled from the JWS\n * payload's `vc.credentialStatus.id` (W3C VC Data Model 1.1).\n * `null` when the envelope is L1 (no VC chain) — Stage 3 will skip.\n */\nexport function extractCredentialStatusUrl(request: AgentRequest): string | null {\n if (request.protocol !== 'McpI') return null;\n // Re-parse the JWS payload as raw JSON to reach the `vc` claim;\n // the typed `McpIPayload` deliberately omits it.\n const raw = decodeJwsPayloadJson(request.request.raw);\n if (!raw) return null;\n const vc = (raw as Record<string, unknown>).vc;\n if (!vc || typeof vc !== 'object') return null;\n const credentialStatus = (vc as Record<string, unknown>).credentialStatus;\n if (!credentialStatus || typeof credentialStatus !== 'object') return null;\n const id = (credentialStatus as Record<string, unknown>).id;\n return typeof id === 'string' ? id : null;\n}\n\n// -----------------------------------------------------------------------------\n// MCP-I — spec form (`_meta.proof.jws`).\n// -----------------------------------------------------------------------------\n\nfunction tryBuildMcpIFromBody(req: IncomingHttpLike): McpIRequest | null {\n const parsed = parseBodyAsObject(req.body);\n if (!parsed) return null;\n const meta = (parsed as Record<string, unknown>)._meta;\n if (!meta || typeof meta !== 'object') return null;\n const proof = (meta as Record<string, unknown>).proof;\n if (!proof || typeof proof !== 'object') return null;\n const jws = (proof as Record<string, unknown>).jws;\n if (typeof jws !== 'string' || jws.length === 0) return null;\n\n const raw = Array.from(Buffer.from(jws, 'utf8'));\n const payload = parseJwsPayloadStruct(raw);\n if (!payload) return null;\n return { raw, payload };\n}\n\nfunction parseBodyAsObject(body: unknown): unknown {\n if (!body) return null;\n // Buffer check MUST come before the generic `typeof === 'object'`\n // branch — `typeof <Buffer> === 'object'` in JavaScript, so the\n // naive ordering would return the raw Buffer instance instead of\n // a parsed object, and `tryBuildMcpIFromBody` would silently fail\n // to find `_meta.proof.jws` (which Express middleware passing\n // `req.body` as a Buffer exercises). Bugbot caught the ordering\n // on the initial Phase C drop.\n if (Buffer.isBuffer(body)) {\n try {\n return JSON.parse(body.toString('utf8'));\n } catch {\n return null;\n }\n }\n if (typeof body === 'string') {\n try {\n return JSON.parse(body);\n } catch {\n return null;\n }\n }\n if (typeof body === 'object') return body;\n return null;\n}\n\n// -----------------------------------------------------------------------------\n// MCP-I — legacy header form (Envelope-1 transition only).\n// -----------------------------------------------------------------------------\n\n/**\n * Pre-Envelope-1, the TS bouncer ships `{protected,payload,signature}`\n * JSON in the `KYA-Delegation` header. Phase 1 reconstructs the\n * compact JWS form (`<protected>.<payload>.<signature>`) so the\n * engine's parser can consume it uniformly.\n *\n * **This is a transition shim.** Envelope-1 (#2537) aligns the\n * bouncer with the spec form; once that ships and customer bouncers\n * re-deploy, this function gets deleted along with the\n * `legacyEnvelopeFallback` flag.\n */\nfunction tryBuildMcpIFromLegacyHeader(req: IncomingHttpLike): McpIRequest | null {\n const header = getHeader(req, 'kya-delegation');\n if (!header) return null;\n let parsed: unknown;\n try {\n parsed = JSON.parse(header);\n } catch {\n return null;\n }\n if (!parsed || typeof parsed !== 'object') return null;\n const obj = parsed as Record<string, unknown>;\n const protectedSeg = obj.protected;\n const payloadSeg = obj.payload;\n const signatureSeg = obj.signature;\n if (\n typeof protectedSeg !== 'string' ||\n typeof payloadSeg !== 'string' ||\n typeof signatureSeg !== 'string'\n ) {\n return null;\n }\n // Reconstitute the compact JWS form `<header>.<payload>.<signature>`.\n const compact = `${protectedSeg}.${payloadSeg}.${signatureSeg}`;\n const raw = Array.from(Buffer.from(compact, 'utf8'));\n const payload = parseJwsPayloadStruct(raw);\n if (!payload) return null;\n return { raw, payload };\n}\n\n// -----------------------------------------------------------------------------\n// JWS payload extraction — just enough to populate McpIRequest.payload.\n// -----------------------------------------------------------------------------\n\n/**\n * Decode the payload segment of a JWS-compact byte string into the\n * typed `McpIPayload` shape. **Does not verify the signature.** The\n * engine does that (H-1's `verify_mcp_i` Stage 2); this layer just\n * extracts the struct so the engine's bare-vs-signed cross-check\n * has something to compare against.\n *\n * Returns `null` on any structural failure — the orchestrator\n * treats that as \"not a parseable MCP-I envelope\" and falls\n * through to the next detection branch.\n */\nfunction parseJwsPayloadStruct(rawBytes: readonly number[]): McpIPayload | null {\n const json = decodeJwsPayloadJson(rawBytes);\n if (!json || typeof json !== 'object') return null;\n return projectMcpIPayload(json as Record<string, unknown>);\n}\n\n/**\n * Decode the payload segment of a JWS-compact byte string into raw\n * JSON. Returns `null` on any failure (not 3 segments / not valid\n * base64url / not valid JSON).\n */\nfunction decodeJwsPayloadJson(rawBytes: readonly number[]): unknown {\n const text = Buffer.from(rawBytes).toString('utf8');\n const segments = text.split('.');\n if (segments.length !== 3) return null;\n let decoded: Uint8Array;\n try {\n decoded = base64UrlDecode(segments[1]);\n } catch {\n return null;\n }\n try {\n return JSON.parse(Buffer.from(decoded).toString('utf8'));\n } catch {\n return null;\n }\n}\n\nfunction projectMcpIPayload(raw: Record<string, unknown>): McpIPayload | null {\n // Defensive: require all eight fields. Returning `null` here\n // signals \"payload extraction failed\". The orchestrator-level\n // `hasMalformedJwsBody` preflight (see verify-request.ts /\n // verify-request-edge.ts) catches that signal when the body\n // carried a JWS string and synthesizes `Block(ParseError)`\n // — keeping a malformed envelope from silently degrading to\n // PlainHttp. We still bail rather than synthesizing a partial\n // payload here, because letting an incomplete payload through\n // would mask bare-vs-signed mismatches at engine Stage 2.\n const aud = raw.aud;\n const iss = raw.iss;\n const sub = raw.sub;\n const nonce = raw.nonce;\n const sessionId = raw.sessionId;\n const ts = raw.ts;\n const requestHash = raw.requestHash;\n const responseHash = raw.responseHash;\n if (\n typeof aud !== 'string' ||\n typeof iss !== 'string' ||\n typeof sub !== 'string' ||\n typeof nonce !== 'string' ||\n typeof sessionId !== 'string' ||\n typeof ts !== 'number' ||\n typeof requestHash !== 'string' ||\n typeof responseHash !== 'string'\n ) {\n return null;\n }\n return { aud, iss, sub, nonce, sessionId, ts, requestHash, responseHash };\n}\n\n// -----------------------------------------------------------------------------\n// HTTP-Signed (RFC 9421).\n// -----------------------------------------------------------------------------\n\nfunction buildHttpSigned(req: IncomingHttpLike): HttpSignedRequest {\n return {\n raw: bodyAsBytes(req.body),\n method: req.method,\n path: req.url,\n headers: flattenHeaders(req.headers),\n };\n}\n\n// -----------------------------------------------------------------------------\n// PlainHttp.\n// -----------------------------------------------------------------------------\n\nfunction buildPlainHttp(req: IncomingHttpLike): PlainHttpRequest {\n return {\n raw: bodyAsBytes(req.body),\n method: req.method,\n path: req.url,\n headers: flattenHeaders(req.headers),\n userAgent: getHeader(req, 'user-agent') ?? null,\n remoteIp: req.remoteAddress ?? null,\n };\n}\n\n// -----------------------------------------------------------------------------\n// Helpers — header / body normalisation.\n// -----------------------------------------------------------------------------\n\nfunction getHeader(req: IncomingHttpLike, name: string): string | null {\n const lowered = name.toLowerCase();\n for (const [key, value] of Object.entries(req.headers)) {\n if (key.toLowerCase() !== lowered) continue;\n if (Array.isArray(value)) return value[0] ?? null;\n if (typeof value === 'string') return value;\n }\n return null;\n}\n\nfunction flattenHeaders(\n headers: Record<string, string | string[] | undefined>\n): Array<[string, string]> {\n const out: Array<[string, string]> = [];\n for (const [key, value] of Object.entries(headers)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n for (const v of value) out.push([key, v]);\n } else {\n out.push([key, value]);\n }\n }\n return out;\n}\n\nfunction bodyAsBytes(body: unknown): number[] {\n if (!body) return [];\n if (Buffer.isBuffer(body)) return Array.from(body);\n if (typeof body === 'string') return Array.from(Buffer.from(body, 'utf8'));\n if (typeof body === 'object') return Array.from(Buffer.from(JSON.stringify(body), 'utf8'));\n return [];\n}\n","/**\n * `verifyRequest` async orchestrator — Phase C.2.\n *\n * The single entry point Phase D (Next.js) and Phase E (Express)\n * compose. Async pre-fetch on the host side; one sync `engineVerify`\n * call across the WASM boundary. Sync-engine / async-host invariant\n * (H-1 § 4.5) preserved.\n *\n * Orchestration:\n * 1. Translate HTTP → AgentRequest (no engine I/O).\n * 2. Extract identifiers (issuer DID, agent DID, status-list URL).\n * 3. Conditional Promise.all over the *applicable* adapters —\n * anonymous PlainHttp gets no network calls; signed MCP-I gets\n * DID + status-list + reputation in parallel.\n * 4. Translate adapter errors to verdicts where the architect-\n * ratified posture says so:\n * - DidResolver throw → Block(ParseError) verdict\n * - StatusListCache throw → re-throw (host renders 503)\n * - Reputation throw → impossible (Phase B § 4.5)\n * 5. Compute the tenant Decision via PolicyEvaluator over the\n * resolved reputation.\n * 6. Build ContextSpec, call `engineVerify`, return VerifyResult.\n *\n * Cedar-1 forward-compat: step (5) is the only place the\n * PolicyEvaluator interface gets exercised. When Cedar-1 swaps\n * implementations, this orchestrator does not change.\n */\n\nimport type {\n DidNotFound,\n DidResolverError,\n DidResolverTimeout,\n MalformedDid,\n UnsupportedDidMethod,\n UnsupportedKeyType,\n} from '../adapters/did-resolver';\nimport type { StatusListCacheAdapter } from '../adapters/status-list-cache';\nimport { assertSafeHttpsUrl, UnsafeOutboundUrl } from '../adapters/outbound-url-policy';\nimport { engineVerify } from '../index';\nimport type { ContextSpec, DidDocument, EnforcementMode, VerifyResult } from '../types';\n\nimport {\n buildAgentRequest,\n extractAgentDid,\n extractCredentialStatusUrl,\n extractIssuer,\n hasMalformedJwsBody,\n} from './build-agent-request';\nimport type { IncomingHttpLike, VerifyRequestOpts } from './types';\n\nconst DEFAULT_REPUTATION_BASELINE = 1.0;\n\n/**\n * Factory — constructs a `verifyRequest` closure that remembers the\n * one-shot Argus-not-configured warning state. Use this when the\n * host wrapper wants the startup log; call `verifyRequest` directly\n * (the loose function below) if you don't.\n */\nexport function makeVerifyRequest(\n opts: VerifyRequestOpts\n): (req: IncomingHttpLike) => Promise<VerifyResult> {\n let argusWarningLogged = false;\n const log = opts.logger ?? defaultLogger;\n return async function verifyRequest(req: IncomingHttpLike): Promise<VerifyResult> {\n if (!argusWarningLogged && !opts.argusUrl) {\n log(\n '[Checkpoint] WARNING: Argus URL not configured; reputation will degrade to baseline 1.0 (\"trust by default\"). Set ARGUS_API_URL to enable.'\n );\n argusWarningLogged = true;\n }\n return verifyRequest_internal(req, opts);\n };\n}\n\n/**\n * Single-shot async entry. Use [`makeVerifyRequest`] in long-lived\n * hosts (so the Argus warning is one-shot per process); use this\n * loose form in tests + one-off invocations.\n */\nexport async function verifyRequest(\n req: IncomingHttpLike,\n opts: VerifyRequestOpts\n): Promise<VerifyResult> {\n return verifyRequest_internal(req, opts);\n}\n\nasync function verifyRequest_internal(\n req: IncomingHttpLike,\n opts: VerifyRequestOpts\n): Promise<VerifyResult> {\n // JWS-aware preflight — when the body carries `_meta.proof.jws`\n // but the payload won't project into a typed McpIPayload, treat\n // the envelope as malformed (Block(ParseError)) rather than\n // silently degrading to PlainHttp.\n if (hasMalformedJwsBody(req)) {\n return blockWithParseError('malformed JWS body', opts.enforcementMode);\n }\n\n const agentRequest = buildAgentRequest(req, {\n legacyEnvelopeFallback: opts.legacyEnvelopeFallback,\n });\n const issuer = extractIssuer(agentRequest);\n const agentDid = extractAgentDid(agentRequest);\n const credentialStatusUrl = extractCredentialStatusUrl(agentRequest);\n const baseline = opts.reputationBaseline ?? DEFAULT_REPUTATION_BASELINE;\n\n // --- Stage 1 of orchestration: parallel pre-fetch. -----------------------\n //\n // Conditional `Promise.allSettled` per § 4.4 — no network calls\n // for shapes that don't need them. Anonymous PlainHttp resolves\n // immediately with three sentinel values.\n //\n // **`allSettled`, not `all`.** With `Promise.all`, a concurrent\n // StatusList rejection could mask a co-occurring DID failure —\n // classification becomes timing-dependent (whichever rejected\n // first decides whether the host returns 400 or 503). Settled-\n // mode evaluation lets us observe every adapter's outcome and\n // apply a deterministic priority:\n //\n // 1. DID failure → `Block(ParseError)` verdict (client problem)\n // 2. StatusList failure → re-throw (infra; host renders 503)\n // 3. Reputation failure → bubble up (adapter contract says\n // reputation never throws; this branch is defensive)\n //\n // **DID wins over StatusList** because a structural request\n // failure (malformed identity material) is a client problem the\n // dashboard wants to see, not an infra outage that would mask it.\n const [didResult, statusResult, repResult] = await Promise.allSettled([\n issuer ? opts.didResolver.resolve(issuer) : Promise.resolve(null),\n credentialStatusUrl\n ? fetchCredentialStatus(credentialStatusUrl, opts.statusListCache)\n : Promise.resolve(null),\n agentDid ? opts.reputationOracle.score(agentDid) : Promise.resolve(baseline),\n ]);\n\n // Priority 1 — DID failure.\n if (didResult.status === 'rejected') {\n if (isDidResolverError(didResult.reason)) {\n return blockWithParseError(\n didResult.reason instanceof Error ? didResult.reason.message : String(didResult.reason),\n opts.enforcementMode\n );\n }\n throw didResult.reason;\n }\n\n // Priority 2 — StatusList failure.\n if (statusResult.status === 'rejected') {\n if (statusResult.reason instanceof UnsafeOutboundUrl) {\n return blockWithParseError(statusResult.reason.message, opts.enforcementMode);\n }\n // Both kya-known StatusList errors and unexpected throws re-\n // raise (host renders 503 either way; the second branch is\n // belt-and-suspenders for future adapter implementations).\n throw statusResult.reason;\n }\n\n // Priority 3 — unexpected reputation throw.\n if (repResult.status === 'rejected') {\n throw repResult.reason;\n }\n\n const didDoc: DidDocument | null = didResult.value;\n const revokedIndices: number[] | null = statusResult.value;\n const repScore: number = repResult.value;\n\n // --- Stage 2 of orchestration: tenant policy eval. -----------------------\n //\n // Runs after reputation resolves — the evaluator's input includes\n // the resolved score. Cedar-1 will swap this implementation\n // without touching the surrounding orchestrator.\n const tenantDecision = await opts.policyEvaluator.evaluate({\n tenantHost: opts.tenantHost,\n reputation: repScore,\n });\n\n // --- Stage 3 of orchestration: ContextSpec composition + sync verify. ---\n const ctx: ContextSpec = {\n didDocs: didDoc && issuer ? { [issuer]: didDoc } : {},\n revoked:\n revokedIndices !== null && credentialStatusUrl\n ? { [credentialStatusUrl]: revokedIndices }\n : {},\n reputation: agentDid ? { [agentDid]: repScore } : {},\n tenantDecision,\n nowUnix: opts.clock.nowUnix(),\n enforcementMode: opts.enforcementMode,\n };\n\n return engineVerify(agentRequest, ctx);\n}\n\nasync function fetchCredentialStatus(\n credentialStatusUrl: string,\n statusListCache: StatusListCacheAdapter\n): Promise<number[]> {\n assertSafeHttpsUrl(credentialStatusUrl, 'credential status URL');\n return statusListCache.fetch(credentialStatusUrl);\n}\n\n// -----------------------------------------------------------------------------\n// Adapter-error translation helpers.\n// -----------------------------------------------------------------------------\n\ntype DidErr =\n | DidNotFound\n | DidResolverTimeout\n | DidResolverError\n | MalformedDid\n | UnsupportedKeyType\n | UnsupportedDidMethod;\n\nfunction isDidResolverError(err: unknown): err is DidErr {\n if (!(err instanceof Error)) return false;\n const kind = (err as { kind?: string }).kind;\n return (\n kind === 'DidNotFound' ||\n kind === 'DidResolverTimeout' ||\n kind === 'DidResolverError' ||\n kind === 'MalformedDid' ||\n kind === 'UnsupportedKeyType' ||\n kind === 'UnsupportedDidMethod'\n );\n}\n\n/**\n * Synthesize a `VerifyResult` carrying `Block(ParseError)` for the\n * DID-failure case. The engine emits its own `EngineInfo` only when\n * `engineVerify` is actually invoked; this synthetic block path\n * happens *before* the WASM call, so we fabricate a minimal\n * attribution block here. Marked with a sentinel `extras.synthesized`\n * so dashboards / logs can distinguish engine-emitted vs.\n * host-synthesized attribution.\n */\nfunction blockWithParseError(detail: string, enforcementMode: EnforcementMode): VerifyResult {\n return {\n decision: {\n kind: 'Block',\n reason: {\n kind: 'ParseError',\n detail,\n },\n },\n enforcementMode,\n engineInfo: {\n name: 'checkpoint-engine-wasm',\n version: '0.0.0-host-synth',\n rulesetHash: 'sha256:host-synthesized',\n rulesetVersion: '0.0.0-host-synth',\n extras: { synthesized: true },\n },\n };\n}\n\nfunction defaultLogger(msg: string): void {\n console.warn(msg);\n}\n\n// Note on DID error visibility: the orchestrator's contract is to\n// *absorb* adapter errors and translate them to verdicts. Host\n// wrappers consume the `VerifyResult` shape; they should NOT need\n// to `instanceof`-check DID errors directly. If a downstream\n// consumer ever does need the class itself, they import from\n// `@kya-os/checkpoint-wasm-runtime/engine/adapters/did-resolver`\n// rather than the orchestrator subpath — keeping the orchestrator\n// surface minimal and the error taxonomy in one site.\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","/**\n * Transport-agnostic `Decision` → HTTP renderer — Phase C.3.\n *\n * Translates a `VerifyResult` into a framework-neutral\n * `{ status, headers, body }` shape. Phase D (Next.js) adapts this\n * to `NextResponse`; Phase E (Express) adapts it to `res.status().set().send()`.\n * One source of truth for the verdict→HTTP mapping.\n *\n * Mapping table (§ 4.5 of Phase C kickoff):\n *\n * | Decision | HTTP | Notes |\n * |-----------------------------------|------|-----------------------------------------|\n * | Permit | null | Pass through to next handler |\n * | Block(Unauthenticated) | 401 | WWW-Authenticate header |\n * | Block(InvalidSignature) | 403 | |\n * | Block(Revoked) | 403 | |\n * | Block(Expired) | 401 | Refresh-the-credential semantics |\n * | Block(OutOfScope) | 403 | Body carries requested + granted |\n * | Block(LowReputation) | 403 | Body carries score + threshold |\n * | Block(PolicyDenied) | 403 | Body carries detail |\n * | Block(ParseError) | 400 | Body carries detail |\n * | Challenge | 401 | Body carries ChallengeParams |\n * | Redirect | 302 | Location header |\n * | Instruct | 422 | application/problem+json body |\n *\n * Observe mode overrides: every verdict renders as `status: null`\n * (pass through) with an `X-Checkpoint-Would-Have-Been` header\n * carrying the verdict kind, plus the standard attribution headers.\n *\n * Every response carries the Phase 0.1 attribution headers:\n * `X-Checkpoint-Engine`, `X-Checkpoint-Engine-Version`, and\n * (when present) `X-Checkpoint-Ruleset-Hash`.\n */\n\nimport type { BlockReason, VerifyResult } from '../types';\n\nimport type { RenderedResponse } from './types';\n\nexport function renderDecisionAsResponse(result: VerifyResult): RenderedResponse {\n const baseHeaders = buildBaseHeaders(result);\n\n // Observe mode never blocks — pass through with would-have-been headers.\n if (result.enforcementMode === 'observe') {\n return {\n status: null,\n headers: {\n ...baseHeaders,\n 'X-Checkpoint-Mode': 'observe',\n 'X-Checkpoint-Would-Have-Been': result.decision.kind,\n ...wouldHaveBeenReasonHeader(result),\n },\n };\n }\n\n switch (result.decision.kind) {\n case 'Permit':\n return {\n status: null,\n headers: { ...baseHeaders, 'X-Checkpoint-Decision': 'permit' },\n };\n\n case 'Block': {\n const reason = result.decision.reason;\n return {\n status: httpStatusForBlockReason(reason),\n headers: {\n ...baseHeaders,\n ...blockHeaders(reason),\n 'X-Checkpoint-Decision': 'block',\n 'X-Checkpoint-Reason': reason.kind,\n },\n body: blockResponseBody(reason),\n };\n }\n\n case 'Challenge': {\n const params = result.decision.params;\n return {\n status: 401,\n headers: {\n ...baseHeaders,\n 'X-Checkpoint-Decision': 'challenge',\n 'X-Checkpoint-Challenge': params.nonce,\n },\n body: {\n challenge: params,\n },\n };\n }\n\n case 'Redirect': {\n const target = result.decision.target;\n return {\n status: 302,\n headers: {\n ...baseHeaders,\n 'X-Checkpoint-Decision': 'redirect',\n Location: target.url,\n 'X-Checkpoint-Redirect-Reason': target.reason,\n },\n };\n }\n\n case 'Instruct': {\n const payload = result.decision.payload;\n return {\n status: 422,\n headers: {\n ...baseHeaders,\n 'X-Checkpoint-Decision': 'instruct',\n 'Content-Type': 'application/problem+json',\n },\n body: {\n type: payload.problem,\n title: payload.title,\n suggestedActions: payload.suggestedActions,\n },\n };\n }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Helpers.\n// -----------------------------------------------------------------------------\n\nfunction buildBaseHeaders(result: VerifyResult): Record<string, string> {\n const headers: Record<string, string> = {\n 'X-Checkpoint-Engine': result.engineInfo.name,\n 'X-Checkpoint-Engine-Version': result.engineInfo.version,\n };\n if (result.engineInfo.rulesetHash) {\n headers['X-Checkpoint-Ruleset-Hash'] = result.engineInfo.rulesetHash;\n }\n return headers;\n}\n\nfunction httpStatusForBlockReason(reason: BlockReason): number {\n switch (reason.kind) {\n case 'Unauthenticated':\n case 'Expired':\n return 401;\n case 'ParseError':\n return 400;\n case 'InvalidSignature':\n case 'Revoked':\n case 'OutOfScope':\n case 'LowReputation':\n case 'PolicyDenied':\n return 403;\n }\n}\n\nfunction blockHeaders(reason: BlockReason): Record<string, string> {\n if (reason.kind === 'Unauthenticated') {\n return { 'WWW-Authenticate': 'KyaProof realm=\"checkpoint\"' };\n }\n return {};\n}\n\nfunction blockResponseBody(reason: BlockReason): object {\n switch (reason.kind) {\n case 'Revoked':\n case 'InvalidSignature':\n case 'Unauthenticated':\n case 'Expired':\n return { error: humanError(reason.kind), reason: reason.kind };\n case 'OutOfScope':\n return {\n error: 'requested scope is not granted',\n reason: 'OutOfScope',\n requested: reason.requested,\n granted: reason.granted,\n };\n case 'LowReputation':\n return {\n error: 'agent reputation below tenant threshold',\n reason: 'LowReputation',\n score: reason.score,\n threshold: reason.threshold,\n };\n case 'PolicyDenied':\n return {\n error: 'tenant policy denied the request',\n reason: 'PolicyDenied',\n detail: reason.detail,\n };\n case 'ParseError':\n return {\n error: 'request envelope could not be parsed',\n reason: 'ParseError',\n detail: reason.detail,\n };\n }\n}\n\nfunction humanError(kind: 'Revoked' | 'InvalidSignature' | 'Unauthenticated' | 'Expired'): string {\n switch (kind) {\n case 'Revoked':\n return 'credential has been revoked';\n case 'InvalidSignature':\n return 'request signature failed verification';\n case 'Unauthenticated':\n return 'authentication required';\n case 'Expired':\n return 'credential is expired';\n }\n}\n\n/** Observe-mode helper — surface the block reason in a side header so */\n/** dashboards can attribute the would-have-been verdict. */\nfunction wouldHaveBeenReasonHeader(result: VerifyResult): Record<string, string> {\n if (result.decision.kind === 'Block') {\n return { 'X-Checkpoint-Would-Have-Been-Reason': result.decision.reason.kind };\n }\n return {};\n}\n","/**\n * `verifyRequestEdge` async-init orchestrator — Edge-WASM-2 (folded into\n * Phase D's PR).\n *\n * Mirror of [[./verify-request.ts]] for edge runtimes. Differs in only\n * three places:\n *\n * 1. Imports `engineVerifyEdge` + `initEngineEdge` from `../edge`\n * instead of `engineVerify` from `../index` (Node target).\n * 2. Awaits `initEngineEdge()` before the engine call — async-init\n * pattern required by the `--target web` wasm-bindgen build.\n * 3. The final engine call is `await engineVerifyEdge(...)` rather\n * than the synchronous `engineVerify(...)`.\n *\n * **The two files MUST stay in sync.** Any change to verify-request.ts\n * (new adapter, new error-classification rule, new ContextSpec field)\n * MUST be mirrored here. The cross-target parity test in\n * [[__tests__/verify-request-parity.test.ts]] guards the verdict-shape\n * invariant — both orchestrators must produce identical\n * `VerifyResult.decision` / `engineInfo.name` on identical inputs.\n *\n * Cedar-1 forward-compat: same seam as the Node variant — step (5)\n * (tenant policy eval) is the only place the PolicyEvaluator\n * interface gets exercised. When Cedar-1 swaps implementations, this\n * orchestrator does not change.\n */\n\nimport type {\n DidNotFound,\n DidResolverError,\n DidResolverTimeout,\n MalformedDid,\n UnsupportedDidMethod,\n UnsupportedKeyType,\n} from '../adapters/did-resolver';\nimport type { StatusListCacheAdapter } from '../adapters/status-list-cache';\nimport { assertSafeHttpsUrl, UnsafeOutboundUrl } from '../adapters/outbound-url-policy';\nimport { engineVerifyEdge, initEngineEdge } from '../edge';\nimport type { ContextSpec, DidDocument, EnforcementMode, VerifyResult } from '../types';\n\nimport {\n buildAgentRequest,\n extractAgentDid,\n extractCredentialStatusUrl,\n extractIssuer,\n hasMalformedJwsBody,\n} from './build-agent-request';\nimport type { IncomingHttpLike, VerifyRequestOpts } from './types';\n\nconst DEFAULT_REPUTATION_BASELINE = 1.0;\n\n/**\n * Factory — constructs a `verifyRequestEdge` closure that remembers the\n * one-shot Argus-not-configured warning state. Use this when the\n * host wrapper wants the startup log; call `verifyRequestEdge` directly\n * (the loose function below) if you don't.\n */\nexport function makeVerifyRequestEdge(\n opts: VerifyRequestOpts\n): (req: IncomingHttpLike) => Promise<VerifyResult> {\n let argusWarningLogged = false;\n const log = opts.logger ?? defaultLogger;\n return async function verifyRequestEdge(req: IncomingHttpLike): Promise<VerifyResult> {\n if (!argusWarningLogged && !opts.argusUrl) {\n log(\n '[Checkpoint] WARNING: Argus URL not configured; reputation will degrade to baseline 1.0 (\"trust by default\"). Set ARGUS_API_URL to enable.'\n );\n argusWarningLogged = true;\n }\n return verifyRequestEdge_internal(req, opts);\n };\n}\n\n/**\n * Single-shot async entry. Use [`makeVerifyRequestEdge`] in long-lived\n * hosts (so the Argus warning is one-shot per process); use this\n * loose form in tests + one-off invocations.\n */\nexport async function verifyRequestEdge(\n req: IncomingHttpLike,\n opts: VerifyRequestOpts\n): Promise<VerifyResult> {\n return verifyRequestEdge_internal(req, opts);\n}\n\nasync function verifyRequestEdge_internal(\n req: IncomingHttpLike,\n opts: VerifyRequestOpts\n): Promise<VerifyResult> {\n // JWS-aware preflight — see verify-request.ts for rationale. The\n // edge variant MUST mirror Node-side behaviour exactly per the\n // cross-runtime parity contract (D.1.5 — verify-request-parity).\n if (hasMalformedJwsBody(req)) {\n return blockWithParseError('malformed JWS body', opts.enforcementMode);\n }\n\n const agentRequest = buildAgentRequest(req, {\n legacyEnvelopeFallback: opts.legacyEnvelopeFallback,\n });\n const issuer = extractIssuer(agentRequest);\n const agentDid = extractAgentDid(agentRequest);\n const credentialStatusUrl = extractCredentialStatusUrl(agentRequest);\n const baseline = opts.reputationBaseline ?? DEFAULT_REPUTATION_BASELINE;\n\n // --- Stage 1 of orchestration: parallel pre-fetch. -----------------------\n //\n // Conditional `Promise.allSettled` per § 4.4 — no network calls\n // for shapes that don't need them. Anonymous PlainHttp resolves\n // immediately with three sentinel values.\n //\n // **`allSettled`, not `all`.** With `Promise.all`, a concurrent\n // StatusList rejection could mask a co-occurring DID failure —\n // classification becomes timing-dependent (whichever rejected\n // first decides whether the host returns 400 or 503). Settled-\n // mode evaluation lets us observe every adapter's outcome and\n // apply a deterministic priority:\n //\n // 1. DID failure → `Block(ParseError)` verdict (client problem)\n // 2. StatusList failure → re-throw (infra; host renders 503)\n // 3. Reputation failure → bubble up (adapter contract says\n // reputation never throws; this branch is defensive)\n //\n // **DID wins over StatusList** because a structural request\n // failure (malformed identity material) is a client problem the\n // dashboard wants to see, not an infra outage that would mask it.\n const [didResult, statusResult, repResult] = await Promise.allSettled([\n issuer ? opts.didResolver.resolve(issuer) : Promise.resolve(null),\n credentialStatusUrl\n ? fetchCredentialStatus(credentialStatusUrl, opts.statusListCache)\n : Promise.resolve(null),\n agentDid ? opts.reputationOracle.score(agentDid) : Promise.resolve(baseline),\n ]);\n\n // Priority 1 — DID failure.\n if (didResult.status === 'rejected') {\n if (isDidResolverError(didResult.reason)) {\n return blockWithParseError(\n didResult.reason instanceof Error ? didResult.reason.message : String(didResult.reason),\n opts.enforcementMode\n );\n }\n throw didResult.reason;\n }\n\n // Priority 2 — StatusList failure.\n if (statusResult.status === 'rejected') {\n if (statusResult.reason instanceof UnsafeOutboundUrl) {\n return blockWithParseError(statusResult.reason.message, opts.enforcementMode);\n }\n // Both kya-known StatusList errors and unexpected throws re-\n // raise (host renders 503 either way; the second branch is\n // belt-and-suspenders for future adapter implementations).\n throw statusResult.reason;\n }\n\n // Priority 3 — unexpected reputation throw.\n if (repResult.status === 'rejected') {\n throw repResult.reason;\n }\n\n const didDoc: DidDocument | null = didResult.value;\n const revokedIndices: number[] | null = statusResult.value;\n const repScore: number = repResult.value;\n\n // --- Stage 2 of orchestration: tenant policy eval. -----------------------\n //\n // Runs after reputation resolves — the evaluator's input includes\n // the resolved score. Cedar-1 will swap this implementation\n // without touching the surrounding orchestrator.\n const tenantDecision = await opts.policyEvaluator.evaluate({\n tenantHost: opts.tenantHost,\n reputation: repScore,\n });\n\n // --- Stage 3 of orchestration: ContextSpec composition + edge verify. ---\n //\n // **The async-init pre-call.** `initEngineEdge()` is idempotent —\n // subsequent calls resolve the same in-flight or completed init\n // promise. The first call to a long-lived edge host wraps the cold-\n // boot latency; every subsequent call resolves synchronously on the\n // JS side. Eager-init hosts can call `initEngineEdge()` at process\n // startup to amortise this onto deploy time.\n await initEngineEdge();\n\n const ctx: ContextSpec = {\n didDocs: didDoc && issuer ? { [issuer]: didDoc } : {},\n revoked:\n revokedIndices !== null && credentialStatusUrl\n ? { [credentialStatusUrl]: revokedIndices }\n : {},\n reputation: agentDid ? { [agentDid]: repScore } : {},\n tenantDecision,\n nowUnix: opts.clock.nowUnix(),\n enforcementMode: opts.enforcementMode,\n };\n\n return engineVerifyEdge(agentRequest, ctx);\n}\n\nasync function fetchCredentialStatus(\n credentialStatusUrl: string,\n statusListCache: StatusListCacheAdapter\n): Promise<number[]> {\n assertSafeHttpsUrl(credentialStatusUrl, 'credential status URL');\n return statusListCache.fetch(credentialStatusUrl);\n}\n\n// -----------------------------------------------------------------------------\n// Adapter-error translation helpers. Mirror of verify-request.ts.\n// -----------------------------------------------------------------------------\n\ntype DidErr =\n | DidNotFound\n | DidResolverTimeout\n | DidResolverError\n | MalformedDid\n | UnsupportedKeyType\n | UnsupportedDidMethod;\n\nfunction isDidResolverError(err: unknown): err is DidErr {\n if (!(err instanceof Error)) return false;\n const kind = (err as { kind?: string }).kind;\n return (\n kind === 'DidNotFound' ||\n kind === 'DidResolverTimeout' ||\n kind === 'DidResolverError' ||\n kind === 'MalformedDid' ||\n kind === 'UnsupportedKeyType' ||\n kind === 'UnsupportedDidMethod'\n );\n}\n\n/**\n * Synthesize a `VerifyResult` carrying `Block(ParseError)` for the\n * DID-failure case. Identical to verify-request.ts's helper — kept in\n * sync so that DID-resolver-failure verdicts are byte-identical across\n * Node + Edge targets (the parity test asserts this).\n */\nfunction blockWithParseError(detail: string, enforcementMode: EnforcementMode): VerifyResult {\n return {\n decision: {\n kind: 'Block',\n reason: {\n kind: 'ParseError',\n detail,\n },\n },\n enforcementMode,\n engineInfo: {\n name: 'checkpoint-engine-wasm',\n version: '0.0.0-host-synth',\n rulesetHash: 'sha256:host-synthesized',\n rulesetVersion: '0.0.0-host-synth',\n extras: { synthesized: true },\n },\n };\n}\n\nfunction defaultLogger(msg: string): void {\n console.warn(msg);\n}\n\n// Re-export `initEngineEdge` so eager-init hosts can warm the wasm\n// load at startup instead of waiting for the first request:\n//\n// import { initEngineEdge } from '@kya-os/checkpoint-wasm-runtime/orchestrator/edge';\n// await initEngineEdge(webAssemblyModule); // process startup\n//\n// Without this re-export, hosts would need a second import line\n// pointing at `./engine/edge`. Surfacing it through the orchestrator\n// subpath keeps the host wrapper's import block tight.\nexport { initEngineEdge };\n\n// -----------------------------------------------------------------------------\n// Re-export shared orchestrator utilities so edge-runtime bundlers get\n// a complete surface from this single subpath. Without these, an edge\n// host wrapper would need two import lines:\n//\n// import { verifyRequestEdge } from '.../orchestrator/edge';\n// import { renderDecisionAsResponse } from '.../orchestrator'; // ← awkward\n//\n// The shared utilities (renderDecisionAsResponse, buildAgentRequest,\n// types) are pure / runtime-independent — same bytes in both targets.\n// -----------------------------------------------------------------------------\n\nexport {\n buildAgentRequest,\n extractAgentDid,\n extractCredentialStatusUrl,\n extractIssuer,\n hasMalformedJwsBody,\n type BuildAgentRequestOpts,\n} from './build-agent-request';\nexport { renderDecisionAsResponse } from './render-decision';\nexport type { IncomingHttpLike, RenderedResponse, VerifyRequestOpts } from './types';\n"]}
|