{"_id":"@atgs/tapeworm","_rev":"15-2744bb21a5cb5178fe5d57a4f42680a9","name":"@atgs/tapeworm","dist-tags":{"canary":"0.1.8-canary.5.d0bf7ab","latest":"0.1.12"},"versions":{"0.0.1":{"name":"@atgs/tapeworm","version":"0.0.1","_id":"@atgs/tapeworm@0.0.1","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"a724ecf08d97767acb2554504ae76b279eab08fa","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.0.1.tgz","fileCount":4,"integrity":"sha512-EubNEsotBSWYaOH7miacgTuwIZJkXvIZmq4O9KtdE/pn6+lhXpJHFZumsvx+7z+GTJBUrrZQIRMEey38b93dQQ==","signatures":[{"sig":"MEQCICHYGWhx/c57UQDirRY604pvVZE15EEUStrAoG5zMrnFAiBX9NzTP8rx3gM9Bns/n11Jh5QKn9trxA8lrQ3Z0QVr4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28264},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","gitHead":"040987582c41121436280d9284b472f5641fb214","scripts":{"test":"jest","build":"vite build"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.0.1_1765778546320_0.49317507172038","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@atgs/tapeworm","version":"0.0.2","_id":"@atgs/tapeworm@0.0.2","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"d06e4950447d73f1366f536a0eff77d3e2346c56","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.0.2.tgz","fileCount":12,"integrity":"sha512-srXERZkl1aLDlv6Sl83jz2CGDFsGYzVmy2DoxcQGIY0pyEk2u26OmXZU6HN1+M3p26chl+engiEIjExMLqd3yQ==","signatures":[{"sig":"MEUCICbUKZeZ9/4iaWelN+QJa2kX64hkpiBaA7JxSzWwldWrAiEAzNERl45cA9ZGnmfAnKQ19o1bk0gu5iTkxaS0KaUR7IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38546},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","gitHead":"9f71447546d31a13fcdefb6c75c4e5e3d06cd90e","scripts":{"test":"jest","build":"vite build && npm run build:types","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.0.2_1765779374317_0.3729964313948775","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atgs/tapeworm","version":"0.1.1","_id":"@atgs/tapeworm@0.1.1","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"34a3e3d5dcee57e75b898077f57c916a8cb3841d","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.1.tgz","fileCount":14,"integrity":"sha512-OGhzzGHNZDQ51JrYxvHwmvsTygkv2ma5in/Npsl6a9RkrgycPUxPUpt6gZE+8ycdrfiNgRPUa177cWSzOCrOog==","signatures":[{"sig":"MEUCIF4o+pLxqU9hl6Teb5MqGkNA78LIUlSoyM+ft4Du424NAiEA5nk6yH83EIyE9AR2tfO7pTZCQmD/VHCnnwb3JlOzVBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71121},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","gitHead":"7477710feeea201a5dfb57a60b876c6b469654ae","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](./tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.1_1766353396483_0.20333267037416913","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atgs/tapeworm","version":"0.1.2","_id":"@atgs/tapeworm@0.1.2","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"47388ad7edca972c2589a1b2dffdf9c262e87946","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.2.tgz","fileCount":14,"integrity":"sha512-G5Dnhn4QpErn6wZIX0bvPO1BeuGjqoNDBwYIydzWCrtLLk9xyoCkXyxpcmLxXR0cM1Vv2eUa8kVQWLbooN0MXA==","signatures":[{"sig":"MEYCIQDtkA8rt/PvcJwAl792ONDAJLdurRBbTZ/DYohw6qMlfQIhANYp3BlQMcLqpr/jgk6X9MehIy05hViRLF37LsqihoBO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71220},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"7477710feeea201a5dfb57a60b876c6b469654ae","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](./tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.2_1766356623695_0.06270167221640177","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atgs/tapeworm","version":"0.1.3","_id":"@atgs/tapeworm@0.1.3","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"2078575094e5253a4a213179b4b837df35531c57","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.3.tgz","fileCount":14,"integrity":"sha512-FUoCCQectF4q8DD6bvD8O++rIJlMUheLHFxVLexD4RCluMSpZy3w13U/giUp/OBnwTOjN9vTPlISC5XVZ1XMwQ==","signatures":[{"sig":"MEUCIQD4k9ZnjcbKmt1jQve/6sQIHo5xXWWgw1VxgoLS+IgpTQIgPkdV+CbBqBOWGdeuBKhU6Y2t8XMtUr7HDCCZFwGiM/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71276},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"05417815eb8ba08aa1f2d3666357ca32069899c0","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.3_1766358372578_0.5251441760043143","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atgs/tapeworm","version":"0.1.4","_id":"@atgs/tapeworm@0.1.4","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"d742313fb12f88b68624f6b9c843c56abc50ca07","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.4.tgz","fileCount":15,"integrity":"sha512-NVoV6pbIE03M/YX5TrSOSISg04tZDkGi3ufQPPZ7aRXAmLX8ZtRfODXFHp4ueP+7/O/PhaI1jrf1+HVKN0RdBw==","signatures":[{"sig":"MEUCIGSosLPvpDY4mX45xsxIgEpe7zi68ZtCsPHUFwZZLvsPAiEAs5oTsGP2/NgvNn4A4Byh8CUk2CRec/fcl2Ofj/3iA9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74029},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"3ba66b6e675b21676b52b5785f814c6f5fb9e9f9","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.4_1766375064831_0.11380116335231438","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atgs/tapeworm","version":"0.1.5","_id":"@atgs/tapeworm@0.1.5","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"45d29ce9c7a060cd41b19132a04f68db0faa89e6","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.5.tgz","fileCount":15,"integrity":"sha512-3fnD4llD4Dd20YgFE87wmwoBd/c/YiSIZra++f1JxQs5dJpj891FuCFSiR+vN0VEUOtbYmUFmbJOsl7dVQm9Eg==","signatures":[{"sig":"MEYCIQCBWSLTpgI02GqCUFXUxlQFF85ZXVQS1a6BnRR2q/y8RAIhAK8sLBDaKnkN+gxSKv2+TUvJ1YwqiLE0EBFcE7SU9+PC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77263},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"3ba66b6e675b21676b52b5785f814c6f5fb9e9f9","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.5_1766375631909_0.6493029077859551","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atgs/tapeworm","version":"0.1.6","_id":"@atgs/tapeworm@0.1.6","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"4ca76903ecfa02416b8232479e8b9efb111e09fd","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.6.tgz","fileCount":15,"integrity":"sha512-WhPhr9vBtrfWt1Huo9CjGz1x17RKILKY7/eCDDqOBcveQ75nvwv+upWOda35IsHNRbt6DucCur5M6E7H21MqIA==","signatures":[{"sig":"MEUCIQDdUEiOK7/7gqTW1QX46Y43HCFPCl9R+dYmawOddeGvLwIgaPlKyWt4Ge5JDByT+o4mAEbrJZsTITQNfMhZ1vVwi+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77284},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"3ba66b6e675b21676b52b5785f814c6f5fb9e9f9","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.6_1766376884909_0.18912116511699595","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@atgs/tapeworm","version":"0.1.7","_id":"@atgs/tapeworm@0.1.7","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"ddc487bc9cd8f453ad48f6e6b64843eb1c849e2d","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.7.tgz","fileCount":15,"integrity":"sha512-J9pNoHoxy8DvrgoYTBM/0uQUH1MHKbPfRoTwfAChf9OuSAGTMqtrNrVNl2a5ZWio+GwpHupNZYurfWtfQNsicw==","signatures":[{"sig":"MEUCIQCZgjr08x4JdHgnw/ZlCIYW+NYwE2R5EV+6aIAXfdXuxQIgb+OiWX22TunMrVdM33vE+N0jxHULZIcHbwhz5i01doU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77616},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"1f7f53747db4b68664d0b5859fac4880b72b665e","scripts":{"test":"jest","build":"npm run format && npm run test && vite build && npm run build:types","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.7_1766389876430_0.5736228298555197","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@atgs/tapeworm","version":"0.1.8","_id":"@atgs/tapeworm@0.1.8","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"604ca9b81b271f20011bcf32a9ae5157feb930c4","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.8.tgz","fileCount":67,"integrity":"sha512-8PxM6UkGj/Hn1fRgKUh5tynIKw9d0qZTgpcNTQS+aj55CuMnZMGfJMs8pJt/50UdsjXHSwWxtQW6ZuNV9AfY5g==","signatures":[{"sig":"MEUCIQC+7AlPV2hqmiNsnTKEosUPVbfBcC5vuD7Duvqj8jkylAIgDkxNF8LD9kou1+A+y/eCwabXXJZtjlUcdnFdWyKIAJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870202},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"611acc13a038a1803744cfe75958c5292c7c34fa","scripts":{"docs":"typedoc --options typedoc.json","test":"jest","build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typedoc":"^0.28.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","typedoc-plugin-rename-defaults":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.8_1766455759328_0.38220910202208636","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@atgs/tapeworm","version":"0.1.9","_id":"@atgs/tapeworm@0.1.9","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"5b863dafd6ccdebea27cf32cc8ac761416542bb5","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.9.tgz","fileCount":15,"integrity":"sha512-cieiNgdOymnrDuzzzFmRDG63/aDirRH5i5PNCRZOADU9SKB1zI7Bi7zWPTJbw30GLB12uNiTIu3JSN+VZR2ZIQ==","signatures":[{"sig":"MEYCIQCBBEKSA13LjuwU17hiAx3Wysth5irPFqXUy6EG3B9/hwIhAP9xY2Nj/AGYVFx2up6sREPGtmL2n2AVkg4rZCVCidXE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84305},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"611acc13a038a1803744cfe75958c5292c7c34fa","scripts":{"docs":"typedoc --options typedoc.json","test":"jest","build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typedoc":"^0.28.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","typedoc-plugin-rename-defaults":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.9_1766456019560_0.43149625075066567","host":"s3://npm-registry-packages-npm-production"}},"0.1.8-canary.5.d0bf7ab":{"name":"@atgs/tapeworm","version":"0.1.8-canary.5.d0bf7ab","_id":"@atgs/tapeworm@0.1.8-canary.5.d0bf7ab","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"b09f4b5d5a28134e17ad095e740324a0a75e8c0b","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.8-canary.5.d0bf7ab.tgz","fileCount":15,"integrity":"sha512-Ft9O74y9bJ4qsVsQ5Vm4NVooGpYXO5f6pntTw1aGmjAmzi4pNeIo5Ib2Q/Esfj/5+rot2v93uQV/XnT0zpy/8A==","signatures":[{"sig":"MEUCICBf1wnNZM7QXLbL8oh3cHTXCtgaj6cigRQJeDVAlD96AiEAlOGVeAUwkE5cusogZgGs9bsTsjbMx/k1xfjZ2UYZJwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84322},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"611acc13a038a1803744cfe75958c5292c7c34fa","scripts":{"docs":"typedoc --options typedoc.json","test":"jest","build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typedoc":"^0.28.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","typedoc-plugin-rename-defaults":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.8-canary.5.d0bf7ab_1767075066804_0.6016725961912242","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@atgs/tapeworm","version":"0.1.10","_id":"@atgs/tapeworm@0.1.10","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"af79ea10464018e998f0ebc451f1d6568050372c","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.10.tgz","fileCount":67,"integrity":"sha512-n4g7cfcp6EPHBJGlMx2GqU9vLOUdFqs9xGEUCNl/qRRjwbqVbTn79QTimwUQXfHKovA7ofDIonueEQk6Kz36ng==","signatures":[{"sig":"MEUCIQDTJa2THSLU8nbgtyQCV21giTKg8b2lm32TSOx06ClnfgIgA+/fcposR+pnuhQaPYw2CBsvw6Pzmto2Lv5+xD3ezQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870203},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"611acc13a038a1803744cfe75958c5292c7c34fa","scripts":{"docs":"typedoc --options typedoc.json","test":"jest","build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typedoc":"^0.28.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","typedoc-plugin-rename-defaults":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.10_1767304864682_0.36137064892823356","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@atgs/tapeworm","version":"0.1.11","_id":"@atgs/tapeworm@0.1.11","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"dist":{"shasum":"521541eca3e1ff772fa3cc5e11a918698b62b332","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.11.tgz","fileCount":15,"integrity":"sha512-TjmxrfMygGYWo+7JDq9fp2Hc7/EYi/veNEh8e1mAI9SGtRwdejZvOCcRdiSlxxlHZ6pxuFvlIYKbdWRlTcTdGA==","signatures":[{"sig":"MEYCIQCQgT+cmnzL4IGPGUrQ61aE7ZhriIF6RqXz7gsKF1ijegIhALpaVjCd4aiKls1uSbpiuaMNtDAIV1FKfIeR/h6ORDaH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84306},"main":"dist/tapeworm.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js"},"gitHead":"611acc13a038a1803744cfe75958c5292c7c34fa","scripts":{"docs":"typedoc --options typedoc.json","test":"jest","build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\"","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"_npmVersion":"10.9.2","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","directories":{},"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^7.2.7","ts-node":"^10.9.2","typedoc":"^0.28.15","prettier":"^3.7.4","typescript":"^5.9.3","@types/jest":"^30.0.0","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","typedoc-plugin-rename-defaults":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tapeworm_0.1.11_1767304962474_0.9107441910490721","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@atgs/tapeworm","version":"0.1.12","type":"module","main":"dist/tapeworm.cjs.js","module":"dist/tapeworm.es.js","browser":"dist/tapeworm.umd.js","exports":{"import":"./dist/tapeworm.es.js","require":"./dist/tapeworm.cjs.js","types":"./dist/index.d.ts"},"types":"dist/index.d.ts","scripts":{"build":"npm run format && npm run test && vite build && npm run build:types && npm run docs","docs":"typedoc --options typedoc.json","build:types":"tsc -p tsconfig.types.json","test":"jest","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,css,md}\""},"devDependencies":{"@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","@types/jest":"^30.0.0","jest":"^30.2.0","prettier":"^3.7.4","ts-node":"^10.9.2","typedoc":"^0.28.15","typedoc-plugin-rename-defaults":"^0.7.3","typescript":"^5.9.3","vite":"^7.2.7"},"_id":"@atgs/tapeworm@0.1.12","gitHead":"e8ebc9d2ec463ae04225d9a4c8eb5e0664f58262","description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-OKeFWkPlepk4w8ndIijGApEQ3yXhY4cIFYvaREMdcIp6cT6715+qjqWTVBszIKUP5ryD442GHUNrLoBjPgvSSQ==","shasum":"fe860a232ae39de96962cb29d90ac6ce44df7da3","tarball":"https://registry.npmjs.org/@atgs/tapeworm/-/tapeworm-0.1.12.tgz","fileCount":15,"unpackedSize":84241,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICFuDCime/uFgFrmpqqi9/sGBoO7W4R/VV05yqI4ZEdSAiEAm+rNFYGeOEc8HRO4bCGf6V/W9CRBPHdXIlVzQXJ0umY="}]},"_npmUser":{"name":"atgs","email":"andyguy227@gmail.com"},"directories":{},"maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tapeworm_0.1.12_1767308075232_0.03823737640234648"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-15T06:02:26.238Z","modified":"2026-01-01T22:54:35.570Z","0.0.1":"2025-12-15T06:02:26.521Z","0.0.2":"2025-12-15T06:16:14.462Z","0.1.1":"2025-12-21T21:43:16.621Z","0.1.2":"2025-12-21T22:37:03.864Z","0.1.3":"2025-12-21T23:06:12.733Z","0.1.4":"2025-12-22T03:44:24.971Z","0.1.5":"2025-12-22T03:53:52.053Z","0.1.6":"2025-12-22T04:14:45.058Z","0.1.7":"2025-12-22T07:51:16.573Z","0.1.8":"2025-12-23T02:09:19.465Z","0.1.9":"2025-12-23T02:13:39.711Z","0.1.8-canary.5.d0bf7ab":"2025-12-30T06:11:06.941Z","0.1.10":"2026-01-01T22:01:04.836Z","0.1.11":"2026-01-01T22:02:42.619Z","0.1.12":"2026-01-01T22:54:35.392Z"},"description":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)","maintainers":[{"name":"atgs","email":"andyguy227@gmail.com"}],"readme":"![Tapeworm Logo](https://raw.githubusercontent.com/andygrace227/tapeworm/main/tapeworm.svg)\n\n# Tapeworm Core\n\n<h3>In-browser and Node Agent Framework.</h3>\n\n[![npm version](https://img.shields.io/npm/v/@atgs/tapeworm.svg?style=flat-square)](https://www.npmjs.org/package/@atgs/tapeworm.svg)\n[![npm downloads](https://img.shields.io/npm/dm/@atgs/tapeworm?style=flat-square)](https://npm-stat.com/charts.html?package=@atgs/tapeworm)\n[repo link](https://github.com/andygrace227/tapeworm)\n\nThis is the root package for Tapeworm. You can consume other packages like @atgs/tapeworm_bedrock for AWS Bedrock support.\nx\n**This project is currently in alpha and is under active development.**\n\n## Current Features\n\n- Supports `function` tools.\n- Supports Ollama models.\n- Has a Babel plugin to make tool creation easy.\n- Has TS decorators to make tool creation really easy, too!\n- Supports browser and Node.\n\n## Tapeworm's Tenets\n\n- **Be the most ergonomic agentic solution for Node and the browser.** Each commit should make it easier to develop and deploy agentic AI solutions.\n- **Be as model-agnostic as possible.** Use your own machine, AWS, Google, a literal potato... we don't care.\n- **Keep things light.** We already waste so much water and energy with AI. The overhead from Tapeworm should be kept to a minimum when possible.\n\n## Examples\n\n### How do I define a tool?\n\n#### With the babel plugin (@atgs/@atgs/babel-plugin-tapeworm-decorator) (recommended, super concise)\n\n```js\n@Tool({ description: \"Adds 2 numbers together\" })\nclass AdditionTool extends Tool {\n  @TParam({\n    name: \"a\",\n    description: \"The first number to add\",\n    required: true,\n    type: \"number\",\n  })\n  @TParam({\n    name: \"b\",\n    description: \"The second number to add\",\n    required: true,\n    type: \"number\",\n  })\n  @TOutput(\"The sum of inputs a and b\")\n  execute(input) {\n    let a = +input.a;\n    let b = +input.b;\n    console.log(\"Adding \" + a + \" and \" + b + \": \" + (a + b));\n    return a + b;\n  }\n}\n```\n\n#### With Typescript Decorators\n\n```ts\n@ToolName(\"AdditionTool\")\n@ToolDescription(\"Adds two numbers together.\")\n@ToolParameter({\n  name: \"a\",\n  description: \"The first number to add\",\n  required: true,\n  type: \"number\",\n})\n@ToolParameter({\n  name: \"b\",\n  description: \"The second number to add\",\n  required: true,\n  type: \"number\",\n})\n@ToolOutput(\"The sum of inputs a and b\")\nclass AdditionTool extends Tool {\n  execute(input: any) {\n    let a = +input.a;\n    let b = +input.b;\n    console.log(\"Adding \" + a + \" and \" + b + \": \" + (a + b));\n    return a + b;\n  }\n}\n```\n\n#### Without the plugin (still pretty readable)\n\n```js\nimport {\n  Agent,\n  OllamaModel,\n  Parameter,\n  Tool,\n  ToolSchema,\n} from \"../../dist/tapeworm.es.js\";\n\nclass AdditionTool extends Tool {\n  getName() {\n    return \"AdditionTool\";\n  }\n\n  getDescription() {\n    return \"Adds two numbers together.\";\n  }\n\n  getToolSchema() {\n    return (\n      ToolSchema.builder()\n        .addParameter(\n          Parameter.builder()\n            .name(\"a\")\n            .description(\"The first number to add.\")\n            .required(true)\n            .type(\"number\")\n            .build(),\n        )\n        //... more parameter additions.\n        .output(\"A number that is equal to a + b\")\n        .build()\n    );\n  }\n\n  execute(input) {\n    let a = +input.a;\n    let b = +input.b;\n    console.log(\"Adding \" + a + \" and \" + b + \": \" + (a + b));\n    return a + b;\n  }\n}\n```\n\n#### Then calling the agent:\n\n```js\nconst ollama = new OllamaModel(\"http://localhost:11434\", \"gpt-oss:20b\", {\n  stream: false,\n});\n\nconst agent = Agent.builder()\n  .name(\"calculatorAgent\")\n  .tools([new AdditionTool()])\n  .systemPrompt(\"You are an agent that runs math operations.\")\n  .model(ollama)\n  .build();\n\nawait agent.invoke(\"What is 9 + 10?\");\n```\n\n## Roadmap\n\nTapeworm seeks to be the most ergonomic agentic solution for Node and the browser.\n\nIt has a long way to go before this project is there, but I believe we're off to a good start.\n\nHere are the main areas that will be addressed:\n\n### More documentation and examples\n\nWe will build JS Docs and expose them, and more examples.\n\n### Plug 'n Play Proxy Servers\n\nAI Proxy servers are lightweight wrappers around your inference provider. If you're writing a Node app, you'll likely not need one, but if you're writing a browser application and want tools executing in the browser, they're likely necessary for security unless you're writing a prototype, because AI proxy servers allow you to keep your API keys private and meter consumption.\n\nA production-ready proxy server targeting Node will be available from this repository. It will offer these features:\n\n- Very simple configuration\n- Portability/modularity in your existing node applications\n- Ability to integrate into Redis or other databases for per-IP/per-customer metering\n\n### Providers\n\nTapeworm has only a built-in implementation for Ollama models at the moment.\n\nSoon, this will change. I will be targeting newer providers in this order:\n\n- Your own proxy server\n- AWS Bedrock\n- Vertex AI\n- OpenAI API\n- HuggingFace API\n\n### Streaming support with obfuscation\n\nTapeworm is synchronous at the moment. The Agent and Model interfaces will be expanded to support streaming. Further, they will be implemented in such a way to prevent side channel attacks.\n\n### Conversation Managers\n\nSummarizing and RAG-based conversation managers will be implemented to prevent token overflow errors.\n\n### Orchestration\n\nSwarms, teams, and graphs will become first-class features of Tapeworm, along with the tools they require to run efficiently.\n\n### Built-in tools\n\nMore built-in tools will be added. Would love to get a code interpreter for JS working.\n\n## Any suggestions?\n\nFeel free to leave an issue.\n","readmeFilename":"README.md"}