{"_id":"@chenpu17/prompt-armor","_rev":"10-bb1f2a69004ad3090462104ddc3272f4","name":"@chenpu17/prompt-armor","dist-tags":{"latest":"0.3.12"},"versions":{"0.1.0":{"name":"@chenpu17/prompt-armor","version":"0.1.0","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.1.0","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"cecff4635a9d5367d67154ddcfd84db6fdb10d76","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.1.0.tgz","fileCount":25,"integrity":"sha512-AESXYVcStta+m96EpFBHVoeXoDeaU4BdtFah8VIYWpgx3U5QA7/+JI3izS+UyPyDXh4ioCTNO15XN25HrcQ6SA==","signatures":[{"sig":"MEQCIAeXL51uKpdJcFXcE3AZ6XHAGIxekSF/cdGBwKda71RjAiBazD+nYE5oOSa4jND+ukfIZTHdWP5dgA8acB69XU5a/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":821837},"type":"module","engines":{"node":">=18"},"gitHead":"90d2ab6117eb0a0de74263a0b81eaab7e6b65705","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.1.0_1777382216753_0.48523449890294024","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chenpu17/prompt-armor","version":"0.1.1","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.1.1","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"38165f8afcd7aa92aceb7ac8d7515029ca626baf","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.1.1.tgz","fileCount":25,"integrity":"sha512-VlthORUympH1hsjdX2kQNfMzKz0ZyJysQxIVSIAg2IpOtlnJpS+vTWMZdVv41Ihfk9Bi8msMd+UjcwwvVoiasg==","signatures":[{"sig":"MEUCIQDmW6LOOfEo2F7jFr2Zv0x1PyH/jVVEjfUuhpWblX11kwIgd2me9A5yMdhagRhJj9YYXi1k0h5kOllbjbM52J7y4hY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":824864},"type":"module","engines":{"node":">=18"},"gitHead":"0245294de398557025efdddb0005ba01e1fed1bb","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.1.1_1777382706442_0.41353727467013757","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@chenpu17/prompt-armor","version":"0.2.0","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.2.0","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"20b2da07318e7ec2bf85e91b36b98f298e05f013","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.2.0.tgz","fileCount":27,"integrity":"sha512-iMkITi/6QvVS1Wb+d466Bm+WCq1iPhDjzELSLMM5QDsvn2yLtu4fLrRgeGn7U7wsfRSDCX4xmUw1475MLJD0qw==","signatures":[{"sig":"MEUCIGdEy5q4bwFUPqz4N6eMCcvNNlDhPnmvRkAlUwDIi2i7AiEA636pjTuQNahp4WhmP7wxxUxihRRgBqo8tHfBZPYe924=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":868188},"type":"module","engines":{"node":">=18"},"gitHead":"806771717de1edc644d5fd200300d6ec662b29df","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.2.0_1777388410847_0.6443084907144443","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@chenpu17/prompt-armor","version":"0.2.1","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.2.1","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"c0d07ad42204d2eba364cfc9da95546ece4a35d0","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.2.1.tgz","fileCount":27,"integrity":"sha512-EIK3f9sf6WORh0w1tPpPGKpukjQy2wyDpJ2IUeV9TRr6Bi43KNH/EH1aEr9E13wLhE+e7X6W+LwSpfRXEDgEIg==","signatures":[{"sig":"MEUCIQDNjhKAzRPdB79NBA5TTNJoycUWqrULg+SgwfysmHivkwIgeAI63Id+3RidjMp+Y6aIkjq0sWOiNeyOB1NO6YBqNAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870223},"type":"module","engines":{"node":">=18"},"gitHead":"80e5e1bf96df1142820e56893801d36f4e9092df","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.2.1_1777391554807_0.451827013709144","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@chenpu17/prompt-armor","version":"0.3.0","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.3.0","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"ec018263aaad1a52d03a987b8d4b15df5abd2648","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.0.tgz","fileCount":31,"integrity":"sha512-ZiwQdTaPzA85svfmSoA9LQf+kkJhLIGqQM0g7PtyY7j+7g2LaLVxHlaT2bV8AeTQB9dDQMQSuTEm5zBd9WnFUw==","signatures":[{"sig":"MEUCIQDafzyn8nqcFzD2XCngShbzlEUvsQk6oX+rf6UaYJ2y2gIgdbqLUaCASIj7PEVUT+DUTADrXY/klb/Qw1qNVHa8iSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3118765},"type":"module","engines":{"node":">=18"},"gitHead":"3248fc2ba6b542c5162df30011d8ae2ae2121ef3","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.3.0_1777422260756_0.5557092915937079","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@chenpu17/prompt-armor","version":"0.3.1","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.3.1","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"13ad9366de833ee7a86e747705380228b618f6c7","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.1.tgz","fileCount":31,"integrity":"sha512-Nz2z9kJskYJOcVFJZLU0Z0EZB7DjWnlzDubC3OpsweH8XGVg6HtBrB161lwjaaCD6xW0K0g7Cek7vcoRwGG26g==","signatures":[{"sig":"MEUCIQDxugb/GDU+Q1tMWuT9Eyon73KIBxkzG0Fg3Cbyd3tqmAIgAyhX+hO1t9hx3deNDY84Whuc1ztTTRUr1UextDrD/8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3141547},"type":"module","engines":{"node":">=18"},"gitHead":"399e4f4fc21fcf1145eefff33dc7d6198b82431b","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && npm run build:server && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev","build:server":"npm -w packages/server run build"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.3.1_1777428202413_0.10432975054989835","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@chenpu17/prompt-armor","version":"0.3.2","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.3.2","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"aaafc671754321cde32155ee2b86a5a13efdc151","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.2.tgz","fileCount":12,"integrity":"sha512-RgGApALOucqh/zljyD5Tkt/0GylJ3YIePsCjsrpho7cAr2qCobUgdLdAn4q9DpxpSMGgmB0wz0GWtJGuNpGzSg==","signatures":[{"sig":"MEQCIEXPULBNQLPM4F5GRhrJljQZvRp65qybMIl7Cttev8U9AiB6Fnlk9OMBpDXEGT7iCME9IZx7VME1ndrnZGchdl2SrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5073465},"type":"module","engines":{"node":">=18"},"gitHead":"b0200da25c00a80b6893ff99cf39e8dccc83854e","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","dependencies":{"better-sqlite3":"^11.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.3.2_1777429014212_0.8217963634818999","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@chenpu17/prompt-armor","version":"0.3.10","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.3.10","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"cb5763a1aeb8f8a91ff6cf96b75027cfe1b573dd","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.10.tgz","fileCount":12,"integrity":"sha512-JMYnuwm26hKetRV4BGRis/ywTD7gXiPmCtPX0P5h7koPDkqcMt5WezDDRfCeoCuFSHjsBNhnxJb3wBRZIaCPGw==","signatures":[{"sig":"MEQCIG+zhR/tUKDebN82JC87WgBIeErDKxc+o80bc3id+GjAAiBX4eUAdwn9eY0JTWpraZ3+qKzeEYDfEuim6PPFgBlmcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046410},"type":"module","engines":{"node":">=18"},"gitHead":"a10e0cf5ac188234aace2672aa5f921334cbc4c3","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","dependencies":{"better-sqlite3":"^11.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.3.10_1777507629222_0.6456672393816918","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@chenpu17/prompt-armor","version":"0.3.11","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","_id":"@chenpu17/prompt-armor@0.3.11","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"bin":{"prompt-armor":"bin/prompt-armor.js"},"dist":{"shasum":"3af769701104d9af39d617b669e7d6e6131b8394","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.11.tgz","fileCount":12,"integrity":"sha512-jERGgG89UW/hl/y9qp0WnH/lct2jRkgnBm3vPpPoEpA40D1/Va4dmDHTiF4XkDm5hPNJz/C1cOo2mf1U0GnWLQ==","signatures":[{"sig":"MEYCIQCNr5TF4Nunt+upQ+r7qtnqvbuUptiAhFNSxedM/OJ57wIhALAkOxM8xn4UNvJ2bU/V5sSo8N32dH7HD95oW9RRWcua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5050241},"type":"module","engines":{"node":">=18"},"gitHead":"93ad391362941198eb5761e517c3634b8ad2e012","scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","build":"npm run build:web && node scripts/bundle.mjs","start":"node bin/prompt-armor.js","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","dev:server":"npm -w packages/server run dev"},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"repository":{"url":"git+https://github.com/chenpu17/prompt-armor.git","type":"git"},"workspaces":["packages/server","packages/web"],"_npmVersion":"10.8.2","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","directories":{},"_nodeVersion":"20.20.2","dependencies":{"better-sqlite3":"^11.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","concurrently":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/prompt-armor_0.3.11_1777509611070_0.9357821273134346","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@chenpu17/prompt-armor","version":"0.3.12","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/chenpu17/prompt-armor.git"},"homepage":"https://github.com/chenpu17/prompt-armor#readme","bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"type":"module","description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","bin":{"prompt-armor":"bin/prompt-armor.js"},"scripts":{"dev":"concurrently -n server,web -c magenta,cyan \"npm run dev:server\" \"npm run dev:web\"","dev:server":"npm -w packages/server run dev","dev:web":"npm -w packages/web run dev","build:web":"npm -w packages/web run build","build":"npm run build:web && node scripts/bundle.mjs","start":"node bin/prompt-armor.js"},"devDependencies":{"concurrently":"^9.0.1","esbuild":"^0.21.0"},"workspaces":["packages/server","packages/web"],"keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"license":"MIT","engines":{"node":">=18"},"dependencies":{"better-sqlite3":"^11.3.0"},"_id":"@chenpu17/prompt-armor@0.3.12","gitHead":"cf740f57698d86cf87ae854caa9633d1c78bcbc1","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-eUu1yo8gNLVYRZWaJnLzY5ur0H9M0adrot8W/avHSzhqKGw8lPyavTW3WSdTqyebU7JrQTpA8gBWi8AbKLVSuQ==","shasum":"9179e9868d1688bf9cc4eb7f7e86dcc07266dac0","tarball":"https://registry.npmjs.org/@chenpu17/prompt-armor/-/prompt-armor-0.3.12.tgz","fileCount":13,"unpackedSize":5052324,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCdGxrqfmlDXN2Q7UXXZPPcquyB8MrPbiyoTNZ8+pOApwIgKGyHSHU9H7vtIHD1VQQiANmv3tMde2zF8n1n/h2VkSs="}]},"_npmUser":{"name":"cppupu","email":"cppupu@126.com"},"directories":{},"maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prompt-armor_0.3.12_1777512573684_0.5880331689903129"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T13:16:56.667Z","modified":"2026-04-30T01:29:34.087Z","0.1.0":"2026-04-28T13:16:56.897Z","0.1.1":"2026-04-28T13:25:06.668Z","0.2.0":"2026-04-28T15:00:11.090Z","0.2.1":"2026-04-28T15:52:34.993Z","0.3.0":"2026-04-29T00:24:21.041Z","0.3.1":"2026-04-29T02:03:22.759Z","0.3.2":"2026-04-29T02:16:54.491Z","0.3.10":"2026-04-30T00:07:09.517Z","0.3.11":"2026-04-30T00:40:11.384Z","0.3.12":"2026-04-30T01:29:33.958Z"},"bugs":{"url":"https://github.com/chenpu17/prompt-armor/issues"},"license":"MIT","homepage":"https://github.com/chenpu17/prompt-armor#readme","keywords":["llm","security","prompt","redteam","evaluation","openai","ai-guard"],"repository":{"type":"git","url":"git+https://github.com/chenpu17/prompt-armor.git"},"description":"LLM 防护提示词工厂 — 生成、优化、评测系统级安全提示词，针对会触发工具调用的 AI 应用","maintainers":[{"name":"cppupu","email":"cppupu@126.com"}],"readme":"# Prompt Armor | LLM 防护提示词工厂\n\n[English](./README.md) | [简体中文](./README.zh-CN.md)\n\n[![npm version](https://img.shields.io/npm/v/@chenpu17/prompt-armor.svg)](https://www.npmjs.com/package/@chenpu17/prompt-armor)\n[![CI](https://github.com/chenpu17/prompt-armor/actions/workflows/ci.yml/badge.svg)](https://github.com/chenpu17/prompt-armor/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nPrompt Armor 是一个本地化工作台，专门用于为“会触发工具调用的 AI 应用”生成、评测、优化系统级安全提示词。\n\n- 基于业务背景生成高质量防护提示词\n- 生成红队攻击样本与正常对照样本\n- 运行带报告和失败明细的对抗评测\n- 通过 Auto-Pilot 自动闭环优化提示词\n- 用 OpenAI 兼容接口分别配置 4 个模型角色\n- 以流式方式执行长耗时生成、优化、评测任务\n\n## 产品界面\n\n<table>\n  <tr>\n    <td><img src=\"https://raw.githubusercontent.com/chenpu17/prompt-armor/main/packages/web/public/screenshots/auto-pilot.png\" alt=\"Auto-Pilot\" /></td>\n    <td><img src=\"https://raw.githubusercontent.com/chenpu17/prompt-armor/main/packages/web/public/screenshots/reports.png\" alt=\"Evaluation Reports\" /></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><strong>Auto-Pilot</strong><br/>自动优化闭环</td>\n    <td align=\"center\"><strong>Reports</strong><br/>评测报告与失败明细</td>\n  </tr>\n  <tr>\n    <td><img src=\"https://raw.githubusercontent.com/chenpu17/prompt-armor/main/packages/web/public/screenshots/prompts.png\" alt=\"Guardrail Prompts\" /></td>\n    <td><img src=\"https://raw.githubusercontent.com/chenpu17/prompt-armor/main/packages/web/public/screenshots/samples.png\" alt=\"Attack Samples\" /></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><strong>Guardrail Prompts</strong><br/>防护提示词生成与迭代</td>\n    <td align=\"center\"><strong>Attack Samples</strong><br/>攻击样本生成与管理</td>\n  </tr>\n</table>\n\n## 它解决什么问题\n\n如果你的产品让 LLM 输出工具调用 JSON，再由运行时去执行这些工具，那么提示词注入和不安全输出仍然可能导致文件读取、命令执行、密钥泄露、提示词泄露，或者生成违规内容。\n\nPrompt Armor 提供的是一套可重复的工程化流程，而不是一次性的“手写安全提示词”。\n\n## 核心能力\n\n### 1. 防护提示词生成\n\n- 基于业务背景、工具面和风险重点生成 system prompt\n- 支持从失败样本反推并迭代优化提示词\n\n### 2. 红队样本生成\n\n- 基于自然语言种子生成攻击样本和正常对照样本\n- 支持合并已有样本集，并保留类目覆盖信息\n\n### 3. 对抗评测\n\n- 配置目标模型、裁判模型、提示词、样本集和工具档案\n- 跟踪通过率、拒绝率、禁用工具触发率、信息泄露率和分品类表现\n\n### 4. 自动优化闭环\n\n- 自动生成初版提示词与初始测试集\n- 评测、收集失败、刷新薄弱类目、优化提示词，并持续循环直到达到目标阈值或不再提升\n\n### 5. 内置 Mock 工具面\n\n- 内置 OpenClaw 风格的 mock 工具，如 `fs`、`shell`、`network`、`memory`、`secret`、`skill_invoke`\n- 工具只暴露给目标模型用于声明调用，不真正执行，系统只记录是否触发\n\n## 工作流\n\n### 手动模式\n\n1. 配置四个模型角色：生成器、攻击样本生成器、目标模型、裁判模型\n2. 生成或组合攻击样本集\n3. 基于样本生成防护提示词\n4. 对目标模型运行评测\n5. 查看失败用例，并把提示词优化到下一版\n\n### 自动优化\n\n填写运行名称、业务背景、几条种子样本、四个模型端点和迭代轮数后，Prompt Armor 会自动执行 `generate -> evaluate -> optimize -> refresh` 的完整闭环。\n\n## 一键启动\n\n```bash\n# 不安装直接运行\nnpx @chenpu17/prompt-armor\n\n# 或全局安装\nnpm i -g @chenpu17/prompt-armor\nprompt-armor\n```\n\n启动后默认会打开 `http://127.0.0.1:7842`，数据存放在 `~/.prompt-armor/data.db`。\n\n### CLI 选项\n\n```bash\nprompt-armor --help\nprompt-armor --version\nprompt-armor --port 8080\nprompt-armor --host 0.0.0.0\nprompt-armor --no-open\n```\n\n环境变量：`PORT`、`HOST`、`NO_OPEN=1`、`PROMPT_ARMOR_DATA_DIR`\n\n## 模型接入方式\n\nPrompt Armor 采用四个独立模型角色，全部通过 OpenAI 兼容接口接入：\n\n- 提示词生成器\n- 攻击样本生成器\n- 被评测目标模型\n- 裁判模型\n\n可以混合使用 OpenAI、DeepSeek、Qwen、Moonshot、Ollama 或自建兼容网关。\n\n## 本地开发\n\n```bash\ngit clone https://github.com/chenpu17/prompt-armor.git\ncd prompt-armor\nnpm install\n\n# 一条命令同时启动 server + web 开发模式\nnpm run dev\n\n# 或拆开运行\nnpm run dev:server\nnpm run dev:web\n```\n\n构建发布产物：\n\n```bash\nnpm run build\nnode bin/prompt-armor.js\n```\n\n## 发布\n\nCI 会在推送到 `main` 时执行。npm 发布由推送符合 `v*` 的版本 tag 触发。\n\n```bash\ngit tag -a vX.Y.Z -m \"vX.Y.Z\"\ngit push origin main\ngit push origin vX.Y.Z\n```\n\n## 许可\n\nMIT © chenpu17\n","readmeFilename":"README.zh-CN.md"}