{"_id":"@ch4acko3/bites-the-dsh","_rev":"6-9b3882152671501ebcaf8bba36ed8252","name":"@ch4acko3/bites-the-dsh","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@ch4acko3/bites-the-dsh","version":"0.1.0","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"license":"MIT","_id":"@ch4acko3/bites-the-dsh@0.1.0","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"homepage":"https://github.com/CH4ACKO3/bites-the-dsh#readme","bugs":{"url":"https://github.com/CH4ACKO3/bites-the-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the Dust","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"dist":{"shasum":"f7af0255dd41d6ad63ec1e46a326ce1c43724c6d","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.1.0.tgz","fileCount":35,"integrity":"sha512-uM9fwvP9QiT/+3VWKe5x6SXgtj/AtraR0uDy5rDHLoCVTf82ZTB/M3cRg9NGI4FpTj1Shh8Wdv3DJaAtcV9D2A==","signatures":[{"sig":"MEUCIQDYcuJNn+mK/FnK6HKG9QF356kTUrGtYpfXcrgSZuELIgIgfUN9ktRmOh1gChMkBnUeMx0y2K/1WdYPZ0S3qmZzY+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139247},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"e0a18acc26423c41979873915d8e196ab8d2b443","scripts":{"test":"node --test test/*.test.ts","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test && pnpm run build","prepare":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json"},"_npmUser":{"name":"ch4acko3","email":"ch4acko3@outlook.com"},"repository":{"url":"git+https://github.com/CH4ACKO3/bites-the-dsh.git","type":"git"},"_npmVersion":"11.13.0","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"dsh-harmony-react":"^0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.6.0","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.6.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/bites-the-dsh_0.1.0_1787235990728_0.30757598987015267","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ch4acko3/bites-the-dsh","version":"0.1.1","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"license":"MIT","_id":"@ch4acko3/bites-the-dsh@0.1.1","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"homepage":"https://github.com/CH4ACKO3/bites-the-dsh#readme","bugs":{"url":"https://github.com/CH4ACKO3/bites-the-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the Dust","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"dist":{"shasum":"cc45231819a0e78a5f50008932de8f3ebf08d795","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.1.1.tgz","fileCount":35,"integrity":"sha512-cFpVaU3irdHn43eNfJP9MfIDtoHcbTWDPexgA3RaVZD6BvjXbLufkCuLEzTGOaZjBvIhn+HjMm7EgWkw4kZriw==","signatures":[{"sig":"MEYCIQD14POEATnUti94mzxNQJ400AK0dXZfPoTq3RQVxPhE6AIhAIaGPuDgmp6d3njqniuO7ryHMB7yK0aHHpm9+Rgpls6E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ch4acko3%2fbites-the-dsh@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139224},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"e882d4f18a0335a9dc40a48fcb9cd936bcb9c87b","scripts":{"test":"node --test test/*.test.ts","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test && pnpm run build","prepare":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ede32f3-837c-4a7e-a941-559af65d2779"}},"repository":{"url":"git+https://github.com/CH4ACKO3/bites-the-dsh.git","type":"git"},"_npmVersion":"11.6.2","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dsh-harmony-react":"^0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.6.0","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.6.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/bites-the-dsh_0.1.1_1787237058343_0.13501560803784662","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ch4acko3/bites-the-dsh","version":"0.2.0","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"license":"MIT","_id":"@ch4acko3/bites-the-dsh@0.2.0","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"homepage":"https://github.com/CH4ACKO3/bites-the-dsh#readme","bugs":{"url":"https://github.com/CH4ACKO3/bites-the-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the DSH","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"dist":{"shasum":"53413affe6b2ea38af8bb23a9c68b43af629be0e","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.2.0.tgz","fileCount":38,"integrity":"sha512-knKM6hv0PcoF97DJQup+5L9MVWDaxV4zVbB9jw6nlAmGNkt+qFMrUryEUaSVUIGKLrmg0WS308GotlWHGarRZQ==","signatures":[{"sig":"MEUCIQDKIOJnyKQ1SeYzBPZj8+THuU26AB2ghG8ESl+Ef3y2xwIgUCUdSAIyzsINJJLEJVpSZKZ89nMDIEthX1gKSU4yH9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ch4acko3%2fbites-the-dsh@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":175618},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"783734aadf4ef62667375d5516e398b3e1b6696d","scripts":{"test":"pnpm run test:unit && pnpm run build && pnpm run test:integration","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test","prepare":"pnpm run build","test:unit":"node --test test/*.test.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json","test:integration":"node --test test/client-integration.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ede32f3-837c-4a7e-a941-559af65d2779"}},"repository":{"url":"git+https://github.com/CH4ACKO3/bites-the-dsh.git","type":"git"},"_npmVersion":"11.6.2","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dsh-harmony-react":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.7.1","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","react-test-renderer":"~18.3.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@types/react-test-renderer":"~18.3.1","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.7.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/bites-the-dsh_0.2.0_1787273381037_0.9722609175541956","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ch4acko3/bites-the-dsh","version":"0.2.1","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"license":"MIT","_id":"@ch4acko3/bites-the-dsh@0.2.1","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"homepage":"https://github.com/CH4ACKO3/bites-the-dsh#readme","bugs":{"url":"https://github.com/CH4ACKO3/bites-the-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the DSH","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"dist":{"shasum":"efea13cb51138eb40eedbc809072b137b8211305","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.2.1.tgz","fileCount":39,"integrity":"sha512-g+xDo2yBTRHEngHvdHGJikwcDkDXqVZvm6Non1WukKTTdMVdWWYADXJuBe/8XtZi1RjikOFHAjRKGjhk2XcDdQ==","signatures":[{"sig":"MEYCIQCl++1H8NzAG9oWXwWpPr2cLtJVhd1E7x2xib/YyS+KNwIhAJoN2HOTsTaV9dJJcia9oHY3EOxQ/JvI5fdsI9xNf37c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ch4acko3%2fbites-the-dsh@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180716},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"82a764087575c955bd154c73661b5f618f5043e2","scripts":{"test":"pnpm run test:unit && pnpm run build && pnpm run test:integration","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test","prepare":"pnpm run build","test:unit":"node --test test/*.test.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json","test:integration":"node --test test/client-integration.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ede32f3-837c-4a7e-a941-559af65d2779"}},"repository":{"url":"git+https://github.com/CH4ACKO3/bites-the-dsh.git","type":"git"},"_npmVersion":"11.6.2","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dsh-harmony-react":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.7.1","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","react-test-renderer":"~18.3.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@types/react-test-renderer":"~18.3.1","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.7.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.8","@deepseek-ai/dsh-client-locale":"0.1.0-rc.8","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.8","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/bites-the-dsh_0.2.1_1787283181187_0.07465490244427642","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ch4acko3/bites-the-dsh","version":"0.3.0","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"license":"MIT","_id":"@ch4acko3/bites-the-dsh@0.3.0","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"homepage":"https://github.com/CH4ACKO3/bites-the-dsh#readme","bugs":{"url":"https://github.com/CH4ACKO3/bites-the-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-chat","@deepseek-ai/dsh-client-ui-session"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the DSH","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"dist":{"shasum":"e5952b4f2761cadd24a44a3baeb984d4ecc7bb18","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.3.0.tgz","fileCount":41,"integrity":"sha512-FT2fCUqSKFxRsE7zT5Mdapm2szH4XI+CAutG91fgr7uPPq2gBeZVJkcdCh8DxJDNOZJiWgRFks+u/fNq3qaB/w==","signatures":[{"sig":"MEQCIG8yGeis6JxhqLda5hgVxJE/owt26WioFev1oIqX9T7PAiAHt3/ZBGYvgRMpKwImPx4CNkklinn4Nz9KQCfXDdQ3Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCTO82VgVj6PDpkAHtVE7PJtJxCfQDk+K/E3KWs1d/IZwIgZv9W8jEVJefliuCBYFwljDNz1mma553HS7nqGn2c4e8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ch4acko3%2fbites-the-dsh@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":191365},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"f777e104c0de1196f5fbf5a188aee957f98811ee","scripts":{"test":"pnpm run test:unit && pnpm run build && pnpm run test:integration","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test","prepare":"pnpm run build","test:unit":"node --test test/*.test.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json","test:integration":"node --test test/client-integration.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ede32f3-837c-4a7e-a941-559af65d2779"}},"repository":{"url":"git+https://github.com/CH4ACKO3/bites-the-dsh.git","type":"git"},"_npmVersion":"11.6.2","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dsh-harmony-react":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.8.11","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","react-test-renderer":"~18.3.1","@deepseek-ai/dsh-session":"0.1.5-rc.2","@types/react-test-renderer":"~18.3.1","@deepseek-ai/dsh-api-remotes":"0.1.5-rc.2","@deepseek-ai/dsh-client-store":"0.1.5-rc.2","@deepseek-ai/dsh-client-locale":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-chat":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-slots":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-session":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-renderer":"0.1.5-rc.2","@deepseek-ai/dsh-api-session-controller":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.1.5-rc.2"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.7.2 || ^0.8.11","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-api-remotes":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-locale":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-chat":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-slots":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-session":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-renderer":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-api-session-controller":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-conversation":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0"},"_npmOperationalInternal":{"tmp":"tmp/bites-the-dsh_0.3.0_1789824566713_0.6184745748107436","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"_id":"@ch4acko3/bites-the-dsh@0.3.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-chat","@deepseek-ai/dsh-client-ui-session"],"platform":"web","immediately":true},"plugin":{"summary":{"en":"Read-only, scriptable playback inside the native DSH conversation.","zh-CN":"在 DSH 原生会话内提供完全只读、可脚本控制的历史回放。"},"category":"ui","displayName":{"en":"Bites the DSH","zh-CN":"败者食尘"},"schemaVersion":1},"harmony":{"patches":["./patches/conversation.patch.cjs"]}},"bugs":{"url":"https://github.com/memorax-ai/bites-the-dsh/issues"},"dist":{"shasum":"62fcfabcedf47955da63cfb7d588535984aa4097","tarball":"https://registry.npmjs.org/@ch4acko3/bites-the-dsh/-/bites-the-dsh-0.3.1.tgz","fileCount":41,"integrity":"sha512-J1+gYKA6WHew0QPnSnE2fevrQaAlGpFxpywapOjUbsS7KFtXQRTW9b9TzV+8eMZojRk9Yf5JU7kqfEkM3nwbqw==","signatures":[{"sig":"MEUCIQC204OLyQzYHdRW1egIkDdq/bUBO3MBCD2FVk1M6BucMQIgJQAy625Vr+8Hdmyx/BVed7TetVe43SEUwqGeqBaG8yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFtDDvcWH9+TEyTJj9eJEXKTNoEOb1xWBzMbiuBHT7/FAiBSZ9cLN2QTXTuxq2tEYL2E5fh3CSPLyCbzNIssTQsdiA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ch4acko3%2fbites-the-dsh@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":191494},"main":"./lib/index.js","name":"@ch4acko3/bites-the-dsh","type":"module","types":"./lib/index.d.ts","engines":{"node":"^22.22.3 || >=24.11.1"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"37cb510009e6cf190f27b7f632a444b3c936e7f9","license":"MIT","scripts":{"test":"pnpm run test:unit && pnpm run build && pnpm run test:integration","build":"pnpm run build:client && pnpm run build:host","check":"pnpm run typecheck && pnpm run test","prepare":"pnpm run build","test:unit":"node --test test/*.test.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit","build:host":"tsc -p tsconfig.json","build:client":"tsdown --config-loader unrun && tsc -p tsconfig.client.build.json","test:integration":"node --test test/client-integration.test.mjs"},"version":"0.3.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3323227-c73e-495c-9b4e-8ff4bfb29887"}},"homepage":"https://github.com/memorax-ai/bites-the-dsh#readme","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"repository":{"url":"git+https://github.com/memorax-ai/bites-the-dsh.git","type":"git"},"_npmVersion":"11.6.2","description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","directories":{},"maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"_nodeVersion":"24.11.1","dependencies":{"dsh-harmony-react":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.19.0","devDependencies":{"react":"^18.2.0","unrun":"^0.3.1","tsdown":"0.22.14","typescript":"^6.0.3","@types/node":"^24.10.0","dsh-harmony":"^0.8.11","@types/react":"~18.3.1","@deepseek-ai/cordis":"^4.0.1","react-test-renderer":"~18.3.1","@deepseek-ai/dsh-session":"0.1.5-rc.2","@types/react-test-renderer":"~18.3.1","@deepseek-ai/dsh-api-remotes":"0.1.5-rc.2","@deepseek-ai/dsh-client-store":"0.1.5-rc.2","@deepseek-ai/dsh-client-locale":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-chat":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-slots":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-session":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-renderer":"0.1.5-rc.2","@deepseek-ai/dsh-api-session-controller":"0.1.5-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.1.5-rc.2"},"peerDependencies":{"react":"^18.2.0","dsh-harmony":"^0.7.2 || ^0.8.11","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-api-remotes":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-locale":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-chat":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-slots":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-session":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-renderer":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-api-session-controller":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0","@deepseek-ai/dsh-client-ui-conversation":">=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bites-the-dsh_0.3.1_1790234017907_0.973460472797975"}}},"time":{"created":"2026-08-20T14:26:30.532Z","modified":"2026-09-24T07:13:38.340Z","0.1.0":"2026-08-20T14:26:30.878Z","0.1.1":"2026-08-20T14:44:18.524Z","0.2.0":"2026-08-21T00:49:41.178Z","0.2.1":"2026-08-21T03:33:01.324Z","0.3.0":"2026-09-19T13:29:26.788Z","0.3.1":"2026-09-24T07:13:38.008Z"},"bugs":{"url":"https://github.com/memorax-ai/bites-the-dsh/issues"},"license":"MIT","homepage":"https://github.com/memorax-ai/bites-the-dsh#readme","keywords":["deepseek-harness","dsh","dsh-plugin","session-replay","time-travel"],"repository":{"url":"git+https://github.com/memorax-ai/bites-the-dsh.git","type":"git"},"description":"Read-only, scriptable session playback for the DeepSeek Harness WebUI","maintainers":[{"name":"ch4acko3","email":"ch4acko3@outlook.com"}],"readme":"# Bites the DSH\n\n[English](README.md) | 简体中文\n\n[![Powered by Harmony](https://memorax-ai.github.io/dsh-harmony/harmony-powered.svg)](https://memorax-ai.github.io/dsh-harmony/)\n\n为 DeepSeek Harness WebUI 提供完全只读、可脚本控制的会话回放。\n\nhttps://github.com/user-attachments/assets/3c9dfdcf-a454-4750-9edf-76771ed5a9a6\n\n演示中同时使用了 Bites the DSH 与 [dsh-turn-fold](https://github.com/memorax-ai/dsh-turn-fold)。\n\n插件直接将原生会话切换为回放视图，不会打开新的面板。点击原生会话标题栏中的一个按钮即可进入回放。回放期间，会话完全只读：原生输入框以及会改变会话的操作都会被禁用，但界面和脚本仍可自由移动时间光标，不会修改源会话。\n\n## 当前实现\n\n- 原生会话标题栏入口与紧凑的回放控制组件。\n- 支持暂停、正放、倒放、逐事件移动、倍速、可调的空闲间隔压缩，以及按事件、轮次或时间直接跳转。\n- 可选的模拟输入会在原生只读输入框中预览下一条用户直接输入的消息，不会触碰实时草稿。\n- 通过 `ctx.sessionPlayback` 暴露每会话可观察控制器，供脚本单独控制时间。\n- 使用 DSH 原生 `ChatView` 构建历史投影；源会话与实时头部仍会独立继续更新。\n- 历史时间线提供 `playbackClock: { kind: 'historical', time: cursorTime }`，避免投影消费者将历史中尚未结束的轮次误认为实时任务。\n- 回放期间禁用原生输入框、模型选择、停止、分支和助手写入操作；浏览与回放控制保持可用。\n- 使用 DSH 主题变量，并提供中英文界面，不会创建独立面板。\n\n当前开发基线为 DSH `0.1.5-rc.2`，同时检查 `0.1.6-alpha.2`。本次迁移依赖新版 Conversation/Chat 服务。如果 Harmony 选择器发生漂移，自动化测试会直接失败，而不会静默修改错误的组件。\n\n## 安装\n\n```sh\ndsh plugin --profile web add @ch4acko3/bites-the-dsh\ndsh harmony status --profile web\n```\n\nBites the DSH 的四个补丁都应显示为 `bound`。重新加载 WebUI，打开一个会话，然后点击原生会话标题栏中的 **回放会话**。\n\n## 脚本控制\n\n其他 DSH 插件可以通过提供的 Cordis 服务使用同一个每会话时钟：\n\n```ts\nconst playback = ctx.sessionPlayback\n\nplayback.enter(sessionId)\nplayback.seekTime(sessionId, Date.parse('2026-08-20T12:00:00Z'))\nplayback.play(sessionId, 1)\nplayback.pause(sessionId)\nplayback.exit(sessionId)\n```\n\n`seekTime` 等接口的时间值使用 Unix epoch 毫秒，与 JavaScript `Date` 和记录事件的时间戳一致。\n\n该服务还支持按事件或轮次跳转、倒放、倍速与空闲间隔设置、订阅以及位置读取。它不会暴露任何修改源会话的操作。\n\n## 开发\n\n需要 Node.js `^22.22.3 || >=24.11.1` 与 pnpm 11。\n\n```sh\npnpm install\npnpm check\n```\n\n## CI/CD\n\n每次推送到 `main` 以及每个拉取请求都会运行 `pnpm check` 并验证 npm 包内容。推送与 `package.json` 版本一致的 `v<版本号>` tag 后，会运行相同检查、创建对应的 GitHub Release，并通过 Trusted Publishing（OIDC）将公开包发布到 npm，同时自动生成 provenance，无需在 GitHub 中保存 npm token。\n\n## 许可证\n\nMIT\n","readmeFilename":"README.zh-CN.md"}