{"_id":"@saluzi/min","_rev":"35-6819f4d685143692b24a898b411f76da","name":"@saluzi/min","dist-tags":{"latest":"1.6.0"},"versions":{"1.0.0":{"name":"@saluzi/min","version":"1.0.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"ISC","_id":"@saluzi/min@1.0.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/index.js","min-agent":"dist/index.js"},"dist":{"shasum":"9de5afc4c512eaa889c9bf327eafba52b089e179","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.0.tgz","fileCount":208,"integrity":"sha512-Yp9XeDvDowSgebyaZtQanYjkrpSOfVPVKn6D8CvenXA5EN5Tp3MivvRNDbSFzAZbbe9NRls2XQHfgoBAAt/5zw==","signatures":[{"sig":"MEQCIEBQ/7RbUn728+WJxZ1oL21eJQi7xYM+36ftloBgB3WFAiAT1BZbkuss/S7ulxwsM0QpwxDpF1y6VDbkNySGh4m50Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":641036},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3444017ab2cae015ed988b1210b6aea579b08b87","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.0_1787410856383_0.3052068462346955","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@saluzi/min","version":"1.0.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"ISC","_id":"@saluzi/min@1.0.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"5ceba2e4c9052823deca2400cc4c3e303e4d35af","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.1.tgz","fileCount":208,"integrity":"sha512-tMB0UvEk0+BvVplgPnarZMRxpA18fkYrxGOskWVQsWZbZ/rAPFqtEOKVKWfhYldX+z4Jy05n/v1x0w9OFm2hrw==","signatures":[{"sig":"MEQCIFJGDiO33g4OWCec4f93dZstD00QH2rBtM9lemYFotx1AiAY4fb7Qqve9lB9YixGMBAVMQnH0QWj43ZfWo3fjayuaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":641032},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"1931019f5d9c4e7d39e3960608dda92cd1efdb45","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.1_1787411681190_0.734321350990438","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@saluzi/min","version":"1.0.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.0.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"a17d27395a9be558d2e8e6ccc6cccf0fc2a2cc7e","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.2.tgz","fileCount":214,"integrity":"sha512-LhNdI15WDSAsmmIxvtS7tZxQ2O15wae57FzGDPsnO65xs/YitVALyRNDWq2p6nT1SbeyvDSAjMdbyifzw4UAKA==","signatures":[{"sig":"MEUCIHKa3YJUKUiRY22LCI9VycTNqsSFauMYTcbA3/IBYFpUAiEAucsyOb5ZvjzdarsioNdcBUSDMgslFziSgICVKkyLndI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":679706},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"90b83df537939e3503beae982f0bbf8ce43bc66f","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.2_1787413944561_0.81295024964484","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@saluzi/min","version":"1.0.3","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.0.3","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"7ed446294ba69aabde0378d707768d633dfa8ecd","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.3.tgz","fileCount":251,"integrity":"sha512-5Lv33OPDKf5YAdKFXZ88wXrK0Mc/ZJQGFJJp7cZJXQfB1e2OHmrlos7JxMgly1h1jsSBoZPFb6sis2mVzkPNkA==","signatures":[{"sig":"MEUCIQC30KsM2mE06BvS/HKp4htWaYRzfRuXMM15kEHurkyTNQIgT2Iae7u1UJ3WAdC3l2Re6VaPTpqubZcflDhImDhX0Yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":827828},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c275ca847ce350147c116c33b3a7c5e20e13e0df","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.3_1787463874885_0.8425828700085944","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@saluzi/min","version":"1.0.4","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.0.4","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"a6dab84d098a2d46e6aad169d905199481f87154","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.4.tgz","fileCount":251,"integrity":"sha512-ghzpHqlCK3uEfQP6WS/D1shhUTE2do5ojaEmPNlJU0i2G7rGtR/HnBR/EgDvc0SSB8ysJxhDmE+O2TeTEWJ23A==","signatures":[{"sig":"MEUCIQCFJ4ipBHfsDGyGBCb5WNOepFbwcMISm46nvEExaHFDPgIgElLtk9btxgFE/l50ANNPJWTNRXptfi/XmJ3GUzNJ0iY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":849546},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"f3c4d38d25f3a00c187a06f0ef258d9c2b21eb6e","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.4_1787464556812_0.8876125724700614","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@saluzi/min","version":"1.0.5","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.0.5","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"49de1b5c78f99a471c1e7e81afcd475beb5a45c7","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.0.5.tgz","fileCount":274,"integrity":"sha512-rsEDjLqGZrUTqsKbzbOKVaNLH09pYZQKZwD4veOBvuULVvPDA4xN786gncL+Atn+9Bdpw0OMNgiIJDjCDIHl4g==","signatures":[{"sig":"MEYCIQDjfJcyXYycGoGzFJoYj3zX/OJWLiGr/xVrSdDAxhBE8gIhAPVewq1/VDoIOHhMPkVX9L9oo1j8qvRTbwfJyPoasX1t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004943},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e6ac8ab11b0bb3805a808c9f82f6355a83739500","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.0.5_1787498492548_0.5004982048349789","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@saluzi/min","version":"1.1.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"b38168a9f5c3986eaf55e1f6bd5be8b10a3bb37c","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.0.tgz","fileCount":312,"integrity":"sha512-DRjDbdz+4d8UFTz5DNGVeV4fo1XcB3wmUtua6+MTx2SWp9IdAeqBkMg+e6PaZQwBIAZZjdk7BZSRmk2RSoEg9g==","signatures":[{"sig":"MEUCIDvYDcWnR97kVcAgUs6wgUz2YeOwFTdyUweK6zQr3G2VAiEA1YWy15BIAEttLk8NEL8XxsovCU1VXrt6u/bUPvlN0TY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1271119},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"f2b2b980b60a1c45d9ba202e7d25f78e58e312d8","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.0_1787504059824_0.8420856099134912","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@saluzi/min","version":"1.1.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"96c2cd79dce405a21e8669643507b6fb3a39d22c","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.1.tgz","fileCount":329,"integrity":"sha512-TgGOn1uLVMxiwNQg8NTWkVZEKOsCyOwshL6irrAEMVFh8sX7dHKe9CidtvG2uzriHWHgh3WuJYb1OF38zl5FbQ==","signatures":[{"sig":"MEQCIBN9ovoPAAfcSyR0eK+97Ozxt5hrx3DOeWLF0N/ALtSuAiBhl79LbZObg4mBPYmDfCkITM9EeCtz6CeHP0LYEDiIrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1350725},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"24d8fdd345b827a84cbb97e584ff964cbf9e8397","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.1_1787540829251_0.3654237561535483","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@saluzi/min","version":"1.1.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"1ba5047df809120c679c2e96d5cf2b3f8f15967f","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.2.tgz","fileCount":329,"integrity":"sha512-oRTcjOQfdukh3j9A/N4b6lMP3ViA0mQe57fNtNm9XJiEgqod7WIWaMJqKxmbnDz5CNj15c4DaWn+l6RACzRLIQ==","signatures":[{"sig":"MEUCIQCuC4rka7bemStkExW07I/lLgivEyCpehhFITUv0VXPoAIgIgcn8B4b2bUnx5dTiF2uCu0LGMJzOCZXJSrYwZa09Wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1407213},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"dd160baccced0842019262bdfac5dea941694183","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.2_1787651722013_0.4028604225589121","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@saluzi/min","version":"1.1.3","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.3","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"ff144f4c112bd2e2ab37e1afaea5d369ba56f5bf","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.3.tgz","fileCount":329,"integrity":"sha512-z6iYlOyb5/qWXiZtxPw69/nbETe32RjOjSp2SicIM4r4wRGUK6OsQZJyHvzpkgK8zdYewGMTzta3opq/M1s8gg==","signatures":[{"sig":"MEQCIEuBa3fJ2aqzBtxsw6ccz752lEjmEas1t2murJ5IZ+7bAiBKsvxsW87vIBVZdLyRNqEhOfx+SCPNxx+e68dFeBd8ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1415550},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a554d654a1be9e96d8040744f7ee68aeed8886ce","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.3_1787658120839_0.31760088992223556","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@saluzi/min","version":"1.1.4","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.4","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"16dfc5a353ee9b485f5eedca6cd10a0005038cb9","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.4.tgz","fileCount":329,"integrity":"sha512-Stgkt69Kywf8vRFJlkKUlIs9sJ+zYOcJ1e4tLx8X1O86B+nlJZ5FITWRukvBskz77NDRDiyBRwOwdxp+0TEP3g==","signatures":[{"sig":"MEUCIDRvhyNhiPqBwH9V8AG9zMYjPyGgj37AUCHMTSc3rFgEAiEAge2atsnrVqI8yEh10UwWHy22/YqJMjphW6+BgwYIE+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1441567},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"dceb81675e6e463c5053a73e9b4ac2288862b044","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.4_1787661461748_0.2662640848793745","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@saluzi/min","version":"1.1.5","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.5","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"57a1e181635aeac7b2759e9f33c4d2771126b90b","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.5.tgz","fileCount":329,"integrity":"sha512-9N3oXkZxlhOfTz5IB00rCVqdgDt3hmz0n5GnJMpFVv7mH769AhMnHPGbEDKfUo3IFXzFVDzOO5k3/Ue31QnGDA==","signatures":[{"sig":"MEYCIQD7vZ0i4Rhaz29ztuVIhjuLHTLeCQIu30snbKLwBGjBpgIhAKIyXDHRJYBJrk45zJjNwo0Zzz9sb6x1x5FZvC8IkdxW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1498534},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"aacc97f9e554d1257bfcf6925bd67413ca126852","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.5_1787710337153_0.019623722472851934","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@saluzi/min","version":"1.1.6","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.6","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"beb46a7f7c1e5c634f70ea6c8ada4c84493ae0e8","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.6.tgz","fileCount":335,"integrity":"sha512-+5mZH2AVB7p3RAnZQqAttzQ7R30CBAPOW4txiAvvxfLFhJZxXXvpydNA2vRUsC7zcmD1Wy5KcxfYzVaY4v5tmw==","signatures":[{"sig":"MEQCIHi4JJA7nTf/83CyIO7L/CWrBe/7z18TQf5mNZZXlaBPAiAXymsBJ8yJoeD2nfXlBUMvZZN0zq7lfDv51iZUtG/8jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1544369},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"66b1a77424b88be1a563799e078b50a5c0975366","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.6_1787724549677_0.24643410232080654","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@saluzi/min","version":"1.1.7","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.7","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"a4b1b292260ca32df0b0631150ac701c410b4d48","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.7.tgz","fileCount":335,"integrity":"sha512-HUCrznheWUyyXajskVdOcGgDxGx3pc+9R/Hvn0qwC2BQUDFiFzmMg046M3NTTIxgJX0YLHFb46oaqL6cmr/sOA==","signatures":[{"sig":"MEUCIDloP+FlyAbO1wcBNGKDgZpOg1GQWap/1ChSlhrWle6uAiEAqUFXlTG4dopWc1jENN7H2xStLA8A5ojNtR4ZS06SJCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1616080},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"412deaa22312b27a3767c8f342955deb94169e55","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.7_1787729040745_0.03534760398804959","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@saluzi/min","version":"1.1.8","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.8","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"7b9a9315e9872ba8580b0e790c96276e1df112fb","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.8.tgz","fileCount":335,"integrity":"sha512-U856rBvR21ZK9VCV2Ra8xmDpzALLfH5GFHp2zaJOGnSgM3wWkD/M/Bxq+McXNbgg/2X/6J1iLxjBDvOz8i1WGg==","signatures":[{"sig":"MEUCIE25pqgYNb9x2S8D6136ds5XXdY4PI4l37fiEU90N9AJAiEAxTSAx3oDtKZIazKyKy/7+TqZj9QD8F6wUy+YQ/+uFf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1619293},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c23d170ded662ad1cdc2eabf70ea6e340cf7c38e","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.8_1787732510212_0.9378353149923293","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@saluzi/min","version":"1.1.9","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.9","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"f256120d82255d9a6259a97d75718b097a3a1e00","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.9.tgz","fileCount":335,"integrity":"sha512-5TFv0ll8TdIcFhZ1vzksd+nx5CeLZ4Z8s0fGSIKAF8VzCdwq43xifnJAhHQRsqLatqWhQyXZgQX01AJyypee6g==","signatures":[{"sig":"MEUCIQCYoPYNdhw6IkPunPqLQnI6kk/4+5fYmUKBb6AYx+neBwIgVyH+jsz471/uiWURaruGsL8ronDC8tfpQ1v5AQVILXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1622302},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a90f2bd341d3c093a3cab8c41389797a9c9b2457","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.9_1787811036172_0.14860949333937246","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@saluzi/min","version":"1.1.10","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.10","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"87ad63687445c7ca8c1666375b94b35b91bdd67d","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.10.tgz","fileCount":351,"integrity":"sha512-bmP+z4Yuok7c7mPBora13uRmIG7xHFKxZkIc6waWXFktrEu6/Qmpc9mGwdxhYSPYyICcQUreLtYr2evX7d7lKg==","signatures":[{"sig":"MEUCIADxcUa8nK5J7m5PSbu3Xk+W9TMGaiLLrwpyAqCYwCpPAiEA8TrvWGyKlKZ0B/JWKmaMEMbzppJSAwB7bdLq2G/9QNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1722426},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e0e56fbbe2d72aca3901f51573f8a20b46416436","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.10_1787829765360_0.6653867306516583","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@saluzi/min","version":"1.1.11","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.1.11","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"a30dbac444baa6a9f04622d0b3614668e056445c","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.1.11.tgz","fileCount":351,"integrity":"sha512-W6nM5HDzZUVGx026HvT9rCwA184epZtYUllLUu8BCZMPvFEfKuGO0neiUttGaCIarZjXGl0ZUoocSMmhV4DPjA==","signatures":[{"sig":"MEYCIQCZEFlu/IpkWLLbozLTF+wFlO1STb6P0Gr/o/ZUmcSx5QIhAKrxt8GDfxjn4cz1FlZnSC73AYDmu1YL1o4oMz4Lw7uA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1741149},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"064a7f4cf08e695447d0197de4ebdb18e3eb317c","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.1.11_1787830901719_0.5042242218255519","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@saluzi/min","version":"1.2.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.2.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"487e2aca62205c236d592912f8a8fbf0afabd9ee","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.2.0.tgz","fileCount":351,"integrity":"sha512-jrQqrXc5RkX6eyuFO/BAlKhQo+du3n4+ic9xcA/ml5RxNKeIhRJ4xqAm1WPHGbtJy6fTuVKzy1YCntdnh0Nrjw==","signatures":[{"sig":"MEQCID6WySsKywWA6E8rG4+gRoPldbvVq7Rp0SduFgDLD9fgAiBGHbt66tRYTwS8mxY1/JUm6cqyl8dwwCvIwOl+2+F3og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1782658},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a8864d054e2f29516a81f6d5c794f23099dec07e","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.2.0_1787836588921_0.04008117168505576","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@saluzi/min","version":"1.2.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.2.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"1d4410040c538eeb93824d070ed43542e67ea587","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.2.1.tgz","fileCount":353,"integrity":"sha512-HvqaTwBfThUQ1AB6hCEhEC68CEsh+ydAX4Wml0qbBD1nVBX4s6014HCA8C3YiEkSyFk8P+uc9f+UrPjfzUy17w==","signatures":[{"sig":"MEQCIG09DAhKYL2CAmupk0sZ2jmPzGcGhnP0+ju/ng/eyXxlAiBgyAakwH+Pyz5OC2oavemLqQVuwqgxb+sQ40Ebb44Z6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1837281},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e576a1c61ec8b3ec6302751b7f469265da2f1887","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.2.1_1788003453219_0.41403643229122844","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@saluzi/min","version":"1.2.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.2.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"21dc10fc88ed8d951543a769286e9071849ed676","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.2.2.tgz","fileCount":353,"integrity":"sha512-iT/jTDMmpqBMMyJhSMIOOUDwsAcPyeRSReQIBNIlZxH6fCA8bPFo3W1uREiH4sz6cTOu3KkJznzIzNdHuPYZ9Q==","signatures":[{"sig":"MEQCICM0vsxUbRu62HyiKRLYNuPp+RKzVXIy4Db5J3fqOK1yAiBKokTY8YJbVMK5zFtkZXYnDw4sbDSiP2mF7nk2132jUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1831041},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"59c3233bcb64b1e36955cc1be33c825a7e0aa03d","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.2.2_1788060647795_0.7292010951852348","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@saluzi/min","version":"1.3.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.3.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"0997dc92dce07e94f11bc634c6a333db0aa5f93c","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.3.0.tgz","fileCount":353,"integrity":"sha512-Mk1A97bUV5xcFh+9/o5bptwykZppQnr0fiuXhIndIW7u9VOJiOjcLZCmHdESIn7MdNuiJV/qGm5Lt7DFaVi9nA==","signatures":[{"sig":"MEUCIQCL6/xZLUVNgM9Z65jQDOsNXYqfNbC8GbeRSzEQjrcJjgIgWgr6jGReI2V2bZspH5WibOrHoC1fpIkZYBD+LLU63oQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1842356},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fc23981ea5b0fd23148e636bf05b0d229a6ab25b","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.3.0_1788083754014_0.43713657774378034","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@saluzi/min","version":"1.3.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.3.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"b9dfbf31490812ebe05b817d8147c29b6c6c041e","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.3.1.tgz","fileCount":353,"integrity":"sha512-USH4mvkx2D051zNROaOIXLLvvedvyrbRpQYjOUYRIuKQ8Rq6Rx3/33dXmsXHAl2FfJfprdJS4ye1Jrap8EvYjQ==","signatures":[{"sig":"MEUCICkpqm0LLCIZ0v0z28ytOGpogGgQrNjK5LaKtnHhctJHAiEA/7d0NZD4wpVpoeCh/lXd4og9rUZIFOoaPXwSz7b0TOk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1847033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"40cab191172b18de963b2aa53bef1790fc3de08d","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.3.1_1788084292209_0.6064385913870305","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@saluzi/min","version":"1.3.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.3.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"9b66517b6a7f19b92de0fadd8f0142b18fff679d","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.3.2.tgz","fileCount":353,"integrity":"sha512-88kY0OmH+VRbJvwFo2NDmBBRfgXZeBF3cTEtAehv+Iyp5KThpEh6gZzmHKHn4JYiOSeHjNoTpBQjCP76hSflVg==","signatures":[{"sig":"MEUCICW+IoP6inPg2K3NnMPtI0HH3jE4VBu11ldKpPaQe+A7AiEAtbizl1N/qVv5WnEI33T5z6eH3zERJ9z5GceehJ8SYtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1849771},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"16ef0ecaf0a34fee259196fd6b93e4856e56aa4a","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.3.2_1788084896498_0.48098187783022617","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@saluzi/min","version":"1.3.3","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.3.3","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"c92f733a5bae7fea34ae54eff5210373ac28ff80","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.3.3.tgz","fileCount":353,"integrity":"sha512-OfnNFG/GYt4fdwx4Jq0yXvCfdbmbIyQr2aS4yv2XBteFMN3SsSV/DUHxnMebwFWe788/N48/pMQoQomcgvjOXQ==","signatures":[{"sig":"MEUCIAiW+TedYYhSzj+aX47ztmyKxN/Q4EV5q/4KEFABBNWsAiEAis9uncuwEQmzN9EZLjuAAfn5a5NWNzfQsGE5o6az9lY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1849538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b6a9b76a96d5356414931790ec1b940747bd6041","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.3.3_1788091567769_0.11285751599124594","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@saluzi/min","version":"1.4.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.4.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"5797c08977cfa16ce9c380b11b966728e8beaa00","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.4.0.tgz","fileCount":359,"integrity":"sha512-8spg9HzS/R+JnOoqnNVw8IjYlLjBG6M224WMjTquMIYK3yVvFZZxkapA2wCbCOrq/y1M8voZ5iqFrbYwup/0dg==","signatures":[{"sig":"MEQCIGwqbWGxP7ZioKSjA1yUzC8N28Xtw2oKrMTECAG2JWylAiAJqA+HBg5ek+gpUfvNMfpS/glMaZ/LMTksrsTLXpf4vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1911472},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"5f070aed95b6047d1f1410e2e8c36d57f7483aaf","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.4.0_1788094082236_0.25306471101756367","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@saluzi/min","version":"1.4.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.4.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"ca8da91bcce6afdaacd5296945ad79a36cc0cb87","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.4.1.tgz","fileCount":359,"integrity":"sha512-QeD/B0x7k38tSpdP5IKPDrW9aa0iO1xi/nrn/G+/oYSPq3W8oqYn0Zkt6GF+Cst8NGEpeofmQfBiVIS5kWv3cg==","signatures":[{"sig":"MEYCIQDkmFvkJPcZrHSV+l4CapEfT6UXkrzGMRo1jXasrsiLHgIhAKGEvbWy/flAjJxcNfyGduBlh1h+BqVOn2bDIvxcYoBm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1914264},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"0f1ceb46abdd04a070569acb23ea7985b961a0de","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.4.1_1788094798505_0.22615116913847633","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@saluzi/min","version":"1.4.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.4.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"9a7379606abf7b6b4dc46562e36ee9515db7bc02","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.4.2.tgz","fileCount":126,"integrity":"sha512-+bbVGzsOnLMHhnBhKCqgDPBpIaWuKxP+K6lhGbiOMWGZPea+3Cr6SYBS7CxFk9V+eqTNgsLzk9IMet3LH5cEJA==","signatures":[{"sig":"MEUCIEB7o4frpSz66ADQqTXoPVL1Gm4B6KUhSBy84+ILlv2VAiEAuvGcHnGIEu4wtmbBgCmQJJJYhvgoD3rCJB5vLnJ+Zpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":624888},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"87de11c4884ee3c1dab18d079cc3cdc791733b9a","private":false,"scripts":{"test":"vitest run","build":"tsc","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.4.2_1788095399075_0.7076686107915284","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@saluzi/min","version":"1.4.3","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.4.3","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"6bddb3df794721fa75da1414c0382d11f38cb91f","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.4.3.tgz","fileCount":67,"integrity":"sha512-NehVBFloNdAZY5QtJDnoxALTa7zspQ4LaoFnMEed1Cq8WD7e+Qi/E5jSh+92lLp5llUUUgRSaEQ8OjMqajfH/w==","signatures":[{"sig":"MEUCIDgyDDmzf5C1eRVItFjQnp1Z3/IN5XM7JxAjrlSSqONVAiEAmvYShZv5/GgI5ZwLrgCx2Dyyv/kJ0NY8wYPK8ilOofo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440544},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fb599d5acafb45005e5eadbdf280f17efc5d3563","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.4.3_1788097017776_0.4289056273179761","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@saluzi/min","version":"1.5.0","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.5.0","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"8dfc210ca707452a05cd235e9c1bb803080bf972","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.5.0.tgz","fileCount":71,"integrity":"sha512-jYowFqqClR85o5STe4whQh88t0Hzwk3h0JkCHpZ4QBUqpaHKpJ9kd/e9cPIipbY5vC3UNGWIMXlO18acpKtoHA==","signatures":[{"sig":"MEUCIHy5jkY81uBxLavRGxglw+Wss6Fknrt98PqKSNeSyuUsAiEAjHhBHpLww1p/xY/mHrVGSu9KgJx0Vo7Mty7DIUARnx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472337},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"883f24b1f9ae2edb50681aa8292951adf94610c6","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.5.0_1788101557665_0.00854581861437298","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@saluzi/min","version":"1.5.1","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.5.1","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"8bac6d1d99426a70cbd623bf341a789dc22cfdd4","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.5.1.tgz","fileCount":73,"integrity":"sha512-ud+/KCDbHlpLXXK4W56Up2c+Zy21IAfimgq1wHYQdPVVMfFLUamTVZgbtxjijVgNwRsZ8QMedh4b8kPyKIwbuA==","signatures":[{"sig":"MEYCIQDWZZhgpnoHmNpwmyLSHIT+GGncJ1b0G07xFsr7FCw1QwIhAP6OPc3dsH0H5H3NAn2HxZzbyyuJDdKgPHJHplkHOVXx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511062},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a7b967822a2d7e893a288e5b46f8becfbbfa4abe","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"11.9.0","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.5.1_1788108408051_0.4089226740826659","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@saluzi/min","version":"1.5.2","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.5.2","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"fc4b708b61132754df4e22f5ed01983073262f6e","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.5.2.tgz","fileCount":73,"integrity":"sha512-liJ7pW/DWycl+7xTa83l06wJApLmydea4EsaU3mAqg0ZyiAPCHkMEDR5pwp1LYDLEdQMMelml98H0Fn2dQy4LQ==","signatures":[{"sig":"MEUCIFgxZpjYex4wDnq+blfGb2Av0J6oeQw5wTHFq4pRruu3AiEA1EaOz/PJvkKDQiJYISX+OoKY7c0Uhn/22kfOpsnlnZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513268},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e2d614d368feb8f8d44e67da958bfd8bba39e921","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.5.2_1788145793269_0.9760846261307763","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@saluzi/min","version":"1.5.3","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.5.3","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"90b9a68f0c666bfbf384d286c55ae0284e13d83c","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.5.3.tgz","fileCount":73,"integrity":"sha512-WdNZIKToIcQ7NVqije5D9BLd3hIpoIooB/tFJLEtxbmKXg4jZWuSAvz1HDz+Zy9wO4sHSDzu0KX17b42ihQkxA==","signatures":[{"sig":"MEYCIQDEsPya9tp2IITieviNMsOzNQNAkjucCE84ZnUhXaHXkwIhAJNcRdehxwzaP4w4a4hHJmr45xu7s0Iv8B+okGk/GgTS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514771},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fed7b16fb12ef0e66acce47a4617dac94014bcb9","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.5.3_1788148181639_0.02475583460931685","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@saluzi/min","version":"1.5.4","keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","_id":"@saluzi/min@1.5.4","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"bin":{"mina":"dist/cli.js","min-agent":"dist/cli.js"},"dist":{"shasum":"500325da9899c4e337db567c8d5a9bf100aa4666","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.5.4.tgz","fileCount":73,"integrity":"sha512-UVV94UVgHzBGRSN8woPIQ3ayTQXLiWG8xm9y7EEklrE0Ot3vkshfq3Z2sjdo5B6XGCHLueJ35b3AXrqegG2N1g==","signatures":[{"sig":"MEYCIQCg60tqJoqP81UBL2b7RssnhmJMi7lGIpoOQs3JgqjXVgIhANuuOeosVsxhnZgrNchn0n7ewU94i9g81r+ZM3ofsD/8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517801},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a9a61b53ef379b79b6ab7c165a9b119d3b12b595","private":false,"scripts":{"test":"vitest run","build":"bun run build.ts","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"_npmVersion":"10.9.4","description":"Min Agent: minimum agent for edge devices","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","vitest":"^1.6.0","@types/bun":"latest","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/min_1.5.4_1788159477330_0.8875719674662499","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@saluzi/min","version":"1.6.0","description":"Min Agent: minimum agent for edge devices","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"min-agent":"dist/cli.js","mina":"dist/cli.js"},"scripts":{"build":"bun run build.ts","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","start":"tsx src/index.ts","prepublishOnly":"npm run typecheck && npm test && npm run build"},"keywords":["agent","coding-agent","ai","llm"],"author":"","license":"MIT","devDependencies":{"typescript":"^5.5.0","vitest":"^1.6.0","tsx":"^4.16.0","@types/node":"^20.14.0","@types/bun":"latest"},"private":false,"_id":"@saluzi/min@1.6.0","gitHead":"8cc6b7bbef39ded42ab3399424a29644b40baa88","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-C12FisxhNTKJa60gw/g7T0wpH53LnYB0MX/r66nVYAEK7DI10wOqTAn9yoZgh5sXp81IMZ+Eof8KUgcIRpt77w==","shasum":"3f106ebde3cf4fa34d7c372f22a2c065531c7f06","tarball":"https://registry.npmjs.org/@saluzi/min/-/min-1.6.0.tgz","fileCount":73,"unpackedSize":531128,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDM5yQzb7GtW1Hup5OGDJLC1bSiFGrEr+jv/BnLN9PIMQIgPMJVCEaj4kHdYPg2Qu5JmXzyJp8IX+WJZIGrMwVSUTU="}]},"_npmUser":{"name":"saluzi","email":"pri1512ljl@163.com"},"directories":{},"maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/min_1.6.0_1788178868334_0.5395283366443324"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-22T15:00:56.185Z","modified":"2026-08-31T12:21:08.616Z","1.0.0":"2026-08-22T15:00:56.700Z","1.0.1":"2026-08-22T15:14:41.405Z","1.0.2":"2026-08-22T15:52:24.759Z","1.0.3":"2026-08-23T05:44:35.025Z","1.0.4":"2026-08-23T05:55:56.950Z","1.0.5":"2026-08-23T15:21:32.690Z","1.1.0":"2026-08-23T16:54:20.001Z","1.1.1":"2026-08-24T03:07:09.400Z","1.1.2":"2026-08-25T09:55:22.133Z","1.1.3":"2026-08-25T11:42:00.990Z","1.1.4":"2026-08-25T12:37:41.899Z","1.1.5":"2026-08-26T02:12:17.346Z","1.1.6":"2026-08-26T06:09:09.855Z","1.1.7":"2026-08-26T07:24:00.939Z","1.1.8":"2026-08-26T08:21:50.382Z","1.1.9":"2026-08-27T06:10:36.350Z","1.1.10":"2026-08-27T11:22:45.513Z","1.1.11":"2026-08-27T11:41:41.853Z","1.2.0":"2026-08-27T13:16:29.065Z","1.2.1":"2026-08-29T11:37:33.350Z","1.2.2":"2026-08-30T03:30:47.963Z","1.3.0":"2026-08-30T09:55:54.173Z","1.3.1":"2026-08-30T10:04:52.369Z","1.3.2":"2026-08-30T10:14:56.659Z","1.3.3":"2026-08-30T12:06:07.912Z","1.4.0":"2026-08-30T12:48:02.385Z","1.4.1":"2026-08-30T12:59:58.668Z","1.4.2":"2026-08-30T13:09:59.227Z","1.4.3":"2026-08-30T13:36:57.950Z","1.5.0":"2026-08-30T14:52:37.821Z","1.5.1":"2026-08-30T16:46:48.206Z","1.5.2":"2026-08-31T03:09:53.435Z","1.5.3":"2026-08-31T03:49:41.799Z","1.5.4":"2026-08-31T06:57:57.509Z","1.6.0":"2026-08-31T12:21:08.471Z"},"license":"MIT","keywords":["agent","coding-agent","ai","llm"],"description":"Min Agent: minimum agent for edge devices","maintainers":[{"name":"saluzi","email":"pri1512ljl@163.com"}],"readme":"# min-agent\n\nA minimal coding agent for edge devices. TypeScript, ESM, runs on Bun or Node.\n\n`@saluzi/min` implements the smallest usable coding-agent core: a reasoning\nloop, a handful of file/shell tools, opt-in context-window compaction, path-safe\npermissions, a model/provider layer, and a plugin system that makes tools,\nhooks, prompts, skills, and compaction replaceable or extendable — all without\nhot-loading.\n\n## Install\n\n```bash\nbun install\n```\n\n## Build\n\n```bash\nbun run build      # tsc → dist/\n```\n\n## CLI\n\n```bash\nbun run dist/cli.js [options] [message]\n```\n\nOr after `bun link` / global install:\n\n```bash\nmin-agent [options] [message]\nmina     [options] [message]\n```\n\nOptions:\n\n| Option | Description | Default |\n| --- | --- | --- |\n| `--model <spec>` | Model spec `[provider:]model-id` (see [Models](#models)) | resolved (see [Models](#models)) |\n| `--base-url <url>` | Override the API base URL for this run (writes the provider's dedicated `<PROVIDER>_BASE_URL`) | — |\n| `--cwd <path>` | Working directory | current directory |\n| `--project-root <path>` | Project root (for path safety) | `cwd` |\n| `--max-turns <n>` | Max LLM iterations per user turn | `100` |\n| `--permission <mode>` | `default` \\| `acceptWrite` \\| `bypass` | `default` |\n| `--skills-dir <path>` | Directory to scan for `SKILL.md` files | resolved (see [Skills](#skills)) |\n| `--skill <name>` | Load only this skill (repeatable) | — |\n| `--workflows-dir <path>` | Directory to scan for `*.workflow.json` files | resolved |\n| `--workflow <name>` | Load only this workflow (repeatable) | — |\n| `--plugins-dir <path>` | Directory to scan for file plugins (`plugin.json`) | resolved (see [Plugins](#plugins)) |\n| `--trust-plugin <name>` | Trust a named file plugin's code for this run (repeatable) | — |\n| `--trust-plugins` | Trust all file plugins for this run (automation) | — |\n| `--compact` | Enable context compaction (see [Compaction](#compaction)) | off |\n| `--compact=<path>` | Enable compaction with an external strategy module | — |\n| `--sandbox` | Enable the OS-level bash sandbox (see [Sandbox](#sandbox)) | off |\n| `--debug` | Enable debug logging to `~/.min/debug.log` | — |\n| `--save-settings[=user\\|project]` | Persist the current configuration face to a [settings file](#settings), then exit | `user` |\n| `--help` | Show help | — |\n\nPass a positional `message` for single-shot mode; omit it for interactive mode.\n\n### Settings\n\nmin's configuration surface is environment variables, so its settings file is\nnot a parallel config system — it is a **persistent layer of env defaults**.\nShape is exactly `{ \"env\": { \"KEY\": \"value\" } }`; every env var the agent\nreads works there, with no schema to maintain:\n\n```json\n// ~/.min/settings.json\n{\n  \"env\": {\n    \"MIN_DEFAULT_MODEL\": \"openai_compat:qwen2.5-coder:7b\",\n    \"OPENAI_COMPATIBLE_BASE_URL\": \"http://lan-host:11434/v1\",\n    \"OPENAI_COMPATIBLE_API_KEY\": \"ollama\",\n    \"MIN_MAX_CONTEXT_TOKENS\": \"32768\",\n    \"OPENAI_MAX_TOKENS\": \"4096\"\n  }\n}\n```\n\nTwo files load on every run — `~/.min/settings.json` (user) then\n`<cwd>/.min/settings.json` (project, later wins) — and each entry fills an\n**unset** slot of the environment. That single rule yields the whole priority\nchain for free:\n\n```\nCLI flags > exported env vars > project settings > user settings\n```\n\nSave the current run's flags instead of writing JSON by hand:\n\n```bash\nmina --model openai_compat:qwen2.5-coder:7b --base-url http://lan-host:11434/v1 \\\n     --compact --save-settings        # → ~/.min/settings.json\n# thereafter: plain `mina` starts with the same setup\n```\n\n`--save-settings=project` puts behavior keys into `.min/settings.json` while\ncredentials and `*_BASE_URL` routing are always split to the user file — a\ncommitted project file never carries secrets. (This is also enforced on load:\na project file cannot set `*_BASE_URL` / `*_API_KEY` / `*_AUTH_TOKEN` or the\nloader-path vars; those are refused with a warning. The user file is yours and\napplies unconditionally.) `MIN_SETTINGS=0` disables the layer before any file\nis read.\n\n### Interactive mode\n\n- **Model banner** — startup prints `▶ model <id> · provider <p>` so a\n  misrouted model is visible immediately (single-shot mode stays quiet).\n- **Turn counter** — a *turn* is one user input. The `─── Turn N ───` banner\n  appears once per message you send and grows across the session; tool calls\n  and extra LLM round-trips within a run do not advance it.\n- **Multi-line paste** — pasting multi-line text inserts a compact tag into\n  the input line, e.g. `You: summarize this [Pasted text #1 +12 lines]`. The\n  full pasted content is stored and sent to the model when you press Enter\n  (single-line pastes are inserted verbatim). Works via bracketed-paste mode\n  on modern terminals, with a timing fallback elsewhere.\n- **Ctrl+C** — aborts the current run; press twice at the prompt to exit.\n  During an approval prompt it denies the tool call and aborts.\n\n### Examples\n\n```bash\n# OpenAI — zero flags: the single provider with credentials is picked up\nOPENAI_API_KEY=sk-... OPENAI_MODEL=gpt-4o min-agent\n\n# Claude via Anthropic proxy\nANTHROPIC_BASE_URL=https://my-proxy.com ANTHROPIC_AUTH_TOKEN=sk-... \\\n  min-agent --model claude-sonnet-4-5\n\n# Local Ollama model (OpenAI-compatible) with a small context window.\n# Model ids containing a colon need the openai_compat: prefix.\nOPENAI_COMPATIBLE_BASE_URL=http://localhost:11434/v1 \\\n  OPENAI_COMPATIBLE_API_KEY=ollama MIN_MAX_CONTEXT_TOKENS=32768 \\\n  OPENAI_MAX_TOKENS=4096 min-agent --model openai_compat:qwen2.5-coder:7b\n\n# DeepSeek (OpenAI-compatible endpoint; the base URL is required)\nOPENAI_COMPATIBLE_API_KEY=sk-... \\\n  OPENAI_COMPATIBLE_BASE_URL=https://api.deepseek.com/v1 \\\n  min-agent --model deepseek-chat\n\n# Enable auto-compaction, triggering at 50% of the context window\nMIN_AUTOCOMPACT_PCT=50 min-agent --compact --model gpt-4o\n\n# Enable compaction with an external strategy module\nmin-agent --compact=./my-compact.mjs --model gpt-4o\n\n# Bypass permissions (sandboxed/automation only)\nmin-agent --permission bypass --model gpt-4o\n\n# Sandbox bash at the OS level instead of bypassing permissions:\n# sandboxed commands are auto-approved, so automation stays unattended\n# while writes/network stay fenced (bubblewrap on Linux, sandbox-exec on macOS)\nmin-agent --sandbox --model gpt-4o\n\n# Load file plugins and trust a code plugin\nmin-agent --trust-plugin web-tools --model gpt-4o\n```\n\n## Environment variables\n\n**Auth**\n\n| Var | Provider |\n| --- | --- |\n| `OPENAI_API_KEY` | openai |\n| `ANTHROPIC_API_KEY` | anthropic |\n| `ANTHROPIC_AUTH_TOKEN` | anthropic proxies (sent as `Bearer`) |\n| `OPENAI_COMPATIBLE_API_KEY` | openai_compatible |\n\n**Model selection** (when `--model` is omitted)\n\n| Var | Effect |\n| --- | --- |\n| `MIN_DEFAULT_MODEL` | Default model spec, same syntax as `--model` (highest priority) |\n| `OPENAI_MODEL` | Model id for the openai provider (requires `OPENAI_API_KEY`) |\n| `ANTHROPIC_MODEL` | Model id for the anthropic provider (requires `ANTHROPIC_API_KEY` / `ANTHROPIC_AUTH_TOKEN`) |\n| `OPENAI_COMPATIBLE_MODEL` | Model id for the openai_compatible provider (requires `OPENAI_COMPATIBLE_API_KEY`) |\n\nWhen `--model` is omitted, the agent picks the **single** builtin provider\nthat has credentials and uses its `<PROVIDER>_MODEL`. Zero or multiple\nproviders with credentials → an actionable startup error listing the three\nconfiguration ways. Fail loud beats guessing.\n\n**Base URL**\n\n| Var | Effect |\n| --- | --- |\n| `OPENAI_BASE_URL` | Redirects the `openai` provider |\n| `ANTHROPIC_BASE_URL` | Redirects the `anthropic` provider |\n| `OPENAI_COMPATIBLE_BASE_URL` | Redirects the `openai_compatible` provider only |\n| `<PROVIDER>_BASE_URL` | Redirects a plugin-registered provider |\n\nLegacy: `OPENAI_BASE_URL` still redirects `openai_compatible` when\n`OPENAI_COMPATIBLE_BASE_URL` is unset. `--base-url` always writes the\ndedicated variable, so redirecting a compat provider never hijacks the\nofficial openai endpoint.\n\n**Debug**\n\n| Var | Effect |\n| --- | --- |\n| `MIN_DEBUG` | `1` / `true` / `verbose` enables debug logging |\n| `MIN_DEBUG_FILE` | Override log file path (default `~/.min/debug.log`) |\n| `MIN_DEBUG=stderr` | Mirror logs to stderr in human-readable form |\n\n**Context window & compaction** (compaction is OFF by default — enable with\n`--compact` / `--compact=<path>`; the compaction vars below only take effect\nonce it is on)\n\n| Var | Effect |\n| --- | --- |\n| `MIN_MAX_CONTEXT_TOKENS` | Override the effective context window (any model). Highest priority. |\n| `MIN_AUTO_COMPACT_WINDOW` | Secondary context window override, for local/custom models. |\n| `OPENAI_MAX_TOKENS` | Override max output tokens for `openai` + `openai_compatible`. |\n| `MIN_MAX_OUTPUT_TOKENS` | Generic max output tokens override (any provider). |\n| `MIN_AUTOCOMPACT_PCT` | Percentage threshold (0–100) to trigger autocompact. Only makes it more aggressive. |\n| `MIN_KEEP_RECENT_TOKENS` | Override keep-recent token budget (default `20000`). |\n| `MIN_RESERVE_TOKENS` | Override reserve token budget (default `16384`). |\n| `DISABLE_COMPACT` | Disable compaction entirely — even when `--compact` is passed. |\n| `DISABLE_AUTO_COMPACT` | Disable auto-compact only. |\n\n**Sandbox** (bash confinement, OFF by default — enable with `--sandbox` or\n`MIN_SANDBOX=1`; see [Sandbox](#sandbox))\n\n| Var | Effect |\n| --- | --- |\n| `MIN_SANDBOX` | Truthy (`1`/`true`/`yes`/`on`) enables the sandbox with defaults, or with `.min/sandbox.json` when present. An explicit `sandbox: false` config beats this env var. |\n\n## Models\n\nA model spec is `[provider:]model-id`, split at the **first** colon. There is\nno per-model builtin table — snapshot-dated ids rot, and aliases silently\nmapped to stale models. Resolution order:\n\n1. **Explicit provider prefix** — `anthropic:claude-sonnet-4-5`,\n   `openai_compat:qwen2.5-coder:7b` (`openai_compat` is an input alias for\n   `openai_compatible`; the rest of the string is the model id, colons\n   included). The provider must be registered (builtin or plugin) — an\n   unknown prefix fails at startup with the registered-provider list instead\n   of silently routing your API key to a fallback host.\n2. **Plugin-registered models** — a bare id matching some provider's\n   `models: [...]` entry (see [Custom providers](#custom-providers)).\n3. **Brand inference** (prefix-only, never version-aware):\n   `claude*` → anthropic, `gpt*` / `chatgpt*` / `o<digit>*` → openai.\n4. **Fallback** — any other bare id resolves to `openai_compatible`, so local\n   models work by id: `--model qwen2.5-coder` with\n   `OPENAI_COMPATIBLE_BASE_URL` pointed at Ollama/vLLM.\n\nBare ids that **contain a colon** (Ollama-style `qwen2.5-coder:7b`) must be\nprefixed explicitly (`openai_compat:qwen2.5-coder:7b`) — a colon always means\n\"provider prefix\".\n\nWhen `--model` is omitted, the default is `MIN_DEFAULT_MODEL` or the single\nbuiltin provider with credentials (`<PROVIDER>_MODEL` + key, see\n[Environment variables](#environment-variables)).\n\nContext window / max output tokens default to 128k / 16k for every model;\noverride via `MIN_MAX_CONTEXT_TOKENS` / `OPENAI_MAX_TOKENS` /\n`MIN_MAX_OUTPUT_TOKENS` (see the env tables), or declare exact values on a\nplugin provider's model entries.\n\n### Migration (v1.2)\n\n- **Aliases removed** — `claude`, `sonnet`, `gpt4`, `deepseek` no longer map\n  to fixed snapshots. Use full ids (`claude-sonnet-4-5`) or specs.\n- **Colon-containing ids need a prefix** — `--model qwen2.5-coder:7b` →\n  `--model openai_compat:qwen2.5-coder:7b`.\n- **DeepSeek is no longer a builtin endpoint** — set\n  `OPENAI_COMPATIBLE_BASE_URL=https://api.deepseek.com/v1` (see the example\n  above).\n- **Metadata changes** — claude models previously carried a 200k context\n  window from the builtin table; they now use the 128k default (auto-compact\n  triggers earlier). Override with `MIN_MAX_CONTEXT_TOKENS` if you rely on\n  the larger window.\n- **Multiple keys** — with credentials for 2+ providers set, the agent used\n  to silently default to `gpt-4o`; it now fails at startup and asks you to\n  pick explicitly.\n\n## Programmatic API\n\n```ts\nimport { MinAgent } from \"@saluzi/min\";\n\nconst agent = new MinAgent({\n  // model is optional: omitted → MIN_DEFAULT_MODEL, or the single builtin\n  // provider with credentials. String specs use the [provider:]model-id\n  // syntax; a prebuilt ModelConfig object also works.\n  model: \"gpt-4o\",\n  cwd: process.cwd(),\n  permissionMode: \"default\",  // requires askUser for default/acceptWrite\n  askUser: async (toolCall, reason) => true,\n  // plugins: [...],           // configuration-time only\n  // skillsDir: \"./.min/skills\",\n  // compaction: true,         // enable auto-compaction (off by default);\n  //                            // or \"./my-compact.mjs\" for an external strategy\n});\n\nconst result = await agent.run(\"Add a vitest test for src/utils/env.ts\");\nconsole.log(result.totalTurns, result.stoppedReason);\n\nagent.abort();                 // stop the current run at the next safe point\nagent.installSigintHandler();  // Ctrl+C → abort\n```\n\nKey exports: `MinAgent`, `createMinAgent`, `resolveModel`, `createDefaultTools`\n(and each tool factory), `MinimalSession`, plus the plugin/skills helpers shown\nunder [Plugins](#plugins) and [Skills](#skills).\n\n## Tools\n\nBuilt-in tools: `bash`, `read`, `write`, `edit`, `grep`, `ls`, `find`.\n\n- Concurrent writes to the same file are serialized automatically.\n- File operations are confined to the working/project root (no traversal outside it).\n- Tool output is truncated to protect the context window.\n- `read` shows at most the first 2000 lines (or first 50KB) of a file and\n  includes the next `startLine` to continue from; files above 5MB are refused.\n\n## Permissions\n\nThree modes:\n\n- `default` — ask before `bash` / `write` / `edit` (requires `askUser`).\n- `acceptWrite` — writes allowed, still asks for shell.\n- `bypass` — no prompts (sandbox/automation only).\n\nApproval is requested through your `askUser` callback; output is also guarded\nagainst context overflow.\n\n## Sandbox\n\nThe sandbox confines **bash commands and their child processes** at the OS\nlevel — the same shape as the permission system's guardrails, but enforced by\nthe kernel instead of by prompting. It is a replaceable plugin and **off by\ndefault**: enable with `--sandbox`, `sandbox: true` in the programmatic API,\nor `MIN_SANDBOX=1`.\n\n```bash\nmin-agent --sandbox --model gpt-4o\n```\n\nWhat the default policy enforces:\n\n- **Filesystem** — writes confined to the working directory and the temp dir;\n  everything else is read-only. On Windows the writable temp is a dedicated\n  Low-integrity dir (`%TEMP%\\min-sandbox-low`, where TMP/TEMP point inside\n  the sandbox) — the real `%TEMP%` is never labeled. Credential directories\n  (`~/.ssh`, `~/.aws`, `~/.gnupg`) are unreadable. Inside the writable area,\n  `.min/` and `.git/hooks/` stay read-only (a sandboxed command must not be\n  able to grant itself plugin trust or a git hook).\n- **Network** — disabled entirely (`--unshare-net` on Linux, `(deny network*)`\n  on macOS). No proxy, no domain allowlist: for an edge-device agent a hard\n  off-switch is the honest option. On Windows the network policy is **not\n  enforced** — there is no unprivileged primitive that isolates networking\n  without also destroying the read-everything filesystem semantics\n  (AppContainer processes cannot read user files at all; WFP needs admin).\n- **Environment** — provider API keys (`OPENAI_API_KEY`,\n  `ANTHROPIC_AUTH_TOKEN`, …) are stripped from the bash environment; a shell\n  command has no legitimate use for the agent's own credentials.\n- **Approvals** — sandboxed bash is auto-approved, so `--sandbox` replaces\n  `--permission bypass` for unattended automation. The dangerous-command\n  blocklist (`rm -rf /`, fork bombs, `curl | bash`, …) still runs first and\n  cannot be approved away; write/edit tools keep their normal permission flow.\n\nBackends: bubblewrap on Linux/WSL2 (`apt install bubblewrap`), `sandbox-exec`\n(Seatbelt) on macOS — both probed at startup by running a minimal sandboxed\nno-op, because `bwrap` being on `PATH` says nothing (AppArmor on Ubuntu 24.04+\ncan block the user namespaces it needs). On Windows the backend is a\nrestricted-token / Low-integrity launcher built from the OS primitives:\ncommands run under a Low-IL token (the default NO_WRITE_UP policy makes every\nunlabeled file — implicitly Medium — read-only), writable roots carry an\ninheritable Low label, `denyRead` paths get a Medium + NO_READ_UP label (reads\ndenied for Low-IL processes, unaffected for you), and the whole process tree\nlives in a kill-on-close job object that also fires when the agent dies.\nIntegrity labels are permanent — they outlive min itself — which is why the\ndefault writable roots are the working directory and the dedicated Low temp\ndir (`%TEMP%\\min-sandbox-low`, where sandboxed commands' TMP/TEMP point);\nthe real `%TEMP%` is never labeled. (If an earlier release labeled your real\n`%TEMP%` Low, restore the OS default with\n`icacls %TEMP% /setintegritylevel (OI)(CI)medium`.) A\ntiny C# helper implements this and is compiled on first use with the `csc.exe`\nevery Windows machine ships (cached under `%LOCALAPPDATA%\\min-sandbox`, source\nkept next to the exe for inspection) — no SDK, no downloads, no added\ndependencies. Two caveats: the network policy is not enforced (see above), and\nlabeling requires NTFS — on FAT/exFAT volumes the probe fails and min warns\nand continues unsandboxed. When the backend is unavailable, min warns and\ncontinues unsandboxed; set `failIfUnavailable: true` to make that a hard error\ninstead.\n\nTune the policy with `.min/sandbox.json` (project) or `~/.min/sandbox.json`\n(global; project wins). Arrays replace the defaults:\n\n```json\n{\n  \"network\": \"off\",\n  \"allowWrite\": [\".\", \"/tmp\"],\n  \"denyWrite\": [\".env\"],\n  \"denyRead\": [\"~/.ssh\", \"~/.aws\"],\n  \"denyEnv\": [\"GITHUB_TOKEN\"],\n  \"autoApprove\": true,\n  \"failIfUnavailable\": false\n}\n```\n\nA sandboxed command that hits the fence fails with the OS error, and min\nappends a `[sandbox]` hint naming the allowed write roots so the model can\nadjust instead of retrying blindly. File tools are unaffected — they are\nalready confined to the project root by path safety.\n\n## Compaction\n\nCompaction is a **replaceable plugin** and is **off by default** — the core\nloop never compacts unless a strategy is registered. Enable the builtin\nauto-compaction with `--compact` (or `compaction: true` in the programmatic\nAPI): when the context approaches the window limit, the loop finds a cut\npoint, summarizes the dropped messages through the main model, and keeps a\nrecent tail. Thresholds are tuned by the env vars above; `DISABLE_COMPACT=1`\nis a kill switch that wins over the flag.\n\nPoint at an **external compact** with `--compact=<path>` (or\n`compaction: \"./my-compact.mjs\"`). The module's default export is either a\n`CompactionStrategy` object or a bare async function; both receive the current\nentries, model config, and stream function, and return a `CompactionResult`\n(or `null` when nothing should be compacted):\n\n```js\n// my-compact.mjs — an external compaction strategy\nexport default async (entries, model, streamFn) => {\n  // …your own threshold / cut-point / summarizer logic…\n  return {\n    type: \"compaction\",\n    summary: \"…\",\n    tokensBefore: 12345,\n    retainedTail: [/* AgentMessage[] kept after the cut */],\n  };\n};\n```\n\nAny plugin can also replace compaction at setup time via\n`host.setCompactionStrategy(...)` (last-writer-wins), and tune it with\n`host.setCompactionSettings(...)` — including the `\"compaction\"` field of a\n`plugin.json` manifest. A failed external-module load warns and leaves\ncompaction off (it never silently falls back to the builtin summarizer).\n\n## Plugins\n\nA plugin runs at construction time and may replace or add capabilities — no\nhot-loading. Through the `PluginHost` a plugin can:\n\n- register/replace tools\n- add `beforeToolCall` / `afterToolCall` hooks\n- add prompt sections, guidelines, context files, or replace the prompt builder\n- replace the stream function, session storage, or compaction strategy\n- add context transforms, steering/follow-up message sources\n- **register custom model providers** (`host.registerProvider`)\n- publish capabilities on a `CapabilityBus` (consumed by other plugins)\n\n### Programmatic plugins\n\n```ts\nimport { MinAgent, type MinPlugin } from \"@saluzi/min\";\n\nconst myPlugin: MinPlugin = {\n  name: \"style\",\n  setup(host) {\n    host.addTool(myTool);\n    host.beforeToolCall(myGuard);\n    host.addPromptSection({ heading: \"Style\", body: \"Prefer named exports.\" });\n  },\n};\n\nnew MinAgent({ model: \"gpt-4o\", plugins: [myPlugin] });\n```\n\n### File plugins\n\nDrop a `plugin.json` manifest into `.min/plugins/<name>/` (project-local) or\n`~/.min/plugins/<name>/` (user-global). A manifest can declare tools,\nproviders, prompt sections, guidelines, and more — declaratively (no code) or\nwith code modules (`tools[].module`, `module`, `provider.streamModule`).\n\n```\n.min/plugins/\n  web-tools/\n    plugin.json          # manifest: tool declarations + refs\n    web_search.mjs       # tool execute implementation\n```\n\n```json\n{\n  \"name\": \"web-tools\",\n  \"tools\": {\n    \"items\": [\n      {\n        \"name\": \"web_search\",\n        \"description\": \"Search the web.\",\n        \"parameters\": { \"type\": \"object\", \"properties\": { \"q\": { \"type\": \"string\" } }, \"required\": [\"q\"] },\n        \"module\": \"./web_search.mjs\"\n      }\n    ]\n  }\n}\n```\n\n```js\n// web_search.mjs — export default a ToolExecutor\nexport default async (args, ctx) => {\n  ctx.onUpdate?.(\"searching...\");\n  return { content: \"results...\", isError: false };\n};\n```\n\n**Code modules require trust** (`--trust-plugin <name>` or `trust.json`);\nuntrusted plugins apply only their declarative fields — with one exception:\nthe `provider` field also requires trust (it redirects LLM traffic and\nattaches credentials). See `~/.min/plugins/plugins.md` for the full guide\n(auto-generated on first run).\n\n### Custom providers\n\nRegister a provider via `host.registerProvider(def)` or the `provider` field\nin `plugin.json`. `api: \"openai\" | \"anthropic\"` reuses the builtin protocol;\n`streamModule` gives a fully custom stream handler. Security rules: provider\nregistration requires trust; `apiKeyEnv`/`authTokenEnv` must stay in the\nprovider's namespace (`<PROVIDER>_API_KEY` / `<PROVIDER>_AUTH_TOKEN`); builtin\nprovider names (`openai` / `anthropic` / `openai_compatible`) are reserved —\nredirect them with their dedicated `*_BASE_URL` vars or `--base-url`.\n\n```json\n{\n  \"name\": \"gemini-bridge\",\n  \"provider\": {\n    \"name\": \"gemini\",\n    \"api\": \"openai\",\n    \"baseUrl\": \"https://generativelanguage.googleapis.com/v1\",\n    \"apiKeyEnv\": \"GEMINI_API_KEY\",\n    \"models\": [{ \"modelId\": \"gemini-1.5-pro\", \"contextWindow\": 1000000, \"maxOutputTokens\": 8192 }]\n  }\n}\n```\n\nThen `min-agent --model gemini-1.5-pro` resolves via the provider's model\nlist. `ModelConfig.provider` is a plain string, so any provider name works.\n\n## Skills\n\nAgent-Skills convention: each skill is a `SKILL.md` file with YAML frontmatter\n(`name`, `description`, optional `disable-model-invocation`). Only frontmatter is\nloaded — the body is read on demand by the LLM via the `read` tool (lazy\nloading). Skills are injected as a pure plugin that adds a catalog section to\nthe system prompt.\n\nResolution (first non-empty existing directory wins):\n\n1. `--skills-dir` / `MinAgentConfig.skillsDir`\n2. `MIN_SKILLS_DIR` env var\n3. `<cwd>/.min/skills/` (project-local)\n4. `~/.min/skills/` (user-global)\n\n### Selecting / disabling skills (allowlist / denylist)\n\nAn optional `skills.config.json` in the skills directory selects or excludes\nskills by their frontmatter `name` (mirrors `workflows.config.json`):\n\n```json\n{ \"enabled\": [\"plan\", \"review\"], \"disabled\": [\"experimental\"] }\n```\n\n`--skill <name>` (repeatable) / `MinAgentConfig.skills` sets an explicit\nallowlist that overrides `enabled` — only the named skills load:\n\n```bash\nmin-agent --skill plan --skill review --model gpt-4o\n```\n\n```bash\nmkdir -p .min/skills\ncat > .min/skills/release.md <<'EOF'\n---\nname: release\ndescription: Cut a new release bump and tag.\n---\n1. Run `bun run build`.\n2. Bump version in package.json.\n3. Commit and tag.\nEOF\n```\n\n## Scripts\n\n```bash\nbun run build        # tsc\nbun run test         # vitest run\nbun run test:watch   # vitest\nbun run typecheck    # tsc --noEmit\nbun run start        # tsx src/index.ts\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}