{"_id":"@dex-ai/tools-extension","_rev":"13-f26f7a5536999ad80e72443e2b29ecce","name":"@dex-ai/tools-extension","dist-tags":{"latest":"0.1.16"},"versions":{"0.1.4":{"name":"@dex-ai/tools-extension","version":"0.1.4","_id":"@dex-ai/tools-extension@0.1.4","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"e31d11b4175f765c6c1504970d3530bc548b5324","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.4.tgz","fileCount":20,"integrity":"sha512-crARXH9i5uiTQgOvAdQPtdPtnVt2Q74DKa9/bIq/MFx/4y95PK56TQ2iMgYwoUfUS+hNLBAuc0QNmvRSeD0smw==","signatures":[{"sig":"MEYCIQDmefON35hg5zU1fdGR3xklRLd3U50dRxI3UXXTgb9/9gIhAOV22tB6SS74SKNJo9KtaRPkPXsIaBQUEHogBJrI6oUE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73261},"type":"module","exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"},"./bash":{"types":"./src/bash.ts","default":"./src/bash.ts"},"./search":{"types":"./src/search.ts","default":"./src/search.ts"},"./edit-file":{"types":"./src/edit-file.ts","default":"./src/edit-file.ts"},"./read-file":{"types":"./src/read-file.ts","default":"./src/read-file.ts"},"./write-file":{"types":"./src/write-file.ts","default":"./src/write-file.ts"}},"gitHead":"f6b86bc51d353971960ef7eb17783e3d45ffb68e","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.4_1779937007251_0.033490553579102134","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dex-ai/tools-extension","version":"0.1.5","_id":"@dex-ai/tools-extension@0.1.5","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"3f52ee3a4d11be8eff904dc44da7d8747500ed0f","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.5.tgz","fileCount":22,"integrity":"sha512-3JTXKut+9kr1qwJhkQs/ldQIsz3t/yYsS0s8q/yYVSWBtwzsP+F6gEHTPkoMnLgcgNJHx3mbWApw5YqqovzROg==","signatures":[{"sig":"MEUCIAeOv0/Rd+jF+1/QuPr3d24PfysWVEobhbkPy/LkQZyiAiEAxOEeoStLThbPM3s730rcJ003QaZ88hg4JVc3EliVDFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83594},"type":"module","exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"},"./bash":{"types":"./src/bash.ts","default":"./src/bash.ts"},"./search":{"types":"./src/search.ts","default":"./src/search.ts"},"./edit-file":{"types":"./src/edit-file.ts","default":"./src/edit-file.ts"},"./read-file":{"types":"./src/read-file.ts","default":"./src/read-file.ts"},"./write-file":{"types":"./src/write-file.ts","default":"./src/write-file.ts"},"./background-tool":{"types":"./src/background-tool.ts","default":"./src/background-tool.ts"}},"gitHead":"5787bf3ce9be480588d9c88cfed9ca93824dcae1","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.13.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@dex-ai/sdk":"^0.1.33"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.5_1780632912535_0.27792110896325517","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dex-ai/tools-extension","version":"0.1.6","_id":"@dex-ai/tools-extension@0.1.6","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"b43300a3757e0dd71bbf3b26b8c548e0304cb307","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.6.tgz","fileCount":24,"integrity":"sha512-CJUqQmOawq+9o19GDuCcgP/cdv1PrOWivG2AHF7ipAd9xr2CZQnUQI/MVM92J7m1WnMg7D73lBnKpf4DjLl4uQ==","signatures":[{"sig":"MEYCIQDINHkrh9baY/ddqi6VgcTqgGpTbTNTMzTdNHaCfp4rjgIhALPbfY2kBl3hYKZ68JCjVUXY4oX5xG2wTHjRHF4wrc4E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93699},"type":"module","exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"},"./bash":{"types":"./src/bash.ts","default":"./src/bash.ts"},"./search":{"types":"./src/search.ts","default":"./src/search.ts"},"./edit-file":{"types":"./src/edit-file.ts","default":"./src/edit-file.ts"},"./read-file":{"types":"./src/read-file.ts","default":"./src/read-file.ts"},"./read-image":{"types":"./src/read-image.ts","default":"./src/read-image.ts"},"./write-file":{"types":"./src/write-file.ts","default":"./src/write-file.ts"},"./background-tool":{"types":"./src/background-tool.ts","default":"./src/background-tool.ts"}},"gitHead":"1b21b9ba726686f7b4ecf9a431b0468a2067a0e9","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.13.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@dex-ai/sdk":"^0.1.33"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.6_1780716607210_0.6783738068033847","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dex-ai/tools-extension","version":"0.1.7","_id":"@dex-ai/tools-extension@0.1.7","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"ef85cae6cbe5f8c09504ac62813ae788275ba520","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.7.tgz","fileCount":25,"integrity":"sha512-bFd+6e45t17pVsxjCAAcBH86+3FJDfow5l3uC/BJI6Gpr1Y5S9IpJK3mhoAqBYPVZQ9/kkZZ75DEWe5wczLwHw==","signatures":[{"sig":"MEYCIQCoW+nelZPEaGv7/8FBK39G34RP9Nsd8VXRfLEk56qNnQIhAPqw5q66WbA+O4zghEZ/ipXe8bQU8gp9oW/mx6/D+LB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104869},"type":"module","exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"},"./bash":{"types":"./src/bash.ts","default":"./src/bash.ts"},"./search":{"types":"./src/search.ts","default":"./src/search.ts"},"./edit-file":{"types":"./src/edit-file.ts","default":"./src/edit-file.ts"},"./read-file":{"types":"./src/read-file.ts","default":"./src/read-file.ts"},"./read-image":{"types":"./src/read-image.ts","default":"./src/read-image.ts"},"./write-file":{"types":"./src/write-file.ts","default":"./src/write-file.ts"},"./background-tool":{"types":"./src/background-tool.ts","default":"./src/background-tool.ts"}},"gitHead":"1b21b9ba726686f7b4ecf9a431b0468a2067a0e9","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.13.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@dex-ai/sdk":"^0.1.34"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.7_1780719095119_0.13423161072050727","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@dex-ai/tools-extension","version":"0.1.8","_id":"@dex-ai/tools-extension@0.1.8","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"bbfa5ed299ca815d8261f701c90117258d287ffc","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.8.tgz","fileCount":25,"integrity":"sha512-sFpnkOucjtkHZwyPr2OQNpPJtwrPCHvXqe9UCQAOqQHlGdc8DfHuKlHIGbTiA2LjiJEqrxIPMVz810EJPXm/nw==","signatures":[{"sig":"MEYCIQDxJthCIVB+Hdn7b4OMRSLZKrtQtD1JJRy8chM+jhrQmgIhANKZ0kJ5M8q30MpzGFBJUQjuHTu4jEMV7TNQp+503yBE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105234},"type":"module","exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"},"./bash":{"types":"./src/bash.ts","default":"./src/bash.ts"},"./search":{"types":"./src/search.ts","default":"./src/search.ts"},"./edit-file":{"types":"./src/edit-file.ts","default":"./src/edit-file.ts"},"./read-file":{"types":"./src/read-file.ts","default":"./src/read-file.ts"},"./read-image":{"types":"./src/read-image.ts","default":"./src/read-image.ts"},"./write-file":{"types":"./src/write-file.ts","default":"./src/write-file.ts"},"./background-tool":{"types":"./src/background-tool.ts","default":"./src/background-tool.ts"}},"gitHead":"1b21b9ba726686f7b4ecf9a431b0468a2067a0e9","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.13.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@dex-ai/sdk":"^0.1.34"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.8_1780720930041_0.26012734731376397","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@dex-ai/tools-extension","version":"0.1.9","_id":"@dex-ai/tools-extension@0.1.9","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"baf735e1c68b8ca5aa9b33481b16bf7e420580a1","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.9.tgz","fileCount":60,"integrity":"sha512-Q14hQSLuwd/e/DRGVPN4OZG4x1FrHazgjLc7ExVoGW58GBTOIxwmSvc/ik46JeXO1gVDBqmubhBSD/P5TUXHTg==","signatures":[{"sig":"MEUCIQDeauehbrG7VUUnMvDfHfJ7aReMXVTcCx2ahiU6Zz72BwIgduhmW/FRxbwKO/iADtenj/oWb/uctebTP72jr4muSvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172828},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"1b21b9ba726686f7b4ecf9a431b0468a2067a0e9","scripts":{"test":"bun test","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.13.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@dex-ai/sdk":"^0.1.34"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.9_1780721174735_0.3407856976304584","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@dex-ai/tools-extension","version":"0.1.10","_id":"@dex-ai/tools-extension@0.1.10","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"a4b618d6f5c67ac4acd8eccddc6156b54e8a5368","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.10.tgz","fileCount":60,"integrity":"sha512-XDmNA8p6h/6OledtFa1YWL0q5HZiKSHe9qn4dkAecG6ilQoHRylzqG3Q9uanzGs3BClBFkg5mDzs3hTyHN6bEQ==","signatures":[{"sig":"MEYCIQDzVlIlLQ4aCjGqA8fIdCSenHG7EOCtI29S4QsuA+ZVSQIhALNP48unnCtP9nGQvLRE4Ev1UfuBt1V7dmLObsun6is1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172595},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"29c84433eb5782ba4ef68abb8c3836f576ceef14","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.1.36"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.10_1781459681363_0.3007899819424604","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@dex-ai/tools-extension","version":"0.1.11","_id":"@dex-ai/tools-extension@0.1.11","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"0344210348639439af9c52bb4246b8ae4564b20f","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.11.tgz","fileCount":60,"integrity":"sha512-T0eeoFcFvMpbrxLVFTDMl9Aqv36pgu4ZldvMQJFjhUhGSm1aUJolE5hn1OhoLS4GeJMclFug1cpNLIYfpe44Dg==","signatures":[{"sig":"MEUCIEOfuxOLMxsRt0rGH/6iokfZmg9fV0i5wBxJFT4nvirFAiEA/2MI91BJ54DRibCjy4yiokCBbhnyEoO6+i1rnrPC8zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175209},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"6cd3e67e859838e3e6f63d1143ab65220f7745f7","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.1.36"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.11_1781481857448_0.5968415242720606","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@dex-ai/tools-extension","version":"0.1.12","_id":"@dex-ai/tools-extension@0.1.12","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"0e97d3d6be32e2285e882317e3ded9a621683aba","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.12.tgz","fileCount":60,"integrity":"sha512-ICPv4vWTKC+3tjQeaqPdUp2PKDK/B+MxCgViPkVLQEzOAkoKMH6eK4LKDQjKfjxJgFL+Wi7WVwawtTLRHUKEsw==","signatures":[{"sig":"MEUCIH0MPfHM4WqBrNIsjx2CbgilLLrk5p/dJRSTzOvU83daAiEA/gYDk2Z8hnVZTiWdc4Ws9+ZwUED/zS7oBdxT7P01XqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175209},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"6cd3e67e859838e3e6f63d1143ab65220f7745f7","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.1.36"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.12_1781481910680_0.2795917912122865","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@dex-ai/tools-extension","version":"0.1.13","_id":"@dex-ai/tools-extension@0.1.13","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"a757eee8451a3c12b261a72f495d6b0caf2f3e31","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.13.tgz","fileCount":60,"integrity":"sha512-ThbzI72rXsWwoNfAa5rPfTg/Ux/Sv9lBZOHRe5Ud80Lyhtq6xcVGXmCeBmEVcX9SDmOndDj4a3XFiNY59bwlgA==","signatures":[{"sig":"MEYCIQDZWki3AbOd9eZ87fkeMg88FT4q6vM6/0LzAkCt5osTHwIhAMPCBTHkdm7W8WeWgG0BS7BrXyrOLfALLF40TnJNpk6s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178583},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"6cd3e67e859838e3e6f63d1143ab65220f7745f7","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.1.36"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.13_1781482449854_0.5865130364314239","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@dex-ai/tools-extension","version":"0.1.14","_id":"@dex-ai/tools-extension@0.1.14","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"b5a604b66ac6763e46df1ca0c279f1e2976a77a4","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.14.tgz","fileCount":60,"integrity":"sha512-EhD9OJzBwliXv5i1SJ5xD7UioLrzuuWQFcs/OhpO5LFHgEkIVxo+MOYzQbD9l+l+9Lf7n/WFU/VwUJXIu2ZoCg==","signatures":[{"sig":"MEUCIAbiQx7kCmbuiNSccdbTRm8Gvqroo0zk5APHeqxY8jp8AiEAs6t6hZFazkOUS+f5hG2LRXKiX6ZnxHSXITzgO71cYgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178429},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"a313213c2735146292e5efc980d13d5db381a1a1","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.14_1781491200947_0.032435420869649345","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@dex-ai/tools-extension","version":"0.1.15","_id":"@dex-ai/tools-extension@0.1.15","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"dist":{"shasum":"81e8b5d90ee7dd2b05ca8fb88a4c15cb56951f36","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.15.tgz","fileCount":60,"integrity":"sha512-Fp3V7KSHJp3U/fJ1Y42L1CiPfW6ogFpvkc6SjuFXyI8njDcdnBSKXg4vIC+W9wEsEbWhBLUjs/939zy1HfoL9g==","signatures":[{"sig":"MEYCIQCCin+n+AqClWNz6z/u8HaEtIX52s50K9kV31NRzd23jwIhAI/6SKBgch3n1ToKIZ0IU62sWNwGW3FMrLohqILu5Cwo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179521},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"gitHead":"4d107847fd405559cc34df6565d993a4edc03e48","scripts":{"test":"vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"_npmVersion":"11.11.0","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@dex-ai/sdk":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"peerDependencies":{"zod":"^3.23.0"},"_npmOperationalInternal":{"tmp":"tmp/tools-extension_0.1.15_1783791060817_0.5555992809569104","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@dex-ai/tools-extension","version":"0.1.16","description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./read-file":{"types":"./dist/read-file.d.ts","import":"./dist/read-file.mjs","default":"./dist/read-file.mjs"},"./read-image":{"types":"./dist/read-image.d.ts","import":"./dist/read-image.mjs","default":"./dist/read-image.mjs"},"./write-file":{"types":"./dist/write-file.d.ts","import":"./dist/write-file.mjs","default":"./dist/write-file.mjs"},"./edit-file":{"types":"./dist/edit-file.d.ts","import":"./dist/edit-file.mjs","default":"./dist/edit-file.mjs"},"./search":{"types":"./dist/search.d.ts","import":"./dist/search.mjs","default":"./dist/search.mjs"},"./bash":{"types":"./dist/bash.d.ts","import":"./dist/bash.mjs","default":"./dist/bash.mjs"},"./background-tool":{"types":"./dist/background-tool.d.ts","import":"./dist/background-tool.mjs","default":"./dist/background-tool.mjs"}},"scripts":{"typecheck":"tsc --noEmit","test":"vitest run","clean":"rm -rf dist","build":"node scripts/build.mjs","prepack":"npm run build","prepublishOnly":"npm run build"},"dependencies":{"@dex-ai/sdk":"^0.4.2"},"peerDependencies":{"zod":"^3.23.0"},"devDependencies":{"zod":"^3.23.8","vitest":"^3.0.0","@types/node":"^22.0.0"},"sideEffects":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"gitHead":"660cf7a8aed88ad2af4d56ea6f1df29b6431b6a7","_id":"@dex-ai/tools-extension@0.1.16","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-Ttdvzp17NyuyxXeg3wq2wZkkV6+H5Dr9DYcVvy4kpTwbAuFzJtQYpgK1ckjsZeBunfoUWokpW9UjUTnXLLczWg==","shasum":"fef8ea2963b86f3236d070efc7db60f8dd44924c","tarball":"https://registry.npmjs.org/@dex-ai/tools-extension/-/tools-extension-0.1.16.tgz","fileCount":60,"unpackedSize":180326,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD84dH2uuxE0Lxy0ql6aDUfIKreWLcTIUV50yuln9F9BAIhAJ2yZT2nsTJmuPT5LylPuzfUrt3DNP5OxRHiSmsaRK+J"}]},"_npmUser":{"name":"klxdev","email":"klxdev.code@gmail.com"},"directories":{},"maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tools-extension_0.1.16_1783893116506_0.6952409406728746"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-28T02:56:47.104Z","modified":"2026-07-12T21:51:56.772Z","0.1.4":"2026-05-28T02:56:47.386Z","0.1.5":"2026-06-05T04:15:12.670Z","0.1.6":"2026-06-06T03:30:07.351Z","0.1.7":"2026-06-06T04:11:35.255Z","0.1.8":"2026-06-06T04:42:10.177Z","0.1.9":"2026-06-06T04:46:14.916Z","0.1.10":"2026-06-14T17:54:41.534Z","0.1.11":"2026-06-15T00:04:17.607Z","0.1.12":"2026-06-15T00:05:10.837Z","0.1.13":"2026-06-15T00:14:09.989Z","0.1.14":"2026-06-15T02:40:01.096Z","0.1.15":"2026-07-11T17:31:00.969Z","0.1.16":"2026-07-12T21:51:56.640Z"},"description":"Core tool Extensions for @dex-ai/sdk — file read/write/edit, search, bash. Each tool is its own Extension.","maintainers":[{"name":"klxdev","email":"klxdev.code@gmail.com"}],"readme":"# @dex-ai/tools\n\nCore tool Extensions for [`@dex-ai/sdk`](https://github.com/klxdev/dex-ai-sdk). Each tool is its own Extension — compose the ones you want, skip the ones you don't.\n\n| Extension              | Tool        | What it does                                              | Sandboxed | Destructive |\n|------------------------|-------------|-----------------------------------------------------------|-----------|-------------|\n| `readFileExtension`    | `read`      | Read text, normalized images, or base64 binary files.     | yes (cwd) | no          |\n| `readImageExtension`   | `read_image`| Compatibility image-only reader; prefer `read`.           | yes (cwd) | no          |\n| `writeFileExtension`   | `write_file`| Create or overwrite a file.                               | yes (cwd) | **yes**     |\n| `editFileExtension`    | `edit_file` | Atomic multi-edit by exact string match.                  | yes (cwd) | **yes**     |\n| `searchExtension`      | `search`    | grep regex over contents, or glob over paths.             | yes (cwd) | no          |\n| `bashExtension`        | `bash`      | Run `sh -c <command>` with timeout + captured output.     | no        | **yes**     |\n\n## Install + use\n\n```ts\nimport { DexAgent } from '@dex-ai/runtime';\nimport { openai } from '@dex-ai/openai';\nimport {\n  readFileExtension, readImageExtension,\n  writeFileExtension, editFileExtension,\n  searchExtension, bashExtension,\n  allFsExtensions,\n} from '@dex-ai/tools';\n\nconst agent = new DexAgent({\n  provider: openai({ modelId: 'gpt-4.1' }),\n  extensions: [\n    // pick individually...\n    readFileExtension({ cwd: process.cwd() }),\n    searchExtension({ cwd: process.cwd() }),\n\n    // compatibility only; `read` handles images too\n    readImageExtension({ cwd: process.cwd() }),\n\n    // ...or bulk register the full fs set:\n    ...allFsExtensions({ cwd: process.cwd() }),\n\n    bashExtension({ cwd: process.cwd() }),\n  ],\n});\n```\n\nSubpath imports are also available for bundle-size control:\n\n```ts\nimport { bashExtension } from '@dex-ai/tools/bash';\n```\n\n## Tool contracts\n\n### `read`\n```\nparams: { path: string, lineStart?: number, lineEnd?: number }\ntext output: { type: 'text', value: string }\nimage output: {\n  type: 'content',\n  value: [\n    { type: 'text', text: string },\n    { type: 'image', image: Uint8Array, mediaType: string }\n  ]\n}\nbinary output: {\n  type: 'content',\n  value: [\n    { type: 'text', text: string },\n    { type: 'file', data: string /* base64 */, mediaType: string, name: string }\n  ]\n}\nimage behavior: supported raster images are normalized to fit within 1080p at medium JPEG quality before being returned.\nline ranges: lineStart/lineEnd are supported for text files only.\nerrors: path-outside-cwd, file-not-found, not-a-regular-file, too-large (>10MB text/binary, >20MB image input)\n```\n\n### `read_image` compatibility tool\n```\nparams: { path: string }\noutput: same image content shape as `read`\nsupported: image/png, image/jpeg, image/webp, image/gif\nbehavior: normalizes images to fit within 1080p at medium JPEG quality before returning.\nerrors: path-outside-cwd, file-not-found, not-a-regular-file, too-large (>20MB), unsupported-image-type\n```\n\n### `write_file`\n```\nparams: { path: string, content: string }\noutput: { type: 'json', value: { bytesWritten: number, created: boolean } }\nbehavior: creates parent dirs if missing; overwrites existing files\n```\n\n### `edit_file`\n```\nparams: {\n  path: string,\n  edits: Array<{ oldString: string, newString: string, replaceAll?: boolean }>,\n}\noutput: { type: 'json', value: { appliedEdits: number } }\nsemantics: all-or-nothing. Each oldString must appear exactly once unless\n           replaceAll is true. Overlapping ranges fail. File must exist.\n           Use write_file to create new files.\n```\n\n### `search`\n```\nparams: {\n  mode: 'grep' | 'find',\n  pattern: string,          // grep: regex source;  find: glob (*, **, ?)\n  path?: string,            // defaults to cwd\n  maxResults?: number,      // default 100\n  caseInsensitive?: boolean // grep-only\n}\noutput: { type: 'json', value: { matches: [...], truncated: boolean } }\nbehavior: skips node_modules, .git, dist by default unless the caller scopes\n          `path` into them.\n```\n\n### `bash`\n```\nparams: { command: string, timeoutMs?: number }  // default 120_000ms\noutput: { type: 'json', value: { stdout, stderr, exitCode, timedOut } }\nbehavior: runs via /bin/sh -c in cwd. Timeout kills the process and returns\n          timedOut: true rather than throwing.\n```\n\n## Approval — it's not here\n\nThis package ships **zero approval logic**. The SDK treats approval as cross-cutting via the `onToolCall` hook; apps install their own approver extension. The typical shape:\n\n```ts\nimport type { Extension, ToolCall, ToolResult } from '@dex-ai/sdk';\n\nfunction approvalExtension(opts: {\n  gates: (call: ToolCall) => boolean;                 // returns true if this call needs approval\n  ask: (call: ToolCall) => Promise<boolean>;          // async prompt; returns true to allow\n}): Extension {\n  return {\n    name: 'approval',\n    async onToolCall(call): Promise<ToolResult | void> {\n      if (!opts.gates(call)) return;                  // no gate — run the tool\n      const ok = await opts.ask(call);\n      if (ok) return;                                 // approved — pass through\n      return {                                        // rejected — model sees this as a tool-result\n        toolCallId: call.toolCallId,\n        toolName: call.toolName,\n        output: { type: 'error-text', value: 'User rejected this tool call.' },\n      };\n    },\n  };\n}\n\n// wire it up:\nconst agent = new DexAgent({\n  provider,\n  extensions: [\n    bashExtension({ cwd }),\n    writeFileExtension({ cwd }),\n    approvalExtension({\n      gates: (call) => ['bash', 'write_file', 'edit_file'].includes(call.toolName),\n      ask: (call) => ui.confirm(`Run ${call.toolName}: ${JSON.stringify(call.input)}?`),\n    }),\n  ],\n});\n```\n\nRejected tool calls come back to the model as a normal `tool-result` message containing `error-text`. The model decides what to do next (try a different tool, stop, ask the user).\n\n## Sandbox details\n\nThe fs tools resolve every path against `cwd` and reject anything outside. Specifically:\n- `../` traversal is rejected (paths are normalized).\n- Absolute paths outside `cwd` are rejected.\n- Symlinks are followed via `fs.realpath` — a symlink inside `cwd` that points outside is rejected.\n\n`bash` is **not** sandboxed at the filesystem level. It runs with `cwd` as its working directory but any approved shell command can read/write anywhere the process has permission to. Approval is the gate — use `onToolCall`.\n\n## Testing\n\n```bash\nbun test\n```\n\n50 tests across 6 files as of v0.1 — every tool exercised end-to-end through a `DexAgent` + scripted fake Provider.\n","readmeFilename":"README.md"}