{"_id":"@voidrun/sdk","_rev":"33-e42b124e6d5c4964348691eea4108714","name":"@voidrun/sdk","dist-tags":{"latest":"0.5.0"},"versions":{"0.0.1":{"name":"@voidrun/sdk","version":"0.0.1","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.1","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"47938bca43b7a9d4ca16e9361f65bd59f6c71ea5","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.1.tgz","fileCount":209,"integrity":"sha512-NGsHy2T6i4SK2bJRo/radreal7LpWBpOwAkE6tF8SdkxDMRpMOaboSu3dRrCQ0jqx555H34WWB/q4QbnJ1FTxQ==","signatures":[{"sig":"MEUCIQD3psxu/yCMLBCOrho7DR9A9ysn/c4E1EOwYn38W36cIgIgX8tKovizVjpWtOe44WKgensyYR5NtrnHVB2tsBs0Iz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"229413c4bc24cc80c1da58b7199ea8f1e8657455","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.1_1769451770318_0.5149728147160961","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@voidrun/sdk","version":"0.0.9","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.9","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"228b38fcf52ab746631b43441a0886ef5eca0246","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.9.tgz","fileCount":257,"integrity":"sha512-iSn7Oq6niDQNopZ7ptmEb5q1sQ50EH+GwoHcE8+gxO9hW1K0HsImw9oadQslxPhyNRxZxpNmkkDBnPNuon12og==","signatures":[{"sig":"MEUCIHv1JoesB9EKn7Diil9kT+mhtCRR+8HpTW7g/0wb0OMNAiEA2proBVvvXQZfHcYZs8r53/mZB+Al7JRz166/CGUzeRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556924},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm publish --access public","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.9_1769585436164_0.2864173251844393","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@voidrun/sdk","version":"0.0.10","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.10","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"1ecfb960792d560660e14474fba5ab23ba5d4d56","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.10.tgz","fileCount":257,"integrity":"sha512-P3UPC2nzXMpOEJGYIBmbBsLtU1bPtyYHjtRXtDf9382LrdNzGp4+I84SS/evRNeQXnHeZsuZHf8gzlUblcHFHw==","signatures":[{"sig":"MEUCIQCz/EWg+Yr2gJOMBrLW0/MN5hJ4EBv/tpsl87uE4TkXowIgctgIpNrNZ8ivHElRnyiCC+2oXH1KuWpKs0FinQ5L9yQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556925},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm publish --access public","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.10_1769585551745_0.703841080973556","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@voidrun/sdk","version":"0.0.11","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.11","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"345ac932ea4bc89bf5d6eb3ebd381a816b329a9d","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.11.tgz","fileCount":257,"integrity":"sha512-X9UJuG2bI8y56VdwanSzcUSD2xRXbqwmS+sQVIMCIrm3LFEil00vzm6F5BEF+yUym7v1//1M74nHD7/O/06Pag==","signatures":[{"sig":"MEYCIQCmLKuQ+KreRC8A3avxu5ba7aqMX4qhWUJhthi5Ei/drgIhAMSrvxM3w7hv2ewWBYYoD52vZyYJI3bWV968IPs87V50","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm publish --access public"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.11_1769585639647_0.9157045106459678","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@voidrun/sdk","version":"0.0.12","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.12","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"1be96cb86ef15ec0674a3e757f46da93bb37ecce","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.12.tgz","fileCount":257,"integrity":"sha512-xB4wetbUYCcgSkvSZOgoylP9tMEyIHKwmLLd8v0w+JHJdjpv65IrkMOWpgx2XI7NFbPXtYPQQKDvbA+VVKNjVw==","signatures":[{"sig":"MEUCIHYDuH7I0SyUm0t8yWwGx43MlVKphIlKN/zEAX+zRbsrAiEAqO7ONZJw13d/cA+ch1QqNmcI9oSlZshje5MClRXelOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556879},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.12_1769585687605_0.28970304964967486","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@voidrun/sdk","version":"0.0.13","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.13","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"6e3146ddc8cbb204a176659052eeab329f08fa8b","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.13.tgz","fileCount":258,"integrity":"sha512-XbfXlq9EAcmW9B2QXiK+N8kHHayWOYLwSU+vrRdbDOo5F4kTjIu5EBepbDx8p0rO5djFfZldIsInXS/MmYwcoA==","signatures":[{"sig":"MEUCIE+CotuZGNNB5q8zutMi0KOlxA8dQY/+0L9D8WGnCA79AiEAnn4ueFCD612sC5tZ96M6bx2xfx3v8JnlaREgzHpwS9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573588},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.13_1769594094749_0.6853114938933957","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@voidrun/sdk","version":"0.0.14","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.14","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"fc1906d48d6fb57e6dac85837c7f38c71ff6339d","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.14.tgz","fileCount":258,"integrity":"sha512-YfTAgEbUDifJwCasT1J5ZfVxpeHXem3pwb4shAUmJO3O73HRbyK7F4yRLRZOq0udLTsruB6Q2E+86a9P/zilCQ==","signatures":[{"sig":"MEQCIE9SbtrUjPdac/dTZk5boHftz2tWddLvCEBqZdh9mj35AiBxOA40gLveoEkc98D2WI68+UAFLAKmDFdFr4jlt/S94A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573588},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.14_1769594505555_0.32583321194067416","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@voidrun/sdk","version":"0.0.15","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.15","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"a41dd684e65cdabf7aaaa804ee6c37828ec8f74b","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.15.tgz","fileCount":258,"integrity":"sha512-Sj9eZ7q4269b1grxZ7iDBQkPegf+3NMoOSJoJnhLSMXtkXemcv06fn0tXGOg8Y9q0OALVheRTz0J40IXNyjGXg==","signatures":[{"sig":"MEQCIBdpWYytthRU6keKdoU4+Gov8kPae2SX2pPXOVm9PraJAiAI+IJh88HvlbLpji1GMBQJBTizGrbxwsJu3cW3E9wa1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573469},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1d46fe6af254b6fbc920d205e404bbab01f3d0a5","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.15_1769598523974_0.6209297242379688","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@voidrun/sdk","version":"0.0.17","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.17","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"2437c97a162352e98aa9bb5daf661962ac815278","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.17.tgz","fileCount":262,"integrity":"sha512-dSdwSOY258G1w3puQQOz507T7cVZBnQw2YNZMu0FRPbogU8YC3cZgwo+hyjeewB6zIv95B7Sru24WwR6mFn3Mw==","signatures":[{"sig":"MEUCIF5CpiuOcLSASavZT7TorlVwPmIG9kTJPqZ25UIviGbuAiEA2BNXtvxDa0RzuddlQUVCqTZCNdwJ9L4m/cuyGkkfuRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602650},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0ed2b6a093891cb6db6fa0dd95a375ce5f9badb5","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.17_1769947744667_0.411138689193866","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@voidrun/sdk","version":"0.0.18","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.18","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"cfbd2a3b1fa1d8e7b451b4e3bd4b79695c4f5499","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.18.tgz","fileCount":294,"integrity":"sha512-JQiu9kM8rUnTSOpmlKj4tFGMdMTBcXiYfBSgWkh+cAxi8bKXzWL3LQQW0hmCUKzqnX18/QYq5mTESkXpUWjE4A==","signatures":[{"sig":"MEUCIQCGXKIuou4V4lpTnbG/OzhtrGM+D5dWF/buT8H/+hHfiQIgKwkYuHovgMNPG+EDwddh2BHXVqgwzDg7AXdqUHiCwZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681925},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm version patch && npm publish --access public","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.18_1770176479583_0.5308470846452809","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@voidrun/sdk","version":"0.0.19","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.19","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"11725b436cb1bbb4a8b642d2f1b4381a3330d501","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.19.tgz","fileCount":294,"integrity":"sha512-FA5zin2Jh3WEJtmhYAadpVGl1iFo7lMhUcARgYgNJH2jzsGH8q4j3EBPVKBJdRKMShp6B7Pq6oTpENNy96ZQIA==","signatures":[{"sig":"MEUCIAznFIvp8AcVodcasy+D2nlZVvq5REpQmzdhVv3dpieBAiEAy87rDZvFy64PJi52fbCU26MH0AGtwOjByVMWrLVBd2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681925},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm version patch && npm publish --access public","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.19_1770176485105_0.11967070183853057","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@voidrun/sdk","version":"0.0.20","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.20","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"ca77dfd44c1ea511781358cb721a7bc480693b58","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.20.tgz","fileCount":294,"integrity":"sha512-ZE/yYIcBINUkUN8TUFzlzsWEAu3SxH2RFZv4TDYKU/QI4EmHhiTD71eaFbRCnYrD32wVpItYUqGhVwVWbSnQmA==","signatures":[{"sig":"MEUCIQC+8R48QfKO6iNzssRO0NMPBCiVRcHSHhi/IJOD/lTGQwIgf+UiC7sMJpY3yE36hEHnkXxcYrbUtgVm+5VDc0u3v/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681925},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"tsc","clean":"rm -rf dist","publish":"npm version patch && npm publish --access public","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.20_1770176490906_0.8487804718105265","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@voidrun/sdk","version":"0.0.22","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.22","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"066a7338d41713b55b3471debf506e649f4aa859","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.22.tgz","fileCount":294,"integrity":"sha512-+mnCu/bwkavfeIaHaXMtT2wzngSVyjQfjoH7zppHF36tQQ4eNI5LR5MI+BH4UzqhmfFjcP6PT/ZoT2kMZJzuFA==","signatures":[{"sig":"MEYCIQCepJDJiqzhicTzbtFqq5yoKUt1xs6y8jRqaFuOrQ1FvwIhAL3/SgzcisHLvZPsbzbqY2i7EmprkXcC3eg0Sccr438E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681879},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.22_1770176648247_0.06615261069956802","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@voidrun/sdk","version":"0.0.24","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.24","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"475b4de6b6bfb042265ad3befb8aaa1ead3e997d","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.24.tgz","fileCount":586,"integrity":"sha512-OJozmrzwXK21qk9RlIIclMelwu+0s3AJP3qmpLpwlmmNjbtqp+iQYViAhyxyUeqv+PE7g4t58BUwq8frFQ3qJg==","signatures":[{"sig":"MEUCIG9aAwFYqcFAA/bf7DGScHhykuBQcOzB+ms9MKWExPiIAiEAzojZ7J75lpEZs0cVLbtqogrA9RP97eoKvE8sxy18cBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1386826},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.24_1770179187431_0.04471269432536307","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@voidrun/sdk","version":"0.0.25","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.25","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"f231126d74f656dd9e3629c65f005f906f2f056e","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.25.tgz","fileCount":586,"integrity":"sha512-2o80a+P6Ix+JYuvWxyTACkvbR/WT7UWtmXO0+SwL4p4X+UOUXcP5HPilyqQj3fyc6AI76AL/slalhrz4Vdplaw==","signatures":[{"sig":"MEUCICFknvOGRn06DqallxT1K8ahnX8WtghJ7yfbXehwLR0JAiEAhUb2npinE5jzXuUBM/m9NZqdt9GqP85IQ3op4zmyvN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1386826},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"267cc1167bf224bfe6abec5ea6fc4d24db6836c0","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.6.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.25_1770179280069_0.47327180677780833","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@voidrun/sdk","version":"0.0.26","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.26","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"4e6e0e2285edd33920a4b5dba8316e9d6e150867","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.26.tgz","fileCount":650,"integrity":"sha512-79rVAK9CSTRgrhKT1d2E67AaRutIQg+milTHV3zh8KzEmCzJcXLwdNxCxufdjuXTkg51uHxIx+nobDxScM63xQ==","signatures":[{"sig":"MEQCIF2faeX+LZymICBOIT/3eHWWz/nJG4OVH36cnLj66lhSAiAX/ymdav3zHst9UIZB3XggljkCIObON3ZsimWveqqBOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518629},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"02b56864080a804dafee944997c77b34b01d30c9","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"11.8.0","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.26_1772474313928_0.6044124446024972","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@voidrun/sdk","version":"0.0.29","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.29","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"c8a5041898915faf6f4e89d257c5383b7e2e38a4","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.29.tgz","fileCount":650,"integrity":"sha512-5xC5KweD5SSQDnGUhqEMLTISEX4rbdO7Ux6GZpAFnFmJYqflN7EOo/RyVtKaFi6+MO9qNQf1Z0V42wvqo95pig==","signatures":[{"sig":"MEUCIA8ZQ+egbh7Pj+ivtDgyolCMdmuQ1gp1bD0ZkH2dNwKMAiEA++Lbb8j2QiSNiyn7Ts5Dq0QwodpU5FIqx4y0y+XCrY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518643},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"541de63fcc6f62ea91bd65a2b875f6e34e606598","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.29_1772476457746_0.3027478645139525","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@voidrun/sdk","version":"0.0.30","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.30","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"66e618f22ad806934940b5ec6bb59ae1ef7560af","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.30.tgz","fileCount":650,"integrity":"sha512-jHD1LKF1SsD3eBzkBZNLi4sE1BK3f2B/vhDjfFlenRnf9GSxGBy91LeOMVKrsWJm/b9bUDiGe6Kl85K5KKlcpQ==","signatures":[{"sig":"MEQCIF60LpfbdK39PXa0NvjbECX5nCj1uNhLEAoNU+PbZZEpAiAov5qLoASWql48IbMxCwKVQqNz43LdXcPe5YcxcWoUxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518160},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"e63f53569bda9bae74481e3fa5f6d7470e479bc1","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.30_1772476708781_0.49130526268888275","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@voidrun/sdk","version":"0.0.31","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.31","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"c2f4854850aaddd5fe52bf2435f7a86012a64436","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.31.tgz","fileCount":650,"integrity":"sha512-zkq4mY3x0XoO+epkHDEv+sS7XingvJGLgAiBeyat7t6zXadcC0BrJPHe8nERkh49TY0/rhEfeXKj7Z08HLusNA==","signatures":[{"sig":"MEQCIAKEugWwO/HXFfhTGSU6xUPSuEBUxj6vSYm2W0Ey56boAiAGuPpLdXd/CDc2dlnLC0K6K3+Zcd9uwc4tWYhX50GFBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518135},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"9b6f55e96b55022c93e986dc07dc0c3661f916bb","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.31_1772478899936_0.31663868562573727","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@voidrun/sdk","version":"0.0.32","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.32","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"bc9778b8607e36ff2d77b5df48a28966feca4867","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.32.tgz","fileCount":650,"integrity":"sha512-eK8wAiL9Jd4wtMPiPN/h54VbSVIZwc8rBZxnJUgwewMI/SLtxen0uT2f3+Qb2VPICKBr4MV6U6axAbsa/IXGpQ==","signatures":[{"sig":"MEQCIE0OYPyUgO1oXSWbMJ8GOLATzrvmJJnH/krKPaen+84gAiBkMFpDtB1o0apDNaeNpGaBPL37WXnwQZSnXIlC4iLmXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518015},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"57838de7cc2382d40e13c9574ea6631b9e3e6c68","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.32_1772516353588_0.53477496514753","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@voidrun/sdk","version":"0.0.33","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.33","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"61b344a5db5320173acdacfcdaac4fc44bca7bfa","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.33.tgz","fileCount":626,"integrity":"sha512-lQMSpzwSex3HD6shW9SGQ48SYhbD/RZYY7jbV59jPCtyiFMVvatJNdRYNJ8xUjuEuvHNkWLZEzDcBocS6vVPsA==","signatures":[{"sig":"MEYCIQC7enHjOOHMhuTnDiC0G0rawTaYyAkW5IUDyVcsvhrNVQIhANG46LQECxR0AdgsxM/wuE2iuj3vjBsX/ez0WtsvFosw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467229},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"2a9af6e4d328e3b0bfb19773e2a00f9c16811d56","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.33_1773662454179_0.2335866002410647","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@voidrun/sdk","version":"0.0.34","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.34","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"d67ccc2d42550e34a5b1fd0990fa35db0ae7848e","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.34.tgz","fileCount":626,"integrity":"sha512-8hSuZ94W3O9/F6TMOfUpQdap+tnW/GAMJFB7zIf/4QicBQLRa8IrvdcD+/dym0XiDAPOSI922tK/EQEMsSht9A==","signatures":[{"sig":"MEUCIQC4CHv7lriVYU+0d0kU9Ie5gVFR/G4Rsm3JKypdHas2RQIgRN27iY7zspq7oo0eTp644d2PkPFgJhW7B+te8rZigHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467975},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"282aee6eed1eadc124b30b7ff082501292b5bdfb","scripts":{"build":"npm run build:esm && npm run build:cjs","clean":"rm -rf dist","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.34_1774190893712_0.6140841791442313","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@voidrun/sdk","version":"0.0.35","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.35","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"86e704c2a4d0bed05249b285fd940a886894b4bc","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.35.tgz","fileCount":626,"integrity":"sha512-vZxxUSu7laI89Z/WWyy54M6DaEeP00rxfktMz7Q/IjY4kEHkjcUFb2h0Qw3KgWx2yTITM8BeOz7tw0WfV+zz5w==","signatures":[{"sig":"MEUCIQDPVZIAN1huCLXQdtT/xzp1afWrrx3XEs3rsVdlnt13nQIgCKbWH41wqylWUYlj3Q4aqFlq1j/onjGvVdo8vwd/L00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1468996},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"cb89557c220d134813b0da3ff8b9b089df431bd4","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.35_1774383473190_0.7978817051065032","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@voidrun/sdk","version":"0.0.36","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.36","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"34ae998f774881304d903c494a50bc39413066d5","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.36.tgz","fileCount":626,"integrity":"sha512-vFKC1rdKNNfvKrb0xrxVFZb3dDiR/h9AFH16t5bStNZ16gHBF+iMxZ7iNkBO9nuC2iHR3hArTPNzMpw4Olo6Vg==","signatures":[{"sig":"MEUCIQDqKYHeU8tQ7TatshqeEaKXeS1AZMu5WH0EZg3MUxO2SgIgbwTvbNNGFfoi4yGkBIOxGLHcSWJksAXLxwSiMuJxe7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1469002},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"17349e6739325f57a5c6c4389b46685d80a181c9","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.36_1774800011927_0.4659367977809816","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"@voidrun/sdk","version":"0.0.37","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.37","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"e9ce676e7f723961e1cd640b7d9733b7733699b1","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.37.tgz","fileCount":626,"integrity":"sha512-bm8kk2rL7bTZiRnnP9uIuXDf9U8ccbCL6c6FHGu8l+wxLidzqcJ6Q/t+NUAU0G8/MsHbf3C3knoStMZlKT0Lhw==","signatures":[{"sig":"MEUCIHXW/eao4DC0BpGjgRa/LqPCvlvHy82iZ2eot7qvP84/AiEAjlOsjJ5h5Uwc1OfAaOdGBW9DS4ZydapTUz5GjKLGPp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1469008},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"d017c8ec40eaf8ce6daf7e2ed2fbe07ff57d404c","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.37_1774800769105_0.19994558713391175","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"@voidrun/sdk","version":"0.0.38","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.38","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"1b7f222dbb2af1ed3d3bfc09cf77e9f9b43670e5","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.38.tgz","fileCount":626,"integrity":"sha512-MI5ZGmU1awt5z0TTxVz6xKtG7WXY3YM4L8+Q3u4HDTv57GLTtDPsJJrrYpoU/rV9Cxn98ROZu6jTa1R4N2FftA==","signatures":[{"sig":"MEQCIEEKqcPNuJa4lMby4kx/e717gpre1vKAgMaadhdBHrkYAiBpkce9hbb7lG96av4Dr43ivNDHzO3HSMiWAy3Zpe6Cxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1471294},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"0d7a81bb025e204c66951e0d9c36039908bf50d1","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.38_1775623914423_0.28078387091918344","host":"s3://npm-registry-packages-npm-production"}},"0.0.39":{"name":"@voidrun/sdk","version":"0.0.39","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.39","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"77d3ad80e139764de8d48db5c3e3e009b484e7ec","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.39.tgz","fileCount":626,"integrity":"sha512-ltPVCzYmL4pKeMyzc0TYHsIKSK7eEOxSoE/FQJmnomKNW6USuzLtF7vUMblG6e9+rqMBMeoURdPs+wYq0rrxEw==","signatures":[{"sig":"MEUCIQDd9FATE2NKvZf/d7CCe0NDf2Jv4Lk38snEnf17rcY7twIgStAqLsUmxQZrF0eWhmflmn8GExCdisbjANG6YMqG7ss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1474239},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"406f3f1bc2501e27e5e4634235bb59d69e496878","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.39_1775625734236_0.2944015195025991","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"@voidrun/sdk","version":"0.0.40","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.0.40","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"42c6a0a5c45ec976c9c623fd57acb2a55bbd3750","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.0.40.tgz","fileCount":626,"integrity":"sha512-WU/DWLPgYp4ir6CWVG61fsGmzY5BFkOTJ++DiGJB9x8lkAHJ3RbeLUSmX8lFRvE9aEbt+zW7MPnTMMzPYAUYsA==","signatures":[{"sig":"MEUCIDbwkoX23F53uG+tymigGB6Uxr0VLUnw8Kd7wdmEIRdGAiEAlWOjzWg/acwMoiCi0RAdCc9msM36Ql9wJ008F9CGPfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1474376},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"7aee7cbda1d7960596d50199bf060cd6cfc1c5ac","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","prepublishOnly":"npm run clean && npm run build && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.40_1775649664805_0.31774913374013947","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@voidrun/sdk","version":"0.3.0","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.3.0","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"c5450bdad5a49c0bd4c43708322d5a3e4870bf8e","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.3.0.tgz","fileCount":626,"integrity":"sha512-XUcpWm7+yJr9jsnYlaeCjWnNgpAXWalJectSHqduGexqrJTKIrphNSOa8EpFYh4vvEz0wJSnEh3s2zZSNLMi4g==","signatures":[{"sig":"MEYCIQC9eui3lfAHcqGnUyKCmX5W72TjhdS6/8v1/wzM/xhkMwIhAPGPbqR4B/qMafWiVPuehOFA1y/SLl9NvO0KvJ238kx5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483212},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"70e4e09a90d9d320260341deedffa76849070faa","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","test:unit":"tsx --test test/*.test.ts","examples:all":"bash scripts/run_all_examples.sh","prepublishOnly":"npm run clean && npm run build && npm run test:unit && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","mongodb":"^7.2.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1783881892495_0.7274553848988647","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@voidrun/sdk","version":"0.4.0","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.4.0","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"f9f58c4cc06ffc96ccb2998af71570664ff2377e","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.4.0.tgz","fileCount":626,"integrity":"sha512-jZ/E15fEwzmhMRbMnmejejVtQXHHwclZEJLsr4cubiKwXVzqnNvO2LmTA0U3W0sqOpeSHDS+Hna769IkQYv6bw==","signatures":[{"sig":"MEQCIGFIbHUfy5P4FhX5S9McSVVveIMN3ulvwy9CwoJaVLzyAiBRNTnagru5ccSwvctDUaE0EdLpnJVxhNvk/Hv1j8sz2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1576758},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"3c6cc209e238d452481e5fdca1ebae08096cc84e","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","test:unit":"tsx --test test/*.test.ts","examples:all":"bash scripts/run_all_examples.sh","prepublishOnly":"npm run clean && npm run build && npm run test:unit && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","mongodb":"^7.2.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1784358694794_0.4135617579380966","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@voidrun/sdk","version":"0.4.1","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.4.1","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"8435650ea0fbc281b84f57dfbee80a05b2b9e696","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.4.1.tgz","fileCount":626,"integrity":"sha512-CG0vP5j2xHDFUn5zu2Y/KjKb3uY/HqrwUAHpmse74wnVWAk7S/JnskX82oPH5AqX7L7FvaROHr9dEehQWGn7pQ==","signatures":[{"sig":"MEYCIQCjTvzXAJvJGrBXGGQnA1i0YQc6RKb4kmYXI6LykZB5UgIhAIBYgi5OFOKUgMX7mEi8ZrC8ns0e+lDvn1Oq47UcknIf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1578052},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"73c0f48669a784957db4891dda71f5239178e04e","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","test:unit":"tsx --test test/*.test.ts","examples:all":"bash scripts/run_all_examples.sh","prepublishOnly":"npm run clean && npm run build && npm run test:unit && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","mongodb":"^7.2.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.1_1784466150244_0.05300946400333362","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@voidrun/sdk","version":"0.4.2","keywords":[],"author":{"name":"VoidRun"},"license":"ISC","_id":"@voidrun/sdk@0.4.2","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"dist":{"shasum":"44ad8adaaa0ec714750899d2343bd1e447bddcec","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.4.2.tgz","fileCount":626,"integrity":"sha512-DImNkupakBEDOAPJzythqx8yGFjhs+mpv6XlGGRpzO4Hjty6T84HMSBSm/+ZcIff7WJ6Nkpm6ZCxaxREtBiqcw==","signatures":[{"sig":"MEYCIQCST6zDJ0NNBk41yu77P/pfJPdrLqT0dV6ej7YOkVzsNQIhANkbKuwv+mnxxdfIKIYEBbVVaLGmt05PWqBtqYd30RdI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1578037},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"6c69afe648e6e5f343ef6b242e5776edcabd2d6a","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","test:unit":"tsx --test test/*.test.ts","examples:all":"bash scripts/run_all_examples.sh","prepublishOnly":"npm run clean && npm run build && npm run test:unit && npm version patch"},"_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","mongodb":"^7.2.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.2_1788692695238_0.1893463813750953","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"_id":"@voidrun/sdk@0.5.0","dist":{"shasum":"03e57273ced5425cf975906ba0bfc7201b3ffa0d","tarball":"https://registry.npmjs.org/@voidrun/sdk/-/sdk-0.5.0.tgz","fileCount":642,"integrity":"sha512-LefSsAsBfcEWmROuC6F9kzha6fe3MPvjZ/wpTHPbAfFvTySL9Mg63jtaznPHiFchtjTxYf8JzsCPuomMHvzpsQ==","signatures":[{"sig":"MEYCIQDBOg6r4UlyDDwGBJBEdnsvUq3SwsLRJl2aUdiunSIg2AIhAJhgV7K+JE+LS6wKAmaah08EgWiWZlVUsQFOs2yKFl/1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDgRR4MvaaaEGsQg7wgSIun2a6OcGxSB53BNDYRKqZHzwIhAOjgGjx1lBSO6H6hOlgznAH6vNWv1UZ7xoNr0mxdiHh/"}],"unpackedSize":1607457},"main":"./dist/cjs/index.cjs","name":"@voidrun/sdk","type":"module","types":"./dist/esm/index.d.ts","author":{"name":"VoidRun"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.cjs"}}},"gitHead":"94f60b94829d7836bd8214fe8ac617acb2941d99","license":"ISC","scripts":{"lint":"biome lint .","build":"npm run build:esm && npm run build:cjs","check":"biome check --write .","clean":"rm -rf dist","format":"biome format --write .","prepare":"husky","build:cjs":"tsc --module commonjs --outDir dist/cjs --declaration --declarationDir dist/cjs && node scripts/rename-cjs.cjs","build:esm":"tsc && node scripts/fix-esm-imports.cjs","test:unit":"tsx --test test/*.test.ts","examples:all":"bash scripts/run_all_examples.sh","prepublishOnly":"npm run clean && npm run build && npm run test:unit && npm version patch"},"version":"0.5.0","_npmUser":{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"},"keywords":[],"_npmVersion":"10.8.2","description":"VoidRun AI Sandbox SDK","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,json}":["biome check --write --no-errors-on-unmatched"]},"maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","mongodb":"^7.2.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.5.0_1789542634153_0.6264536665156153"}}},"time":{"created":"2026-01-26T18:22:50.207Z","modified":"2026-09-16T07:10:34.588Z","0.0.1":"2026-01-26T18:22:50.499Z","0.0.9":"2026-01-28T07:30:36.327Z","0.0.10":"2026-01-28T07:32:31.890Z","0.0.11":"2026-01-28T07:33:59.795Z","0.0.12":"2026-01-28T07:34:47.753Z","0.0.13":"2026-01-28T09:54:54.889Z","0.0.14":"2026-01-28T10:01:45.746Z","0.0.15":"2026-01-28T11:08:44.161Z","0.0.17":"2026-02-01T12:09:04.862Z","0.0.18":"2026-02-04T03:41:19.748Z","0.0.19":"2026-02-04T03:41:25.265Z","0.0.20":"2026-02-04T03:41:31.056Z","0.0.22":"2026-02-04T03:44:08.450Z","0.0.24":"2026-02-04T04:26:27.640Z","0.0.25":"2026-02-04T04:28:00.288Z","0.0.26":"2026-03-02T17:58:34.104Z","0.0.29":"2026-03-02T18:34:18.036Z","0.0.30":"2026-03-02T18:38:29.012Z","0.0.31":"2026-03-02T19:15:00.240Z","0.0.32":"2026-03-03T05:39:13.807Z","0.0.33":"2026-03-16T12:00:54.382Z","0.0.34":"2026-03-22T14:48:13.963Z","0.0.35":"2026-03-24T20:17:53.442Z","0.0.36":"2026-03-29T16:00:12.162Z","0.0.37":"2026-03-29T16:12:49.297Z","0.0.38":"2026-04-08T04:51:54.588Z","0.0.39":"2026-04-08T05:22:14.506Z","0.0.40":"2026-04-08T12:01:04.987Z","0.3.0":"2026-07-12T18:44:52.662Z","0.4.0":"2026-07-18T07:11:34.957Z","0.4.1":"2026-07-19T13:02:30.422Z","0.4.2":"2026-09-06T11:04:55.397Z","0.5.0":"2026-09-16T07:10:34.274Z"},"author":{"name":"VoidRun"},"license":"ISC","keywords":[],"description":"VoidRun AI Sandbox SDK","maintainers":[{"name":"saggiyogesh","email":"saggiyogesh@gmail.com"}],"readme":"# VoidRun TypeScript SDK\n\nA powerful, type-safe SDK for interacting with VoidRun AI Sandboxes. Execute code, manage files, watch file changes, and interact with pseudo-terminals in isolated environments.\n\nThe public surface is aligned with the **[VoidRun Python SDK](https://pypi.org/project/voidrun/)** (`createSandbox`, `listSandboxes`, `remove`, `runCode`, shared defaults).\n\n[![npm version](https://img.shields.io/npm/v/@voidrun/sdk)](https://www.npmjs.com/package/@voidrun/sdk)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)\n\n## Table of contents\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Quick start](#quick-start)\n- [Core concepts](#core-concepts)\n- [Code execution](#code-execution)\n- [Code interpreter](#code-interpreter)\n- [Background commands](#background-commands)\n- [File operations](#file-operations)\n- [File watching](#file-watching)\n- [Pseudo-terminal (PTY)](#pseudo-terminal-pty)\n- [API reference](#api-reference)\n- [Examples](#examples)\n- [Error handling](#error-handling)\n- [Testing and examples runner](#testing-and-examples-runner)\n- [Building from source](#building-from-source)\n- [Publishing](#publishing)\n- [Troubleshooting](#troubleshooting)\n\n## Features\n\n- 🏗️ **Sandbox Management** - Create, list, start, stop, pause, resume, and remove sandboxes\n- 🏷️ **Sandbox Labels** - Attach immutable labels at creation and filter lists with AND semantics\n- 🚀 **Code Execution** - Synchronous `exec` (no `background` flag) and optional SSE streaming; use **Background Commands** for PIDs\n- 📁 **File Operations** - Create, read, delete, compress, and extract files\n- 👀 **File Watching** - Monitor file changes in real-time via WebSocket\n- 💻 **Pseudo-Terminal (PTY)** - Interactive terminal sessions (ephemeral & persistent)\n- 🧠 **Code Interpreter** - Easy multi-language code execution (Python, JavaScript, Bash)\n- ⚡ **Background Commands** - Run, list, kill, and attach to background processes\n- 🔐 **Type-Safe** - Full TypeScript support with generated types from OpenAPI\n- 🎯 **Async/await** - Promise-based API throughout\n\n## Requirements\n\n- **Node.js** 18+ recommended (ESM package; Node 20+ for `tsx` examples)\n- TypeScript 5.x when compiling from source\n\n## Installation\n\n```bash\nnpm install @voidrun/sdk\n```\n\nOr with yarn:\n\n```bash\nyarn add @voidrun/sdk\n```\n\n## Configuration\n\n`VoidRun` requires an **API key**. On the hosted platform the **base URL** defaults to **`BASE_PATH`** (see `src/api-client/runtime.ts`: `https://api.void-run.com/api` without a trailing slash). Set **`VR_API_URL`** or pass **`baseUrl`** only when you target a **self-hosted** API.\n\n```typescript\nimport { VoidRun } from \"@voidrun/sdk\";\n\nconst vr = new VoidRun({\n  apiKey: process.env.VR_API_KEY!, // or pass a string literal\n});\n```\n\n| Environment variable | Purpose |\n|--------------------|---------|\n| `VR_API_KEY` | API key when not passed to the constructor. |\n| `VR_API_URL` | *(Self-hosted only.)* Overrides the packaged default API base URL. |\n\n**`createSandbox` defaults** (when you omit fields) match the Python SDK: image `code`, **1** CPU, **1024** MB memory.\n\nFor **self-hosted** VoidRun, set **`VR_API_URL`** (or **`baseUrl`**) to your instance’s API root (including `/api` if that is how your server is mounted).\n\n## Quick start\n\n### Basic usage\n\n```typescript\nimport { VoidRun } from \"@voidrun/sdk\";\n\nconst vr = new VoidRun({\n  apiKey: \"your-api-key-here\",\n});\n\nconst sandbox = await vr.createSandbox({});\n\n// Exec returns ExecResponse: stdout/stderr/exitCode live on .data (ExecResponseData)\nconst result = await sandbox.exec({ command: 'echo \"Hello from VoidRun\"' });\nconsole.log(result.data?.stdout);\n\nawait sandbox.remove();\n```\n\n## Core concepts\n\n### Sandboxes\n\nAn isolated environment where you can execute code, manage files, and run terminals.\n\n```typescript\n// Create a sandbox with options\nconst sandbox = await vr.createSandbox({\n  name: \"my-sandbox\",       // Optional: Sandbox name\n  mem: 1024,                // Memory in MB (optional, has defaults)\n  cpu: 1,                   // CPU cores (optional, has defaults)\n  image: \"code\",            // Optional: Image name. Common hosted values include code, docker-lite, max, and docker\n  envVars: {                // Optional: Environment variables\n    DEBUG: 'true',\n    LOG_LEVEL: 'info'\n  },\n  labels: {                 // Optional: immutable key-value metadata\n    env: \"prod\",\n    team: \"api\"\n  },\n  publishPorts: [8080],     // Optional: expose ports as public URLs (set at create time only)\n});\n\n// Public URLs are only available for ports declared in publishPorts at creation\nconst urls = await sandbox.getPublicUrls();\nconst web = await sandbox.getPublicUrl(8080);\n\n// List sandboxes matching every supplied label\nconst { sandboxes, meta } = await vr.listSandboxes({\n  labels: { env: \"prod\", team: \"api\" }\n});\nconsole.log(`Total sandboxes: ${sandboxes.length}`);\n\n// Get a specific sandbox\nconst existingSandbox = await vr.getSandbox(sandboxId);\n\n// Sandbox lifecycle management\nawait sandbox.start();    // Boot stopped/error sandbox\nawait sandbox.sleep();    // Snapshot a running sandbox\nawait sandbox.wake();     // Restore a snapshotted sandbox\n// Aliases: stop/pause → sleep, resume → wake\nawait sandbox.pause();\nawait sandbox.resume();\n\n// Remove a sandbox\nawait sandbox.remove();\n```\n\nLabels are set only when the sandbox is created and cannot be changed later.\nEach sandbox supports at most **5** labels. Keys and values are each at most\n**20** characters. Keys use lowercase letters or numbers, may contain `-` or\n`_`, and must start and end with a letter or number. Keys and values cannot\ncontain `,` or `=`.\n\n`publishPorts` must also be provided at creation time to expose ports as public\nHTTPS URLs. Pass up to **4** ports (each `1–65535`, no duplicates); the created\nsandbox echoes them back on `sandbox.publishPorts`. Ports that are not published\nat creation are not reachable via `getPublicUrls()`.\n\n`listSandboxes({ labels })` matches sandboxes containing **all** supplied\nkey-value pairs. Sandboxes may contain additional labels.\n\n### Code execution\n\nExecute commands and capture output, errors, and exit codes.\n\nNon-streaming **`exec`** resolves to an **`ExecResponse`** from the OpenAPI client: use **`result.data`** for **`ExecResponseData`** (`stdout`, `stderr`, `exitCode`).\n\n**`sandbox.exec` is synchronous only** — it waits for the command to finish. **`exec` has no `background` option.** To start a long-running process and get a **PID**, use **`sandbox.commands.run`** (see [Background commands](#background-commands)).\n\n#### Synchronous execution\n\n```typescript\nconst result = await sandbox.exec({ command: \"ls -la /home\" });\n\nconsole.log(result.data?.stdout);   // standard output\nconsole.log(result.data?.stderr);   // standard error\nconsole.log(result.data?.exitCode); // exit code\n```\n\n#### Streaming execution (SSE)\n\nFor real-time output, provide streaming handlers:\n\n```typescript\nawait sandbox.exec({\n  command: \"seq 1 10 | while read i; do echo \\\"Line $i\\\"; sleep 1; done\"\n}, {\n  onStdout: (data) => console.log('stdout:', data),\n  onStderr: (data) => console.log('stderr:', data),\n  onExit: (result) => console.log('exit:', result),\n  onError: (error) => console.error('error:', error),\n  signal: abortController.signal // Optional: AbortSignal for cancellation\n});\n```\n\n#### Execution with options\n\n```typescript\nconst result = await sandbox.exec({\n  command: \"echo $MY_VAR && pwd\",\n  cwd: \"/tmp\",                    // Working directory\n  env: { MY_VAR: \"test_value\" },  // Environment variables\n  timeout: 30                      // Timeout in seconds\n});\n```\n\n### Code interpreter\n\nExecute code in multiple programming languages with a simple, intuitive API.\n\n```typescript\n// Execute Python code\nconst result = await sandbox.runCode('print(2 + 2)', { language: 'python' });\nconsole.log(result.stdout.trim());  // \"4\"\nconsole.log(result.success);        // true\n\n// Execute JavaScript code\nconst jsResult = await sandbox.runCode('console.log(\"Hello\")', { language: 'javascript' });\n\n// Execute with streaming output\nconst streamResult = await sandbox.runCode(`\n  for i in range(5):\n      print(f\"Iteration {i}\")\n`, {\n  language: 'python',\n  onStdout: (data) => console.log(data),\n  onStderr: (data) => console.error(data),\n});\n\n// Check execution result\nconsole.log(streamResult.exitCode);  // 0 for success\nconsole.log(streamResult.results);   // Parsed results\nconsole.log(streamResult.logs);      // { stdout: [...], stderr: [...] }\n```\n\n**Supported Languages:** `python`, `javascript`, `typescript`, `node`, `bash`, `sh`\n\n### Background commands\n\nRun long-running processes in the background and manage them.\n\n```typescript\n// Start a background process\nconst runResult = await sandbox.commands.run(\n  \"sleep 100 && echo 'Done'\",  // command\n  { DEBUG: 'true' },           // env (optional)\n  \"/tmp\",                      // cwd (optional)\n  0                            // timeout (0 = no timeout)\n);\nconsole.log(runResult.pid);     // Process ID\n\n// List all running processes\nconst listResult = await sandbox.commands.list();\nconsole.log(listResult.processes);  // Array of ProcessInfo\n\n// Attach to a process and stream output\nawait sandbox.commands.connect(runResult.pid, {\n  onStdout: (data) => console.log(data),\n  onStderr: (data) => console.error(data),\n  onExit: ({ exitCode }) => console.log('Process exited:', exitCode),\n});\n\n// Wait for a process to complete\nconst waitResult = await sandbox.commands.wait(runResult.pid);\nconsole.log(waitResult.exitCode);\n\n// Kill a running process\nconst killResult = await sandbox.commands.kill(runResult.pid);\nconsole.log(killResult.success);\n```\n\n### File operations\n\nCreate, read, update, and manage files in the sandbox.\n\n```typescript\n// Create a file\nawait sandbox.fs.createFile(\"/tmp/hello.txt\");\n\n// Upload content to file\nawait sandbox.fs.uploadFile(\"/tmp/hello.txt\", \"Hello, World!\");\n\n// Upload via stream\nconst stream = Readable.from([\"line 1\\n\", \"line 2\\n\"]);\nawait sandbox.fs.uploadFileStream(\"/tmp/streamed.txt\", Readable.toWeb(stream));\n\n// Read a file\nconst buffer = await sandbox.fs.downloadFile(\"/tmp/hello.txt\");\nconst content = buffer.toString();\n\n// Download as stream\nconst fileStream = await sandbox.fs.downloadFileStream(\"/tmp/hello.txt\");\nconst reader = fileStream.getReader();\nwhile (true) {\n  const { done, value } = await reader.read();\n  if (done) break;\n  console.log(new TextDecoder().decode(value));\n}\n\n// Delete a file\nawait sandbox.fs.deleteFile(\"/tmp/hello.txt\");\n\n// List directory\nconst result = await sandbox.fs.listFiles(\"/tmp\");\nconst files = result.data?.files;\n\n// Get file stats\nconst stats = await sandbox.fs.statFile(\"/tmp/hello.txt\");\n\n// Create directory\nawait sandbox.fs.createDirectory(\"/tmp/mydir\");\n\n// Move file\nawait sandbox.fs.moveFile(\"/tmp/file.txt\", \"/tmp/newfile.txt\");\n\n// Copy file\nawait sandbox.fs.copyFile(\"/tmp/file.txt\", \"/tmp/copy.txt\");\n\n// Change permissions\nawait sandbox.fs.changePermissions(\"/tmp/file.txt\", \"755\");\n\n// Head/Tail - read first or last lines\nconst head = await sandbox.fs.headTail(\"/tmp/file.txt\", { head: true, lines: 10 });\nconst tail = await sandbox.fs.headTail(\"/tmp/file.txt\", { head: false, lines: 10 });\n\n// Search files by pattern\nconst search = await sandbox.fs.searchFiles(\"/tmp\", \"*.txt\");\n\n// Get folder size\nconst size = await sandbox.fs.folderSize(\"/tmp\");\n\n// Compress files\nconst archive = await sandbox.fs.compressFile(\"/tmp\", \"tar.gz\");\nconsole.log(archive.archivePath || archive.data?.archivePath);\n\n// Extract archive\nawait sandbox.fs.extractArchive(\"/tmp/archive.tar.gz\", \"/tmp/extracted\");\n```\n\n### File watching\n\nMonitor file changes in real-time.\n\n```typescript\nconst watcher = await sandbox.fs.watch(\"/app\", {\n  recursive: true,\n  onEvent: (event) => {\n    console.log(`File changed: ${event.path} - ${event.type}`);\n  },\n  onError: (err) => {\n    console.error(\"Watch error:\", err);\n  },\n  onClose: () => {\n    console.log(\"Watcher closed\");\n  }\n});\n\n// Stop watching\nwatcher.close();\n```\n\n### Pseudo-terminal (PTY)\n\nInteractive terminal sessions with two modes:\n\n#### Ephemeral sessions (temporary)\n\n```typescript\n// No session management - temporary shell\nconst pty = await sandbox.pty.connect({\n  onData: (data) => {\n    process.stdout.write(data);\n  },\n  onError: (err) => {\n    console.error(\"PTY error:\", err);\n  },\n});\n\n// Send commands\npty.sendInput('echo \"Hello\"\\n');\npty.sendInput(\"pwd\\n\");\n\n// Close connection\npty.close();\n```\n\n#### Persistent sessions\n\n```typescript\n// Create a persistent session (CreatePTYSession200Response)\nconst response = await sandbox.pty.createSession();\nconst sessionId = response.data?.sessionId;\n\n// Connect to the session\nconst pty = await sandbox.pty.connect({\n  sessionId,\n  onData: (data) => {\n    process.stdout.write(data);\n  },\n});\n\n// Send commands\npty.sendInput('echo \"Hello\"\\n');\n\n// Close connection (session persists)\npty.close();\n\n// Reconnect later - session and output persist\nconst reconnected = await sandbox.pty.connect({\n  sessionId,\n  onData: (data) => {\n    process.stdout.write(data); // Includes buffered output\n  },\n});\n```\n\n#### Interactive commands\n\nRun commands with automatic prompt detection:\n\n```typescript\nconst pty = await sandbox.pty.connect({ sessionId });\n\nconst output = await pty.runCommand(\"ls -la\", {\n  timeout: 5000,\n  prompt: /[#$] $/, // Regex to detect shell prompt\n});\n\nconsole.log(\"Output:\", output);\n```\n\n#### Resize terminal\n\n```typescript\npty.resize(80, 24); // columns, rows\n```\n\n#### Session management\n\n```typescript\n// List all sessions\nconst sessions = await sandbox.pty.list();\n\n// Delete a session\nawait sandbox.pty.deleteSession(sessionId);\n```\n\n## API reference\n\n### VoidRun class\n\nMain client for interacting with the API.\n\n```typescript\nnew VoidRun(options?: VoidRunConfig)\n```\n\n**Options:**\n\n- `apiKey?: string` - API key (defaults to `process.env.VR_API_KEY`; empty throws)\n\n**Methods:**\n\n- `createSandbox(options: SandboxOptions)` - Create a new sandbox\n  - `name?: string` - Sandbox name\n  - `image?: string` - Image id (defaults to `code` when omitted)\n  - `cpu?: number` - CPU cores (default `1`)\n  - `mem?: number` - Memory in MB (default `1024`)\n  - `orgId?: string` - Organization ID\n  - `userId?: string` - User ID\n  - `sync?: boolean` - Sync mode (default: true)\n  - `envVars?: Record<string, string>` - Environment variables\n  - `autoSleep?: boolean`, `region?: string` - optional passthrough fields\n  - `labels?: Record<string, string>` - Immutable labels attached at creation (max 5; keys and values max 20 characters)\n- `listSandboxes(options?: { page?: number; limit?: number; labels?: Record<string, string> })` - Returns `{ sandboxes, meta }`; every supplied label must match\n- `getSandbox(id: string)` - Get a specific sandbox\n- `removeSandbox(id: string)` - Delete a sandbox by id\n\n### Sandbox class\n\nRepresents an isolated sandbox environment.\n\n**Properties:**\n\n- `id: string` - Sandbox ID\n- `name: string` - Sandbox name\n- `cpu: number` - CPU cores\n- `mem: number` - Memory in MB\n- `orgId: string` - Organization ID\n- `createdAt: Date` - Creation timestamp\n- `createdBy: string` - Creator ID\n- `status: string` - Sandbox status\n- `envVars?: { [key: string]: string }` - Environment variables\n- `labels?: { [key: string]: string }` - Immutable labels assigned at creation\n- `region?: string`, `autoSleep?: boolean` - Optional metadata\n- `fs: FS` - File system interface\n- `pty: PTY` - PTY interface\n- `interpreter: CodeInterpreter` - Code interpreter\n- `commands: Commands` - Background commands interface\n\n**Methods:**\n\n- `exec(request: ExecRequest, handlers?: ExecStreamHandlers)` - Execute a command (synchronous `.../exec`, or SSE when handlers are set). No `background` option — use `commands.run` for PIDs.\n  - `request.command: string` - Command to execute\n  - `request.cwd?: string` - Working directory\n  - `request.env?: Record<string, string>` - Environment variables\n  - `request.timeout?: number` - Timeout in seconds\n  - `handlers.onStdout?: (data: string) => void` - Stream stdout\n  - `handlers.onStderr?: (data: string) => void` - Stream stderr\n  - `handlers.onExit?: (result: ExecStreamExit) => void` - Exit handler\n  - `handlers.onError?: (error: Error) => void` - Error handler\n  - `handlers.signal?: AbortSignal` - Abort signal\n- `execStream(request: ExecRequest, handlers: ExecStreamHandlers)` - Streaming execution\n- `runCode(code: string, options?: CodeExecutionOptions)` - Execute code\n- `start()` - Boot a stopped/error sandbox\n- `sleep()` - Snapshot a running sandbox (`POST …/sleep`)\n- `wake()` - Restore a snapshotted sandbox (`POST …/wake`)\n- `stop()` / `pause()` - Aliases of `sleep()`\n- `resume()` - Alias of `wake()`\n- `remove()` - Delete the sandbox\n- `info()` - Returns the same sandbox instance (`Promise<this>`)\n\n**Exec response (`ExecResponse`):**\n\n```typescript\n// Returned from non-streaming exec()\n{\n  status?: string;\n  message?: string;\n  data?: {\n    stdout?: string;\n    stderr?: string;\n    exitCode?: number;\n  };\n}\n```\n\n**Code Execution Result:**\n\n```typescript\n{\n  success: boolean;\n  results: any;           // Parsed results\n  stdout: string;         // Combined stdout\n  stderr: string;         // Combined stderr\n  error?: string;         // Error message if any\n  exitCode?: number;      // Process exit code\n  logs: {\n    stdout: string[];     // Individual stdout lines\n    stderr: string[];     // Individual stderr lines\n  };\n}\n```\n\n### Commands class\n\nBackground process management.\n\n**Methods:**\n\n- `run(command: string, env?: Record<string, string>, cwd?: string, timeout?: number)` - Start a background process\n- `list()` - List all running processes\n- `kill(pid: number)` - Kill a process\n- `connect(pid: number, handlers: ProcessAttachHandlers)` - Attach to process output stream\n- `wait(pid: number)` - Wait for process to complete\n\n### FS (file system) class\n\nManage files and directories.\n\n**Methods:**\n\n- `createFile(path: string)` - Create a file\n- `uploadFile(path: string, content: string)` - Upload file content\n- `uploadFileStream(path: string, stream: ReadableStream)` - Upload file as stream\n- `downloadFile(path: string)` - Download file as Buffer\n- `downloadFileStream(path: string)` - Download file as ReadableStream\n- `deleteFile(path: string)` - Delete a file/directory\n- `listFiles(path: string)` - List directory contents\n- `statFile(path: string)` - Get file metadata\n- `createDirectory(path: string)` - Create a directory\n- `compressFile(path: string, format: 'tar' | 'tar.gz' | 'tar.bz2' | 'zip')` - Create archive\n- `extractArchive(archivePath: string, destPath?: string)` - Extract archive\n- `moveFile(from: string, to: string)` - Move/rename file\n- `copyFile(from: string, to: string)` - Copy file\n- `changePermissions(path: string, mode: string)` - Change file permissions\n- `headTail(path: string, options?: { lines?: number; head?: boolean })` - Read file head/tail\n- `searchFiles(path: string, pattern: string)` - Search files by pattern\n- `folderSize(path: string)` - Get folder size\n- `watch(path: string, options: FileWatchOptions)` - Watch for file changes\n\n### FileWatcher\n\nMonitor file changes in real-time.\n\n**Methods:**\n\n- `watch(path: string, options: FileWatchOptions)` - Start watching a path\n  - `recursive?: boolean` - Watch subdirectories\n  - `onEvent(event: FileChangeEvent)` - Called on file change\n  - `onError(error: Error)` - Called on error\n  - `onClose()` - Called when watcher closes (optional)\n\n**Watcher Methods:**\n\n- `close()` - Stop watching\n\n### PTY class\n\nPseudo-terminal operations.\n\n**Methods:**\n\n- `list()` - List active sessions\n- `createSession()` - Create a persistent session\n- `connect(options: PtyOptions)` - Connect to PTY\n  - `sessionId?: string` - For persistent sessions\n  - `onData(data: string)` - Receive data\n  - `onError(error: Error)` - Handle errors\n  - `onClose()` - Connection closed (optional)\n- `deleteSession(sessionId: string)` - Delete a session\n\n**PtySession Methods:**\n\n- `sendInput(data: string)` - Send data to terminal\n- `runCommand(cmd: string, options: RunCommandOptions)` - Execute with prompt detection\n- `resize(cols: number, rows: number)` - Resize terminal\n- `close()` - Close connection\n\n## Examples\n\n### Execute Python Script\n\n```typescript\nimport { VoidRun } from \"@voidrun/sdk\";\n\nconst vr = new VoidRun({});\nconst sandbox = await vr.createSandbox({ mem: 1024, cpu: 1 });\n\n// Create Python script\nawait sandbox.fs.createFile(\"/tmp/script.py\");\nawait sandbox.fs.uploadFile(\n  \"/tmp/script.py\",\n  `\nimport sys\nprint(\"Python version:\", sys.version)\nprint(\"Hello from Python!\")\n`,\n);\n\nconst result = await sandbox.exec({ command: \"python3 /tmp/script.py\" });\nconsole.log(result.data?.stdout);\n\nawait sandbox.remove();\n```\n\n### Code Interpreter Workflow\n\n```typescript\nconst sandbox = await vr.createSandbox({ name: 'interpreter-demo' });\n\n// Python data analysis\nconst result = await sandbox.runCode(`\nimport json\ndata = [1, 2, 3, 4, 5]\nresult = {\n    \"sum\": sum(data),\n    \"avg\": sum(data) / len(data),\n    \"max\": max(data)\n}\nprint(json.dumps(result))\n`, { language: 'python' });\n\nconsole.log(result.results);  // Parsed JSON output\n\n// JavaScript\nconst jsResult = await sandbox.runCode(`\nconst fib = (n) => n <= 1 ? n : fib(n-1) + fib(n-2);\nconsole.log(fib(10));\n`, { language: 'javascript' });\n\nawait sandbox.remove();\n```\n\n### Background Process Management\n\n```typescript\nconst sandbox = await vr.createSandbox({});\n\n// Start a long-running process\nconst { pid } = await sandbox.commands.run(\"tail -f /var/log/syslog\");\n\n// Attach to stream output\nawait sandbox.commands.connect(pid, {\n  onStdout: (data) => console.log(data),\n  onExit: ({ exitCode }) => console.log('Exited:', exitCode),\n});\n\n// Later, kill the process\nawait sandbox.commands.kill(pid);\n\nawait sandbox.remove();\n```\n\n### Monitor Code Changes\n\n```typescript\nconst sandbox = await vr.createSandbox({ mem: 1024, cpu: 1 });\n\n// Watch for TypeScript file changes\nconst watcher = await sandbox.fs.watch(\"/app/src\", {\n  recursive: true,\n  onEvent: async (event) => {\n    console.log(`File ${event.type}: ${event.path}`);\n\n    // Auto-compile on change\n    await sandbox.exec({ command: \"npm run build\" });\n  },\n});\n\n// Clean up\nsetTimeout(() => watcher.close(), 60000);\n```\n\n### Build & Test Workflow\n\n```typescript\nconst sandbox = await vr.createSandbox({ mem: 2048, cpu: 2 });\n\n// Upload source code\nconst sourceCode = `console.log('Hello World');`;\nawait sandbox.fs.createFile(\"/app/main.js\");\nawait sandbox.fs.uploadFile(\"/app/main.js\", sourceCode);\n\n// Install dependencies\nlet result = await sandbox.exec({ command: \"npm install\" });\nif (result.data?.exitCode !== 0) throw new Error(\"Install failed\");\n\n// Run tests\nresult = await sandbox.exec({ command: \"npm test\" });\nconsole.log(\"Test output:\", result.data?.stdout);\n\n// Build\nresult = await sandbox.exec({ command: \"npm run build\" });\nconsole.log(\"Build output:\", result.data?.stdout);\n\nawait sandbox.remove();\n```\n\n### Interactive Development Shell\n\n```typescript\nconst sandbox = await vr.createSandbox({ mem: 1024, cpu: 1 });\n\n// Create a persistent session\nconst sessionResp = await sandbox.pty.createSession();\nconst sessionId = sessionResp.data?.sessionId;\n\nconst pty = await sandbox.pty.connect({\n  sessionId,\n  onData: (data) => process.stdout.write(data),\n  onClose: () => console.log(\"Shell closed\"),\n});\n\n// Interactive commands\npty.sendInput(\"npm init -y\\n\");\nawait new Promise((r) => setTimeout(r, 1000));\n\npty.sendInput(\"npm install express\\n\");\nawait new Promise((r) => setTimeout(r, 2000));\n\npty.sendInput('node -e \"console.log(process.version)\"\\n');\nawait new Promise((r) => setTimeout(r, 500));\n\npty.close();\nawait sandbox.remove();\n```\n\n## Error handling\n\nFailed HTTP calls from the generated client are thrown as an **`Error`** whose message combines status text with the API body when JSON parsing succeeds: fields **`error`**, **`details`**, and **`message`** are concatenated so you see the same hints as in the Python SDK.\n\n```typescript\ntry {\n  const sandbox = await vr.createSandbox({ mem: 1024, cpu: 1 });\n  // ...\n} catch (error) {\n  if (error instanceof Error) {\n    console.error(\"Error:\", error.message);\n  }\n}\n```\n\nCommon cases:\n\n- **Validation**: Invalid sandbox parameters for your org/plan\n- **Authentication**: Missing/invalid API key\n- **Not found**: Wrong sandbox or session id\n- **Timeout**: Network or long-running command limits\n\n## Testing and examples runner\n\nFrom the `ts-sdk` directory:\n\n```bash\nnpm install\nchmod +x scripts/run_all_examples.sh   # once\n./scripts/run_all_examples.sh\n\nOr from npm (same script):\n\n```bash\nnpm run examples:all\n```\n\nOptional: `VOIDRUN_TS_SDK_ENV_FILE=/path/to/.env npm run examples:all`\n```\n\nEach example is run with `npx tsx --env-file=.env <file>`. Create a **`.env`** with at least `VR_API_KEY=` (add **`VR_API_URL=`** only for self-hosted). The script exits with status **1** if any example fails (suitable for CI).\n\nRun a single script:\n\n```bash\nnpx tsx --env-file=.env example/test-sandbox-exec.ts\n```\n\nNotable scripts under `example/`:\n\n- `test-sandbox-exec.ts`: Command execution (incl. streaming)\n- `test-sandbox-fs.ts`: File system operations\n- `test-sandbox-lifecycle.ts`: Sandbox lifecycle\n- `test-pty.ts` / `test-pty-comprehensive.ts`: PTY\n- `test-watch.ts`: File watching\n- `test-background-exec.ts`: Commands API (`run`, `list`, `kill`, `connect`, `wait`)\n- `test-ts-exec.ts`: TypeScript via `runCode`\n- `code-interpreter-example.ts`: Interpreter workflow\n- `coding-agent-sandbox.ts`: Install Copilot / Claude Code / OpenCode / Kilo CLI in a sandbox (`claude` \\| `opencode` \\| `kilo` \\| `copilot` arg); workspace **`/work/agent-project`**, **`sudo`** for **`mkdir`** / **`npm install -g`**\n- `test-commonjs-import.cjs` / `test-esm-import.mjs`: Package exports\n\n## Building from source\n\n```bash\n# Install dependencies\nnpm install\n\n# Build TypeScript\nnpm run build\n\n# Clean build artifacts\nnpm run clean\n```\n\n## Publishing\n\n```bash\nnpm run build\nnpm publish --access public\n```\n\n(`prepublishOnly` in `package.json` runs a clean build and bumps the patch version: adjust your release workflow if you do not want an automatic version bump.)\n\n## Troubleshooting\n\n### \"API key is required\"\n\nPass the key in the constructor or set `VR_API_KEY`:\n\n```typescript\nconst vr = new VoidRun({ apiKey: \"your-api-key\" });\n```\n\n```bash\nexport VR_API_KEY=\"your-api-key\"\n```\n\n### \"Base URL is required\"\n\nThe resolved base URL is empty (for example **`VR_API_URL=`** with no value). Omit it to use the default host, or set **`VR_API_URL`** / **`baseUrl`** to your self-hosted API root.\n\n### \"Sandbox creation failed\"\n\nEnsure your sandbox parameters are valid:\n\n- `mem`: minimum 1024 MB\n- `cpu`: minimum 1 core\n- `labels`: max 5; keys and values max 20 characters; key special characters are limited to `-` and `_`\n\n```typescript\nconst sandbox = await vr.createSandbox({\n  mem: 1024, // At least 1GB\n  cpu: 1,    // At least 1 core\n});\n```\n\n### \"PTY Connection Timeout\"\n\nIncrease timeout for slow systems:\n\n```typescript\nconst pty = await sandbox.pty.connect({\n  sessionId,\n  onData: (data) => console.log(data),\n});\n\n// For runCommand\nconst output = await pty.runCommand(\"slow-command\", {\n  timeout: 30000, // 30 seconds\n});\n```\n\n### \"File Not Found\"\n\nCheck the file path:\n\n```typescript\n// List files to verify path\nconst files = await sandbox.fs.listFiles(\"/app\");\nconsole.log(files.data?.files);\n\n// Then access specific file\nconst content = await sandbox.fs.downloadFile(\"/app/file.txt\");\n```\n\n## API Documentation\n\nFull API documentation is available at:\n\n- [API Client Docs](./src/api-client/docs/)\n\n## Contributing\n\nContributions are welcome! Please check the main repository for guidelines.\n\n## License\n\nISC License - See LICENSE file for details\n\n## Support\n\n- 📧 Email: support@void-run.com\n- 🐛 Issues: [GitHub Issues](https://github.com/voidrun/ts-sdk/issues)\n- 💬 Discussions: [GitHub Discussions](https://github.com/voidrun/ts-sdk/discussions)\n\n---\n\n**Made with ❤️ by VoidRun**\n","readmeFilename":"README.md"}