{"_id":"@goodandready/dsh-key-rotation","_rev":"75-c52000088788be062c2c74ef01ce3025","name":"@goodandready/dsh-key-rotation","dist-tags":{"latest":"0.8.24"},"versions":{"0.4.0":{"name":"@goodandready/dsh-key-rotation","version":"0.4.0","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.4.0","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"dd60a8211fff37f462a4d833b021be4f2f9a76a0","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.4.0.tgz","fileCount":6,"integrity":"sha512-Z0pC1UkZiOA1VnacLPFcRCO35OS++sEutEwFzAHWr9PvefY44y+npm2mndiUPsrEEWS41+cyIfPCE6BFk8Zniw==","signatures":[{"sig":"MEQCICz3QuAzN5lL+AMexdHpGLvrTSo+7n0igPyhOHA9yb2hAiBaZWW4efEVcOASWg+B9+PyGBvs4vCUVToUA4KPutqcTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36209},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"8acc1f5289a2712dbc5fa8228e3e9394efd90ac5","_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.4.0_1787043466160_0.9431549587014092","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@goodandready/dsh-key-rotation","version":"0.4.1","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.4.1","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"d9486c534d4fc85706fda66170d8c0defcb16afd","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.4.1.tgz","fileCount":6,"integrity":"sha512-2cZ5n2AMmQtipJvYleU2Xk1QG457ENX3q70ROGKAEVf8ae1kEF+8GWWTsALb0EU56JjwaIqgB6ObQ+4ahZgveA==","signatures":[{"sig":"MEYCIQCbk3WuXMxmKf/i4vLtvHJji9aUpbgciQNZrAqGQGZfhAIhAPd+2PjS8ivpEX0Drtucysi+FkQqJlizwAzFVT0vQ8R6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36296},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"0e61911566bf77f26f982fb5faab960770f910e2","_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.4.1_1787043760566_0.058115710834154344","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@goodandready/dsh-key-rotation","version":"0.5.0","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.0","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"3b00e9c5494ca09fa2a2ab72de702c3d90a064cd","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.0.tgz","fileCount":6,"integrity":"sha512-qQxf39lR5J7cweOQzaGmKUbmsKiRlEIoSbPTZodUGOd7SDlRFayx01vP8m10Lkb0B2Vi+WolXz3q1OGxN+oI/w==","signatures":[{"sig":"MEYCIQDESQaf2rCp54QAnSRouxRi3IgPpYyhOahZlZ38mEUoiwIhAP0+86M5oAfXHaenMGVK5s4uStm/6oLS7JUwpkjno/6U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60738},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"47f626d158a2919a38afe8b7132f14628ceff0bd","_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.0_1787166939586_0.3747990439814832","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@goodandready/dsh-key-rotation","version":"0.5.1","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.1","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"97843fe9811b784beba3e2d85aa2371847fdfde0","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.1.tgz","fileCount":6,"integrity":"sha512-FqlyZAhPqVVZJjarxe6zohjO+UPFR5NPrRiZntxOvKp1BvO5vJRC8DLfS3ymTyz7IpxkLEHlu4HYEj6zDnBjeg==","signatures":[{"sig":"MEUCIQC2NFhlGPVsH0I7R8HzXXQzmc8uTLK0Y8lFwhikCkCFMwIgee1Qw8ZsfRfFCNKgZxoFXkF2nR2L1ggprluYMOQQajk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60906},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"183686fbc6ae23b4c5c7985f205e6f4427843717","_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.1_1787167119253_0.4849759465639081","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@goodandready/dsh-key-rotation","version":"0.5.2","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.2","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"5e4de5657e2515cd04d9a78d65ffbb2b918ddc0a","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.2.tgz","fileCount":7,"integrity":"sha512-JvlzNxJGNKcgGtGnf0u093p5GrNaut7lA71lEh3w44o8TgJJnN4UXO2qqMPv8pxY3dKT7f4YS43K1+YkcYmo/g==","signatures":[{"sig":"MEQCIBPVChVnzENs5JxVUsy9ulLU409qMrVmkfiLjz3zRcalAiBDEvTF/gH766gzAv7zHvrOE+JO/67N0fDBh9wCVYELIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63776},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.2_1787510184169_0.03989152937704765","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@goodandready/dsh-key-rotation","version":"0.5.3","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.3","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"d829b779b6f53d281ea1827680d50d82cb8bb090","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.3.tgz","fileCount":7,"integrity":"sha512-EsS0W8gSCvfRYqndPUAgwMmTT+kPv4/Md9J67eJNY0OAcWvQnklolG9U6ZZ/X3U3rPbGyp8FFGKtmDaVPPiCgw==","signatures":[{"sig":"MEYCIQDjVubrlqSefTnuybIr8VQQovhlNGefSsL2afRRE6QlWQIhAOxB3zqpHI5TC/E1grXeffpY6FnWfDV/pMEVQNRFzb+U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63782},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.3_1787598898177_0.5986205184858249","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@goodandready/dsh-key-rotation","version":"0.5.4","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.4","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"390bff0eb6845bcca30835d4131a0d690b1eecdb","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.4.tgz","fileCount":7,"integrity":"sha512-kq7i+eb9CVCNg7wsyyGm+df1eCmfd5hhI5hJHAXFI9l/zjkriJIRUW/BV0xZo+JpT20g/LlHApQMLktNK6pbMw==","signatures":[{"sig":"MEQCIBnVxHNhUzRqKz8sEaWQmkecnIG/voj3na0IitCreKNeAiArG/oCQZLs0itILJB+BoWJzw7mY6IiJIvaX2zDvwkjMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71377},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"deprecated":"crash on load: Schema.number().optional is not a function, use 0.5.5","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.4_1787599564955_0.6446715834648207","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@goodandready/dsh-key-rotation","version":"0.5.5","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.5.5","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"9c33f93858e0be24de3f9308e6bd7a87aacc4741","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.5.5.tgz","fileCount":7,"integrity":"sha512-SQsPcnoCxLjpuw55EVhHvm65zLvuhWHCR8XmXWfpj8ZBxIMjLHGW5S08W5vE1BR5e+T1WuBcXlZXTktoBKdutQ==","signatures":[{"sig":"MEUCIQDlfk6qLtMmYKmUkbA4H3BfJ67v9dBw3MvIP2coT0gPtQIgeXJEdpy0K9dyIEFL8CNdQ2NXpKvwWzrTVNwiH9rYyJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71366},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.5.5_1787599652306_0.8655922212681939","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@goodandready/dsh-key-rotation","version":"0.6.0","keywords":["deepseek-harness","dsh","plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.6.0","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"b1d8a7aa938af60e46ced31ac05a488955682fe4","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.6.0.tgz","fileCount":7,"integrity":"sha512-zgoeIx7xIKBAtGZGUhVddBJIOAcL7mXnGvQAYB88EyfaIE69WKhQ0cEmqy1xk5/9S2tuA9hn447EL3HSpPsH/Q==","signatures":[{"sig":"MEUCIQCHmnDdRgXsNFdajZ2H8AQZqSJ8KYi1LNuSBy4fke3avQIgZLYwFAtmw7r5E+kMDA4D1WfBJGyUy7nkHhdpOD3c8ZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72784},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.6.0_1787599933930_0.6027129654414156","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@goodandready/dsh-key-rotation","version":"0.6.1","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.6.1","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"e2dc22db7e36fc4297d0d90b2491467b46826350","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.6.1.tgz","fileCount":7,"integrity":"sha512-wYesRRhex2WXv/PaOxTqTwHcTposwxgf4SyDT+8BkALPTChz0DVI9guMeuhvlecJEnoJivxAAWkdpNnp0T8aQg==","signatures":[{"sig":"MEYCIQCBCwFKthdUkRtPQ/QdE5UDa8yrWT5P//Ml+hEue/fmoAIhANsn0iAdxP7NiCitG4GLd/K5hyhfXIHjQB9t2rNICIiN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72788},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.6.1_1787600741617_0.17195981284022932","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@goodandready/dsh-key-rotation","version":"0.7.0","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.0","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"706e6d4288937d444fa1559f21e56fabb4eadb9c","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.0.tgz","fileCount":7,"integrity":"sha512-z6+RsXWMqx5lE8ChtN0vTvUIW90vHTSg1hYwdTEB5pdYq3ATkUVvROI8RW2fgbHp64pOqUY9RmXcUPEcJ27YoA==","signatures":[{"sig":"MEYCIQCjr8GKgSh+UmFApBEzSJSqbbykg3NvtnvVToNxFXTcXwIhAKNEA8Ro/TbY/UjW/NFvVldqBoFeL7GOMtPmK63OOkDO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75108},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.0_1787600849451_0.3260102566365657","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@goodandready/dsh-key-rotation","version":"0.7.1","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.1","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"bbecfe2753644e4bacf2cfe58e8313ccd8967277","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.1.tgz","fileCount":7,"integrity":"sha512-wrO7fDaGJ1anG8xLSc0an4cJtisrl8XdaEe191qcPqy2rPSDkuIL9GrmdJyX1ZeDgGOg9LgFqkOUvgdxYLiSgA==","signatures":[{"sig":"MEQCIDRPoEWVafQtOF2nr0guhDIxJ3u3SqMdy6WaQHbR/A2pAiAdqodiRSlPaxmWq2r7onjMjbY3zNVktvGzJbCAh+S3zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84161},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.1_1787652856701_0.90357900253957","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@goodandready/dsh-key-rotation","version":"0.7.2","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.2","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"2e2d88547f9af88a13103aa1f042b4dca7b25a5b","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.2.tgz","fileCount":7,"integrity":"sha512-hoUjJzi5EqepHVMguTT3dghTl+hajoP8JNeT/vjRNYIp53zjhtWeWSVbUxT44vk58epM+e2QkVWl3xJQ8SWhTQ==","signatures":[{"sig":"MEYCIQCWWuiLecYodaFpyY4ZOnLMSICVoP8IkbGIjH/5K4NpHwIhAJdIk2066qZ0D9A3s9PoIWDzV3VPuh5u5xRLWfOHr7UR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87320},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.2_1787653460236_0.9781249360672131","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@goodandready/dsh-key-rotation","version":"0.7.4","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.4","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"529f7669f9edd070f1f6c2f85d533c5afb432521","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.4.tgz","fileCount":8,"integrity":"sha512-4+vKh+3UOmQ/Y1K2wqkGxdnEeqXsAouj0dRYIkhXgwS5d67tjJiTVbJLw3wn/tyKE7GB8DCpjsv8PQ7sqNDLxA==","signatures":[{"sig":"MEUCIAPHZ17InO75rs/uu4qqPMYldt/nuvK0PzrfjrRn3m3QAiEAvrCvPw4Puuv8RWVKmQgkDXuVHegcRXnMbkMpXmv8Du4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94791},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.4_1787663159058_0.3341338259159339","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@goodandready/dsh-key-rotation","version":"0.7.5","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.5","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"4ab8c3213aa0f6e68648582d02c4d40232ac0111","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.5.tgz","fileCount":8,"integrity":"sha512-lqh9Ari8VC0Ms6snWRdW10DXOUHdVEjS+HrGipQPcbyCAIK9zIv/FL9ZzO2hXMkZnjfAje/GJ9MNTVqZ9wUcew==","signatures":[{"sig":"MEYCIQDuT8+WOBmDpkkoJLNdu7czZTdh/bPrKvBrQZxj7GlENQIhAL1mZy3dgMHhjHK4EI+k7cFGzNvSjWmzTJtjiAIkEavk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94534},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.5_1787665020472_0.19365260138230678","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@goodandready/dsh-key-rotation","version":"0.7.6","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.6","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"3eba54ff893173aae7e7ce806d2f9beed3ecd84d","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.6.tgz","fileCount":8,"integrity":"sha512-I5rhmMCppExn3dZQk1MwogKJU704nP/mhgaC54508FTYWJpu42BlLoEooYTVS1hLLYb/4rTnuiRcFt9xFOxP3A==","signatures":[{"sig":"MEYCIQDeeKGqDifcf4Lj52G3vYoCNLS9MOOdKb6pb+krOwMk/AIhAOk03oR0bIWzpcKoAsE6Z3JrQT92qCXEFXT9ITWpzrw/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94696},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.6_1787666286822_0.595711537143444","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"@goodandready/dsh-key-rotation","version":"0.7.7","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.7","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"41a3288d477ebe63df72b4267b5fcca9afd1e064","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.7.tgz","fileCount":8,"integrity":"sha512-b8DE9lu1mUcyLEv5nL9HJ7/P3UpRdBWfPlZyrRKY+Jmhj4hKHcK2mc6ETPuHIXV4nSREd1wLuz9Mog0NOJfrSg==","signatures":[{"sig":"MEQCIE9yTeFh48OZKfB+rzRBbky4U0b/QKnI1C7cHmkYuZoCAiB61WhAsqDI0qpbDKStSVICDtHvoxSIMhevExaGFyxJUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96037},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.7_1787667249428_0.5951610667013381","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"name":"@goodandready/dsh-key-rotation","version":"0.7.9","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.9","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"684ce594046348b1e2e70145aa05397f7604d99a","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.9.tgz","fileCount":8,"integrity":"sha512-2coGrDyPgu9bnWNTKOvPVXLbYNQhn94BbAVsBsGwKuuZobqkisMioAyl7jVXeoRRjPX3TF1GgVxAiF4niRyFcQ==","signatures":[{"sig":"MEQCIAM1EHdLl2PSitzy451gZfefRFLs6kUyLuFQx+hfU/b4AiBbizz+sHZuXpM9U4wOA1wltSRM8vKq0gQAQSvylvkxRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99180},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.9_1787670364909_0.828101681628981","host":"s3://npm-registry-packages-npm-production"}},"0.7.10":{"name":"@goodandready/dsh-key-rotation","version":"0.7.10","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.10","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"7857d45241fcc0618cc628333e41019fc7b5b786","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.10.tgz","fileCount":8,"integrity":"sha512-wbb52y3jbouz3h91LsZcd6NqY38IDtvHjpBqeEIO+eiWQOUdlCKL/1ibXRjJc0UaQhTkQx/AB+v/RzgVQsA0pA==","signatures":[{"sig":"MEUCIH+VuBodnFBXY53aV2TJgfbEl0WJ4TnFU8S+3KWNsu/aAiEAzWNkZAah9qBNk0Hdsho4vB3FJuDtYMGdxMHvWfFN4n4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99221},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.10_1787674752292_0.2682847614549908","host":"s3://npm-registry-packages-npm-production"}},"0.7.11":{"name":"@goodandready/dsh-key-rotation","version":"0.7.11","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.11","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"c20c6a0cc9f7ac6b19e60ed42146f118bc30f936","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.11.tgz","fileCount":8,"integrity":"sha512-TPz/xMkO3YOXPWNjv7AD4OxuoGpn4gLJ68wLzlz7hyth4AchPIzQFaqGHL5XeEDUKZleqLokZp1MEudtxVDD0A==","signatures":[{"sig":"MEQCIDz/sehaOb8+EPlssxP9q9d5984Vp+WrT02XCn63586oAiAqjNRKzHfpYXJ+0ihmaJP4r//Nw5CoJuHK9fu528E2Ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107664},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.11_1787742114532_0.0635379296502232","host":"s3://npm-registry-packages-npm-production"}},"0.7.12":{"name":"@goodandready/dsh-key-rotation","version":"0.7.12","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.12","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"85b24539f334e50d8e14d4bc07c960df968f5428","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.12.tgz","fileCount":8,"integrity":"sha512-xPf6BqH5CGkEtUN+IxPpK0aGA+yMXSzqnWroXUOmpk+bc/IrR9w3AGHoavAxJ92E8Eq2RAZEPAb1Sxfw/auF7w==","signatures":[{"sig":"MEYCIQCNdCpB9Boxj3UzKllv46dgWuSyeLHoC489TUqpCGejdgIhANGP/XsCtGnBRN1oLnA2TyY7oLmMnXYoV3//jo6YsmAe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113734},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.12_1787749546984_0.8310022213077086","host":"s3://npm-registry-packages-npm-production"}},"0.7.13":{"name":"@goodandready/dsh-key-rotation","version":"0.7.13","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.13","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"79309bd0f7eb38b2e5c1d3012652e3c8140d0b75","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.13.tgz","fileCount":8,"integrity":"sha512-8Smmm5A9fn6UfSOE9lhTGYa9Fz7XPY6FJK0/3WaQqYryaLjdjqCKHZCtsBJZiTIi1dLZdmV0sOxYSYIixlWk3w==","signatures":[{"sig":"MEUCIAcB/4D9ublEL7NNRNSuUBXaqNNPWQSqHk4BQ025pp7XAiEAskwxaWFqm24xnxRqyXwjGYYT9JzC9cU6EPoJG6FKvFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113948},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.13_1787751935281_0.571784163072675","host":"s3://npm-registry-packages-npm-production"}},"0.7.14":{"name":"@goodandready/dsh-key-rotation","version":"0.7.14","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.14","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"b2d9fc6c2f25de62e2b51615c625af7edce083fe","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.14.tgz","fileCount":8,"integrity":"sha512-d1oGq5qjYpzepZrUAEhUTuLE1rr80iBsb0P0iamTEw71KQ8ovMf9mhYZVYqeho6hu9mg2LWY1Yi93GbsqcOn8g==","signatures":[{"sig":"MEYCIQDB4XIPyI9f83P5hnU48y1tHWkP1Gck8jERR3vmMh+PPwIhAIWsTGlqFpHoWuehZ/wudirtn9HwXiewbylwfhhkW3y3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119943},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.14_1787755292356_0.8002003651401712","host":"s3://npm-registry-packages-npm-production"}},"0.7.15":{"name":"@goodandready/dsh-key-rotation","version":"0.7.15","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.15","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"5ee790f4e3e3ade8413e084a009dd001443e13c1","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.15.tgz","fileCount":8,"integrity":"sha512-lubCNgkl1/mYC5Ue73Xxp/GhnufMpTqNjMh8HIq1k5pRTM3MBVa7BFzX2OU3lQnB9sL+3dSw2lhEXHXT/N2nlg==","signatures":[{"sig":"MEUCIAg/H/pWKvO4ukdH1sqXxoAaIghM/z8aOYzldcUE2KoUAiEA7htyYFaNw3J6P4GrXJz70uzG9yuxECOoMLf0EHg1ZB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120914},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.15_1787757051928_0.8081310826504848","host":"s3://npm-registry-packages-npm-production"}},"0.7.16":{"name":"@goodandready/dsh-key-rotation","version":"0.7.16","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.16","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"b87a9893d83004cf40a844bc4a1ed928b3c12f6c","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.16.tgz","fileCount":8,"integrity":"sha512-0B/KkscJUEfEdj9buMlioFWfYHgv7KohSRlKhe+hc+Np1XNYCe2h0ArsOFwNqRBPJleEOXa/AzMIfbE9at9caw==","signatures":[{"sig":"MEUCIBDGVJF2h4Zj27cy1Hl6I8beASMaEHKbx1TXrmpZ5haKAiEA3d3f8nMTxXmDlyeNIxTT3Xv9glbpQJs1hRssmBALPXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121004},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.16_1787757443687_0.46555128335598606","host":"s3://npm-registry-packages-npm-production"}},"0.7.17":{"name":"@goodandready/dsh-key-rotation","version":"0.7.17","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.17","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"35d83a64290ed05f9d0515f69a759022b4af8419","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.17.tgz","fileCount":8,"integrity":"sha512-cY6K2vm6Myp6b6VNnBmUh0MyF8f/RKPSGhbWzKWIBzrZ0jYopHNE3bVh+RWl9HU75kB5E5gApa9DOpJWwbhQCQ==","signatures":[{"sig":"MEUCIFb3venw/D6ZfddZBFl3J5ae+7b8iORXlpbwt7KjooPRAiEAjxh37ipMlfpq4nv3dBM9LsD6I8V1OSor84FZhZOQ3Vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121136},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.17_1787758176267_0.3703453383909554","host":"s3://npm-registry-packages-npm-production"}},"0.7.18":{"name":"@goodandready/dsh-key-rotation","version":"0.7.18","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.18","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"67a26eaca7e5f01e8063c0163575020b7c57b5fe","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.18.tgz","fileCount":8,"integrity":"sha512-a24Rl6euoRDHt/ekX22L0a0y0hA7XV15rSuHtOYPIew6Yw2h38DfbE3pZyNBIyRjWxFtkILgmawu7z5/RAWzYw==","signatures":[{"sig":"MEYCIQCjRqzduKm/N9q2T2G6Jqplywg+eUlaLJLhoS75tA8jEAIhAKJq4fuBc6j/dKtLhPT9tp9nQDL2IqCyOE2bROV9ML3I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121334},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.18_1787758615598_0.3202874332421868","host":"s3://npm-registry-packages-npm-production"}},"0.7.19":{"name":"@goodandready/dsh-key-rotation","version":"0.7.19","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.19","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"6a4551accaf84c8f2a2ece8316cf5808548269d5","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.19.tgz","fileCount":8,"integrity":"sha512-fpKUd9DDxmTHh1BYDZAyAwxl+CUJ/3e8FyrfIVwK2i1MCj+5t5GWBMNR9JDSGX5yw+A2VZmurAJxb0RhH+QD9Q==","signatures":[{"sig":"MEUCIQD/HY3bk3b9lar7g9AzwcbW12JaiQNwh46VSjVTVbjhewIgDKlmOTud8RIfDvt5NX988Cp3e2fUbWNC1VF1oq2ZEYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121334},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"a8a1a22a5847fd400e02bc28d21b1ece3ac36ef7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.19_1787773363318_0.8605440147966523","host":"s3://npm-registry-packages-npm-production"}},"0.7.20":{"name":"@goodandready/dsh-key-rotation","version":"0.7.20","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.20","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"12245ed2e0d353364cbc596e5da3bb90f70c4335","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.20.tgz","fileCount":8,"integrity":"sha512-qCoao1CR/5esR8c8N9f1OjcNs4rnHX1cX+5q3pbfoXG/4WIr18jW4GaoEqPWvtbUU3j7k8ykovH69JoV2t5pqw==","signatures":[{"sig":"MEQCIFEzJPX81VBCJqWMJRUYTiv7VLDMah7f34knEYKrVXPrAiABHhQFKeHOY93Ah0GRUsykWcu1He9xjunLL3c/C71otw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123476},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"d801821a5c823a803f93e108f106e28a8dcb5f50","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.20_1787819688367_0.2139364789254239","host":"s3://npm-registry-packages-npm-production"}},"0.7.21":{"name":"@goodandready/dsh-key-rotation","version":"0.7.21","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.21","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"6ee27b8411de5706839176e0fc09a203b8ea6ce4","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.21.tgz","fileCount":11,"integrity":"sha512-/NHD3r1PsXAYFu9UQv1x/7zSBXX8/Z1ZZIxt4ViRgd1KpqXj3XCcMJwYcKfLZTwpQAkEWe9lpU3wM6bmBF2bpQ==","signatures":[{"sig":"MEUCID/7OwnbBxmtsrduBKlxnS3Rcox0hYY4REps7mbllAWyAiEA5UnNgnIka7TympGAK4vPq/9Ru9XvT9UFmJoUzClG+i8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135224},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.21_1787831505596_0.08117533242587083","host":"s3://npm-registry-packages-npm-production"}},"0.7.22":{"name":"@goodandready/dsh-key-rotation","version":"0.7.22","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.22","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"77d4fc4c7f1c2ee8291175d2ccc96a40eecd5b04","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.22.tgz","fileCount":17,"integrity":"sha512-l3X0v6Woq0CSGqaKdmBshMRVpVJbc4LAtEK+qRFKbr0lfqmQh5QXOpfqAtq9A7K/d8jeiDe0Op6ZWhX0Zc1lmA==","signatures":[{"sig":"MEUCIQCXwuX4zKdJYfSXOnN6AaGRj+WhbkWiTktekLRVVTxd9QIgFZxgtb1OfKTQ4AiNKf8rMnFX+9fWxChZhjyDA/5rBxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153296},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.22_1787833595138_0.3361467161264142","host":"s3://npm-registry-packages-npm-production"}},"0.7.23":{"name":"@goodandready/dsh-key-rotation","version":"0.7.23","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.23","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"eb3118d6dbf911142d32636ee92df6df82e315d4","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.23.tgz","fileCount":17,"integrity":"sha512-M/wqJSqkXI9wx62aGRMcuXhGkQ3WJKnVBSpP1z0bE1JIRr6D2UbARHAhGm2X20RB2VVk915mNb5dfDWt7silZA==","signatures":[{"sig":"MEUCIQC+LTge5jFy3L/lyJE+NfS/ei6wAdNcFZW4qlGth/a4oAIgat+WOLSnjmToKkkvLkLauq6VawqOWuL/VKjgWhqp1nY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154545},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.23_1788090045449_0.020336480773853083","host":"s3://npm-registry-packages-npm-production"}},"0.7.24":{"name":"@goodandready/dsh-key-rotation","version":"0.7.24","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.24","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"92b09199be3c6e453ed9da8179d8655f9d180c19","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.24.tgz","fileCount":17,"integrity":"sha512-dQTFMnWB/RaEe6AlzJv+s6tAHGMeb1/chckrvMY9mZh6QHn3BU7gwB3LIEbEPAsGxlFRVHAZ/QF8hPAS5ZqGbA==","signatures":[{"sig":"MEYCIQDiA9elpxqQSefwslfoc82QakhQvWV21VSOBRHgiFeRCwIhAJMAXcADexOzRPSy7pcm/a2Z0URjFku3qcjsg2hV7Dob","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154603},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.24_1788098679810_0.40435740331382575","host":"s3://npm-registry-packages-npm-production"}},"0.7.25":{"name":"@goodandready/dsh-key-rotation","version":"0.7.25","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.25","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"a3ad4c773388ecc7f0a7ac782d320e7624a26b50","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.25.tgz","fileCount":17,"integrity":"sha512-8zgJ1PIHSKdP7EGU98Z2a308LMvm+h3Cq1TdigbMY9iHodUHLr5IS/e9iykiSP83ENHll1pSJTDxoMtgZW5PjQ==","signatures":[{"sig":"MEQCIBIl120hERhdNMEsZCbLTZcH158iVbEm+ArTmC/mXcVCAiATiRcI2AGaM7JocTISouOs1LNK/hB+rN94uSv7OLY+2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155613},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.25_1788202220220_0.6771122638651947","host":"s3://npm-registry-packages-npm-production"}},"0.7.26":{"name":"@goodandready/dsh-key-rotation","version":"0.7.26","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.26","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"e671731f6ab10f99b51b9c85c81f7ce83e5bfbad","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.26.tgz","fileCount":21,"integrity":"sha512-LXB+WOwqF+zuWzIJ9/9LXFBVJKaKpq48QZm8cgCwbNq0ptrIGDCG6cJerGwhhTr4fZq718bxtIv/kWIDdrTaGg==","signatures":[{"sig":"MEYCIQD6dhh2shvzM0MaQVhqiiAVN1k4e1l81cfArwGUt7z5wgIhAOKmSWm1sxtpOa9D8xupV1ffaS9Y8g298pQAaHkAGc+H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168305},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.26_1788209388731_0.2534553962423032","host":"s3://npm-registry-packages-npm-production"}},"0.7.27":{"name":"@goodandready/dsh-key-rotation","version":"0.7.27","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.27","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"0a676f64da041072d141326804570cdfb64ad70e","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.27.tgz","fileCount":23,"integrity":"sha512-0VCEOmF/lW1D+yBLPdJikWvHRcoruRHG6NqNplkxZ2Th3iSJMFTXIvSLVM26I9D2jss+jMzAgoIUERu2h++LHA==","signatures":[{"sig":"MEUCIGeWJERi1i0hjlhZhKh/RW5tTbD2+gcf8Co/jMFx0MmCAiEA26v0eM+u+8xPd/akj2GfZbR9H9JOBvwL1mUYztMx8zA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190378},"main":"lib/index.js","type":"module","_from":"file:/tmp/goodandready-dsh-key-rotation-0.7.27.tgz","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/goodandready-dsh-key-rotation-0.7.27.tgz","_integrity":"sha512-0VCEOmF/lW1D+yBLPdJikWvHRcoruRHG6NqNplkxZ2Th3iSJMFTXIvSLVM26I9D2jss+jMzAgoIUERu2h++LHA==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.27_1788253765227_0.2941065887670453","host":"s3://npm-registry-packages-npm-production"}},"0.7.28":{"name":"@goodandready/dsh-key-rotation","version":"0.7.28","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.28","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"61aaf2acb374badd57ba6707e0a436f9a7ffbdbd","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.28.tgz","fileCount":25,"integrity":"sha512-umXHCZaV5i8xcbDchYF+nWYNHIxYwToKovANewrX0pCuwJDD8Ikaed4bgYkNCdQ3CL0qbs4CfuUgu8VEyi2O8Q==","signatures":[{"sig":"MEYCIQCKHkPONkaDISJhNbjnkP8sumsbDg1V+kh3SjQrgBc1uQIhAIaIHfVR2EZ8uH4zrLfgTWz056EZifd1eC0Xwzb0clLL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206649},"main":"lib/index.js","type":"module","_from":"file:/tmp/goodandready-dsh-key-rotation-0.7.28.tgz","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/goodandready-dsh-key-rotation-0.7.28.tgz","_integrity":"sha512-umXHCZaV5i8xcbDchYF+nWYNHIxYwToKovANewrX0pCuwJDD8Ikaed4bgYkNCdQ3CL0qbs4CfuUgu8VEyi2O8Q==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.28_1788256851328_0.5801843500369939","host":"s3://npm-registry-packages-npm-production"}},"0.7.29":{"name":"@goodandready/dsh-key-rotation","version":"0.7.29","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.29","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"6cd15726faceea9109c7ca24f53ba88641e809fc","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.29.tgz","fileCount":25,"integrity":"sha512-dhv7nXtO0K+ERZehAmmsT0Q/IVLVkEfN1ewo2vAy6A5xn57HAINS3ylx9894PH2+Gd8NZgV/7ZNmX5Vi4q8yDQ==","signatures":[{"sig":"MEUCIGtMF7h36DjtrZomYV5X16Puf4mKgkN4K0AgOAmXTPtDAiEAyw0VW34eDPg9OyVvf1cDdklqXTfxXveFtWVC1+q9Xhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219539},"main":"lib/index.js","type":"module","_from":"file:/tmp/goodandready-dsh-key-rotation-0.7.29.tgz","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/goodandready-dsh-key-rotation-0.7.29.tgz","_integrity":"sha512-dhv7nXtO0K+ERZehAmmsT0Q/IVLVkEfN1ewo2vAy6A5xn57HAINS3ylx9894PH2+Gd8NZgV/7ZNmX5Vi4q8yDQ==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.29_1788257973032_0.5045832571964408","host":"s3://npm-registry-packages-npm-production"}},"0.7.30":{"name":"@goodandready/dsh-key-rotation","version":"0.7.30","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.30","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"83b96ba96d7b547312856414e13c6a367589bfcc","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.30.tgz","fileCount":25,"integrity":"sha512-uBJ9L07cgTF427dKzqFNsvYbyK4rwsN6VS5kxdERuxjsDsjzu0NZfCEQ3HV6prKGtNUu456g3X6IyCYmZNL3Wg==","signatures":[{"sig":"MEYCIQDhDhIPZ0eA67+T+Iu2FGzNyxHQBoDv6AeZjGNOP/CLoAIhAKQs08MdDlH1+AmtN9tUxZKcW988tEuTM7h4/jMnlro6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228178},"main":"lib/index.js","type":"module","_from":"file:/tmp/goodandready-dsh-key-rotation-0.7.30.tgz","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/goodandready-dsh-key-rotation-0.7.30.tgz","_integrity":"sha512-uBJ9L07cgTF427dKzqFNsvYbyK4rwsN6VS5kxdERuxjsDsjzu0NZfCEQ3HV6prKGtNUu456g3X6IyCYmZNL3Wg==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.30_1788262885885_0.8862119872172194","host":"s3://npm-registry-packages-npm-production"}},"0.7.31":{"name":"@goodandready/dsh-key-rotation","version":"0.7.31","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.31","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"25fb3722a5a5a724046a64702e42a55f63ad0f6c","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.31.tgz","fileCount":27,"integrity":"sha512-4pO241QvRy2n6f+5WUSfxNNujHYmazGAb45vuA9XAL6/2P1jD6YrJztL/xkWveOmNHpBTXx6uCYqO6LUFFiorQ==","signatures":[{"sig":"MEYCIQD7rls35nQHRt2wUC1zsugQo9/MDbImRa6U3RDvKo+T/wIhAMlCv5vxxaPcoJKDWJ3YMi62Xo24UhQ3GrLfRsinGAM9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267516},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"74adda4e4334cb5ca9506b21664f6eaa840f7357","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.31_1788356312549_0.6197594448623249","host":"s3://npm-registry-packages-npm-production"}},"0.7.32":{"name":"@goodandready/dsh-key-rotation","version":"0.7.32","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.32","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"08db18db86e6b23c15cf24c0d80fc195ab21f89d","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.32.tgz","fileCount":27,"integrity":"sha512-8Ul4PuE/qSqDqaGzPejjEq/54gS8BezLxqV2HKJoSz8rJWncQ1TjNfZqC1N6RfuHlwd720pS+4YY2u00DiAK4w==","signatures":[{"sig":"MEUCIQCHJjwiwxMgD2Hskn9QkqQjGTI9kETJ3ZXre8BjluwWVQIgPoGDy5UPp0/QTlZIyxoE6Kit86dP9Ce5dTLN0dbgx2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272995},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"9abd8f4d5ea8f815fc3070c32668a1c2bdea694c","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.32_1788378459451_0.6769332933554881","host":"s3://npm-registry-packages-npm-production"}},"0.7.33":{"name":"@goodandready/dsh-key-rotation","version":"0.7.33","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.33","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"a85801e47b38b5a4b2bdd7c3c47baf5006bd96d2","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.33.tgz","fileCount":27,"integrity":"sha512-9pypQEq1s4ERUL104Nhi0TwaQZHZRgFr/cO0QyWogHSmJWANEOR9gfnu6Fi/7EucqgNNPYo1EkXNVurTvxOHIQ==","signatures":[{"sig":"MEYCIQDYS5/i7JZd37RyDRNA7UfL6UsmPQ2Egk4sZIsMwguVVQIhANoedHBHV+l+VrZwqhk4dClMPqI7++kMqIqdEOLaVdr+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273495},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"30f83afe1f3abc2a643e17ea9fbd6820d2dcee22","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.33_1788379174960_0.6959818842248746","host":"s3://npm-registry-packages-npm-production"}},"0.7.34":{"name":"@goodandready/dsh-key-rotation","version":"0.7.34","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.34","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"deb20335d2efbc75cb3ef0458ee9cccdac041e91","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.34.tgz","fileCount":27,"integrity":"sha512-2czwrtjctKZznlRYM8KurAD26U4fRthC+PghkFUtpttkBSX6nmZEkPT/CcuRH1RegfZzn4iyjEDvtouSkxVtaQ==","signatures":[{"sig":"MEUCIBu9j0Xy2UMr9w4t8ZKQm/HMLT7uJlf4TOFeCihPDpziAiEApGapDEjpphHSHgP54/+FiZRmftToo91JGMLGadINoF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273477},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.34_1788554934329_0.5902197517316443","host":"s3://npm-registry-packages-npm-production"}},"0.7.35":{"name":"@goodandready/dsh-key-rotation","version":"0.7.35","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.35","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"01f7d9bff759363d6b46dd39a8ddeb85a2ac3e7d","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.35.tgz","fileCount":27,"integrity":"sha512-Gn4QbEBTByZE06KT0t2CLlWqGM0m901Y+sR+KCH+T+AfVsbOZJOp87qCVRdHB8HPhU6TEq2vvyL7XNAUeF5g7g==","signatures":[{"sig":"MEYCIQDCDOwoNZDWk0D+5qphA8/G6V0dRXjhAepXVPS3MYoG2wIhAOpGbRKmf3kr4tW89rcEYgCnGxVAIf9TV9YI4raq7r5h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278258},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"1f470c39133ad8cbf53acf84803af776905ece37","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.35_1788698022616_0.5392142973710903","host":"s3://npm-registry-packages-npm-production"}},"0.7.36":{"name":"@goodandready/dsh-key-rotation","version":"0.7.36","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.36","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"68745c4c0c3b02ee9de0189426a53a8479d1e46a","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.36.tgz","fileCount":21,"integrity":"sha512-bRwMLiczkN85bmbqwtoixInXP1FFNVpTbghGxjp36OALqTHYwiRwXM8F9e99Gz55/JQwGKEXNFrzVYHGyxlNuw==","signatures":[{"sig":"MEQCIBBEjPCvTy7jeoJ64mYwJGCj1/12/csfhVVt2UPbA7U3AiATWhiOfXYM5jvKJLTrfSy3HtM9b09+O9DvOu8/HRQFow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260596},"main":"lib/index.js","type":"module","_from":"file:goodandready-dsh-key-rotation-0.7.36.tgz","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/111d8055ce6ee1ef2c37c293cab3d16d/goodandready-dsh-key-rotation-0.7.36.tgz","_integrity":"sha512-bRwMLiczkN85bmbqwtoixInXP1FFNVpTbghGxjp36OALqTHYwiRwXM8F9e99Gz55/JQwGKEXNFrzVYHGyxlNuw==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.36_1788791025062_0.7734606073421653","host":"s3://npm-registry-packages-npm-production"}},"0.7.37":{"name":"@goodandready/dsh-key-rotation","version":"0.7.37","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.37","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"99ec8969b4a270bd6db6a1a8f5ab7d68445e534b","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.37.tgz","fileCount":21,"integrity":"sha512-GwRxbzbI8yqtZvEuoWMyDHyHLYqjeLChCrt+jUz4BFppD/slG7euQtFiGV49vlsWBoGK8SI7jLZAEfUmx9Lc/A==","signatures":[{"sig":"MEQCIE74X++0Ce10Zexem2lIwLthPhzVA3m7fNwHoD/3TZUxAiBLL9oNthdafWUBaIM6wBE7+zT9l6bsmH+O+s5g87OpJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266333},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"aad825e5641fbf34bcb672493f7c46ca58962e0b","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.37_1788854161028_0.9969256445079018","host":"s3://npm-registry-packages-npm-production"}},"0.7.38":{"name":"@goodandready/dsh-key-rotation","version":"0.7.38","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.38","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"ac1a422f98a035a9c28b6e837be589c787593879","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.38.tgz","fileCount":21,"integrity":"sha512-BaaCl4PVNyghipi7FylH6koN4DItnlMtUKafUpVQr5sqUbUWKmwt5X/yVyyYuEkDLJ+qCCInkD7W+LI9APf/0g==","signatures":[{"sig":"MEUCIAJeBLQi/adwv41k6CmvuXBEoJsJTL5hvQvm0DuK+CccAiEAufzUa9exTnOJKuWj8iisRTVbLapbVhaWkS13+PBUtuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270134},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"6c32790a2816a4a96c1f7b8e1084cc4249fa2d97","scripts":{"test":"node --test test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.38_1788873602373_0.933008256830471","host":"s3://npm-registry-packages-npm-production"}},"0.7.39":{"name":"@goodandready/dsh-key-rotation","version":"0.7.39","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.39","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"ddbeaa3215cfdf53951329d867ce3e36e37bb16b","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.39.tgz","fileCount":21,"integrity":"sha512-bMMVZkJXjfLqMMt67QEJ3pxlI/MwIIn2+Tof6BZ4APpPWJvpH4JPIk3EKfbj3KXfGZqgy1GRpvkhs5ROHs5iBg==","signatures":[{"sig":"MEUCIQD1KWsNVrFg9aCJpTCpsOYmqwM1vlZVh6YoFZ7ercMCaQIgRks55zSpE3SNnZVuay3IP9M/CPlxgb+VH+k8UubB/Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273254},"main":"lib/index.js","type":"module","_from":"file:goodandready-dsh-key-rotation-0.7.39.tgz","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/717610b0df0d4482b949ac6aa62d4ecd/goodandready-dsh-key-rotation-0.7.39.tgz","_integrity":"sha512-bMMVZkJXjfLqMMt67QEJ3pxlI/MwIIn2+Tof6BZ4APpPWJvpH4JPIk3EKfbj3KXfGZqgy1GRpvkhs5ROHs5iBg==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.39_1788888269787_0.3379011900651716","host":"s3://npm-registry-packages-npm-production"}},"0.7.40":{"name":"@goodandready/dsh-key-rotation","version":"0.7.40","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.7.40","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"3873f26e499dc0c90d1d7381b4b2eab31bfffdf8","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.7.40.tgz","fileCount":24,"integrity":"sha512-ZyGhegH6nxzmF6PP16yLv1a5cIlNAL51WlX09GcxJ+Pz2noJHRWpjwB3lje4nPDKqtFxxJ1G/Upshk3WuhivzA==","signatures":[{"sig":"MEUCIQCKTtWj9F7UvrQ9jfHq71c2PqS3oe4d1DmSzrFAN5fTSgIgUx56c936z6n2MRsz0VcdHnY3qaHOHm/NlgWRmETuB0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273044},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.7.40_1788976696640_0.13054913556481584","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@goodandready/dsh-key-rotation","version":"0.8.0","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.0","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"f747f5b3572b6e25cfef3569ed192a0dcc60ad5e","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.0.tgz","fileCount":30,"integrity":"sha512-3SzzWhSRA5uAq5uyaGQjOrynP9l02vvQAcwvu1ZGzDwCCYlJcEhOIytRlSwYBwmpj7OtU4Y2FylkgeKweWXXKQ==","signatures":[{"sig":"MEQCIEuyT8HXfbKafi1oSnIaSr/QER+r13rxvi+WPTT4OzZiAiAJfy6wlJovv7yGoHaIFo6wUWHz2q+CqMkPvgZhc+qjgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295221},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.0_1788978178147_0.46893258743111366","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@goodandready/dsh-key-rotation","version":"0.8.1","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.1","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"101ed212f245fb8cf618daee871e5b36890309ab","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.1.tgz","fileCount":30,"integrity":"sha512-oB/K7+gTYNtGuaHxbNBCsAeA0CWrGa/DHE3NfpLzP32jb205MPv0tG5rffWsOVBRWcMXZHT6EGVjejbwsh7hjA==","signatures":[{"sig":"MEYCIQDa8o9IubcLujQo/lv863D8XnswCNcQxEcJT8GP9+TFrAIhAIc0yqH5wDlEC8caBz7WMRG8oIXaNHGuMBIvM5W/tPyY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297322},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.1_1789030402319_0.45937689691758776","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@goodandready/dsh-key-rotation","version":"0.8.2","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.2","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"cbd607a42615bb4cdf1d2319a09b14914f970714","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.2.tgz","fileCount":30,"integrity":"sha512-VsiOY1bhv+lhpilRBFsU/iurO8OskUD1sH8e3S52dSE8p7YV91H8ajcaL4ncLPIIiK+apfcmvntNmgnKKAspag==","signatures":[{"sig":"MEQCIBOnQU0naSzNL0uh/CfDawjqCWFizIOybRL70mIqNuVbAiBh711cGcqjVMOXz/u1gQ629OuKH4Ac0v5EgBA4y700kw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290346},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.2_1789036419165_0.2194374506536918","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@goodandready/dsh-key-rotation","version":"0.8.3","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.3","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"4dfce306b5c74c9c651b3f9ffb582bb0cd3fe6f5","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.3.tgz","fileCount":30,"integrity":"sha512-+jXmdtwD3J7MZnuHt7ur/+J41F3uHd/iCzKtL2aXYZeOm2sscqk/vhdP6a0ku5p92v95d+zg0E0RQqeoBzMsuw==","signatures":[{"sig":"MEYCIQCpSmP0pDTX4C8VJbiYweFPIMLdz3bq5S9UoNNamNSqxQIhALusggDopRtaKhMqG70gJ25tWLS2aNCEzYOlXDZPcOGh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300235},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"6e3f011d3a27cf870f0baad109a3d48370207e08","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.3_1789060880404_0.8329811304524803","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@goodandready/dsh-key-rotation","version":"0.8.4","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.4","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"7ffdb80fe407afbf8bfd36866835e17d1a375d63","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.4.tgz","fileCount":30,"integrity":"sha512-eE1rmtgNTE65zQbiSdSdVqkDi/tg8vtBNv1wvM9IR8mNzgKi+SZNKV/1JbWsnxacBIFnQezy3/QoBkyOyOdkXA==","signatures":[{"sig":"MEYCIQDBuAgECEkDhWt7p9S71B/eCJf+OdL42KhhbFrwOqfrZwIhANStqgh2O3YcIiM5qUqHqLWuy8LHFwP8zw6PbKFmjEAt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300248},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"e50278e5fc3c6a218709d00c1394c9063b67f38c","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.4_1789061409397_0.31168366792817404","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@goodandready/dsh-key-rotation","version":"0.8.5","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.5","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"0f48d28ac93e665f20b38befd0dac8ee2e4380e2","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.5.tgz","fileCount":30,"integrity":"sha512-Kjaoa0Ux90l/2J4rWD0c36Rc6qXrIMA+QZ3/Y4Hmwo6OdFfJpl8Id51/b124qnlXb7Io/mMJov9qug4fcw56Nw==","signatures":[{"sig":"MEUCIQCOEPEjrq/xdFRqrJZZl5cUwup6/IPdyZ2Z/a/BnkyS3QIgLGlmVnAkoecDdmmsO12mLtLAukBE6vGwYjTOCjM5WtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307035},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"5558363bb8715db79dd06a957b8a0f259b51ef68","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.5_1789063995516_0.10337284172660355","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@goodandready/dsh-key-rotation","version":"0.8.6","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.6","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"541dff711e03ec310c2d96d821f60f700cf571a3","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.6.tgz","fileCount":32,"integrity":"sha512-ovvITIDtLxTRI1ygpdvCgs5jXCwCd65HfuXRo5vKGQt9E5V6YIgqGptUm385VD6KUG64SaR3kF/eldpW7AaQ+g==","signatures":[{"sig":"MEQCIHROT0DKuEBoSYbnAdx+7PWo70oT3CYykg0MoXJw/W1XAiAVBof43IcY/inqSKJRDp7wzeLEyAH89sDaQvhMQdusaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326037},"main":"lib/index.js","type":"module","_from":"file:/tmp/dsh-publish-086/goodandready-dsh-key-rotation-0.8.6.tgz","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"_resolved":"/tmp/dsh-publish-086/goodandready-dsh-key-rotation-0.8.6.tgz","_integrity":"sha512-ovvITIDtLxTRI1ygpdvCgs5jXCwCd65HfuXRo5vKGQt9E5V6YIgqGptUm385VD6KUG64SaR3kF/eldpW7AaQ+g==","repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.6_1789152279154_0.5488689529847726","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@goodandready/dsh-key-rotation","version":"0.8.7","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.7","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"6776ddc73e4293edf254ca845c661933bf7397e8","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.7.tgz","fileCount":32,"integrity":"sha512-d0t4+BhKbsaWxU4Pt1AzPcAhIGv+NAj0ywbi7O/hcHtdNUXjtvgHvADS+RBGVrfkYegnWMpSogkv6iG4XC2tjw==","signatures":[{"sig":"MEYCIQC3HrVqAM7ZaEYpSzlMAnbM/X4YG60zCIHe7mErE4nbwgIhAJNHL7UxvZ6AufXpbKdNFc7uxk4SopWKu7ZZVIjRFVW4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326036},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"0017c1fb78cd10d9fe345c115dc1e313bf4dad86","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.7_1789227300462_0.44161497841341735","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@goodandready/dsh-key-rotation","version":"0.8.8","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.8","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"2ada10e4a8a2a156cc5d52e3ca57ee2c5d44ece7","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.8.tgz","fileCount":32,"integrity":"sha512-aPt8zYJfrJbx5UX0U/BjVzhAfHIGAfcCC+uHDW8J0Qs8D9QT9ULArYiPg2RTlDzsMJEpZ0dWUEpwXCx+vaj3Nw==","signatures":[{"sig":"MEQCICrgVGutGOlx0fd+iZWTV6M/YjgEsBEEI4FBti92v+AkAiBAeH2MGMRfJkY6blHC88JmxgiC3vhAee8MX9OBIZPOlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329138},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"3bef22642b9511a3a2b8bebd10c1ce6fbcd181d5","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.8_1789227973815_0.3022065818437416","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@goodandready/dsh-key-rotation","version":"0.8.10","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.10","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":[],"platform":"web"}},"dist":{"shasum":"cce365d6103a5344cb1e1a9e5465f4355ae2829f","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.10.tgz","fileCount":32,"integrity":"sha512-+qMJBL3v+j3YWZd/VHOAyWjf96bYiiurv3ggGaDm5dw3tMXD9gsGSrgfLE7LnCOOCjilvlVkFLTPFRkBgiHx+Q==","signatures":[{"sig":"MEYCIQDV7LQpa8RVaOMui3OE9VhXnifYc7Z10jtVDwRyonD2uwIhAOVfgKngekYjsIMwQxs4iDje5C5zbyXwwmhvEnLryqAj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFBMXqO9iNCfGJt9iofueW5mFX2XwbCeUod9Ivq2or71AiEAt3U2aWEiCC2hw+lLOkmaEvhoA0enFwO79e4RF0vHV3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357239},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"687eec73640f013063bb1c4ff793995e1b6a5239","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.10_1789509659772_0.7215041456830245","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"@goodandready/dsh-key-rotation","version":"0.8.11","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.11","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"e7390d0dc51c271353c432a43ebde9f3989b9f48","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.11.tgz","fileCount":34,"integrity":"sha512-ygB5QSsZQxLPqxhFgR+VjhndwSyV0rFzp0+BJbJdO+2ADYHfy2ukUo74GVCaaNaqaHvaw64ZnPU0XDeDWYFapA==","signatures":[{"sig":"MEUCIHMELbiUGYfBoEzpJVJagsN2z9nqK26a1LeDSvnIPmtmAiEAoJuPNVsrBQxEIIc25vzme810dk87SANpH+5e/kaYwwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJhW+Hjp2wi4rHaRxHSLWUpIDDYlJ2QYZUc6gLYXqMhwIgRgtmuC10LboQId3cnjl8ajgV3lTUb3rrytCehfn0k4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372652},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"c45e2edcc2f69df2bf984b1c116d757bd0e66a51","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.11_1789560066993_0.4890397698852371","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"@goodandready/dsh-key-rotation","version":"0.8.12","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.12","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"e7068a6182021cb4183f6bc46e5dc70926795603","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.12.tgz","fileCount":41,"integrity":"sha512-ObbbesW0seHdjFqCiPqe2hIVBNhTAuVFSPCJfDzd1GlgpixP1Vj5xJfaZoEpm2udIgOinH3vJKkXVFl3w+o7Rw==","signatures":[{"sig":"MEUCIB8Q2tzNWzC63Ci0PJ8USO1xVhLxKgR6jkUYIV+dy2biAiEAvzL4ysq4+Cy5lo2tDM4oxc06nLIwhT8M0jN9AWmhKsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBoO2c4B3L4kkkuuDzKaxwYcok808Q5DTrr4y9GvnIC1AiEAhbd+F9G0wjHUqfpf7vsjf1xuK9ZciP+2VoQWttIZ/5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374985},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.12_1789570918031_0.49378643427251334","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"@goodandready/dsh-key-rotation","version":"0.8.13","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.13","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"d5ea6ee4d63f0d3aa6762ed5ec7e755bacc6dcf2","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.13.tgz","fileCount":47,"integrity":"sha512-ZtYv79sIsEOnhez+28wXeSJ4+qPkzr/ANgwBR4wxym10lrgoT4c4HIrs4N7QdDuA3dP/eLkwJiuY0lYjc1XpKA==","signatures":[{"sig":"MEUCIHKOnPJRyJhTVF2HZkaFl74CAzUxZeWzEmcTZ1++dqmzAiEAjOBTEXy0PR8OgEs1hra1jK8cazqlfaWCZFeYt3JxiZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCyZyUG6yWsqHN/CivX8cRyAFtLrvpgZrKlfPQalDTbgAIhAPuJ/4F3+x41IjNtGlyhPDzcKXotQcRC42nZp7bQKMDo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":384269},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"c2f52e66ed4282c8fb02f63a1b41b171dd539afc","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.13_1789652086715_0.6314298810724464","host":"s3://npm-registry-packages-npm-production"}},"0.8.14":{"name":"@goodandready/dsh-key-rotation","version":"0.8.14","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.14","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"252222a446b520e578cc26cc30a0ab2c71b75409","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.14.tgz","fileCount":47,"integrity":"sha512-BOkBWY2I7nXhnWCoKTGjt795YNOrrJo/CPxzVtkviyB4KcmGS7aj/4EPExsFdX1do/zmlzrLXOXG+yn0cGRG4g==","signatures":[{"sig":"MEUCIGHGtyK8z2qQH+M8MnIzY19/7BrUHA5L5OGtdkpt6X8+AiEA3BdHZhQ5A6GO52wg2iiTE4NCsALYAazh/63ZKhZMtHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHjHX1eh2ZqSLHEYNCYvBvoaVWa+ZQZilLi37VfjqdGlAiEA9MnpBRs4anvr7X774EwTlZax39R1sHHZVpesSzI4QKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387830},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"2345eec46abd0b28b7589f349df7b72c9cf87033","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.14_1789830017718_0.9129790161137248","host":"s3://npm-registry-packages-npm-production"}},"0.8.15":{"name":"@goodandready/dsh-key-rotation","version":"0.8.15","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.15","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"69ff0830b0b1ddb736a15f91dbaef94469a33053","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.15.tgz","fileCount":47,"integrity":"sha512-qAG2Q6oCHZwGUshR0NPBNHaRfNNxMLMZgUonyqaH0T5gEDEb3UEwrPIQqLzfjtUjcNVJjVp8jZPesLtXQEO90g==","signatures":[{"sig":"MEUCIQDRqqAl67UV06j29aB2KQoqsnQluHA1+iK/5EIs83ehmwIgCtNPQKh6pFwtF0YtjYO2xZv/YrLDEFE5K8+bhZO89I8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClopX35ltxKg48FORoyLMFQ1AzRK4KFTm2hEJ60/MbVQIgLKkD9kRCEnPrVleUMHh2Kc8PdB6N6akuaOCljZXRub8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389104},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.15_1789855556878_0.5209579688606631","host":"s3://npm-registry-packages-npm-production"}},"0.8.16":{"name":"@goodandready/dsh-key-rotation","version":"0.8.16","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.16","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"2ca76eaac48b9de79e730a64676e60e421a9e01e","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.16.tgz","fileCount":47,"integrity":"sha512-W81MkZs34ecfzUw9r4+jUTZIR2ZcoL1sot42ef6cfr5NoaU+k5sCosI2lojEl54egoJlP3Ntj1X2z5RKz/3saw==","signatures":[{"sig":"MEUCIQDFB9rTEDBLwhlYo1m5JstXU0p9i5p7mWTiM0T8TKm4wQIgVHpmY5UL/ydeR3c3G1BBocj+kIEDGYbL8mvDOLs+S/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID7Gf9pa0+Ai1WsMVrdMDzjWN3962NLsZurEaD0fRzpKAiBnf6E8VwY3BFgEmVbqBms5Aw95VxvIgAl6WXJSBbJS7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391082},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"4054511d9ef5c39f4903a40a50f36534baf19718","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.16_1789913121760_0.5093444623957231","host":"s3://npm-registry-packages-npm-production"}},"0.8.17":{"name":"@goodandready/dsh-key-rotation","version":"0.8.17","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.17","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"bd640bf3075c5d3c9c8be8e51a1502ce515628d3","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.17.tgz","fileCount":48,"integrity":"sha512-0qERnFZaNnGfXwDlL1v+NwEoaQkZR9/TXGFjm8K7nXWEmV7K4ISUAtPmBz3nDI0K6EePhHGcSSBX7tgwJwe6gA==","signatures":[{"sig":"MEYCIQDSefWAynWdFUzLL5jfckq3SmMJqeUAO+L2UNHnueAZfQIhAPRqWD9RWLS8Xci7T32adlNL1LKE71d/1pF/kCsTN8Ro","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA7rZBUUnSsBrRM7EAKnlcoYgmc87kXqsBaG+0FR3rbAAiEA9uAAZ8WJiampvoKzqfNgU0Da99nU3SfUFrJxuBz3WNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398855},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"63043e3acaf91b68d5bebae9c4e1355aedd3f831","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.17_1789987803169_0.3122332231568543","host":"s3://npm-registry-packages-npm-production"}},"0.8.18":{"name":"@goodandready/dsh-key-rotation","version":"0.8.18","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.18","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"addb181d355a80663611c43139208a859b335931","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.18.tgz","fileCount":48,"integrity":"sha512-X+biQG0PJI6NNGyI7/Am5EnZnIuVKl7MU3c8lkrmEi6IeGTQykeK1SFQjOF8RQD6ayNpeHc165PDJYVxlAcG5Q==","signatures":[{"sig":"MEQCIHtgsYCApFSupwUur40/7Vq7zMhGrV8lB3jRKp7DYUgkAiBb2b+7jAnwfgilmJhJfvB1JEvSvv/OHOFN4bNXjZnC4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDMov3sWw/K9/ZbXTELBu75+3WrPlm18BgAmsDLX5W0MQIgKgEV+zhEbRTg4YKWKboWU6pa/71uODRCCm0jwXDdGzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":401804},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"02cf6bc9e712c8ec548d75483403eb0f37aa962d","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.18_1789999040370_0.8633242247261876","host":"s3://npm-registry-packages-npm-production"}},"0.8.19":{"name":"@goodandready/dsh-key-rotation","version":"0.8.19","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.19","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"5067c62a5247f9483759b16290eb7d950503d3d1","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.19.tgz","fileCount":49,"integrity":"sha512-Mjp4GoFEH1LcsJlWr27QhW+Vejvx2sbTuo5P5xgLjk521Mv0VPUxZklMLpnpa6W2hLC3QmHyt0HLkrCArgashg==","signatures":[{"sig":"MEUCIEaxl+fSic92WbllV2X2ojcq1zY6OyePQHtr7M0sKl1LAiEA7+jNAfKYrS1swH89jCiC8WriTeEDMAe08x+6C2trGBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCW0ohhLjus4FKSmFuDf+BmVc4k/5cF+vqJJz153czi2QIgBKX3QzkzEHkiYga4mXY0eaAr3ZmzCUXtEduogbUUETw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411126},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"ae2f49ba7b695495d2e63191c95ac933c6e7391d","scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.19_1790063510811_0.8713873567592925","host":"s3://npm-registry-packages-npm-production"}},"0.8.20":{"name":"@goodandready/dsh-key-rotation","version":"0.8.20","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.20","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"91b7ebd4ff21afd4e72411ab776a60db4f1a6b91","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.20.tgz","fileCount":49,"integrity":"sha512-27l471Is1Z209Srqp01tZZE64bYwRvLucAQlF4kolZsZZC1RyGma5llp1lK1C9U62DljYuycwSOvv8o/U9ttFw==","signatures":[{"sig":"MEUCIAkgp6wIkbSNveMEX9h8O2pR8+sFU44fzLDThOu9jByaAiEAg+GpcIpICNER2XB8iN/A9HA68IMhI7YoCYJ97FYjFn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGZ9mi/eeHu4iMAJ/ww5yR87Ngi43kEPvYPXsvzRgKoNAiADHB+1egrhiqIXFpnNXSGbv46bfMsfMWtblxzwBnSm6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411433},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"test":"node --test --test-timeout=10000 test/*.test.js test/*.test.mjs"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.20_1790084288857_0.5040022565434183","host":"s3://npm-registry-packages-npm-production"}},"0.8.21":{"name":"@goodandready/dsh-key-rotation","version":"0.8.21","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.21","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"c7b5091e33de974778742e92f6e3746ec12f9d7e","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.21.tgz","fileCount":51,"integrity":"sha512-w7Z1MxXE2dTCcf0r1+rr8AGbY8KFZHlEilTX8H1D/BnpulGhEIh8noqWURxcWKOfBlDEj6i6foAkP5WdQ/OiKw==","signatures":[{"sig":"MEYCIQCzinzQ8ND+bqMb8ylmPJinvp/7S0YOiYtV0yUabxHjxQIhAM4eZRhfBWr/H/n/w/sUerBuRzk3oFgTD2hF0C+lOxFn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDei2k6wgDZWZAp428lNgBbHrZxh82j03OQ6a49A1h9WgIgAo130EHZh1PA4Tc+ETtC5PlexcvRkBN0Nw3MXZhBXkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437988},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"ce3f0b2f96e305fb9bf3bdc9bc23e48939146586","scripts":{"test":"node tools/test.mjs","check":"node tools/check.mjs","test:core":"node tools/test.mjs --core"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"12.0.1","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"react":"18.3.1","react-test-renderer":"18.3.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.21_1790161296554_0.7389117138397852","host":"s3://npm-registry-packages-npm-production"}},"0.8.22":{"name":"@goodandready/dsh-key-rotation","version":"0.8.22","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.22","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"221ee2ace92a3a46b2b314d5033e0661f69054b2","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.22.tgz","fileCount":51,"integrity":"sha512-jNFo30sso9e1Oea01qv4Wuw+WnaYYtP5bxZtR1/xqfLQP0yEe/StbQJFlMrD6dmUCAKK/ieZXf4od5amd2e+7w==","signatures":[{"sig":"MEUCIEtWCI5cLV7Lf2ht2jl0q71O6sN72m+IqZoCjO7tQlwXAiEA+5HL/2WPgi0idmw0CDEoa5NlHylX11th0PMTXH75pJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDCWeD23IqiP2BMgFViN3TzlsP0054pppn3eP1QMwgrLQIhALmFs7uEEQuYuWXYvs2VBjowE79PRH8oZCMCYxlp4EkT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440106},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"7317f8cbaf35f4fd9696f6e7372d66ba6329aa23","scripts":{"test":"node tools/test.mjs","check":"node tools/check.mjs","test:core":"node tools/test.mjs --core"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"react":"18.3.1","react-test-renderer":"18.3.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.22_1790187003852_0.4394291923653908","host":"s3://npm-registry-packages-npm-production"}},"0.8.23":{"name":"@goodandready/dsh-key-rotation","version":"0.8.23","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"license":"MIT","_id":"@goodandready/dsh-key-rotation@0.8.23","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"6455de106de37b4026ea69a33e891182e8269eea","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.23.tgz","fileCount":51,"integrity":"sha512-16UUC/04MFDyiXu+C1g69X6z+SmGkotMRgbRTBuCNE5dBLGzdwcDmdHzewYs02i12zYdr7ThbUjQSxU7kLeJjg==","signatures":[{"sig":"MEYCIQC/N4+Dz7uw0RHSncol9k7yWI1RO9ckjIon6D0rrKMN3QIhAJ4S/RHXxOs+OS2CsGDSwU8QEFP3r3Ec/ZmMLCfUkbyY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCHXJMzTOqhpD9lrzRj0KN1hsOZA69QDQek0/7tqIyG4QIgPsFVMN9PdWmwQ1BkiNou/vFiZLuOIiox/B82r9VMce0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441379},"main":"lib/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"0b73d950ae3add3d30e640a341fdbf9a54c6c47c","scripts":{"test":"node tools/test.mjs","check":"node tools/check.mjs","test:core":"node tools/test.mjs --core"},"_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"react":"18.3.1","react-test-renderer":"18.3.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-key-rotation_0.8.23_1790189617734_0.7473677134467358","host":"s3://npm-registry-packages-npm-production"}},"0.8.24":{"_id":"@goodandready/dsh-key-rotation@0.8.24","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"dist":{"shasum":"4176e14039c09fa6296fd7c887a03d4f08e088b4","tarball":"https://registry.npmjs.org/@goodandready/dsh-key-rotation/-/dsh-key-rotation-0.8.24.tgz","fileCount":52,"integrity":"sha512-BjYW+4gFgy7GaFEOnXcVVPNf07EFis6oirjqFIL0fG36CxqJVSQNzqgg9EZrxYxiScaH2s49O5aRFnpI7hyPRw==","signatures":[{"sig":"MEYCIQCxj6Mm1flVVSRRAB7M+UuC9NMQV8M5ckWOkvvH8sflkwIhAOYYnFBVggqu67KK6EAiFJKJYKX+9wJrbO4ILoFym8sy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCpFFOnUWp2z7QFTlwIioIa53nk24UPzdoQbaxzh397OgIhAOm++4l4/9VtcKHXqFC6dH9mJO13me10+16SiWwlhvk6"}],"unpackedSize":453203},"main":"lib/index.js","name":"@goodandready/dsh-key-rotation","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"2f84af49860b0df672d3bb7f927997ce4d737650","license":"MIT","scripts":{"test":"node tools/test.mjs","check":"node tools/check.mjs","test:core":"node tools/test.mjs --core"},"version":"0.8.24","_npmUser":{"name":"goodandready","email":"Vadimanufriev02@gmail.com"},"homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"_npmVersion":"10.9.8","description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","directories":{},"maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"react":"18.3.1","react-test-renderer":"18.3.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-key-rotation_0.8.24_1790356527241_0.1168758201336606"}}},"time":{"created":"2026-08-18T08:57:45.484Z","modified":"2026-09-25T17:15:27.568Z","0.4.0":"2026-08-18T08:57:46.300Z","0.4.1":"2026-08-18T09:02:40.709Z","0.5.0":"2026-08-19T19:15:39.740Z","0.5.1":"2026-08-19T19:18:39.453Z","0.5.2":"2026-08-23T18:36:24.316Z","0.5.3":"2026-08-24T19:14:58.322Z","0.5.4":"2026-08-24T19:26:05.107Z","0.5.5":"2026-08-24T19:27:32.444Z","0.6.0":"2026-08-24T19:32:14.061Z","0.6.1":"2026-08-24T19:45:41.764Z","0.7.0":"2026-08-24T19:47:29.630Z","0.7.1":"2026-08-25T10:14:16.842Z","0.7.2":"2026-08-25T10:24:20.382Z","0.7.4":"2026-08-25T13:05:59.212Z","0.7.5":"2026-08-25T13:37:00.624Z","0.7.6":"2026-08-25T13:58:06.960Z","0.7.7":"2026-08-25T14:14:09.605Z","0.7.9":"2026-08-25T15:06:05.056Z","0.7.10":"2026-08-25T16:19:12.414Z","0.7.11":"2026-08-26T11:01:54.709Z","0.7.12":"2026-08-26T13:05:47.151Z","0.7.13":"2026-08-26T13:45:35.417Z","0.7.14":"2026-08-26T14:41:32.488Z","0.7.15":"2026-08-26T15:10:52.114Z","0.7.16":"2026-08-26T15:17:23.890Z","0.7.17":"2026-08-26T15:29:36.423Z","0.7.18":"2026-08-26T15:36:55.746Z","0.7.19":"2026-08-26T19:42:43.472Z","0.7.20":"2026-08-27T08:34:48.536Z","0.7.21":"2026-08-27T11:51:45.746Z","0.7.22":"2026-08-27T12:26:35.260Z","0.7.23":"2026-08-30T11:40:45.580Z","0.7.24":"2026-08-30T14:04:39.951Z","0.7.25":"2026-08-31T18:50:20.354Z","0.7.26":"2026-08-31T20:49:48.882Z","0.7.27":"2026-09-01T09:09:25.365Z","0.7.28":"2026-09-01T10:00:51.487Z","0.7.29":"2026-09-01T10:19:33.172Z","0.7.30":"2026-09-01T11:41:26.053Z","0.7.31":"2026-09-02T13:38:32.688Z","0.7.32":"2026-09-02T19:47:39.599Z","0.7.33":"2026-09-02T19:59:35.079Z","0.7.34":"2026-09-04T20:48:54.465Z","0.7.35":"2026-09-06T12:33:42.757Z","0.7.36":"2026-09-07T14:23:45.239Z","0.7.37":"2026-09-08T07:56:01.192Z","0.7.38":"2026-09-08T13:20:02.529Z","0.7.39":"2026-09-08T17:24:29.941Z","0.7.40":"2026-09-09T17:58:16.783Z","0.8.0":"2026-09-09T18:22:58.316Z","0.8.1":"2026-09-10T08:53:22.466Z","0.8.2":"2026-09-10T10:33:39.365Z","0.8.3":"2026-09-10T17:21:20.534Z","0.8.4":"2026-09-10T17:30:09.517Z","0.8.5":"2026-09-10T18:13:15.676Z","0.8.6":"2026-09-11T18:44:39.313Z","0.8.7":"2026-09-12T15:35:00.608Z","0.8.8":"2026-09-12T15:46:13.955Z","0.8.10":"2026-09-15T22:00:59.897Z","0.8.11":"2026-09-16T12:01:07.133Z","0.8.12":"2026-09-16T15:01:58.135Z","0.8.13":"2026-09-17T13:34:46.873Z","0.8.14":"2026-09-19T15:00:17.804Z","0.8.15":"2026-09-19T22:05:56.977Z","0.8.16":"2026-09-20T14:05:21.880Z","0.8.17":"2026-09-21T10:50:03.271Z","0.8.18":"2026-09-21T13:57:20.465Z","0.8.19":"2026-09-22T07:51:50.900Z","0.8.20":"2026-09-22T13:38:08.972Z","0.8.21":"2026-09-23T11:01:36.693Z","0.8.22":"2026-09-23T18:10:03.947Z","0.8.23":"2026-09-23T18:53:37.846Z","0.8.24":"2026-09-25T17:15:27.355Z"},"bugs":{"url":"https://github.com/GooDAnDReaDY/dsh-key-rotation/issues"},"license":"MIT","homepage":"https://github.com/GooDAnDReaDY/dsh-key-rotation","keywords":["deepseek-harness","dsh","dsh-plugin","bundle","api-key","rotation","quota","rate-limit"],"repository":{"url":"git+https://github.com/GooDAnDReaDY/dsh-key-rotation.git","type":"git"},"description":"Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.","maintainers":[{"name":"goodandready","email":"Vadimanufriev02@gmail.com"}],"readme":"# 📦 @goodandready/dsh-key-rotation\n\n<div align=\"center\">\n\n<h3>适用于 DeepSeek Harness 的企业级无感 API 密钥轮换、预判限流与跨提供商故障转移引擎</h3>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@goodandready/dsh-key-rotation\"><img src=\"https://img.shields.io/npm/v/@goodandready/dsh-key-rotation.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b\" alt=\"npm version\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/github/license/GooDAnDReaDY/dsh-key-rotation.svg?style=for-the-badge&color=10b981&labelColor=064e3b\" alt=\"license\"></a>\n  <a href=\"https://github.com/topics/dsh-plugin\"><img src=\"https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065\" alt=\"DSH Plugin\"></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03\" alt=\"Node version\"></a>\n</p>\n\n<!-- 展厅链接 -->\n<p align=\"center\">\n  <a href=\"https://goodandready.app/\"><img src=\"https://img.shields.io/badge/🌐_DSH_Hub-goodandready.app-ff4500.svg?style=for-the-badge&labelColor=1a1a2e\" alt=\"GoodAndReady Showcase\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"README.md\"><b>🇬🇧 English</b></a> •\n  <a href=\"README.ru.md\"><b>🇷🇺 Русский</b></a> •\n  <a href=\"README.zh.md\"><b>🇨🇳 中文说明</b></a>\n</p>\n\n<table align=\"center\">\n  <tr>\n    <td align=\"center\">\n      ⭐ <strong>如果您喜欢这个插件，请在 GitHub 上为它点亮 Star</strong> — 这能让我知道插件对您有用，并鼓励我继续开发和维护它。\n      <br><br>\n      🐛 <strong>如果您发现 Bug 或希望增加功能</strong>，请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议，并在后续版本中实现有价值的改进。\n    </td>\n  </tr>\n</table>\n\n</div>\n\n---\n\n## ⚡ 概述与核心痛点\n\n### 🚀 v0.8.11 新特性（一键更新与质量门禁）\n\n- **设置卡片中的插件更新器**：查看当前/最新版本并一键安装（#307）。\n- **bestEffort 替代空 catch**：非关键副作用在 debug 级别记录，不再被静默吞掉（#315）.\n- **客户端颜色仅使用主题变量**，并清理 production-path 测试（#311、#314）。\n- **发布集不再包含代理专用文件**（#308）。\n\n### 🚀 v0.8.10 版本新特性（流并发加固与状态自动修剪）\n- **杜绝并发计数泄漏**：在 `try ... finally` 中强制释放流并发占用，防止在正常完成或客户端中断时密钥被永久锁定。\n- **探测抗网络抖动重试**：在 `probeModels` 中遇到套接字网络临时错误时自动重试一次，避免密钥被误判损坏。\n- **内存与过期状态自动清理**：在定期清理周期中自动清除已删除密钥的内部映射记录。\n\n### 🚀 v0.8.9 版本新特性（智能路由与界面升级）\n- **前瞻性限流防护 (Proactive Rate-Limit Guard)**：根据 `x-ratelimit-remaining-*` 和 `Retry-After` 响应头在触发 429 错误前自动预冷密钥。\n- **自愈恢复 (Self-Healing / Auto-Unbreak)**：通过免费的 `/models` 接口进行定期后台探测，自动恢复处于 `broken` 状态的密钥，无需消耗聊天代币。\n- **延迟感知路由 (Latency-Aware Routing)**：可选路由策略：`round-robin`（轮询）、`least-loaded`（并发负载最低）与 `lowest-latency`（p95 延迟最低）。\n- **`dsh-clinebot` 风格界面升级**：支持带进度提示的批量“测试所有密钥”（Test All Keys）、实时事件流折叠抽屉（Live Event Stream）及配额重置倒计时徽标。\n- **原生中英文双语支持**：内置英文（`en`）与中文（`zh`）用户界面词典。\n\n### 🛠️ v0.8.0 版本新特性（稳定性）\n- **🔌 熔断器**：连续失败后快速失败（`CIRCUIT_OPEN`），半开探测自动恢复。\n- **🕒 单调时钟**：冷却/熔断使用进程单调时间，NTP 校时不会颠倒剩余时间。\n- **📮 非阻塞 Webhook**：有界队列 + backoff，轮换不等待 HTTP。\n- **🧱 原子写文件**：损坏 JSON 不会覆盖既有状态。\n- **🧹 克隆路由 GC**：清理孤儿自动路由。\n- **🧭 错误分类**：408/425/429/5xx、套接字与 gRPC 的 switch/surface/soft。\n- **📡 Status**：提供商 `circuit` + `meta`。\n- **🧪 Smoke**：429 → 切换密钥 → 成功。\n\n### 🛠️ v0.7.33 版本新特性 (稳定性与问题修复)\n- **🔍 修复密钥探测 BaseURL 解析**：`resolveBaseUrl` 现已支持从密钥 ref 反查归属提供商池，恢复在线模型连通性探测。\n- **🛡️ 防御级联无限递归**：在跨提供商故障转移中增加递归深度防护，彻底杜绝循环级联导致的堆栈溢出。\n- **🕒 纠正 PST 太平洋时间配额重置**：修复 UTC-8 时区偏移符号，确保日配额在太平洋时间午夜准时重置。\n- **🧹 定时器生命周期自动回收**：将金丝雀探测与自愈定时器纳入 Cordis 效应生命周期，消除热重载遗留孤儿定时器。\n- **⚡ 负载均衡超时锁自动释放**：`pickLeastLoaded` 算法现已检测过期连接锁，确保最小连接调度不发生偏移。\n- **🌐 完整中文界面本地化**：为 React 设置面板补充全部 `zh` 语言包，实现标准的三语（英/俄/中）无缝对齐。\n\n### 🚀 v0.7.31 版本新特性\n- **⚡ O(1) 令牌桶累加器**：将速率限制计算升级为 O(1) 时间复杂度与零内存分配，并支持响应头自适应同步。\n- **🛡️ 软/硬故障分级退避**：区分临时网络抖动（502/503/超时获得 10 秒平缓冷却）与硬性配额超限（指数退避倍增）。\n- **⏳ 惩罚衰减（Penalty Decay）**：持续稳定运行的密钥每小时自动平减一次失败惩罚系数。\n- **🎲 冷却抖动（Jitter）**：为解锁时间添加 ±12.5% 随机离散度，彻底消除上游惊群效应。\n- **🎯 定向金丝雀探测**：支持针对具体目标模型进行轻量级单 Token 连通性探测。\n- **📊 TTFT 百分位数（p50 / p95 / p99）**：在高精健康度指标中计算首字延迟百分位数。\n- **🔔 Webhook 警报聚合摘要**：在 5 秒窗口内将突发告警合并为单一结构化事件摘要，支持 Telegram/Discord/Slack。\n- **🧹 30 天用量压缩**：自动清理超过 30 天的历史统计数据，保障长期运行内存上限。\n- **✨ 乐观 UI 与快速筛选标签**：一键重置即时生效，密钥列表新增 `全部`、`就绪`、`冷却中`、`故障` 状态筛选胶囊。\n\n在高吞吐量自主智能体运行、多子智能体并行执行与多轮工具调用场景下，API 极易触发上游服务商的速率限制（HTTP 429 Too Many Requests、RPM/TPM 耗尽、每日配额限制或网络抖动）。在原生的 DeepSeek Harness 中，单个密钥耗尽会导致整个智能体执行链路崩溃，破坏会话的 Replay 状态并要求人工干预。\n\n**`dsh-key-rotation`** 基于 Cordis 微内核架构构建，提供了无缝透明的 **API 密钥池轮换、客户端预判限流（Token Bucket）与跨提供商故障转移（Failover Cascade）** 解决方案。\n\n与修改模型提供商 ID 的传统网关代理不同，`dsh-key-rotation` 通过运行时拦截 `ctx.credentials.resolve` 与 `llm/stream` 钩子工作：\n* **保持提供商身份一致**：仅切换底层解析的 API 密钥，维持 `pi-ai` 多轮会话与工具状态 100% 一致。\n* **令牌桶预判限流**：在发起网络请求前预先跳过已饱和的密钥，彻底消除重试网络延迟。\n* **最小连接数并发控制**：动态均衡各密钥的 In-Flight 并发流，防止并发突发拥塞。\n* **金丝雀自愈与级联**：通过轻量 Sandbox 探测探活冷却密钥，密钥全耗尽时自动级联到备用提供商。\n\n---\n\n## 🏗️ 架构与请求生命周期\n\n```mermaid\ngraph LR\n    subgraph ClientLayer [\"客户端与智能体层\"]\n        UserMsg[\"用户 / 智能体消息\"] --> Adapter[\"pi-ai 模型适配器\"]\n    end\n\n    subgraph RotationEngine [\"dsh-key-rotation 核心引擎\"]\n        Adapter --> StreamHook[\"llm/stream 拦截器\"]\n        StreamHook --> BucketCheck{\"Token Bucket\\nRPM / TPM 校验\"}\n        BucketCheck -->|未超限| ConcurrencyCheck{\"并发跟踪器\\n最小连接数\"}\n        BucketCheck -->|已超限| NextKey1[\"选取下一可用密钥\"]\n        ConcurrencyCheck -->|有空闲槽位| KeyResolver[\"ctx.credentials.resolve\"]\n        ConcurrencyCheck -->|槽位已满| NextKey1\n        \n        KeyResolver --> ActiveKey[\"活跃密钥 (执行中)\"]\n        \n        ActiveKey -.->|HTTP 429 / Quota / 错误| Failover[\"即时故障转移\"]\n        Failover --> BackoffCalc[\"指数退避与隔离\"]\n        Failover --> NextKey2[\"重试下一密钥 (零 Token 丢失)\"]\n        Failover -.->|所有密钥均在冷却中| CascadeEngine[\"跨提供商级联\"]\n        \n        BackoffCalc --> QuotaWindow[\"日历重置 / 午夜对齐窗口\"]\n        BackoffCalc --> CanaryProbe[\"金丝雀探针 (Sandbox Ping)\"]\n        CanaryProbe -->|探活成功| PoolReady[\"恢复至就绪池\"]\n    end\n\n    subgraph UpstreamLayer [\"上游服务商端点\"]\n        ActiveKey --> UpstreamAPI[\"主要提供商 API\"]\n        CascadeEngine --> FallbackAPI[\"备用提供商 API\"]\n    end\n\n    style ClientLayer fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4\n    style RotationEngine fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4\n    style UpstreamLayer fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4\n```\n\n---\n\n## ✨ 核心功能详解\n\n### 🔄 1. 透明轮换与即时故障转移\n* **维持提供商标识一致**：轮换仅替换底层解析的凭证引用，不改变 Provider ID，彻底避免 `INVALID_REPLAY_STATE` 异常。\n* **零 Token 丢失重试**：在首个内容块发出前发生错误时，无感重试并切换至池中下一个健康密钥。\n* **全状态码支持**：支持 `QUOTA`、`RATE_LIMIT`、`SERVER`、`TIMEOUT`、`TRANSPORT`、`EMPTY_RESPONSE`、`UNKNOWN_MODEL`、`AUTH` 等。\n* **正则消息模式分类**：内置 `SWITCHABLE_MESSAGE_PATTERN` 正则引擎，自动识别 SDK 抛出的非结构化配额与限流异常。\n* **非流式安全防护**：通过 `agent/request-error` 生命周期钩子保护 Embeddings 及 Batch 调用。\n\n### ⏱️ 2. 预判限流与并发控制\n* **Token Bucket 令牌桶 (`lib/bucket.js`)**：滑动窗口跟踪每分钟请求数 (`rpmLimit`) 与 Token 数 (`tpmLimit`)，预先拦截超限密钥。\n* **最小连接负载均衡 (`lib/concurrency.js`)**：实时追踪每把密钥的活跃流数量 (`inFlight`)，执行 `maxConcurrency` 限制。\n* **死锁自动释放**：针对网络异常中断连接，超时 5 分钟自动清理占用计数。\n\n### 🛡️ 3. 自动愈合与跨提供商级联\n* **跨提供商故障转移级联 (`lib/cascade.js`)**：主提供商密钥全部冷却时，自动级联路由到备用提供商池。\n* **沙箱密钥探测 (`lib/sandbox.js`)**：按需对密钥执行 `/models` 探测后再回到轮换；空闲冷却由 self-heal sweep 解除。\n* **配额日历重置对齐 (`lib/quota-window.js`)**：支持 `midnight_utc`、`midnight_pst` 与 `rolling_24h` 配额刷新窗口。\n* **自适应指数退避 (`lib/pool.js`)**：连续失败使冷却时间呈指数递增（基准 → ×2 → ×4 → 上限 ×8）。\n\n### 📊 4. 统计分析与多平台交互式 Webhook\n* **交互式 Webhook (`lib/webhook.js`)**：向 **Telegram**、**Discord**、**Slack** 推送带交互按钮的富文本警报，可在移动聊天中一键重置冷却或暂停提供商。\n* **使用量与成本报表 (`lib/usage-report.js`)**：按日统计各密钥请求数与预估成本，支持一键导出 CSV/JSON (`GET /dsh-key-rotation/usage-report`)。\n* **延迟 SLO 监控 (`lib/histogram.js`)**：记录首字延迟（TTFT）与健康度评分 (`0..100`)。\n\n---\n\n## 🖥️ Web GUI 控制台 (**设置 → 密钥轮换**)\n\n| 功能 | 说明 |\n|---|---|\n| **顶部状态栏微件** | DSH 顶栏实时健康徽章：🟢 正常 \\| 🟡 存在冷却 \\| 🔴 密钥池耗尽，点击弹出快速操作面板。 |\n| **一键健康矩阵** | 运行全量密钥与模型并行沙箱测试，直观展示 HTTP 状态码与 TTFT 首字延迟。 |\n| **一键凭证录入** | 点击添加自动生成规范名称（`<PROVIDER>_API_KEY`, `_2`, `_3`），悬停显示尾号。 |\n| **实时状态徽章** | 实时显示：`使用中`、`就绪`、`冷却中`（带倒计时）以及 `凭证未找到`。 |\n| **拖拽与顺序调整** | 使用 <kbd>↑</kbd> 和 <kbd>↓</kbd> 按钮调整轮换优先级。 |\n| **密钥泄漏探测器** | 实时校验输入格式（`sk-...` 等），防止误贴私钥或无关 Token。 |\n| **批量 `.env` 导入** | 支持文件导入解析并自动填充至对应提供商池。 |\n| **5 秒撤销栏** | 误删密钥或提供商时提供 5 秒快速撤销操作。 |\n\n---\n\n## 🔒 安全性与凭证存储\n\n* **配置零明文**：插件配置仅保存环境变量引用名（如 `MY_PROVIDER_API_KEY`）。\n* **宿主安全存储**：真实密钥持久化保存在 `$DSH_HOME/.credentials.yaml`。\n* **前台 5 字符脱敏**：前端仅展示密钥后 5 位字符进行视觉区分。对于长度 <= 5 的短密钥，返回统一脱敏占位符 (`***`)，防止凭证完整泄露。\n* **Fail-Closed 环回同源安全隔离**：管理接口严格通过 `isTrustedBridgeRequest` 验证本地同源请求，强制要求有效 `Origin` 和 `Host` 匹配，无条件拒绝跨站 (`cross-site`) 与非环回调用。\n* **导入接口 SSRF 防护**：远程提供商配置导入严格仅支持 HTTPS，解析并拦截所有私有/保留 IP 地址（RFC 1918、环回、链路本地、多播、CGNAT），对重定向目标进行全程验证，并将响应体上限严格控制在 1 MB 以内。\n\n---\n\n## 📦 安装指南\n\n```bash\n# 通过 DSH 插件管理器安装 (Web Profile):\ndsh plugin --profile web add @goodandready/dsh-key-rotation\n\n# 或直接从 GitHub 安装:\ndsh plugin --profile web add github:GooDAnDReaDY/dsh-key-rotation\n```\n\n> [!IMPORTANT]\n> 安装后请重启 DSH Web 服务并刷新浏览器页面：\n> ```bash\n> systemctl --user restart dsh-web\n> ```\n\n---\n\n## ⚙️ 配置示例 (`settings.yaml`)\n\n```yaml\ndsh-key-rotation:\n  switchCodes:\n    - QUOTA\n    - RATE_LIMIT\n    - SERVER\n    - TIMEOUT\n    - TRANSPORT\n    - EMPTY_RESPONSE\n    - UNKNOWN_MODEL\n    - AUTH\n  cooldownMs: 60000\n  circuitBreakerEnabled: true\n  circuitBreakerThreshold: 5\n  circuitBreakerOpenMs: 30000\n  circuitBreakerHalfOpenProbes: 1\n  concurrencyLimit: 5\n  quotaResetWindow:\n    type: midnight_utc\n    hour: 0\n  cascade:\n    - provider: backup-provider-id\n      model: your-backup-model-id\n  webhookUrl: \"https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>\"\n  providers:\n    - provider: your-primary-provider\n      rpmLimit: 60\n      tpmLimit: 100000\n      keys:\n        - PRIMARY_API_KEY\n        - PRIMARY_API_KEY_2\n        - PRIMARY_API_KEY_BACKUP\n    - provider: secondary-provider\n      keys:\n        - SECONDARY_API_KEY\n        - SECONDARY_API_KEY_2\n```\n\n---\n\n## 📄 开源许可\n\nMIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)\n\n### v0.7.39\n- **自动恢复与 lastUsedAt 修复**：修复了 `healIdleCooldowns` 中对密钥调用时间戳的读取逻辑，直接从 `lastUsedAt` 映射读取。在 `credentials.resolve` 中补充记录每次密钥调用的时间戳，使状态面板的最近使用时间生效并正确支持空闲密钥恢复。\n- **运行期快照缓存优化**：消除了定时维护清理、`/status` 路由及密钥池耗尽处理中重复调用 `buildRuntime()` 的开销。\n- **CI 测试稳定性提升**：对维护定时器与通知防抖定时器执行 `unref`，确保 Node.js 事件循环在测试完成后干净退出，彻底解决 CI 运行器假死问题。\n\n### v0.7.38\n- **热路径流处理优化**：在 `rotate()` 结束块处理中消除 4 次多余的 `buildRuntime()` 重复调用，直接复用请求作用域内的 `runtime0` 快照。\n- **零额外字符串分配的限流头解析**：重构 `extractRateLimit()`，采用单次遍历结合键长度检查，彻底消除对每个响应头执行 `.toLowerCase()` / `.toUpperCase()` 的内存碎片分配。\n- **日期 ISO 字符串记忆化**：在统计 `costDays` 与 `usageDays` 时将 `todayIso` 计算收敛为单次，杜绝重复创建 `Date` 实例。\n- **状态统计零数组分配**：在 `/dsh-key-rotation/status` 中将 `totalUsage` 的计算由 `[...values()].reduce()` 改为直接迭代累加，避免频繁轮询引发的垃圾回收波动。\n- **孤立通知记录自动清理**：在配置移除提供商模型池时，自动清理关联的通知限频缓存。\n\n### v0.7.37\n- **通过 AsyncLocalStorage 隔离请求上下文**：使用 Node.js 的 `node:async_hooks` 将解析后的密钥 (`pickedRef`)、启动时间和重试严格限定在单个请求上下文内，彻底消除并发请求间的竞态条件与误罚。\n- **流异常自动故障转移**：修复流在首个 token 返回前抛出传输异常（如 HTTP 429）直接终止的问题。若未发送内容块，现在会自动触发 `isSwitchableError` 并顺畅切换到备用密钥。\n- **避免在 rotate() 中直接修改共享状态**：遍历候选列表改用纯净的局部切片，不再直接覆盖修改 `pool.weightedRefs`。\n- **测试成功后自动解除隔离**：在设置界面通过沙箱成功验证密钥有效性后，自动清除 `failedUntil` 和 `brokenUntil` 惩罚标记。\n- **定期内存压缩清理**：将 `compactUsage(pool, 30, now)` 接入 30 秒后台巡检定时器，杜绝超长运行环境下的内存增长。\n- **并发环境下的精确延迟统计**：为每个请求独立计时，避免全局变量被并发请求覆盖导致 p50/p95 延迟失真。\n\n### v0.7.36\n- **架构精简与稳定性加固**：移除 6 个过度设计的模块（`shadow`、`incident`、`agent-budget`、`region`、`canary`、`maintenance`）与废弃端点。\n- **buildRuntime 高性能记忆化**：消除每个流式 token/chunk 上的深拷贝与模式重解析开销。\n- **原子轮询指针推进**：并发请求在选定候选密钥时立即推进指针，消除并发工具调用中的竞争条件。\n- **增强的可切换错误检测**：直接解析 HTTP 状态码（`429`, `401`, `403`, `5xx`）与 gRPC 状态码（`RESOURCE_EXHAUSTED`, `UNAVAILABLE`）。\n- **用户友好的耗尽提示**：密钥池耗尽时返回带恢复倒计时的清晰通知。\n- **智能轮询（Smart Polling）**：标签页不活动时暂停客户端后台轮询。\n\n### v0.7.35\n- **生命周期清理**: 将 `credentials.resolve` 猴子补丁和 `ctx.on` 事件监听器 (`llm/stream`, `agent/request-error`) 封装在 `ctx.effect` 作用域内，确保卸载时自动注销并恢复原始方法 (#238, #239)。\n- **配置密钥角色**: 在 `Config` Schema 中为 `incidentGitHubToken` 和 `webhookActionToken` 增加 `.role('secret')`，避免明文泄露并在 UI 中掩码显示 (#237)。\n- **设置架构与状态**: 在设置卡片中增加原生 `settingsScope` 绑定支持，保留 HTTP 桥接安全回退机制 (#235)。\n- **原生设计系统 (Changed in v0.8.3)**: 与 `dsh-clinebot` 基准对齐：模块化分区卡片、实时密钥池指标块、胶囊状态徽章与全局主题语义 token (#281)。\n- **本地化与文案 (Changed in v0.8.2)**: 插件仅注册英文源字符串 `en`；俄文/中文由 DSH 核心 locale 与 translation 插件通过 `props.t` 提供。活动语言回退：snapshot → 首个 `navigator.languages` → `en`。已移除 `settings.section` 回退与内置 `ru`/`zh` 表 (#236, #275, #277)。\n- **死代码清理**: 移除 header-chip 迁移后残留的废弃 `mountDashboard` 函数 (#240)。\n\n### 熔断器参数（v0.8.0）\n\n| 参数 | 类型 | 默认 | 说明 |\n|---|---|---|---|\n| `circuitBreakerEnabled` | boolean | `true` | 启用熔断 |\n| `circuitBreakerThreshold` | number | `5` | 连续失败阈值 |\n| `circuitBreakerOpenMs` | number | `30000` | 打开时长 ms |\n| `circuitBreakerHalfOpenProbes` | number | `1` | 半开探测次数 |\n","readmeFilename":"README.zh.md"}