{"_id":"@cerbur/clutch-dsh-title","_rev":"8-ba958d4becceaf7ab6533a56cd2839a6","name":"@cerbur/clutch-dsh-title","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.1":{"name":"@cerbur/clutch-dsh-title","version":"0.1.1","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"license":"MIT","_id":"@cerbur/clutch-dsh-title@0.1.1","maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"dist":{"shasum":"ae1f205b09370bdc154efbad893278da43f82a44","tarball":"https://registry.npmjs.org/@cerbur/clutch-dsh-title/-/clutch-dsh-title-0.1.1.tgz","fileCount":67,"integrity":"sha512-7gzSoaDFRaPMv/afdnUCUgeJGztymKx/GlSP525Odex6+5LzojgHQi239ObLKtjXXERpxmrhizzHW5bduNg0UA==","signatures":[{"sig":"MEQCICHqVy9tK/ULIZjaFA56b6wSiAPNLkik9FNO/OCRIhIcAiA3zK1YbWPAo8nHGfEGZs6XyUzmJMkJi633VrcV2+etnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542418},"type":"module","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./client":{"types":"./lib/client/entry.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint src","test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json && node scripts/build-client.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"cerbur","email":"cerbur@qq.com"},"clutchDsh":{"role":"plugin","plugin":"@cerbur/clutch-dsh-title","serviceDefinition":"@cerbur/clutch-dsh-title"},"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"_npmVersion":"11.16.0","description":"Configurable deterministic session titles for DeepSeek Harness.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"yaml":"^2.9.0","react":"^18.2.0","tsdown":"0.22.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","typescript":"^5.9.3","@types/node":"^22.15.3","@types/react":"~18.3.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/dsh-timeout":"0.1.2-rc.1","@deepseek-ai/dsh-settings":"0.1.2-rc.1","@deepseek-ai/dsh-api-gateway":"0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":"0.1.2-rc.1","@deepseek-ai/dsh-util-values":"0.1.2-rc.1","@deepseek-ai/dsh-client-locale":"0.1.2-rc.1","@deepseek-ai/dsh-session-title":"0.1.2-rc.1","@deepseek-ai/dsh-settings-file":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.1.2-rc.1","@deepseek-ai/cordis-plugin-loader":"1.0.2","@deepseek-ai/cordis-plugin-include":"1.0.6","@deepseek-ai/dsh-session-title-llm":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-renderer":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":"0.1.2-rc.1","@deepseek-ai/dsh-session-projection":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.2-rc.1","@deepseek-ai/dsh-api-settings-controller":"0.1.2-rc.1","@deepseek-ai/dsh-session-title-first-prompt-llm":"0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-session":">=0.1.2-rc.1","@deepseek-ai/dsh-timeout":">=0.1.2-rc.1","@deepseek-ai/dsh-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":">=0.1.2-rc.1","@deepseek-ai/dsh-util-values":">=0.1.2-rc.1","@deepseek-ai/dsh-client-locale":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":">=0.1.2-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/clutch-dsh-title_0.1.1_1788682012736_0.27600275558231013","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cerbur/clutch-dsh-title","version":"0.1.2","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"license":"MIT","_id":"@cerbur/clutch-dsh-title@0.1.2","maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"dist":{"shasum":"1872c2525bea4948620c460537da18db4d55dc9e","tarball":"https://registry.npmjs.org/@cerbur/clutch-dsh-title/-/clutch-dsh-title-0.1.2.tgz","fileCount":75,"integrity":"sha512-Gxh8iT5dDOnCfdIeECySVuJK20RcjVPbS2Urz2xBG31a1AU3X6ZqN5j4JVAG8R4HJ8VaGIXCgbL6pWFL6e2hFw==","signatures":[{"sig":"MEQCIAPkGPKMBC5L35uHBJNT68C0SnmHY4kZElqmA/nCiAEIAiAM84rNejUlMgFNZLt2+3SDTLOua7VGoIANgix57nI8bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":518075},"type":"module","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./client":{"types":"./lib/client/entry.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint src","test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json && node scripts/build-client.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"cerbur","email":"cerbur@qq.com"},"clutchDsh":{"role":"plugin","plugin":"@cerbur/clutch-dsh-title","serviceDefinition":"@cerbur/clutch-dsh-title"},"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"_npmVersion":"11.16.0","description":"Configurable deterministic session titles for DeepSeek Harness.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"yaml":"^2.9.0","react":"^18.2.0","tsdown":"0.22.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","typescript":"^5.9.3","@types/node":"^22.15.3","@types/react":"~18.3.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/dsh-timeout":"0.1.2-rc.1","@deepseek-ai/dsh-settings":"0.1.2-rc.1","@deepseek-ai/dsh-api-gateway":"0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":"0.1.2-rc.1","@deepseek-ai/dsh-util-values":"0.1.2-rc.1","@deepseek-ai/dsh-client-locale":"0.1.2-rc.1","@deepseek-ai/dsh-session-title":"0.1.2-rc.1","@deepseek-ai/dsh-settings-file":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.1.2-rc.1","@deepseek-ai/cordis-plugin-loader":"1.0.2","@deepseek-ai/cordis-plugin-include":"1.0.6","@deepseek-ai/dsh-session-title-llm":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-renderer":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":"0.1.2-rc.1","@deepseek-ai/dsh-session-projection":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.2-rc.1","@deepseek-ai/dsh-api-settings-controller":"0.1.2-rc.1","@deepseek-ai/dsh-session-title-first-prompt-llm":"0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-session":">=0.1.2-rc.1","@deepseek-ai/dsh-timeout":">=0.1.2-rc.1","@deepseek-ai/dsh-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":">=0.1.2-rc.1","@deepseek-ai/dsh-util-values":">=0.1.2-rc.1","@deepseek-ai/dsh-client-locale":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":">=0.1.2-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/clutch-dsh-title_0.1.2_1788805377320_0.7912742666577008","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cerbur/clutch-dsh-title","version":"0.1.3","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"license":"MIT","_id":"@cerbur/clutch-dsh-title@0.1.3","maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"dist":{"shasum":"ab2083abf2d1a4572f7b4b33b91457712ea4d46e","tarball":"https://registry.npmjs.org/@cerbur/clutch-dsh-title/-/clutch-dsh-title-0.1.3.tgz","fileCount":88,"integrity":"sha512-yblqo926+lreZN3buR5liCjBUxjBujZY4bNMxwybHmYZGZipZB2E76RGxfAvQ/i76PA1RJFMcYM9vxk7/QDUSA==","signatures":[{"sig":"MEUCIQDmpSjHnRjFk79NPeosIQ7z8J5LAm2W+1YaX+FKV4Wj3wIgSBMnE/eZr4Qs+eieLco5gOm5NYw0827fDhxdLhugjGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":627786},"type":"module","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","import":"./lib/types.js","default":"./lib/types.js"},"./client":{"types":"./lib/client/entry.d.ts","default":"./lib/client.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint src","test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json && node scripts/generate-typert.mjs && node scripts/build-client.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"cerbur","email":"cerbur@qq.com"},"clutchDsh":{"role":"plugin","plugin":"@cerbur/clutch-dsh-title","serviceDefinition":"@cerbur/clutch-dsh-title"},"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"_npmVersion":"11.16.0","description":"Configurable deterministic session titles for DeepSeek Harness.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"react":"^18.2.0","tsdown":"0.22.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","typescript":"^5.9.3","@types/node":"^22.15.3","@types/react":"~18.3.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/dsh-timeout":"0.1.2-rc.1","@deepseek-ai/dsh-settings":"0.1.2-rc.1","@deepseek-ai/dsh-api-gateway":"0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":"0.1.2-rc.1","@deepseek-ai/dsh-util-values":"0.1.2-rc.1","@deepseek-ai/dsh-client-locale":"0.1.2-rc.1","@deepseek-ai/dsh-session-title":"0.1.2-rc.1","@deepseek-ai/dsh-settings-file":"0.1.2-rc.1","@deepseek-ai/dsh-typert-loader":"0.1.2-rc.1","@deepseek-ai/dsh-storage-domain":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.1.2-rc.1","@deepseek-ai/dsh-typert-protocol":"0.1.2-rc.1","@deepseek-ai/dsh-typert-registry":"0.1.2-rc.1","@deepseek-ai/cordis-plugin-loader":"1.0.2","@deepseek-ai/dsh-typert-generator":"0.1.2-rc.1","@deepseek-ai/cordis-plugin-include":"1.0.6","@deepseek-ai/dsh-session-title-llm":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-renderer":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":"0.1.2-rc.1","@deepseek-ai/dsh-session-projection":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.2-rc.1","@deepseek-ai/dsh-api-settings-controller":"0.1.2-rc.1","@deepseek-ai/dsh-session-title-first-prompt-llm":"0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-session":">=0.1.2-rc.1","@deepseek-ai/dsh-timeout":">=0.1.2-rc.1","@deepseek-ai/dsh-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-api-remotes":">=0.1.2-rc.1","@deepseek-ai/dsh-util-values":">=0.1.2-rc.1","@deepseek-ai/dsh-client-locale":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title":">=0.1.2-rc.1","@deepseek-ai/dsh-storage-domain":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":">=0.1.2-rc.1","@deepseek-ai/dsh-typert-protocol":">=0.1.2-rc.1","@deepseek-ai/dsh-session-title-llm":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-settings":">=0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":">=0.1.2-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/clutch-dsh-title_0.1.3_1789204735000_0.9127201416881621","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cerbur/clutch-dsh-title","version":"0.1.5","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"license":"MIT","_id":"@cerbur/clutch-dsh-title@0.1.5","maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"dist":{"shasum":"9c83df12134744c5a5babec389cd39f8d107510e","tarball":"https://registry.npmjs.org/@cerbur/clutch-dsh-title/-/clutch-dsh-title-0.1.5.tgz","fileCount":89,"integrity":"sha512-U3DDLKds+/7wurcoTPU6ty/+6UPupcL5KeJwK3jvkpV+PON5mpzV/ODB/A0a4U1pKt71tKyzrcIsjl2A8quGFQ==","signatures":[{"sig":"MEUCIEFd3dVNyhQz5Od4U+bIy5hueI2JTczm22G1tchFgrfMAiEA1miHorcIH/0uob4dJpN4Nqfysza77vC9n/RIFcxcmds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGPuUgKe5vQOtnoCY58rsGy4LqIBwHNfJ1Y0AIT6YSynAiEA1e9r6cM+uZOAv6kEjycVKyy4xmi3gLxtgk4p/xPihc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1214570},"type":"module","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","import":"./lib/types.js","default":"./lib/types.js"},"./client":{"types":"./lib/client/entry.d.ts","default":"./lib/client.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"scripts":{"lint":"eslint src","test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json && node scripts/generate-typert.mjs && node scripts/build-client.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"cerbur","email":"cerbur@qq.com"},"clutchDsh":{"role":"plugin","plugin":"@cerbur/clutch-dsh-title","serviceDefinition":"@cerbur/clutch-dsh-title"},"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"_npmVersion":"11.16.0","description":"Configurable deterministic session titles for DeepSeek Harness.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.zh.md","devDependencies":{"react":"^18.2.0","tsdown":"0.22.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","typescript":"^5.9.3","@types/node":"^22.15.3","@types/react":"~18.3.1","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.1.7-rc.1","@deepseek-ai/dsh-session":"0.1.7-rc.1","@deepseek-ai/dsh-timeout":"0.1.7-rc.1","@deepseek-ai/dsh-settings":"0.1.7-rc.1","@deepseek-ai/dsh-api-gateway":"0.1.7-rc.1","@deepseek-ai/dsh-api-remotes":"0.1.7-rc.1","@deepseek-ai/dsh-util-values":"0.1.7-rc.1","@deepseek-ai/dsh-client-locale":"0.1.7-rc.1","@deepseek-ai/dsh-session-title":"0.1.7-rc.1","@deepseek-ai/dsh-typert-loader":"0.1.7-rc.1","@deepseek-ai/dsh-storage-domain":"0.1.7-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.1.7-rc.1","@deepseek-ai/dsh-settings-legacy":"npm:@deepseek-ai/dsh-settings@0.1.6-alpha.2","@deepseek-ai/dsh-typert-protocol":"0.1.7-rc.1","@deepseek-ai/dsh-typert-registry":"0.1.7-rc.1","@deepseek-ai/cordis-plugin-loader":"1.0.2","@deepseek-ai/dsh-typert-generator":"0.1.7-rc.1","@deepseek-ai/cordis-plugin-include":"1.0.6","@deepseek-ai/dsh-session-title-llm":"0.1.7-rc.1","@deepseek-ai/dsh-client-ui-renderer":"0.1.7-rc.1","@deepseek-ai/dsh-client-ui-settings":"0.1.7-rc.1","@deepseek-ai/dsh-session-projection":"0.1.7-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.7-rc.1","@deepseek-ai/dsh-api-settings-controller":"0.1.7-rc.1","@deepseek-ai/dsh-session-title-first-prompt-llm":"0.1.7-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":">=0.1.7-rc.1","@deepseek-ai/dsh-session":">=0.1.7-rc.1","@deepseek-ai/dsh-timeout":">=0.1.7-rc.1","@deepseek-ai/dsh-settings":">=0.1.7-rc.1","@deepseek-ai/dsh-api-remotes":">=0.1.7-rc.1","@deepseek-ai/dsh-util-values":">=0.1.7-rc.1","@deepseek-ai/dsh-client-locale":">=0.1.7-rc.1","@deepseek-ai/dsh-session-title":">=0.1.7-rc.1","@deepseek-ai/dsh-storage-domain":">=0.1.7-rc.1","@deepseek-ai/dsh-client-ui-slots":">=0.1.7-rc.1","@deepseek-ai/dsh-typert-protocol":">=0.1.7-rc.1","@deepseek-ai/dsh-session-title-llm":">=0.1.7-rc.1","@deepseek-ai/dsh-client-ui-settings":">=0.1.7-rc.1","@deepseek-ai/dsh-client-ui-primitives":">=0.1.7-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/clutch-dsh-title_0.1.5_1790520249117_0.2152270033932593","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"_id":"@cerbur/clutch-dsh-title@0.1.6","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"dist":{"shasum":"15b088484e1477f5155738720ffd0e31dd0388c9","tarball":"https://registry.npmjs.org/@cerbur/clutch-dsh-title/-/clutch-dsh-title-0.1.6.tgz","fileCount":105,"integrity":"sha512-ZA0GmR/Q15/MzEaA7+C/LZoHxi8Qkj5VWNe3PXZzCnuVPkZxonrcAItrqgHPQ0QPOiup0VWSZxoGPDD45sliMw==","signatures":[{"sig":"MEUCIQCI1NyorbAh/aLVUFazwUndDESTaIort0eLeClwww2kcgIgbFAF2pz4K2ryWiScQBqQguHsF2OUPs/xVgtM1jtvJZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+F216qBvc9iRre/+WVmDA0xHgKdkQXMQHsuJyJcv6pAIhALMYx7vL9VlENRJz6GK1DKLgjjOI9J6ISfuFPjlicviD"}],"unpackedSize":1379356},"name":"@cerbur/clutch-dsh-title","type":"module","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","import":"./lib/types.js","default":"./lib/types.js"},"./client":{"types":"./lib/client/entry.d.ts","default":"./lib/client.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"lint":"eslint src","test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json && node scripts/generate-typert.mjs && node scripts/build-client.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"pnpm run build"},"version":"0.1.6","_npmUser":{"name":"cerbur","email":"cerbur@qq.com"},"homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"clutchDsh":{"role":"plugin","plugin":"@cerbur/clutch-dsh-title","serviceDefinition":"@cerbur/clutch-dsh-title"},"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"_npmVersion":"11.16.0","description":"Configurable deterministic session titles for DeepSeek Harness.","directories":{},"maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"_nodeVersion":"26.3.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"react":"^18.2.0","tsdown":"0.22.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","typescript":"^5.9.3","@types/node":"^22.15.3","@types/react":"~18.3.1","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.2.0-rc.1","@deepseek-ai/dsh-session":"0.2.0-rc.1","@deepseek-ai/dsh-timeout":"0.2.0-rc.1","@deepseek-ai/dsh-settings":"0.2.0-rc.1","@deepseek-ai/dsh-api-gateway":"0.2.0-rc.1","@deepseek-ai/dsh-api-remotes":"0.2.0-rc.1","@deepseek-ai/dsh-util-values":"0.2.0-rc.1","@deepseek-ai/dsh-client-locale":"0.2.0-rc.1","@deepseek-ai/dsh-session-title":"0.2.0-rc.1","@deepseek-ai/dsh-typert-loader":"0.2.0-rc.1","@deepseek-ai/dsh-plugin-manager":"0.2.0-rc.1","@deepseek-ai/dsh-storage-domain":"0.2.0-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.2.0-rc.1","@deepseek-ai/dsh-settings-legacy":"npm:@deepseek-ai/dsh-settings@0.1.6-alpha.2","@deepseek-ai/dsh-typert-protocol":"0.2.0-rc.1","@deepseek-ai/dsh-typert-registry":"0.2.0-rc.1","@deepseek-ai/cordis-plugin-loader":"1.0.2","@deepseek-ai/dsh-client-ui-layout":"0.2.0-rc.1","@deepseek-ai/dsh-typert-generator":"0.2.0-rc.1","@deepseek-ai/cordis-plugin-include":"1.0.6","@deepseek-ai/dsh-session-title-llm":"0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"0.2.0-rc.1","@deepseek-ai/dsh-client-ui-settings":"0.2.0-rc.1","@deepseek-ai/dsh-session-projection":"0.2.0-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.2.0-rc.1","@deepseek-ai/dsh-api-settings-controller":"0.2.0-rc.1","@deepseek-ai/dsh-session-title-first-prompt-llm":"0.2.0-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":">=0.2.0-rc.1","@deepseek-ai/dsh-session":">=0.2.0-rc.1","@deepseek-ai/dsh-timeout":">=0.2.0-rc.1","@deepseek-ai/dsh-settings":">=0.2.0-rc.1","@deepseek-ai/dsh-api-remotes":">=0.2.0-rc.1","@deepseek-ai/dsh-util-values":">=0.2.0-rc.1","@deepseek-ai/dsh-client-locale":">=0.2.0-rc.1","@deepseek-ai/dsh-session-title":">=0.2.0-rc.1","@deepseek-ai/dsh-storage-domain":">=0.2.0-rc.1","@deepseek-ai/dsh-client-ui-slots":">=0.2.0-rc.1","@deepseek-ai/dsh-typert-protocol":">=0.2.0-rc.1","@deepseek-ai/dsh-session-title-llm":">=0.2.0-rc.1","@deepseek-ai/dsh-client-ui-settings":">=0.2.0-rc.1","@deepseek-ai/dsh-client-ui-primitives":">=0.2.0-rc.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/clutch-dsh-title_0.1.6_1790877616290_0.7652036443144714"}}},"time":{"created":"2026-09-06T08:06:52.620Z","modified":"2026-10-01T18:00:16.853Z","0.1.1":"2026-09-06T08:06:52.874Z","0.1.2":"2026-09-07T18:22:57.453Z","0.1.3":"2026-09-12T09:18:55.224Z","0.1.4":"2026-09-26T14:50:01.473Z","0.1.5":"2026-09-27T14:44:09.268Z","0.1.6":"2026-10-01T18:00:16.425Z"},"bugs":{"url":"https://github.com/Cerbur/clutch-dsh/issues"},"license":"MIT","homepage":"https://github.com/Cerbur/clutch-dsh/tree/main/packages/clutch-dsh-title","keywords":["deepseek-harness","dsh","dsh-plugin","session-title","template"],"repository":{"url":"git+https://github.com/Cerbur/clutch-dsh.git","type":"git","directory":"packages/clutch-dsh-title"},"description":"Configurable deterministic session titles for DeepSeek Harness.","maintainers":[{"name":"cerbur","email":"cerbur@qq.com"}],"readme":"[English](README.md) | [简体中文](README.zh.md)\n\n# @cerbur/clutch-dsh-title\n\n@cerbur/clutch-dsh-title 为新的 DSH Session 提供可配置、易浏览的标题。在 DSH Web 中打开\n设置 → 会话标题，可以选择内置或已保存的模板，也可以创建自己的模板。\n\n标题可以组合会话日期、固定文字、受控分类和首条 prompt 的简短描述，例如\n0912 | 🚀 | add token statistics。生成结果仍显示在 DSH 原生 Session 列表中；本 package\n增加标题 provider 和设置管理器，不会替换原生列表。\n\n## 安装\n\n### 从 npm 安装\n\n在已安装 DSH CLI 的环境中，将 package 加入 Web profile 并启动 DSH Web：\n\n```bash\ndsh plugin --profile web add @cerbur/clutch-dsh-title\ndsh web\n```\n\n如果使用 DeepSeek Harness 源码 checkout 且没有独立的 dsh 命令，可使用等价的 pnpm dsh\n形式。\n\n如果安装时 DSH 已在运行，请在安装后重启 DSH Desktop，或重启 DSH Web 服务后刷新浏览器页面。\n仅刷新页面无法应用 host 变更。插件客户端已加载但 host 服务尚不可用时，会通过原生 toast\n提醒重启，每次客户端加载只提示一次；host 正常时不会提示。\n\n### 从本地 checkout 安装\n\npackage 的 lib/ 目录由构建生成，不会提交到仓库。先构建 workspace package 和 DSH 源码\ncheckout，再通过绝对路径添加 package：\n\n```bash\ncd /absolute/path/to/clutch-dsh\npnpm install\npnpm --filter @cerbur/clutch-dsh-title build\n\ncd /absolute/path/to/deepseek-harness\npnpm install\npnpm run build\npnpm dsh plugin --profile web add /absolute/path/to/clutch-dsh/packages/clutch-dsh-title\npnpm dsh web\n```\n\n修改源码、package 元数据或 cordis.patch.yml 后，需要重新构建 package，并再次执行绝对路径\n添加命令。\n\n## 功能\n\n| 功能               | 预览                                                                                                        | 作用                                                                                                                                     |\n| ------------------ | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| 原生 Session 标题  | <img src=\"assets/screenshots/session-title-list.png\" width=\"420\" alt=\"DSH 原生 Session 列表中的自定义标题\"> | 选中的模板会自动组合日期、分类、固定文字和首条 prompt 摘要，生成紧凑标题。标题仍位于 DSH 原生 Session 列表中；plugin 不会接管该列表。    |\n| 模板管理器         | <img src=\"assets/screenshots/title-settings.png\" width=\"420\" alt=\"DSH 设置中的会话标题模板管理器\">          | 设置 → 会话标题支持预览、复制、编辑、保存、激活和删除，也可以在同一页面启用或关闭自定义标题生成。                                        |\n| 灵活的模板字段     | —                                                                                                           | datetime 和 literal 字段以确定性方式解析，不使用模型。llm-enum 和 llm-text 是模型字段；当前模板引用的 LLM 字段会在一次结构化请求中提取。 |\n| 生成统计           | —                                                                                                           | 累计成功调用与有消耗的失败调用次数，查看累计输入/输出/总 Token，以及可用时的最近一次模型调用明细。确认后可以重置已保存的统计。           |\n| 输出修复与错误日志 | —                                                                                                           | 展开 Token 统计中的「重试设置」，选择 0–3 次额外调用并查看计数、最后一次修复时间和最近 10 条异常，并在确认后重置。                       |\n\n## 使用\n\n### 选择标题模板\n\n1. 使用 dsh web 启动 DSH Web。\n2. 打开设置 → 会话标题。\n3. 保持使用标题模板开启，选择一行并点击激活。\n4. 创建新的 Session，或对已有 Session 使用 DSH 原生的标题刷新操作。\n\n新设置文件默认选中只读的 default 模板。新选择的格式不会改写已有标题，除非 DSH 显式\n生成或刷新标题。\n\n### 管理模板\n\n全新的设置包含可编辑的 emoji 模板，其描述最多 64 个 Unicode 字符，同时保持内置 default\n模板处于选中状态。emoji 模板可以编辑或删除；删除后，在之后重新注册设置时不会自动重新出现。\n\n- 可以复制任意一行（包括 default），打开可编辑副本。\n- 为副本填写唯一名称，编辑 YAML 并点击保存。保存不会自动激活。\n- 需要让已保存模板生效时，点击激活。\n- 可以查看或选择 default，但不能编辑或删除。\n- 删除当前激活的自定义模板后，会选择 default。\n- 每一行在编辑时都会展示示例标题。示例不调用模型。\n\n### 创建自定义模板\n\n编辑器接受 template 和可选的 fields。模板中的\n${daytime} 会从 fields.daytime 解析，${desc} 会从 fields.desc 解析：\n\n每个 ${fieldName} 引用都会由 fields.<fieldName> 解析；它只是字段替换，不是指令或表达式。\n\n```yaml\ntemplate: '${daytime} | ${desc}'\nfields:\n  daytime:\n    kind: datetime\n    source: session.createdAt\n    format: MMDD\n    timezone: Asia/Shanghai\n  desc:\n    kind: llm-text\n    instruction: Summarize the first prompt in a few words\n    maxCharacters: 32\n```\n\n确定性值使用 datetime 或 literal；受控的模型分类使用 llm-enum；简短的模型生成文本使用\nllm-text。保存时会先校验 YAML 和字段定义，校验通过后模板才可以被激活。\n\n### 刷新 / 重新生成标题\n\n使用 DSH 原生的 Session 标题刷新操作，显式再次运行当前 provider。刷新使用当前模板和\nSession 原始的 createdAt，因此仅刷新标题不会改变日期字段。\n\n### 关闭自定义标题\n\n在设置 → 会话标题中关闭使用标题模板。已保存的模板和选择会保留，但 DSH 会恢复使用原生\n的首条 prompt 标题生成器。\n\n### 查看生成统计\n\n打开设置 → 会话标题，可以查看纳入统计的标题模型调用次数、输入 Token、输出 Token、总 Token，\n以及模型提供时的最近一次模型调用明细。每次成功的模型调用计一次，即使用量为零或未上报用量。\n失败调用只要报告了实际 Token 消耗也计一次；仅排除失败且消耗为零或未上报消耗的调用。\n重试调用遵循相同规则，因此一次有消耗的失败尝试加一次成功修复计两次。成功且有消耗的同一次\n调用不会重复计数。Token 包含所有调用报告的实际消耗。只包含确定性字段的模板不增加生成统计。\n重置需要确认。\n\n成功读取当前主机的统计后即可重置，包括本地安装的插件。Token 统计块和计数格在浅色与深色\n主题中都继承设置面板的背景。\n\n旧统计缺少重建每次调用结果与消耗所需的完整明细，因此保留历史计数。重置统计后可从零开始\n按新规则累计。\n\n### 设置修复次数并查看错误日志\n\n在 Token 消耗统计块中，展开计数下方默认折叠的「重试设置」，即可访问输出修复设置和错误日志。\n使用其中的下拉菜单选择模型输出不可用时额外调用的次数，范围为 0–3，0 表示关闭修复。\n计数、重试设置区域和错误日志之间使用分割线分隔。\n下拉框使用 DSH 设置选择器的底色，在悬停或展开时高亮。\n选择会立即通过 DSH 设置保存，用于后续生成或刷新。所有调用共用标题超时预算；传输错误、\n取消或超时不重试。\n\n展开「重试设置」后直接显示错误日志，展示累计异常次数、重试次数、修复成功次数、最后一次\n成功修复时间，以及最近 10 条异常的表格，最新记录在前。展开一行的响应详情可以查看消息序号、\n拒绝原因和有界的原始响应。重新加载会刷新诊断数据。「重置异常统计」需要确认，并重置整个\n错误日志域，包括异常次数、重试次数、修复成功次数、最后一次修复时间和全部异常记录。\nToken 统计和模板各自独立。\n\nclutch_title_diagnostics storage domain 仅持久化最近 10 条异常，新增记录时淘汰最旧记录，\n不会减少累计计数。旧的 lastIncident 在读取时导入，下次写入时替换为 recentIncidents。\ntitleStats remote namespace 提供 getDiagnostics 和 resetDiagnostics；每条异常还会输出一条\nwarning。诊断读取失败时，面板会显示错误，并禁用重置操作，直到读取成功。\n即使后续设置刷新挂起，重置结果与错误也会及时返回。\n诊断独立刷新，错误日志缓慢或不可用不会延迟模板加载或修复次数保存。\n诊断写入在超时后成功时只累计一次；后续到达的记录和重置操作仍保持独立。\n更换存储连接时，也会保留这些已完成的写入及后续记录。\n\n## 模板参考\n\n模板使用简单的字段替换：\n\n| 字段类型 | 用途                                         | 是否使用模型 |\n| -------- | -------------------------------------------- | ------------ |\n| datetime | 使用 session.createdAt 格式化 Session 时间戳 | 否           |\n| literal  | 插入固定文字                                 | 否           |\n| llm-enum | 从声明的受控值中选择一个                     | 是           |\n| llm-text | 生成一段简短文本                             | 是           |\n\n使用 ${identifier} 形式的占位符。identifier 必须对应已声明的字段。占位符不支持函数、\n表达式、条件、循环或任意代码。未知字段、格式错误的 YAML 和非法字段定义会在校验时被\n拒绝。\n\n## 配置\n\n模板设置仍以 DSH profile 中的 `clutch-dsh-title` 条目为键。DSH 0.1.6 及更早版本将其保存在\n`$DSH_HOME/settings.yaml`；DSH `dsh-v0.2.0-rc.1` 将相同的启用状态、当前模板和模板映射保存为\n活动 Web profile `cordis.yml` 中的 volatile 字段。DSH 的一次性设置导入器会将已有\n`$DSH_HOME/settings.yaml` 区段迁入 profile，并将旧文件重命名为 `settings.yaml.imported`。\n\nDSH 通常将 `~/.dsh` 用作 `$DSH_HOME`，但 source of truth 取决于 DSH 版本，始终是 DSH 配置而非\n写死的 home 路径。package 不使用 browser storage，也不使用 `clutch.yaml`。通过外部方式修改\nsource-of-truth 设置后，DSH 的重新加载路径会读取这些修改。非法模板条目会继续显示在设置中，\n便于修复，而不会被静默丢弃。\n\nprofile 配置和设置 → 会话标题可以设置：\n\n- repairAttempts：当模型返回不可用输出时，一次标题生成最多额外发起的模型调用次数。默认 1，\n  可接受 0 到 3，更大的值会被拒绝。这些调用与 timeoutMs 共用同一个预算，并且绝不会用于\n  传输错误、取消或超时。\n\n## 行为与限制\n\n- 自动标题只使用首条符合条件的用户 prompt，后续消息不会自动替换标题。\n- 首条 prompt 过长时，会在配置的输入字节预算内裁剪，并尽量保留开头和结尾。原始\n  Session 消息不会被修改。\n- 修改模板只影响后续生成或显式刷新，不会批量重写已有标题。\n- 当前激活模板缺失或非法时，设置管理器会使用内置 default 模板。\n- 如果字段提取、渲染或自定义标题生成失败，DSH 会使用正常的首条 prompt 标题生成器。该\n  fallback 是 DSH 自己对首条 prompt 的截断结果，因此不遵循模板。\n- 模型会被要求只输出一个 JSON 对象：键集合必须精确等于模板引用的 LLM 字段，枚举字段必须使用声明的\n  字面值之一，并给出字面形状示例。当响应仍不可用时，package 会再发一次有界的纠正轮，把被\n  拒绝的响应原文引用回去并说明拒绝原因，最多 repairAttempts 次额外调用。\n- 不可用的输出（包括 max-tokens 截断和意外的 tool-calls）会在配置的预算内修复。\n  传输错误、取消或超时耗尽会保留自身错误并立即 fallback；所有\n  尝试共用同一个 timeoutMs 预算。\n- 每个 incident 会记录一次日志（provider、model、消息 seq、拒绝原因，以及截断到 2000 字符的\n  原始响应），并持久化到 clutch_title_diagnostics storage domain（每个 incident 最多 4 条\n  被拒绝的响应，仅保留最近 10 条 incident；storage 不可用时，包括打开或写入挂起，内存最多缓存\n  64 条 incident，缓存满后淘汰最旧的缓存记录）。持久化是 best effort，绝不会延迟或\n  让标题生成失败。\n- 标题长度限制、标题持久化、手动重命名后的 pin、刷新和取消 pin、fork 的标题事件继承、\n  取消以及过期结果保护，仍由 DSH 负责。\n- bundle patch 会先禁用 DSH 默认的 session-title-first-prompt-llm provider，再插入本\n  provider。DSH 只允许一个 session-title provider：不要重新启用默认 provider，也不要在\n  同一 profile 中安装另一个 title provider。第二次注册会被 DSH 的单 provider 约束拒绝。\n\n## 要求\n\n- DSH peer 包括 @deepseek-ai/dsh-settings、@deepseek-ai/dsh-storage-domain、\n  @deepseek-ai/dsh-typert-protocol、@deepseek-ai/dsh-api-remotes、\n  @deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-settings、\n  @deepseek-ai/dsh-client-ui-slots、@deepseek-ai/dsh-client-ui-primitives、\n  @deepseek-ai/dsh-llm、@deepseek-ai/dsh-session、@deepseek-ai/dsh-session-title、\n  @deepseek-ai/dsh-session-title-llm、@deepseek-ai/dsh-timeout 和\n  @deepseek-ai/dsh-util-values，全部要求 >=0.2.0-rc.1。\n- Cordis：@deepseek-ai/cordis ^4.0.1。\n- 运行 DSH `dsh-v0.2.0-rc.1` 需要 Node.js `^22.19.0 || >=24.0.0`。\n- Profile：提供 package 所声明的 session、session-title、LLM、settings、storage、remote\n  和 browser settings service 的 DSH Web profile。\n\n### 兼容性\n\n通过 Cordis 配置提供的 template 和 fields 仍然兼容。当这些值来自 profile 配置时，设置页面\n会将它们显示为可编辑的 legacy 行。当前设置模板管理器和 legacy 配置使用相同的校验规则。\n\n本插件的字段提取包装消息使用 DSH 原生的 `dsh-session-title-llm` 消息来源类型，以满足会话重新加载时的\nformat v4 关系校验，同时记录 `clutch-dsh-title` 作为标题提供者。DSH 0.1.7 还将旧 settings 注册 API\n替换为 profile 中的 volatile Config 字段；同一标题编辑器继续使用这些字段，并由 DSH 在 profile 迁移时导入旧 settings。\n\n模型路由和可选的 reasoning 设置属于 profile 级配置，不属于模板字段设置。请保持 DSH 默认\ntitle provider 关闭，也不要将第二个 title provider 与本 package 组合。\n\n## 开发\n\n在 workspace 根目录构建、类型检查和测试：\n\n```bash\npnpm --filter @cerbur/clutch-dsh-title typecheck\npnpm --filter @cerbur/clutch-dsh-title build\npnpm --filter @cerbur/clutch-dsh-title test\n```\n\npackage 特有的发布参数和源码安装限制见\n[docs/RELEASING.md](docs/RELEASING.md)。面向用户的发布历史见\n[RELEASE-LOG.md](RELEASE-LOG.md)。\n\n## 卸载\n\n使用 DSH CLI：\n\n```bash\ndsh plugin --profile web remove @cerbur/clutch-dsh-title\n```\n\n如果使用 DeepSeek Harness 源码 checkout，可对同一个 package name 使用 pnpm dsh plugin\n--profile web remove。\n\n## 友情链接\n\n- [LINUX DO](https://linux.do/) — 新的理想型社区。\n","readmeFilename":"README.zh.md"}