{"_id":"@bulkhead-ai/core","_rev":"11-6765501b7157c618d604d164bac64a2b","name":"@bulkhead-ai/core","dist-tags":{"latest":"0.9.1"},"versions":{"0.3.0":{"name":"@bulkhead-ai/core","version":"0.3.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.3.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"e4dd2fc8b158d2a8d09dd1b0a6b2040d9df10851","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.3.0.tgz","fileCount":20,"integrity":"sha512-m+x+uzrVxU1QJwl8ZrQ7R4dq70xEYRjdhIPDtIE6KaQDMWru5g0ZrxdxysNC+Q4jVxyAf+p4s1d0cqNFCygg4w==","signatures":[{"sig":"MEUCID4LrV5loxUlQ74SjUEhLDu6Q4G4G5KUnqVoI2FPm/x5AiEAtGIa+DFD0BpnliwBmrnDPSceG9G9B7LNXSL20cPYpxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":683067},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"2eede4c60a42113b8e5725f6947dcd04fb6345f6","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"string-similarity":"^4.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1776003641137_0.12542827594152461","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bulkhead-ai/core","version":"0.4.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.4.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"8b446648869283b5e4e3bac26d59749c83bfb365","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.4.0.tgz","fileCount":20,"integrity":"sha512-NokCcjLo+4gTEpotPUMglgOvyJP+1Q1+JXOOpFpTJrsbZMg8ZbKZR13j3UZpCrGYSJeuufFnXqr7bhT2yfiUnw==","signatures":[{"sig":"MEYCIQCrwdNoROxDf2NkhxGcIgRafnunWs9Ie//gk+01ytOfQAIhAMnvoJLv5XPkbUXhDJU3a9O5tzeHgwnprU0tCEqideXh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":683156},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"2eb574fcdd567f02638239a474a33337da64f507","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2f6e2cf9-8617-4496-848f-e5ed1f228ae1"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.0_1776006254625_0.1915786347966144","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bulkhead-ai/core","version":"0.5.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.5.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"cd832e0dd5e88dc6d48a282506d6df193327aac2","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.5.0.tgz","fileCount":20,"integrity":"sha512-2O3VqH1NakI8M6XOL2xBYTRk9s3cCD2AdaEOyPcfgMb+QSyHXe4fCOvYArDG0rNtWZKRhGP029WUYZ7HmEmmtQ==","signatures":[{"sig":"MEUCIA7zvcBRMAGqxeCyset2sDIYbPcQOmC0cYxbkz9EZIrYAiEAynz83VLwrxpE33FSsV00Tvvq9NZqInp3QsjNZvm+gZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681966},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"eb50bed92069f5ef29c77fcec5cca9173d2f950b","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2f6e2cf9-8617-4496-848f-e5ed1f228ae1"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.0_1776014269297_0.6692402786151366","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@bulkhead-ai/core","version":"0.5.2","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.5.2","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"9cce58d24e845c90a3a1fff17a653aa6d2c43840","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.5.2.tgz","fileCount":20,"integrity":"sha512-eDRJfFfdISUM707yw/QWOreO1iK9u6//lYORDcTvnT2vIxoaqbxTbM1Eu4DL1DBP2BCq3f9pUHqTX9R1MvkeJw==","signatures":[{"sig":"MEUCIEC9OgusYlo6UOV/RCUfRDGojj0Dprf+hcQDUQTGT5Q3AiEAkxYbUR8BcIvck4vCSF508/K1n4oJUQAxkOSECxFCQw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":692840},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"320fddb92db72351483bc413abf037046bd85bf0","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2f6e2cf9-8617-4496-848f-e5ed1f228ae1"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.2_1776191371901_0.0019738961028199498","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@bulkhead-ai/core","version":"0.5.3","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.5.3","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"3c318fffe267d3df6bbbf6e5459b95ed0e3e1fc7","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.5.3.tgz","fileCount":20,"integrity":"sha512-6cQRB4AHPie3jEypd2Pjl0B8/xezlwsAFvHZLyA2qwgCeW5wUnzsCbj5p7BhCbat8jI887WxfU/AgzLfDHlxmg==","signatures":[{"sig":"MEUCIE1uNU/GaN5TuW47eWP9IVZxPhV2TTGlDtTXL95S30iJAiEA0LAjAW5ijgl0IQM1G3ogBKEexDoFvBn3VFOGR867qoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":879052},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"f4fc64dd617994354fa877360a72aeda87c956a2","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2f6e2cf9-8617-4496-848f-e5ed1f228ae1"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.13.0","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.3_1777822912157_0.4613040635155148","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@bulkhead-ai/core","version":"0.5.4","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.5.4","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"607f5a58ec56e24c70feda64f9b665d6f7302ac3","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.5.4.tgz","fileCount":20,"integrity":"sha512-Pg1h9kpOzuoFcVQp7OSePCnvsmAsH59KDk2o1LN+FO0r25+FH/ZnWRQEG3XmmRAihy1YiIYdP/bi0xfsTuZw/w==","signatures":[{"sig":"MEQCIC7LgYZfZv0iOIzbbfa2XoIdx1iM3ARVFVy5LgnUMGAUAiAL1e5Ct40+EtBVtT9B55b0qdh5gPsjrcZmddvn0ZI63g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":883904},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"06c423f8eb347babf2b9650fc388eb5fd6def04e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2f6e2cf9-8617-4496-848f-e5ed1f228ae1"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.13.0","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.4_1777849410615_0.9777376785303844","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@bulkhead-ai/core","version":"0.5.6","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.5.6","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"20c822bf527172a7946a482485b7dc92a4658a56","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.5.6.tgz","fileCount":20,"integrity":"sha512-U+wU0g0YSELXy/KJmuSBPbWJAdNbfAoJBDXKLJJGV5503S8B6zD8oHRdtc7S508rqzf4NN13J5sL6ObLe/wx7Q==","signatures":[{"sig":"MEUCIFzLxB5jznjbnRohUy3bv4R17wKbtfXK1UDyKH+WaCmjAiEAmTjJsaNPMNJrGNv3ABAO49WoDcJzE/3fH3kefvZ+VcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":883904},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"e5924ce8095d228dcd0780580fa89fcaeb062e51","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.13.0","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.5.6_1777911814853_0.936391685929647","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bulkhead-ai/core","version":"0.6.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.6.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"2ca2b2c632b0a476a6f31e72f808872a4dda1cc5","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.6.0.tgz","fileCount":20,"integrity":"sha512-k1T7pmb6JdxcrNNfZ0agbwMU0vpn75BipKmXcnhBBaV2HLMw2G4S4rmjKGtocbOai8TvWyNx6bvYQyaIGslcjQ==","signatures":[{"sig":"MEUCIQDIgp74FpZCKGCUcZAQhllYyZLbwRuJRSQhvCqM3B5inwIgA+ausfN5tUpryrYn8+EB/8hCH9SAYQpOsUTkruk3Qqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":887140},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"a381854cbdd673b6e8877af26e99ab657d9ee7fc","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bf26e1d6-ecaa-4211-9d81-0043f5361c40"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.16.0","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.6.0_1780012988740_0.05204295715410856","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bulkhead-ai/core","version":"0.7.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.7.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"5ce3adcb7837ac76309c69e0222ef44b207af3e9","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.7.0.tgz","fileCount":20,"integrity":"sha512-qJfEGsAojSalSA0TabTLKQe8IX4/ixOB0H0ppI2V/N9vhQD9urT6xuBJR6sto+7qRrI5R0E9DM8ooJ9TMO1k7w==","signatures":[{"sig":"MEYCIQCT8P3u826FNrVmW8pU+BG0wmxrJ4t6dcUPCz0/jmfD7QIhAO/7MK7BFrvVlw9xzCEmcAyfOVNizoDzxRv8I4QB9vdw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":897326},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"27de6fdd90c8fcf7ce757b1f269eb9aaac2fcf8a","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bf26e1d6-ecaa-4211-9d81-0043f5361c40"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"11.16.0","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.7.0_1780510570589_0.1813909093670356","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@bulkhead-ai/core","version":"0.9.0","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"license":"MIT","_id":"@bulkhead-ai/core@0.9.0","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"dist":{"shasum":"082c295d3d204a5f22dedca004c89c3f0067a39a","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.9.0.tgz","fileCount":20,"integrity":"sha512-o5Kt/H6vwHbLtKspoI2jEHrCUH7JGWRiHWlo/3I+eqvjcP4N3juegQw99dcccSlKiSJh/t0gPYwHWn4T6XyweA==","signatures":[{"sig":"MEUCID3Fo6/cE0tdr1OjIcR8l6LtJyIeMQN5dYkRpXQ7jI/EAiEAhnwn7I7IzA/vnArYRJjPF8frW9GsN9eac9Q8wKugBw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025978},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"gitHead":"c13586a5d1c0d5c41df1c1ddc7441d0789bf1237","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bf26e1d6-ecaa-4211-9d81-0043f5361c40"}},"repository":{"url":"git+https://github.com/floatingsidewal/bulkhead.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.1","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"string-similarity":"^4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","@types/string-similarity":"^4.0.2","@huggingface/transformers":"^3.0.0"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.9.0_1785168303804_0.1503542106280389","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@bulkhead-ai/core","version":"0.9.1","description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","license":"MIT","repository":{"type":"git","url":"git+https://github.com/floatingsidewal/bulkhead.git","directory":"packages/core"},"homepage":"https://github.com/floatingsidewal/bulkhead#readme","bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"sideEffects":false,"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./cascade":{"types":"./dist/cascade/index.d.ts","import":"./dist/cascade/index.mjs","require":"./dist/cascade/index.js"}},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit"},"dependencies":{"string-similarity":"^4.0.4"},"peerDependencies":{"@huggingface/transformers":"^3.0.0"},"peerDependenciesMeta":{"@huggingface/transformers":{"optional":true}},"devDependencies":{"@huggingface/transformers":"^3.0.0","@types/string-similarity":"^4.0.2","tsx":"^4.7.0"},"gitHead":"ac58e459958a24895462556f9df0e01e05def85d","_id":"@bulkhead-ai/core@0.9.1","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-Drdl3I9vTrP20rkFMbztTP8cPkuPW7o6/74F+80xpE/bmchuCReSBNmevoNsVdgazMPwBC60GcAhGnJNdosIGA==","shasum":"b22408d213f18f86cb7770d99f6dde399e0cd450","tarball":"https://registry.npmjs.org/@bulkhead-ai/core/-/core-0.9.1.tgz","fileCount":20,"unpackedSize":1026074,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bulkhead-ai%2fcore@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCaWazLQR/8zViHlhql1BBPTDZjT8ve1pUb2nCIXl+6xgIhALrlXiwXsB26MVH10XGW5NJAHPeR4m+puvykNvcEyiK3"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bf26e1d6-ecaa-4211-9d81-0043f5361c40"}},"directories":{},"maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.9.1_1785170992125_0.299509243168375"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T14:20:41.022Z","modified":"2026-07-27T16:49:52.703Z","0.3.0":"2026-04-12T14:20:41.307Z","0.4.0":"2026-04-12T15:04:14.813Z","0.5.0":"2026-04-12T17:17:49.510Z","0.5.2":"2026-04-14T18:29:32.082Z","0.5.3":"2026-05-03T15:41:52.350Z","0.5.4":"2026-05-03T23:03:30.781Z","0.5.6":"2026-05-04T16:23:35.056Z","0.6.0":"2026-05-29T00:03:08.957Z","0.7.0":"2026-06-03T18:16:10.771Z","0.9.0":"2026-07-27T16:05:03.973Z","0.9.1":"2026-07-27T16:49:52.302Z"},"bugs":{"url":"https://github.com/floatingsidewal/bulkhead/issues"},"license":"MIT","homepage":"https://github.com/floatingsidewal/bulkhead#readme","keywords":["pii","redaction","secrets","guardrails","content-safety","mcp","prompt-injection","dlp"],"repository":{"type":"git","url":"git+https://github.com/floatingsidewal/bulkhead.git","directory":"packages/core"},"description":"Cascading content protection engine — PII detection, secret scanning, prompt injection defense","maintainers":[{"name":"wtf_is_going_on","email":"floatingsidewalk@gmail.com"}],"readme":"# Bulkhead Core\n\nCascading content protection engine -- detects and redacts PII, secrets, prompt injection, and system prompt leakage in text before it reaches LLMs.\n\nPart of the [Bulkhead](https://github.com/floatingsidewal/bulkhead) project.\n\n## Install\n\n```bash\nnpm install @bulkhead-ai/core\n```\n\nAlso available as `@floatingsidewal/bulkhead-core` via [GitHub Packages](https://github.com/floatingsidewal/bulkhead/packages).\n\n## Quick Start\n\n```typescript\nimport { createEngine } from \"@bulkhead-ai/core\";\n\nconst engine = createEngine();\n\n// Fast regex-only scan (sub-millisecond)\nconst result = await engine.analyze(\"My SSN is 123-45-6789 and key is AKIAIOSFODNN7EXAMPLE\");\n\nconsole.log(result.passed);      // false\nconsole.log(result.detections);   // [{ entityType: \"US_SSN\", ... }, { entityType: \"AWS_ACCESS_KEY\", ... }]\n\n// Scan and redact\nconst redacted = await engine.scan(\"Call me at 555-867-5309\");\nconsole.log(redacted.redactedText); // \"Call me at [REDACTED-US_PHONE]\"\n```\n\n## Sanitize JSON-Compatible Documents\n\n`sanitizeDocument()` is the recommended API for objects and arrays. It scans\nkeys and string values before mutation, resolves overlapping detections once,\nuses one consistency map and temporal anchor for the document, and reports\npre-treatment detections separately from post-treatment safety.\n\n```typescript\nimport { sanitizeDocument } from \"@bulkhead-ai/core\";\n\nconst result = await sanitizeDocument(\n  {\n    contact: \"person@example.com\",\n    opened: \"2026-07-10\",\n    events: [{ occurred: \"07/12/2026\" }],\n  },\n  \"eval\",\n  { localizedDateOrder: \"mdy\" },\n);\n\nif (!result.metadata.postTreatment.safe ||\n    !result.metadata.postTreatment.structurallyValid) {\n  throw new Error(\"Sanitization boundary rejected output\");\n}\n\nconsole.log(result.value);\nconsole.log(result.metadata.detectedRisk);\n```\n\nLocalized dates require an explicit `mdy`, `dmy`, or `reject-ambiguous`\nchoice. Detected dates that are ambiguous, invalid, or unsupported are replaced\nwith `[REDACTED-DATE_TIME]` by default rather than passing through unchanged.\n\n## What It Detects\n\n| Category | Coverage |\n|----------|----------|\n| **PII** | 45+ entity types across 20+ countries (SSN, credit cards, IBAN, phone, email, medical IDs, national IDs) |\n| **Secrets** | 154 patterns across 13 categories (AWS, Azure, GCP, GitHub, Slack, Stripe, database credentials, private keys) |\n| **Prompt Injection** | 16+ patterns (role-play attacks, DAN mode, instruction override) |\n| **System Prompt Leakage** | 7+ patterns (prompt extraction, \"repeat everything above\") |\n\nAll structured patterns include checksum validation where applicable (Luhn, IBAN mod-97, Verhoeff).\n\n## Policy Scanning\n\n```typescript\nimport { createEngine, getPolicy } from \"@bulkhead-ai/core\";\n\nconst engine = createEngine({\n  enabled: true,\n  debounceMs: 500,\n  guards: {\n    pii: { enabled: true },\n    secret: { enabled: true },\n    injection: { enabled: true },\n    contentSafety: { enabled: false },\n  },\n  cascade: {\n    modelEnabled: false,\n    escalationThreshold: 0.75,\n    contextSentences: 3,\n    modelId: \"Xenova/bert-base-NER\",\n  },\n  policy: \"strict\",\n});\n\nconst policy = getPolicy(\"strict\");\nconst { risk } = await engine.policyScan(inputText, policy);\nconsole.log(risk.level);        // \"critical\" | \"high\" | \"medium\" | \"low\" | \"none\"\nconsole.log(risk.issues);       // classified issues by category and severity\nconsole.log(risk.testDataFlags); // synthetic/eval data detected\n```\n\n## BERT Layer (Optional)\n\nFor contextual entities like names, locations, and organizations:\n\n```bash\nnpm install @huggingface/transformers\n```\n\n```typescript\nconst engine = createEngine({\n  // ...\n  cascade: { modelEnabled: true, /* ... */ },\n});\n\nconst result = await engine.deepScan(\"Send the report to John Smith at Acme Corp\");\n```\n\nThe BERT model (~29 MB) downloads on first inference and runs in a worker thread. No GPU required.\n\n## Documentation\n\nSee the [How-To Guide](https://github.com/floatingsidewal/bulkhead/blob/develop/docs/how-to.md) for comprehensive examples and the [full documentation](https://github.com/floatingsidewal/bulkhead/tree/develop/docs) for architecture, deployment, and API reference.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}