{"_id":"@sandrobuilds/tracerney","_rev":"30-60e191c5b9105878b7725892af4ba272","name":"@sandrobuilds/tracerney","dist-tags":{"latest":"0.10.1"},"versions":{"0.9.6":{"name":"@sandrobuilds/tracerney","version":"0.9.6","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.6","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"2812e4a83db394f0c8ad92872ff2fd96c8649fb0","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.6.tgz","fileCount":138,"integrity":"sha512-AZ+IyFrMJs4q3L/pSL/Og6lqA9ogdQTx2A5zkioPxkkAh9zTslrvs+XehGOIPFTiHNbskB8CVELW503sfnJcNQ==","signatures":[{"sig":"MEUCICmkWbObS+PZPF6WlAwhS2nBvHpXyxe9tc7OEAQikGvPAiEA8kXN2e5srHkpTcjLstSI6PJ9kN4K6TJ90lWNp1gC3jE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279624},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.6_1774214668759_0.833693050747172","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@sandrobuilds/tracerney","version":"0.9.7","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.7","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"8a9e187f7d2b474564e515f4f5e929e2080185da","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.7.tgz","fileCount":138,"integrity":"sha512-cT56+3cyugfzR+ySCf+/QsHtXUq9I6PyePkZR9dQ4Rsi8MIWmWe96cSKPqQynkJe/ZBBdMrCX51l4uw1Mccn1A==","signatures":[{"sig":"MEUCIQDWQnJ36CETlUC8lwA3rRjyYa0NqjU+DvbHVoKj/Z1L8gIgGuQgo/z9qAviqtnqVT9LKPe2YB31d6rf7OUcgg8bn80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278302},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.7_1774215217139_0.9956297637369853","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"@sandrobuilds/tracerney","version":"0.9.8","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.8","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"93466e9ea5442b1ed9d08fd39a647e594609fb88","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.8.tgz","fileCount":138,"integrity":"sha512-GthSbOJLfarpAIEQdHLTHTAB9IWodOc6UjjY6aADagac8A5NtJEXtLUJLPF4ZPSCm6U1ZeQfoyaXeqgahsIj7Q==","signatures":[{"sig":"MEYCIQCDOaaPIYjPRP/LYngrAfgKOz5pT+ptNU+Kv3bVb3eT4AIhANSxQkTdkKK9Vnl4XitRDQjRpK22Wqnxx9SfOC6wQcZR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279082},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.8_1774215604426_0.9858573260789605","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"@sandrobuilds/tracerney","version":"0.9.9","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.9","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"81e72a6ff26c3528b24e0e9766aae0a9f55fdd5b","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.9.tgz","fileCount":138,"integrity":"sha512-Q6u2f+krnrfKmXSHoMdrUvm9+HKTA7hQ4n4ovF8JZNPCimaeRc0q3vehd0+BsrvlidCuHAsVZgLPKWDPuD+yIA==","signatures":[{"sig":"MEQCIDaMpULtmBas14sNRiWqbAStkQffn1DkuIMANis9LzusAiBOEDTYCnZPEqPJ3bt46UsrZDW2H69+s62uxz+W71WbDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279062},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.9_1774215740832_0.31979023810003326","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"@sandrobuilds/tracerney","version":"0.9.10","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.10","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"8fd382ca28ef3c729969d8ac5ae48ab0cc4a7131","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.10.tgz","fileCount":138,"integrity":"sha512-DwjP4Scf8StNpeAiPv0z2VcAkI1pzQEvk0mrkH+HDmjfxt4CzPpxl3qyScNIW+0jsaldhF6Y1eosD4+eOvcJfg==","signatures":[{"sig":"MEYCIQDs6cd5zuVcfhPk/hk1rAnBjn+NYywym/8JabD+YbzkwAIhAKP2wpw9Vaby4rsdVh3QhYQZRvjtzU5Bt7PJMjJ9RXZx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280199},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.10_1774216153962_0.3860858287739797","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"@sandrobuilds/tracerney","version":"0.9.11","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.11","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"73d6de35f5e872e91056bc9808542a6fd7fab75f","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.11.tgz","fileCount":138,"integrity":"sha512-Bh4FU+jJKb5EKzyrhOIPHA3p3Ty2gX+TYrEdB1Oe3XO2FHNe5SP0UcRPbcZuyprOvRC6XUs1EMK5zw3N1Z/yDw==","signatures":[{"sig":"MEUCIQCsIRQMbI9ZK4PQuUtN6l1gcZUl1szvOHZlc5+7IE8doAIgFiIsNvi4Y9qNmItkX9rG5hgtK61LhlutjX1IRznVQlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280018},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d2b3f61f2221cf9e4d7142e915c068d61672cef2","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.11_1774216492163_0.33678467300418946","host":"s3://npm-registry-packages-npm-production"}},"0.9.12":{"name":"@sandrobuilds/tracerney","version":"0.9.12","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.12","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"a91983f0cedab48ef54e87b75c0bf63628b7c138","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.12.tgz","fileCount":138,"integrity":"sha512-kfuoqqsTKO1zaJb34xfvOHyWslcKIvY5Q1q9zMMzvT3nzIgqqs3oJbfo2uxdTBwRmjv4KSvpPrCl1WbauVQ1KA==","signatures":[{"sig":"MEQCIHoVOSubBtFd7FheSQlxvW8LsqdjfB+DL+oM/80IsvpEAiAjAJs3LAwqDzeqJxLYkm2FRshPEeRwZXJ+eHe07Mq6mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259616},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b9b19b656307065457ae396ec56d417ec8abec5f","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.12_1774216620422_0.24095902399779723","host":"s3://npm-registry-packages-npm-production"}},"0.9.13":{"name":"@sandrobuilds/tracerney","version":"0.9.13","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.13","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"a1fae835e984552e12c60d7316fcce076f91b2b9","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.13.tgz","fileCount":138,"integrity":"sha512-hYoMHwL8hycbDYLLrXJn8ROPfV+8QzT3wll8SHQqbPfXSRtcwbmvPUxGdu7bn5FZlQwKksqx5Yppo7C6q9MzwQ==","signatures":[{"sig":"MEYCIQC0Mn79Nq1M3Kh0JY5aX4Ps6C7Wa122Be+SYtGp18BWMgIhALKf9/ClWkAp5w+OQJ9ZmP763D/Ci1mSM5b5x8XURBgL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259616},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"846a1a2c79cc18d6de0b94694d8b51e8f08e739f","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.13_1774217080196_0.08586047556706133","host":"s3://npm-registry-packages-npm-production"}},"0.9.14":{"name":"@sandrobuilds/tracerney","version":"0.9.14","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerny Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.14","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"0b6e3fa26c371035aecf769d24d9a87ebf88fc4c","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.14.tgz","fileCount":138,"integrity":"sha512-bJwBe6VEti4nP4z3c1DRQ0KEfMe3HWp1KxALJsJVmDhQE/1AiF9wx71p1902cbQphf/sswk+4YYVLPKSIvAhxg==","signatures":[{"sig":"MEUCIHvixg9yAuI2ARPa04J/qx8NwE0IA+loqivx7cD+J2oCAiEA3IYizgjiAAaDEvfC610bWOpEX/4WIjh9qGXh+ZZu+lI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259966},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"601ee4e203b1fc3030735e48e2b5b3de36f4493e","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.14_1774226983424_0.428209382730552","host":"s3://npm-registry-packages-npm-production"}},"0.9.15":{"name":"@sandrobuilds/tracerney","version":"0.9.15","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.15","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"b6d7315eff14388769c5e95f56db27fea370f4ac","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.15.tgz","fileCount":138,"integrity":"sha512-Y0UrxXE69hAIu/4VvzFki4bFM8Fi6tjBl/fKPMOTUFNTvDaqwNFAZpoiptFfqOJ+QEo/Nq/JPCc6Kg44izvXeg==","signatures":[{"sig":"MEUCIHceqqvM292f0QMjWDFMfNTu6LfTYCbsMraqbq4J7+juAiEAy0TUHUquRBuu5dn2LXQ+3YuMAnlf/QrWjNUfRNTQ9MI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260003},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"887a6a782b8024d671f8882ae3027ec359ce8787","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.15_1774265004286_0.5387781980028428","host":"s3://npm-registry-packages-npm-production"}},"0.9.16":{"name":"@sandrobuilds/tracerney","version":"0.9.16","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.16","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"8b5a59f7537de8092dd3039f859735f273d0dee6","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.16.tgz","fileCount":138,"integrity":"sha512-O8mOFTQAG9huhqaZyA5gjFgbab1pYHzr+vmE/ADwYhPOQSCsTxWnvg/yazfrSpMa1wP4wLb7ouSSCYIwf2bV0Q==","signatures":[{"sig":"MEUCIQDV0DcNUubuypRMrntcIM9zAl6n8dQ/RtCz3m1xDxNrgQIgEtx3jnzW+F89PKkWWXU8tn1GauxI0jTGL+Y0RVxu1kI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260012},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"547445c7aad969cbe35842766f3f1c97c36b7c00","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.16_1774265718792_0.390378216985106","host":"s3://npm-registry-packages-npm-production"}},"0.9.17":{"name":"@sandrobuilds/tracerney","version":"0.9.17","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.17","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"b1e8de202eeb4353e12458f40740ce41b645749f","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.17.tgz","fileCount":138,"integrity":"sha512-hcf5fGxe4V8T5CPUALpO0xsskgL+faV5uCp6Dgxo5DtrXUXOGKhL+yOiqbHSHnHj3iJVV1T2247BtyBHD0kJRQ==","signatures":[{"sig":"MEUCIG0wHE7mEE9z7zDZop1JG5VdDpaepUOOttibSzu5USsJAiEAjapcADu9UpksuBd/E0QKVzIhRNhS+dNsecDZ/H51kPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262352},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"384ed36ab48e7aa8814d408f9ee3a09050a8cfca","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.17_1774338089326_0.43768386300461115","host":"s3://npm-registry-packages-npm-production"}},"0.9.18":{"name":"@sandrobuilds/tracerney","version":"0.9.18","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.18","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"0345a7d2ffa576db67d3437446d1e59db0651555","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.18.tgz","fileCount":138,"integrity":"sha512-FM3PPNFgop4g7yEiAsUngpuoKwE8RZaNM+3mjfi05A3+0qNVYwWYdcMPrIE6Z29MpmJKjGJm+XklVgMaS8ltog==","signatures":[{"sig":"MEYCIQCuCXhB9EfXHA6C6uA/cAE4IoA0z8vR3k1MZXFIrig1OwIhAI2mxUL+AQtWDP/hyyL+tsFCLZjUvEeU8wPcf78OiGkW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262442},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"efc2ee947b88aec2e2d13276d3fa2475fb283878","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Transparent proxy runtime sentinel for prompt injection defense","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.18_1774373529433_0.43101961625052976","host":"s3://npm-registry-packages-npm-production"}},"0.9.19":{"name":"@sandrobuilds/tracerney","version":"0.9.19","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.19","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"50d8c7309ebbed13c8eadf3dbbb24fac19689c90","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.19.tgz","fileCount":138,"integrity":"sha512-McbPWw9GCn9oiDHIGwiq33kOtt663IP3XqqkNGUXp6rZ54PrFaUA5Fc0UN13sRHjvQtHCB1rXd/mFtT0k76Z3g==","signatures":[{"sig":"MEUCIFUuIu/oqo94Z4rdjvYYdojMUPHeyyKe/rfHde/8HcrnAiEA4jjzqWJnPgNfh3W3mcVwj0fDlj1/BR8PsSI0knu4Kh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262860},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b6074b9366a6847aa6fb259646dd8ce8afad3bc5","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection for LLM applications. Runs 100% locally with 258 embedded attack patterns.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.19_1774385414077_0.2852325877869937","host":"s3://npm-registry-packages-npm-production"}},"0.9.20":{"name":"@sandrobuilds/tracerney","version":"0.9.20","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.20","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"ed92b9e58062fc8d7494a72150eeef92b73f6b08","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.20.tgz","fileCount":138,"integrity":"sha512-TicrdIaziAg+LyjO9K537b1A5GbZ1TeWYkuHeKYqJvyfSEbu5cjsSdbUDMjf3mkQiOgOYSsBWJM/d8yKJOGdPw==","signatures":[{"sig":"MEQCIBFouIQbK8qYWQN59gIR92Rd2DWvhtIlfZHMZAZmVDyxAiBYR2rpaioCjOxYs2TDGGZfb+BkrQ+n1z04XL9yc6YnEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263896},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"33f0dd3cee5d1d579426776e5649de9f9a9c829e","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.20_1774385606212_0.8735218696500868","host":"s3://npm-registry-packages-npm-production"}},"0.9.21":{"name":"@sandrobuilds/tracerney","version":"0.9.21","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.21","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"6699a301b6ad0d7ed93ad564ede22947bf0c60ea","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.21.tgz","fileCount":138,"integrity":"sha512-tgvjWSJDCDfifTUVgJe2bpjNMIkPNzTP5DBKJtAe0O9Vo8XUE54+eorOT7uc5sZAN3CAYEijllmO/QuoTFK7uA==","signatures":[{"sig":"MEUCIH4RCd6R4b7njYx4iRPJ2A9i9TLRHnG4WyMqNoY0r2PgAiEAgfejeIUEI4oNzsKxdw1Z2W9FwpAU7RD8hSVCXgJ0Shc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266923},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"701f2b67bfb615748aebd7c886a4575577f05643","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.21_1774385716668_0.6165109662788024","host":"s3://npm-registry-packages-npm-production"}},"0.9.22":{"name":"@sandrobuilds/tracerney","version":"0.9.22","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.22","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"c880b13bcd94077d3ea39e40cabdf6fbccc3219e","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.22.tgz","fileCount":138,"integrity":"sha512-DAFkOmSgwn4yS+545CBmwqLd//7WQkrBwef2RkzR2ExK8EhmyZeyW2qe3eBy/GxqQGWQCC/i8m16hZvC/Clfcw==","signatures":[{"sig":"MEQCICujLrUtap99/o/lKS11z2p79OfO3e+6oyGFsoMbofI0AiAqzbwLEuwJTWXa9ToBxk2bHcNwg5Ju4KzxL15k31t1zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266944},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d085bc0aaac7d26c157919d38af20c8b5c27fe48","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.22_1774423063043_0.9674018717787203","host":"s3://npm-registry-packages-npm-production"}},"0.9.23":{"name":"@sandrobuilds/tracerney","version":"0.9.23","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.23","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"4e18149455607125018d09c1cada65480424b868","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.23.tgz","fileCount":150,"integrity":"sha512-7BGk4cygHhEKkueFeivzCpyrOymXvffXZxLb4LX0oxyzDEUpWAPRWPxlH80NU1uYWZhZzP7y3JKXSNj/5ya8lA==","signatures":[{"sig":"MEUCIH+PZc5nc6FR5GbUWMHoXINoIJcOLSJdRm6JsAqduK04AiEA9lC+Qsoj8UtHyKKCrQ8ZkRLbTYeWSIvqzlhSGRJ1pNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309604},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"55e1f0cb2ace3617d2a0d78dbd8b348b062d6182","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.23_1774984679149_0.33407820817550427","host":"s3://npm-registry-packages-npm-production"}},"0.9.24":{"name":"@sandrobuilds/tracerney","version":"0.9.24","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.24","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"d464ad2472b581855c4a214b71e9e6e8bbe3f4ea","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.24.tgz","fileCount":150,"integrity":"sha512-rYZPkraxetwdYxrFYM/mhnZEjTJRDBElXZXbrpsYZmSoGYeWAcf8orIeIRuG3vkJ5oNHeSwl6p65pNdtw43E0A==","signatures":[{"sig":"MEQCIF1B9o+e7tJEQxB1MKiOJ1Ds5X1jdiq2NQJecXILdMoWAiBNJIxgT85iP12GwfhUcgp7hDCPkRH/EoCBL1uHJyYpEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311060},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"0ce5ef29563bf760a02e42f34c7a59d7b48d05d5","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.24_1774988442353_0.7443969121463028","host":"s3://npm-registry-packages-npm-production"}},"0.9.25":{"name":"@sandrobuilds/tracerney","version":"0.9.25","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.25","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"087fb709a4114f9be96095a0e748e8dabab0cdeb","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.25.tgz","fileCount":150,"integrity":"sha512-k+B9cr3tLPHV1rZB1KWYTKhBTKk7XNMoydGeygHjmyUDZ7rW8K+j318zYCCbd2gCTQZ9jjwTkk5AfbpmOrw44Q==","signatures":[{"sig":"MEUCIQCYwFDl0i3qINGK/ZqnGu8eO2sOSaXrk8OLF2PMCr4VGQIgVxR1WFW2E8F9gsqr9skJHRx3s3oVZH/0dRWym87K510=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311070},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b98cc53301dd06cd96fb465bc45e3a2befebe7b3","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.25_1774988764555_0.06707567138146908","host":"s3://npm-registry-packages-npm-production"}},"0.9.26":{"name":"@sandrobuilds/tracerney","version":"0.9.26","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.26","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"da271e0d399d32c3ca0c80c5b0a85b0b8f193664","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.26.tgz","fileCount":150,"integrity":"sha512-WsMd6xPSOOfvFqAZynSSqd08mf9gBJPKshJ+IVugqmABrDtt2C74P4vutR7rMULlMRmgS5gTY17XNNOFhBYHTQ==","signatures":[{"sig":"MEUCIQD7lRWcxhIAJ+/UzHDP0ER/vlNM2RJFENaQYaWslJBQTQIgBs0LPIPJ0F+SJLh/2sMUW0LspDl6qjZ2GeGvVj95McI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311070},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b98cc53301dd06cd96fb465bc45e3a2befebe7b3","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.26_1774989114552_0.9004953108132872","host":"s3://npm-registry-packages-npm-production"}},"0.9.27":{"name":"@sandrobuilds/tracerney","version":"0.9.27","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.27","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"dc77b62b9bf1208d012d861f879aab572e93fa48","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.27.tgz","fileCount":150,"integrity":"sha512-VWYcl8ZISZ8AI4qY3mqFLR1phrl/ig1DjgadPRWZfpgRIoe2SfHYUu7yPTXcRC8g9nmSSOjDJePkeL0oPCUFig==","signatures":[{"sig":"MEUCIQCKbfuR/C/dCyC789fZWmEQTv7SPs8cHyZjK/Fram3qmAIgP7p23nsfEjiviwUpGzj6B8KOq8LO+JAyeiRgFJ2ZbkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311044},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"3f1df339e66172873af0542a0ed93aa34d19ee93","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.27_1774989799173_0.6401260649420892","host":"s3://npm-registry-packages-npm-production"}},"0.9.28":{"name":"@sandrobuilds/tracerney","version":"0.9.28","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.28","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"c4c19a79e2a7b4351948d680f9c5f45cd76b847c","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.28.tgz","fileCount":150,"integrity":"sha512-N94MXgxdFu1KuED/OelZhfAotw0hDBn2S4+4o6QnqblhDzR+cD8smvsQgRKaEb9viHQsD/ZwpFVqGHqQaQ7g/A==","signatures":[{"sig":"MEUCIQCvrNSbVLNpjgpb7yPVycjiTXFRP9/Zsl2FFhOs8Ou60wIgXOxGqRptYL9FKylvu7J5W7LVnptMAfzG9DLsaCqP4XU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313047},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"fa6a8f6d71a9f3cd09a690f74a9695253ac42b43","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.28_1774992174229_0.15615710250274129","host":"s3://npm-registry-packages-npm-production"}},"0.9.29":{"name":"@sandrobuilds/tracerney","version":"0.9.29","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.29","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"7a098476f34617fa88f8890f096a79d5538e49c5","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.29.tgz","fileCount":150,"integrity":"sha512-X/1mRQcOxCRPYh/AmiUt3qplRbTcpBAMD1iSQnvlQwjpvq3n+abTvXcMIWx+zJ9qSZ+t0IC9pRi7r31THa7fXQ==","signatures":[{"sig":"MEYCIQC4/+7GYmFXroL311ol/MiP5AG7ME/beksGb8Mmi2CI5gIhAKoAOSRJAebDKRdrM3MAe0ZPc/H4BJ9Z9AMIkm5FkBXM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314689},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"21ea3d58805bc81c86b5c4e659fefd32852e8a44","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.29_1774993106546_0.7911871804049835","host":"s3://npm-registry-packages-npm-production"}},"0.9.30":{"name":"@sandrobuilds/tracerney","version":"0.9.30","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.30","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"e406e9bb8523fdb0ea73e1af44e278cd65bac8c0","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.30.tgz","fileCount":150,"integrity":"sha512-abXR9p19UF+zrzU1HpyUm0/Hj2XmTq2+etiE/gNbTw8npgYknNK19gvCfk45jOjSjR8NhNYSnz4MyeBttz0MaA==","signatures":[{"sig":"MEUCIQCo2j2O/uB2KHFiE1J1tS7tGYe+cq6XvatCyGLwUvJbcwIgZ7XI57imgyloKDC9iqsz9xeUsFFZLLCdUI/w3ehLgJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315399},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"3c51fb4ba82d890e36275e1bdf4edfd8121ac218","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.30_1774993597574_0.4787562732012909","host":"s3://npm-registry-packages-npm-production"}},"0.9.31":{"name":"@sandrobuilds/tracerney","version":"0.9.31","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.31","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"78f425c91f03647244af88be10bd51e2df24f0b4","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.31.tgz","fileCount":150,"integrity":"sha512-weo4Ygt6jA/yPjHfAfKbyfuwa/Tl+gp22t0G5TEVxVzc7TMqgRch6PH7hPCKwWljSzK22iXGKS6fBXW+K50eug==","signatures":[{"sig":"MEUCIAr9sc+nAkd0hSx0+/8HsygDCtkisrVeb2uCjRS70gTyAiEA0OxfeEmhXDKTkDYCS5Qc0MbzWTz5E5m1G4qZyd+MDyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316348},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"69752856a33633987a14d82f7c219a0bf0005ef7","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.31_1774993785487_0.7887821406418412","host":"s3://npm-registry-packages-npm-production"}},"0.9.32":{"name":"@sandrobuilds/tracerney","version":"0.9.32","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.32","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"d06eb7c903344b4ed0ac3d3451e057c50e591211","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.32.tgz","fileCount":150,"integrity":"sha512-GhJBcCTjsd8GPbY0LsZDQ/k2wJO6bmiM4p6ojixeWgPkXnenJgASe+FcMH4qjDAOWHXmwl+c/W+1CEmlzK9gPA==","signatures":[{"sig":"MEUCIDqYI5hf674m12XFlzu2VLKsdPqdHuH70mifnHgJmshDAiEAgp8RZCOCUI/95twbBlXFoppv9gih+HxDRSFNFZbC0xQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316418},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"75c9d0165de7d415a9fe693464842aeffada0b18","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.32_1774994717688_0.4439995040885545","host":"s3://npm-registry-packages-npm-production"}},"0.9.33":{"name":"@sandrobuilds/tracerney","version":"0.9.33","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.9.33","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"8f421d9b246456f274e45fed3d0c58871ed45a85","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.9.33.tgz","fileCount":150,"integrity":"sha512-hSmsOXoUed+POGtJD8nMHK+Y3ztefoif3REq1jjyTwY1vE89BiP2Eg5qbq0/UNIqgq2bwUFPYIIVZbOdUiPQTw==","signatures":[{"sig":"MEUCIFtnSTQVYl+fLANui3qIP94x0qo3qWjMWVQMuQnRAXQ7AiEA5JkowHLFUhTuer+K72UrG1+LvusQcpWq17xrEUIqxoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317165},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"8e1b43a5cc61c9e0d02dd5cf8e800baca03e2a01","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with Layer 1 (258 patterns) + Layer 2 (AI verification). Runs locally with zero data storage. Upgrade to Pro for context-aware threat analysis at tracerney.com","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.9.33_1774996016943_0.2138687288853982","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@sandrobuilds/tracerney","version":"0.10.0","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","_id":"@sandrobuilds/tracerney@0.10.0","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"dist":{"shasum":"09b35284754c7f2f6839ba4385e06e66d1c59cda","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.10.0.tgz","fileCount":154,"integrity":"sha512-0JudqAvpPctfN2/lZPXeIqQLJDAAMOAuVPSqVCSp7OV40GEENb9DVh5+IxoqWLY5XVJgBbqrr32GDyWK9ADtRA==","signatures":[{"sig":"MEUCIQCXT5fRt8Blt5mYwjb3JuNZas3SWqFqPm9XuXP4axVWlQIgIE+lZIdnRIXKl9ckhFUe78ED4WASi2ZBKiukePHgcRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":830973},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"c9c69aba7a5a23a1e50aae18666e20d211c1d7c9","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc && node fix-esm.js"},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"_npmVersion":"10.9.2","description":"Lightweight prompt injection detection with 933 patterns (259 core + 675 Garak). Layer 1 pattern matching (<0.021ms) + optional Layer 2 (AI verification). Runs 100% locally with zero data storage.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axios":"^1.13.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tracerney_0.10.0_1776698483000_0.31041702180264297","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@sandrobuilds/tracerney","version":"0.10.1","description":"Lightweight prompt injection detection with 933 patterns (259 core + 675 Garak). Layer 1 pattern matching (<0.021ms) + optional Layer 2 (AI verification). Runs 100% locally with zero data storage.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc && node fix-esm.js","dev":"tsc --watch","test":"jest","lint":"eslint src/**/*.ts"},"keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.js"}},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0"},"dependencies":{"axios":"^1.13.6"},"_id":"@sandrobuilds/tracerney@0.10.1","gitHead":"f0d6595e41d110e67eaa102c5f90fc42154d4448","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-HdqeNNg98AMa1dKosXERFZnoro/+6Lmr4CzmEf3ruV4k224pOQmrfZsdBozHGsWCXZrIIapQENM+A4dOcM8b7Q==","shasum":"c669b8727d3d3aa2cadadaf926e76fa7dea0bc2c","tarball":"https://registry.npmjs.org/@sandrobuilds/tracerney/-/tracerney-0.10.1.tgz","fileCount":154,"unpackedSize":828526,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCaiPvyKJy39Qvd9//2ELUcCsbOTxX6KH4V5kolASvweAIgIJrZJRMvNrUBocccCMbCk9VWaJCda8g0kBE3X3B6xZ0="}]},"_npmUser":{"name":"sandrosaric","email":"sandro.saric@gmail.com"},"directories":{},"maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracerney_0.10.1_1776702499020_0.20741249340988488"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T21:24:28.694Z","modified":"2026-04-20T16:28:19.630Z","0.9.6":"2026-03-22T21:24:28.931Z","0.9.7":"2026-03-22T21:33:37.298Z","0.9.8":"2026-03-22T21:40:04.564Z","0.9.9":"2026-03-22T21:42:20.983Z","0.9.10":"2026-03-22T21:49:14.116Z","0.9.11":"2026-03-22T21:54:52.305Z","0.9.12":"2026-03-22T21:57:00.595Z","0.9.13":"2026-03-22T22:04:40.338Z","0.9.14":"2026-03-23T00:49:43.589Z","0.9.15":"2026-03-23T11:23:24.430Z","0.9.16":"2026-03-23T11:35:18.949Z","0.9.17":"2026-03-24T07:41:29.468Z","0.9.18":"2026-03-24T17:32:09.602Z","0.9.19":"2026-03-24T20:50:14.233Z","0.9.20":"2026-03-24T20:53:26.358Z","0.9.21":"2026-03-24T20:55:16.828Z","0.9.22":"2026-03-25T07:17:43.190Z","0.9.23":"2026-03-31T19:17:59.292Z","0.9.24":"2026-03-31T20:20:42.846Z","0.9.25":"2026-03-31T20:26:04.725Z","0.9.26":"2026-03-31T20:31:54.691Z","0.9.27":"2026-03-31T20:43:19.346Z","0.9.28":"2026-03-31T21:22:54.370Z","0.9.29":"2026-03-31T21:38:26.711Z","0.9.30":"2026-03-31T21:46:37.712Z","0.9.31":"2026-03-31T21:49:45.643Z","0.9.32":"2026-03-31T22:05:17.843Z","0.9.33":"2026-03-31T22:26:57.094Z","0.10.0":"2026-04-20T15:21:23.230Z","0.10.1":"2026-04-20T16:28:19.196Z"},"author":{"name":"Tracerney Prompt Injection Security"},"license":"MIT","keywords":["prompt-injection","security","llm","sentinel","proxy","openrouter","ddd"],"description":"Lightweight prompt injection detection with 933 patterns (259 core + 675 Garak). Layer 1 pattern matching (<0.021ms) + optional Layer 2 (AI verification). Runs 100% locally with zero data storage.","maintainers":[{"name":"sandrosaric","email":"sandro.saric@gmail.com"}],"readme":"# Tracerney\n\nLightweight prompt injection detection for LLM applications. Runs 100% locally with zero data leaving your server.\n\n> 🚀 **Explore the full platform at [tracerney.com](https://www.tracerney.com)** — includes dashboard, analytics, and API management.\n\n## Install\n\n```bash\nnpm install @sandrobuilds/tracerney\n```\n\n## Usage\n\n```typescript\nimport { Tracerney } from '@sandrobuilds/tracerney';\n\nconst shield = new Tracerney();\n\nconst result = await shield.scanPrompt(userInput);\n\nif (result.suspicious) {\n  console.log('⚠️ Suspicious:', result.patternName);\n  // Handle flagged prompt (log, block, rate-limit, etc.)\n}\n```\n\n## What's Included\n\n- **933 attack patterns** — comprehensive prompt injection and jailbreak detection\n  - 259 core forensic patterns (system overrides, prompt leaks, code execution, etc.)\n  - 675 real-world variants from Garak security research\n- **Local detection** — <0.021ms latency per prompt, zero network overhead\n- **Zero dependencies** — single npm package, 100% local processing\n- **Privacy-first** — no data leaves your server, zero data storage\n- **Egress & PII scanning** — detects API keys, secrets, emails, and data exfiltration attempts\n\n## Result Object\n\n### Layer 1 (Pattern Detection)\n```typescript\n{\n  suspicious: boolean;     // true if pattern matched\n  patternName?: string;    // e.g., \"Ignore Instructions\"\n  severity?: string;       // \"CRITICAL\" | \"HIGH\" | \"MEDIUM\" | \"LOW\"\n  blocked: boolean;        // false (Layer 1 only marks suspicious)\n}\n```\n\n### Layer 2 (LLM Sentinel)\n```typescript\n{\n  action: \"BLOCK\" | \"ALLOW\";     // Final decision from LLM Sentinel\n  confidence: number;             // 0.0 to 1.0 confidence score\n  class: string;                  // Threat classification (e.g., \"jailbreak_llm_detected\")\n  fingerprint: string;            // Unique threat identifier for tracking\n}\n```\n\n## Detected Patterns\n\n### Core Patterns (259)\n- Instruction overrides (\"ignore all instructions\")\n- Role-play jailbreaks (\"act as unrestricted AI\")\n- Hypothetical constraint bypass (\"what would you do without constraints?\")\n- System prompt exfiltration\n- Context confusion attacks\n- Data extraction attempts\n- Code execution risks\n- And 251 more forensic patterns...\n\n### Garak Research Patterns (675)\n- Advanced jailbreak variants from real-world research\n- DAN (Do Anything Now) attack variations\n- Sophisticated prompt injection techniques\n- Encoding-based evasion patterns\n- Character-based constraint bypass\n- Multi-turn attack sequences\n- And 670+ more variants from security research...\n\n## Multi-Layer Runtime Defense\n\n**Layer 1:** Pattern Matching\n- **933 total patterns** — 259 core + 675 Garak research patterns\n- **<0.021ms detection** on modern hardware (238x faster than target)\n- Zero network overhead\n- 100% local processing\n- Detects: instruction overrides, role-play jailbreaks, context confusion, code execution risks, data extraction attempts, and more\n\nLayer 1 also runs a deterministic egress and PII scan on every prompt **before** the injection patterns fire. If a match is found, it returns `suspicious: true` with a `label` and `reason` — the SDK never decides the penalty, the developer does.\n\n```typescript\nconst result = await tracer.scanPrompt(input);\n\nif (result.suspicious) {\n  console.log(result.label);  // \"SUSPICIOUS_EGRESS\" | \"SUSPICIOUS_SECRET\" | \"SUSPICIOUS_PII\"\n  console.log(result.reason); // \"Detected 1 finding(s): Markdown Image with URL Query Params\"\n\n  // Your policy, your call:\n  if (result.label === 'SUSPICIOUS_EGRESS') {\n    return NextResponse.json({ error: 'Security violation' }, { status: 400 });\n  }\n}\n```\n\nEgress findings **never reach Layer 2** — they are binary and deterministic. A markdown image tag smuggling data in query params either exists or it doesn't. Layer 2 is reserved for probabilistic threats where a regex alone cannot make a confident call.\n\n### Garak Attack Pattern Dataset\n\nIncludes **675 patterns** from the Garak security research dataset, covering real-world prompt injection variants discovered through automated fuzzing and empirical testing.\n\n**Coverage includes:**\n- 648 real-world variants from in-the-wild attacks\n- 12 DAN (Do Anything Now) attack variations\n- 3 AutoDAN patterns\n- 12 advanced prompt injection techniques\n\nAll patterns are deterministic regex matches — **no behavioral changes, sub-millisecond latency**. The SDK remains 100% local with zero data storage.\n\n**Layer 2:** LLM Sentinel (Optional)\n- **AI-powered response verification** — LLM-based analysis for novel attack patterns\n- **Context-aware scanning** — understands your application's specific security policies\n- **Delimiter salting** — prevents prompt injection through response boundaries\n- **Zero prompt storage** — responses are analyzed in-memory, never saved or logged\n- **Structured threat metadata** — detailed fingerprints for audit trails and tracking\n- **Advanced rate limiting** — prevents cost spikes with intelligent throttling\n\n## Layer 2: LLM Sentinel Deep Dive\n\nLayer 2 adds advanced security with LLM Sentinel, an AI-powered verification system that analyzes LLM responses for injection patterns and validates output safety. Combines local pattern detection (Layer 1) with server-side verification for defense-in-depth protection.\n\n### How Layer 1 & Layer 2 Work Together\n\n| **Layer 1: Pattern Detection** | **Layer 2: LLM Sentinel (Optional)** |\n|---|---|\n| 933 patterns (local) | Server-side verification |\n| Pattern matching | Output validation |\n| <0.021ms latency | JSON safety checks |\n| No data leaves device | Delimiter salting |\n| Zero network calls | Context-aware analysis |\n\n### Enabling Layer 2 (Optional)\n\nLayer 2 is optional. Initialize with LLM Sentinel for additional AI-powered verification:\n\n```typescript\nconst shield = new Tracerney({\n  apiKey: process.env.TRACERNEY_API_KEY,\n  sentinelEnabled: true,\n});\n```\n\nLayer 2 is automatically configured to use the hosted LLM Sentinel service.\n\n### Custom Layer 2 Configuration (Self-Hosted)\n\nWant to self-host or use a custom backend? Override the sentinel endpoint:\n\n```typescript\nconst shield = new Tracerney({\n  apiKey: process.env.TRACERNEY_API_KEY,\n  sentinelEnabled: true,\n  baseUrl: process.env.TRACERNEY_BASE_URL, // e.g., http://localhost:3000\n  sentinelEndpoint: process.env.TRACERNEY_SENTINEL_ENDPOINT, // e.g., /api/v1/verify-prompt\n});\n```\n\nYou can build your own verification endpoint using the same pattern as our hosted service.\n\n### Scanning with Layer 2\n\nWith Layer 2 enabled, `scanPrompt` validates both input and LLM responses. Handle errors appropriately:\n\n```typescript\ntry {\n  // Scan input (Layer 1 + Layer 2)\n  const result = await tracer.scanPrompt(userInput);\n  // If we get here, input is safe. Call LLM\n  const llmResponse = await llm.chat(userInput);\n  // Verify LLM output wasn't compromised\n  const outputCheck = await tracer.verifyOutput(llmResponse);\n  return llmResponse;\n} catch (err) {\n  if (err instanceof ShieldBlockError) {\n    return NextResponse.json(\n      { error: \"Input content is flagged as suspicious\" },\n      { status: 400 }\n    );\n  }\n  throw err;\n}\n```\n\n### API Response Format\n\nThe verify-prompt endpoint returns structured responses. Success (HTTP 200) includes classification, confidence, and fingerprint. Errors include specific error codes and messages.\n\n#### ✅ Content is Safe (HTTP 200)\n```json\n{\n  \"action\": \"ALLOW\",\n  \"confidence\": 0.15,\n  \"class\": \"safe_content\",\n  \"fingerprint\": \"a3f7k2\"\n}\n```\n\n#### 🔴 Content is Blocked (HTTP 200)\n```json\n{\n  \"action\": \"BLOCK\",\n  \"confidence\": 0.99,\n  \"class\": \"jailbreak_semantic_pattern\",\n  \"fingerprint\": \"c1p5n3\"\n}\n```\n\n#### ⚠️ Quota Exceeded (HTTP 402)\n```json\n{\n  \"blocked\": true,\n  \"reason\": \"scan_limit_exceeded\",\n  \"scansUsed\": 50,\n  \"limit\": 50,\n  \"message\": \"Free plan limit reached (50/month)...\"\n}\n```\n\n## Production Usage\n\n### Basic Setup (Layer 1 only)\n```typescript\nconst shield = new Tracerney();\n```\n\n### Optimized for Production\n```typescript\nconst shield = new Tracerney({\n  enableTelemetry: false,   // Disable if not using backend\n  sentinelEnabled: false    // Disable if not using Layer 2\n});\n```\n\n### With Layer 2 (Advanced)\n```typescript\nconst shield = new Tracerney({\n  sentinelEnabled: true,\n  apiKey: process.env.TRACERNEY_API_KEY\n});\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}