{"_id":"@elinpf/dsh-ops-tool-ssh","_rev":"13-a283e3065dcb797b79fcee16443bcb42","name":"@elinpf/dsh-ops-tool-ssh","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"b4dee32662a145f971422e6b5f72942f1577cd91","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.0.tgz","fileCount":11,"integrity":"sha512-wkWHWivw/DRoJjrgyzDiDBGtc9R6jarWFy4tdoCDon363gJ7/eTyylR4H7kG+tw9BQkrVktLIZHWABBHOACoZw==","signatures":[{"sig":"MEUCIQC4UOtxJsr90CupLDWDIISKAcNe+WMwSWkLqcN5iiXJswIgH/b8Q92G4vktnnvSrF5Dq+x4/qnLOLtKYZkPd5auT9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/0f350f8a167fb4d739ea69795cd8b299/elinpf-dsh-ops-tool-ssh-0.1.0.tgz","_integrity":"sha512-wkWHWivw/DRoJjrgyzDiDBGtc9R6jarWFy4tdoCDon363gJ7/eTyylR4H7kG+tw9BQkrVktLIZHWABBHOACoZw==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.0_1788320345088_0.31935735462854353","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.1","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"63f95662f2494647000a1032ac6c52365e398b20","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.1.tgz","fileCount":11,"integrity":"sha512-8Qm7wktJq5mU3TD6nyWTG2U1LOPu1EjxWO4cRwAMTJdx5ulQIb7vZ86vbI7XZd7X8pWTQfqJbVperEhrEHQHWg==","signatures":[{"sig":"MEUCIQDpWLMaxTMgIG50C+3Dawx2rT/6Tm9UqN1wr16vY8Q+rQIgKQbXq+bQ9pV+PQ2lLIM32Hz7cU7iCA8KtyVXEejpzIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/2646bf53be536f5b9455333b53052381/elinpf-dsh-ops-tool-ssh-0.1.1.tgz","_integrity":"sha512-8Qm7wktJq5mU3TD6nyWTG2U1LOPu1EjxWO4cRwAMTJdx5ulQIb7vZ86vbI7XZd7X8pWTQfqJbVperEhrEHQHWg==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.1_1788321468282_0.7545691696743024","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.2","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.2","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"865c4198f611cbf36f41c188b285e3f3693b8f47","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.2.tgz","fileCount":11,"integrity":"sha512-MOIXmowppg+iR6Ob2fCLfEsfCrWzvPaA5diGvLptkAXs32SDaKvnlEZPz1c9aRsOMaRh2zpON5GDNxJUE/dBgg==","signatures":[{"sig":"MEYCIQDOgAlhSJqsJWsvphsT2dMtNrU/ustxGKFJXbGrjzjb+AIhAMfoiqeteXxSxnL+77prIqWw3Ae2Q+tebWulGqaK6Xyz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.2.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/b5b3ff5ca1c3f4ebab4f8636e8267bf7/elinpf-dsh-ops-tool-ssh-0.1.2.tgz","_integrity":"sha512-MOIXmowppg+iR6Ob2fCLfEsfCrWzvPaA5diGvLptkAXs32SDaKvnlEZPz1c9aRsOMaRh2zpON5GDNxJUE/dBgg==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.2_1788328475627_0.7111049972679193","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.3","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.3","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"dc742db533a2a86cbe90ee8f8a099ec331ce8aed","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.3.tgz","fileCount":11,"integrity":"sha512-5eG1JAQ+kMeqaiqEQowWN4qg25mm/WeFQaU6oevvgoA14GsUm9IssUIJ/O6i2qNSwO2tQ6cVjopDw4Xa1W48KA==","signatures":[{"sig":"MEYCIQDrFJQTyf9LH37UQGD64g0SjdgWZiB5O1gYoHh5IpvPAgIhAO8Ivygu9j0JG+BOCMJwbx0KyBd1k2R3xm5gS0Kf7QX2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.3.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/cd6e6ccff1ebb243cbdb73dd499bed0c/elinpf-dsh-ops-tool-ssh-0.1.3.tgz","_integrity":"sha512-5eG1JAQ+kMeqaiqEQowWN4qg25mm/WeFQaU6oevvgoA14GsUm9IssUIJ/O6i2qNSwO2tQ6cVjopDw4Xa1W48KA==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.3_1788334226648_0.4522906719671891","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.4","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.4","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"46a812ba01432c22ab6a15470d5167e2b91eb489","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.4.tgz","fileCount":11,"integrity":"sha512-6awin7bXjufT8qLVb5BCA2XPuSq7W6Xghi46eI8Pr9OP3G6ds6ECsVMk9FkpMrPathr4G5jNWfWB+wZVTmg//A==","signatures":[{"sig":"MEQCICIpmNZ0ToO0jxkCItOIzKCLF/b8Sq2JBX/r9tUoPhPzAiAilwDOxLn2kNB+q3i61roPwvF36fOqf5USBsLMsQ3wmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.4.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/68441f1325b1c9ebd579bcdde9673522/elinpf-dsh-ops-tool-ssh-0.1.4.tgz","_integrity":"sha512-6awin7bXjufT8qLVb5BCA2XPuSq7W6Xghi46eI8Pr9OP3G6ds6ECsVMk9FkpMrPathr4G5jNWfWB+wZVTmg//A==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.4"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.4_1788335608787_0.7515566522970087","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.5","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.5","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"eea8cbcc3f38b2a52616d53d6e0353276c2f9f8b","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.5.tgz","fileCount":11,"integrity":"sha512-hyRNGtxu0IWhQy79jO4fstyAAkZP0cdzawHlAPMXDGgCAjpsz09PNPTsYtN/fEgLpuNT2OEJiL4YUKf7w34uYg==","signatures":[{"sig":"MEQCICdL2aLtjLLJbSRGwLFyf2bMt7trzCz6TasApJYpA+uGAiATLgPw+q114qUGY1ErH2A+v2twMIRLXoSUMiMKGGMs6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.5.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/ad72e4e26a07b863536afc178b4f140f/elinpf-dsh-ops-tool-ssh-0.1.5.tgz","_integrity":"sha512-hyRNGtxu0IWhQy79jO4fstyAAkZP0cdzawHlAPMXDGgCAjpsz09PNPTsYtN/fEgLpuNT2OEJiL4YUKf7w34uYg==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.5_1788335938196_0.06813739411967812","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.6","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.6","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"0c606c215763594607c0b84fc1059802f45527a2","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.6.tgz","fileCount":11,"integrity":"sha512-GwaJ4Ov0ehfG7I8cy50MFG3vcfUNT86hwHlXG5bAbh+sHraCLEq0GYwNXbwEK6hgumiARg/7UwC634Dq+1XIGw==","signatures":[{"sig":"MEQCIAwgRGW9lxJ/TnCkfw4GpNVm6h4gTTM7kNnGJ16P88YEAiBkdYZ9lyH6WiYboc97WEtDe4cpPvbxVobGwc8ygzcH/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDkXiOz+O8d0fHxCfFgXsDDcVPQeAIlsckfp9o8gCK0hgIhAL1azcoKTfOHFvOCnvHQNlqgRPnVN1NKn6xuNx5B6iDJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.6.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/c8ec8273b0aab9616d73f3709a7e5f78/elinpf-dsh-ops-tool-ssh-0.1.6.tgz","_integrity":"sha512-GwaJ4Ov0ehfG7I8cy50MFG3vcfUNT86hwHlXG5bAbh+sHraCLEq0GYwNXbwEK6hgumiARg/7UwC634Dq+1XIGw==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.6_1788491450673_0.275919075042226","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.1.7","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.1.7","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"378e4c381cba4a543a2e0a98f0181f3740634732","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.1.7.tgz","fileCount":11,"integrity":"sha512-vag7CuqlguL3lf00t3AQILV18lmdfPgHY23EQtuen/m/LRH/M/A56mfVQFjYfngY/1RmgifjmczISZGbFauLaQ==","signatures":[{"sig":"MEUCIEY0nr2wXAkU0GkvabFYk8oJiz4s9gdSIOtykHOa0fUaAiEA0XuqpzhcHqvf1RqyNx0+eekw/wisLVJ8gW/RHPWdWSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIECbC1yl+m7VyvYUCNE1VlCAQMjjJAPfbkd3r+Mc+MGFAiEA4scDAdBlnlOxccF2XMW1Q9TTUD0iOkdfP4LfVhRytKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14179},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.1.7.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/33a5bb5472c3dfef05086ccfd1459b31/elinpf-dsh-ops-tool-ssh-0.1.7.tgz","_integrity":"sha512-vag7CuqlguL3lf00t3AQILV18lmdfPgHY23EQtuen/m/LRH/M/A56mfVQFjYfngY/1RmgifjmczISZGbFauLaQ==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.1.7_1788768276111_0.8440381662638496","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.2.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.2.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"12151579ea3c24b48f5391ebea70e14bc5d7b9b4","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.2.0.tgz","fileCount":11,"integrity":"sha512-+TYRwDmcyCaGv5RCu1J5TUrC3mldOP2ccOZTQS6fbFV7FGaKKiE0o9gEQYYMVUTO07/OBBRD3t8165N64YxyoA==","signatures":[{"sig":"MEUCIEBX/47y2LwM0lUei/C8jLlbxOhmFDLy7XSNnt9LYqzIAiEA85tR3Rg/kOcqwsoHGsJO1q+J616/8er6lggWx6pDqp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCaAdK+g/txsxNDKuE+aS26vLNdlLs4YJNaLQOkyRkhYwIhAJrDAIaTXmRPhuoscAh6cFiUEyROtVx/t6bAyrZ9cQp2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17230},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.2.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/0323ec4cadd67641d4cb8f8488795e57/elinpf-dsh-ops-tool-ssh-0.2.0.tgz","_integrity":"sha512-+TYRwDmcyCaGv5RCu1J5TUrC3mldOP2ccOZTQS6fbFV7FGaKKiE0o9gEQYYMVUTO07/OBBRD3t8165N64YxyoA==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.2.0_1789349727818_0.7199715209449102","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.2.1","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.2.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"9da1c33e2623503a4f271b69160b765487c988aa","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.2.1.tgz","fileCount":11,"integrity":"sha512-TJ3IyPjDK8qshp0ZKhBQjPDHbK57yFojCM4TCN7yUTSXgGM6dZw0jzwvn8wtnZghJZSDpXNcEqMM0qYf/Na5xQ==","signatures":[{"sig":"MEQCICQpTpbq/n2+Gg3wAfVjhnD9Hx+1HBFYnytVcKyo7J86AiBWcWDK9Y0p0dJmYr+5Rk2TXyAWNt0yivPpkY+UmteQwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCmCFuU9lZJPoI0+MKpa1FmWtb0StDJ8FFvmJilvOwYEQIgI28PWE56pGQ0YYj/C2eFplmywDNTd8kgqSbzb+iS3w8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17230},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.2.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/9a9de9270840810435f4c55c6943a6e2/elinpf-dsh-ops-tool-ssh-0.2.1.tgz","_integrity":"sha512-TJ3IyPjDK8qshp0ZKhBQjPDHbK57yFojCM4TCN7yUTSXgGM6dZw0jzwvn8wtnZghJZSDpXNcEqMM0qYf/Na5xQ==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.2.1_1789351427784_0.6680730624808426","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.3.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.3.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"d941fda27466c42cc0f45f7aa9a27e760adc01a1","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.3.0.tgz","fileCount":11,"integrity":"sha512-y7XI/1DcanYhoaMCMrZNuDGUctvJBVbRnvJM+WtpJzLWXPGYRL3+VqY1snM3wiVVVMKB0ftDfQDkXekmLL3pUA==","signatures":[{"sig":"MEUCIDktaga+wGcIK0IorPK4HvpNMC/0AJyRO4ZWhk5oKesPAiEAx43r4CnQrgfO8NY6CoznGN4Zk+OfIogQq7LFSRBWwYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG3K0FDs3UJP0RFa/35EPQWAIepjLLYrT30nsz5t2+ObAiEAhhvNx+gGptmO53xQOs30xFOH89Q1N+uCdwo0uOJD2YY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17230},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.3.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/d8ad16b6818cf81b9c7a7d30850fe17b/elinpf-dsh-ops-tool-ssh-0.3.0.tgz","_integrity":"sha512-y7XI/1DcanYhoaMCMrZNuDGUctvJBVbRnvJM+WtpJzLWXPGYRL3+VqY1snM3wiVVVMKB0ftDfQDkXekmLL3pUA==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.3.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.3.0_1789355950855_0.5117677424786282","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@elinpf/dsh-ops-tool-ssh","version":"0.4.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-ssh@0.4.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"09e49036c225bb7c6bce9a289c12e68d54bd6acc","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.4.0.tgz","fileCount":11,"integrity":"sha512-efwPp7c/R9HgRdXLMsstKiGloa/Tvs/u5YG0aSCpBAviDYoX3EKXi1pDtIkKwB5K4/x+tNKiuCBgYFsu3KXcYg==","signatures":[{"sig":"MEYCIQDPQlnR+b6OvtOf0re6CJcZCfLijGdFgrJ6KAOufYITlQIhAPZwjzIhnVt1fHKFjw1G9cWu4DcwCTKqNMWljvo6Zl61","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC6sqDjHmfnIACqsKsKDtOIiDxt9bgIdkbmvHgy7Mv7GgIhAJNxTBiC3IN/MSyfEYPQdlb3M5OSaLayBQIqsz0Ftu2t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17230},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.4.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/c7e206966160fb6a28b35658d3963d5c/elinpf-dsh-ops-tool-ssh-0.4.0.tgz","_integrity":"sha512-efwPp7c/R9HgRdXLMsstKiGloa/Tvs/u5YG0aSCpBAviDYoX3EKXi1pDtIkKwB5K4/x+tNKiuCBgYFsu3KXcYg==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-ssh_0.4.0_1789542907688_0.08622885028752525","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@elinpf/dsh-ops-tool-ssh@0.4.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"bd340cd6dbe5832a178a84c1bbddbd2e67594006","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-ssh/-/dsh-ops-tool-ssh-0.4.1.tgz","fileCount":11,"integrity":"sha512-i7eUA+sUmGnI5BV+D4cbreVVrY+/3l6j58MWkiHnGipCSsZdgG5su60i9anCa9JJzuIGUnmui1JV69Kog3dp5g==","signatures":[{"sig":"MEYCIQDLVABVXkU/Dh/DmYD3Ukng/P602nZ5pflj1dEJLdUuOAIhAMrKIgSrieS+ZeiffRl6th3x+Cgabja5MTVsEwf2czds","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF9QM5tIvF4laep9k5zgeQnj1mURjUJF42Jokm+ROJ9/AiBhIczKiPXRek8te/hRlhC/kKJ7kA3ORGBsIn2M++gDsw=="}],"unpackedSize":17230},"main":"lib/index.js","name":"@elinpf/dsh-ops-tool-ssh","type":"module","_from":"file:elinpf-dsh-ops-tool-ssh-0.4.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"version":"0.4.1","_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/f5dc5ad9a68b228e3e00e080d1c92e24/elinpf-dsh-ops-tool-ssh-0.4.1.tgz","_integrity":"sha512-i7eUA+sUmGnI5BV+D4cbreVVrY+/3l6j58MWkiHnGipCSsZdgG5su60i9anCa9JJzuIGUnmui1JV69Kog3dp5g==","_npmVersion":"10.9.8","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","directories":{},"maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@elinpf/dsh-ops-shell-tool":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.4.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-shell":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-ops-tool-ssh_0.4.1_1789699635934_0.9723806490071161"}}},"time":{"created":"2026-09-02T03:39:04.959Z","modified":"2026-09-18T02:47:16.173Z","0.1.0":"2026-09-02T03:39:05.235Z","0.1.1":"2026-09-02T03:57:48.427Z","0.1.2":"2026-09-02T05:54:35.760Z","0.1.3":"2026-09-02T07:30:26.761Z","0.1.4":"2026-09-02T07:53:28.914Z","0.1.5":"2026-09-02T07:58:58.378Z","0.1.6":"2026-09-04T03:10:50.771Z","0.1.7":"2026-09-07T08:04:36.194Z","0.2.0":"2026-09-14T01:35:27.912Z","0.2.1":"2026-09-14T02:03:47.877Z","0.3.0":"2026-09-14T03:19:10.940Z","0.4.0":"2026-09-16T07:15:07.771Z","0.4.1":"2026-09-18T02:47:16.020Z"},"license":"MIT","description":"ssh tool consumer of the ops-access seam — resolves ssh profiles and runs commands via ctx.shell, injecting credential paths automatically.","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"readme":"# @elinpf/dsh-ops-tool-ssh\n\nDeepSeek Harness 运维模式的 `ssh` 工具 — 使用已注册的 ssh 访问档案在远程主机上执行命令(凭证、端口、user@host 自动注入)。支持密钥登录和密码登录(经 `sshpass`)。\n\n## 功能\n\nops-access 凭据缝隙的消费方:模型用档案名加命令调用 `ssh`,插件经 `opsAccess` 解析档案,再经 `ctx.shell` 执行。档案的凭证通常来自其引用的 `ssh-cred` 条目(登记一次、多机共享)——合并在 resolve 时已完成,本工具永远只看到扁平字段。\n\n- **密钥登录**(默认):`BatchMode=yes` 让任何需要交互的场景快速失败;`StrictHostKeyChecking=accept-new` 首次连接信任主机密钥、密钥变更则拒绝。\n- **密码登录**(档案带 `password`):经 `sshpass -f <密码文件>` 执行,带 `PreferredAuthentications=password`、`PubkeyAuthentication=no`、`NumberOfPasswordPrompts=1` — BatchMode 必须关闭,因为它会压制 sshpass 赖以应答的那个提示符。要求 dsh 宿主机上装有 `sshpass`。面向只提供密码登录的网络设备等场景。\n- 远程命令作为**一个**单引号参数整体传出 — 管道、重定向、`&&`、`;`、`$()` 全部在远程主机执行,本地 shell 绝不切分这行命令(2026-08-27 险情:一条未加引号的 `&&` 链差一次认证失败就在本地删掉了控制面清单)。\n- 只有密钥/密码路径换成按次生成的凭据 token;user@host 和端口保持内联。展示命令(模型可见、入日志)只含 token — 真正执行的命令才带真实值。\n- 信号死亡(exitCode 为 null)归一化为 -1,原因写入 `error` 字段。可用 `list_access` 查看可选主机名。\n\n## 设计\n\n本包刻意保持单薄。所有共享机制 — 结果形状 `{ exitCode, stdout, stderr, command, error? }`、输出 schema、render、按次解析的执行模板(默认 30s 超时)— 都在 `@elinpf/dsh-ops-shell-tool`。消费方工具只提供四个身份要素:工具名、凭据 kind、档案参数名、`buildCommand`。ops-access 缝隙每次调用经 `ctx.get('opsAccess')` 现取,绝不用静态 inject(preset 并发挂载同组插件,静态 inject 会让加载器死锁)。\n\n- `src/index.ts` — 插件本体(函数式插件:`name`/`inject`/`Config`/`apply`,无默认导出)。注册走 `ctx.effect`,fiber 销毁/HMR 时工具随之卸载。\n- `src/types.ts` — 纯类型(无任何运行时值)。\n- `src/invariant.ts` — invariant 伴随插件;无运行时 invariant(工具无状态,不拥有 session 事件),仅登记包的归属。\n\n## 配置\n\n```yaml\n- id: ops-tool-ssh\n  name: '@elinpf/dsh-ops-tool-ssh'\n  timeoutMs: 30000            # 单次调用的 shell 超时(毫秒)\n  connectTimeoutSeconds: 10   # ssh -o ConnectTimeout(TCP 握手等待)\n```\n\n## 测试\n\n```sh\nnpm run build\nnpx vitest run\n```\n\n测试用 mock 上下文(`tests/harness.ts`)挂载插件,捕获工具注册、shell resolve/run 调用和 effect disposer — 覆盖命令拼装、引号、凭据 token、错误兜底、render 纯函数性和 HMR 卸载。\n","readmeFilename":"README.zh.md"}