{"_id":"@deepseek-ai/dsh-shell","_rev":"6052665-6a7dbb37e9e8cec1cd46a394","dist-tags":{"latest":"0.0.1-rc.5","next":"0.1.1-rc.2"},"name":"@deepseek-ai/dsh-shell","time":{"created":"2026-08-13T12:40:23.629Z","modified":"2026-08-21T12:33:54.140Z","0.1.0-rc.2":"2026-08-13T09:51:13.592Z","0.0.1-rc.5":"2026-08-12T22:37:48.970Z","0.1.0-rc.3":"2026-08-13T11:19:20.973Z","0.1.0-rc.6":"2026-08-13T12:40:10.799Z","0.1.0-rc.7":"2026-08-17T11:39:23.236Z","0.1.0-rc.8":"2026-08-19T15:32:12.614Z","0.1.1-rc.1":"2026-08-21T06:40:08.349Z","0.1.1-rc.2":"2026-08-21T12:33:35.448Z"},"versions":{"0.1.0-rc.2":{"name":"@deepseek-ai/dsh-shell","version":"0.1.0-rc.2","license":"MIT","_id":"@deepseek-ai/dsh-shell@0.1.0-rc.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"e4c1e154722b4ddf2b7e9e6fed2e7134efc0eb8e","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.0-rc.2.tgz","fileCount":11,"integrity":"sha512-fZj/2L0LnsNbQtR/d/ZeKnTKK4p1PEeZO1+dBa71VP9W4vYMEjXWMldod/Fm8qHOiHyeoSzdfjTtF6NmLtW9wQ==","signatures":[{"sig":"MEQCIG946dd5RfCscYQOFWLMX2NLbBWprGIoW0oGsd+TQa8HAiAzJziPchNUDLPxACHgmgiAaEh67osed4n9ry20hrmYsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36226,"size":13135},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.2.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.2.tgz","_integrity":"sha512-fZj/2L0LnsNbQtR/d/ZeKnTKK4p1PEeZO1+dBa71VP9W4vYMEjXWMldod/Fm8qHOiHyeoSzdfjTtF6NmLtW9wQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/shell/shell"},"_npmVersion":"11.16.0","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.2","@deepseek-ai/dsh-settings":"^0.1.0-rc.2","@deepseek-ai/dsh-invariants":"^0.1.0-rc.2","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.2","@deepseek-ai/dsh-settings":"^0.1.0-rc.2","@deepseek-ai/dsh-invariants":"^0.1.0-rc.2","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-shell_0.1.0-rc.2_1786614673460_0.997304429341513","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-13T09:51:13.592Z","publish_time":1786614673592,"_source_registry_name":"default"},"0.0.1-rc.5":{"name":"@deepseek-ai/dsh-shell","version":"0.0.1-rc.5","license":"BSD-3-Clause","_id":"@deepseek-ai/dsh-shell@0.0.1-rc.5","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"a407e961fe944b856e36c70b7af5492684707071","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.0.1-rc.5.tgz","fileCount":11,"integrity":"sha512-j95ciGkQPX+RkLyA+rSG2AvZH4F2UpklvcQB9ELjQKvBM6qHUYYBGwelWbMP99KSf9iCvsWARBfy+r9TR1UJEw==","signatures":[{"sig":"MEUCICOjIZZYeWOmwclm/9LRXOqV36g2QjQYakbPLkVlKG4DAiEA4ymtgC2ldV3mWNRd6zj7O7BNwTywuSfGbdbZuQhZUyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36675,"size":13317},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.0.1-rc.5.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.0.1-rc.5.tgz","_integrity":"sha512-j95ciGkQPX+RkLyA+rSG2AvZH4F2UpklvcQB9ELjQKvBM6qHUYYBGwelWbMP99KSf9iCvsWARBfy+r9TR1UJEw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/shell/shell"},"_npmVersion":"11.16.0","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.4","@deepseek-ai/dsh-sandbox":"^0.0.1-rc.5","@deepseek-ai/dsh-settings":"^0.0.1-rc.5","@deepseek-ai/dsh-invariants":"^0.0.1-rc.5","@deepseek-ai/dsh-subprocess":"^0.0.1-rc.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.4","@deepseek-ai/dsh-sandbox":"^0.0.1-rc.5","@deepseek-ai/dsh-settings":"^0.0.1-rc.5","@deepseek-ai/dsh-invariants":"^0.0.1-rc.5","@deepseek-ai/dsh-subprocess":"^0.0.1-rc.5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-shell_0.0.1-rc.5_1786574268834_0.19930039356848095","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-12T22:37:48.970Z","publish_time":1786574268970,"_source_registry_name":"default"},"0.1.0-rc.3":{"name":"@deepseek-ai/dsh-shell","version":"0.1.0-rc.3","license":"MIT","_id":"@deepseek-ai/dsh-shell@0.1.0-rc.3","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"638194306ec3113acc09beccbd6a34c54b159add","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.0-rc.3.tgz","fileCount":11,"integrity":"sha512-CcW+c0DkAwEr8njKrAyeGVPQ/AAarq6jStiEpv6Zis+0oVrAalOm4SUkDDIEmoFaeYnNxT1HLU5lksZ2iKnBMQ==","signatures":[{"sig":"MEUCIQD/5kwHEWn9bExVBpGsSX5w2ZFfKq+61uN4dooJF0pKxgIgFyDyzyiynLJJ4KIoGBONsmhbuOSJ3hh3tDMye+ApiJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36226,"size":13143},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.3.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.3.tgz","_integrity":"sha512-CcW+c0DkAwEr8njKrAyeGVPQ/AAarq6jStiEpv6Zis+0oVrAalOm4SUkDDIEmoFaeYnNxT1HLU5lksZ2iKnBMQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/shell/shell"},"_npmVersion":"11.16.0","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.3","@deepseek-ai/dsh-settings":"^0.1.0-rc.3","@deepseek-ai/dsh-invariants":"^0.1.0-rc.3","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.3","@deepseek-ai/dsh-settings":"^0.1.0-rc.3","@deepseek-ai/dsh-invariants":"^0.1.0-rc.3","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.3"},"_npmOperationalInternal":{"tmp":"tmp/dsh-shell_0.1.0-rc.3_1786619960820_0.78520247820253","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-13T11:19:20.973Z","publish_time":1786619960973,"_source_registry_name":"default"},"0.1.0-rc.6":{"name":"@deepseek-ai/dsh-shell","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","version":"0.1.0-rc.6","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/shell/shell"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.6","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.6","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.6","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"devDependencies":{"@deepseek-ai/dsh-subprocess":"^0.1.0-rc.6","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.6","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-invariants":"^0.1.0-rc.6"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-shell@0.1.0-rc.6","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-l/pcwbdpM+Zgp2AzH0kH0z7bPU7L3k4uG1t5Du1V5ilk70tyMSxz2upNfAbjkDHZZZO18LTs33aq+zRWHX1CUg==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.6.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.6.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-l/pcwbdpM+Zgp2AzH0kH0z7bPU7L3k4uG1t5Du1V5ilk70tyMSxz2upNfAbjkDHZZZO18LTs33aq+zRWHX1CUg==","shasum":"3ca3e653b9171125ca62a007eb0133cc592a529c","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.0-rc.6.tgz","fileCount":11,"unpackedSize":36222,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICjt49eZ441vhtkBzWASZ2nnzdbusV9zH/nzU4hWqyWwAiBW+zCJcbq1XvUJhYqJgOryXhmiULUMImB3c/Ga+X6kmQ=="}],"size":13133},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-shell_0.1.0-rc.6_1786624810649_0.5495092857090795"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-13T12:40:10.799Z","publish_time":1786624810799,"_source_registry_name":"default"},"0.1.0-rc.7":{"name":"@deepseek-ai/dsh-shell","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/shell/shell"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.7","@deepseek-ai/dsh-settings":"^0.1.0-rc.7"},"devDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.7","@deepseek-ai/dsh-settings":"^0.1.0-rc.7"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-shell@0.1.0-rc.7","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-in3ifbq80tn5cf1ICBBsRdwKjURB0g0dIRdCVUgl/GDqCdC/S0TjMLXw4nmFdCssYLm7JbG5a59BfJG0KFuz6Q==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.7.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.7.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-in3ifbq80tn5cf1ICBBsRdwKjURB0g0dIRdCVUgl/GDqCdC/S0TjMLXw4nmFdCssYLm7JbG5a59BfJG0KFuz6Q==","shasum":"4510ecbda55c046215456642aa80aff151b8715a","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.0-rc.7.tgz","fileCount":11,"unpackedSize":36222,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCfzvtKFmX4d9HezwNQICAsKbh+Toe4dFDFyU/kaON01wIgTizX06xCBtWZB3tI1IlImny0CRHindIwhHRzeJ8fIRU="}],"size":13124},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-shell_0.1.0-rc.7_1786966763076_0.6732881525364407"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-17T11:39:23.236Z","publish_time":1786966763236,"_source_registry_name":"default"},"0.1.0-rc.8":{"name":"@deepseek-ai/dsh-shell","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","version":"0.1.0-rc.8","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/shell/shell"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-sandbox":"^0.1.0-rc.8","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.8","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"devDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.8","@deepseek-ai/dsh-subprocess":"^0.1.0-rc.8","@deepseek-ai/dsh-sandbox":"^0.1.0-rc.8","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.8"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-shell@0.1.0-rc.8","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-RNhp7Y25DXUH7o36X4GcN0lnOLg6NXTlWZpYNURT7aDj3UHcLLajRsyddiAh1EbwQnl0GRKRZhLaZHrrG6gMIw==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.8.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.0-rc.8.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-RNhp7Y25DXUH7o36X4GcN0lnOLg6NXTlWZpYNURT7aDj3UHcLLajRsyddiAh1EbwQnl0GRKRZhLaZHrrG6gMIw==","shasum":"8949eb404e991dc1c48a5ebde72097c5cde94db1","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.0-rc.8.tgz","fileCount":11,"unpackedSize":36222,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHrDpmg6fPl/cJKmyrgH8E/vrJpYf19gi/PTurK12oI4AiEA1CvKKjV5vcrZTtUIE73kYPXeGpOVIoBiNuGjn8B+DKc="}],"size":13135},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-shell_0.1.0-rc.8_1787153532431_0.4648170644234286"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-19T15:32:12.614Z","publish_time":1787153532614,"_source_registry_name":"default"},"0.1.1-rc.1":{"name":"@deepseek-ai/dsh-shell","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","version":"0.1.1-rc.1","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/shell/shell"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.1-rc.1","@deepseek-ai/dsh-sandbox":"^0.1.1-rc.1","@deepseek-ai/dsh-subprocess":"^0.1.1-rc.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.1-rc.1"},"devDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.1-rc.1","@deepseek-ai/dsh-subprocess":"^0.1.1-rc.1","@deepseek-ai/dsh-sandbox":"^0.1.1-rc.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.1-rc.1"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-shell@0.1.1-rc.1","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-3D92e9P6qEfLipJvTSzg5voTLydjxiC5glLJpW/1Jg2HZ3OFJ/sr/2GOIjSNNYViRYOXK9HsfvYURUAFHmQGTg==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.1-rc.1.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.1-rc.1.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-3D92e9P6qEfLipJvTSzg5voTLydjxiC5glLJpW/1Jg2HZ3OFJ/sr/2GOIjSNNYViRYOXK9HsfvYURUAFHmQGTg==","shasum":"6d02acc6264cf683d02be2efcae402d274ab6540","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.1-rc.1.tgz","fileCount":11,"unpackedSize":36237,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0CaebaeGCLpAbYwPN3UbbH4rsES7r2BLgeAKKNIYlSAIhANCpqDMnKxmEwx0X0pBoXTl5+TBSqa61lMUoLl5P7BDg"}],"size":13144},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-shell_0.1.1-rc.1_1787294408223_0.6803641914476859"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-21T06:40:08.349Z","publish_time":1787294408349,"_source_registry_name":"default"},"0.1.1-rc.2":{"name":"@deepseek-ai/dsh-shell","description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","version":"0.1.1-rc.2","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/shell/shell"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-subprocess":"^0.1.1-rc.2","@deepseek-ai/dsh-sandbox":"^0.1.1-rc.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.1-rc.2"},"devDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-sandbox":"^0.1.1-rc.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-settings":"^0.1.1-rc.2","@deepseek-ai/dsh-subprocess":"^0.1.1-rc.2"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-shell@0.1.1-rc.2","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-gEqPUxKOpOV66wvM4o8Z5FEuWmsEvYzD9OQy3cyo/kjzlx+2+KUWi22cl/YWtBs/zUtRJbdG5UqMnh8GUeO8Hg==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.1-rc.2.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-shell-0.1.1-rc.2.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-gEqPUxKOpOV66wvM4o8Z5FEuWmsEvYzD9OQy3cyo/kjzlx+2+KUWi22cl/YWtBs/zUtRJbdG5UqMnh8GUeO8Hg==","shasum":"17c285e954a96273c4a73de533cd4f4a4da23057","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.1-rc.2.tgz","fileCount":11,"unpackedSize":36237,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG7ZtQJMTVzj7GZme+jjYyOfmcnDToryeXqUtIjH98PJAiEAwgO2jU3h6SqraIFty2tufjyOQq/+v2Lczo1PEdtKucA="}],"size":13145},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-shell_0.1.1-rc.2_1787315615317_0.733361665699567"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-21T12:33:35.448Z","publish_time":1787315615448,"_source_registry_name":"default"}},"bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"description":"Abstract bash executor seam (ctx.shell) for the DeepSeek Harness","homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","license":"BSD-3-Clause","maintainers":[{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"},{"name":"imccyu","email":"imccyu@gmail.com"}],"readme":"# @deepseek-ai/dsh-shell\n\nEnglish | [中文](README.zh.md)\n\nThe **`ShellExecutor`** (`ctx.shell`) defines WHAT a bash backend does — run foreground commands and start background processes — without saying HOW. Job ids, ownership, collection, cancellation, and notices belong to the generic `ctx.jobs` runtime.\n\nThis package owns the Service Definition role of the bash capability, split so each role can evolve (and be swapped) independently:\n\n| Package | Role |\n|---|---|\n| `@deepseek-ai/dsh-shell` (this) | Service Definition: abstract service + vocabulary types |\n| `@deepseek-ai/dsh-bash-local` | Service provider: local subprocesses |\n| `@deepseek-ai/dsh-bash-sandbox` | Service provider: `dsh-bash-local`'s mechanics with every spawn confined via [`ctx.sandbox`](../../sandbox/sandbox/), denials reported as result facts |\n| `@deepseek-ai/dsh-tool-bash` | the model-facing tool schemas over `ctx.shell` |\n\nThe split is a standard capability seam ([capability-seams Agent Note](../../../.agents/notes/implemented/architecture/2026-06-13-capability-seams.md)): `dsh-bash-sandbox` is a sandboxing executor behind the same Service Definition — the Consumer detects its `sandboxMode` capability and adds escalation fields without importing the provider — and a containerized or remote executor slots in the same way.\n\n## Service API (`ctx.shell`)\n\n| Member | Semantics |\n|---|---|\n| `run(spec)` | Foreground execution. Resolves when the command finishes. **Rejects only for infrastructure failures** (unusable workdir, missing shell, pre-aborted signal); nonzero exits, timeout kills, and abort kills resolve with a descriptive `ShellRunResult`. |\n| `start(spec)` | Background execution. Returns a task-free `ShellProcess` handle immediately; **no timeout applies**. The caller may adapt it into `ctx.jobs`. |\n| `sandboxMode` | The capability fact for the tool layer: the default mode a SANDBOXING executor confines under (`undefined` in the base class — \"this executor does not sandbox\"). `dsh-tool-bash` reads it at registration to advertise the escalation fields only when the composition honors them. |\n| `ShellProcess.readOutput()` | **Incremental** output read — consecutive reads never re-deliver. Reads that lost data to buffer bounds flag `lossy` and point at full-stream spill files. |\n| `ShellProcess.kill()` | Kill the process group. Returns `false` when it already finished. |\n\nImplementations subclass `ShellExecutor` and implement the abstract methods. Disposal must kill every running process and await its exit.\n\n`SHELL_SETTINGS_NAMESPACE` (`bash`) is exported here rather than by a provider because it names the capability, not an implementation. A host composes exactly one provider of `ctx.shell` — the win32 layer swaps the POSIX rows for the pwsh ones, and mounting both fails loud on a duplicate service registration — so every provider can register this one namespace with its own schema and composition entry without two of them ever colliding, and a `settings.yaml` carried between platforms keeps resolving on both.\n\n## Vocabulary\n\n`ShellExecRequest` (command, workdir?, timeoutMs?, stdoutMaxBytes?, signal?, stdin?, env?, dshEnv?, sandboxPolicy?) resolves to `ShellExecSpec` (command, workdir, timeoutMs, stdoutMaxBytes, signal?, stdin?, env?, dshEnv?, sandboxPolicy) before execution. `stdoutMaxBytes` is a trusted foreground-run capture budget for consumers that must parse complete bounded stdout; the model-facing bash tool does not expose it. `sandboxPolicy` is optional on the request and required-but-nullable on the resolved spec: it carries the complete per-call mode and workspace root. The sandbox tool path resolves it from the calling session through `ctx.sandboxPolicy`; a direct sandbox-executor caller falls back to deployment policy, while a non-sandboxing executor carries the field and confines nothing.\n\nThe per-session sandbox-mode override vocabulary (the `'sandbox/mode'` event, the `effectiveSandboxMode(events)` fold, and the `setSandboxMode(session, mode)` write path) is NOT here — it is policy state shared by every enforcing family, owned by [`@deepseek-ai/dsh-sandbox-policy`](../../sandbox/sandbox-policy/). `run()` returns `ShellRunResult`; `start()` returns `ShellProcess`, whose incremental read and kill methods are adapted by `dsh-tool-bash` into a generic task registration. A sandboxing executor stamps `ShellSandboxInfo` on foreground results and settled process handles. See `src/types.ts` and [subsystems/shell.md](../../../docs/subsystems/shell.md).\n\n`stdin` and ordinary `env` are set by in-process plugins (the hooks bridges, native plugins) to feed a hook command its JSON payload and `CLAUDE_PROJECT_DIR`/`CLAUDE_PLUGIN_ROOT` values. `dshEnv` is a separate trusted overlay restricted by type to managed keys; the exported `DSH_ENV_PREFIX` is the single source for that namespace, its `DshEnvironmentKey` template type, executor scrubbing, registry validation, derived built-in names, and model guidance. Model bash uses the current snapshot collected by `ctx.shellEnv`. Implementations remove inherited managed keys, then merge `dshEnv` after ordinary `env`, so an omitted current fact cannot fall back to stale ambient state and an `env` entry cannot displace a managed value. The model-facing tool exposes none of these as parameters. All three remain optional on the resolved spec; absent means no input/overlay. See [the bash-stdin-env Agent Note](../../../.agents/notes/implemented/architecture/2026-06-30-bash-stdin-env-trusted-plugin-api.md) and [the session environment Agent Note](../../../.agents/notes/implemented/feature/2026-07-10-agent-session-identity-and-log-location.md).\n\nThe exported `parseExitStatus` (with `ParsedExitStatus`) is the shared rendering contract half of the shell tools: the inverse of the `[exit code: N]` / `[killed by signal: X]` markers `dsh-tool-bash`'s `renderResult` and `dsh-tool-pwsh`'s `renderPwshResult` append. Both tools' `presentResult` use it to split the rendered text into the terminal card's output body and its exit-status pill; it lives with the Service Definition so the two tools never drift on the marker contract.\n\n## Model Experience\n\nIndirectly, through `dsh-tool-bash`, which turns executor output and sandbox facts into guidance and retained tool-result tokens.\n\n#### KV Cache effect\n\nNo direct invalidation; the named consumer owns any request-prefix changes.\n\n## Known Limitations and Deferred Work\n\n- **No interactive-input vocabulary** — `stdin` is written once at spawn and closed; the seam has no channel to feed a running task and no PTY session concept.\n- **Foreground timeouts are always executor-owned** — a caller-owned-deadline mode on the seam is explicitly deferred by [the tool-call timeout-policy Agent Note](../../../.agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.md).\n","readmeFilename":"README.zh.md","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/shell/shell"},"_source_registry_name":"default"}