{"_id":"@tenova/swt3-ai","_rev":"40-79d4d42ff6851a5751fda2fda3b47f54","name":"@tenova/swt3-ai","dist-tags":{"latest":"0.7.4"},"versions":{"0.1.0":{"name":"@tenova/swt3-ai","version":"0.1.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenova.io"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.1.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://github.com/tenova/swt3-ai#readme","bugs":{"url":"https://github.com/tenova/swt3-ai/issues"},"dist":{"shasum":"d7d06d057c30411e1e3438d439a8d898c62c04ef","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.1.0.tgz","fileCount":38,"integrity":"sha512-71FU0vwPSYLjQLf0b/Lrs4ArYs1R2SdfWXcGWdnE7grKjtuKh9oHoRsfcmTQT1bJjt7VRhVNy9WZ8s+wMXG6SQ==","signatures":[{"sig":"MEUCIQCnjJ3PYdcJiF6iPq++VrmYoBgo5CvxLm0+V9R2tRPnfwIgVMtL1W5+qt3gz1QkPkrYU7XIzQydzCLa172c7m9F3gI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101194},"main":"dist/index.js","type":"module","_from":"file:tenova-swt3-ai-0.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"_resolved":"C:\\Users\\TeNova-Admin\\Desktop\\tenova-swt3-ai-0.1.0.tgz","_integrity":"sha512-71FU0vwPSYLjQLf0b/Lrs4ArYs1R2SdfWXcGWdnE7grKjtuKh9oHoRsfcmTQT1bJjt7VRhVNy9WZ8s+wMXG6SQ==","repository":{"url":"git+https://github.com/tenova/swt3-ai.git","type":"git"},"_npmVersion":"11.8.0","description":"SWT3 AI Witness SDK — cryptographic attestation for AI inference","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.1.0_1775015769202_0.4945237585620852","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@tenova/swt3-ai","version":"0.2.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://github.com/tenova/swt3-ai#readme","bugs":{"url":"https://github.com/tenova/swt3-ai/issues"},"dist":{"shasum":"a05dc1a8258cc6dfa2700fdf3191d287026d6dd6","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.0.tgz","fileCount":42,"integrity":"sha512-oKVwz3hs0uotMfOzrtjDFiBTwrGrH4PoZb1hfuNa+DQKJoGJOlNI19m+ed7nMS9MerO9yG5wgsp0BC5nXeoiUg==","signatures":[{"sig":"MEUCIQD6iipO5zd65sk/qD0Kv+6Nnf7vHz0BgvDjQESlyrg3qAIgRUw44LihCblodWuF6wg4HZQotf/VnW5bAX7iVguylHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120618},"main":"dist/index.js","type":"module","_from":"file:tenova-swt3-ai-0.2.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"_resolved":"C:\\Users\\TeNova-Admin\\Desktop\\tenova-swt3-ai-0.2.0.tgz","_integrity":"sha512-oKVwz3hs0uotMfOzrtjDFiBTwrGrH4PoZb1hfuNa+DQKJoGJOlNI19m+ed7nMS9MerO9yG5wgsp0BC5nXeoiUg==","repository":{"url":"git+https://github.com/tenova/swt3-ai.git","type":"git"},"_npmVersion":"11.8.0","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.0_1775111666344_0.3938993746504833","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@tenova/swt3-ai","version":"0.2.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://github.com/tenova/swt3-ai#readme","bugs":{"url":"https://github.com/tenova/swt3-ai/issues"},"dist":{"shasum":"f97e0201e20906d08c709bae140e557b630703ae","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.1.tgz","fileCount":46,"integrity":"sha512-y+HJpR1Oy93X1k6oYjSaW+xAueLcbMPxfRV2rs1ImYfwxrWr1a3nTDu+9stfHKOpjC9rSgeTKsnnrrojcfkhvQ==","signatures":[{"sig":"MEUCIF+FYzWn7mhsyIz1YCAgLUBvW1OwFt0tSV7au1EgRFsqAiEAuDgnHDVo/DXXMCXkTq3hV1Y4qEakJ1rkHby9kDG+qQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130528},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ad25e53719bb78a7163efc2e490f0472714f9789","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.1_1775417695460_0.26694905573290595","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@tenova/swt3-ai","version":"0.2.2","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.2","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"dist":{"shasum":"49b9f235306962b21974e0d8296ed1def5288832","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.2.tgz","fileCount":46,"integrity":"sha512-+JblGhTQP8EVYbyUVIsqm35ijWkdkLHaOsvuCSZQCUeDqdiUGZ4R7Ish0L6qdUa4s7uAvvW4bn0U42yzr4tnbw==","signatures":[{"sig":"MEUCICMBs9lSiPRYVF4tUW1IdF97ohveJwZvIMPolPkNg4yKAiEAoDZw76lZ9JFx/W7UgZr1aMckR0+F8dRH3Lwk7n0VOQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130644},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ad25e53719bb78a7163efc2e490f0472714f9789","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.2_1775606921203_0.1279195942830229","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@tenova/swt3-ai","version":"0.2.3","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.3","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"dist":{"shasum":"3e649666069bc91a85f574ded4675c5111513b80","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.3.tgz","fileCount":46,"integrity":"sha512-dUDT/rLOdxNVLcfppjdeMLsClkwpeOl5SSPE1AFf3s2X3aZnTS2tGYQEUCmrh3JmZZNz8jOrqQfJxtjKHHV9aA==","signatures":[{"sig":"MEYCIQChg6S28UxlNdGF7CVl3SNnYkYPAf3FVM95guX4GIv9jwIhAJxU47uvE7HhM3Dzij2LDUOpVU21ap54/JKynPmYdzJi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131414},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ad25e53719bb78a7163efc2e490f0472714f9789","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.3_1775731713931_0.5143106415085219","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@tenova/swt3-ai","version":"0.2.4","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.4","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"94c6071c51c73c48402d70f5470d93840ca66638","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.4.tgz","fileCount":50,"integrity":"sha512-W9wKn2VQ3z0CADVNs5aaTSwDlYk6VhPXNMULTAzG6mhBpNn1/qqh/UdhVRNCMOYEaKWk2YM1+A+11PXU6NDr0A==","signatures":[{"sig":"MEYCIQCpnK6Ziv0p67M3GG0Opksz6GMgZKmNYtPK5ooJq79nNQIhAIJ+Y0tahb9R8i8jJglKV9sC2Ntm6EXAhy1aAdV0VAEs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144709},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ad25e53719bb78a7163efc2e490f0472714f9789","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.4_1775800809793_0.8751746538649792","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@tenova/swt3-ai","version":"0.2.5","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.5","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"bcbc3b5be2c0785bdfbb1665b5852713746b8bd5","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.5.tgz","fileCount":50,"integrity":"sha512-NEhnE65SzO9XD49jtDakOMvjijTpb7qqT/T44i00osZ5EEZ8AQHQ5ymjinZwHex1WpwkVFpsYW+mHA36RFWDMQ==","signatures":[{"sig":"MEYCIQC9ER+zbxwhO9GT7Fr3s8RKU1FJWCNCyjrxmc5Cu/YXmAIhAIdT3HLkutll8wZu8xq50OF9Ms+KwrhZvrMTrXQgMwWx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146078},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ad25e53719bb78a7163efc2e490f0472714f9789","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.5_1775842457265_0.9490469602525593","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@tenova/swt3-ai","version":"0.2.6","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.6","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"5c32d0b8a7cec22dd5497866f8f46c6c8c0bf089","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.6.tgz","fileCount":54,"integrity":"sha512-XKco31gs9/i2TkdsgcrJoXl0IcdrP+idaSEBUQYOobZKNLZGpSrmKXkDbGqpi9Cv39uK4dfllxAeSfjzSIdWLQ==","signatures":[{"sig":"MEYCIQDyxaEyawggVau5ZoB9P1UIkXju2ew7xnXsWTMxFzKIsgIhALqRthuXaykipHk8ylmzzYjVDiXrTi1GtEynnRv1n3rm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160972},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ec13e60b7931848e47b76d917901bea075894e7f","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.6_1775941917322_0.7634084225855446","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@tenova/swt3-ai","version":"0.2.7","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.7","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"4adbcc8cca93330df753ec083944dd4c37dce014","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.7.tgz","fileCount":54,"integrity":"sha512-A3d+SUdAxf7Qd8O4xz3bYa9wLYLexO4WDNQ931A1dRNdR67rpM3N4e0cmo7oJJ2l8NE1Djj8LKt25zVlvK6F5A==","signatures":[{"sig":"MEQCIACitW3yV/3s7lcYbEYaXhde1+1eU0VfszLhiPr910GTAiBXTfnK23nSBbx7shV0F+M64Koiub5zbBN2J/NTR4GSrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ec13e60b7931848e47b76d917901bea075894e7f","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.7_1775990361475_0.6850327766957787","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@tenova/swt3-ai","version":"0.2.8","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.8","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"a037368e7c5e771cd0befd10eec9a5bc0a37cc8b","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.8.tgz","fileCount":54,"integrity":"sha512-jqGwbqa5CJojvp16HYDLPyY9R7tjuzeAbwYlA4u3WY/JeyKcfjO2BuBT1PoFszWjpMXEPewKUmU1JDX1Ddz4LQ==","signatures":[{"sig":"MEUCIC2H+mq2HP4EBPrRYIyKoBcqJvsf01+7Zh2kUIctKWQjAiEAit9B3NEEMKikNf2XIL6dnikKVW0/zFBV5K3PNim1Lg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165618},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ec13e60b7931848e47b76d917901bea075894e7f","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.8_1775992900812_0.7507406373561998","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@tenova/swt3-ai","version":"0.2.9","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.2.9","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"d0f8133356cf800d812e451f31861980d8b13c8e","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.2.9.tgz","fileCount":54,"integrity":"sha512-KLtbu//73Z4aNPOQx8TUSLZNBXrMR+W4buZUi5Ag9HONPJARkeEsclGNguyAZbYf83wJuW5V5rO4ROfYP5KRjw==","signatures":[{"sig":"MEUCIH3DlGpmJ6NcLKOA3HdtTLDdozFMM9rh0mR4E5OWup/TAiEA1hlhTECEtX/Zjs/9xHa783/2lG5AKyhlBPUo5vPgPGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171399},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ee1de92df75161321641cbead546c1e95e940786","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.2.9_1776005938035_0.37527276354872297","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@tenova/swt3-ai","version":"0.3.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"911513add73a2d47a8e678525857b0ff509e5d4f","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.0.tgz","fileCount":54,"integrity":"sha512-PiTBHAu1Cgmyvi16d71eT/m/PU+2N6rZiry0he3MZFoqI9HT1FD2Rq4ezqLkAFi1GVBxqN0p3OGO4VGz9AqV1g==","signatures":[{"sig":"MEUCIEhFZB87qYBJFvExToUfW2yZI368PGvym/bYpEN82TgrAiEAr6xQ8d4Ny5nF14jrfIgqXhqvsutcF6u/BksjIong2o0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170961},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"56bf090239c04500cc760fd35b4419cd8528cf8e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.0_1776154647806_0.822148015358793","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@tenova/swt3-ai","version":"0.3.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"38f98b19c17142e82ad7b89a017e19e586234ba3","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.1.tgz","fileCount":54,"integrity":"sha512-16PSnBgYfOoE9KvRqMBq5P5QNkx+9RCDLT7adqVkHKjmcVjvR7YiOXVEp15wMDW/3bBbSA9FMd0H/vpa+kJx4Q==","signatures":[{"sig":"MEQCICckVdd9XaUjAc8ctQnFCcUQv5z8ayJoSnwnIh+RYg8VAiAxCmI7ztM9+/yonm9e1T44Ti9PvwJpPzEp9NqP7JnyUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170961},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"56bf090239c04500cc760fd35b4419cd8528cf8e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.1_1776154920359_0.36636705204087505","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@tenova/swt3-ai","version":"0.3.2","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.2","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"f7322d30be5c40bd721818303d4f11e1a94b1185","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.2.tgz","fileCount":54,"integrity":"sha512-mFTsvZ4HqH2Z6oQECvF5A8R1ffUT3olTaqz2DxaMNAMqL3uJpmaGLj6kfMvIE5/74bmUxbMSUVSumvtkKCquYw==","signatures":[{"sig":"MEUCIQDzaD1AIfv25d+dVgkIXalAb0qdAZlg6FAw2zV1kYz5awIgHgr/MD4gRBQolLCcjZQcXmFdUy+pq3i2sSWTelkM4HU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187059},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74895871c9c7961fc41566a66e75a123d21a49ea","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.2_1776375988103_0.9245050600315889","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@tenova/swt3-ai","version":"0.3.3","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.3","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"3af2b2d4d17c08b891d965e23bff9b9ea0b800b8","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.3.tgz","fileCount":54,"integrity":"sha512-SWBcgHoOsh6j8uHjevwxyqDQfUJbMuQN37YqiGnud4jXVIczZKBqLTtnbK+gQkn1TjbeX61RBycq7MOFKw7GgA==","signatures":[{"sig":"MEUCIQDbOmS9ItWC9uTIer2Vw0xhrm9lR3qD+OxPMQS5vbj2AAIgOgE7adWA3Aq81x6BVjZS1zD0SjDoU85ZlYCYIP5CLt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198961},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74895871c9c7961fc41566a66e75a123d21a49ea","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.3_1776687736260_0.5280952911495793","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@tenova/swt3-ai","version":"0.3.4","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.4","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"b2a97491b3aee308568857809a8e5b7eb7715efb","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.4.tgz","fileCount":2,"integrity":"sha512-2YWKxTXhgKjZGMT7YfvNvs9Zs9MeZfrCGCn9Rute4dmZ5v+aM238jZsZpD+IhK28G4Uu7f1mMAoBoVDuITNAPg==","signatures":[{"sig":"MEUCIEMYzxVFnhUmQNJF4/UdzvZvT8EKPN1Y0XRmuMlRhSFGAiEAlnk0nXyRGJnYV3/1CH/OO1WT11b7cd7fMZ66eidOYFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18310},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74895871c9c7961fc41566a66e75a123d21a49ea","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.4_1776914986681_0.4576997710603288","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@tenova/swt3-ai","version":"0.3.5","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.3.5","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"7dac2aad2c239c3363db9cd2a66584e0989725d6","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.3.5.tgz","fileCount":54,"integrity":"sha512-yafOoDoRdS0nc2mOmCDkOK7z5RM97sT0JE+50wBAidB96fifZ2h3rHjUy9QSHX7Merkf8yu/7MU30NS8379Kuw==","signatures":[{"sig":"MEUCIQClNGg4H9yxonAYkYDm9uZFxBoj3mFqjhe4LihTlmSDBgIgCuUyov9eeLHEzMCEP2NXlBM43C2Lm4GPh2K0je3eu8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201531},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74895871c9c7961fc41566a66e75a123d21a49ea","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.3.5_1776915993076_0.2193165398219663","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@tenova/swt3-ai","version":"0.4.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.4.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"9e5a909c66a9a6378bb1d3532a8c08e6b07ac1b3","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.4.1.tgz","fileCount":58,"integrity":"sha512-YuRX/UWE4JcrXQvoBROJuPUkw2NJElaI4AEyZ1MInR8ZU+8Tch7s1EGPQLMQ0b2r0rTSahj1n3EeUHkvKFjj1A==","signatures":[{"sig":"MEUCIQCMGLUpVMb/H/cjTjFwE5IYK7bHVU7WKTxClMmO+gh1sAIgE7SYV7YEQF+lexl28i2S3yptIdumNkFk3sceK0yDipc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233364},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"d690edbc90887c0d9f083aae93cd6b5033a5992b","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^4.1.2","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.4.1_1777379339949_0.7907408729620218","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@tenova/swt3-ai","version":"0.5.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"5ba55cf6739b1e2fbba3643db3a25ac4109fdc9c","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.0.tgz","fileCount":70,"integrity":"sha512-4mwz2wtfur0BGOinMy4uNvL40H/Nd0D06A/Wytq5I/FUmLr6e7YvIFr2erUiWRoPnBUNUxsDnIu60joiBQxMKg==","signatures":[{"sig":"MEUCIBxmaAWU2a2gsoE9IApsVDr/UR6GKNR3DM9DOhmoRCc5AiEAhEGIoD2J4fdfAAWmukHDhiYOJOsfkiTsAqRx78jRjh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264920},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"d690edbc90887c0d9f083aae93cd6b5033a5992b","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.0_1777984336495_0.9812274913058856","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@tenova/swt3-ai","version":"0.5.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3-demo":"dist/demo.js"},"dist":{"shasum":"735193a6fb8accf1cbe90d579ea439985e506107","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.1.tgz","fileCount":70,"integrity":"sha512-p6GFT4gMVcrho/92V3BUzhde2RPYqFfTd/CGVStt3WhsZBocpVkrzMh9oCkygNo4Vu7e0AsOrOoVyoTpyi4bpg==","signatures":[{"sig":"MEUCIQC6Y13L290x7eueguj/AWiWcUJCg+wFlDvjwi+ts7iTjAIgNiJr3MTLD6THgpxN7CnUyZesJJs5PKsWGhf7BBS0W2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269576},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"d690edbc90887c0d9f083aae93cd6b5033a5992b","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.1_1778589014046_0.8977664796473146","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@tenova/swt3-ai","version":"0.5.2","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.2","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"8a7a3102c2b0ab450fec58d5098a69f737174442","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.2.tgz","fileCount":112,"integrity":"sha512-Z1Kia3loUML/c0thk7g/OTItn8VDTTn44diDbnmmS4L4x22CZsceX6koJZKBzrfocNRG5VrXv1a2oSF4udsYOA==","signatures":[{"sig":"MEUCIDt13DN4nVxq1RdBkJ9sqRv+xv3CQ8K34o2ZPG6CplBnAiEA/YB71cFFPs0z8FsVMhlmizWIFgaAKUprGbQm5ZLh9aw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":629486},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"92e3ddf92cc615671d1742f46ee283656b15ad53","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.2_1779193810447_0.09060412428162046","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@tenova/swt3-ai","version":"0.5.3","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.3","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"9103b97d64ac3d488db98dd9b858cd0b798a0c63","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.3.tgz","fileCount":114,"integrity":"sha512-Pl2TgOagkKgfjDzG3AkMR2DmCNJrlOZ8tkyw1GZp3nDzE6RNIQ2uIysNIzwpsw8S4a54tpqUwLFiAfUPwK4Yig==","signatures":[{"sig":"MEQCIE3x5kXdYocOe1d1eNKnynOuH272Iig8vWGlSBHwtk6gAiBuVF0BrKHOoS2Ci24eWVeAwqIoFXSazYHhG5ecioKhng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":642787},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"92e3ddf92cc615671d1742f46ee283656b15ad53","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 47 procedures, 5 languages, 7 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.3_1779792519170_0.46566293127664404","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@tenova/swt3-ai","version":"0.5.4","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.4","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"d427f0536be17974da8b03bbb2656a9daf2a1ce5","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.4.tgz","fileCount":134,"integrity":"sha512-n/FpMp7ev87/EmEzprsOIOU+NHn3vCKILWnD/50fjYFoJa/9C+dlmrvm8w6sx1BhuOhLA1bGAldnYKIbg1ywwA==","signatures":[{"sig":"MEUCIC994Im0VS/u2Sj1CESf1Yhdt8NkmWiPL5QSrsolox0mAiEA5bnwKNmr22lcZcozJRtwe/CnUdAP1B4JMIxyUPM8XYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768517},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"92e3ddf92cc615671d1742f46ee283656b15ad53","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 65 procedures, 41 namespaces, 5 languages, 14 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.4_1780402698119_0.884649941740048","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@tenova/swt3-ai","version":"0.5.5","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.5","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"9a2d7b6257955cb35ffaa56ad7a4e0b550d166ec","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.5.tgz","fileCount":135,"integrity":"sha512-3SydSCLeLHmewTxbM2jb3mgW6EgVtTEJTmlQlR55rAN3bIkt87B8eA6pDbRYn85O+28zYTvonAjIa17fJuY7WQ==","signatures":[{"sig":"MEUCIQDSMZK+ZyRI3+9D/XD4H5S5FYAmx0o9OgMfAgJwElG5rgIgJXDGdy6A6z38KitFRPxETc1e61VWXqzBV5ddwgJySyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770800},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"e37b97804c19f2639ca51f761cffa6629f49da9d","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 65 procedures, 41 namespaces, 5 languages, 14 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.5_1781000330068_0.2147960482494773","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@tenova/swt3-ai","version":"0.5.6","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.6","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"63c0bf4ee598d3a678811dba1335ac30b7aec824","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.6.tgz","fileCount":163,"integrity":"sha512-CaizzWAuiRemAkDNEZSNGebQ6G5x13Odv8K2K/8FaJowYDaf8S0JZrBN2ysgo7xJ1wn3jqT+vWnRH6LzK/z9uw==","signatures":[{"sig":"MEYCIQCcfRJTXU1G9fnxMO99HFP5teQXp2Xaqd7CxFiPQ+SnfwIhANMIw/c9JE4RIjMja3OhUHSfEoocW00Lm1zRJgq7d0Bo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1064305},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"f717424d8bf4964a5b942af03ff2dc1c1bdaf695","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 94 procedures, 48 namespaces, 5 languages, 15 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.6_1781611423782_0.5213404829562904","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@tenova/swt3-ai","version":"0.5.7","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.7","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"ae4ebb1230ef74ccc432e59eabe518fb64e35549","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.7.tgz","fileCount":172,"integrity":"sha512-J0EFhhRba14tsKtK9ersqSiTpdT/IqRCjLjb/EQuCRLjPu+H38TJqV+hxY5B6jBlEoM08mBWhDdm7UPDm+8Zzg==","signatures":[{"sig":"MEYCIQDTqn18LodhtVlnr6b/fNlcfNE1DBpAIGKI0QHvsCTRNAIhAJ7LBN+BcuhqXlNBcpBqPi1+0mT9D8LZieEPogz+xIbi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1118889},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"6e904ed010ece2caaaff6dcdca3943879a38d387","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 98 procedures, 51 namespaces, 5 languages, 15 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.7_1782211001052_0.944624425084835","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@tenova/swt3-ai","version":"0.5.8","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.8","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"1f5bdaf55c75e63823050702bfb016c6ebea638a","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.8.tgz","fileCount":172,"integrity":"sha512-uEMHueMmPay0lNRwgcFYYYjMn9+y+94p9NZn/fdpQMfsjMwlfPFiywn4Uy7RUjh0Q7QigocBv4MPWcY5owDbXQ==","signatures":[{"sig":"MEUCIQDliNNQ4wq6v68CkDYvz7uaDvBtKr3+OWibWsZiHWxNvQIgRqLh7hMHLVcE2i31+3uH8wfiVYzlQSnpphdagi71NyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1150541},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"6e904ed010ece2caaaff6dcdca3943879a38d387","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 103 procedures, 52 namespaces, 7 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.8_1782821164031_0.6435465131952411","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"@tenova/swt3-ai","version":"0.5.9","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.5.9","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"54b7d1e2b8f1ce1114e90265f9b65193769cefe9","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.5.9.tgz","fileCount":187,"integrity":"sha512-NTBLXH5ZntxVrzV1gk4mOyzcmPQCsBNcwPnuW8GvivUhm8knScLOFcOB9dhj778EQJKPeClVWJOey0DqvEyiCQ==","signatures":[{"sig":"MEYCIQCYy9wMfi5EHTqwplepIlM6Q5nyIy7DIvTGAJVWwdTXpAIhAMisoitJ6hbLmuPkgLDlIfOXiyBhfPG6bF36lQXjSlKJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1367127},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"8740cba12efad09b07a36a68291ecc2cbddb4151","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 103 procedures, 52 namespaces, 7 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.5.9_1783425656750_0.7474152998790118","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@tenova/swt3-ai","version":"0.6.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"cca8698ec46a87eb794b41320e2bd6450fc43f03","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.0.tgz","fileCount":187,"integrity":"sha512-8rd55a8pMZsmmwvMcWeINHrNgBn2q2CHnDyRcL4DWX7VUDDoogX5WjZMxRI8rfU7Fsua+jc9h25kXtN0al3+OA==","signatures":[{"sig":"MEQCIG7tleWbiwoCao17eXqllgx/xx2g8eX7Fp4A0fFX5tJoAiAa6MeW2K25pOw+kncIqJe04W1KaqAhy8BEp66TNGsf5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1373366},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"6d6c97a6f0d8189e1328932771d700a49e7dcbc0","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 103 procedures, 52 namespaces, 7 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.0_1784031388515_0.7074567076059495","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@tenova/swt3-ai","version":"0.6.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"814b27f40237cd5f909e71978e04e1160552919c","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.1.tgz","fileCount":191,"integrity":"sha512-j+MkDHifRWCevsSmF27lHqUKEjY59sp1xI2H6YYYevz00/Qb/oPWR3yQrr0z1IMdsNKLNqamxVxqJFORQEH0dw==","signatures":[{"sig":"MEUCIFhXcrQB4mf0vc3uXM7hPq6MWt5R7WrIA7fs8f9A+3etAiEAztzMORmGRU+HpbDCn8f+4efaAF4mLX8qniGh+Scjdn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1439750},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"42558e1936bb14b8834d85250a6e235377f39bb8","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 108 procedures, 56 namespaces, 7 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.1_1784635062083_0.8456362752659099","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@tenova/swt3-ai","version":"0.6.2","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.2","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"4695d0d34180b34c2287b100f3540766a0ae3b1d","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.2.tgz","fileCount":199,"integrity":"sha512-20N0oPPRB6tFcUCpW7iuLb1bjvXBEBg2aayiRwCR7RlsP+UBJ9QwjIQuvKPP//qayjGSSrbfhM45YXzQnxB4mw==","signatures":[{"sig":"MEYCIQCEt9wkl7ox98b7GZorbe9+B6S0JNAbmgGEqk+rN++u9gIhAPfn2VT9ArhtemaJlKjN7y3+FT7Zd5hdfB61Vjl/n1YA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1576400},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"0e44c405638dfc30784320f8dcf985f33824087e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 108 procedures, 56 namespaces, 8 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.2_1785239121622_0.15816162391955757","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@tenova/swt3-ai","version":"0.6.3","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.3","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"5d602a80bc32af94c42c8108f9b2c8229e202d01","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.3.tgz","fileCount":199,"integrity":"sha512-yxRBU8X+N1EWORPl2nyOB/5jG6EsDgRBhvOGsv9wzQod9NFrTRqj07Y9WR7lJ91gx9aMR++6lexsXfu0tSvVgw==","signatures":[{"sig":"MEUCIQDAKruOV0/HyCQ4wcDxWQVWrRpmtVPXBZ76hNzOr/n4AgIgBwyo1+q7Y8CRePdAlPCVfYjTnvWHNZhcQFi/76kmDQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1608275},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"0e44c405638dfc30784320f8dcf985f33824087e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 107 procedures, 56 namespaces, 8 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.3_1785844379229_0.2409215058000198","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@tenova/swt3-ai","version":"0.6.4","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.4","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"fae59718a7bcdef0110a2bde05d9ebc7eb56fb11","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.4.tgz","fileCount":199,"integrity":"sha512-HaDw58BwE24NpD8pUovAAkhIbRgztaIeu0jIyiCUDpGZdRo93ZJRAWvpKeqJIFt/iN3qEfZrpvrY7/4tn4a4Dw==","signatures":[{"sig":"MEQCIEERNxiRnK2LwaRxaIQV/JXdSkaSTOAPKptH0nBL2VGeAiAmV+0aw16N5ptRIiErRHa9FWC3nPFy8qLK4uhDuVAqwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1614768},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"0e44c405638dfc30784320f8dcf985f33824087e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 113 procedures, 61 namespaces, 9 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.4_1786446560499_0.33075087212600174","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@tenova/swt3-ai","version":"0.6.5","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.5","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"f4c22b1ba144a8fbd4300187f51d66c7d750cf7b","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.5.tgz","fileCount":199,"integrity":"sha512-MYLanmdYHl2luIB3le8aw34pNMbc1ieXrCgdlh93mGcc+Rr/34zTZtrG2QKPPX2ZaAf3yE1Jl4FGhX+HuUYyIg==","signatures":[{"sig":"MEYCIQCoBTul7YZmcFwuJZpJiiRkPDb95ITymh4S7Rd/bzyQbQIhANkbv5DLghKlxmCB0W0Tqd2Tt7Riq+pxJUkFktoAR7JY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1618501},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"00935181feb5c1feecbec088fc24618be31f7614","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 113 procedures, 61 namespaces, 9 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.5_1787055142812_0.15762218573249487","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@tenova/swt3-ai","version":"0.6.6","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.6.6","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"0f4dcd6b07b79870ab8ac65a7eac0f5e24244375","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.6.6.tgz","fileCount":199,"integrity":"sha512-M4BfwdE5zy2qS98xmX8OBwgIUGeIdn2XeKbcN7dNHXqaqcvDNtQUvzYhk0iJUWffbiiZTszTQvjqr48ZTEB2Qw==","signatures":[{"sig":"MEYCIQDyHQM3X+WFXs1WjmT+C5CCLNpiimoNdBfOlbHPboiflQIhAJAAfeoFnnk24fwGvWqs5A/VgiHfOLqtoljD1W2PisGb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1733342},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"00935181feb5c1feecbec088fc24618be31f7614","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference. 118 procedures, 64 namespaces, 10 languages, 18 profiles. EU AI Act, NIST AI RMF, CMMC, SR 11-7.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.6.6_1787661333126_0.10065740659728695","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@tenova/swt3-ai","version":"0.7.0","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.7.0","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"5c9d2b826a83a11b6cd469a080d42fc255b1c604","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.7.0.tgz","fileCount":199,"integrity":"sha512-0Iq6wqbrDwEaCT6bFe0Hy0+vqafjeyikYfJwhDdP1w/W/RlTUUiBDr6qPU5lkk4JGzV+T2OHKXmWuzhhmpw3zA==","signatures":[{"sig":"MEQCIBGPmG6a37KnoMnowCVWRsqSFnL+wBmevmY3V7E651AnAiAyAAludOr7uHcu5ugKmTEVmNnxYHGkxR9k/SwPBvJvDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1737489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"2cce2212615da7bbbb880ba99fd85f3e3bd8f774","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 266 procedures, 9 namespaces, 10 languages, 36 frameworks. EU AI Act, NIST AI RMF, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.7.0_1788265506465_0.44374095591190477","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@tenova/swt3-ai","version":"0.7.1","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.7.1","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"b764633db94ffe662d0053acb37cc7185413358f","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.7.1.tgz","fileCount":199,"integrity":"sha512-SQIRRNVjumdO8l0zGbcpQIR0vAOpSVxdMiUH2gkK3I8MQb1cUERkNo6Vcnb9VD31sqG245JwaSNVe9zGHV+4fg==","signatures":[{"sig":"MEYCIQC6JCUN7NNVcaVKGwKv3jbNjrNI8gs0Kwwch7oIcvJufwIhAPs6qsH4YdWSAr5BuouueCupzM7RVtZw5bEWj33jUdOw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1834763},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"2cce2212615da7bbbb880ba99fd85f3e3bd8f774","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 275 procedures, 9 namespaces, 10 languages, 77 frameworks. EU AI Act, NIST AI RMF, OWASP MCP Top 10, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.7.1_1788864097519_0.13141237532751582","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@tenova/swt3-ai","version":"0.7.2","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.7.2","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"70945b39b04b522e6931b6a23304f9bf8634ae41","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.7.2.tgz","fileCount":199,"integrity":"sha512-UnYcy28V2ePynMG30MgDZXv/47oK2mlTzlD1RsLAPRsOYncYWOSUKmkerDWsWaw3uuFSixlpafEnrkBAFMdnPA==","signatures":[{"sig":"MEUCIQCoL9PfCKf5eEkkiQ6YiJGE6aWN0wEEk5z16E3H0BOzAwIgWQ730NN1GuHIlXSx1o1bX/PnmzQm4KZW3TEsx1mezFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1838038},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"2cce2212615da7bbbb880ba99fd85f3e3bd8f774","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 280 procedures, 9 namespaces, 10 languages, 77 frameworks. EU AI Act, NIST AI RMF, OWASP MCP Top 10, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.7.2_1789473149368_0.9401665468609404","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@tenova/swt3-ai","version":"0.7.3","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","_id":"@tenova/swt3-ai@0.7.3","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"homepage":"https://tenova.io","bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"dist":{"shasum":"073a5f1be595d27f15b37211b1b52af6fc468482","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.7.3.tgz","fileCount":199,"integrity":"sha512-pK+XW7K6noxNIFbadHrXCEcGEKOkWtIRg35c7HdygAjYiBNlm8Dj7BTMunEl7gkmXp8oXHAwUm09hajSqtd1ww==","signatures":[{"sig":"MEUCIQDh3IZqCLNI9jgfii0llhihBH2I2PwDDoepTltnkX9dwQIgbjAQPE9DxaU6WCJj7OUjFgopNFlogXDbinpk2undJ2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFrocx5w3OO4RDesxEMAqfQSxphVFQ6NAv0sI3i0cdqOAiEA8BOa6L9IJG+kIgM4SUQgBc/vSOIHAlyI7YHjC3bPEuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1839652},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"3b9ed618a523574266bfe3446d622395b1bf1c67","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 284 procedures, 10 namespaces, 10 languages, 77 frameworks. EU AI Act, NIST AI RMF, OWASP MCP Top 10, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/swt3-ai_0.7.3_1790078752093_0.8216742850939778","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"_id":"@tenova/swt3-ai@0.7.4","bin":{"swt3":"dist/cli.js","swt3-demo":"dist/demo.js"},"bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"dist":{"shasum":"a62070ddc4733405f3cc848652d43e339510d680","tarball":"https://registry.npmjs.org/@tenova/swt3-ai/-/swt3-ai-0.7.4.tgz","fileCount":200,"integrity":"sha512-AVqRSor3sgmAZjoHt7o8ePtCx5iJsU0QQ9WS3Hu/oZ5SxqGHALIXR1pqW3MuAs8eG/SOe5evFEVDfTpOH0qEqA==","signatures":[{"sig":"MEQCIGI3CMbN1fzJZ+likeZLkI2E1KLkEbGwMYlyYyED8lJOAiBQENRBrpxk/BAudB4/P4mGGcJGt2cw27laPllWh8L26A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIByE5cXxqMBtStARV8+Elud6uz4bHZ31wzUGZ88n87AMAiBy8sFQtPrN+Ov0Q1KAnv3Wp0NT8d4aiqUext1OOQWWEg=="}],"unpackedSize":1845019},"main":"dist/index.js","name":"@tenova/swt3-ai","type":"module","types":"dist/index.d.ts","author":{"name":"TeNova","email":"engineering@tenovaai.com"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./exporters/otel":{"types":"./dist/exporters/otel.d.ts","import":"./dist/exporters/otel.js"}},"gitHead":"cf971b05ee88838068222f580328f588a6fcceb3","license":"Apache-2.0","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/vitest run","build":"tsc && cp -r src/data dist/data","typecheck":"tsc --noEmit","test:vectors":"npx tsx test/fingerprint.test.ts"},"version":"0.7.4","_npmUser":{"name":"tenova","email":"alvin.tondereau@tenovaai.com"},"homepage":"https://swt3.ai","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 284 procedures, 10 namespaces, 10 languages, 77 frameworks. EU AI Act, NIST AI RMF, OWASP MCP Top 10, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","directories":{},"maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","yaml":"^2.9.0","openai":"^4.70.0","vitest":"^3.2.4","typescript":"^5.5.0","@noble/post-quantum":"^0.6.1"},"peerDependencies":{"openai":">=4.0.0","@opentelemetry/api":">=1.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swt3-ai_0.7.4_1790651507581_0.6766215630843457"}}},"time":{"created":"2026-04-01T03:56:09.064Z","modified":"2026-09-29T03:11:47.846Z","0.1.0":"2026-04-01T03:56:09.366Z","0.2.0":"2026-04-02T06:34:26.490Z","0.2.1":"2026-04-05T19:34:55.626Z","0.2.2":"2026-04-08T00:08:41.399Z","0.2.3":"2026-04-09T10:48:34.121Z","0.2.4":"2026-04-10T06:00:09.940Z","0.2.5":"2026-04-10T17:34:17.401Z","0.2.6":"2026-04-11T21:11:57.483Z","0.2.7":"2026-04-12T10:39:21.615Z","0.2.8":"2026-04-12T11:21:40.962Z","0.2.9":"2026-04-12T14:58:58.162Z","0.3.0":"2026-04-14T08:17:28.005Z","0.3.1":"2026-04-14T08:22:00.527Z","0.3.2":"2026-04-16T21:46:28.248Z","0.3.3":"2026-04-20T12:22:16.511Z","0.3.4":"2026-04-23T03:29:46.823Z","0.3.5":"2026-04-23T03:46:33.225Z","0.4.1":"2026-04-28T12:29:00.181Z","0.5.0":"2026-05-05T12:32:16.699Z","0.5.1":"2026-05-12T12:30:14.237Z","0.5.2":"2026-05-19T12:30:10.719Z","0.5.3":"2026-05-26T10:48:39.318Z","0.5.4":"2026-06-02T12:18:18.278Z","0.5.5":"2026-06-09T10:18:50.238Z","0.5.6":"2026-06-16T12:03:43.950Z","0.5.7":"2026-06-23T10:36:41.245Z","0.5.8":"2026-06-30T12:06:04.218Z","0.5.9":"2026-07-07T12:00:56.933Z","0.6.0":"2026-07-14T12:16:28.668Z","0.6.1":"2026-07-21T11:57:42.235Z","0.6.2":"2026-07-28T11:45:21.762Z","0.6.3":"2026-08-04T11:52:59.402Z","0.6.4":"2026-08-11T11:09:20.658Z","0.6.5":"2026-08-18T12:12:22.969Z","0.6.6":"2026-08-25T12:35:33.284Z","0.7.0":"2026-09-01T12:25:06.602Z","0.7.1":"2026-09-08T10:41:37.657Z","0.7.2":"2026-09-15T11:52:29.519Z","0.7.3":"2026-09-22T12:05:52.182Z","0.7.4":"2026-09-29T03:11:47.666Z"},"bugs":{"url":"https://github.com/tenova-labs/swt3-ai/issues"},"author":{"name":"TeNova","email":"engineering@tenovaai.com"},"license":"Apache-2.0","homepage":"https://swt3.ai","keywords":["ai","compliance","witness","attestation","swt3","eu-ai-act","nist-ai-rmf","openai","anthropic","ai-governance","ai-audit","ai-accountability","ai-observability","llm-monitoring","llm-observability","model-risk-management","compliance-as-code","responsible-ai","ai-safety","ai-trust","mlops","nist-800-53","cmmc","fedramp","gdpr","sr-11-7","cryptographic-attestation","audit-trail","agentic-ai","multi-agent","ai-agent","guardrails","ai-risk","model-governance","inference-logging","ai-compliance-automation","ollama","vllm","bedrock","vercel-ai","nvidia-dynamo"],"repository":{"url":"git+https://github.com/tenova-labs/swt3-ai.git","type":"git"},"description":"SWT3 AI Witness SDK: cryptographic attestation for AI inference and infrastructure governance. 284 procedures, 10 namespaces, 10 languages, 77 frameworks. EU AI Act, NIST AI RMF, OWASP MCP Top 10, CMMC, SR 11-7, NIS-2, EU Battery Reg, FERC.","maintainers":[{"name":"tenova","email":"alvin.tondereau@tenovaai.com"}],"readme":"Witness your AI. Prove it followed the rules. Cryptographic accountability for every inference, tool call, and resource access.\n\n[![npm](https://img.shields.io/npm/v/@tenova/swt3-ai)](https://www.npmjs.com/package/@tenova/swt3-ai)\n[![Downloads](https://img.shields.io/npm/dm/@tenova/swt3-ai)](https://www.npmjs.com/package/@tenova/swt3-ai)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/tenova-labs/swt3-ai/blob/main/LICENSE)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.tenova%2Fswt3--witness-blue)](https://www.npmjs.com/package/@tenova/swt3-mcp)\n\n# @tenova/swt3-ai\n\n**SWT3 AI Witness SDK for TypeScript**: tamper-proof evidence that your AI is doing what you say it does. Every inference hashed. Every tool call recorded. Every resource access checked against scope. No prompts or responses ever leave your infrastructure.\n\nWorks with OpenAI, Anthropic, AWS Bedrock, Vercel AI SDK, xAI (Grok), and any OpenAI-compatible endpoint (vLLM, Ollama, Azure, Llama.cpp).\n\nEU AI Act GPAI transparency obligations enforce **August 2, 2026**. High-risk enforcement follows **December 2, 2027**. This SDK gives you the evidence chain for both.\n\n> **Protocol Spec:** [swt3.ai/spec](https://swt3.ai/spec) | **Registry:** [swt3.ai/registry](https://swt3.ai/registry) | **Verify:** [swt3.ai/verify](https://swt3.ai/verify)\n\n## What's New in v0.7.4\n\nNVIDIA shipped OpenShell to 120+ partners. Agent containment is now infrastructure. But containment without evidence is a black box -- an auditor cannot verify that a sandbox policy was enforced last Tuesday at 14:00 UTC by looking at enforcement logs alone. v0.7.4 adds runtime containment attestation (AI-SHELL.1), model distillation provenance (AI-DIST.1), MCP elicitation detection (AI-MCP.6), and incident lifecycle chains. Four governance gaps closed in one release.\n\n**Why this matters for TypeScript:** `witnessRuntimeContainment()` produces cryptographic evidence from any OCSF-compatible sandbox -- OpenShell, gVisor, Kata, Firecracker, or WASM -- with zero SDK imports and zero vendor lock-in. The `OpenShellWitness` adapter consumes raw OCSF event streams in real time. `witnessDistillation()` records teacher-to-student lineage with ToS compliance. `witnessElicitation()` captures prompt boundary violations. `incidentChain()` returns an `IncidentChainBuilder` that links detection, containment, and resolution anchors into a single forensic sequence.\n\n### 3 New Procedures\n\n- **AI-SHELL.1** (Runtime Containment Attestation): Records that a sandboxed runtime enforced its containment policy during a specific observation window. Duck-typed: works with OpenShell, gVisor, Kata, Firecracker, WASM. [NVIDIA OpenShell Crosswalk](https://sovereign.tenova.io/guides/nvidia-openshell-crosswalk.html)\n- **AI-DIST.1** (Distillation Provenance): Records teacher-to-student model lineage, distillation type (logit/feature/attention/data/hybrid), and ToS compliance status.\n- **AI-MCP.6** (Elicitation Detection): Records prompt boundary violations via tool responses, consent status, scope violation type, and detection method.\n\n### New SDK Methods\n\n- `witnessRuntimeContainment()` -- runtime containment attestation with policy hash, violation count, observation window, OCSF event count\n- `witnessDistillation()` -- distillation provenance with teacher/student identity and ToS tracking\n- `witnessElicitation()` -- elicitation detection with consent and scope violation codes\n- `incidentChain()` -- builder for multi-anchor incident lifecycle sequences\n- `IncidentChainBuilder` class -- programmatic incident lifecycle with `detect()`, `contain()`, `mitigate()`, `resolve()`, `close()`\n- `wrapJev()` adapter -- TypeSafe AI (Jev) Choice/Score/Noul witnessing\n- `OpenShellWitness` adapter -- real-time OCSF event stream processing with automatic procedure mapping\n\n### Updated Coverage\n\n- 278 procedures across 10 namespaces (was 277)\n- 75 MCP tools (was 74)\n- 277 compliance guides\n- [NVIDIA OpenShell Crosswalk](https://sovereign.tenova.io/guides/nvidia-openshell-crosswalk.html) -- runtime containment evidence for OpenShell, gVisor, Kata, Firecracker\n- AI Insurance Evidence guide for underwriting conversations\n\n## What's New in v0.7.3\n\nA2A (Google's Agent-to-Agent protocol) has 150+ supporting organizations, all three hyperscalers, and a v1.0 stable specification under Linux Foundation governance. It has zero built-in audit trail. MCP OAuth adoption sits at 8.5% with 30+ CVEs filed in 60 days. v0.7.3 makes SWT3 the evidence layer for both agent communication protocols with dedicated procedures, lifecycle-aware adapters, and a new crosswalk CLI command.\n\n**Why this matters for TypeScript:** TypeScript powers the MCP ecosystem, Vercel AI SDK, and most agent orchestrators. The upgraded `wrapA2A()` adapter auto-detects `createTask`/`getTask`/`cancelTask` methods and mints AI-A2A.1 anchors on every state transition. `witnessOauthTokenBinding()` provides confused deputy prevention evidence for MCP servers running behind OAuth proxies.\n\n### 4 New Procedures\n\n- **AI-A2A.1** (Task Delegation Lifecycle): Records task state transitions (submitted/working/input_required/completed/failed/canceled/rejected) with delegation depth and latency.\n- **AI-A2A.2** (Agent Card Discovery): Records agent discovery via well-known URLs, registries, or referrals, with verified credential count.\n- **AI-A2A.3** (Context Chain Linking): Records contextId linkage across multi-agent delegation chains for forensic reconstruction.\n- **AI-MCP.5** (OAuth Token Binding): Records 8 OAuth lifecycle events (discovery through revocation) with binding strength and scope governance.\n\n### Updated Coverage\n\n- 284 procedures across 10 namespaces (was 280/9)\n- 72 MCP tools (was 68)\n- A2A namespace added (10th namespace)\n- `swt3 crosswalk <procedure>` CLI command for offline framework mapping lookup\n- 269 compliance guides\n\n## What's New in v0.7.2\n\nTwo categories of AI infrastructure have no compliance evidence today: harness-layer governance and MCP server operations. The harness decides which agent runs, what context it sees, and whether the output ships -- but those decisions are invisible to auditors. MCP servers process thousands of tool calls with zero attestation. v0.7.2 closes both gaps: five new procedures for harness governance, and a Witness Middleware that adds cryptographic attestation to any MCP server with one function call.\n\n### Witness Middleware for MCP Servers\n\nThe companion MCP package (`@tenova/swt3-mcp`) now exports `withSWT3(transport)` -- a transport-layer wrapper that auto-mints AI-TOOL.1 anchors for every tool call flowing through any MCP server. No code changes to tool handlers. The response is already on the wire before the witness fires, so it cannot block, fail, or slow down your tools.\n\n**Why this matters for TypeScript:** TypeScript is the dominant language for MCP server implementations. Most MCP servers in production are TypeScript. The middleware means every existing TypeScript MCP server gains cryptographic attestation by adding two lines -- one import, one wrap. Anchors minted by the middleware use the same fingerprint formula as this SDK's `Witness` class, so they verify identically in the ledger. For teams running multiple MCP servers, the multi-tenant callback resolves which tenant each tool call belongs to from a single middleware instance.\n\n```typescript\nimport { withSWT3 } from \"@tenova/swt3-mcp/middleware\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nconst transport = withSWT3(new StdioServerTransport(), {\n  apiKey: process.env.SWT3_API_KEY,\n  batchSize: 10,\n  flushIntervalMs: 5000,\n});\nawait server.connect(transport);\n```\n\n### Harness-Layer Governance (5 New Procedures)\n\nThe AI harness layer -- orchestration, delegation, context management, sandboxing, eval gates -- is the hottest infrastructure category in AI. 40% of enterprise apps will include AI agents by end of 2026, yet nobody does cryptographic attestation at the harness layer. These five procedures make harness-level governance decisions auditable for the first time.\n\n```typescript\n// Orchestration topology: which routing pattern, how many agents, how deep\nwitness.witnessOrchestrationTopology({ topology: \"parallel\", agentCount: 3, dependencyDepth: 2 });\n\n// Agent handoff: who delegated to whom, did permissions escalate or restrict\nwitness.witnessAgentHandoff({ delegatorId: \"planner\", delegateId: \"executor\", permissionDelta: 1 });\n\n// Context window: what was lost when the harness truncated context\nwitness.witnessContextWindow({ tokensBefore: 128000, tokensAfter: 32000, evictionMethod: \"summarization\" });\n\n// Sandbox enforcement: cross-reference with AI-TOOL.1 for independent verification\nwitness.witnessSandboxEnforcement({ toolsDeclared: 10, toolsInvoked: 5, violations: 0 });\n\n// Eval gate: proof the model was evaluated before it shipped\nwitness.witnessEvalGate({ totalEvals: 100, evalsPassed: 85 }); // gateScore auto-computed\n```\n\n### By the Numbers\n\n- 280 procedures (was 275), 68 MCP tools (was 63)\n- 9 namespaces, 77 frameworks, 265 compliance guides\n- ~3,000 tests passing across 10 languages\n\n## What's New in v0.7.1\n\nMCP is the fastest-growing integration layer in AI. It is also the least governed. OWASP published the MCP Top 10 in 2026, and the findings are brutal: 30-82% of MCP servers are vulnerable to tool poisoning, insufficient authentication, and shadow server proliferation. Meanwhile, IETF is drafting agent audit trail standards that describe exactly what SWT3 already does -- but those drafts expire in weeks and have no deployed reference implementation. v0.7.1 closes both gaps with three new procedures that make SWT3 the first SDK to cover all 10 OWASP MCP risks with cryptographic evidence.\n\n### MCP Tool Integrity Attestation (AI-MCP.2)\n\n**The problem:** OWASP MCP-03 (Tool Poisoning) describes attacks where tool schemas silently change between calls -- a parameter gains a new allowed value, a description subtly shifts to manipulate the agent, or a tool version changes without notice. The MCP protocol has no built-in mechanism to detect schema drift.\n\n**What v0.7.1 adds:** `witnessMcpToolIntegrity()` hashes the tool schema at connection time and again at invocation time. If the schema changed between those two moments, the anchor records a FAIL verdict with the drift detected. No raw schemas are transmitted -- only SHA-256 hashes.\n\n```typescript\nwitness.witnessMcpToolIntegrity({\n  serverName: 'data-retrieval-mcp',\n  toolName: 'query_database',\n  schemaHashAtConnect: 'a8f3c7d91e02',\n  schemaHashAtInvoke: 'a8f3c7d91e02',  // match = PASS, mismatch = FAIL\n});\n```\n\n**Why this matters:** Tool poisoning is the supply chain attack vector for agents. An attacker who compromises an MCP server does not need to breach your model -- they just need to change what a tool does. Without schema integrity checking, the agent trusts whatever the server declares. With it, every tool invocation has a cryptographic record of whether the schema was stable. When OWASP MCP-03 appears in your assessment scope, this is the evidence.\n\n### MCP Server Authentication Attestation (AI-MCP.3)\n\n**The problem:** OWASP MCP-07 (Insufficient Authentication) flags that most MCP servers accept connections without any authentication. No mTLS. No API keys. No OAuth. The server just trusts whoever connects. When an auditor asks \"how do you verify the identity of your MCP servers?\", most teams have no answer.\n\n**What v0.7.1 adds:** `witnessMcpServerAuth()` records whether authentication was present at connection time, what method was used, and whether it was verified. A connection with no authentication produces a FAIL verdict -- which maps directly to an IA-9 finding under NIST 800-53.\n\n```typescript\nwitness.witnessMcpServerAuth({\n  serverName: 'data-retrieval-mcp',\n  authMethod: 'mtls',\n  authVerified: true,\n});\n```\n\n**Why this matters:** NIST 800-53 IA-9 requires identification and authentication of services. EU NIS-2 Art. 21(2)(d) requires supply chain security. An MCP server is a service your agent depends on. If that service accepts anonymous connections, your agent's entire output is built on an unverified foundation. This procedure makes that gap visible and auditable.\n\n### MCP Server Discovery Attestation (AI-MCP.4)\n\n**The problem:** OWASP MCP-09 (Shadow MCP Servers) describes the risk of unauthorized MCP servers appearing in an agent's configuration. A developer adds a community server for testing and forgets to remove it. A compromised config file injects a malicious server. The agent connects to both the legitimate and shadow servers without distinction.\n\n**What v0.7.1 adds:** `witnessMcpServerDiscovery()` records the discovery method (manual config, DNS, registry lookup) and whether the server was on the approved allowlist. Servers discovered through uncontrolled channels or missing from the allowlist produce a FAIL verdict.\n\n```typescript\nwitness.witnessMcpServerDiscovery({\n  serverName: 'unknown-community-server',\n  discoveryMethod: 'config_file',\n  onAllowlist: false,  // FAIL -- shadow server detected\n});\n```\n\n**Why this matters:** Shadow IT is the oldest problem in enterprise security. Shadow MCP servers are the same problem at the agent layer. Without discovery attestation, you cannot prove that your agent only connected to approved servers. With it, every connection attempt is recorded -- including the ones that should not have happened.\n\n### OWASP MCP Top 10: Full Coverage\n\nWith AI-MCP.1 (v0.6.6) plus AI-MCP.2/3/4 (v0.7.1), SWT3 now maps to all 10 OWASP MCP risks:\n\n| OWASP MCP Risk | SWT3 Procedure(s) |\n|----------------|-------------------|\n| MCP-01 Token Mismanagement | NHI-ROTATE.1, NHI-EXPIRE.1 |\n| MCP-02 Privilege Escalation | NHI-SCOPE.1, NHI-PRIV.1, AI-ACC.1 |\n| MCP-03 Tool Poisoning | **AI-MCP.2** (NEW) |\n| MCP-04 Supply Chain Tampering | AI-SBOM.1, AI-SUPPLY.1 |\n| MCP-05 Command Injection | AI-GRD.1/2/3 |\n| MCP-06 Intent Flow Subversion | AI-CHAIN.1/2 |\n| MCP-07 Insufficient Auth | **AI-MCP.3** (NEW) |\n| MCP-08 Lack of Audit/Telemetry | SWT3 protocol (entire SDK) |\n| MCP-09 Shadow MCP Servers | **AI-MCP.4** (NEW) |\n| MCP-10 Context Injection | AI-GRD.3, clearing levels |\n\n### By the Numbers\n\n- 275 procedures across 77 namespaces (was 266/75)\n- 63 MCP tools (was 59)\n- ~2,950 tests passing across Python, TypeScript, Go, and MCP\n- 250 compliance guides (was 237)\n- 4 new guides: CISA SBOM crosswalk, IETF Agent Audit Trail alignment, Anthropic RSP crosswalk, OpenAI Preparedness Framework crosswalk\n\n## What's New in v0.7.0\n\nAI does not run in a vacuum. It authenticates with service accounts, runs on hardware with supply chains, and consumes enough electricity to reshape power grids. Until now, the witness layer stopped at the model. v0.7.0 extends it down the full AI infrastructure stack -- from the credentials your agents use, to the hardware they run on, to the energy they consume. One SDK. One fingerprint formula. One verification endpoint.\n\nThis is a major release because it crosses a boundary: SWT3 now witnesses the infrastructure that AI depends on, not just the AI itself. Three new procedure families. 22 new witness methods. Full parity with Python across all three new verticals.\n\n### Credential Governance for AI Agents (NHI)\n\nAI agents authenticate to APIs, databases, and other agents using machine credentials -- API keys, service accounts, OAuth tokens. These non-human identities outnumber human users 45-to-1 in a typical enterprise, and most organizations cannot answer the question auditors ask first: \"How many service accounts does your AI system use, and what can each one access?\"\n\nSix new methods create an independent audit trail for every credential your AI agents use, without replacing your identity provider.\n\n```typescript\n// Record what a service account is authorized to access\nwitness.witnessNhiScope({ credentialId: 'svc-inference-prod', scope: 'read:models,invoke:gpt4o', ttlSeconds: 86400 });\n\n// Record credential rotation\nwitness.witnessNhiRotation({ oldCredentialId: 'old-key-abc', newCredentialId: 'new-key-def', reason: 'scheduled' });\n\n// Record delegation chain (Agent A delegates to Agent B)\nwitness.witnessNhiDelegation({ delegatorCredentialId: 'orchestrator-cred', delegateeCredentialId: 'worker-cred', delegationDepth: 2 });\n```\n\n**Why this matters:** NIST 800-207 (Zero Trust) requires continuous authentication verification. EU NIS-2 Art. 21 requires access control management including machine identities. CISA's 2026 agentic AI guidance calls out credential sprawl as a top-5 risk. Without independent witnessing, your only evidence is the identity provider's own logs -- the bank auditing itself.\n\n### Hardware and Battery Passport (HBOM / DPP)\n\nThe EU Battery Regulation (February 2027) requires digital passports for every battery above 2 kWh -- including thousands of UPS batteries in AI data centers. The Cyber Resilience Act requires hardware bills of materials. The Energy Efficiency Directive requires PUE reporting. Three regulations, one SDK.\n\nTen new methods across two namespaces cover hardware inventory, component lifecycle, thermal monitoring, water consumption, PUE reporting, supply chain provenance, battery health, charge cycles, degradation, and end-of-life disposition.\n\n```typescript\n// PUE reporting\nwitness.witnessPowerUsage({ totalFacilityKw: 2400, itLoadKw: 1800, pueX1000: 1333 });\n\n// Battery passport -- state of health for UPS systems\nwitness.witnessBatterySoh({ sohPercent: 94.2, cycleCount: 847, capacityKwh: 100.0 });\n\n// Hardware supply chain provenance\nwitness.witnessSupplyChainProvenance({ supplierId: 'dell-batch-q3', provenanceVerified: true, countryOfOrigin: 'US' });\n```\n\n### Energy and Demand Response (ADR)\n\nAI training runs consume as much power as small cities. When the grid operator sends a curtailment signal, settlement disputes run six figures because there is no independent attestation of what actually happened. Six new methods cover the full demand response lifecycle: grid signals, baseline measurement, curtailment verification, settlement, carbon credits, and grid signal correlation.\n\n```typescript\n// Record baseline before curtailment\nwitness.witnessBaselineConsumption({ baselineKw: 2400, measurementMethod: '10_of_10' });\n\n// Record actual curtailment performance\nwitness.witnessCurtailment({ actualReductionKw: 800, committedKw: 1000, complianceRatioX1000: 800 });\n```\n\n### By the Numbers\n\n- 266 procedures across 75 namespaces (was 118/64)\n- 59 MCP tools (was 37)\n- ~2,950 tests passing across Python, TypeScript, Go, and MCP\n- 237 compliance guides (was 222)\n\n## What's New in v0.6.6\n\nSupply chain accountability: model provenance, delegation boundaries, anchor density monitoring, MCP security posture, and full TypeScript governance parity. The theme: proving your AI's supply chain is known, bounded, and monitored -- not just that individual inferences behaved.\n\n### TypeScript Governance Parity\n\n**What it does:** 10 new governance witness methods bring TypeScript to full parity with the Python SDK. Every governance method Python has, TypeScript now has: `witnessGovernanceReview()`, `witnessGovernanceConfig()`, `witnessGovernanceException()`, `witnessPolicyEnforcement()`, `witnessModelLifecycle()`, plus 5 additional methods with `governanceMetadata` support. All 17 Python governance methods now have TypeScript equivalents.\n\n**Why it matters:** TypeScript teams were second-class citizens for governance witnessing. A Python team could prove their governance review happened with `witness_governance_review()`; a TypeScript team had to use raw factor calls or call the Python SDK. That asymmetry broke polyglot organizations where the frontend orchestration layer (TypeScript/Node.js) is the one making governance decisions. Full parity means the same governance evidence chain regardless of which language your team chose.\n\n```typescript\nwitness.witnessGovernanceReview({\n  reviewsScheduled: 4,\n  reviewsCompleted: 4,\n  governanceMetadata: {\n    review_duration_minutes: 90,\n    participant_count: 5,\n    quorum_met: true,\n  },\n});\n```\n\n### Model Provenance Chain (AI-PROV.1)\n\n**What it does:** `witnessModelProvenance()` records the lineage of a model: who trained it, what base model it descends from, which training pipeline produced it, and whether the weights were modified post-training. A new `parentModelFingerprint` parameter on `witnessModelWeights()`, `witnessAdapterStack()`, and `witnessQuantization()` links derivative models back to their parent's witness anchor.\n\n**Why it matters:** The G7 Hiroshima AI SBOM framework (May 2026) requires model provenance documentation. EU AI Act Art. 53 requires GPAI providers to document training processes. When a fine-tuned model misbehaves, the first question is \"what was it fine-tuned from?\" Without provenance chains, you can prove the current model was witnessed but not where it came from. The parent fingerprint creates an unbroken lineage from base model to production deployment -- every fork, every fine-tune, every quantization step has a cryptographic link to its ancestor.\n\n```typescript\nwitness.witnessModelProvenance({\n  modelId: 'credit-scorer-v3',\n  provenance: {\n    base_model: 'llama-3.1-70b',\n    training_pipeline: 'sagemaker-ft-2026-08',\n    fine_tuned_by: 'ml-team-alpha',\n    parent_model_fingerprint: 'a8f3c7d91e02',\n  },\n});\n```\n\n### Delegation Boundary (AI-DEL.2)\n\n**What it does:** `witnessDelegationBoundary()` records what an AI agent is NOT permitted to do. Where AI-DEL.1 (delegation tree) records the permissions an agent has, AI-DEL.2 records the explicit boundaries: which tools are blocked, which data scopes are excluded, which actions require escalation.\n\n**Why it matters:** EU AI Act Art. 14 requires \"appropriate human-machine interface tools\" that let humans \"understand the capacities and limitations\" of the AI system. NIST AI RMF GOVERN 1.1 calls for documented constraints on AI system behavior. Regulators ask two questions: \"what can it do?\" and \"what can't it do?\" Most systems can only answer the first. Delegation boundaries answer the second -- with cryptographic proof that the boundary was declared before the agent acted, not documented after an incident.\n\n```typescript\nwitness.witnessDelegationBoundary({\n  agentId: 'loan-processor',\n  boundary: {\n    blocked_tools: ['shell_exec', 'database_drop'],\n    max_delegation_depth: 2,\n    restricted_scopes: ['PII', 'financial_records'],\n    escalation_required: ['approval_over_10k'],\n  },\n});\n```\n\n### Anchor Density Monitoring (AI-DENSITY.1)\n\n**What it does:** `witnessAnchorDensity()` records the ratio of witnessed events to total events over a time window. The `DensityEnforcer` class monitors density in real-time and auto-fires AI-DENSITY.1 anchors when coverage drops below a threshold. Rate-limited to prevent anchor storms.\n\n**Why it matters:** Witnessing 100% of inferences on day one and 2% by month three is a compliance drift that nobody catches until the audit. Density monitoring makes coverage gaps visible and provable. When an assessor asks \"were you consistently monitoring?\", a density anchor chain shows the monitoring ratio over time -- not just a snapshot, but a trend. The DensityEnforcer runs in-process and catches gaps before the assessor does.\n\n```typescript\nimport { Witness, DensityEnforcer } from '@tenova/swt3-ai';\n\nconst witness = new Witness({...});\nconst enforcer = new DensityEnforcer({\n  witness,\n  threshold: 0.95,          // Alert below 95% coverage\n  windowSeconds: 3600,      // 1-hour windows\n});\n// enforcer auto-fires AI-DENSITY.1 anchors when coverage drops\n```\n\n### MCP Security Posture (AI-MCP.1)\n\n**What it does:** `witnessMcpSecurity()` evaluates 8 observable security properties of an MCP server connection and records the posture as a single anchor. Checks include transport encryption, authentication presence, tool allowlisting, input validation, rate limiting, logging, error handling, and scope restriction. The anchor records the count of checks passed and failed -- never which specific checks failed.\n\n**Why it matters:** NSA and CISA flagged MCP as a security risk in 2026, with 200,000+ vulnerable MCP deployments identified. But the problem is not MCP itself -- it is MCP servers deployed without security controls. This procedure creates a cryptographic record that security controls were evaluated at connection time. The deliberate opacity (count only, not which checks failed) prevents the anchor from becoming an attack map. An assessor sees \"7 of 8 checks passed\" -- enough to verify due diligence without revealing the two gaps to an attacker.\n\n```typescript\nwitness.witnessMcpSecurity({\n  serverName: 'data-retrieval-mcp',\n  checksPassed: 7,\n  checksTotal: 8,\n  transportType: 'stdio',\n});\n```\n\n### OTel GenAI Semantic Conventions\n\nThe OpenTelemetry exporter now emits `gen_ai.system`, `gen_ai.request.model`, `gen_ai.usage.input_tokens`, and `gen_ai.usage.output_tokens` attributes following the OpenTelemetry GenAI semantic conventions. The `gen_ai.system` attribute maps 17 provider prefixes (openai, anthropic, bedrock, vertex, etc.) to their canonical OTel values. Token usage attributes are emitted at clearing levels 0-1 and cleared at levels 2-3, consistent with the clearing engine's data minimization rules.\n\n### GitHub Action\n\n`tenova-labs/swt3-gate-action@v1` evaluates `.swt3-gate.yml` policies in CI/CD pipelines. 7 inputs, 3 outputs. Fails the build when compliance coverage drops below the declared threshold. The assessor reads the same gate file your pipeline enforces -- one source of truth from commit to production.\n\n```yaml\n- uses: tenova-labs/swt3-gate-action@v1\n  with:\n    api-key: ${{ secrets.SWT3_API_KEY }}\n    tenant-id: MY_TENANT\n    framework: EU-AI-ACT\n```\n\n## What's New in v0.6.5\n\nScale governance: probabilistic witnessing for billion-inference providers, governance effectiveness metadata for assessors, and the Go SDK. The theme: making compliance witnessing work at GPAI scale without losing audit fidelity.\n\n### Probabilistic Witnessing\n\n**What it does:** A new `samplingRate` option (0.0-1.0) that lets you witness a statistical sample of inferences instead of every single one. Non-witnessed inferences are counted and summarized in periodic AI-SAMPLE.1 anchors on flush. Per-procedure overrides via `samplingRates` let you keep safety-critical procedures at 100% while sampling high-volume inference calls.\n\n**Why it matters:** A GPAI provider processing a billion inferences per day cannot witness every single one. But regulators still need evidence the system was monitored. Probabilistic witnessing solves both: you set `samplingRate: 0.01` for volume procedures and `1.0` for guardrails and safety checks. The sampling is deterministic (hash-based, not random) so any verifier can reproduce the sampling decision for any given inference. The summary anchors record exactly how many inferences were skipped, preserving audit completeness.\n\n```typescript\nconst witness = new Witness({\n  endpoint: 'https://sovereign.tenova.io/api/v1/witness',\n  apiKey: 'axm_live_...',\n  tenantId: 'GPAI_PROD',\n  samplingRate: 0.01,            // 1% of inferences witnessed\n  samplingRates: {\n    'AI-GRD.1': 1.0,            // 100% guardrail witnessing\n    'AI-SEC.1': 1.0,            // 100% security events\n    'AI-INF.1': 0.001,          // 0.1% inference volume\n  },\n});\n```\n\n### Governance Effectiveness Metadata\n\n**What it does:** Three governance witness methods now accept an optional `governanceMetadata` object. Pass `review_duration_minutes` and `participant_count` to record how long governance reviews took and how many people participated. Unknown keys pass through for forward compatibility.\n\n**Why it matters:** Assessors need to distinguish substantive governance from governance theater. A 3-minute review by one person is not the same as a 90-minute review by five. This metadata goes into the existing `ai_context` JSONB field at clearing levels 0-1 (stripped at levels 2-3). The SDK validates known keys and warns when `participant_count < 2`, which may not satisfy effective challenge requirements under SR 11-7 or EU AI Act Art. 14.\n\n```typescript\nwitness.witnessGovernanceConfig({\n  rules: myRules,\n  governanceVersion: 3,\n  governanceMetadata: {\n    review_duration_minutes: 90,\n    participant_count: 5,\n    quorum_met: true,\n  },\n});\n```\n\n### Go SDK (v0.1.0)\n\nCore SWT3 primitives for Go: fingerprint minting, HMAC-SHA256 signing, lifecycle chain IDs, and type definitions. Zero external dependencies (standard library only). All 65 test vectors pass with byte-identical output to the other 9 SDKs in the ecosystem. Go is the dominant language for backend infrastructure at scale -- Kubernetes operators, API gateways, data pipelines, and inference orchestrators are overwhelmingly written in Go. Install: `go get github.com/tenova-labs/swt3-ai-go`\n\n## What's New in v0.6.4\n\nPre-inference authorization, chain reconstruction, 10 new MCP compliance tools, and the Kotlin SDK. The theme: proving you checked BEFORE the AI acted, not just after.\n\n### Pre-Inference Gate (`gate.ts`)\n\n**What it does:** Authorization checkpoint that runs before inference begins. Evaluates whether the requesting agent, user, or system has permission to invoke a specific model under the current policy. Returns an authorization_id that links the gate decision to the subsequent inference anchor.\n\n**Why it matters:** EU AI Act Art. 9 requires risk management \"prior to placing on the market or putting into service.\" Regulators increasingly ask not just \"did the AI behave?\" but \"who authorized it to run?\" Without a pre-inference gate, you can prove the output was safe but not that someone approved the input. The gate closes that gap: every inference anchor can point back to the authorization decision that allowed it.\n\n```typescript\nimport { gate } from '@tenova/swt3-ai';\n\nconst auth = await gate.authorize({\n  agent_id: 'credit-scorer',\n  model_id: 'gpt-4o',\n  policy: 'prod-lending-v3',\n  clearing_level: 2\n});\n// auth.authorization_id links to the inference anchor\n```\n\n### Chain Reconstruction (`reconstruct.ts`)\n\n**What it does:** Rebuilds a complete forensic timeline from witness anchors. Given a cycle_id, agent_id, or time window, it queries the ledger and produces a chronological narrative of every action the AI system took, with verifiable fingerprints at each step. Exports to terminal, JSON, or self-contained HTML.\n\n**Why it matters:** When an incident happens, regulators and legal teams need a provable sequence of events, not a log dump. Chain reconstruction turns scattered witness anchors into a coherent audit trail that any assessor can independently verify. The HTML export is designed to be handed directly to legal counsel or a Notified Body without granting system access.\n\n```typescript\nimport { reconstruct } from '@tenova/swt3-ai';\n\nconst chain = await reconstruct({\n  cycle_id: 'credit-decision-2026-08-10',\n  format: 'html'\n});\n// chain.html is a self-contained forensic report\n```\n\n### MCP Server: 10 New Compliance Tools (33 total)\n\nThe `@tenova/swt3-mcp` server now exposes 33 tools. The 10 new tools bring compliance operations directly into agent workflows: `swt3_gate` (pre-inference authorization), `swt3_guardrail` (safety filter activation), `swt3_hitl` (human review), `swt3_consent` (consent collection), `swt3_data_provenance` (data lineage), `swt3_rag` (RAG provenance), `swt3_output_filter` (output classification), `swt3_incident` (incident reporting), `swt3_reconstruct` (chain reconstruction), `swt3_trajectory` (autonomous decision attestation).\n\nThese tools matter because MCP is becoming the standard integration layer for AI agents. When an agent calls `swt3_gate` before invoking a model, the attestation happens inside the agent's own workflow, not as an afterthought. Compliance becomes a tool call, not a separate system.\n\n### Kotlin SDK (v0.1.1)\n\nCore SWT3 primitives for the JVM ecosystem: fingerprint generation, HMAC-SHA256 signing, anchor verification, and type definitions. Full test vector parity with all 7 other SDKs. Enables witnessing on 3+ billion Android devices without network round-trips. Published to Maven Central.\n\n### Crosswalk Data + Guides\n\n36 frameworks, 118 procedures, 370+ mappings, 16 compliance profiles, 222 guides.\n\n### v0.6.3\n\nSix new witness methods. The four newest close the autonomous vehicle compliance vacuum -- the EU AI Act classifies AV systems as high-risk (Annex III, 3a), NVIDIA just open-sourced a 34B VLA model for robotaxis, and every startup fine-tuning it needs accountability infrastructure that doesn't exist yet. Until now.\n\n- **Trajectory Decision Attestation** (`witnessTrajectory`, AI-MOB.6) -- Every autonomous driving decision produces a planned trajectory and a causal reasoning trace. This method records that a VLA or path planning model produced a trajectory, whether it passed safety validation, and its classification level (nominal, cautionary, degraded, emergency, abort). Context stores ONLY hashes and counts -- never raw coordinates, waypoints, or proprietary CoC traces. Works with any VLA model. ISO/PAS 8800, EU AI Act Annex III(3a), UNECE WP.29 R157.\n\n- **VLA Inference Wrapper** (`wrapVLA`, AI-MOB.7) -- Wrap any VLA inference function with three lines. Captures timing, input/output hashes, and success/failure. Frame data is NEVER hashed by default (<0.1ms overhead vs. 50-200ms for raw frame hashing). Pass pre-computed frame hashes if your camera pipeline already produces them. Supports sync and async via promise detection.\n\n- **Output Safety Witnessing** (`witnessOutputFilter`, AI-GRD.2) -- Proves each model output passed content safety classification. Distinct from `witnessGuardrail` (AI-GRD.1, guardrail activation) -- this records the classification RESULT on the output side: what filter type ran, whether the output was clean or triggered, and what action was taken. EU AI Act Art. 15(3). The difference between \"we have content filters\" and \"here is the anchor proving output #7c91 passed toxicity classification at 99.2% confidence.\"\n\n- **Data Provenance Witnessing** (`witnessDataProvenance`, AI-DATA.1) -- Attests that training data governance review was performed WITHOUT disclosing training data contents. No dataset names. No license strings. No content hashes. Instead: governance reviewed (bool), documentation hash (SHA-256 of the data card, not the data), license verified, demographic features confirmed absent. EU AI Act Art. 10, SR 11-7 III.A, CA-AB-2013. Designed for the tension between compliance requirements and trade secret protection.\n\n- **Jurisdiction Resolver** (`frameworksForJurisdiction`) -- Pass an ISO 3166-1 country code or ISO 3166-2 subdivision and get back every applicable regulatory framework with enforcement dates and binding status (mandatory, advisory, voluntary). `frameworksForJurisdiction(\"US-CA\")` returns California state laws + US federal frameworks + universal standards. Accepts arrays for multi-jurisdiction deployments. 34 frameworks mapped across 50+ jurisdiction codes. Derived from the bundled crosswalks.json -- single source of truth, offline, zero API calls.\n\n### v0.6.2\n\n### Governance Gate (.swt3-gate.yml)\n\nA `.swt3-gate.yml` file in your repo declares which procedures your system must witness, how fresh the evidence must be, and which gaps are critical. Generate one from any supported framework with `--init`, then enforce it in CI. The assessor reads the same file you do.\n\n```yaml\n# .swt3-gate.yml\nversion: \"1.0\"\nname: \"credit-decision-service\"\nstrict: true\nframeworks:\n  EU-AI-ACT:\n    risk_class: high\n    gates:\n      - group: \"Article 9 -- Risk Management\"\n        procedures:\n          - procedure: AI-INF.1\n            required: true\n            max_age: 24h\n            description: \"Every inference must be witnessed\"\n          - procedure: AI-GRD.1\n            required: true\n            critical: true\n            hint: \"Guardrails must be active at inference time\"\n```\n\n```bash\nswt3 gate --init EU-AI-ACT          # Generate from crosswalk\nswt3 gate --validate                 # Check YAML syntax and structure\nswt3 gate                            # Evaluate against live ledger (exit 0/1)\nswt3 gate --json                     # Machine-readable for CI/CD\n```\n\n`swt3 gate` is your pre-merge compliance check. Add it to any CI pipeline that supports exit code checks -- GitHub Actions, GitLab CI, Jenkins, or a local pre-commit hook. Exit 1 means a gap exists -- fix it before it becomes an audit finding. The gate config is version-controlled policy: developers see what's required, CI enforces it, and assessors run `swt3 gate --json` independently against your ledger to confirm compliance without relying on self-reported results. When `strict: true` is set and a `critical` procedure fails, the gate blocks. Non-critical failures warn but pass.\n\n### Auto-Chaining Context Manager\n\nA single AI decision -- retrieve context, run inference, check guardrails -- produces multiple anchors. Without a shared identifier, those anchors are isolated events. The context manager injects a shared `cycle_id` into every witness call inside the callback so the full decision is queryable as one chain.\n\n```typescript\nawait witness.chain(\"credit-decision\", async (ctx) => {\n  await wrapped.chat.completions.create({ model: \"gpt-4o\", messages: [...] });\n  witness.witnessRagContext({ source: \"policy-db\", chunks: 12 });\n  witness.witnessResourceConsumption({ tokensIn: 8000, tokensOut: 2400, apiCalls: 3 });\n});\n```\n\nNesting is supported -- inner chains save and restore the outer cycle_id. Exception-safe. No manual ID management. Use `swt3 reconstruct --cycle CYCLE_ID` to replay the full chain later.\n\n### Forensic Reconstruction (HTML Export)\n\n`swt3 reconstruct` queries the witness ledger and rebuilds a chronological narrative of what an AI system did and when. Every line in the output is backed by a verifiable fingerprint. The `--html` flag produces a self-contained report you can hand to legal, compliance, or a regulator without giving them dashboard access.\n\n```bash\nswt3 reconstruct --cycle CYCLE_ID               # Terminal output\nswt3 reconstruct --agent orchestrator --last 1h  # By agent\nswt3 reconstruct --cycle CYCLE_ID --html         # Self-contained HTML report\nswt3 reconstruct --last 30m --json               # Machine-readable\n```\n\nThe report is independently verifiable. Assessors do not need to trust it -- they can recompute any fingerprint and confirm the evidence is intact.\n\n### Status Findings\n\n`swt3 status` now includes gate evaluation results. If a `.swt3-gate.yml` exists in your project, the output shows which gates pass, which fail, and which procedures need attention -- compliance posture at a glance without leaving the terminal.\n\n### v0.6.1\n\n- **Delegation Trees** (AI-DEL.1) -- witness hierarchical permission delegation with scope binding, cascade revocation, and depth tracking.\n- **Resource Consumption Witnessing** (AI-COST.1) -- witness cumulative token usage, API calls, and estimated cost as cryptographic evidence.\n- **Deployment Context Detection** -- auto-detect cloud provider, region, runtime, and accelerator from environment variables. Clearing-level aware.\n\n### Compliance Status CLI (`npx swt3 status`)\n\nEvery compliance framework your AI system faces -- EU AI Act, NIST AI RMF, SR 11-7, CMMC -- maps to dozens of requirements across multiple articles. Developers integrate the SDK, mint anchors, and know their code is witnessed. But no one could answer the question that matters most before an assessment: \"How much of my framework is actually covered right now?\"\n\nThe answer used to require logging into a dashboard, cross-referencing a crosswalk spreadsheet, and hoping your ledger had recent entries. `npx swt3 status` puts that answer in the terminal where developers already live. One command, zero network calls, instant result.\n\n```bash\n$ npx swt3 status\n\n  EU Artificial Intelligence Act ██████░░░░░░░░░░░░░░  30% (15/50)\n\n  Covered:\n    ✓ Art.9(2)(a)    AI-GRD.1   5m ago\n    ✓ Art.13(1)      AI-EXPL.1  8m ago\n    ✓ Art.27         AI-DPIA.1  2w ago\n\n  Next steps:\n    AI-COST.1    witness.witnessResourceConsumption()\n    AI-CONSENT.1 witness.witnessConsent()\n    AI-DATA.2    witness.witnessDataQuality()\n```\n\nThe bar goes up every time you implement another procedure. Gaps show the exact SDK method to close them -- not documentation links, not vague guidance, but the function call. Use `--json` in CI to fail builds when coverage drops. Use `--compact` for Slack notifications. Use `--full` the week before an assessment to see every article, covered or not. Hand the output to your CISO. Hand the [assessor hot sheet](https://sovereign.tenova.io/guides/assessor-hot-sheet.html) to the auditor.\n\n### v0.6.0\n\nEverything until now has been single-anchor-per-event. v0.6.0 introduced **lifecycle chains** -- sequences of linked anchors that capture an entire governance process from start to finish, reconstructable from a single identifier.\n\n### Lifecycle Chains\n\nWhen an operator overrides your AI, when a model drifts and triggers a circuit breaker, when you run a challenger model against production -- these are not point events. They are processes with a beginning, middle, and end. A single anchor cannot capture them. A lifecycle chain can.\n\nRegulators and auditors do not accept point-in-time snapshots as evidence for ongoing governance decisions. When your model drifts and you escalate to an emergency override, an auditor needs to see the complete decision sequence: what triggered the escalation, who authorized the override, what fallback was activated, and when normal operation resumed. Without a chain, you reconstruct that narrative from scattered log entries during the audit. With a chain, the evidence trail is cryptographically linked and queryable from a single identifier before the auditor asks.\n\n```typescript\n// Promote a challenger model, monitor it, handle problems\nconst assessChain = witness.beginLifecycle(\"AI-ASSESS.1\", 10000, 23.0, 0);  // 10K inputs, divergence 0.023, threshold not breached\nassessChain.resolve(10000, 23.0, 0);  // challenger promoted\n\n// Monitor the promoted model for drift\nconst driftChain = witness.beginLifecycle(\"AI-DRIFT.2\", 0.05, 3.0, 1.0);  // low drift, operational category, monitoring\ndriftChain.checkpoint(0.12, 3.0, 1.0);  // drift increasing\ndriftChain.checkpoint(0.35, 0.0, 3.0);  // safety threshold -- circuit breaker\n\n// Drift triggered emergency override\nconst emrgChain = driftChain.escalate(\"AI-EMRG.1\", 1.0, 1.0, 0.0);  // operator command, supervisor auth, safe state\nemrgChain.checkpoint(1.0, 1.0, 0.0);  // system stable under fallback\nemrgChain.resolve(1.0, 1.0, 0.0);  // AI control restored\n\n// Every anchor shares the same chain ID, each links to its parent\nconsole.log(emrgChain.chainId);  // LC-7a38936db8ecec94\n```\n\nThat is the full governance loop: assessment to promotion to monitoring to escalation to override to restoration. Every transition is a cryptographic anchor. Every chain is reconstructable from a single ID. Auditors query one endpoint and get the complete evidence trail:\n\n```\nGET /api/v1/witness/chain?lifecycle_chain_id=LC-7a38936db8ecec94\n```\n\nCrash recovery is built in. If your process restarts mid-chain, reconstruct the handle from known state:\n\n```typescript\nconst chain = witness.resumeLifecycle(\"AI-EMRG.1\", \"LC-7a38936db8ecec94\", \"2e16e2fe92dd\");\nchain.checkpoint(1.0, 0.9, 0.0);  // continues from where it left off\n```\n\n### Emergency Override Witnessing (AI-EMRG.1)\n\nWhen a human overrides an AI system -- kills a valve controller, disables a fraud model, intervenes in a decision pipeline -- there is no standard way to produce cryptographic evidence of who authorized it, what fallback state was activated, and when control was restored. Now there is.\n\n```typescript\nwitness.witnessOperationalOverride({\n  triggerType: \"operator_command\",       // emergency_stop, operator_command, escalation_protocol, external_responder\n  authorizationLevel: \"supervisor\",      // operator, supervisor, site_manager, emergency_responder\n  fallbackState: \"safe_state\",           // safe_state, legacy_controller, manual_mode, degraded_operation, full_shutdown\n  systemId: \"reactor-ai-v3\",\n  operatorId: \"eng-042\",\n  overrideReason: \"valve pressure anomaly\",\n});\n```\n\nMaps to: EU AI Act Art. 14 (human override for high-risk AI), NIST 800-53 IR-4 (incident handling), IEC 61511 (safety instrumented systems).\n\n### Consequence-Mapped Drift (AI-DRIFT.2)\n\nMost drift detection tells you a number changed. It does not tell you what that number means for your operation. AI-DRIFT.2 maps statistical drift to real-world consequence categories with graduated response witnessing.\n\n```typescript\nwitness.witnessDriftConsequence({\n  driftMagnitude: 0.15,                  // PSI, KL divergence, or any statistical metric\n  consequenceCategory: \"safety\",         // safety, environmental, financial, operational, reputational\n  responseAction: \"circuit_breaker\",     // notification_only, increased_monitoring, throttle, circuit_breaker, forced_failover, emergency_shutdown\n  driftMetric: \"psi\",\n  modelId: \"fraud-model-v7\",\n  mappingVersion: \"2026-Q2\",\n});\n```\n\nMaps to: EU AI Act Art. 9(2)(b) (continuous risk estimation), OCC 2026-13 / SR 26-2 (model risk management with materiality mapping).\n\n### Champion-Challenger Assessment (AI-ASSESS.1)\n\nRunning a shadow model alongside production? The comparison dashboard in your ML platform is a mutable database entry. AI-ASSESS.1 makes it a cryptographic evidence chain: session configuration, periodic divergence snapshots, and the promotion or rejection decision -- all linked by a shared assessment ID.\n\n```typescript\nwitness.witnessChampionChallenger({\n  inputsProcessed: 10000,\n  maxDivergence: 0.023,                  // highest divergence observed (raw value, x1000 internally)\n  thresholdBreached: false,              // true = FAIL, false = PASS\n  championId: \"gpt-4o-2026-05\",\n  challengerId: \"gpt-4o-2026-07\",\n  divergenceMetric: \"kl_divergence\",\n});\n```\n\nMaps to: EU AI Act Art. 15 (post-market monitoring), OCC 2026-13 / SR 26-2 (challenger runs with versioned sign-off).\n\n### v0.5.9\n\n- **Local Witness Mode** -- `new Witness()` with no args. No account, no API key, no network. Anchors saved locally, framework coverage shown in console. Try witnessing in 10 seconds.\n- **Compliance Intelligence** -- `resolve(\"AI-FAIR.1\")` returns every regulation that procedure satisfies across 77 frameworks, offline, zero dependencies. `coverage(\"EU-AI-ACT\")` shows your session's covered/remaining controls with a score.\n- **Bundled Crosswalks** -- 77 frameworks and 275 procedures ship inside the package. Offline regulatory mapping with no API calls.\n- **Framework Coverage on Flush** -- after sending anchors, the SDK shows which regulations your evidence covers. Appears on first few flushes, then goes silent.\n- **[Crosswalk Explorer](https://sovereign.tenova.io/crosswalks/)** -- public interactive UI to search any procedure or framework control. Browse all controls for a framework, copy results, deep-link with `?procedure=AI-FAIR.1`. No login required.\n\n### v0.5.8\n\n- K8s DaemonSet, Cross-Silicon Hardware Attestation, AGT + LangGraph adapters\n- 21 adapters, 118 procedures, 64 namespaces, 36 frameworks, 18 profiles\n\n### K8s Hardware Attestation -- One Command\n\nEvery node in your cluster runs AI workloads on hardware you have never attested. If a GPU fails silently, a model gets rescheduled to CPU, or your cloud provider live-migrates you to different silicon, your compliance posture changed and nobody recorded it. Your cluster has NVIDIA nodes for training and Trainium nodes for inference -- the DaemonSet attests both, and the anchor chain shows when workloads move between them.\n\n```bash\nhelm install swt3 oci://ghcr.io/tenova-labs/charts/swt3-witness --version 0.5.9\n```\n\nThat is the entire setup. One command. Every node gets a witness pod. Every accelerator gets discovered. Every hour, an AI-HW.1 anchor is minted with the hardware fingerprint.\n\n```json\n{\n  \"swt3_witness\": true,\n  \"procedure\": \"AI-HW.1\",\n  \"anchor_fingerprint\": \"d8491581c715\",\n  \"silicon_vendor\": \"nvidia\",\n  \"topology\": \"multi\",\n  \"accelerator_count\": 4,\n  \"gpu_count\": 4,\n  \"total_memory_mb\": 327680,\n  \"clearing_level\": 1,\n  \"agent_id\": \"witness-node-gpu-pool-3a\"\n}\n```\n\nThat JSON goes to stdout. Scrape it with Fluentd, Promtail, or any log pipeline. Filter: `jq 'select(.swt3_witness == true)'`.\n\nWhen a node's hardware changes, consecutive anchors tell the story:\n\n```json\n// 09:00 -- 4x NVIDIA H100, training workload\n{\"anchor_fingerprint\":\"d8491581c715\",\"silicon_vendor\":\"nvidia\",\"accelerator_count\":4,\"total_memory_mb\":327680}\n\n// 10:00 -- cloud provider live-migrated to Trainium, same node\n{\"anchor_fingerprint\":\"a3f7c2910eb4\",\"silicon_vendor\":\"aws\",\"accelerator_count\":2,\"total_memory_mb\":65536}\n```\n\nThe fingerprints are different because the hardware changed. An auditor or drift alert can compare consecutive anchors and see exactly when the silicon shifted, on which node, and whether the compliance posture held.\n\nWhen you are ready to persist anchors to the clearing house, upgrade to cloud mode:\n\n```bash\nhelm upgrade swt3 oci://ghcr.io/tenova-labs/charts/swt3-witness --version 0.5.9 \\\n  --set config.mode=cloud \\\n  --set cloud.apiKey=axm_YOUR_KEY \\\n  --set cloud.tenantId=YOUR_TENANT\n```\n\nBoth modes produce the same cryptographic anchors. The only difference is where they land.\n\n**Security posture:** Non-root (UID 10001). Read-only root filesystem. All capabilities dropped. No privilege escalation. `/sys` mounted read-only for PCI discovery. Health endpoint on `:9090`. 46 MB image.\n\nOpen source (Apache-2.0). Source, Dockerfile, and Helm chart: [github.com/tenova-labs/swt3-ai](https://github.com/tenova-labs/swt3-ai).\n\n## MCP Server -- Official Registry\n\n`@tenova/swt3-mcp` is listed on the official Model Context Protocol Registry as `io.tenova/swt3-witness`. Zero-config compliance governance for Claude Code, Cursor, Windsurf, and any MCP-compatible host.\n\n```json\n{\n  \"mcpServers\": {\n    \"swt3-witness\": {\n      \"command\": \"npx\",\n      \"args\": [\"@tenova/swt3-mcp\"]\n    }\n  }\n}\n```\n\nEvery tool call your agent makes is witnessed, Merkle-accumulated, and trust-evaluated. No code changes required. [Quick Start](https://www.npmjs.com/package/@tenova/swt3-mcp)\n\n### Witness Middleware\n\nAlready have an MCP server? Wrap its transport for zero-code witnessing without installing the full 63-tool server:\n\n```typescript\nimport { withSWT3 } from \"@tenova/swt3-mcp/middleware\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nconst transport = withSWT3(new StdioServerTransport(), {\n  apiKey: process.env.SWT3_API_KEY,\n});\nawait server.connect(transport);\n// Every tool call now auto-witnesses AI-TOOL.1 anchors\n```\n\nThe middleware observes tool call request/response pairs at the transport layer. The response is already sent before the witness fires. Your tool handlers are never modified, blocked, or delayed.\n\n## Secure Agent-to-Agent Communication\n\nThe SWT3 Trust Mesh enables mutual cryptographic verification between AI agents before they exchange data, invoke tools, or share context. When you adopt SWT3, every partner, vendor, and downstream agent that wants to interact with yours must adopt it too. Compliance becomes the connection protocol. Every agent in the mesh strengthens the network.\n\n**You run Agent A. Your partner runs Agent B. Both install @tenova/swt3-ai:**\n\n```typescript\n// === Your side (Agent A) ===\nconst witnessA = new Witness({\n  endpoint: \"...\", apiKey: \"axm_...\", tenantId: \"YOUR_TENANT\",\n  agentId: \"agent-alpha\", signingKey: \"swt3_sk_your_key\",\n});\nwitnessA.trustRegistry.trustTenant(\"PARTNER_B_TENANT\");\nwitnessA.trustRegistry.registerSigningKey(\"agent-beta\", process.env.PARTNER_B_KEY!);\n\n// === Partner's side (Agent B) ===\nconst witnessB = new Witness({\n  endpoint: \"...\", apiKey: \"axm_...\", tenantId: \"PARTNER_B_TENANT\",\n  agentId: \"agent-beta\", signingKey: \"swt3_sk_partner_key\",\n});\nwitnessB.trustRegistry.trustTenant(\"YOUR_TENANT\");\nwitnessB.trustRegistry.registerSigningKey(\"agent-alpha\", process.env.YOUR_KEY!);\n\n// === Handshake (both directions) ===\nconst credA = witnessA.presentCredential();\nconst resultB = witnessB.verifyTrust(credA);       // B verifies A\nif (resultB.granted) {\n  const credB = witnessB.presentCredential();\n  const resultA = witnessA.verifyTrust(credB);      // A verifies B\n  if (resultA.granted) {\n    // Bidirectional trust established. Exchange data.\n  }\n}\n```\n\nConfigure trust boundaries declaratively in `.swt3.yaml`:\n\n```yaml\ntrust_mesh:\n  mode: strict\n  min_trust_level: 2\n  require_signature: true\n  freshness_window: 3600\n  trusted_tenants: [\"PARTNER_B_TENANT\"]\n  deny_agents: [\"revoked-agent-id\"]\n```\n\nAll verification is local. Zero cloud overhead. No data exchanged until both agents clear the trust gate. Unsigned agents are capped at TRUST_BASIC (level 1). Add signing keys for verified trust. Add hardware attestation for sovereign trust.\n\n## Offline Verification\n\nVerify any witness anchor without network calls. The fingerprint formula is deterministic and identical across all 10 SDK languages -- recompute it anywhere in microseconds.\n\n```typescript\nimport { verifyAnchor } from \"@tenova/swt3-ai\";\n\nconst result = verifyAnchor(anchor, {\n  tenantId: \"<YOUR_TENANT_ID>\",\n  procedureId: \"AI-INF.1\",\n  factorA: 1, factorB: 1, factorC: 0,\n  timestampMs: 1773316622000,\n});\n// result.status: \"CERTIFIED TRUTH\" | \"TAMPERED\"\n```\n\nZero vendor dependency. Zero network calls. Works air-gapped. The same formula runs in Python, TypeScript, Swift, Rust, C#, Ruby, Go, Kotlin, and MCP with identical output for identical inputs.\n\n## See It Work (No Account Needed)\n\n```bash\nnpm install @tenova/swt3-ai\nnpx swt3-demo\n```\n\nThe demo runs the full pipeline locally: hash, extract, clear, anchor, verify. It shows a Regulatory Coverage Summary mapping each check to EU AI Act articles, with gaps highlighted. No API keys, no network calls.\n\n## Three Lines to Start Witnessing\n\n### OpenAI\n\n```typescript\nimport { Witness } from \"@tenova/swt3-ai\";\nimport OpenAI from \"openai\";\n\nconst witness = new Witness({\n  endpoint: \"https://your-witness-endpoint.example.com\",\n  apiKey: \"axm_live_...\",\n  tenantId: \"YOUR_TENANT\",\n});\n\nconst client = witness.wrap(new OpenAI()) as OpenAI;\n\n// Non-streaming\nconst response = await client.chat.completions.create({\n  model: \"gpt-4o\",\n  messages: [{ role: \"user\", content: \"Summarize this contract...\" }],\n});\nconsole.log(response.choices[0].message.content);\n\n// Streaming works too. Chunks arrive in real-time, witnessing happens after.\nconst stream = await client.chat.completions.create({\n  model: \"gpt-4o\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing\" }],\n  stream: true,\n});\nfor await (const chunk of stream) {\n  process.stdout.write(chunk.choices[0]?.delta?.content ?? \"\");\n}\n```\n\n### Anthropic\n\n```typescript\nimport { Witness } from \"@tenova/swt3-ai\";\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst witness = new Witness({\n  endpoint: \"https://your-witness-endpoint.example.com\",\n  apiKey: \"axm_live_...\",\n  tenantId: \"YOUR_TENANT\",\n});\n\nconst client = witness.wrap(new Anthropic()) as Anthropic;\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-20250514\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Draft a compliance memo\" }],\n});\n```\n\n### Vercel AI SDK (Next.js / React)\n\n```typescript\nimport { Witness } from \"@tenova/swt3-ai\";\nimport { streamText } from \"ai\";\nimport { openai } from \"@ai-sdk/openai\";\n\nconst witness = new Witness({\n  endpoint: \"https://your-witness-endpoint.example.com\",\n  apiKey: \"axm_live_...\",\n  tenantId: \"YOUR_TENANT\",\n});\n\nconst prompt = \"Summarize this contract for the board\";\n\nconst result = await streamText({\n  model: openai(\"gpt-4o\"),\n  prompt,\n  onFinish: witness.vercelOnFinish({ promptText: prompt }),\n});\n```\n\nThe `onFinish` hook is framework-native. No wrapping, no proxying. It fires after the stream completes and works with any Vercel AI SDK provider.\n\n## What the SDK Does\n\nWhen your AI makes a call, the SDK:\n\n1. **Hashes** the prompt and response locally using SHA-256 (raw text never leaves your machine)\n2. **Extracts** numeric factors: model version, latency, token count, guardrail status\n3. **Clears** sensitive metadata based on your clearing level (you control what goes on the wire)\n4. **Anchors** the factors into a cryptographic fingerprint anyone can independently verify\n5. **Buffers** and flushes anchors in the background (median overhead: under 1ms)\n6. **Returns** your original response completely untouched\n\nFor streaming: chunks arrive to the developer in real-time. The SDK accumulates content in the background and witnesses after the stream completes.\n\n## Witness Agent Tool Calls\n\nIf your AI agent calls tools or functions, wrap them to create a record of every invocation:\n\n```typescript\nconst search = witness.wrapTool(\n  (query: string) => db.execute(query),\n  \"search_database\"\n);\n\nconst results = await search(\"SELECT * FROM transactions WHERE amount > 10000\");\n// An AI-TOOL.1 anchor is minted recording: tool name, latency, success/failure\n```\n\nEach anchor records the tool name, input/output hashes, latency, and success or failure.\n\n## Witness Agent Resource Access\n\nNew in v0.2.10. Wrap any function your agent uses to access external resources. The SDK records what was accessed and whether it was within the agent's declared scope:\n\n```typescript\nconst queryCustomers = witness.wrapAccess(\n  (sql: string) => db.execute(sql),\n  \"customer-database\",      // resource name\n  \"read-only analytics\"     // declared authorization scope\n);\n\nconst results = await queryCustomers(\"SELECT name FROM customers\");\n// An AI-ACC.1 anchor is minted recording:\n//   - Was it accessed? (yes)\n//   - Was it within scope? (yes)\n//   - Was access granted? (yes)\n```\n\nIf the agent tries to access something outside its declared scope, the anchor records a FAIL verdict with a full evidence trail.\n\n## Detect Instruction Drift\n\nNew in v0.2.10. The SDK separately hashes the system prompt (base instructions) for each inference. If your agent's instructions change between audit periods, the hash changes and the platform flags it as instruction drift.\n\nThis happens automatically. No configuration needed. The system prompt hash is extracted from:\n- OpenAI: messages where `role === \"system\"`\n- Anthropic: the `system` parameter\n\nThe hash is included at clearing levels 0 and 1, stripped at levels 2 and 3.\n\n## RAG Context Witnessing\n\nNew in v0.4.3. Witness what context chunks your RAG pipeline retrieves, from which corpus, and how relevant they are. Chunk text is never transmitted -- only SHA-256 hashes.\n\n```typescript\n// Zero-friction: pass raw strings, SDK handles hashing\nwitness.witnessRagContext({\n  chunks: [\"chunk text 1\", \"chunk text 2\", \"chunk text 3\"],\n  corpusId: \"legal-docs-v3\",\n});\n```\n\nThis mints an AI-RAG.1 (Context Retrieval Provenance) anchor. Add similarity scores to also get AI-RAG.2 (Context Relevance):\n\n```typescript\nimport type { RagChunk } from \"@tenova/swt3-ai\";\n\nwitness.witnessRagContext({\n  chunks: [\n    { contentHash: \"abc123...\", sourceId: \"doc-7/p3\", similarityScore: 0.92 },\n    { contentHash: \"def456...\", sourceId: \"doc-2/p1\", similarityScore: 0.78 },\n    { contentHash: \"789abc...\", sourceId: \"doc-4/p2\", similarityScore: 0.61 },\n  ],\n  corpusId: \"legal-docs-v3\",\n  embeddingModel: \"text-embedding-3-small\",\n  similarityThreshold: 0.75,  // triggers AI-RAG.2\n});\n```\n\nOne call. Two procedures. Complete retrieval attestation.\n\nMaps to: EU AI Act Art. 12(2)(a) (reference database logging), Art. 10(2) (data quality), NIST AI RMF MAP 3.5 (data provenance).\n\n## Model Weight Integrity\n\nWitness the actual model weights, not just the model name string:\n\n```typescript\n// File path: SDK hashes automatically\nwitness.witnessModelWeights(\"/models/llama-3.1-70b.safetensors\");\n\n// Pre-computed hash with verification\nwitness.witnessModelWeights(\n  { fileHash: \"abc123...\", format: \"safetensors\" },\n  { expectedHash: \"abc123...\" },  // PASS if match, FAIL if mismatch\n);\n\n// Adapter stack + quantization\nwitness.witnessAdapterStack(\n  [{ name: \"lora-legal\", adapterHash: \"aaa111\" }],\n  \"llama-3.1-70b\",\n);\nwitness.witnessQuantization(\"gptq\", { bits: 4, groupSize: 128 });\n```\n\nMaps to: EU AI Act Art. 15(4) (resilience against modification), Art. 12(2)(b) (version logging).\n\n## TPM Platform Attestation (AI-HW.3)\n\nProve host firmware integrity via TPM 2.0. Reads PCR registers 0-7 and mints a hardware root-of-trust anchor. All raw values are SHA-256 hashed before leaving the module:\n\n```typescript\n// Auto-detect: reads /dev/tpm0 via tpm2-tools\nwitness.witnessTPMAttestation();\n\n// Or provide a pre-computed snapshot\nimport { queryTPM } from \"@tenova/swt3-ai\";\nconst snapshot = queryTPM();\nwitness.witnessTPMAttestation({ snapshot });\n```\n\nIf no TPM is available (cloud VM, dev machine), returns a valid anchor with factor_a=0. No crash, no error. Graceful degradation by design.\n\nUse case: sovereign/air-gapped deployments where you must prove the host was not tampered with. Combined with AI-HW.1 (GPU inventory), gives full hardware root-of-trust from silicon to model.\n\nMaps to: NIST 800-53 SC-12 (cryptographic key establishment). Patent pending.\n\n## Environmental Attestation (Residential and Edge AI)\n\nWitness the physical compute environment for distributed, edge-deployed, or residential AI nodes. Proves the hardware operated within safe thermal and power bounds during inference:\n\n```typescript\n// Zero-config: auto-detects Linux thermal sensors\nwitness.witnessEnvironment();\n\n// Manual readings from smart panel APIs or IPMI\nwitness.witnessEnvironment({\n  temperatureCelsius: 42,\n  thresholdCelsius: 75,\n  nodeType: \"residential\",\n});\n\n// Power integrity: draw vs capacity\nwitness.witnessEnergyDraw({\n  powerWatts: 1200,\n  capacityWatts: 2400,\n  nodeType: \"edge\",\n});\n```\n\nIf no sensors are available (dev machine, cloud VM), returns a valid anchor with zero readings. No crash, no error.\n\nUse case: enterprises renting compute on distributed residential nodes need cryptographic proof that the node was operating within safe bounds, was not throttled, and was not physically tampered with during their inference window.\n\nMaps to: NIST 800-53 PE-14 (environmental controls), EU AI Act Annex I (product safety for home-integrated AI).\n\n## Skill Manifest Attestation\n\nWitness which skills, tools, and plugins are loaded in your agent:\n\n```typescript\n// Zero-friction: just names\nwitness.witnessSkillManifest([\"code_exec\", \"web_search\", \"file_read\"]);\n\n// Memory context\nwitness.witnessMemoryContext([\n  { sourceType: \"vector_store\", sourceId: \"pinecone-prod\" },\n  { sourceType: \"conversation\", sourceId: \"session-123\" },\n]);\n\n// Reward model binding\nwitness.witnessRewardModel(\"rm-v3-legal\", { method: \"dpo\" });\n```\n\nMaps to: EU AI Act Art. 12(2)(b) (capability tracking), NIST AI RMF GOVERN 1.7 (capability documentation).\n\n## Multi-Agent Chains, Violations, and Safety (v0.5.0)\n\nNew in v0.5.0. Convenience methods for 8 additional procedures covering multi-agent orchestration, policy enforcement, human oversight, and training data governance:\n\n```typescript\n// Multi-agent chain handoff (AI-CHAIN.1)\nwitness.witnessChainHandoff(3, \"step-2-reviewer\");\n\n// Policy violation reporting (AI-VIO.1)\nwitness.witnessViolation(3, \"PII in output\", { autoDetected: true, policyCategory: \"data\" });\n\n// Agent charter attestation (AI-CHR.1)\nwitness.witnessCharter({ charterText: \"You are a fraud detection assistant...\" });\n\n// Model registry check (AI-MDL.8)\nwitness.witnessModelRegistry(\"gpt-4o-2025-04-16\", \"eu-approved-models-v3\");\n\n// Reviewer identity binding for four-eyes rule (AI-HITL.3)\nwitness.witnessReviewerIdentity(2, 2, { method: \"cryptographic\" });\n\n// Safe state attestation (AI-SAFE.1)\nwitness.witnessSafeState({ mechanismExists: true, safeStateConfirmed: true });\n\n// Training data statistics (AI-DATA.3)\nwitness.witnessTrainingStats(50000, 128, { classBalanceRatio: 0.85 });\n\n// Training data PII lifecycle (AI-DATA.4)\nwitness.witnessTrainingPiiLifecycle(10000, { eventType: \"pseudonymization\", datasetId: \"training-v3\" });\n```\n\nMaps to: EU AI Act Art. 10(3), Art. 10(5), Art. 12(2)(a), Art. 12(3)(d), Art. 13, Art. 14(4)(e), Art. 14(5), Art. 51. NIST AI RMF MANAGE 3.2, MANAGE 4.1, GOVERN 1.2.\n\n## Agent Identity\n\nBind a unique identity to every anchor your agent produces:\n\n```typescript\nconst witness = new Witness({\n  endpoint: \"...\",\n  apiKey: \"axm_...\",\n  tenantId: \"...\",\n  agentId: \"fraud-detector-prod\",\n  signingKey: \"swt3_sk_...\",  // HMAC-SHA256 signing for non-repudiation\n});\n```\n\nThe `agentId` survives all clearing levels. The `signingKey` produces an HMAC-SHA256 signature on every anchor, proving which agent instance created it. When a signing key is registered server-side, the server validates the signature on ingestion and rejects tampered payloads. This enables:\n- **Payload authenticity** -- server verifies the SDK that minted the anchor held the registered secret\n- **Tamper detection** -- any modification after signing causes rejection (422)\n- Per-agent compliance passports\n- Fleet-wide governance dashboards\n- Agent-scoped evidence packages for auditors\n\nReceipts include `signature_verified: true` when the server confirms the si","readmeFilename":"README.md"}