{"_id":"dsh-prompt-optimization","_rev":"6276058-6ad700c9171affd543984fef","dist-tags":{"latest":"1.4.1"},"name":"dsh-prompt-optimization","time":{"created":"2026-10-20T05:48:57.773Z","modified":"2026-10-22T00:58:20.291Z","0.0.0-stage":"2026-10-20T05:48:48.003Z","1.2.1":"2026-10-20T05:49:44.371Z","1.3.0":"2026-10-20T06:41:39.669Z","1.3.1":"2026-10-20T07:38:20.744Z","1.3.2":"2026-10-20T08:20:57.348Z","1.3.5":"2026-10-20T09:12:33.474Z","1.4.0":"2026-10-20T10:43:58.030Z","1.4.1":"2026-10-22T00:58:08.521Z"},"versions":{"0.0.0-stage":{"name":"dsh-prompt-optimization","version":"0.0.0-stage","description":"Temporary package placeholder for staged publishing","stub":true,"_id":"dsh-prompt-optimization@0.0.0-stage","dist":{"integrity":"sha512-9qMXHqb9KEcuYGgtSpvJAOxBIFGAuHpGNZ22xRH7Nbpk66cR5RRdiFDfdR0zj8TnJl/b0zVxwIgwWa7lUDSGvQ==","shasum":"6650fb122b1e5d6809d233cc29f7152029dcae41","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-0.0.0-stage.tgz","fileCount":2,"unpackedSize":345,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFg459/PVldmf62+Ow9IWBh2AdLRI+n9lg7Kw5WOtwCjAiEA3xfY7wxJS6MlBdXQ48K+VRpfQ/EBK/XbzEesXb5XGG8="}],"size":368},"_npmUser":{"name":"kukano996npm","email":"1274666494@qq.com"},"directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_cnpmcore_publish_time":"2026-10-20T05:48:48.003Z","publish_time":1792475328003,"_hasShrinkwrap":false,"_source_registry_name":"default"},"1.2.1":{"_id":"dsh-prompt-optimization@1.2.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization"},"dist":{"shasum":"0c140508973b8dde6f8612de814e30e7aa683e55","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.2.1.tgz","fileCount":12,"integrity":"sha512-E/1Q7c+qNpSUGP7eo4srp4yN6dlu5Xo3ilr+o+shtgwShxSh8/9uT1h0tVIe1wBsCCooMiovQAbJWs/3tf6oFA==","signatures":[{"sig":"MEYCIQCc5qw/SuK1wVRNn2AKJTsvjoxZFOVfeabwVaM5wUHkDgIhALj5j9ge8Fyot23cEsRUbsMbME7D6l4NOnlb06D537RP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAG1zLbtXvLKlLEvbzS3mPtrNfIYw6EL3RzwSlgm2ndXAiBso2fd5/Bp6k0Dqhk9WkkXCCgar/KU7yAkKcqgZI9rFg=="}],"unpackedSize":160582,"size":49511},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"a6d80d21463178329c30ddf0744028d72a4e0bfe","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/rename-migration-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.2.1","_npmUser":{"name":"kukano996npm","email":"1274666494@qq.com"},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.18.0","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.2.1_1792475384265_0.027000613717913735"},"_cnpmcore_publish_time":"2026-10-20T05:49:44.371Z","publish_time":1792475384371,"_source_registry_name":"default"},"1.3.0":{"_id":"dsh-prompt-optimization@1.3.0","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"7edda0611b52e081c20c2894326a1d1423682846","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.3.0.tgz","fileCount":12,"integrity":"sha512-x4Ykofaji5xTLEALN+ny4rcAqQJew1F2QVbDg74k6vR6hFIITmhxafB7IGJkk7RcTUAWLIhnzDNzq91md5JP9A==","signatures":[{"sig":"MEYCIQCuql5HBJ3Aa6OMbMZYwBmJ1ZqDAut4r3WwKQUPYLL2zwIhAMfN5SKeympVR7DNDy6XFQvUwIZGbsmstEoDg6aGTlqg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDeSCxLZd+e/INihhmbToqTYhtFMre+l+GDONBQb3R0bAiAmR69hBLsxTI1PAKzW3t8bTDTDfSwTOsSnfKG7Erplsg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192072,"size":57736},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"274a7bcb9f54f722b54967fc91478bef06f4381a","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.3.0_1792478499570_0.48790573675222326"},"_cnpmcore_publish_time":"2026-10-20T06:41:39.669Z","publish_time":1792478499669,"_source_registry_name":"default"},"1.3.1":{"_id":"dsh-prompt-optimization@1.3.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"35f0f013ac90fd9ac5d52fd27248ec3c153d0364","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.3.1.tgz","fileCount":12,"integrity":"sha512-N45XfrySceM4Qip5ULOov40MsD6ZbQnO6nmrMQYW9YSai8YnDzGW+1LOr15ccBOfm38nC5aGDjzOoSI4ovSjxA==","signatures":[{"sig":"MEYCIQDKWr+peDBNZEs6KJPubH0QsHinkf7jyr8O26uv3zXi/AIhAKWSAcWvRasXAurJJwp5ov224H1+Y6RJI8MZ5Rcyhh2X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDseCCDG3lOvILQs3pzh3XsdjLfhfhS4RllZmC8nlh1FQIgFAGEpLz7qnuxH5O5itXiFN+1aViAlQujlythYie7Nz8="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199863,"size":59820},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"517bcb1ee75415df75f6e77a48740084962674b6","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs && node .verify/composer-mode-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.3.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.3.1_1792481900602_0.6120672480108158"},"_cnpmcore_publish_time":"2026-10-20T07:38:20.744Z","publish_time":1792481900744,"_source_registry_name":"default"},"1.3.2":{"_id":"dsh-prompt-optimization@1.3.2","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"5db2b6f45635ee73a1d3f72ee776fb65ad771bfb","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.3.2.tgz","fileCount":12,"integrity":"sha512-w2ex4t0BhI0WUtlg8/xaPB3dQQMoXAjojmdGDbwx3l67Lqs1Z4hQlfOcBFli0sMg0wECdr5cGM3iY5aRIOkbIw==","signatures":[{"sig":"MEUCIQCnDBU/oqM8PF3eOZpqllDQBiltw5gEnnt2E+77JyzMmwIgD0Z45wJ7uZRPWY06IvTc9sqLn5h5l9SRMG3+fb5t1zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCE+LughaLB80doA/Rr4uAyQmUOdoj6F4xxyDRcaA6i5AIgIBiK4SDzsmJRig4iLXjtkvnMP+sWPfZUe5ALnZKRNNI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":235651,"size":69260},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"c83a9c8e6210c157647339b279fe804d719aeaca","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs && node .verify/composer-mode-test.mjs && node .verify/stream-context-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.3.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.3.2_1792484457237_0.7020454698017133"},"_cnpmcore_publish_time":"2026-10-20T08:20:57.348Z","publish_time":1792484457348,"_source_registry_name":"default"},"1.3.5":{"_id":"dsh-prompt-optimization@1.3.5","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"b92fcb7406ad2d3d70c7e9f25aa918b6d94b1cf0","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.3.5.tgz","fileCount":12,"integrity":"sha512-8lVFYVUhytTGAZd6H+uvIAYh3y0H+a+scBEiYxjlt7UYtPjv2MaWfMu5MhhOAtJ1tzMtfcsofNqbGlYV3Vxc+A==","signatures":[{"sig":"MEQCIGVEJc6lYsJLqcZOjKnXAZSucXvGPe95jdIJkbZQ48bBAiBl4EHXr3xO2mo1kSQgKGFv6B+5CNB9bD7FOYIfCqD1Cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDIz687NeWt6AvhmvgiK1n/JHt96lxAPzeniVEOQY8xFgIgTd/7McgFqc8NWwQW1lzwBVXjiU7WkQXV+nnGBJFN68c="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":253885,"size":74074},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"f03f5e0ab4c7a9e318e9385dc3e1c7c9ed469085","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs && node .verify/composer-mode-test.mjs && node .verify/stream-context-test.mjs && node .verify/wait-budget-test.mjs && node .verify/stream-throttle-test.mjs && node .verify/disconnect-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.3.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.3.5_1792487553302_0.6815455421482708"},"_cnpmcore_publish_time":"2026-10-20T09:12:33.474Z","publish_time":1792487553474,"_source_registry_name":"default"},"1.4.0":{"_id":"dsh-prompt-optimization@1.4.0","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"dcb1e9ac2c5d034f432fa82f5bace07595084843","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.4.0.tgz","fileCount":12,"integrity":"sha512-i2RUNjWv/wUrhRibH8OoP33ZIy+0xgJpSUYoEJllsAsjLcxkrDmcQTVwCATodCrVncBhg1RPBu8NbarzUwgR7Q==","signatures":[{"sig":"MEQCIFh5ABGQaC/k6vpqH0lxUhq9DONFi9AGNjZchvcExjtPAiABR+wm6a9wFNAQgXPco1p5knFKMAyZmwofCJI1osGkUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBUNnInuOsdWkKCQBPHvdLamjhmuE9gEqJHTZmbKGFmdAiB7bbIr7OqgyTzYp1fmtg57t/gWv9fyEARnQ9ZJoV5kaQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243664,"size":74886},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"9627cfc7f9224f09fbbe41b80a337d4e0c5fc415","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/preamble-test.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs && node .verify/composer-mode-test.mjs && node .verify/wait-budget-test.mjs && node .verify/disconnect-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.4.0_1792493037908_0.23960599394385484"},"_cnpmcore_publish_time":"2026-10-20T10:43:58.030Z","publish_time":1792493038030,"_source_registry_name":"default"},"1.4.1":{"_id":"dsh-prompt-optimization@1.4.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-conversation"],"platform":"web","immediately":true}},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"dist":{"shasum":"aae50539d4a2b641b1f51818507b11a67250ba9b","tarball":"https://registry.npmmirror.com/dsh-prompt-optimization/-/dsh-prompt-optimization-1.4.1.tgz","fileCount":12,"integrity":"sha512-8EsfwNb0pIAmWzYNiovM60R4trYmPUVhhrJf0R3YRVvmLZ6msiYwY5ZtOLDYO+vXSqj0Ndp60rbPYBRPskCiuw==","signatures":[{"sig":"MEUCIQDus92BbHZHrkYsxrcpQL/tPWhYzELnRiFia3GXjAoaoQIgJqvJ9PsAfQVSe5V3YQMFTmbOiz/99tImJRdqQZA2ITM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCah+s8dueKHfVLhyJWDNJA9M3AaqkzvaTmbYQ76lpdawIgMtUGWa11wx1N7V/20Eelw1LbrFibKHWxL6458Dv/ceA="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/dsh-prompt-optimization@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242257,"size":74180},"main":"index.js","name":"dsh-prompt-optimization","type":"module","author":{"name":"KukaNo996"},"exports":{".":"./index.js","./icon":"./icon.svg","./client":"./client.js","./package.json":"./package.json","./locale/*.json":"./locale/*.json"},"gitHead":"309e36ee2c775cb383409153a6c7b686148db5cc","license":"MIT","private":false,"scripts":{"verify":"node --check index.js && node --check client.js && node .github/scripts/validate-manifest.mjs && node .github/scripts/check-locales.mjs && node .verify/host-test.mjs && node .verify/client-test.mjs && node .verify/hint-animation-test.mjs && node .verify/icon-test.mjs && node .verify/locale-test.mjs && node .verify/translate-sim.mjs && node .verify/preamble-test.mjs && node .verify/rename-migration-test.mjs && node .verify/update-test.mjs && node .verify/composer-mode-test.mjs && node .verify/wait-budget-test.mjs && node .verify/disconnect-test.mjs","test:icons":"python3 .verify/icon-weight.py","build:locales":"node .github/scripts/build-locales.mjs"},"version":"1.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2092d81f-1035-4264-9994-07772e18a3da"}},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"},"_npmVersion":"11.21.1","description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","directories":{},"maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"~4.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-prompt-optimization_1.4.1_1792630688400_0.4164249397237356"},"_cnpmcore_publish_time":"2026-10-22T00:58:08.521Z","publish_time":1792630688521,"_source_registry_name":"default"}},"description":"DeepSeek Harness prompt-refinement plugin: rewrite a rough request into a clear, professional prompt, with one-click undo and a configurable model","maintainers":[{"name":"kukano996npm","email":"1274666494@qq.com"}],"readme":"# dsh-prompt-optimization · 提示词优化\n\n中文 | [English](README.en.md)\n\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n![DSH](https://img.shields.io/badge/DeepSeek%20Harness-0.2.1%2B-purple)\n\n把输入框里那句“帮我把周报弄一下”，变成一份任务明确、主旨清晰、无歧义、计划合理、目标准确的专业提示词——点一下就完成，不满意一键撤回。\n\n这是一个 **DeepSeek Harness（DSH）Web 插件**：「优化提示词」按钮位于输入框工具栏、紧挨模型选择器；改写结果直接回填草稿，草稿不被覆盖（改写前后可随时撤回）。插件的设置页可配置模型来源、API Key 与多候选评估，支持本地或在线 OpenAI 兼容接口。\n\n---\n\n## 为什么需要它\n\n自然语言需求往往含糊：缺背景、缺范围、缺验收标准，模型只能猜。这个插件把“猜”前置成一次显式改写：\n\n- **改写目标**：任务明确 / 主旨清晰 / 无歧义 / 条理清晰 / 计划合理 / 目标准确\n- **改写原则**：忠实原意（不新增需求、不编造事实），信息不足时给标注假设或最多 3 条关键待确认问题，绝不把“反问用户”当成输出\n- **深度自适应**：短需求给短提示词，复杂需求才展开「目标 / 背景 / 任务 / 约束 / 步骤 / 输出格式 / 验收标准」结构\n\n---\n\n## 功能\n\n| 功能 | 说明 |\n| --- | --- |\n| **一键优化** | 工具栏按钮点击后调用模型改写当前草稿并回填 |\n| **一键撤回** | 改写后按钮变为「撤回」，点击恢复原文，再点又可优化 |\n| **多候选评估** | 可开启：并行生成 2–5 份结果，再由评审模型选出最优；会明确提示 token 成本 |\n| **模型来源可配置** | `跟随输入框`（默认）/ `跟随主程序` / `自定义模型`（任意 OpenAI 兼容端点） |\n| **本地模型支持** | 由主机侧直接请求端点，不受浏览器 CORS 限制，Ollama / LM Studio / vLLM 均可 |\n| **显示提示文字** | 默认只显示图标；开启后同时显示「优化提示词」和「撤回」文字 |\n| **空输入引导** | 未填写内容时点击优化，提示语会逐字写入输入框，停留 2 秒后逐字删除；开始输入即自动停止 |\n| **根据上下文优化（Beta）** | 可开启：先压缩当前会话上下文再据此改写，使结果更贴合你的表达习惯；默认关闭 |\n| **引用保护** | 草稿含文件/会话引用芯片时自动禁用，避免改写丢失引用 |\n| **失败安全** | 草稿在请求期间被修改则不覆盖本次结果；请求可随页面关闭/切会话立即中止 |\n| **问题分类改写** | 先判断原文属于六类中的哪类（知识理解/编程实现/内容创作/分析决策/流程方法/表达转换），按类型决定问什么 |\n| **问题拆解深入** | 问「什么是 X」时不直接回答，而是拆成至少 3 个分析维度写成提示词 |\n| **篇幅分五档** | 按原文字数与问题类型选档：极短/简短/标准/详尽/完整，同一篇不跨档 |\n| **可中断优化** | 优化过程中点击转圈即可中断，草稿恢复为原文 |\n| **最大等待时长** | 可设置单次优化的最长等待时间，默认 15 秒、最低 10 秒，超时自动中止 |\n| **检查更新** | 设置页可检查是否有新版本，**更新源可自定义**（npm registry / GitHub Releases / 任意镜像），只读版本号、不下载安装 |\n\n插件界面与词典提供**简体中文、繁体中文、日语和英语**。\n\n---\n\n## 安装\n\n### 方式一：插件管理器（推荐）\n\n在 DSH 中打开「设置 → 插件」安装，或使用包坐标：\n\n```text\nplugin_manager install_bundle target=dsh-prompt-optimization\n```\n\n国内网络可指定镜像源：\n\n```text\nplugin_manager install_bundle target=dsh-prompt-optimization registry=https://registry.npmmirror.com\n```\n\n需要固定版本时写完整版本号，例如 `target=dsh-prompt-optimization@1.1.0`。\n\n### 方式二：源码安装\n\n```bash\ngit clone https://github.com/KukaNo996/dsh-prompt-optimization\n```\n\n```text\nplugin_manager install_bundle target=<克隆目录的绝对路径>\n```\n\n安装后：插件行出现在「设置 → 插件」，设置页出现在「设置 → 提示词优化」。\n\n---\n\n## 快速开始\n\n1. 在输入框写下需求，例如 `帮我把周报弄一下`\n2. 点击工具栏「优化提示词」\n3. 查看改写结果，满意直接发送；不满意点「撤回」\n4. 首次使用若提示模型不可用，前往「设置 → 提示词优化」选择模型来源\n\n---\n\n## 设置项\n\n| 设置 | 作用 | 默认 |\n| --- | --- | --- |\n| 模型来源 | `跟随输入框` / `跟随主程序` / `自定义模型` | 跟随输入框 |\n| API 地址 | 自定义模式的 OpenAI 兼容端点，如 `http://127.0.0.1:11434/v1` | — |\n| 模型名称 | 自定义模式必填；跟随模式留空表示自动 | — |\n| Provider（可选） | 跟随模式下覆盖自动选择的 provider | 自动 |\n| API Key | 自定义端点密钥；本地模型可留空 | — |\n| 温度 | 0–2，越低越稳定 | 0.3 |\n| 最大输出 token | 0 表示交给模型默认值 | 0 |\n| 优化指令 | 自定义 system prompt，留空用内置指令 | 内置 |\n| 多候选评估 | 开关 + 候选份数（2–5） | 关闭 / 1 份 |\n| 显示提示文字 | 开启后按钮显示「优化提示词」和「撤回」文字，关闭时只显示图标 | 关闭（仅图标） |\n| 更新源 | 检查更新时使用的地址；留空按内置顺序尝试 | 自动 |\n| 根据上下文优化（Beta） | 开启后先压缩会话上下文再据此改写提示词 | 关闭 |\n| 最大等待时长 | 单次优化的最长等待时间，覆盖上下文压缩、多候选生成与评审 | 15 秒 |\n\n可随时用「测试连接」验证当前配置；配置未保存到可调用状态时，保存仍会成功，但优化会返回可读的错误提示。\n\n### 问题分类\n\n动笔前先判定原文属于哪一类，类型决定该问什么，不用同一套模板套所有问题：\n\n| 类型 | 典型问法 | 改写重点 |\n| --- | --- | --- |\n| 知识理解类 | 什么是、为什么、有什么区别、原理 | 拆成多个分析维度，系统讲透 |\n| 编程实现类 | 写、改、修、重构、报错、性能 | 输入输出、语言框架、约束、边界、验收方式 |\n| 内容创作类 | 文案、起名、邮件、脚本、翻译 | 受众、用途、语气、篇幅、禁忌 |\n| 分析决策类 | 对比、选型、评估、要不要 | 候选对象、评价维度、结论形态、判断标准 |\n| 流程方法类 | 怎么做、如何入门、步骤 | 阶段划分、每阶段产出、依赖与检查点 |\n| 表达转换类 | 总结、精简、改写、格式化 | 目标形态、保留什么、删掉什么 |\n\n### 问问题时不回答\n\n用户问「什么是闭包」「React 和 Vue 选哪个」时，插件**不会以大模型口吻直接回答**。\n它做的是把问题改写成一条可执行的提示词，交给别的 AI 去答：\n\n- 问题必须拆成**至少 3 个分析维度**，只润色成一句问话算不合格改写；\n- 六个可选维度：定义与核心概念、原理与机制、分类与对比、应用与示例、优点与局限、实践建议；\n- 同时写明读者水平、覆盖粒度、是否要来源，并明确「不要只给一句定义就结束」；\n- 知识理解类即使原文只有五六个字，也按详尽档系统展开。\n\n例如原文「什么是闭包」会改写成要求覆盖定义、形成机制、常见形态、典型用途、\n常见误区、与其它语言同类机制的区别，并每点配最小代码片段的任务说明。\n\n### 篇幅分五档\n\n改写长度由**原文字数 + 问题类型**共同决定，不是所有需求都要优化成一大串：\n\n| 档位 | 原文 | 输出 |\n| --- | --- | --- |\n| 极短档 | 不足 20 字（如「写个快排」） | 1–2 句，核心任务 + 一个最关键约束；绝不加标题、编号、背景 |\n| 简短档 | 20–50 字，单一诉求 | 2–4 句或最多 3 条短要求，不设小标题 |\n| 标准档 | 50–150 字，或含 2–3 个并列诉求 | 4–8 行，可加 1–2 个小标题 |\n| 详尽档 | 150–400 字，或类型要求系统回答（知识理解/分析决策/流程方法） | 结构化多段：目标 / 覆盖维度 / 约束 / 输出形态 / 验收标准 |\n| 完整档 | 超过 400 字，或多条并列且彼此依赖 | 才用含背景、执行步骤、风险与检查点的完整结构 |\n\n同一篇内不跨档：原文是极短档，就不会写到详尽档。知识理解类即使原文很短也落到详尽档。\n判据是「原文写了多少、问题需要多深」，不是你还能补充多少。宁可偏短一档。\n\n### 中断与等待时长\n\n优化过程中**点击转圈即可中断**，草稿会恢复为原文。\n中断会同时结束客户端请求与主机侧的模型调用，不会让模型在后台继续生成。\n\n「最大等待时长」限制单次优化的总耗时，**默认 15 秒，最低 10 秒**。\n该时长覆盖整个流程——上下文压缩、多候选生成与评审都在其中，\n而不是只算最后一次模型调用。超时后插件会自动中止并明确提示。\n\n### 根据上下文优化提示词（Beta）\n\n设置页的「根据上下文优化（Beta）」**默认关闭**。开启后：\n\n1. 读取当前会话中**你真正输入过**的消息（宿主注入的运行时上下文等不参与）；\n2. 交给模型压缩成一份简短偏好简报——表达习惯、常用措辞、关注的主题、已排除的做法；\n3. 用这份简报作为参考改写提示词。\n\n**只有压缩后的简报会进入改写请求，原始对话不会直接发给模型。**\n压缩本身会多调用一次模型，因此 token 消耗相应增加；压缩失败时会退回普通改写，\n不会让整个操作失败。\n\n> 该功能仍处 Beta：它会改变改写结果，介意可随时关闭。\n\n### 检查更新\n\n设置页底部有「检查更新」区块，点击后查询是否有新版本。**它只读取版本号，不下载、不安装，也不会写入设置文件。**\n\n更新源支持三种写法，填在「更新源」输入框即可：\n\n| 写法 | 示例 |\n| --- | --- |\n| 内置别名 | `npm`、`npmmirror`、`github` |\n| npm registry 包地址 | `https://registry.npmmirror.com/dsh-prompt-optimization` |\n| GitHub Releases API 地址 | `https://api.github.com/repos/KukaNo996/dsh-prompt-optimization/releases/latest` |\n\n留空时依次尝试 **npm registry → npmmirror → GitHub Releases**，任一成功即返回。\n\n- 自定义源按**响应内容**识别格式（`dist-tags.latest` 或 `tag_name`），因此镜像站、代理都可用，不依赖域名。\n- 单个源超时 10 秒，失败自动回退到下一个；全部失败会逐条列出原因。\n- 版本比较遵循语义化版本优先级，正确处理预发布版本。\n\n### 三种模型来源\n\n| 模式 | 使用的模型 | 取不到时 |\n| --- | --- | --- |\n| **跟随输入框**（默认） | 输入框右下角当前选择的模型 | **报错**，不切换到其它模型 |\n| 跟随主程序 | 见下方解析顺序 | 逐级回退 |\n| 自定义模型 | 你填写的 OpenAI 兼容端点 | 报错提示缺少地址或模型名 |\n\n「跟随输入框」**绝不回退**：选它就是为了固定用手上那个模型，\n悄悄换成别的模型会违背这个意图。因此当会话还没有可识别的选择时，\n插件会明确提示，而不是替你决定。\n\n### 模型解析顺序（跟随主程序）\n\n1. 设置页显式填写的 provider + model\n2. 当前会话最近一次请求使用的模型（即模型选择器所选）\n3. 主程序默认模型（设置 → 模型）\n4. 兜底 `deepseek-account` / `deepseek-flash`\n\n---\n\n## 环境要求\n\n- **DeepSeek Harness 0.2.1 及以上**（依赖 `conversation.input.right`、`settings.section` 插槽与 `inputActions.setDraft`）\n- 「跟随主程序」模式需已登录 DeepSeek 账户或已配置可用模型；否则请改用「自定义模型」\n\n---\n\n## 隐私与安全\n\n- **API Key 存储**：优先放入宿主凭据服务（`keyStorage: credential`），`settings.json` 只记录“是否已配置”；没有凭据服务时降级写入 `$DSH_HOME/dsh-prompt-optimization/settings.json`（POSIX 下 `0600`）。旧版本明文会自动迁移并清除。\n- **浏览器侧**：永远只能拿到掩码（如 `sk-••••1234`），任何接口都不返回明文。\n- **接口防护**：除 `/status` 外所有路由要求进程级随机票据（页面从 `/status` 获取）并校验 Origin；模型路由按来源限流 10 次/分钟。\n- **数据去向**：被优化的草稿文本会**发送给你配置的模型端点**（跟随模式即主程序所用 provider）。请勿在需要保密的草稿上使用不可信的第三方端点。\n- **请求中止**：页面关闭、切换会话或再次点击时立即中止在途请求，主机侧返回 499 并停止计费。\n\n---\n\n## 实现说明\n\n### 主机侧（`index.js`）\n\n注册同源前缀路由 `/dsh-prompt-optimization/*`：\n\n| 路由 | 方法 | 用途 |\n| --- | --- | --- |\n| `/status` | GET | 插件健康状态 + 下发请求票据 |\n| `/settings` | GET / POST | 读取 / 保存设置（密钥只写不读） |\n| `/optimize` | POST | 执行改写（含多候选评估） |\n| `/test` | POST | 测试连接 |\n| `/update-check` | GET / POST | 检查更新（不占模型调用额度） |\n\n- 跟随模式走 DSH `llm` 服务（自带账户鉴权与重试）；自定义模式由主机侧请求 OpenAI 兼容 `/chat/completions`\n- 评估：`candidates > 1` 时并行生成 N 份，再发一次只返回编号的评审请求；评审失败或无有效编号时退回确定性评分（结构 + 数字/标识符保留率 + 长度比）\n- 取消：`req.on('close')` 触发 AbortSignal，透传给 `llm.stream` / `fetch`\n- 检查更新：对更新源发起 HTTPS GET（10 秒超时、2 MB 上限），按响应内容识别 npm packument 或 GitHub release，用语义化版本规则比较；只读，不写设置文件\n- 上下文：开启 Beta 后先读取会话中用户真正输入的消息，交给模型压缩成偏好简报，再把简报注入改写请求；原始对话不直接发给模型\n\n### 客户端侧（`client.js`）\n\n以 `window.__ModuleLoader__.load` 注册两个 slot：\n\n- `conversation.input.right`：工具栏优化 / 撤回按钮与错误气泡\n- `settings.section`：设置页面\n\n草稿读写使用宿主注入的 `inputActions` / `useInput`，不改 DOM；`occurrences` 非空时禁用优化。改写完成后一次性回填草稿，输出即用，不带任何开场白。样式只用 `--dsw-alias-*` 主题 token。\n\n### 打包内容\n\n只包含 `index.js`、`client.js`、`cordis.patch.yml`、`locale/*.json`、`icon.svg`；测试脚本与文档留在仓库、不进包。\n\n---\n\n## 开发\n\n```bash\nnode --check index.js\nnode --check client.js\nnode .verify/host-test.mjs            # 主机侧：路由、票据/限流、密钥存储、取消、多候选评估（46 项）\nnode .verify/client-test.mjs          # 客户端侧：模块工厂与插槽注册（14 项）\nnode .verify/hint-animation-test.mjs  # 空输入提示动画：打字/停留/逐字删除与打断（31 项）\nnode .verify/icon-test.mjs            # 图标结构约定（16 项）\nnode .verify/locale-test.mjs          # 多语言解析与键一致性（36 项）\nnode .verify/translate-sim.mjs        # 各语言实际输出（14 项）\nnode .verify/preamble-test.mjs        # 开场白剔除且不误伤真实提示词（12 项）\nnode .verify/rename-migration-test.mjs # 改名迁移：设置与 API Key 无损（9 项）\nnode .verify/update-test.mjs          # 检查更新：源解析、版本比较、超时与鉴权（37 项）\nnode .verify/composer-mode-test.mjs   # 跟随输入框模式（19 项）\nnode .verify/disconnect-test.mjs      # 客户端断开必须被主机侧感知（5 项）\nnode .verify/wait-budget-test.mjs     # 等待时长与中断（34 项）\npython3 .verify/icon-weight.py        # 真实 16px 渲染下的图标视觉平衡\n```\n\n或者一次跑完（与 CI 一致）：\n\n```bash\nnpm run verify\n```\n\n### 提交代码\n\n本目录已是完整 Git 仓库，`origin` 指向 <https://github.com/KukaNo996/dsh-prompt-optimization>，默认分支 `main`。\n\n```bash\ngit status\ngit add -A -- . ':!.workbuddy'\ngit commit -m \"fix: 说明改了什么\"\ngit push origin main\n```\n\n- **本机代理**：仓库级 `http.proxy = http://127.0.0.1:7897`。端口不同时：\n\n  ```bash\n  git config --local http.proxy http://127.0.0.1:<端口>\n  git config --local https.proxy http://127.0.0.1:<端口>\n  ```\n\n  可直连后：`git config --local --unset http.proxy` 与 `--unset https.proxy`。\n- **凭据**：Git Credential Manager 已保存 GitHub 账号；失效时按 `git push` 提示登录。\n- **身份与换行**：仓库级 `user.name=KukaNo996`、`user.email=1274666494@qq.com`、`core.autocrlf=false`。\n- `.workbuddy/`、`*.tgz`、`node_modules/` 已在 `.gitignore` 忽略。\n\n---\n\n## 常见问题\n\n**Q：按钮点了没反应/报“模型不可用”？**\nA：账户未登录或未配置模型。到「设置 → 提示词优化」改用「自定义模型」，填写 API 地址与模型名后点「测试连接」。\n\n**Q：优化后按钮为什么是灰的？**\nA：草稿中存在文件/会话引用芯片，纯文本改写会丢失引用，因此禁用；移除引用后可继续优化。\n\n**Q：多候选评估值得开吗？**\nA：值得在“结果要交付给别人”的场景开启；N 份候选成本约为单次的 `N + 1` 倍 token，耗时也更长。\n\n**Q：改写结果被扩写得过多？**\nA：默认指令已要求“篇幅与原文信息量匹配”。仍不满意可在设置页自定义「优化指令」，明确字数上限或删减段落。\n\n---\n\n## 已知限制\n\n- 优化与撤回以**纯文本**重写草稿；含引用芯片时按钮禁用（撤回也只恢复文本）\n- 「输入框当前选择的模型」取自会话最近一次请求的 `request/header`；刚切换模型且未发送时会使用默认模型\n- 自定义接口目前仅支持 OpenAI 兼容 `/chat/completions`\n- 多候选评估成本约为单次 `N + 1` 倍 token，适合重质量、不重速度的场景\n- 仅在 Web GUI 验证；未在 Electron 独立窗口中验证\n\n---\n\n## 许可证\n\n[MIT](LICENSE) © 2026 KukaNo996\n","_source_registry_name":"default","author":{"name":"KukaNo996"},"bugs":{"url":"https://github.com/KukaNo996/dsh-prompt-optimization/issues"},"homepage":"https://github.com/KukaNo996/dsh-prompt-optimization#readme","keywords":["deepseek-harness","dsh","cordis","prompt","prompt-engineering","llm","plugin"],"license":"MIT","repository":{"url":"git+https://github.com/KukaNo996/dsh-prompt-optimization.git","type":"git"}}