{"_id":"@dexthemes/deepseek-harness-plugin","_rev":"8-65687f2edb9e9fb8e2d86566d246b6f3","name":"@dexthemes/deepseek-harness-plugin","dist-tags":{"latest":"0.6.5"},"versions":{"0.4.0":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.4.0","keywords":["deepseek","deepseek-harness","dexthemes","theme","cordis"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.4.0","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://www.dexthemes.com","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"28136c156073e2ff605d2a40befaab7925735d4c","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.4.0.tgz","fileCount":6,"integrity":"sha512-PXOxMjN7qzkngAi8ba8lRjzfOX8q9S29Q6Abh83X50bnlSOkHcorJNyvqjAuexlRrAtBEcyMDVyr9q/OpxFrnQ==","signatures":[{"sig":"MEQCIHlfupzhAXG2iZc8Qy8tBbmWij+RT25VVT/tZyZ4aYNcAiBeYCNM2UhwL9LJCgMT5d7ozqlNwPqsZ6yTxqQck13VmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177096},"main":"./lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Installed DexThemes browser plugin for DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.4.0_1786641532797_0.012732774182828921","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.4.1","keywords":["deepseek","deepseek-harness","dexthemes","theme","cordis"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.4.1","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://www.dexthemes.com","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"339a5d60c05d29bd717ef31d3951d2614732ba7a","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.4.1.tgz","fileCount":6,"integrity":"sha512-wg5OsnGyoNPpFLtLNSUDQds50Zphasl/l1B07EHRA+8kDMIjtE4KE/K65DPwklrLoKxRKox5p4kZ6u8sQyByOw==","signatures":[{"sig":"MEUCIGsrryJk1LQGvgRZfFZzu4wvOoZYUJlKBbHs9zioPHg0AiEA4vpCYWklar8BbB7lgJDqJxT52gW52DXC60DYGkvTTh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177181},"main":"./lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Installed DexThemes browser plugin for DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.4.1_1786641857561_0.5195835478727646","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.0","keywords":["deepseek","deepseek-harness","dexthemes","theme","cordis"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.6.0","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://www.dexthemes.com","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"657304a94dc6c3b7eba93f633424801f9daf22ee","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.0.tgz","fileCount":6,"integrity":"sha512-EpIYPZ4DLXxqoWnQY+UrMTjn2a+Vx4WqzNlikBmvCHBGbwxhf2S0nVKde3bbvxUkeYP4i1CmiNBce1HPl1yshw==","signatures":[{"sig":"MEUCIGJU7szU9oXZaxcBGg0WgW3BRE9AjpB8vFL9QZ9GZjmJAiEA46cq4g3ca5WvXAQxxP6npN/zG8kkXRZaqG3dkVwxZgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180066},"main":"./lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Installed DexThemes browser plugin for DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.6.0_1786738130780_0.9185322104486953","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.1","keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.6.1","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"c8fafef5fbbd6e39f88511f0820e0b257409bd40","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.1.tgz","fileCount":7,"integrity":"sha512-BHxWbBBJ2ry+2vwgGc5TP8HSNOr7B3xyKSlaVraFCGoPpPKY7KocjxJ/+cg3kKhv5k3XEKaa1XFzRxvGe+eQNg==","signatures":[{"sig":"MEUCIQCokUeVAyd823fhIVA/Thcds9nLiVzs7Yj+Wpny8vgmmgIgE9p0ePq1rPRHKCqNA5p84RUvyZDVv6zpZJHvmX0TlTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193278},"main":"./lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.6.1_1786757531417_0.15673903474554107","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.2","keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.6.2","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"81c419ee9f88680ddf3836ee487d94537710e588","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.2.tgz","fileCount":7,"integrity":"sha512-bx9bGAnHdBR1l3+dWxB5g2eOG1bWbapL/SfzMQlOJPhK4p7O9+7rvHSJZEiTl/Us48MrUpU9aP4TLHqZdv869g==","signatures":[{"sig":"MEUCIQC8xgH9kP3pUbqIRjmrnyAc7ZySHHmhsZBg85vV6cvE6wIgRxEbbnfkg2TG9KUUhGAOdMfm1cbzAyvYuVMKOqiBg0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195000},"main":"./lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.6.2_1786761855700_0.9322872230521544","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.3","keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.6.3","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"0de2f1e66e20147ca25462df81cbf100292c67cd","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.3.tgz","fileCount":7,"integrity":"sha512-gByhJCkfPSiucAuaP3UzORm+XxgPTw2HDlP/0n2Tbr8+wbzH1QihHuicshv3SHCrpnQk3m62FWha6udKEjVmmQ==","signatures":[{"sig":"MEUCIC3nIELWJv7MUmnVwSBb7g1iBDiQu/JGZL+J4qzxZU7pAiEA/Mp9Yr7ZpUrN5apnxaNpbMPF11QCymFfpXNYjL5KNXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198083},"main":"./lib/index.js","type":"module","_from":"file:/private/tmp/dexthemes-063-release.eemyHJ/artifact/dexthemes-deepseek-harness-plugin-0.6.3.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"_resolved":"/private/tmp/dexthemes-063-release.eemyHJ/artifact/dexthemes-deepseek-harness-plugin-0.6.3.tgz","_integrity":"sha512-gByhJCkfPSiucAuaP3UzORm+XxgPTw2HDlP/0n2Tbr8+wbzH1QihHuicshv3SHCrpnQk3m62FWha6udKEjVmmQ==","repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.6.3_1786969872007_0.8281714066543013","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.4","keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"license":"MIT","_id":"@dexthemes/deepseek-harness-plugin@0.6.4","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"2adcd6d8c1a819f892fb25d06a9d82253acdba12","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.4.tgz","fileCount":7,"integrity":"sha512-k2ixkdySR9mIOnUsl/fT21vJV5fDGlZJXtEDhTxcQG7l5lzmYOB8y63jLp3sKYjDLVxQORABhiMJt9FqmeQRWg==","signatures":[{"sig":"MEYCIQCsqTiHundaKVyTG+P7iDQLUwpytzVIHQ0+GkB+OmN85AIhAIRXjNA+SZZUnxDmkVQgWHRwywyDCxyq38rQlUaTyedI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199705},"main":"./lib/index.js","type":"module","_from":"file:/tmp/dexthemes-npm-064.oUSdlS/dexthemes-deepseek-harness-plugin-0.6.4.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs"},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"_resolved":"/tmp/dexthemes-npm-064.oUSdlS/dexthemes-deepseek-harness-plugin-0.6.4.tgz","_integrity":"sha512-k2ixkdySR9mIOnUsl/fT21vJV5fDGlZJXtEDhTxcQG7l5lzmYOB8y63jLp3sKYjDLVxQORABhiMJt9FqmeQRWg==","repository":{"url":"git+https://github.com/daeshawnballard/dexthemes.git","type":"git","directory":"packages/deepseek-harness-plugin"},"_npmVersion":"11.6.2","description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@statsig/js-client":"^3.32.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-plugin_0.6.4_1787001706979_0.03943040505228512","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@dexthemes/deepseek-harness-plugin","version":"0.6.5","description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","type":"module","main":"./lib/index.js","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"scripts":{"build":"node scripts/build.mjs","verify:release":"node scripts/verify-release.mjs"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/daeshawnballard/dexthemes.git","directory":"packages/deepseek-harness-plugin"},"homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"engines":{"node":">=20"},"dependencies":{"@statsig/js-client":"^3.32.2"},"peerDependencies":{"react":"^18.2.0"},"_id":"@dexthemes/deepseek-harness-plugin@0.6.5","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-QtXwZVOH09y0PV0W9ZYjXhYFgFhQRd7a5ABRJdNRmyp/H0/EGSZQekXC+5fDIpjNoLWX6MIDzKp+R58U4NmxpQ==","shasum":"25fd1499dcd796b341428680ee70cb4d242e0ec5","tarball":"https://registry.npmjs.org/@dexthemes/deepseek-harness-plugin/-/deepseek-harness-plugin-0.6.5.tgz","fileCount":7,"unpackedSize":209700,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAzjvDHfu8H6Jo65LAwHhbOvjWSWr35Dike+FIjViiAlAiA3mIhRD4wsy/UGbobRKtthRH7YueztMqtyu83Y20Pz5A=="}]},"_npmUser":{"name":"daeshawn","email":"imdaeshawn@gmail.com"},"directories":{},"maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/deepseek-harness-plugin_0.6.5_1787523667968_0.04017090688249869"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T17:18:52.601Z","modified":"2026-08-23T22:21:08.281Z","0.4.0":"2026-08-13T17:18:52.946Z","0.4.1":"2026-08-13T17:24:17.701Z","0.6.0":"2026-08-14T20:08:50.938Z","0.6.1":"2026-08-15T01:32:11.568Z","0.6.2":"2026-08-15T02:44:15.855Z","0.6.3":"2026-08-17T12:31:12.143Z","0.6.4":"2026-08-17T21:21:47.112Z","0.6.5":"2026-08-23T22:21:08.110Z"},"bugs":{"url":"https://github.com/daeshawnballard/dexthemes/issues"},"license":"MIT","homepage":"https://github.com/daeshawnballard/dexthemes/tree/main/packages/deepseek-harness-plugin#readme","keywords":["deepseek","deepseek-harness","deepseek-harness-plugin","dexthemes","theme","cordis","developer-tools","color-theme"],"repository":{"type":"git","url":"git+https://github.com/daeshawnballard/dexthemes.git","directory":"packages/deepseek-harness-plugin"},"description":"Discover, preview, apply, restore, and revert themes in DeepSeek Harness","maintainers":[{"name":"daeshawn","email":"imdaeshawn@gmail.com"}],"readme":"# DexThemes for DeepSeek Harness\n\nInstalled DeepSeek Harness plugin for browsing, previewing, applying, and reverting paired palettes through Harness's public client-side theme service.\n\nVersion 0.6 includes a palette matched to DeepSeek Harness's published semantic defaults, twelve unofficial DeepSeek ecosystem color tributes, a privacy-bounded Statsig event sink, a supported Harness MCP connection for public DexThemes agent tools, and an optional GitHub-backed DexThemes account connection through the existing Convex backend. Tribute inclusion is based on linked public documentation for a DeepSeek integration, deployment, or inference path. The package does not bundle logos, fonts, or other company assets and does not claim partnership, authorization, or endorsement.\n\n## Release status\n\nThis source checkout prepares `0.6.5` locally. It is **unpublished**: there is no npm tarball, registry integrity, registry shasum, or loaded-Harness-runtime receipt for `0.6.5`. Do not install `@dexthemes/deepseek-harness-plugin@0.6.5` from npm until a future publication has its own registry and runtime evidence.\n\nThe historical `0.6.4` release remains published and separately evidenced; its receipt is not evidence for this local `0.6.5` preparation.\n\n## Install\n\nFrom the DeepSeek Harness checkout:\n\nFor the historically published release, install version `0.6.4` after confirming it is available from npm:\n\n```sh\npnpm dsh plugin --profile web add @dexthemes/deepseek-harness-plugin@0.6.4\npnpm dsh web\n```\n\nVersion `0.6.4` is published. Confirm the registry version and integrity before installation; source review, npm publication, and loaded-runtime behavior remain separate evidence gates. The local `0.6.5` preparation adds no registry or runtime claim. See the [changelog](CHANGELOG.md), the bounded [0.6.4 release receipt](../../docs/DEEPSEEK-HARNESS-064-RUNTIME-RECEIPT.md), and the local-only [0.6.5 preparation receipt](../../docs/DEEPSEEK-HARNESS-065-LOCAL-PREPARATION-RECEIPT.md).\n\nFor local development against a source checkout, use the source directory instead:\n\n```sh\npnpm dsh plugin --profile web add /absolute/path/to/dexthemes/packages/deepseek-harness-plugin\npnpm dsh web\n```\n\nThe package contributes a real Loader entry and a **DexThemes** tab under **Settings → Plugins**. It keeps Harness source read-only. Applying a theme calls `theme.overrideTokens(...)`; applying another theme replaces the same owned layer, and **Revert** disposes it.\n\n## Compatibility\n\nThe historical published `0.6.4` artifact targets DeepSeek Harness CLI `0.1.0-rc.5` at commit `47f943859bef60e4160492346772ded9b24f765a`. That exact registry package was exercised in the loaded Harness runtime for discovery, Apply/Revert, restart restoration, offline fallback, Device Flow, connected activity, Statsig delivery, and Creator-mode chat Apply/Stop. The local-only `0.6.5` preparation has build and pack-manifest evidence only. It requires the web profile's client Module Loader, `settings.plugins.tab`, `@deepseek-ai/dsh-client-runtime/client` with persisted `defineStore`, and the optional `theme.overrideTokens(source, pairedTokens)` service returning a disposer. No broader Harness semver range is claimed.\n\nDexThemes no longer hard-loads the theme provider. If a Harness build omits or changes that capability, **Settings → Plugins → DexThemes** remains visible, Preview and account controls remain usable, Apply is disabled, and a visible alert explains the boundary. **Forget saved theme** clears restoration intent without requiring the missing service.\n\n## Restart recovery\n\nApply stores only a schema version, bounded theme ID, whether the theme is account-only, and a reconnect-needed boolean through Harness's snapshot-store engine. It never stores palettes, prompts, workspace data, credentials, tokens, or account identifiers. On relaunch, a bundled/public theme restores after the validated catalog and supported theme service are available. An account-only theme waits visibly until the user reconnects DexThemes and the verified unlock catalog returns.\n\nThe one-hour `dxd_…` DexThemes session remains memory-only. After restart, **Reconnect DexThemes** starts a new GitHub Device Flow; authentication is not silently recovered from browser storage. **Revert** clears saved theme intent. **Disconnect** clears reconnect intent and asks Convex to revoke the current in-memory session.\n\n## Upgrade, verify, and remove\n\nAfter a version is published, pin that exact version to upgrade:\n\n```sh\npnpm dsh plugin --profile web add @dexthemes/deepseek-harness-plugin@<published-version>\npnpm dsh plugin --profile web why @dexthemes/deepseek-harness-plugin\npnpm dsh web\n```\n\nBefore removal, choose **Revert** (or **Forget saved theme**) and **Disconnect**. Then remove the package and its profile layer:\n\n```sh\npnpm dsh plugin --profile web remove @dexthemes/deepseek-harness-plugin\npnpm dsh web\n```\n\nIf the tab does not appear after add/upgrade, refresh the browser once and inspect the exact resolved package with `why`. If Apply is unavailable, use the visible capability alert; do not patch Harness source or add DOM selectors.\n\nAfter Harness starts, refresh its browser tab once so the new client package is included in the boot graph. Then:\n\n1. Open **Settings → Plugins → DexThemes**.\n2. Search or filter **DeepSeek**, **DexThemes**, and **Community** palettes. Codex-origin themes remain in the Codex channel and are not duplicated here.\n3. Choose **Preview**, then **Apply to DeepSeek**, or apply directly from a card.\n4. Apply another card to switch themes. Choose **Revert** to restore the Harness default.\n\nBrowsing, chat creation, preview, apply, and revert never require an account. To add creator stats, achievements, and unlocked reward palettes, choose **Connect DexThemes**, then **Copy code**, open the exact GitHub link, and paste the complete code. Convex requests that short-lived code from GitHub's official Device Flow, and the plugin sends the user only to `https://github.com/login/device`. The opaque device code remains in memory while Convex polls GitHub. GitHub's token is used only inside that Convex request to verify `/user`; it is never returned to Harness or stored by DexThemes. Convex instead returns a one-hour DexThemes session with separate `themes:read` and `harness:use` scopes. Its hash is stored server-side and its credential stays only in the running plugin closure. It is never placed in a prompt, URL, browser storage, analytics event, workspace, or Harness configuration. Disconnect persists locally only after Convex acknowledges revocation; a failed revoke keeps the session connected and retryable. Unload clears it locally without claiming a successful disconnect, with server expiry as the fallback.\n\nSuccessful Device Flow authorization creates explicit Connected Apps evidence and idempotently awards **Harnessed** with the paired **Deep Current** reward. That reward is based on the server-verified GitHub connection, not on a client claim. After Harness accepts a card or preview Apply, the plugin calls the separately scoped `/plugin/deepseek-harness/use` route with a random, replay-deduped receipt and bounded plugin version. The account panel shows recording, acknowledgement, or a bounded failure. A retry reuses the same in-memory receipt so a response lost after dispatch cannot double count activity. Connected Apps labels the resulting last-used time and count as client-reported activity; neither can grant an entitlement. No token, prompt, workspace, theme, or palette payload enters that record. The device flow uses the shared DexThemes-owned **DexThemes Connect** GitHub OAuth application for installed integrations, with **Enable Device Flow** turned on. It requests no GitHub OAuth scope, which GitHub defines as read-only public profile access. Convex verifies `/user`, revokes that exact GitHub token through the app's server-held secret, and only then issues the distinct `dxd_…` session. Normal website and publication routes do not recognize that credential family. Auth0, refresh tokens, and offline access are not part of the DeepSeek flow. The separate Codex/ChatGPT MCP OAuth 2.1 contract remains unchanged.\n\nThe package also loads Harness's shipped `@deepseek-ai/dsh-mcp-client` against the restricted `https://www.dexthemes.com/api/deepseek-mcp` surface. In any chat mode, ask for a theme by idea, ask **Color me lucky**, search the catalog, validate a draft, preview its paired palette data, or prepare a reversible DeepSeek apply Package. Choose Harness's shipped **Creator mode** when the chat should also call `cordis_define`, `cordis_run`, and `cordis_stop` to apply and revert that Package. Standard mode deliberately omits those self-modification tools. Only the selected tool name and arguments are sent; the connector does not attach the conversation, workspace, paths, or credentials. Disable or remove the DexThemes plugin to dispose both the theme UI and its tool connection.\n\nFor local protocol testing before that endpoint is deployed, run `npm run qa:deepseek-mcp` in the DexThemes checkout and start Harness with `DEXTHEMES_MCP_URL=http://127.0.0.1:3099/api/deepseek-mcp`. The production URL remains the default.\n\nThe bundled catalog works offline. It contains the DeepSeek default palette, twelve unofficial tribute palettes, and compatible shared DexThemes palettes. When available, the plugin merges the public DexThemes API response to include current community themes. Anonymous catalog input cannot introduce account-only reward palettes; only the verified bearer unlock response can add rewards to a connected user's session. Search runs locally. Analytics is limited to the bounded event, fixed platform/mechanism, source surface, theme ID when applicable, paired variant, plugin version, event-derived action/outcome, and bounded failure code; it disables local persistence and page-URL collection. No prompts, workspace contents, paths, palette payloads, credentials, account identity, or sensitive data are sent as analytics. Publishing and likes remain on the existing DexThemes surfaces; the installed package exposes read-only account stats, achievements, and rewards, while Convex grants Harnessed only during verified Device Flow completion.\n\n**Harness default** is native rather than a copied palette. Revert disposes the DexThemes override so Harness continues to own its light, dark, and system appearance as that product evolves.\n\nFonts are intentionally unsupported by this integration.\n\nThe npm package is the supported distribution path for published releases. The bundled catalog, preview, apply, and revert work without a DexThemes account. The hosted MCP endpoint, Statsig delivery, device-authorization routes, and achievement call require their production services and OAuth environment configuration. npm publication does not imply a separate Harness marketplace approval, and the standalone DexThemes website cannot apply into an unrelated Harness browser tab.\n\n## Analytics and privacy\n\nEach bounded lifecycle event includes the platform, source surface, plugin version, paired variant, action, outcome, and theme ID when applicable, plus a bounded failure code on failure. Harness version is included only when the host exposes an authoritative value; this plugin does not fabricate one. Prompts, workspace contents or paths, palettes, credentials, tokens, account identity, page URLs, and raw exceptions are excluded.\n\n## Release notes and support\n\n- [Changelog](CHANGELOG.md)\n- [GitHub releases](https://github.com/daeshawnballard/dexthemes/releases)\n- [DeepSeek Harness integration guide](https://github.com/daeshawnballard/dexthemes/blob/main/docs/DEEPSEEK-HARNESS.md)\n- [Open a support or bug issue](https://github.com/daeshawnballard/dexthemes/issues/new?template=bug_report.md)\n\nInclude the Harness CLI version, DexThemes plugin version, `web` profile, install source (npm version, tarball, or local path), whether the theme capability alert appeared, and non-sensitive reproduction steps. Never attach tokens, cookies, workspace content, prompts, or private account data.\n\n## Distribution boundary\n\nHarness's supported CLI accepts a package or Git spec through `dsh plugin --profile <profile> add <package-or-git-spec>`. DexThemes uses npm for published releases and a local source path for unreleased development. No dedicated Harness marketplace submission surface was found in the inspected checkout, so npm distribution is the published-release boundary rather than a claim of Harness marketplace approval.\n","readmeFilename":"README.md"}