@kya-os/agentshield-nextjs
Version:
Next.js middleware for AgentShield AI agent detection
78 lines (73 loc) • 2.94 kB
JavaScript
;
var fs = require('fs');
var path = require('path');
var agentshield = require('@kya-os/agentshield');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var fs__default = /*#__PURE__*/_interopDefault(fs);
var path__default = /*#__PURE__*/_interopDefault(path);
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x + '" is not supported');
});
var wasmInitialized = false;
var wasmModule = null;
async function loadWasmNodejs() {
if (wasmInitialized) {
return true;
}
try {
const possiblePaths = [
// In node_modules (most likely)
path__default.default.join(process.cwd(), "node_modules", "@kya-os", "agentshield", "dist", "wasm", "agentshield_wasm_bg.wasm"),
// In project root (if user copied it)
path__default.default.join(process.cwd(), "agentshield_wasm_bg.wasm"),
// Relative to current file
path__default.default.join(__dirname, "..", "..", "..", "agentshield", "dist", "wasm", "agentshield_wasm_bg.wasm")
];
let wasmBuffer = null;
let loadedPath = null;
for (const wasmPath of possiblePaths) {
try {
if (fs__default.default.existsSync(wasmPath)) {
wasmBuffer = fs__default.default.readFileSync(wasmPath);
loadedPath = wasmPath;
break;
}
} catch (e) {
continue;
}
}
if (!wasmBuffer) {
console.warn("AgentShield: WASM file not found in any expected location");
return false;
}
const bytes = new Uint8Array(wasmBuffer);
wasmModule = await WebAssembly.compile(bytes);
agentshield.setWasmModule(wasmModule);
wasmInitialized = true;
console.log(`\u2705 AgentShield: WASM loaded successfully from ${loadedPath} (Node.js runtime)`);
console.log("\u{1F510} Cryptographic verification enabled (95-100% confidence)");
return true;
} catch (error) {
console.warn("\u26A0\uFE0F AgentShield: Failed to load WASM in Node.js runtime:", error);
console.log("\u{1F4CA} Falling back to pattern detection (85% confidence)");
return false;
}
}
function isNodejsRuntime() {
return typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.versions.node !== "undefined" && typeof __require !== "undefined";
}
function getWasmModule() {
return wasmModule;
}
function isWasmInitialized() {
return wasmInitialized;
}
exports.getWasmModule = getWasmModule;
exports.isNodejsRuntime = isNodejsRuntime;
exports.isWasmInitialized = isWasmInitialized;
exports.loadWasmNodejs = loadWasmNodejs;
//# sourceMappingURL=nodejs-wasm-loader.js.map
//# sourceMappingURL=nodejs-wasm-loader.js.map