{"_id":"tuplet","_rev":"38-e45dc89d597e496880b4328cf39023c4","name":"tuplet","dist-tags":{"latest":"2.44.0"},"versions":{"2.7.0":{"name":"tuplet","version":"2.7.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.7.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"dist":{"shasum":"bcc3eaa51b51baaac783b4ea3ed0f6a91ed704f1","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.7.0.tgz","fileCount":319,"integrity":"sha512-vo89bf793JeKDU1eNC7keW3OvZ8UZKvZQdRl9Ub37OAGoHIylGsrK+BOsb2wQap/tbmB/k1nQJ8RzEC9pxNWog==","signatures":[{"sig":"MEQCIC1LE0ufVd2AQ7rBpc1Q7IGUmOi1sTelknObP9TnU2gmAiAuMdGI6/54RmlaGVIEiPMWSIZekXISw0TkQiqXjyLQDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078825},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.7.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/58c8d98ee27c13b603d83e6fce1af0b8/tuplet-2.7.0.tgz","_integrity":"sha512-vo89bf793JeKDU1eNC7keW3OvZ8UZKvZQdRl9Ub37OAGoHIylGsrK+BOsb2wQap/tbmB/k1nQJ8RzEC9pxNWog==","_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.7.0_1771441813000_0.009539384860333122","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"tuplet","version":"2.8.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.8.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"dist":{"shasum":"a42c8e4995a4debf0de334a784e8a2471cc1d41c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.8.0.tgz","fileCount":319,"integrity":"sha512-uQa1ViBJ8ll4q5E79jT5ywLJS+g3WSMBM/cVO7v6CqFcnK5AFwdFUtfkkI59dwch6Zg5Ci03w913j8wGbQp9zw==","signatures":[{"sig":"MEQCIC21akrj6wj0cNZsexhPsl1rZcDslyWIO/F1CmEY5B69AiAjxF+aJddJSb/3eaQM3PgJzrJDejFqGEOSCBB4+xxkKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078973},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.8.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/070634e47edce59303c80548c5f67b8f/tuplet-2.8.0.tgz","_integrity":"sha512-uQa1ViBJ8ll4q5E79jT5ywLJS+g3WSMBM/cVO7v6CqFcnK5AFwdFUtfkkI59dwch6Zg5Ci03w913j8wGbQp9zw==","_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.8.0_1771442036683_0.9249104878005994","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"tuplet","version":"2.9.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.9.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"cb6822a0ea7b8a5eb866277be9473eb15e85dbd3","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.9.0.tgz","fileCount":319,"integrity":"sha512-uwF8G3Kv7wHiAZtavNfYo5ACJ9ww1J2yr6HVOcM4gD23AyxPhzLisUvNftJoGvGxuWlvjt0pUq1KT1e7vEChcA==","signatures":[{"sig":"MEQCICGQ0LTb64v0WcnWrYj0+fJ0GReIN9gz+2ngLi7bWd9xAiBf72aK9sGR9A9saYCYlPFncLW8u30lPnEdU4MXypJqIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1079123},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.9.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/c2fe6bc5dc09db47839b080f84fb6f3b/tuplet-2.9.0.tgz","_integrity":"sha512-uwF8G3Kv7wHiAZtavNfYo5ACJ9ww1J2yr6HVOcM4gD23AyxPhzLisUvNftJoGvGxuWlvjt0pUq1KT1e7vEChcA==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.9.0_1771442758043_0.8855076451196482","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"tuplet","version":"2.10.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.10.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"b57ba8ece5f4516935b29aaad686ecc7ae5f216e","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.10.0.tgz","fileCount":319,"integrity":"sha512-9bCs4KnSnEL6z2dRutRjWNJGQ30Gn7pdE+lNnxq2kfDM4PfwnM3x5SKvD9LQGcpJScXoaXZodRLaCiRrN27wdg==","signatures":[{"sig":"MEYCIQCEDrWao1rmqZjEGcQVWXf+uZrrQG4rAafTT3K5WbCEHAIhANEb7q5Sj6VuzTiZyDGxgjhKKOKTpAJ5CzWsPoU2TxDj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1084945},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.10.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/9c324daf1278f97dadbd51ef9499d867/tuplet-2.10.0.tgz","_integrity":"sha512-9bCs4KnSnEL6z2dRutRjWNJGQ30Gn7pdE+lNnxq2kfDM4PfwnM3x5SKvD9LQGcpJScXoaXZodRLaCiRrN27wdg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.10.0_1771521267175_0.2778488926445961","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"tuplet","version":"2.11.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.11.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"6d33a7e129bb963e08e06911c36d51f927fcb22c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.11.0.tgz","fileCount":319,"integrity":"sha512-i4fgeFFzaWkBxdISCMw0x9Hukm6mb/vG5JzkIfke66ypO0pjkqj4buKInKFmQqGDeRHEzIvl+OSH8ZCqoz8fAg==","signatures":[{"sig":"MEUCIGZHb01Y5Y0iYzy0wG/t9ZHvcvuqoN+VD4onZg+LTmv1AiEAqpS4PqqLBZgHbu7WSYWSr5uXVGPVigHi+T1BcQjw3bc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1087855},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.11.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/fb74c4aed1feb8b01e3f7374fcfb84da/tuplet-2.11.0.tgz","_integrity":"sha512-i4fgeFFzaWkBxdISCMw0x9Hukm6mb/vG5JzkIfke66ypO0pjkqj4buKInKFmQqGDeRHEzIvl+OSH8ZCqoz8fAg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.11.0_1771835405910_0.8209768136199398","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"tuplet","version":"2.15.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.15.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"50f69af77c7b7f2740a76feb4055c8ceb0725800","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.15.0.tgz","fileCount":327,"integrity":"sha512-j9TUCZCtpSQ6ZgULqPxgDBZp+rwWFCiwnggW/c+VkDgfC61w/SraV5FQzro3xEfv+ZnU0FA7sbsouMFbwfb10A==","signatures":[{"sig":"MEUCIFYs3M50GnQdWzPonPKhrbfnLhLjArAdFRdUVdLq8IlAAiEAh1EcsmWSkQIkckKvn7qKG7Do07l3T+sjvT9Z2LxKdj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1190275},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.15.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/10314c77b81ba90e4c1dbe75f2a37493/tuplet-2.15.0.tgz","_integrity":"sha512-j9TUCZCtpSQ6ZgULqPxgDBZp+rwWFCiwnggW/c+VkDgfC61w/SraV5FQzro3xEfv+ZnU0FA7sbsouMFbwfb10A==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.15.0_1773214775938_0.7814875334320854","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"tuplet","version":"2.16.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.16.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"5e902fe260b5ea42b88ab8bc099d6fc385d58515","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.16.0.tgz","fileCount":327,"integrity":"sha512-QnRF0H66n5B6isU8ncczyHSE4XxXfXR9pqvs/QkdqYpn4ixdkwOw4+y+o4deDHIMfGUF6Q1WUfwE8vOcB99zBA==","signatures":[{"sig":"MEUCIQCJxZPNHpBbFdreUg8pRuF7D6Z4ftjdGxxmhz75xmZcfQIgZYuvc9K6bDvJFrzxeS5AmanD1AyMcmPHxUdmLunuzkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1194724},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.16.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/c21482b2e5dd7487860d529dd868518f/tuplet-2.16.0.tgz","_integrity":"sha512-QnRF0H66n5B6isU8ncczyHSE4XxXfXR9pqvs/QkdqYpn4ixdkwOw4+y+o4deDHIMfGUF6Q1WUfwE8vOcB99zBA==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.16.0_1774802873893_0.37428781526721955","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"tuplet","version":"2.17.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.17.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"2c1a238c30e001aed1ed645e430b78af9c5fb4a5","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.17.0.tgz","fileCount":327,"integrity":"sha512-WmhGRfueuaLjHpPV0KQQkpOlOEXY4EYFLb5bI4ToyyrPNOKRKTo21SCd1qFWPg7Oqa1BkvxFl51rQtn9U/Z4Eg==","signatures":[{"sig":"MEUCIE0/Xdxv0zi6B6Rij/f5+5sz2wvEDxijTT1/m2zBMrhPAiEA4XiFZIEl/Q2okNfbJQ8T5RjExky93/pZpdplhR3wrHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212401},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.17.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/48654bd0bc08567e0abca77a74b527c3/tuplet-2.17.0.tgz","_integrity":"sha512-WmhGRfueuaLjHpPV0KQQkpOlOEXY4EYFLb5bI4ToyyrPNOKRKTo21SCd1qFWPg7Oqa1BkvxFl51rQtn9U/Z4Eg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.17.0_1775298975941_0.7031686960605703","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"tuplet","version":"2.18.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.18.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"c17034eecd7ee9ac5b659abcb252ffafc9a3cc14","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.18.0.tgz","fileCount":331,"integrity":"sha512-Bn+1r4NSnj9KKyT3YZ/LCBIV17RwEeoRnxVr0DKHLUu5xc6YL+dkBOe5xEKHCPGNglIZpzmGB+Bo6OnXzRslPg==","signatures":[{"sig":"MEYCIQCCx/V2EERj9irIJ3S2fq6X5oUjhN0mYqe20ROz6nZnMwIhAMhc6xLZnf2QJ/ZCTICkUJKV5wBYsxZS4YXjLXvk+WWQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1227263},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.18.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/70d9259dff2cb2f0e8c5be262bb1f5b8/tuplet-2.18.0.tgz","_integrity":"sha512-Bn+1r4NSnj9KKyT3YZ/LCBIV17RwEeoRnxVr0DKHLUu5xc6YL+dkBOe5xEKHCPGNglIZpzmGB+Bo6OnXzRslPg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.18.0_1775304034791_0.3202153452747012","host":"s3://npm-registry-packages-npm-production"}},"2.19.0":{"name":"tuplet","version":"2.19.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.19.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"adb7ba2f46701f06e0ae864a2a8630d4e81f9e5c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.19.0.tgz","fileCount":331,"integrity":"sha512-erU6uXIu5pAv27Tgo4/xnAxQYqeK/3ixQOwlzKSTpt+YBHLF9syraXt83EC+aEJGgSBrLH76B7TJinuRMG5AOA==","signatures":[{"sig":"MEYCIQDT6cYKUcuYz+uJDE+A30lnlhsNlxhCGC/5Ari5annWzAIhANFauE5Xlf4Ozy7jVZJtkUNtASDTcZK6N0y8qlQQ6yuq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229302},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.19.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/46bbc84233bae21112aa2a2ffe4352ae/tuplet-2.19.0.tgz","_integrity":"sha512-erU6uXIu5pAv27Tgo4/xnAxQYqeK/3ixQOwlzKSTpt+YBHLF9syraXt83EC+aEJGgSBrLH76B7TJinuRMG5AOA==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.19.0_1775307319029_0.7007832999731747","host":"s3://npm-registry-packages-npm-production"}},"2.20.0":{"name":"tuplet","version":"2.20.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.20.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"21e5fb7a24d2b79c76e5bb08cede485503733d5f","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.20.0.tgz","fileCount":331,"integrity":"sha512-HpPx8sjioUP+yLHSogfR7HqLQL5HnfzvaUGYuX135XtePeXve/Zq6nzA/cMy04rfq/O4BK3VA1vXIjcHmb0R/Q==","signatures":[{"sig":"MEYCIQCZjUfQibRzcIWszIoJ+KEiEm0PBUQ+GqdieQ/2Kk4ShgIhAMgdNi5y7n1X/EjV+El4JzQPViJiQP0fGhQLUXWPQO3T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229860},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.20.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/4de06ba386c552a00cf0d46318a54bf5/tuplet-2.20.0.tgz","_integrity":"sha512-HpPx8sjioUP+yLHSogfR7HqLQL5HnfzvaUGYuX135XtePeXve/Zq6nzA/cMy04rfq/O4BK3VA1vXIjcHmb0R/Q==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.20.0_1775307582671_0.9861597479305086","host":"s3://npm-registry-packages-npm-production"}},"2.21.0":{"name":"tuplet","version":"2.21.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.21.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"4693c7ce5daa058bbc516687c34f025487f565b2","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.21.0.tgz","fileCount":331,"integrity":"sha512-XMn1TJ/LQ7W1eBVV4GaSx0a3Q1JfAXXruvsB1g5BwiREr9+VypWkCZrFTq7a4PkKqeJ1m5e5oOGkl0nsjCkxnw==","signatures":[{"sig":"MEQCIEOPMphHMD62rnQAY5nWNWKips19OfZXYqHbXAjGfY6lAiA4dDCYXXeZ3uh7mt2eXW2GjAiN3ipHTJT5yBe3JxiIFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229930},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.21.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/2fc58ddc5a5635e86bd4f07db06ac96b/tuplet-2.21.0.tgz","_integrity":"sha512-XMn1TJ/LQ7W1eBVV4GaSx0a3Q1JfAXXruvsB1g5BwiREr9+VypWkCZrFTq7a4PkKqeJ1m5e5oOGkl0nsjCkxnw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.21.0_1775309378643_0.4847276968557792","host":"s3://npm-registry-packages-npm-production"}},"2.22.0":{"name":"tuplet","version":"2.22.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.22.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"a7df59c73a12ee8f947b91e881a038fe4474b2c5","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.22.0.tgz","fileCount":335,"integrity":"sha512-rNB7uKkR9Cs6DWRSoURV72WqXEwLKhhPsZlAFB0RrkkdpDBfnSV8SX0RBeSZbQw8U0OulXzrc1dThEnGoK0NBA==","signatures":[{"sig":"MEQCIHJV+TniXhbNqr1MFIAyoY0/Euyj8fW2DTE1oWfV0MyjAiBqRCPFI3vsW09Re6iMmNuAGjIzYwCutEST+pSGWaGo8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1241527},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.22.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/e6d677f07c1b08ba56abc8c5795f9a18/tuplet-2.22.0.tgz","_integrity":"sha512-rNB7uKkR9Cs6DWRSoURV72WqXEwLKhhPsZlAFB0RrkkdpDBfnSV8SX0RBeSZbQw8U0OulXzrc1dThEnGoK0NBA==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.22.0_1775383978171_0.01748091562810372","host":"s3://npm-registry-packages-npm-production"}},"2.23.0":{"name":"tuplet","version":"2.23.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.23.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"00b2c41d42486bc0e17a18646591144a34e6220d","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.23.0.tgz","fileCount":335,"integrity":"sha512-7IZb3vOcSvRYas0LrUprG/8ozFeMgFQ86Oi8XkWSVaB2z40gUW8SERSGhSqAc2FY+aKL3z3JXFV1tnghdJMd2g==","signatures":[{"sig":"MEQCIBE96Evd0QtroEJbqIBS28iKq21oZ2n9Rdl2tx6Gg52EAiB1RBPw8uTkjQoRaKgKmOhZbqPBiDMPQLhUnSBb7jkmRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1241371},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.23.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/38eb15dad028d07d3c88b1d97a988eee/tuplet-2.23.0.tgz","_integrity":"sha512-7IZb3vOcSvRYas0LrUprG/8ozFeMgFQ86Oi8XkWSVaB2z40gUW8SERSGhSqAc2FY+aKL3z3JXFV1tnghdJMd2g==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.23.0_1775548710550_0.9073937403130832","host":"s3://npm-registry-packages-npm-production"}},"2.24.0":{"name":"tuplet","version":"2.24.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.24.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"7ed2c6c71603d98cb72da10355b167a56976f43f","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.24.0.tgz","fileCount":343,"integrity":"sha512-plmoYjeBxeRi6e++91GHEAO6KWnr3IMOCil9qG4DRa/KQLQyotMnCO4ElKZpW0QZTccNwRm7bjNVkwJbhITVmQ==","signatures":[{"sig":"MEUCIQD4WSTxx7rI9KT37LZvhZR80GhWxrviWiIUCrsoaSsp2AIgRG0dtJ2Bbk/BqRG9TLUKTb3JQh1y5qMh+iAsCOXGHt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1265480},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.24.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/d2b81d3c48589d82b658dda4814c0591/tuplet-2.24.0.tgz","_integrity":"sha512-plmoYjeBxeRi6e++91GHEAO6KWnr3IMOCil9qG4DRa/KQLQyotMnCO4ElKZpW0QZTccNwRm7bjNVkwJbhITVmQ==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.24.0_1775758436622_0.7893713091284595","host":"s3://npm-registry-packages-npm-production"}},"2.25.0":{"name":"tuplet","version":"2.25.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.25.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"502d4357b6e9ff804e92c7c42d9b3a7bae37c9fe","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.25.0.tgz","fileCount":343,"integrity":"sha512-SndE/06tsYT1LpDkLBF7xe8pBnp2Hgxbf0iBpsoPTJoVevl71lTKnVsmNRhBkJx9UoZwmQzFZtCNGuYsnaW+Hw==","signatures":[{"sig":"MEYCIQDDDsFz4Ulk43vdPinBnFJnkmG4S8Qmipi3Np5W+5tKdwIhAIO2O8WgCZnAqDwbpojNi0GNHRq7fiVlhj2sADieOHSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1267992},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.25.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/31e9343ab4df8613a3b1e24285b304db/tuplet-2.25.0.tgz","_integrity":"sha512-SndE/06tsYT1LpDkLBF7xe8pBnp2Hgxbf0iBpsoPTJoVevl71lTKnVsmNRhBkJx9UoZwmQzFZtCNGuYsnaW+Hw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@anthropic-ai/sdk":"^0.71.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.25.0_1775886113202_0.6562206833201483","host":"s3://npm-registry-packages-npm-production"}},"2.26.0":{"name":"tuplet","version":"2.26.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.26.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"1ad916ab119427b19ae23807e72d8b9249ca871c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.26.0.tgz","fileCount":355,"integrity":"sha512-i8RbojvO4Jnslr2xE6r9iIUUkwfiscEM40BdXk8pGpYFZ824ogFQRMxJI2NPk5u1yRnO6tnbgeVU9ky9yJSX1g==","signatures":[{"sig":"MEUCICeMaU6F0uy7fPb/7+hg0NNS1E0wkFE4TelnZWI7RgqNAiEAmH7WK5/mvOzI3OkxX92WUqhGrhnLjmM3lkWTFcAglp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1293619},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.26.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/6fcb6d23ef7dffacf5fe6aa20dcbaa24/tuplet-2.26.0.tgz","_integrity":"sha512-i8RbojvO4Jnslr2xE6r9iIUUkwfiscEM40BdXk8pGpYFZ824ogFQRMxJI2NPk5u1yRnO6tnbgeVU9ky9yJSX1g==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.26.0_1776609402321_0.6588455295744302","host":"s3://npm-registry-packages-npm-production"}},"2.27.0":{"name":"tuplet","version":"2.27.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.27.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"5ed845897238a76608ab7303865dd9dce85c8d87","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.27.0.tgz","fileCount":355,"integrity":"sha512-jZ68vt2qlL8+viN+azird6yXMywHQXaOA6EoiLB8y9uFKBSFvy/+/KArYNxnVf6kD2PQqPQzE1ThWkQ7+hzK7A==","signatures":[{"sig":"MEUCIHP35pBkcnzCZwQ9tyos3hJgp+JnU9eSBM3qJmWlQHP/AiEAh05m7zwR5cQTqwfydhXxfxXmbJ3XP3Wp8TqdQuiLoAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1293951},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.27.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/2a7e47f2c6a3e51b58b4639fa33b28ea/tuplet-2.27.0.tgz","_integrity":"sha512-jZ68vt2qlL8+viN+azird6yXMywHQXaOA6EoiLB8y9uFKBSFvy/+/KArYNxnVf6kD2PQqPQzE1ThWkQ7+hzK7A==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.27.0_1776620059230_0.9722321590378487","host":"s3://npm-registry-packages-npm-production"}},"2.28.0":{"name":"tuplet","version":"2.28.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.28.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"ab26a9f1f9ee16cc4f6e977ad710401c5af5560c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.28.0.tgz","fileCount":355,"integrity":"sha512-o15NN5KTvs5zFxqL4JblRAFHvQj/2wooXLPS5Tficlxfwy7OJ8xTTefKEXQ19c/rG25OXj8JYg8/LOjDEF7w+w==","signatures":[{"sig":"MEUCIQDzO9E8jjFsAfuqSiYNfZ5lpnSddP+mUDHI+eEhaMW0/AIgIhxiOUy9rACRpnsRCZ1gI1ZmD59jBVpDEU9voEfUGRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1294431},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.28.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/8945663abdc3d6cb8d2ac92afab8bb89/tuplet-2.28.0.tgz","_integrity":"sha512-o15NN5KTvs5zFxqL4JblRAFHvQj/2wooXLPS5Tficlxfwy7OJ8xTTefKEXQ19c/rG25OXj8JYg8/LOjDEF7w+w==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.28.0_1776621311685_0.8604690822567067","host":"s3://npm-registry-packages-npm-production"}},"2.29.0":{"name":"tuplet","version":"2.29.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.29.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"33cf5313fa052c4fcc28a01ecff518d154d7b28c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.29.0.tgz","fileCount":355,"integrity":"sha512-mJYc0Ko+/TnK0fgLo1rRXnRUQCwS+rCLMaxoLALQm9wMLYRKJlUTVEW+/FkLem5+mu9QdxJ8OeZB4OpOvnItfQ==","signatures":[{"sig":"MEYCIQD/zbMjiZGFFPbCuT26qxL2M58pFQbTIOjFrdvW3b+ZRgIhALL8WugpAdHbvCZu7HqW9ZRdmM5BTnIjR/aGWSqN2lKA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1295966},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.29.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/792f4569631e30162ea4553463fc6f0e/tuplet-2.29.0.tgz","_integrity":"sha512-mJYc0Ko+/TnK0fgLo1rRXnRUQCwS+rCLMaxoLALQm9wMLYRKJlUTVEW+/FkLem5+mu9QdxJ8OeZB4OpOvnItfQ==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.29.0_1776621865968_0.45419727215888206","host":"s3://npm-registry-packages-npm-production"}},"2.30.0":{"name":"tuplet","version":"2.30.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.30.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"5e8ebce5a2fe5346453de23d6bec6fdc0239963b","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.30.0.tgz","fileCount":359,"integrity":"sha512-e8HbmRxIr8JD0/m4juUAdq8HfdVOj7GCJbChV2wS34RyVIJyTGqgXZF41VNR5iyRVeLmT2miHOtvYLscymfZzw==","signatures":[{"sig":"MEYCIQDvmGfXjTV3MPgXoXoRrZEuL00UnHFVB+dLmosmZvjdlgIhAL6tApYp4xow6Kye1c2qLScKkspMoZA/xyPHl7CLN5T9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1317762},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.30.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/1ceeeb7327756621df2415414df89314/tuplet-2.30.0.tgz","_integrity":"sha512-e8HbmRxIr8JD0/m4juUAdq8HfdVOj7GCJbChV2wS34RyVIJyTGqgXZF41VNR5iyRVeLmT2miHOtvYLscymfZzw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.30.0_1776749656119_0.6389793308673026","host":"s3://npm-registry-packages-npm-production"}},"2.31.0":{"name":"tuplet","version":"2.31.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.31.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"0a23452873bf2c6aed0986d3380288b6f917d5e0","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.31.0.tgz","fileCount":367,"integrity":"sha512-vv2mQHa/g9k1Ja8yjcWX7nUl4aYSFOAiFea0MS7ZZyEhP0jepr7pEkP1w0DikER7k31odmfALFEXcLlLCVjZBw==","signatures":[{"sig":"MEUCIQCeSlWhzELNM14zvF24jGsxVLM0KfEaLMwFLswTT3oO9gIgKXexs1Px7sahbK2FxojnyzeqrrVCqtKFGV8zaKNN204=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1383051},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.31.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/ee89bbaa2b4da6e1f0098d7d388e4ef8/tuplet-2.31.0.tgz","_integrity":"sha512-vv2mQHa/g9k1Ja8yjcWX7nUl4aYSFOAiFea0MS7ZZyEhP0jepr7pEkP1w0DikER7k31odmfALFEXcLlLCVjZBw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.31.0_1776963586604_0.562155929794997","host":"s3://npm-registry-packages-npm-production"}},"2.32.0":{"name":"tuplet","version":"2.32.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.32.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"3f0f8c64f12892b0fbcd8ab5adfafd338e9d7dec","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.32.0.tgz","fileCount":367,"integrity":"sha512-KUDhHLQHIFBLy3XkYcHOM+xhiHxwFn0eZ5NCDHOOH+NLJKMCY4BkYBKfQVHf8Poq4s/rOV0migUtBmSshLHfrg==","signatures":[{"sig":"MEYCIQCTls9BarLp1aiDUq5qmjIc/5//En9DiSPkqRutgTMRYQIhAKaOzbsxDoafoM28ZeA3uNJ6ZlILo67JFC5T+2QITfsf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1393218},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.32.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/c1e1d7823ee5710d49ab5b6357cf9b53/tuplet-2.32.0.tgz","_integrity":"sha512-KUDhHLQHIFBLy3XkYcHOM+xhiHxwFn0eZ5NCDHOOH+NLJKMCY4BkYBKfQVHf8Poq4s/rOV0migUtBmSshLHfrg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.32.0_1777007244022_0.5776772511726034","host":"s3://npm-registry-packages-npm-production"}},"2.33.0":{"name":"tuplet","version":"2.33.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.33.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"84aadd7b5d5922f9cdd47f3848346b628e1d197c","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.33.0.tgz","fileCount":367,"integrity":"sha512-YMy21dpz4RbkgW9Pnr1/kXMGbNDhjzjcIjxPZKXwswXnfKDHGd68OG3hjo7vnKm9R0ZcV/Dzu/AYeUzaENccgg==","signatures":[{"sig":"MEUCIB7ItPd5vAbcGB/oY+5uaUerBgV4R1Dt45x44l4e/1oQAiEAwSECnvLg6TZaWSl8hNiDtj5qmpALun+rWd6QsjFAViw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1404175},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.33.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/e0219a29a03fb65dd6fbc6ecdbf5dd5b/tuplet-2.33.0.tgz","_integrity":"sha512-YMy21dpz4RbkgW9Pnr1/kXMGbNDhjzjcIjxPZKXwswXnfKDHGd68OG3hjo7vnKm9R0ZcV/Dzu/AYeUzaENccgg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.33.0_1777009016478_0.11797904357434441","host":"s3://npm-registry-packages-npm-production"}},"2.34.0":{"name":"tuplet","version":"2.34.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.34.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"f36c6df73b83ca4e72aa66ff530e9e7040552584","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.34.0.tgz","fileCount":367,"integrity":"sha512-sS9ZEBgvr18MDDzTgXQFHPUnQ/2OU8+p+rzmlDQr69mIcJuK8I6VjOFKq0HP+jJKk8H75KdEVeWTbGC0JoYpiw==","signatures":[{"sig":"MEQCIFofPtJTeErVtYH2+4Tfv3OGh9K2qhcFRZfSP1BiK/ymAiBkd2kqz9e5Fnz0YRPfmcLs1j2FoB8FU1OQDiE47Aie1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421232},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.34.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/cafc13b1002d067c2a0978ec7e1e91ef/tuplet-2.34.0.tgz","_integrity":"sha512-sS9ZEBgvr18MDDzTgXQFHPUnQ/2OU8+p+rzmlDQr69mIcJuK8I6VjOFKq0HP+jJKk8H75KdEVeWTbGC0JoYpiw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.34.0_1777048074578_0.19230495486335508","host":"s3://npm-registry-packages-npm-production"}},"2.35.0":{"name":"tuplet","version":"2.35.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.35.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"32d816e17e2f161e5ff7bb5918caf8f05247c172","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.35.0.tgz","fileCount":367,"integrity":"sha512-C8/40KLAN7FcrDhFH+d7PNyAqknyjhVBV8kSw238g2QXigLpGdKabtBxOuBbttkEfdKCnoCV8/Fw/ly7R/B+hw==","signatures":[{"sig":"MEYCIQDeiKJS8HLmW43tbTH52Y7/Sa9LNQu8z6td/rGIaWVDBwIhALp1JV3to8HTnngg79hTBCT8ves5FLi5y/L26yEqOzB6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1423554},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.35.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/9051f2e0c0075fc65024c9561a655568/tuplet-2.35.0.tgz","_integrity":"sha512-C8/40KLAN7FcrDhFH+d7PNyAqknyjhVBV8kSw238g2QXigLpGdKabtBxOuBbttkEfdKCnoCV8/Fw/ly7R/B+hw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.35.0_1777050041573_0.579237292931472","host":"s3://npm-registry-packages-npm-production"}},"2.36.0":{"name":"tuplet","version":"2.36.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.36.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"c08ad7a2e6f7e5d4b54354b6674b925f2495e499","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.36.0.tgz","fileCount":367,"integrity":"sha512-cQJH4AYY/QjyYD1VrzD7tN2ZS9wzj560KqkeAg+kjlvmPQhjFGMYCeegjU5OrRXfUrObOCia3eZSHHQeYZz6sg==","signatures":[{"sig":"MEQCIGNUQts3rT2toxYgqY1Q0mibnu0C7E+NvoKlGgTSIGz9AiA86seUy/J+BbLtwK2ennUyRqigGRyO+m4YFBeYWgTL2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1431285},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.36.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/212f0cdbdc0526b6c3a2947fbe7df686/tuplet-2.36.0.tgz","_integrity":"sha512-cQJH4AYY/QjyYD1VrzD7tN2ZS9wzj560KqkeAg+kjlvmPQhjFGMYCeegjU5OrRXfUrObOCia3eZSHHQeYZz6sg==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.36.0_1777089001073_0.16175909827994817","host":"s3://npm-registry-packages-npm-production"}},"2.37.0":{"name":"tuplet","version":"2.37.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.37.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"f360942c0ad63f6c28bf304f7813086a300ec6cc","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.37.0.tgz","fileCount":379,"integrity":"sha512-1YAT8mi1TgGMhqJrM1sCzfkWbDH0etvZzHCP/3pxQWRv4c3I6Ixr6/kCBSlaAnI35J0Lf2n+EBge4cdGTnjNlw==","signatures":[{"sig":"MEYCIQDzH8sZG9G3NuZ9QSqsUXuyIZbMjyNUzogisj+0eMl3PQIhAI6EKiSddaVv4ilPUlA4IkneBrLchRqi1oTER2vzZ5TX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1493841},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.37.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/5e755a64bc2c80cd36786f5129eca008/tuplet-2.37.0.tgz","_integrity":"sha512-1YAT8mi1TgGMhqJrM1sCzfkWbDH0etvZzHCP/3pxQWRv4c3I6Ixr6/kCBSlaAnI35J0Lf2n+EBge4cdGTnjNlw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.37.0_1777187526031_0.7681983771138894","host":"s3://npm-registry-packages-npm-production"}},"2.38.0":{"name":"tuplet","version":"2.38.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.38.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"864154d63b794f9ccb50e089b94be04f7093de46","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.38.0.tgz","fileCount":387,"integrity":"sha512-hOe3aqo53JDgASvBNXs7abl0rSgdc1x3EJdsqypq4/munxr/g6bMqjT2Y+9GKXyuIlKQieaW5I3GKqPuGh0r2g==","signatures":[{"sig":"MEUCIQC2Iw34E1icGthO3giMcKFjyrcMFNTRYlv6zMn2PfjcngIgIbgVZpY9mZnRtI3YIPRPpWeId2LQil92mOrWdFhkTjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1513155},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.38.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/a89dc08d13af5870086f4d3d63db8c04/tuplet-2.38.0.tgz","_integrity":"sha512-hOe3aqo53JDgASvBNXs7abl0rSgdc1x3EJdsqypq4/munxr/g6bMqjT2Y+9GKXyuIlKQieaW5I3GKqPuGh0r2g==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.38.0_1777197797946_0.7418641802155612","host":"s3://npm-registry-packages-npm-production"}},"2.39.0":{"name":"tuplet","version":"2.39.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.39.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"a0b51e14b0575a5c8c86a8c3380b0fbab3a838c2","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.39.0.tgz","fileCount":387,"integrity":"sha512-l/xmaqsfWCSU84YrYgUo+/Pfreez8kROt60p9cP/x/5HL22xZ0VK7Tj0QD8PGmyaNeijpopbw8FbJwuonTQBCQ==","signatures":[{"sig":"MEUCIQCYn5BABgnnblccp3ZY6YMfkbsMeocKYZICra1dj6GKiwIgGrlyfpKYPeOI/JKvpY9nSUYq89L+1zP0XKoJdMJhsDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1514281},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.39.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/c37631a0b4f9d66fa59329ab13762f98/tuplet-2.39.0.tgz","_integrity":"sha512-l/xmaqsfWCSU84YrYgUo+/Pfreez8kROt60p9cP/x/5HL22xZ0VK7Tj0QD8PGmyaNeijpopbw8FbJwuonTQBCQ==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.39.0_1777199556670_0.2569445679212381","host":"s3://npm-registry-packages-npm-production"}},"2.40.0":{"name":"tuplet","version":"2.40.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.40.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"f86b0cde1ed2568059231278eca6a0d58ac7626f","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.40.0.tgz","fileCount":387,"integrity":"sha512-QeNc+4lM0h6TdR38VqUwWS1Pg2q0VqKsdzEFtzyajytyEK8PCYwBBRz0om0mX4///AjHf7Q6drHJywHlJOIrUw==","signatures":[{"sig":"MEUCIFZAB+PmrLUYBRzDIq4DEJ8TLUItDZD6vs9KJ1AfR/JUAiEAgOWEiEH30ENxftllyVEEYroInafNjV6SqXn3acuLCnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1515912},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.40.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/53da8ec758859a75429059136f0c72cd/tuplet-2.40.0.tgz","_integrity":"sha512-QeNc+4lM0h6TdR38VqUwWS1Pg2q0VqKsdzEFtzyajytyEK8PCYwBBRz0om0mX4///AjHf7Q6drHJywHlJOIrUw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.40.0_1777298285191_0.8120323572193415","host":"s3://npm-registry-packages-npm-production"}},"2.41.0":{"name":"tuplet","version":"2.41.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.41.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"f8dd47cb4b3224fac95a897210765e10b8255983","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.41.0.tgz","fileCount":391,"integrity":"sha512-MtfjSwAWhBh5w5Vq65XDPjPaeG2DaWWXbBzP0/QHlkKQnhooJxU2ubl9jJzjlBZeF0yqc2WdV0DNCdeGP1+ckw==","signatures":[{"sig":"MEYCIQCd4dI7DKzj3ppH9lAP6DPiZdoSGdZ+p5Zfx1nuNe9g/QIhAISOJAZLwDKHIrk3XIP0xrCh/Fa+Y9uot0CCNzA3lMye","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1575841},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.41.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/56a37142151714dbacd5ecd33082b8a6/tuplet-2.41.0.tgz","_integrity":"sha512-MtfjSwAWhBh5w5Vq65XDPjPaeG2DaWWXbBzP0/QHlkKQnhooJxU2ubl9jJzjlBZeF0yqc2WdV0DNCdeGP1+ckw==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.41.0_1777443958501_0.06703540874543146","host":"s3://npm-registry-packages-npm-production"}},"2.42.0":{"name":"tuplet","version":"2.42.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.42.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"394cf0924575513c1d0523402ee86813502c1eb8","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.42.0.tgz","fileCount":391,"integrity":"sha512-t78+2E9Re15uvM56vY8TiJ64i636Do7TTS35p0D31AS5HCbBkexMOvlqcxoB7lv/gjWqPXSpoVKuwKmQ7+tp2g==","signatures":[{"sig":"MEUCIQDwfXSo6jSFepGhDUHl4Q49aXbkWBVuqRzE2D1OXcfGzgIgKxkm0xuFA2pOhzX28f2WFrldNnxCmtSNV9eNa+FFLw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580852},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.42.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/7a0ffd60dc10895f7973d7cb1e4ea09c/tuplet-2.42.0.tgz","_integrity":"sha512-t78+2E9Re15uvM56vY8TiJ64i636Do7TTS35p0D31AS5HCbBkexMOvlqcxoB7lv/gjWqPXSpoVKuwKmQ7+tp2g==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.42.0_1783587396574_0.5316314124407584","host":"s3://npm-registry-packages-npm-production"}},"2.43.0":{"name":"tuplet","version":"2.43.0","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"author":"","license":"MIT","_id":"tuplet@2.43.0","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"dist":{"shasum":"210977eb6c9b447185c582a027cc7924688804b7","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.43.0.tgz","fileCount":391,"integrity":"sha512-8Ktk2V15AAd0i/hfJLxm0x3tlYp8v+2MxfLXVO/y7N6Xc2stfUMd+GBPritV8jTaL++gseDRkZrYUXVPagFYZA==","signatures":[{"sig":"MEUCIAtZqVJ6zTQ5yvnj22eQFvSbe35WIj/0rEYjHe9LPV65AiEAy/Y4yMK/xvXJX8VNbBvA/NrA8n0jIIggSICWnBjwhbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1582446},"main":"dist/index.js","type":"module","_from":"file:tuplet-2.43.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"_resolved":"/tmp/ea2d81f5a35f7a92eacecec34091a57d/tuplet-2.43.0.tgz","_integrity":"sha512-8Ktk2V15AAd0i/hfJLxm0x3tlYp8v+2MxfLXVO/y7N6Xc2stfUMd+GBPritV8jTaL++gseDRkZrYUXVPagFYZA==","repository":{"url":"git+https://github.com/anetrebskii/tuplet.git","type":"git"},"_npmVersion":"10.8.2","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.7.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuplet_2.43.0_1783589901928_0.35934977490096753","host":"s3://npm-registry-packages-npm-production"}},"2.44.0":{"name":"tuplet","version":"2.44.0","description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"repository":{"type":"git","url":"git+https://github.com/anetrebskii/tuplet.git"},"homepage":"https://github.com/anetrebskii/tuplet#readme","bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"author":"","license":"MIT","engines":{"node":">=20.0.0"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.7.0","vitest":"^4.0.18"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest run","test:watch":"vitest","clean":"rm -rf dist"},"_id":"tuplet@2.44.0","_integrity":"sha512-tqTZB41AfN+WkQWDTOhR32Qqpu1fII4KverT1oeUjcuyONj91tE1SnWvnsqEfLgF9zTyRDsk5C9gcD0CLag3pA==","_resolved":"/tmp/00b9f3e0f7031b68904b85675fa0d93b/tuplet-2.44.0.tgz","_from":"file:tuplet-2.44.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-tqTZB41AfN+WkQWDTOhR32Qqpu1fII4KverT1oeUjcuyONj91tE1SnWvnsqEfLgF9zTyRDsk5C9gcD0CLag3pA==","shasum":"66929c8c51b3efa801e2af5baa58af99e432fc80","tarball":"https://registry.npmjs.org/tuplet/-/tuplet-2.44.0.tgz","fileCount":415,"unpackedSize":1635984,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDO9Z3fnvTiuZgkQPzS39C8f9InwQD860TJYV4fyJk+QIgFDlhAlOhXk0q2T4xPSgjg7WCTRQcIcO97mQXG9t5cLE="}]},"_npmUser":{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"},"directories":{},"maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tuplet_2.44.0_1784892270143_0.4363902965809767"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-18T19:10:12.891Z","modified":"2026-07-24T11:24:30.556Z","0.0.1":"2020-04-19T17:55:08.593Z","2.7.0":"2026-02-18T19:10:13.195Z","2.8.0":"2026-02-18T19:13:56.861Z","2.9.0":"2026-02-18T19:25:58.231Z","2.10.0":"2026-02-19T17:14:27.448Z","2.11.0":"2026-02-23T08:30:06.176Z","2.15.0":"2026-03-11T07:39:36.094Z","2.16.0":"2026-03-29T16:47:54.065Z","2.17.0":"2026-04-04T10:36:16.128Z","2.18.0":"2026-04-04T12:00:35.010Z","2.19.0":"2026-04-04T12:55:19.281Z","2.20.0":"2026-04-04T12:59:42.847Z","2.21.0":"2026-04-04T13:29:38.892Z","2.22.0":"2026-04-05T10:12:58.336Z","2.23.0":"2026-04-07T07:58:30.770Z","2.24.0":"2026-04-09T18:13:56.854Z","2.25.0":"2026-04-11T05:41:53.450Z","2.26.0":"2026-04-19T14:36:42.530Z","2.27.0":"2026-04-19T17:34:19.500Z","2.28.0":"2026-04-19T17:55:11.879Z","2.29.0":"2026-04-19T18:04:26.151Z","2.30.0":"2026-04-21T05:34:16.304Z","2.31.0":"2026-04-23T16:59:46.924Z","2.32.0":"2026-04-24T05:07:24.219Z","2.33.0":"2026-04-24T05:36:56.695Z","2.34.0":"2026-04-24T16:27:54.753Z","2.35.0":"2026-04-24T17:00:41.791Z","2.36.0":"2026-04-25T03:50:01.267Z","2.37.0":"2026-04-26T07:12:06.213Z","2.38.0":"2026-04-26T10:03:18.134Z","2.39.0":"2026-04-26T10:32:36.830Z","2.40.0":"2026-04-27T13:58:05.506Z","2.41.0":"2026-04-29T06:25:58.664Z","2.42.0":"2026-07-09T08:56:36.712Z","2.43.0":"2026-07-09T09:38:22.082Z","2.44.0":"2026-07-24T11:24:30.316Z"},"bugs":{"url":"https://github.com/anetrebskii/tuplet/issues"},"license":"MIT","homepage":"https://github.com/anetrebskii/tuplet#readme","keywords":["ai","agent","llm","claude","openai","tools","framework","tuplet"],"repository":{"type":"git","url":"git+https://github.com/anetrebskii/tuplet.git"},"description":"Tuplet — minimal TypeScript agent framework inspired by Claude Code architecture","maintainers":[{"name":"alexnetrebskii","email":"aleks.netrebskiy@gmail.com"}],"readme":"# Tuplet\n\n> Formerly **Hive Agent** ([`@alexnetrebskii/hive-agent`](https://www.npmjs.com/package/@alexnetrebskii/hive-agent)) — same framework, new name.\n\n[![npm version](https://img.shields.io/npm/v/tuplet)](https://www.npmjs.com/package/tuplet)\n[![CI](https://img.shields.io/github/actions/workflow/status/anetrebskii/tuplet/ci.yml)](https://github.com/anetrebskii/tuplet/actions)\n[![license](https://img.shields.io/github/license/anetrebskii/tuplet)](https://github.com/anetrebskii/tuplet/blob/main/LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue)](https://www.typescriptlang.org/)\n[![Discord](https://img.shields.io/discord/1339330498498080808?logo=discord&label=Discord)](https://discord.gg/WrZhA6wfdr)\n\n**Claude Code-like AI agent for your own application. Add a few lines — get a multi-agent system that asks clarifying questions, plans tasks, and works with your data.**\n\nClaude Code is impressive: you open a terminal, ask it to code something, and it plans, clarifies, executes. But it's locked to the terminal and local filesystem. What if you need that same intelligence inside your SaaS product, web app, or serverless function — working with your database, your blob storage, your users' data?\n\nTuplet gives you exactly that. A powerful, multi-agent framework you plug into your application. Your users get an AI that feels custom-built. You get a library that handles the hard parts.\n\n## Demo\n\n<!-- VIDEO_PLACEHOLDER: Replace with uploaded video -->\n<!-- Example: https://github.com/user-attachments/assets/xxxxx -->\n\n> See Tuplet in action — AI agent planning tasks, asking clarifying questions, and working with workspace files in a real web app.\n\n## You Need Tuplet If\n\n- You want your own AI agent in your app that codes, manages documents, or works with any workspace you share with it\n- You're building on Firebase, Vercel, AWS Lambda, or any serverless platform — Tuplet is stateless by design\n- You're building a SaaS and want to give users a smart AI chat without building an agent framework from scratch\n- Your data lives in databases, blob storage, or APIs — not just the local filesystem\n- You want Claude Code-level intelligence but inside a web application, without VMs or infrastructure to manage\n- You don't want to spend time teaching AI how to work well — Tuplet handles planning, task tracking, clarifying questions, and tool use out of the box\n\n## Features\n\n### Agent Intelligence\n\n- **Built-in planning & exploration sub-agents** — AI plans its work before executing, just like Claude Code\n- **Task generation & tracking** — AI generates tasks and follows them, showing progress in real time\n- **Rich progress events** — Stream AI reasoning text, tool execution, token usage, and nested sub-agent activity with structured depth for tree-like UIs. Every event includes a typed `activity` classification and a user-friendly `label` — just `statusBar.setText(update.label)` and you're done\n- **Clarifying questions** — AI asks one question or a series of questions when it needs more context\n- **Interruption mode** — Correct the AI mid-execution if it goes in the wrong direction, just like Claude Code\n- **Optimized built-in prompts** — Carefully tuned prompts for better results across all providers\n\n### Built-in Capabilities\n\n- **Workspace** — Like projects in Claude Code. Tuplet works with workspace files (virtual or real) the same way Claude Code works with your project. Strict mode restricts AI to defined paths with schema validation — all writes (including shell redirections) are validated automatically\n- **Large file processing** — AI reads files >256KB in chunks, just like Claude Code does\n- **Web browsing** — Navigate websites, extract data, interact with pages\n- **API requests with authentication** — Make HTTP requests to external services\n- **URL allowlisting** — Restrict which URLs the agent can access via `curl`/`browse` with wildcard patterns (`https://*.example.com/api/**`)\n- **MCP client** — Connect existing remote MCP servers (HubSpot, Close CRM, Google Calendar, ...) and expose their tools to the agent. Zero-dependency Streamable HTTP client — no SDK required. See [docs/mcp.md](docs/mcp.md)\n\n### Multi-Provider\n\n- **Claude** (Anthropic) — First-class support with caching and extended thinking\n- **OpenAI** — GPT-4o and other models, plus one-call presets for OpenAI-compatible vendors (Groq, Together, Fireworks, DeepSeek, xAI, Ollama)\n- **OpenRouter** — Access to 100+ models via [openrouter.ai](https://openrouter.ai), with optimized prompts so non-Claude models use built-in tools effectively\n- **Custom providers** — Implement the `LLMProvider` interface to use any AI model\n\n### Cost & Performance\n\n- **Prompt caching** — Up to 90% cost reduction with Claude's prompt caching\n- **Chat history summarization** — Automatic summarization of long conversations to stay within context limits\n- **Execution tracing** — Full cost breakdown per request, per model, per sub-agent\n\n### Production-Ready\n\n- **Stateless design** — Works in Firebase Functions, AWS Lambda, any serverless environment\n- **Conversation history management** — Automatic load/save with pluggable repository providers\n- **Secrets management** — Keep credentials for external systems outside AI context. AI can use them without seeing actual values\n- **Interruption & cancellation** — AbortController support, Firestore-based stop signals, graceful partial results\n\n### Extensibility\n\n- **Custom tools** — Define any tool with typed parameters and execution logic\n- **Skills** — Lazy-loaded prompts for specialized workflows. Only metadata is in the system prompt; full instructions load on demand when the model activates a skill\n- **Custom sub-agents** — Spawn specialized agents with their own tools, prompts, and even different LLM providers\n- **Pluggable storage** — Bring your own chat history provider (Firestore, Redis, Postgres, anything)\n- **Pluggable logging & tracing** — Built-in [Langfuse](https://langfuse.com) provider, console tracer, or wire your own (Datadog, custom dashboards, any observability platform). See [Tracing](./docs/tracing.md).\n- **Pluggable workspaces** — Virtual file systems, database-backed storage, or real file system\n\n## Tuplet vs LangChain.js\n\n| | **Tuplet** | **LangChain.js** |\n|---|---|---|\n| **Runtime dependencies** | 0 | 11+ (core) + per-provider packages |\n| **Setup** | `new Tuplet({ tools, llm })` — one object, done | Chains, Runnables, LCEL, Memory, Agents — multiple abstractions to learn |\n| **Planning & task tracking** | Built-in, works out of the box | Requires separate `@langchain/langgraph` package |\n| **Clarifying questions** | Built-in | Not included — build your own |\n| **Serverless** | Stateless by design — drop into Lambda/Firebase as-is | Requires external state management and architectural changes |\n| **Multi-provider** | Claude, OpenAI, OpenRouter (100+ models), custom | 50+ providers via separate packages |\n| **Prompt caching** | Built-in for Claude (up to 90% cost savings) | Not built-in |\n| **Best for** | Production apps that need an embedded AI agent | Prototyping, RAG pipelines, complex LLM orchestration |\n\n**When to choose LangChain:** You need a massive ecosystem of integrations (vector stores, retrievers, 50+ providers) or are building complex RAG pipelines with many data sources.\n\n**When to choose Tuplet:** You want a production-ready agent in your app without the abstraction overhead. One dependency, stateless, works in serverless — and your users get planning, task tracking, and clarifying questions out of the box.\n\n## Installation\n\n```bash\nnpm install tuplet\n```\n\n```bash\npnpm add tuplet\n```\n\n## Quick Start\n\n```typescript\nimport { Tuplet, ClaudeProvider } from 'tuplet'\n\nconst agent = new Tuplet({\n  role: 'a helpful assistant',\n  tools: [myTool],\n  llm: new ClaudeProvider({ apiKey: process.env.ANTHROPIC_API_KEY })\n})\n\nconst result = await agent.run('Hello!')\nconsole.log(result.response)\n```\n\n### Using OpenAI-compatible providers\n\n`OpenAIProvider` works with OpenAI directly and with any OpenAI-compatible vendor — Groq, Together, Fireworks, DeepSeek, xAI — via static presets that fill in `baseURL`, the env-var fallback, and a default model:\n\n```typescript\nimport { Tuplet, OpenAIProvider } from 'tuplet'\n\nconst agent = new Tuplet({\n  role: 'a helpful assistant',\n  tools: [myTool],\n  llm: OpenAIProvider.groq({ model: 'llama-3.3-70b-versatile' })  // reads GROQ_API_KEY\n})\n```\n\nFor other compatible vendors pass `baseURL` and `vendor` directly. See [Providers](./docs/providers.md) for the full list.\n\n## Examples\n\n- [**Coder**](https://github.com/anetrebskii/tuplet/tree/main/examples/coder) — AI software developer that creates projects from scratch using built-in shell, workspace, planning, and task tracking. Zero custom tools.\n- [**Eating Consultant**](https://github.com/anetrebskii/tuplet/tree/main/examples/eating-consultant) — Nutrition assistant with custom tools (OpenFoodFacts API), sub-agents (meal planner), workspace persistence, and run recording.\n\n## Documentation\n\n- [Quick Start](https://github.com/anetrebskii/tuplet/blob/main/docs/README.md)\n- [Tools](https://github.com/anetrebskii/tuplet/blob/main/docs/tools.md)\n- [MCP Servers](https://github.com/anetrebskii/tuplet/blob/main/docs/mcp.md)\n- [Skills](https://github.com/anetrebskii/tuplet/blob/main/docs/skills.md)\n- [Sub-Agents](https://github.com/anetrebskii/tuplet/blob/main/docs/sub-agents.md)\n- [Workspace](https://github.com/anetrebskii/tuplet/blob/main/docs/workspace.md)\n- [URL Allowlisting](https://github.com/anetrebskii/tuplet/blob/main/docs/url-allowlist.md)\n- [Secrets](https://github.com/anetrebskii/tuplet/blob/main/docs/secrets.md)\n- [Providers](https://github.com/anetrebskii/tuplet/blob/main/docs/providers.md)\n- [History](https://github.com/anetrebskii/tuplet/blob/main/docs/history.md)\n- [Interactive Questions](https://github.com/anetrebskii/tuplet/blob/main/docs/interactive.md)\n- [Interruption](https://github.com/anetrebskii/tuplet/blob/main/docs/interruption.md)\n- [Plan Mode](https://github.com/anetrebskii/tuplet/blob/main/docs/plan-mode.md)\n- [Task Management](https://github.com/anetrebskii/tuplet/blob/main/docs/task-management.md)\n- [Progress Status](https://github.com/anetrebskii/tuplet/blob/main/docs/progress-status.md)\n- [Logger](https://github.com/anetrebskii/tuplet/blob/main/docs/logger.md)\n- [Tracing](https://github.com/anetrebskii/tuplet/blob/main/docs/tracing.md)\n- [Run Recording](https://github.com/anetrebskii/tuplet/blob/main/docs/run-recording.md)\n- [Prompt Sections & History Injections](https://github.com/anetrebskii/tuplet/blob/main/docs/prompt-sections.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}