{"_id":"halo-record","_rev":"32-4691a5693ec4640a3fa89fc8489216e7","name":"halo-record","dist-tags":{"latest":"0.2.45"},"versions":{"0.1.0":{"name":"halo-record","version":"0.1.0","license":"Apache-2.0","_id":"halo-record@0.1.0","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"dist":{"shasum":"d875e54c1c3373f034ebd84683d896100b1b262b","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.1.0.tgz","fileCount":30,"integrity":"sha512-lcTLkb/Tz/9jND1BocRg+VIXajJPhhtIVIVjI4igiwniNCbYSexzXUpNoTIq978NMglHALETUU1+8tmjdAj4zA==","signatures":[{"sig":"MEUCIQDtG4F6FQaz+AP8SswR6B5djmBaSsx0fDwsAHbixW7hZQIgQJ6w4+aLmI7XFu5Wr7t0rlI6HC9giKR2sKGFWDGqhBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79203},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7ad7b88aa933f689897b687f58749d3834b860cb","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.1.0_1781304379451_0.5193442721171522","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"halo-record","version":"0.1.1","license":"Apache-2.0","_id":"halo-record@0.1.1","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"677f79118ed98c61f3c8c1d5e898243d72feaed2","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.1.1.tgz","fileCount":30,"integrity":"sha512-wTB5x89TSzltHSaxG974q5Ic2WsYuBKTGcjmp4q7POcBsb3qFXCx+nCtb/7WAX8RibDNVwIt4SAZqRVbjnOM8w==","signatures":[{"sig":"MEQCIDohID7z0oLq1P3oirFn0cS7paquXahu9lIuR1hsYQRAAiA7iCYmGWRixrpxb0zKUD0cCzxxNu+OWgL+SWak6bncyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79456},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"209ce18b64c44d409c51f900d83155ecc08b01e8","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.1.1_1781305965145_0.3956339479296349","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"halo-record","version":"0.1.2","license":"Apache-2.0","_id":"halo-record@0.1.2","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"31e6cfb3c977286d3574629461a8cae308a5a78b","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.1.2.tgz","fileCount":30,"integrity":"sha512-lWWhvtZhUzQ4o1ywBRcm3U84v+8aTMXhC8jlYrekFJph59xAiO+jxvxGXI7MnT5+xu8nlA5PXu9kv3vi5t1YUg==","signatures":[{"sig":"MEQCIByRQkwcoKRY8WH5wvv/jgHZ+dLmWYqbn7mBwSh132fEAiAPKGRb3NVwbxfBf2zykAibD+JTh1yWBTBGc3qh2z+aDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83004},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"28cace22d9f0ea290fbc0d29eb393d42fa4b95ba","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.1.2_1782171098856_0.8244684045312698","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"halo-record","version":"0.2.0","license":"Apache-2.0","_id":"halo-record@0.2.0","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"c793e4b16f941e8583e0c61cfc09d4ae03ee3534","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.0.tgz","fileCount":30,"integrity":"sha512-WaUFXOhmJ56LRBZb4kcaZzwUvbcKe3CK3Rw4WT56xkQd9tq5iupov8pSEshPpfN60PKGGewbmXYm7MlPhL4wNQ==","signatures":[{"sig":"MEUCIQCloy8f1n++qoN/Z/X79L03Or2jx3gxDGT+uKTEjEBpawIgPMZ1tRJC9//twClgpcxnSEroyr3sndL99vUlNT3+6Ck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83004},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"962375957ca57a7fc71362e590e368e23c0c951f","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.0_1782510018462_0.4255171102497657","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"halo-record","version":"0.2.2","license":"Apache-2.0","_id":"halo-record@0.2.2","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"e70857c024d8dc9961afd8fd038836919185df19","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.2.tgz","fileCount":30,"integrity":"sha512-obY+gZ3+hXsSu66xlxm+uoKSv2Q/eYs8ax8/L6A6vn1l9cXqDLon9NMCjsEJf/AHE9wxKe1ZZzOvQdNoVf03VQ==","signatures":[{"sig":"MEQCIA2+EaXHXVoIeGWpBnRPVMlY3mJ/65N1+fQ5iiF8O8ZXAiB19VzZYJ+bl3CXiKu6ObWcgLwMpOxVcAyawU7zpgq9pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83004},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"f99a0e07aead6718abd06a594315a393787da6e2","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.2_1783373065978_0.23886965439951768","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"halo-record","version":"0.2.4","license":"Apache-2.0","_id":"halo-record@0.2.4","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"8abf219ddf8776519668e7ea825dfb45abd3a99d","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.4.tgz","fileCount":30,"integrity":"sha512-P6el2+BY/h+FceRutnF9iGK/Op4hHMarjO+ZORceKxDZlLxZtWgbAeNum8sFE/A+kGAb/StuQ39unuQp7tE6IA==","signatures":[{"sig":"MEYCIQCKzzTgBX8qmG+Mu45kB5Iu1cYWHR9wnfjuH4e2cdnUqAIhAMKbj7o23EE0BVPCsJxFTanzWlC3L7xlKLJG1SSoMaTm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"bad1db928b3583736fcc94ee386c4ed47c04281f","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.4_1783562547112_0.019425548904242973","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"halo-record","version":"0.2.5","license":"Apache-2.0","_id":"halo-record@0.2.5","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"ec457ce7644992beb235682f5f8002736232d7bb","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.5.tgz","fileCount":30,"integrity":"sha512-1uf0S6ZJiQzHSxNoUBcjFdyx0txklopsSfY+XzCjArYSGBn5xR0un1u/6Ng6m7ikE6ZFjtxSaC6Y11EgpbxnUA==","signatures":[{"sig":"MEUCIQCLUnIQu9Uikv1Hts8OWL4Wxh5nyScUzlnQC+OIsjrP/QIgbp7c1pFwmwo8+ev7WxoeeGtjqB0jZkSFQoMCS78tUgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9efaa7af6a527b3e30262e33501aaea8dc27d271","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.5_1783723297894_0.23772137752893774","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"halo-record","version":"0.2.6","license":"Apache-2.0","_id":"halo-record@0.2.6","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"72b691d6861c3d40bff73f2d75bcf41cb586e645","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.6.tgz","fileCount":30,"integrity":"sha512-58iXBOyvpbD6IpDYOv7WFpXs8DydgOjIwlIPQlyVhs/NBR5wP0oWoEWXf7fINjhy2MHpI2JPmi6Az5VVQnQ+7w==","signatures":[{"sig":"MEUCIHvBlNus7khy3Ns03cYpiitx0Xsejf4AYiiUvfJccKGdAiEAha5uAM62D/naKhI+LpBWY2YZsBSlz3KrUO8ynhNaQ5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"e96991c8cc16206ada42075a12d971c43c63e920","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.6_1783971530925_0.8425141206947195","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"halo-record","version":"0.2.7","license":"Apache-2.0","_id":"halo-record@0.2.7","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"52689f06f1555b93d786d4970475ab02968686f3","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.7.tgz","fileCount":30,"integrity":"sha512-67xa6uzTDgQbT1DwUk2C2GCnEmdajUgw7LTJKuzAfdUmHOVUzBBkXG694UKQfI7lu+3mSRJN0w53JWZYMnJlRA==","signatures":[{"sig":"MEUCIGGBuTe0RZlBToRZLIcXf9n6I5jmHBHakDF8zxEC9poFAiEAxEH17cQ+1CP5mlfZMg04JHzzpSx7Uykcu1+FMOJuf2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"47266e380ba3b51bdbf773c35eb8c7a9d99b0c81","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.7_1783981393482_0.943084450329507","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"halo-record","version":"0.2.8","license":"Apache-2.0","_id":"halo-record@0.2.8","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"5e7c7df327c7b137ac3e7271b63ef72416ec4cc5","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.8.tgz","fileCount":30,"integrity":"sha512-SJQWdkphR4XgTjH+LDfE5ZIxZAB0jp7Cth/xBcf7GJoGQ7d17eePU+2N3l9yAJyotcZs3qCKKkDp21L3i5N8xQ==","signatures":[{"sig":"MEYCIQCX4mBPAeeBYjAcHBiNEECBTbcE6eNRGzdBES6/OJkqAgIhAJOxk9qTTBUvkJwWeTcxNI1f70jBzEhBsZr02johV/Ry","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85580},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4dc8c853266d3936cedc519b9ad2dc20ed66a3bd","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.8_1784094587755_0.5266162756869224","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"halo-record","version":"0.2.9","license":"Apache-2.0","_id":"halo-record@0.2.9","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"38621261f155eb57f30e14833bbbdf22f77e88f0","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.9.tgz","fileCount":30,"integrity":"sha512-+oOMQwDLRocxp60tnVDRwyFlYbRBciuiYcbpKHjWTuk2RdIpHRalQJPI74/jzsxEzrDo/UoQ7szFzbM8HvABwQ==","signatures":[{"sig":"MEUCIQCaStrxVQBpbiPJbTOST5NxyJQDjeE3huFyqvEAChC00wIgDL307iCAJL59XViqXbnNNnBUiCba0vfN9xdCYMXI0Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85750},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a1edda2309a4a8b5bcb353213ac44d07801ba20f","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.9_1784668523392_0.6567915207655268","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"halo-record","version":"0.2.12","license":"Apache-2.0","_id":"halo-record@0.2.12","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"a49b59a8c4b10ed2e9d345e9643c3ee4566cd043","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.12.tgz","fileCount":30,"integrity":"sha512-qeq0SBRNX55+3gQVYb8JmfvlYkahfuxSjC2GjMZuQ0I95bfpF8vEDiSKLuyKsm8DcS+/WHL8gIptEBB6OFrVtQ==","signatures":[{"sig":"MEUCIAaxObGng7TkjLyZWMJyLRUp3aRkAckofFM8EoOf72m9AiEAt60zqp8OgqXl9GPQjSBGODdvqk6KHsiMvzuwFYv6Lec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85838},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9b77888a2b075aec6d688312d85d0e7b71f4071c","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.12_1784674776993_0.758103924393833","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"halo-record","version":"0.2.15","license":"Apache-2.0","_id":"halo-record@0.2.15","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"caf465137d5f657e5189a1d9454fbb50bb0cbe8f","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.15.tgz","fileCount":30,"integrity":"sha512-w7luS4xmnb84LAdm0PuK8JsnFjXvXqQn+W+mJurcUnkeORVEU83qE4hD9TCcMTxwNvC7KLFjwi8wOmF4NZ38yQ==","signatures":[{"sig":"MEQCIGeP7/DcxBChW3cC6rr+kRbOZNM/+QW9yblw6yJLzx43AiAXfrtb99XpChVDNW3i+ikrJv0oDf4B3CP8jkXo7+iOTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85838},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7cbf47497f61bf79c22206da528935e67285e85d","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.15_1784687031844_0.9308393436811009","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"halo-record","version":"0.2.18","license":"Apache-2.0","_id":"halo-record@0.2.18","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"4ac9ba130bdc0db23cdadb2ab688818dbaa79343","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.18.tgz","fileCount":30,"integrity":"sha512-lDnPRceZtdGGGhut8JKxQTcvfMDCNVEydAVueEGru4gOFvz9JXfclmj9sdECaDowx9AkSabIxmZyKen7x+4mSQ==","signatures":[{"sig":"MEQCIBfgZnkDRCIfEZFtO68O0PGGe5vTKHlpEVg+//1nQAcyAiBj9V6Ch2RlDINY54BHpw+LOVLyPYGtlqdxo3FSlmm8Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85838},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"eb872d184f67997f011d050ae6b61b83932a094a","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.18_1784699876807_0.03604118868974471","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"halo-record","version":"0.2.22","license":"Apache-2.0","_id":"halo-record@0.2.22","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"efabfe0f100f7ddba6805739731d0181552fb2cd","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.22.tgz","fileCount":30,"integrity":"sha512-SL0l7VzdLB4iXMMToDBUdIeWIr0QRMplVhYvdPsfN54EWzMO4NimLrk4xLuhkwZmFLP61pstZijG25KdHgK91Q==","signatures":[{"sig":"MEUCICWib+Iwz+/frluipJPQQdAOT04QvBaqWQkj1b9YD9yPAiEAuPbHq6S+YDpwWB0fggGBXGrMbUBwrP+Cihhlu8WCDCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93620},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ebd28e0bc148ddb4f17ec00147f32fb9b9b26de4","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.22_1784833495256_0.21629256776981687","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"halo-record","version":"0.2.25","license":"Apache-2.0","_id":"halo-record@0.2.25","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"6dd8b1c8847ea9deee2f09923e09e2230914ad92","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.25.tgz","fileCount":30,"integrity":"sha512-djlesjnhnj2YMufHzn553tnNiVn52FzS5T28HJsn6bzaMQClGVNWt/jN7B2D6KZ64CTxtOnbSTnmjNwToccy5w==","signatures":[{"sig":"MEUCIQCdQiabOGTm+alCBrqoV9yBjeyO4kpwMyB9hVHINzFtEwIgQXq5X2G6eYxiSyeEIvq5Ml1xU119PG1upy43FdzYN/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93620},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8b81bdd816da741a756dd75761f330862feb5fd2","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.25_1784849414168_0.4768261609207891","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"halo-record","version":"0.2.26","license":"Apache-2.0","_id":"halo-record@0.2.26","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"9fc1d3516cf954959f3a86ec84b8d644582a00b2","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.26.tgz","fileCount":32,"integrity":"sha512-arnfYsbIAbLC2mhOYC0sPx31kYtVmV4/ZqP9sCBiyK8vVDfzNj9w7iuC/mv+VmpsDSgjckm3ncB2s+uvrj46Bw==","signatures":[{"sig":"MEYCIQCdjeJAW+5M0rMoS5knQyHohIidX2Ufa1hwpoYtFmJe+QIhAM8RbiNM5Rkj5/IIPQDXbcH8CwqqxlnB+WVs5zDev68p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109939},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"038eac74f56827b04f293ced791d5ec5486323f1","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.26_1784851496633_0.7451056787089285","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"halo-record","version":"0.2.28","license":"Apache-2.0","_id":"halo-record@0.2.28","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"c4630008eb3dcb08452f7ef507f421acbfc859c6","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.28.tgz","fileCount":32,"integrity":"sha512-fplJJKMYMLwrUgzysrKziIC/qvGJ1j4mBSmUUn9Q0FIyFrG9VC+pjwq6gjld7yrhPptHO8OdQj0j/xLH/tCoiA==","signatures":[{"sig":"MEUCIQDPkhaWUGbGfMdAI+uZpu1xApBywTPPD0JZynhqEQlJXQIgf6qi7gIytrrhMprqg2aq/HwUMmrTsmysMnFRhFSr50k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111102},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9ab2186cc5cd7a96dec4b6170ab18557a0e19403","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.28_1785024689699_0.8193366683665622","host":"s3://npm-registry-packages-npm-production"}},"0.2.29":{"name":"halo-record","version":"0.2.29","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.29","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"866c8bda3da056c56f4ae950c55566c09e4f2f13","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.29.tgz","fileCount":32,"integrity":"sha512-caz7Y3bXPuX5hqoOM5U8wv8hZSAy62KdhBlpbV97m/XVGXUwDySbgJlFb0aXt68qtwwRDysFw9XjydvVo2OdlA==","signatures":[{"sig":"MEQCIBpCAww7ECuj1XfvRI4LTX6fN+uwo6kO1CLYII0pgPGOAiBocm+vIl4lgkOAfGXne+A/tV8Wg3f6kpbvgZnvEMN0KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112100},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1a4230d1583123b33c8e371c0a7651d621cca76d","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Tamper-evident, hash-chained Runtime Records for AI agents: the TypeScript recorder. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.29_1785386668968_0.47357817530393387","host":"s3://npm-registry-packages-npm-production"}},"0.2.30":{"name":"halo-record","version":"0.2.30","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.30","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"b4b5e80ddacab25e31c0725ef95ac817a8759523","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.30.tgz","fileCount":32,"integrity":"sha512-HHP0XSZioY/HrDGvCglcc9g4O32LZis8QQ/Gy7VDM14az5oLaWMQ1rP91dOrLe7rUr3AsPCRgi6C2VYU38DwQw==","signatures":[{"sig":"MEQCIH8bXr7wdje4r6GuxNkHuSkUGmoTDLmN2bhH+MijljgyAiAx+s5LJgaghJeCKhLUIOxVF7rBHB0fpRLtecrV83LdFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116688},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"dba4642a25a9534c6720dd3cf156725885f82a05","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident runtime evidence for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.30_1785696253574_0.443270555823742","host":"s3://npm-registry-packages-npm-production"}},"0.2.31":{"name":"halo-record","version":"0.2.31","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.31","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"51f80ada8f6f938b970c48265790975ceefd6865","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.31.tgz","fileCount":32,"integrity":"sha512-p6hug1GIsyhiGPWDBqtigQyMXM5+YRbvpmKZ99e5NxkPCg1BH5E8K2MGfDnxEsO0ce40zas83dYawQq8UqgEgQ==","signatures":[{"sig":"MEYCIQCrjUmDkkFDPGBN/he67oZMUGLCpSkKtmgaRtb35kdf4gIhAOnoQEKXWxRgKG8W5QYMqOsk5gylpixWZqXyUYU3xnpW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120072},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0c5a5dfea2efa0c31f9aa1835690e79be7b35fd2","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident runtime evidence for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.31_1786604118166_0.5517776151213365","host":"s3://npm-registry-packages-npm-production"}},"0.2.32":{"name":"halo-record","version":"0.2.32","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.32","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"d6bbfdfdcb4a8109bdb3be4c72af526e88ce06b8","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.32.tgz","fileCount":32,"integrity":"sha512-BUxakn6jIP29RJEI9MFHkEoEpryNuciC/j/RlUDjwI3z23LRSeqNIm1l3qqFAt1qSJRyZCmnchHC/5dJBVNOZA==","signatures":[{"sig":"MEUCIBiqYZiyq2XJXIpy1MoKAHWvZ5bW5yRpafGDbV/1TnaFAiEAu4ON7iysYH/i4Fn55ne3U7b0ugrAMzDNNmHzpwNoyns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121020},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"5cba69862a26194c0f69046d4cc6f71a88eb8696","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident runtime evidence for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.32_1787086272415_0.5115908772936089","host":"s3://npm-registry-packages-npm-production"}},"0.2.33":{"name":"halo-record","version":"0.2.33","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.33","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"4b71d067985c170c46a0ee3a72c5e0af9f80b09a","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.33.tgz","fileCount":32,"integrity":"sha512-+35CD6CBhYndvzEzfleWPgq1erPk9PbbBKuomsC1BKlctkjvXdZDhN0ftLqG0L8XY1T0bQ80VACxik2KNQaEVQ==","signatures":[{"sig":"MEUCIChZ1XVpghH0705n2l2uKyGgBBSopewf7X5UxQYeOh6HAiEAoHBD2z0RN5XXDeSXLc6nSwedqlyp7ZUd4iCn51mFiq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121020},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"57f1ac5aa9ef7929a9cef8c7f44dedb78329d2b4","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident runtime evidence for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.33_1787284532975_0.6123137353028816","host":"s3://npm-registry-packages-npm-production"}},"0.2.34":{"name":"halo-record","version":"0.2.34","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.34","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"9019a6a7214bfd6e89471886dd97993793f5792d","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.34.tgz","fileCount":32,"integrity":"sha512-q4tvkc5WU4tMRAEyPaIQCX+HxrXdnB7MOLKz/6dtblUQxInZqJpV35reAem6XEV7jSMyCsJWHcBGdEnsSwornQ==","signatures":[{"sig":"MEYCIQDM+Rc4J7SLFbU9FX6naxuPrFRR/f35vjXb2L6WMaguLwIhAMEnQN68A+8P00jYrldVSb2OwuTQlp9xhka7GoeWTNCQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"180f58f61a6c26cfe8884030e28b5715e223e959","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident runtime evidence for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.34_1787293109842_0.5524429790448608","host":"s3://npm-registry-packages-npm-production"}},"0.2.37":{"name":"halo-record","version":"0.2.37","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.37","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"7d7203db3d204a6f0deca4f1b08ca933b2502e20","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.37.tgz","fileCount":32,"integrity":"sha512-AHEoQVyMSANV9R6scZ2cJhShnNShsT0ZkFF6+aAV5SAS20pbv9OmwRVWJkNz+R/4yrTAv/RaK7Fh3Vsn72d6/w==","signatures":[{"sig":"MEUCIB/pvzIEwGPN5XhtV3vKrJYtKOHXb6OTUy/HzliB0f7DAiEA3tUEM/U7k2lvSz5VdqGn6pUcdjVRlCFntdAqJUYnmpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122849},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"e971b8ac6875f6f3b3ffd3217abba61fe0285943","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.37_1787506666760_0.878273697558613","host":"s3://npm-registry-packages-npm-production"}},"0.2.38":{"name":"halo-record","version":"0.2.38","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.38","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"52e824b49d34ca9a4e51e986ad79bb376a2abefc","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.38.tgz","fileCount":32,"integrity":"sha512-GNomOr5cXqIKQBdPULVsWDuect3+K9Fq0pEE0wrZ5gvDae8IH0enWW0oIibJQ2jyuxx1ToM6vNXhcLsHm1tnzQ==","signatures":[{"sig":"MEUCIQCG1yAoKvRyEmIDkDrurTX40alKNWTvMN5G5dN9cnOZZQIgMgJL0bFhKjUHW3ilaByV8zowsXLry7XZgYJOugI+dgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDARgWuCXQQSZuCqyxtifZrkW0woZInpAQ1OKLHkiuRAgIgOQMKmfdEg/KN6NiA2PdoU7/FgeIJMBunOqWL2FkoPmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122991},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"b3005d8782aa828f7089a8e21fb3bf5f71e736c5","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.38_1788203176247_0.3603488780581363","host":"s3://npm-registry-packages-npm-production"}},"0.2.39":{"name":"halo-record","version":"0.2.39","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.39","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"b77d9a1ffba4993ea258f1d7e6ca08ec3db62dac","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.39.tgz","fileCount":32,"integrity":"sha512-egyqFCJpeM+c/YeWBeXUat6vNOaO48kvUfgusKX8HSUc91qos0SWBxbeto7+LFahX3N/RrAVGMMlDnar9AAXLg==","signatures":[{"sig":"MEQCIHMhgq30hEWVgz8p7MIVtk8uJdxzTHdSW0k3NUU58729AiAN37HDaCBZdcBK668zLQwavbgINUUNYmHQ99yJPRSXBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCc/xuLKJH76s5t2QLRghip2BVqPsgQacxTk/I9A4T9lQIhAI+49w0nZYYPfCrFmQMD7Rrq17NRu2CEZBzXyICoGCuI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122991},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"6182e2ef0d84ad039436544459371c485ee7b2da","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.39_1788208754897_0.25377661790080674","host":"s3://npm-registry-packages-npm-production"}},"0.2.40":{"name":"halo-record","version":"0.2.40","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.40","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"cb5ea084dad7ebbbcd9471995d7cee9d1ad3e369","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.40.tgz","fileCount":32,"integrity":"sha512-bZFZRQHKBKUxcQulFB5S04hfMG6n/2nItC5DhxMcFR9Gg3MRJWdbHg69nz4mt6KkBqj2ETdIK3/vTCqV2L4hbQ==","signatures":[{"sig":"MEQCIE1W6/hwHuKVZl5XIYI3YBoQp4Qn8s8OAVgbRaEBkogcAiBzg6OA7tki7iTFNSdjEdzfwCYkorP+GwRfNX6JWPEwYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGA4RsBGwQUaiSSaKmMhYN2V0nLumb2vjhg9MuzTgJcqAiA88B9tbndpmta7icrEjwkmgTIHWnyvxvAoCRBplXuUrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125208},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"cc62b7920af1087fce5123ab851d3b68c0e6428e","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts test/redaction.test.ts","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.40_1788385846709_0.6242888353543792","host":"s3://npm-registry-packages-npm-production"}},"0.2.42":{"name":"halo-record","version":"0.2.42","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.42","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"b0ff546c7e1296f08a94392e5485ae66c14d3246","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.42.tgz","fileCount":32,"integrity":"sha512-8RP85BJhSQuCrrmTEzlgR9cUH/yN5ziLNx9zmnn5mStJjAZ9h0g13JoMunA+JysX9Ww7gBtEKLAUZFFkKJ/nKg==","signatures":[{"sig":"MEUCIQDXipaCkKG3vyZ891DByBmSKM9UbAt2aSKJ8T7EIeqxcQIgakZHqnu0Y3vjJSII+oa52mtuEof5eAe+DOY2Q0BCH+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIANMWwApknDVzkXEtzL0gS2tnm7OoVTTYH0RLyUGgkAcAiEAt0ZqUZ5GOUzB5VipIWL/yWfEp88TnNawNAHumP4538k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133441},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1a94d1b9b36f3c1b7ef4c3fd47de68ea8d32a65e","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/timestamp.test.ts test/concurrency.test.ts test/redaction.test.ts test/caveat.test.ts test/authority.test.ts","build":"tsc","prepare":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.42_1788389857928_0.3443532633201811","host":"s3://npm-registry-packages-npm-production"}},"0.2.43":{"name":"halo-record","version":"0.2.43","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.43","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"9c7cdc5283b091f2edb405199deb85cef397c29f","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.43.tgz","fileCount":32,"integrity":"sha512-3ZbvBoXzZlvPNb6DIOyi5xvptToYx/oT9OsHz9zd7d0oPJBm+56DuRSHTcgQNLvDo6STOsad9xvOL01+yg736Q==","signatures":[{"sig":"MEYCIQD8cvxTog0w40IHVseI7SrQIJE6T4GxLGBCftOyM356lgIhAPaw+m/lnNLEC+cv4wY18SG3iGUos/5rh7RCGIcnUbwl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDqXVrq8xJhhq0oL8wFwsOdDEg9HDTGs3BFXZdoQeYo7gIhAO6dLzFREhPytDYnpLFBqSDRQrqea7+a0KfObja8d1P0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0ea6fad648af542c37727dd71f3536d68a07c95e","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/modelcall.test.ts test/timestamp.test.ts test/concurrency.test.ts test/redaction.test.ts test/caveat.test.ts test/authority.test.ts","build":"tsc","prepare":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.43_1789026521456_0.12923704041469497","host":"s3://npm-registry-packages-npm-production"}},"0.2.44":{"name":"halo-record","version":"0.2.44","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"author":{"name":"Brian Kuan"},"license":"Apache-2.0","_id":"halo-record@0.2.44","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"homepage":"https://github.com/bkuan001/halo-record-ts#readme","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"ac6fc0ce71c7e76ec2d991d8ab77e845bacf9fa3","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.44.tgz","fileCount":32,"integrity":"sha512-Af/OwCcUB3bc0d396Ls5XRsXkYZKSe6eQjwTzYLmqUTkqWYXiKso++G2evvrdUHBOy+wRnfYChlHFduLpmAqjg==","signatures":[{"sig":"MEUCIQDkcR/kzE8eXo1thGMdQvuXdDXPEuoyvUP2JCSu/oB3cAIgFr7tLQe3aLWMDmHeiL7vCjIENIkB2jg79cJdTfWRJCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFxX2yixabadEViFuKmR1NaIqQP3D37shg7t52A4AX0XAiA1A3LVvwG/KzRIwYZKTDc7xwxV4tUfatHF6seWgDBweQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147384},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"05abdab99ba7dd5e398f25cd05089c26dbff9908","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/modelcall.test.ts test/timestamp.test.ts test/concurrency.test.ts test/redaction.test.ts test/caveat.test.ts test/authority.test.ts","build":"tsc","prepare":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"tmp":"tmp/halo-record_0.2.44_1789358298207_0.06525398453933118","host":"s3://npm-registry-packages-npm-production"}},"0.2.45":{"_id":"halo-record@0.2.45","bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"dist":{"shasum":"e374dfb19e8b2500b4a2a0dd050e6b517f651106","tarball":"https://registry.npmjs.org/halo-record/-/halo-record-0.2.45.tgz","fileCount":32,"integrity":"sha512-6S/y3xXb7NjdvMGgyj0oB5+l1fsZJvsJiOqZICHBGw+3EyLqDmvmTlVBI6kaHF0V+na9d02e652/7nqaeYVtPQ==","signatures":[{"sig":"MEQCIAV3a86NWkHpkJ1628p/fIhK2wamBVMeiWe3fJSRM8UBAiA2lPyILf/bEH+jR2uu12GABZQlUSPnkfnTzE/3YaEvaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID/mZLlPC3UHX6oZDfqRI3FZU1ikSEuXxQ4fudgR+6ekAiAavpQBsfAdgIARsLuW9vIXkBrv044P7tdsmNT0WTsiXw=="}],"unpackedSize":153964},"main":"./dist/index.js","name":"halo-record","type":"module","types":"./dist/index.d.ts","author":{"name":"Brian Kuan"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"12aae5d7770f9b77e8119974af6a9245f2c1dce3","license":"Apache-2.0","scripts":{"test":"node --test test/core.test.ts test/integrations.test.ts test/modelcall.test.ts test/timestamp.test.ts test/concurrency.test.ts test/redaction.test.ts test/caveat.test.ts test/authority.test.ts","build":"tsc","prepare":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm test && npm run build"},"version":"0.2.45","_npmUser":{"name":"bkuan001","email":"bkuan001@gmail.com"},"homepage":"https://github.com/bkuan001/halo-record-ts#readme","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","directories":{},"maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/halo-record_0.2.45_1789361087983_0.40525777071072566"}}},"time":{"created":"2026-06-12T22:46:19.409Z","modified":"2026-09-14T04:44:48.185Z","0.1.0":"2026-06-12T22:46:19.606Z","0.1.1":"2026-06-12T23:12:45.291Z","0.1.2":"2026-06-22T23:31:39.008Z","0.2.0":"2026-06-26T21:40:18.617Z","0.2.2":"2026-07-06T21:24:26.142Z","0.2.4":"2026-07-09T02:02:27.279Z","0.2.5":"2026-07-10T22:41:38.068Z","0.2.6":"2026-07-13T19:38:51.067Z","0.2.7":"2026-07-13T22:23:13.629Z","0.2.8":"2026-07-15T05:49:47.896Z","0.2.9":"2026-07-21T21:15:23.563Z","0.2.12":"2026-07-21T22:59:37.197Z","0.2.15":"2026-07-22T02:23:52.008Z","0.2.18":"2026-07-22T05:57:56.941Z","0.2.22":"2026-07-23T19:04:55.386Z","0.2.25":"2026-07-23T23:30:14.308Z","0.2.26":"2026-07-24T00:04:56.772Z","0.2.28":"2026-07-26T00:11:29.865Z","0.2.29":"2026-07-30T04:44:29.113Z","0.2.30":"2026-08-02T18:44:13.711Z","0.2.31":"2026-08-13T06:55:18.349Z","0.2.32":"2026-08-18T20:51:12.568Z","0.2.33":"2026-08-21T03:55:33.131Z","0.2.34":"2026-08-21T06:18:30.009Z","0.2.37":"2026-08-23T17:37:46.935Z","0.2.38":"2026-08-31T19:06:16.368Z","0.2.39":"2026-08-31T20:39:15.004Z","0.2.40":"2026-09-02T21:50:46.795Z","0.2.42":"2026-09-02T22:57:38.026Z","0.2.43":"2026-09-10T07:48:41.558Z","0.2.44":"2026-09-14T03:58:18.298Z","0.2.45":"2026-09-14T04:44:48.052Z"},"bugs":{"url":"https://github.com/bkuan001/halo-record-ts/issues"},"author":{"name":"Brian Kuan"},"license":"Apache-2.0","homepage":"https://github.com/bkuan001/halo-record-ts#readme","keywords":["ai","agents","audit","tamper-evident","attestation","compliance","hash-chain","runtime-records"],"repository":{"url":"git+https://github.com/bkuan001/halo-record-ts.git","type":"git"},"description":"Open, tamper-evident audit trails for AI agents — hash-chained Runtime Records, dependency-free, verifiable by anyone. Chain-format compatible with the Python halo-record package.","maintainers":[{"name":"bkuan001","email":"bkuan001@gmail.com"}],"readme":"# halo-record (TypeScript)\n\nTamper-evident audit trails for AI agents — the TypeScript recorder.\n\n**Chain-format compatible with the Python `halo-record` package.** Records written here verify with either verifier, anchor via the same witness protocol, and render in the same Runtime Report. Canonicalization (RFC 8785 subset), hashing, redaction patterns, provenance tagging, and the witness wire protocol are ports of the Python implementation; cross-language interop is the package's defining test.\n\n**Featured in [Help Net Security](https://www.helpnetsecurity.com/2026/08/31/halo-record-open-source-ai-agent-audit-trail/)** (August 2026).\n\nZero runtime dependencies (Node ≥ 20, `node:crypto` / `node:fs`).\n\n> **Using halo-record, or thinking about it?** Tell me who you are and what for → [Who's using halo-record?](https://github.com/bkuan001/halo-record/discussions/7)\n\n## Why you can trust this code\n\nYou are being asked to put a recorder inside your agent. You should not take that on faith:\n\n- **Zero runtime dependencies.** `npm install halo-record` installs exactly one package; framework adapters use structural typing and never import the frameworks.\n- **Three opt-in network calls, and only these:** the witness anchor (sends only `{subject, count, head, chain_root}`), the witness checkpoint fetch (sends the subject id being checked), and the RFC 3161 timestamp (sends only a checkpoint's state hash to a Timestamp Authority). All are off unless you call them; record contents never leave your infrastructure.\n- **Full payloads never enter a record.** Arguments are hashed and stored only as a short redacted summary — the complete raw value is never written, though a summary can carry fragments of it. Redaction is best-effort: treat it as defense-in-depth, not a guarantee.\n- **Small enough to audit.** ~1,800 lines of TypeScript (code lines, not counting blanks and comments). Read all of it in an afternoon.\n- **Apache-2.0.**\n- **Limits are documented, not implied.** What the chain does and does not prove — completeness, identity, capture boundary — is in the Python repo's [LIMITS.md](https://github.com/bkuan001/halo-record/blob/main/LIMITS.md); every limit there applies to this package too.\n\n## Install\n\n```\nnpm install halo-record\n```\n\nThe package is ESM (`\"type\": \"module\"`). Node >= 20. On Node >= 22.12, `require(\"halo-record\")` also works from CommonJS projects (stable `require(esm)`); on Node 20.x, use `import` from an ESM project or an `.mjs` file — `require()` will not load it there. If you typecheck with TypeScript 7, add `\"types\": [\"node\"]` to your `tsconfig.json` (the package uses Node builtins like `Buffer`).\n\n## Use\n\n```ts\nimport { Recorder } from \"halo-record\";\n\nconst recorder = new Recorder(\"acme.jsonl\");\n\nrecorder.record(\"tool_call\", \"privacy\", {\n  tool: \"email.send\",\n  toolInput: { to: \"alice@acme.com\" },          // hashed + redacted summary; raw args never stored\n  subject: \"acme\",                               // per-customer chain isolation\n  source: \"recorder\",                            // provenance: captured vs ingested\n  outcome: { status: \"ok\", summary: \"sent\" },    // redacted + scanned, same as input\n});\n```\n\nTo answer \"under what rules did this run happen?\", attach an authority snapshot — hashes and refs, not raw prompts or policy text (known secret formats are masked at seal time; free-form text is not detected — see the Python repo's LIMITS §6). Consecutive records with the same `snapshot_id` and unchanged content are compacted; a reused id over changed content is stored in full, with a notice. Hash-only capture (`summaries: false`) drops summaries and finding excerpts:\n\n```ts\nimport { build, Recorder } from \"halo-record\";\n\nconst rec = new Recorder(\"acme.jsonl\");\nrec.append(build(\"tool_call\", \"security\", {\n  tool: \"crm.lookup\",\n  toolInput: { account: \"acct-9\" },\n  source: \"recorder\",                    // provenance tag; rec.record(...) sets this for you\n  authority: { snapshot_id: \"auth_1\", rules_hash: \"sha256:...\" },\n  summaries: false,                       // hash-only: no summaries, no excerpts\n}));\n```\n\nOne chain, one writer at a time: `Recorder` serializes appends within a process (fully synchronous) and across processes via a sidecar lock directory (`<chain>.lock.d`), held over the read-head-then-append sequence — so hook-style capture spawning one process per tool call cannot fork the chain. The Python package uses a different lock mechanism (`flock` on a `.lock` sidecar); the two do not interoperate, so writers in both languages sharing one chain should write per-process chains instead. [LIMITS.md section 9](https://github.com/bkuan001/halo-record/blob/main/LIMITS.md#9-single-writer-chains) covers the full boundary.\n\nIf a guardrail or policy layer checked the action, its verdict can ride on the record — an optional block recording what the gate decided, sealed into the hash chain like every other field:\n\n```ts\nrecorder.record(\"tool_call\", \"security\", {\n  tool: \"payments.refund\",\n  verification: {\n    status: \"allowed\", verifier: \"gate/1.2\",\n    policy_ref: \"sha256:1f3a...\", checked_at: \"2026-08-01T12:00:00Z\",\n  },\n});\n```\n\nwhich seals into the record as:\n\n```json\n\"verification\": {\"status\": \"allowed\", \"verifier\": \"gate/1.2\", \"policy_ref\": \"sha256:1f3a...\", \"checked_at\": \"2026-08-01T12:00:00Z\"}\n```\n\n`status` is required within the block; `verifier`, `policy_ref`, and `checked_at` are optional. What each status means:\n\n| Status | What the gate reports | Did the action execute? |\n|---|---|---|\n| `allowed` | it permitted the action | yes — the action proceeded |\n| `blocked` | it denied the action | determined by the integration, not by this field — a record may still carry an outcome, and a block does not by itself prove non-execution |\n| `modified` | it altered the action before execution — `action.input` describes the action **as executed**, post-modification | yes, in the altered form |\n| `unverified` | it ran (or was consulted) but made no determination — distinct from an absent block, which means no verification claim was made at all | yes — the action proceeded without a verdict |\n\nThe block is supplied by the operator's integration code and records what it reports the gate said — the same trust posture as `principal` (see [LIMITS](https://github.com/bkuan001/halo-record/blob/main/LIMITS.md#11-verification-status-is-the-gates-report-not-halos-finding)). Sealing proves the status was not edited after the fact; it does not prove the check occurred, that the verdict was correct, or that a blocked action did not execute. This is not independent verification.\n\nFor `policy_ref` to be usable as evidence, use a content hash of the ruleset and retain the ruleset artifact — an unresolvable label makes the field decorative.\n\nVerify a chain (yours or one you received):\n\n```ts\nimport { verifyLog, readLog, verifyCompleteness } from \"halo-record\";\nimport { fetchCheckpoints } from \"halo-record\";\n\nconst integrity = verifyLog(\"acme.jsonl\");   // nothing edited (empty:true = nothing to attest, not a pass)\nconst cps = await fetchCheckpoints(\"https://witness.example\", \"acme\");\nconst completeness = verifyCompleteness(readLog(\"acme.jsonl\"), cps); // nothing omitted\n```\n\nAnchor to a witness (an opt-in network call; only `{subject, count, head, chain_root}` is sent, and record contents never leave your infrastructure):\n\n```ts\nimport { anchorRemote, readLog } from \"halo-record\";\nawait anchorRemote(\"https://witness.example\", VENDOR_KEY, readLog(\"acme.jsonl\"));\n```\n\nAdd an external RFC 3161 timestamp to a checkpoint — a Timestamp Authority the operator does not control signs the checkpoint's state hash, proving the chain reached that state no later than the attested time. Only the state hash is sent; the token stores base64 so a reviewer can verify it in full, independently, with `openssl` — this library does a light imprint/time check, not the TSA signature:\n\n```ts\nimport { checkpoint, attachTimestamp, readLog } from \"halo-record\";\n\n// Default TSA is the free freetsa.org — fine for evaluation. For production\n// attestations point at a commercial TSA you trust (DigiCert / Sectigo / your own):\nconst cp = await attachTimestamp(checkpoint(readLog(\"acme.jsonl\")), \"https://your-tsa.example/tsr\");\n// cp.tsa.token_b64 → the verifiable RFC 3161 token; time is re-derived from it on read\n```\n\n**Verifying the token independently** (what you hand a security reviewer — they need nothing from this library):\n\n```sh\n# 1. decode the stored token to a standard .tsr file\nnode -e 'const cp=require(\"./cp.json\");process.stdout.write(Buffer.from(cp.tsa.token_b64,\"base64\"))' > token.tsr\n\n# 2. get the CA for the TSA that signed it (for the default freetsa.org):\ncurl -s -o tsa-ca.pem https://freetsa.org/files/cacert.pem\n\n# 3. verify the token binds cp.tsa.digest at the attested time\nopenssl ts -verify -digest <cp.tsa.digest> -in token.tsr -CAfile tsa-ca.pem\n# → \"Verification: OK\"\n```\n\nThe CA in step 2 is specific to the TSA in `cp.tsa.url`; a commercial TSA publishes its own. `certReq` is set, so the token embeds the signing cert — no separate `-untrusted` file is needed.\n\nRecord a model call (the buyer's first question: \"which model saw my data?\"):\n\n```ts\nimport { recordModelCall } from \"halo-record\";\n\nrecordModelCall(recorder, {\n  provider: \"anthropic\", model: \"claude-sonnet-4-6\",\n  zdr: true, purpose: \"draft support reply\",\n  subject: \"acme\",\n});   // tool=model.generate, scope=model:anthropic; provider and retention terms, disclosed per call\n```\n\n## Framework adapters\n\nAll boundary-captured, all dependency-free (structural typing; the framework\npackages are never imported):\n\n```ts\nimport { createLangChainHandler } from \"halo-record\";   // LangChain.js / LangGraph.js callbacks\nimport { instrumentMcpClient, wrapMcpToolHandler } from \"halo-record\"; // MCP TS SDK, client or server side\nimport { createAgentsHooks } from \"halo-record\";        // OpenAI Agents SDK (JS) run hooks\nimport { wrapVercelTools, createStepRecorder } from \"halo-record\";    // Vercel AI SDK tools / onStepFinish\nimport { createClaudeAgentHook } from \"halo-record\";    // Claude Agent SDK PostToolUse hook\n```\n\nEvery adapter funnels through the same core (`recordToolCall`), so\nclassification, scope, redaction, and provenance behave identically across\necosystems, and identically to the Python adapters. Framework hook shapes are\nstructural; if a framework changes its callback signature, the adapter is a\nsmall shim to update, not a rewrite.\n\n## Personal data in the chain\n\nThe chain is append-only: anything sealed into a record stays there, because\nremoving it would break verification for everything after it. Tool arguments are\nstored as a hash plus a redacted summary, never raw — but *redacted* is not\n*removed*: a name or postal address has no reliable pattern, so neither is detected\nnor masked. `subject` is also not the only field carrying text you supply —\n`principal`, `approver`, `sessionId`, `agent`, `authority`, `data` and the summaries\nall do. The `authority` block in particular is stored exactly as supplied and is\nexempt from the redaction pass — its hashes-and-refs convention (no raw prompts,\npolicy text, or secrets) is a producer discipline no code path checks.\n\nThe pattern that works: put a stable pseudonymous id in the chain and keep the\nmapping to any individual in a system you can delete from, so an erasure request is\nsatisfied by deleting the mapping. Keep `subject` pointing at the tenant\norganization, not a person. No setting enforces this — it is a discipline in how you\ncall the recorder, and the same discipline as the Python package.\n\nFull field list, the reason the stored input fingerprint can confirm a guessable\nvalue even after the mapping is gone, and the questions a reviewer should ask:\nLIMITS.md section 13 in the\n[halo-record](https://github.com/bkuan001/halo-record) repo.\n\n## Test\n\n```\nnpm test            # full suite: unit, integration, timestamp, cross-language\nnpx tsc --noEmit    # typecheck (TS >= 5.8)\n```\n\nCross-language checks (require the Python package):\n- a TS-written chain passes `python -m halo_record.cli verify`\n- a Python-written chain passes `verifyLog` here, including completeness against a Python witness log\n- `canon()` output is byte-identical across both implementations\n\n## Render the Runtime Report\n\nThe chain you write here renders with the Python CLI, same format by design (the report renderer ships in the Python package - this package has no CLI of its own):\n\n```\npip install halo-record\nhalo report acme.jsonl -o acme.html\n```\n\nYou end up looking at your agent's Runtime Report in a browser: every action, its provenance, the chain verdict, and (if anchored) the completeness verdict. Reference implementation and recorder internals: [halo-record (Python)](https://github.com/bkuan001/halo-record).\n\n## Community Examples\n\n[trail-halo-poc](https://github.com/AmeyParle/trail-halo-poc) — community proof of concept binding a Halo record's principal authority to TRAIL credentials: a reciprocal org–agent binding and org-signed scope grants recorded into a Halo chain, with an adversarial verification suite (built against the Python package; the chain format is language-independent).\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}