{"_id":"dsh-free-search","_rev":"56-892234ae0076223f8de7f21eb4483618","name":"dsh-free-search","dist-tags":{"latest":"0.7.4"},"versions":{"0.2.0":{"name":"dsh-free-search","version":"0.2.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.2.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"cd4700fadaf452e7140cb219468b162a32af9a6f","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.2.0.tgz","fileCount":7,"integrity":"sha512-QttponLKjfwslmipiOUVTEmXmm5nFOSwhb8vo00KOFJMAuD6s0IEZSRuaIMOISKB4zhXnF1HwveHzjosMnVpcQ==","signatures":[{"sig":"MEYCIQC9oTWpaANN83odrvh2gzTXrsn5NOWiQOHZt0I/3r+aCgIhALtL9mHhszprJs91hT0gCNqlwYCneRe/YnQOMKKJ7bEo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63534},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"1caef1cf36ba55d2dd9d4fd619cd2e9d4187b517","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: DuckDuckGo/Bing (FREE) + Exa/Perplexity/DeepSeek (API key) engines, with web settings UI and engine test tool.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.2.0_1786825858395_0.26976144596839857","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"dsh-free-search","version":"0.3.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.3.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"93764c42330e4ebabbb51e9797b8beba68dc6078","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.3.0.tgz","fileCount":7,"integrity":"sha512-d7QZHfgnhGTz4OcsBJ4HzUz64aQZMrcvWDpeQVNLm0uhww5E4lmCBMbXDighOaOi66zNYS9eRU3o5QVqnmOheQ==","signatures":[{"sig":"MEUCIE0CHC4986WWcQvuqUfYAaC6ORKxNMlWR0amXmIY8nHKAiEAsiVp/zD1CH2FzwCzsccRkrXnibXSbDopX1+RKvbrlC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71497},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"624ffe0026abcb2e3daf09d24276e4e5aabf06f0","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 7 engines + platform search (GitHub/V2EX/Bilibili) + web_fetch, with web settings UI and engine test tool.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.3.0_1786826692671_0.9166013137000433","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"dsh-free-search","version":"0.4.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"52ce230331fa9cc3def98c714ce3341a06e0d2e7","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.0.tgz","fileCount":7,"integrity":"sha512-I33dfZ2A1Bjk9aRljO0AGIdBdfdtVF47FrmaZVoy5UuqK0LXCfjt+HKFrNj5OSV0kEnGI2SB9k90I+ILKgSS+g==","signatures":[{"sig":"MEYCIQCAyKOqv18fDeqFOkyMrSSV71kVBK1f9m+CwrBVAyzbKwIhALzcv/m38q6lP65/wbwuWS+qRCGS1TKp0CeL7pw8G3i6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76423},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"e22563d3cc3a3a4a08b8f59fd2c9ae857cacb155","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.0_1786829567544_0.5022490759898035","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"dsh-free-search","version":"0.4.1","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.1","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"08b5ab0dcfe0f5dd0976fc93e27f166f5d8d5612","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.1.tgz","fileCount":7,"integrity":"sha512-lHDmKzKOTSG+wLQK2+66XNs/lRss/yo4PAEMIT8TIi4lfqj112eEIico+Y/IeZ0IbdLnBNYVvg9VrTYE7cpFuQ==","signatures":[{"sig":"MEYCIQCWOAds67Gy4PGtE4ZDXDR/6/nagVViq2ZZONH1lW9TTAIhAPsFwhsFE4EVlSW+4aq3xAMZvXOy47nnTXnkpd40jfs4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77650},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"f017552912050424cd4f6846c1085c504e54cfee","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"deprecated":"Internal tool version - use 0.4.0 instead","repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.1_1786830437083_0.5569870833029624","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"dsh-free-search","version":"0.4.2","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.2","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"9a0877481585a62caff16de0b7f89dcee6982955","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.2.tgz","fileCount":7,"integrity":"sha512-97UzuTbjaM3vg68d1P7j7piswEVFtsNabR1IpyUH4WP80OZbT6iGUebLxUMkYK/VkAhQy0yRIHUEwHQZMFzXiQ==","signatures":[{"sig":"MEUCIE4qK3Rel+jXQRztZ28Pp3sN2dOLGk1G+KJ3icf21xMxAiEAjKQfi6n3/1saeoYRcJt7kQExQA3cwZB1ybsCQa+A3gQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77443},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"45f695481f1d8dcf3b39f6b2afaf2d7f9fa50ec7","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.2_1786832387310_0.8557046292758885","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"dsh-free-search","version":"0.4.3","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.3","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"0cafc821a25e49ce45bd651110346d0801274ba5","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.3.tgz","fileCount":7,"integrity":"sha512-lE8ERZR7P1oxvMpwS73U2pSPembQU4VFmvNnWR3GnJKIqA7O98XcuHMWGZlvu21bYdBn8iiLaWOdpwPh3eH2Jw==","signatures":[{"sig":"MEUCIQD/GClE7ZW4zFQXVx8BxHi4LK8s0ADz09vW/M+gwJCAcAIgCSIxLHg/0dW8bMxm7Yxwoua6299JcUl1TQ0S/DvjzQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78348},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"9734e293c00a748105ebf513bfe30db4d78c51af","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.3_1786960144457_0.9274977422197035","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"dsh-free-search","version":"0.4.4","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.4","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"f402b4c37e09a1dcdbbadb5f60c7a80e85c0742d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.4.tgz","fileCount":7,"integrity":"sha512-1ckV5kbJ6kQHaslgpHTOniQN2fLlEAPdpKG2zrp/KE++vcumakcb4AptcTniRQA/z3ovJhusCL8Zx0hk24lLRg==","signatures":[{"sig":"MEUCIAvfoCKqBCiJ3xNQIE8W0o/8DuvhSjHnia5fQ3Oy6qqjAiEAz7VNj2CfMrL/rOlCY5jfaHqImwpoThRGbhfR9Sc9Hd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83556},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"70348245716d672905fba6d40334bc5d2fb235e3","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.4_1786998859596_0.06684059883136051","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"dsh-free-search","version":"0.4.5","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.5","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"fa16e0f044e136ab43e1e13f676ec60a790661f0","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.5.tgz","fileCount":7,"integrity":"sha512-CyjEahyukE0o8FNU0UD+HBuZzDiAFN8e5xHUqh13aX2AYHDD8/6SyndEef5amn0Q1jxrkllSdC0vlCl+omk7fg==","signatures":[{"sig":"MEYCIQDaNJCzuPXK6dwIyD4Bf3VPj5YfQ6TxFosFakj68oPdtAIhAOQjTjechVbnl/kIkgnlfBhV09xX/+vgX4MYo4nZtr3p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88709},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"274266442c2338e48fd53df1ca7269bb1c7d2462","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.6","@deepseek-ai/dsh-settings":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.5_1787001121567_0.3057970774059937","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"dsh-free-search","version":"0.4.6","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","exa","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.6","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"763a9adf645c1d287daf27419f48413a7edb2e80","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.6.tgz","fileCount":7,"integrity":"sha512-6jZVuVdq5JaJbYUBI5XAjcKn9Lumh1yathjUIwmRJLprF0YPpyOMHQM8oEgN7WSh1QXYG8/INN+dW84HyEbJtw==","signatures":[{"sig":"MEUCIQC8Pb5dfqy9PyvKpTSouFddM7SR6z+R6KDAzOtpjq+mgwIgFYaasUM99fTqOX8GYy7xmi2ZrgpVcE+5Z7xV8XZkb94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90754},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"7c093e6d59b8ffc43ee02f7021697aeddf75c837","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 8 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa keyless) + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.6_1787038281382_0.7796127373019268","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"dsh-free-search","version":"0.4.7","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.7","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"727e880b25a4e15e772186bd0736e3df919794df","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.7.tgz","fileCount":6,"integrity":"sha512-IWdGPnRu2zjZ6qPKjLBnX4TRyQlXlhoZQemudVd+Xcw7KdXBu/9z6zJBLd5D2PLAjZLtsMe0EKB19QHCs0TOAw==","signatures":[{"sig":"MEUCIH2+T2ZLc77Jm8epOXqs2/05sq0R9c59tuDEQrndiNeUAiEAprw8KTswsGjLj1GXww6i+WR/NIY9kUjGCTq+45ptJUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126931},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"524f5ad13b8576237268849cf2e721e244b3d850","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.7_1787076214265_0.8886949498778347","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"dsh-free-search","version":"0.4.8","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.8","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"e52e73371beb367d867495c9073d2424f88934fa","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.8.tgz","fileCount":6,"integrity":"sha512-XUHVdSp3hF7I+23S7DR89KGAfPQ7Pzt6D3Ph4giAyzeMuBKT91OLfQI3y9EufcXSxpqXSr6yFIydDicZowJypw==","signatures":[{"sig":"MEUCIQDwVaovWMPb2nEW8D0lAZ3FaXYj2SNfum943WyPEfpUfQIgJ0wyUKQbV+0aNmF1uCqvXlpBjKHuPa9FgSZy/bOIqGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138931},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"6a1320b374762b41740e970fe9f1648931dd9e3a","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.8_1787146742994_0.7160163090669891","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"dsh-free-search","version":"0.4.9","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.9","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"7c1b8e85207a622d30a04ee064ac32b5f3b7132c","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.9.tgz","fileCount":6,"integrity":"sha512-ZJZ4cjnCysLEsZfz/TTXdSMeuorpZLpttC1zDGrrBiI2JlQWF/cMuUxbdXPGckhtVSWFCxvfMXrl8pwJ0zABWQ==","signatures":[{"sig":"MEUCIGrUotadk++rBBFANCLKKa469nFmD+dxbPfmOF3Evm4+AiEAkgGazw5i8O/13tffMT7kfFF1KObAPs0SHZV9AZEm1Ik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148634},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"9fde89252475898020712c771d8547a729a48a02","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.9_1787167736433_0.684589160724113","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"dsh-free-search","version":"0.4.10","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.10","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"db4dcd2900491f509ac81544e92648ac92d77b5d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.10.tgz","fileCount":6,"integrity":"sha512-blnbBzPyaXKE/FHpYzivEhFakD7jMt9ua8o0rB7LDKK0TrcHizJRLKcvSpoKL5AKzVEoFfnltV0UF/q41D1GDA==","signatures":[{"sig":"MEYCIQDJ1Drt3w/0yy+4YWyeX2/4+5paS/bZdQY6aW4LK8ToLgIhALzdBKJ385Wkz2H63I72ce/vnMlUhwSm93yARyd/xvgR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151212},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"957b993a579f92cef05a0d9b5c98121308bacf0e","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.10_1787172852439_0.3650452919002656","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"dsh-free-search","version":"0.4.11","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.11","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"b34e794511823425309e51c4872eaebe53025ed2","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.11.tgz","fileCount":6,"integrity":"sha512-4hHSPbSu9MdTtiUGsUjliLUEIiOgvovT2rbB7bLTVVcg8zKrnkyx7GoIj6r7M34XMlgOMRwP5WLkHHWCcqi53A==","signatures":[{"sig":"MEYCIQD//0uyJGhaKDPYRH0PwZJFD048tO0b3x2T0hQfOF408wIhAOLiOCjqLSJWXxG66fOFx/8HLTHBbQuVp1CJ3WcjXwXL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157027},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"dc88da137813fb55b22918f77c94561b6f1acefa","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.11_1787229309123_0.6132088069279003","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"dsh-free-search","version":"0.4.12","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.12","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"c86f02bec2a365538a49d3351bcc611e77b4b260","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.12.tgz","fileCount":6,"integrity":"sha512-HL/eBv/dRAa2ogj46Cy3uQxZxrC5GfZVkXP8EmxbB+254Yd4tbWXUqlCBwXhoA8ZwpcGBjDTVXuGxSF4ThcOng==","signatures":[{"sig":"MEYCIQCIAOb3xPzYhD+l8my4rPFYsxpdi5odeEntUQWT0RirLgIhAOFm7+qsO4+rRxuoYCJQs3v07MBM+Kv2RcJkSMVWPqmS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163887},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"998fcebbebb7f08a972d3a9efb53a56cd6e1bcf5","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.12_1787335572861_0.41580893606349156","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"dsh-free-search","version":"0.4.13","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.13","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"f141dcd52b8675a66a5f8e9d13183a589e22ae7d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.13.tgz","fileCount":6,"integrity":"sha512-mUia6JxmUIpHqz1cYfDASAFxR8LtizFf7y7opOo9wmlkGTPxzsBeRfsVyNVhJzKr1ZN1zE5DwdqMBy5H8e7Qzw==","signatures":[{"sig":"MEYCIQDy45WF0scHXGRNDSLTUdt3PbLzDtv9f+eD8v32eTdO2gIhAPmpw/daf/m/n8QVYe+g1+JExZBZsNHQwqS3el7e1OWX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164749},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"8f8f85e2ef2e5e31a2c964ef3bea4823bf4ddcc4","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.13_1787818981662_0.9811830538505839","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"dsh-free-search","version":"0.4.14","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.14","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"20c9c802d60cd8254396ab257fb1b6a832b694f9","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.14.tgz","fileCount":6,"integrity":"sha512-VWV6QAHh4v5xc7MvUpP1agsEZA8aHrv4svlYtJ5TDHR/ky66olIbOauozm7VO0bDpRpwYSiMgRrzl/Iko5FBPw==","signatures":[{"sig":"MEQCIHae0kwCQ1LRQhM5sIEaWzA98IqLgYaBsdxTOGN7msHQAiB2gWbFLXRNBQKrwiU2Pv8gx6u/zZ7g2ArN2I5EiyDo3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175987},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"d7f2122553cae669cb94dd57c486d8f8ad63756f","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.14_1787839116439_0.3159767488535974","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"dsh-free-search","version":"0.4.15","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.15","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"5ec31ed16575044562c90731ee8a95092566463a","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.15.tgz","fileCount":6,"integrity":"sha512-iW2rYXjPy1hgDfNtEWd3G7q4xdu6W791H+TvIb9s7fs+HUg8e4YZP6zPHWe1Gjian54Sg9UuUT5YM/A2eU1ZvQ==","signatures":[{"sig":"MEYCIQCNePVi3f5543D0dKmhm7ao8q/j/1+g7funf93kzR2lgwIhAOrN5UddAsJjDcyR2SDQud60lW2m0r4bu2WWKgJFKxkc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176111},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"dbb77a5b5de65a89e7bd2ec24af55132db4bea8f","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.15_1787845108128_0.028553399599400953","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"dsh-free-search","version":"0.4.16","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.16","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"29b1430b4127b0ed14fc9c8fea65f63444656972","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.16.tgz","fileCount":6,"integrity":"sha512-fCMvD0nuFSoRB+/J+1kFS5BZc3wp8l4Xanaf94Hv88wU/wqxMmNoY/bRMZse6AESXDiP0ygNWdV92oXh5p/4YQ==","signatures":[{"sig":"MEUCIQDCiBrsAMXfxj8JJRlz28mdh7+13sO6p6dpkTa/JHi5cQIgCvVTbs4m2QcK+TtHXpuyc1tU7R8RdOU4DBxvtH3Igy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176111},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"8963e011eeb69d82f152b0fa8bde4f388a2518da","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.16_1787937491065_0.8028001976764352","host":"s3://npm-registry-packages-npm-production"}},"0.4.17":{"name":"dsh-free-search","version":"0.4.17","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.17","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"bbd0ca13ffe822a716b0a7c940b3afb9b5f7f09c","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.17.tgz","fileCount":6,"integrity":"sha512-lmlg3vyvUKlR/enBEkHQNFko4dbEozfHvR/1wOlUGM1Mk6SCCchCk2F4A0k0WlupRdHk/DTuNRn94yb5MWOUbQ==","signatures":[{"sig":"MEUCIQDKbA2SHrDEpidfhMKf/GW/1Rag6QVtTlM8f8xncXyKKQIgCP/VWup+aFk1klOXEUOz0n02mGTy26bVquxY7QJeuk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176340},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"e446559c3bf768ae71ada446850004d8e6644f72","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.17_1787943384297_0.019684554260982257","host":"s3://npm-registry-packages-npm-production"}},"0.4.18":{"name":"dsh-free-search","version":"0.4.18","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.18","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"d8b89d60cfe98e2e988ae5d847de041846930962","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.18.tgz","fileCount":6,"integrity":"sha512-PiiWXQjqG2c81D//CT364rysIMNmhRvTv7aqr9sza5BRqEZce8mGFeiv4duQg1P7UwDGR0pyl0oo+NIZumLhrQ==","signatures":[{"sig":"MEUCIFEfXfLWkeG6DBxG2lQDs6KpvGAMSbaKmmoNnD+LXNBgAiEAjgTnTIGY4kvlLzbc+J1S3aeuoOoqglItJ9JbgpvU+uE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179168},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"36c6446211cd2a759cf59de87a1ba6a893c34ebd","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.18_1788186466508_0.827463832117656","host":"s3://npm-registry-packages-npm-production"}},"0.4.19":{"name":"dsh-free-search","version":"0.4.19","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.19","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"afdf935ccf4a8a67343e1c6d75000cd1d878eee4","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.19.tgz","fileCount":6,"integrity":"sha512-PyJtTgbvzXsziEFVx8nzZqbrc3X2WXdoWJge7dfxHRAHNaeOxXzj4QCDeD23qHldML35nbcL2Gf2e4qgUabfeA==","signatures":[{"sig":"MEUCIERbKANs65609n8e9iCToCkpp2SgSSKh3MO5I+YlkrhjAiEAklAIWwmoS0kDqVkklD+xOlztSocMnvmMPxsDTER2H/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179176},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"da98f01fb3917d69065462e3ad9270784fdacfe0","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.19_1788189189511_0.4683308141236635","host":"s3://npm-registry-packages-npm-production"}},"0.4.20":{"name":"dsh-free-search","version":"0.4.20","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.20","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"0e6b5e6389fd4d3358a3b8d0971903dcfd7388f6","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.20.tgz","fileCount":6,"integrity":"sha512-INVrpqyUmdn+PinvxsZXLKyj+XYgD9p1WYIpu/kBLzlOPFzh8agk3wnHsvouVsNgARxRW45GEJ4Q4vc/BKfgMQ==","signatures":[{"sig":"MEUCICgj6ZLZPwoo/E++aRwWGDvTM1XkUKJXvPCgl1jWYAmuAiEAw6RlJ4RBMMFYSFcHSuPd87cniPXIUfc+luKgd8DmYhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183308},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"2de5f5702693e44ddc9ed96767c48000ff5acfa0","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.20_1788190241424_0.8237822658939531","host":"s3://npm-registry-packages-npm-production"}},"0.4.21":{"name":"dsh-free-search","version":"0.4.21","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.21","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"a4dfb8f29735d574f5597b8fdb96c5dc2844de1c","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.21.tgz","fileCount":6,"integrity":"sha512-gLkwmDB/zGJ6hQWaZgtTXcufm98NHVcDKIVoDc1Z9K5I82ejVPzPvnwzRjO8PKOa5IqsEr4DIhcw2VdojD0CLg==","signatures":[{"sig":"MEYCIQCPy0u/p7B0HL357mJxayr2x59g2B7UrQyLv7ucSsuDnAIhANOS24ZrnWDPjWiC0ONQkOBP5RMFOn+zQNv/gXPpsGCC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179177},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"14eacf2b9b5158f54152928247999f0decc314d1","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.21_1788193190102_0.8983154147500532","host":"s3://npm-registry-packages-npm-production"}},"0.4.22":{"name":"dsh-free-search","version":"0.4.22","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.22","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"a75a6f5a79f19c34ff7399a86a702aa64a6e58e7","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.22.tgz","fileCount":6,"integrity":"sha512-tal3/+XXS1Pn4cpvg/7x/EO5iGbxofHg+5lvK+S6tkL/rFfz/Vu/fDrTtT8pqKRxnZg/uRlB0byOQlz8zN3iFg==","signatures":[{"sig":"MEUCIQCvHYyj7OWzBqWcHpPk6nbtxBEP1V9BXO+1bsTWuSkGVwIgC96byNyqpgDDzNd5015vDjXmL0Hv8uu+sP1w2MDKUf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178090},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"eafa38207fa482e65f4a7e9ae0fc69242981be48","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.22_1788194560817_0.053235687293501366","host":"s3://npm-registry-packages-npm-production"}},"0.4.23":{"name":"dsh-free-search","version":"0.4.23","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.23","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"bd08a3c13a62a4693f9eb90ca6f083a4ee9ed37e","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.23.tgz","fileCount":6,"integrity":"sha512-N1Q1H8IS0AEtNVJOEfaAjqGMkpeq021Ly374uwZU8sal1r9vOUV5VMOHlAZKyWcf7XHU6c/dBztqODO3WGQpfw==","signatures":[{"sig":"MEQCIH7Qgpbg5ZmC0QsMsXmCU+0ga+t4rQ6jX27T3GIh/F3lAiBQxwLOoUDOlGhCT1qKMxyTWxhkIM8gXbwAz/mHhu9d9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185997},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"6af91b521ff523628fe1b44c372d654e8e12fcbf","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.23_1788437082903_0.41717380421915506","host":"s3://npm-registry-packages-npm-production"}},"0.4.24":{"name":"dsh-free-search","version":"0.4.24","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.24","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"}},"dist":{"shasum":"533626bee9fb837e71ae56e5dadb448e656519f8","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.24.tgz","fileCount":6,"integrity":"sha512-LcFPNf9F3kjutaNjE7j9Dw7yGi2p0bzZ7p9vbp/yWpoeWPFBPwIikV6nka8gfM2YTH7lsQKA/KIpVWMJ5jV08w==","signatures":[{"sig":"MEUCIQDwKA1y9AyvJkSwo+LFfnG5igzWTYq5P3jPVzvOeMBF0QIgbJjhCOooDX0GQc4fIY/qmjXPTMm6GoHxkAMPtMm3rvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187125},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"be190fa6e915116c4575ac7a0b02577f1ca3b7e7","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":">=0.1.0-rc.6","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.24_1788439168642_0.7596262266284541","host":"s3://npm-registry-packages-npm-production"}},"0.4.25":{"name":"dsh-free-search","version":"0.4.25","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.25","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"4356df6e751e929f11ba51fa847a722c71c5f5d1","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.25.tgz","fileCount":6,"integrity":"sha512-2jla6e3bA/jDaHYpY5hKcppLzIkzF9iHQStDtlqoWU+jBHb1iw+xO4XV6993YCrwDpuZdCZI3TDGCdLlCfnXSw==","signatures":[{"sig":"MEYCIQCwTZekIbLQyQrc5mIDHJk6tVXQo5u8fdduhtvuzsddSQIhAN2bPbxj84cmPX3NjBlwAvEVNyoFV4a3CihQPQP1IdAZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185128},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 10 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable keyless) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.25_1789303015394_0.8800242969091248","host":"s3://npm-registry-packages-npm-production"}},"0.4.26":{"name":"dsh-free-search","version":"0.4.26","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.26","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"b1c495fedfd7ec37e834bfb8a2cbadd5206ffdde","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.26.tgz","fileCount":6,"integrity":"sha512-phyJAFnIbtNIx3uNxeOQxZGoyCmFOaBpjLmsIFqSnrW85ranA7qFjMbhU16CUudZBQkcHpHTAofLePFucYSXNA==","signatures":[{"sig":"MEUCID3wGwAmo/yk3OfvQojl1Z3mtdJcSPeNEStoKUUc4JMnAiEAtIasHgqCrZhB7PVz9+7E2QggtFmlRjD5HDXCD0RjmBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197079},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 12 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.26_1789304107177_0.5103779476396202","host":"s3://npm-registry-packages-npm-production"}},"0.4.27":{"name":"dsh-free-search","version":"0.4.27","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.27","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"247ea2c6fb93458889e160a9ba9e1542390ac10e","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.27.tgz","fileCount":6,"integrity":"sha512-dpxiioFtNeCGaw739Fr5WjZHaXWjCMVOnAsozFEyklvkzCbCvI8SeX1pTVfn6hIIZ9+bbEK075ykvJTYObzaSg==","signatures":[{"sig":"MEYCIQCiJOuhezxFK/w6GUCymUJjjO5FFQwcjQRqDrdBO//bFgIhAN1aIbl/Rfbt0ZoNixbHsO/Aa7Nro0uvt7DjiVdPNTZf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200584},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 12 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.27_1789310365436_0.9754033238283559","host":"s3://npm-registry-packages-npm-production"}},"0.4.28":{"name":"dsh-free-search","version":"0.4.28","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.28","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"70ee13815f851dae12c26e2136bc346bf9b5f141","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.28.tgz","fileCount":6,"integrity":"sha512-USN/rV/Yf1LjrHWFMn8RT6MBuugu5sYCjbG+MKgg6jd4FCqDmi47V4SnD+8fjJ43XZHXc0D5b+QejL2hj3WhWQ==","signatures":[{"sig":"MEQCIAX4k0rzls6VvPZ4GX11q1KEkZGR6HQCFsRmIXJKsa3XAiBbUzHuWE7kMzSS3qYuMTaKCIAY2wUBn/1CrHk1flnIEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199784},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 12 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.28_1789310954182_0.3293265933789935","host":"s3://npm-registry-packages-npm-production"}},"0.4.29":{"name":"dsh-free-search","version":"0.4.29","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.29","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"e1197e75d1cf071d63edd60828f8a4b623f1d901","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.29.tgz","fileCount":6,"integrity":"sha512-9Ym7oCuR634T0ove0lx9QwO+m4OdYLE4NlnxbMgM22/Kyv6nTQmrWxzOgwObi/qMnfOC9JIg+V62oqehwFD47A==","signatures":[{"sig":"MEUCID1txjLw3S/GL7WEobq6I/fvKsnNNhk6iyfjIn53vcxaAiEAkK3D1qK/7g618WP6ID0phj7oNetfnNIQTDAWtYS4ZYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICQKtBKPDoKKrH4tCC97Cwst07Vyxp5kSrAfl6bXR83IAiEA0tA1TeR4BIC4FBiGNz8jjrBVOF1lMtNLZ7Uo64gi2XI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205503},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.29_1789658371241_0.6665931292506377","host":"s3://npm-registry-packages-npm-production"}},"0.4.30":{"name":"dsh-free-search","version":"0.4.30","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.30","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"0f26d32b2a40b0b5acb0ac27d644429ed2e0f455","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.30.tgz","fileCount":6,"integrity":"sha512-Hgx6qMNRcN9UrPBln+NE4aXE7lKF6GwcLJ4arlRQjijkMrq6TIi0t03KEBUfNkojFmE6kvzOShBOkc1nzB5BMw==","signatures":[{"sig":"MEQCIEKlbMR7iSA2BwhyLqmi6fcijI5OivBSA6BBQodn1E9TAiBd6AzBUS/POPNleeqK3aNwKux+HYNLVUp9fcXqUEIq3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICDNr9jMA4F8zuxjnyP/36rXK+4s5vvGdwhbpjGAGCqnAiEA0cRTteiFqVFcWKhNEdRndE4hvuJ5rK7orXN5HQunx9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208007},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.30_1789661629228_0.7029305718496384","host":"s3://npm-registry-packages-npm-production"}},"0.4.31":{"name":"dsh-free-search","version":"0.4.31","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.31","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"0051c54aab8801ce259c848d6e94b22951f7d1e4","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.31.tgz","fileCount":6,"integrity":"sha512-uQTfmLHw1KiVsLq+CkxL19Hd672QTFV/sy1Ty8pk32J71Buom7FJ4V3C+Lwbtl06XSqzrphx3ybTRrDOenE3mA==","signatures":[{"sig":"MEUCIQDtlOSCmwybTvJUIdxmHt/pCj/PMv9iKC+VkcGW/MWBxQIgKVeT75m1ge8ttWkt1LDqOhagrYXBfzeDR3B1HQnQDo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGWR1FXPh1kdK0Y8r95W/x1tr+ICGaq+ejcg0qtHWUNRAiEA3ZRBHH9F+NvYsiwGpU2991UZVya7PVp+JddQmqmRgP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208007},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.31_1789662057446_0.006641003097750842","host":"s3://npm-registry-packages-npm-production"}},"0.4.32":{"name":"dsh-free-search","version":"0.4.32","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.32","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"8a62821395951978d9d5ef8d4319cd424326f25c","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.32.tgz","fileCount":6,"integrity":"sha512-QZEEHk/WE+6JYkS2pWDGWEOvqKGI6DjGTXqxR7F0UV2Ah0BnKqnfZvKJHg2uvEZGyL9od3Ia0+B1tRJ1wTuUZw==","signatures":[{"sig":"MEQCIG0sIwZGNYNUXLieASbVwD8YB1bKdmq2V2A0sy4dNUYNAiAbfi92xAWLsaOUhb7JFJ574o0W1HapKD828LZlSPFn0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBSHHoMO4XbRHE0+BjGfZRTotDCIY15BOnaOUt3S0KCsAiEA1XqcBDfZXDR8m12pk3oR0i9SpG1EQpj1Ir6JcYbLxcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212015},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.32_1789664518470_0.15304193822450318","host":"s3://npm-registry-packages-npm-production"}},"0.4.33":{"name":"dsh-free-search","version":"0.4.33","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.33","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"ea630da359adedc0b4a4696767a5d8c711cfc591","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.33.tgz","fileCount":6,"integrity":"sha512-xclSNtTIKUa76KO7FaH21UvEmhkgL92Uz4Jy2bh0KAztsVh2NKQXq8f5jTYasHlYCUtRrVdrtSmdE/rpvoyzig==","signatures":[{"sig":"MEYCIQDmT2uNnrAXUXDMjoDGyyzZGcdlBc76JYTNRlZXMQfUQAIhALNf7gKYi0AjjSBhSuUvV9G1Jn7SqMXzWEmJd63ky0dN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEkX46RoflyERMdlexHO+ZdVXlrj32QlTlwKO+iY5deKAiEAs88N8TJ4haI5NCmbhCxHglAExydsF3wYAhRKGI3Swy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214694},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.33_1790012189672_0.5272282099410037","host":"s3://npm-registry-packages-npm-production"}},"0.4.34":{"name":"dsh-free-search","version":"0.4.34","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.34","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"65f260335f2d62b6d947360d17852059125e9c2d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.34.tgz","fileCount":6,"integrity":"sha512-taSDDU2j1umB9Ov9jYeHWnxHg9kH1A7DiuavDkzVWisrDRk9/pZsiTON+xSJn7pUPoEpUxJ9Of6hvoACAxYwmg==","signatures":[{"sig":"MEUCIDEo6p+i60Smlo60MYHsB2I8Qk6ynggSRAhCTAiFse42AiEAz2JIB2RN8aNK4ePDUqeZ1MDf+TZ3UdLVFCdFYgvF9mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCuHqs6e2eO/1CffAjPNT0R/fhpICWU5GTSwMZQFqhYQAIgXkeTVncoXS1ggESUm4qh/cqHfjmBK0nlgDKArlrNTYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214694},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.34_1790015213486_0.073758032823801","host":"s3://npm-registry-packages-npm-production"}},"0.4.35":{"name":"dsh-free-search","version":"0.4.35","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.35","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"e1e33f5505dad558a3c594c98975690d43021b4b","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.35.tgz","fileCount":6,"integrity":"sha512-thUifDkTdQvzeOw3V0WadEfAXFEy1l4v/qRmGurIXfjCcmt2wq8siqG8H/rtz+d6MuhNvXFulZgyYi4LTQ6ZWA==","signatures":[{"sig":"MEUCIQDzzOClZKbtD2wbR3nlkS2Dqoo+xi0AuceCcbqwR6yueAIgRknfFCg/J+MajOoaX14J3PR8+LVy6n1LijBoOd7RTUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDmZgLwNyrgShgFUGJNbee2lAY1d+Cmi3gam8M2nrWTjQIgaDqBLjkc17RJiPMS6/e3FG4fdsPwIOx9o3zIkL5kPzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216140},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.35_1790016228636_0.7667485622929968","host":"s3://npm-registry-packages-npm-production"}},"0.4.36":{"name":"dsh-free-search","version":"0.4.36","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.36","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"},"engines":{"dsh":">=0.1.1-rc.1"},"compatibility":{"dshReleases":{"rc.7":"unknown","rc.8":"unknown","0.1.1-rc.1":"compatible","0.1.1-rc.2":"compatible","0.1.2-rc.1":"compatible","0.1.5-rc.1":"compatible","0.1.5-rc.2":"compatible","0.1.2-alpha.1":"unknown","0.1.2-alpha.2":"compatible","0.1.2-alpha.3":"compatible","0.1.2-alpha.4":"compatible","0.1.2-alpha.5":"unknown"}}},"dist":{"shasum":"4011eec08e5de33a5489ebe325ad39925aedf6ea","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.36.tgz","fileCount":6,"integrity":"sha512-4S4aJ7TBYuBVb1vrIbbVT/gzKZBq4zTWWmTRR5ooQ6pyGH5bU5Ugty4SD3oBlaKZ/9FJHISeT0vCKNEi8pe84g==","signatures":[{"sig":"MEYCIQDJ+KXBTDAqNJpZZEfJ5xQPAFy/h/P9EoUpwWbHaLRWxAIhAJJiQAQWyPni2KJF7tGBWflms58SxIrSJhGCyJj0gOJn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID0Asl3w7nRkKRwrogtc2z8mTz5ZwQptcFdLFNgC2dn9AiAJsCPpPnrPey9P9fHYhQgh/i7zgUFGwtbvNqR9XlKwqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216122},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-settings":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/dsh-tools":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1","@deepseek-ai/dsh-settings":"^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-alpha.2 || ^0.1.3-alpha.2 || ^0.1.5-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.36_1790162550090_0.6593782982729925","host":"s3://npm-registry-packages-npm-production"}},"0.4.37":{"name":"dsh-free-search","version":"0.4.37","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.37","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"e1806c10f881384e4b8fc69c8809c6c99298dd28","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.37.tgz","fileCount":6,"integrity":"sha512-Am3L+8O4JZr2vbE0xZQd7lUgs9KQYrgYzfn0uLNQTO3XhkadFDmRstZ2lP1UFPyRP+Hvo+RNzXPpfSdoLRrsMg==","signatures":[{"sig":"MEUCIQDwyp//KCf1dZd8wn6TqfRVdlvScMU+3XPkSZivi34EpAIgQxBUkkz2El9Mi35KnnWGuXvTX5lY4awOpUTViQQQ6LA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEYI/tCYpgc2eTp0nzqzLWaId5v60LYJi1zn0kY2eHyCAiBhEaHGmR1+V1GPOgdiMfYK2DbOIx0jiscWkUtEfBGxMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217674},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"b6c503b832166eb0e303f619ee1cd5c8f182c349","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.37_1790241500804_0.515531127340862","host":"s3://npm-registry-packages-npm-production"}},"0.4.38":{"name":"dsh-free-search","version":"0.4.38","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.38","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"1e478409c5402a0ed6f7cc07fc8b4589fef807c9","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.38.tgz","fileCount":6,"integrity":"sha512-8SJUdUt8UJcUoO03HBpch6+jKZ5fqoQR85S3vaog9icu84Ep3K4la91AJhUI2xAkX38Av3rDdF9hShXfPkwP+Q==","signatures":[{"sig":"MEYCIQDbkuMaidpOn8gWBEtfwPxUZpqEQ5D19+rtwGZU1l1XFQIhAK2U807rQKfhfOeyN9Z6Pj7X8GggVdqj7qWQxe9agAOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIALOkSDNn/jjV7x2eR2MxOV12o4g8Yrl3nTUPWn3+gfvAiEAyzmyruGMR3TLLmzQ/Q/7//Kn3STp6YFgyvZqwHuFV1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219635},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"1c62cd9dd50565fb24e27d6d9fa2cd7154105dc4","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.38_1790260485218_0.5279574478289244","host":"s3://npm-registry-packages-npm-production"}},"0.4.39":{"name":"dsh-free-search","version":"0.4.39","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free"],"license":"MIT","_id":"dsh-free-search@0.4.39","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"53b0e9e2455612cc1aabc879c09215a642fc1310","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.4.39.tgz","fileCount":6,"integrity":"sha512-Kc0lMgw6yXHTi19S5cr2C5/uLI/QCiMvQZKfOUEQstd+LzeEoMuoUfo1Re9Iz3Pq7YlndpHQFjtKRFr/x+L4cw==","signatures":[{"sig":"MEUCIQDQHDXSnF4J7BJbi4k5p04HhxLl0GfitKx1w1RWdEGmhAIgVxm1Q32ucYP7/XwRuTD62Gha/RjuLowYEoADfDKNOXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCn7GpCwoMVkEEDGoS1Xo9e/3gZdSA4UjhHyc1Xt3j99QIgIRTMy9IWX3WXHI+vERq1T+nj1W+/TOqSXYjAgskqO9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223046},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"f24c68a2f9c3056ef1b43bc24bb9e2bacb002c34","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek with key) + optional AnySearch key for higher quota + time filtering + platform search + web_f","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.4.39_1790265648933_0.6506596379456373","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"dsh-free-search","version":"0.5.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing"],"license":"MIT","_id":"dsh-free-search@0.5.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"e702bca5db80fe9066bc7c96da207162998fcd8a","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.5.0.tgz","fileCount":6,"integrity":"sha512-dRxttXNCmIVwuYBKrRMUyFGz98nvE+/WnTE9aX8Uu8GNkp0WL43V+u7FPVf4SFkrMrklpWNJ95WHc1yxk+Ot6A==","signatures":[{"sig":"MEUCIHrIt/5xX+hpe1BORTI7SlCXRLCLkHyFdKF+dueAmFnIAiEA3Z3pMR8Jw7FKEffmpB4xVDDOyITSxn2X2d518fzyqc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC5itI+3RmyCOKFaYLR657nr1QtGNuZIafSYOaNiR89/QIhANvla9EZZ9r+2wdDpAGr9YG7fBr2qevaXoM6kMA31Jjp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264303},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"bdf0f24e9e72eaf2ff7aea415db7f0066eceeef8","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 17 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun with key) + auto smart routing + multi_search cross-source tool + ti","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.5.0_1790586322269_0.8226420597728299","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"dsh-free-search","version":"0.5.5","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing"],"license":"MIT","_id":"dsh-free-search@0.5.5","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"2cc82100cea3ce04dda32e59b6362f284696618d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.5.5.tgz","fileCount":6,"integrity":"sha512-wfypHVD/P1+gOlJ7n/CYEtQwTH1A3gdF2jegpvXgFReA0cN4vJtwaYY6ClFTt5zF3Ij6PVGpZeWoSpbreMVv6w==","signatures":[{"sig":"MEYCIQC6Sq1tN3Azlh8h/zAdumGM7yI9bqj69HHLrQ/dD7muwAIhAIRvY5PakVNcfEHXLo1KGB5gCVWsf2fgcrhdsk3X6YsI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHdyY59TGjdpNi5xw+lNB9XaoIUgHUdtx50xdac0Qt8/AiEArUCoMuz0crYPcoJnPveUCic0wiDKdB5qyz0qdC5igac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264378},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"f05365982fdc49e8f1302a60a2a89a8924f46717","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 17 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun with key) + auto smart routing + multi_search cross-source tool + ti","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.5.5_1790625134211_0.9631695344655808","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"dsh-free-search","version":"0.5.6","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing"],"license":"MIT","_id":"dsh-free-search@0.5.6","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"1605978cfce897c99246932e6c5554faf3ce1791","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.5.6.tgz","fileCount":6,"integrity":"sha512-3cjJnu735+AnJqdvy4qdiH3mI/yPdcrJOmYWPnSeY/yZFThRWPJ7exwItLkapPxwX+H54DBU+OSkhsuhwm5uLA==","signatures":[{"sig":"MEYCIQCbrIc/vemoMpGT9mYXmGoehLuF86rM7t4MVzegh0U1WwIhAJtHiDkQgjJrkYUF5ZjRjybF6MW6CEraaG/oXhpAdvdD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAvwKLpn3kK15UvkF/DIAH7ex0qmoncFoX2PMzeo5FoOAiBk7fL5j5l+wQxZx+qyuQaQalBhdHouG1GG7bqABNbU3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270563},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"5874abeb7bcbe91e934213ff9e3cf713d86e6948","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 17 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun with key) + auto smart routing + multi_search cross-source tool + ti","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.5.6_1790627400218_0.30178680037048133","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"dsh-free-search","version":"0.6.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.6.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"717f2e7968d317debe29cb99fb1fb9f98bc01c29","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.6.0.tgz","fileCount":6,"integrity":"sha512-pAxhN4mVr2UpADCS/qQiJpVOco7aPD0640mYaIh2QatIrryMcsLvSds0dpimpqr+0+qYcQ9F8+BInkAVV3t5ow==","signatures":[{"sig":"MEUCIQCo+xWAtvlIMqgaMz3GjfKfO0wDmnEghL5ckqtfcJrJBwIgZBak2QP06VdcypWAwkLuQTNyIT5lTPKgIhxNodAFOns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDZWSTm5jBbsBS2Ren8BNFaKaVfm6wxViL4Jrl2ZwNl7AiEAlsDniPgMyxEvZGjcOy9m0YI2tqTdgXnBNep7DRqhNOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278505},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"c92489ca481ca58062258d5c3d54200904ced478","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 18 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key) + auto smart routing + multi_search cross-source to","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.6.0_1790668012004_0.20039856317414095","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"dsh-free-search","version":"0.6.5","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.6.5","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"2679695d3f7001b9f5f408077bbe9a319904fecc","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.6.5.tgz","fileCount":6,"integrity":"sha512-jpIXxWnVH6Wc6KdrnttmPhUIyQ4kqi31/y3iPACO7kDTlcCmRBVsP5KbQgsSec68nrgJ+8dAmY57u14ObLfJ6Q==","signatures":[{"sig":"MEQCIFzdk4SbWz9pY2iKP3xtUIvlxfinPH/pAvWGybQFfexSAiBzlZps/I8gHTDIX8NOIwVUK1OW3m2pWXjNgn4X8mnkSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGYCP4CVADwZZelhv7o8ru5+HWds4PMQc/P6HDGOhN9xAiAyqr9PQlxBQ9o6GstVqj0MUVJYzrl91vfga5aINmLI1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294978},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"ab70125d20844ff4bd2938078fdd618f6c962e53","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 18 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key) + auto smart routing + global engine enable/disable","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.6.5_1790704798936_0.476697161772869","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"dsh-free-search","version":"0.6.6","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.6.6","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"cee522bdea30ec163bbcdc7b384c2ab9e633eea5","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.6.6.tgz","fileCount":6,"integrity":"sha512-B3eFTdCdGci6m31Q0CWZi+j2mML2u0HPkIFcdYy1iex4ikDdudH29zGa8gfY4vxG3vmvB4MwwH23j8sKOkj65g==","signatures":[{"sig":"MEQCIBz6gfiJZFLOQj0Ixs9IZ3JACS6NDctYwrllunpup4ltAiB33tAv3ERukAIyT0ulC86SCY4ZrICNyNIvNDJY8Xq3Qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDFQGykaReb9nrdTv/9mqaFtQWbjN0bCij09glkqsOoaQIhAKl1FipxKm/hA6IN0sXb3MVnn9bOKnYjHG4TZWUDrmZ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296908},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"794c3a5828ca8a17f0cab3a3ba07f907cacf0c4a","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 18 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key) + auto smart routing + global engine enable/disable","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.6.6_1790886944948_0.26400229583608503","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"dsh-free-search","version":"0.6.7","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.6.7","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"abed5ad05e1d0003c7c3b963c4b562c4e811f87d","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.6.7.tgz","fileCount":6,"integrity":"sha512-AaNokksKfGgvHZHQsjsEIlI2tcni2XHNW3ylXeJwlLk6zAH6+R/oHTmFfRaDktnxkAkcrMbEiShkHXRiPh9bvQ==","signatures":[{"sig":"MEQCIBw1/dsBNr/tXPpIqOUKvk3HdYfz2KlYXBE5ghDT2YhlAiBYE6FqcIRQYejagyEFyRyiti0eqI4BUKGFXhWqzfKkOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCkkXD40nUCzhYQMdiELk3adl7eqaJx2OdQhE2V3p2STgIgOMx/mSnKaNFDwaLQ8YSIZ6LHBGMDZtXN00qk1CGfzuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297726},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"ef07eaabd5186210b4bf1838e564463620dd1551","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 18 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key) + auto smart routing + global engine enable/disable","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.6.7_1791012627506_0.5687983466312596","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"dsh-free-search","version":"0.7.0","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.7.0","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"9643d8969525a67a186d5fc6158145a5d7c928af","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.7.0.tgz","fileCount":6,"integrity":"sha512-r4rciLz138I1VPY9SIHuRbyQloGvq1Gd3yiGoJd9RBVeePBy/2y9IpVcvleV4RyfP5+KTUvtR3/qgo/qE0DlmQ==","signatures":[{"sig":"MEUCIQCxTHOFkdoNW59KuYCb1rzAdHNEYy/muJ9RkFyaNeGdXAIgEk9O8fYtA8+AYF01AuM2I418D9F7pIm+eyz4NllgItE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCB6QvkKbxqCosU9UZ3QC88/XtkCSQUL99Wo1XiWAAHrgIgWloUYi+DQEvjbZKYCr9tSurb/C1RvjE5EVehykbQUHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332920},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"48c803f29f563ad123527b5cc3e12dc97fc91e70","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 18 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key) + auto smart routing + global engine enable/disable","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.7.0_1791022690215_0.8470697087031143","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"dsh-free-search","version":"0.7.1","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.7.1","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"8393210058176b26f9259b8c9d9168a9527d33c9","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.7.1.tgz","fileCount":6,"integrity":"sha512-jgbZ+3VXoVjvjGHIfWJDLLobTs+8etlO31t1Dl7rOeRS+2ceYTCWBDapAWgOV47Ubn94ZnaG/U0he+ES58mggw==","signatures":[{"sig":"MEUCIH/ZP8ePBrSjo6B3qx2At6gQxNGZmuaMcAN3I+xkOdGlAiEAgsfQ6BRdgTQC/jl7rXFMr41DcJVHu8oXiJYXKiq6SGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCS5uPq8nP+4zldg3qJ6F/XlJOd1gsbhLUWqNOhAvE15wIgJoz7y9WuZgOFi9vl/gIj86TVhH3Z1BgVGWE2M/iohjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333055},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"fda1583b6c17f7c3d4cd6c6e39415c95de8ce3f9","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 21 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key; OpenAI/Gemini/Claude model built-in search, explici","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.7.1_1791023522655_0.7889133818751608","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"dsh-free-search","version":"0.7.2","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.7.2","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"078db8ff1db682a46e42d1d7b14df8fa2ba374cb","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.7.2.tgz","fileCount":6,"integrity":"sha512-keV1VsfTIT10vSU4IfNFhGsDAbEwsoh4EZSriYR4DKb1x/CJsqtMlHOkCIuucDIysIPytCepgyj+FtRQaAkhUQ==","signatures":[{"sig":"MEUCIGbVA+SKKiIjBc456+RxGU1ffPBS/FygXV7GjsAwp+syAiEA61m8fuEAxBaI+OrW5beumCUIGiUnkAphPw2rOAokv58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDf+EuNwoHNc8nZdBvo3joVmxPo6CcILrm3GU3Ld1fvawIgeNj+clm6zEw/daY7kS7Cu4higDYQsOSui7Xjnjvv4N0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333748},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"316dc44fe3d77e6aef8798a1ba5df7ca2746ecca","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 21 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key; OpenAI/Gemini/Claude model built-in search, explici","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.7.2_1791037541754_0.0029611913985487792","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"dsh-free-search","version":"0.7.3","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"license":"MIT","_id":"dsh-free-search@0.7.3","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"dist":{"shasum":"ac7f97b96cc2da11c4bd05aa57d545cb567c1ab3","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.7.3.tgz","fileCount":6,"integrity":"sha512-jj2e1PQbcB9bK5ISR2Jr9TjkoXgSdf7vm1o6GAPiEv6+CroX05k3PRyHCLrsDs3Gv8fpvJKAUXTYMw8EgYN4xg==","signatures":[{"sig":"MEUCIQCuCheoglVkep06Xa9xHfYSQh6nLh2QAVRWHEEqm9oIpQIgNqx2SnQ7QJIr/axIhNDi/YKKos2tRc4W42DYKrjtSb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC5r34kgN7+m7QJMNbRvJZtebhKLeGmPaTPW7Wh4pQ4hAIhAJnI5VHRP311H+YocGo4wLFphOtd7QRLEonCYh3idftS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349066},"main":"lib/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"3b7be0f158941d31e4a0ddf091bdaa52d7341fab","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 21 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key; OpenAI/Gemini/Claude model built-in search, explici","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-free-search_0.7.3_1791058793445_0.6762483753138513","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"_id":"dsh-free-search@0.7.4","dsh":{"bundle":{"patch":"cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-client-ui-plugin-manager","@deepseek-ai/dsh-client-ui-renderer"],"platform":"web"},"engines":{"dsh":">=0.1.7-rc.1"},"compatibility":{"dshReleases":{"0.1.7-rc.1":"compatible"}}},"bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"dist":{"shasum":"980e28c2924b4b70f31dfaaccc2800d6363ac6bf","tarball":"https://registry.npmjs.org/dsh-free-search/-/dsh-free-search-0.7.4.tgz","fileCount":6,"integrity":"sha512-HDxIJ5LHp6KeiTNi86/LLwJ5QCzVAjxsQzqbW2JiejyUGbEpfTN0IUPBpIZUIftoKTSo0eaH8ZSp7UBNoysHeQ==","signatures":[{"sig":"MEUCIQD9kn7EZHnXoV6BvAcsbNsPlt7rmeax7PxwNlb1oNIE6AIgRmA8z1D3nuYEijFl3EcamijNxKojqQPJLSgg+Vccpkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHp5fqKf56roXvly8SKn+OCHVNZn9vhET8+F8CDvS3YjAiBe0t0tzoHoG9+hSXag62j2JzWQDAiE/b0pREgw6fN2SQ=="}],"unpackedSize":355021},"main":"lib/index.js","name":"dsh-free-search","type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"5c52b67dff152afecb8f5cce906dbaffbd81744a","license":"MIT","version":"0.7.4","_npmUser":{"name":"dddmuc","email":"mumucats@163.com"},"homepage":"https://github.com/DDDMUC/dsh-free-search#readme","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","serply","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"_npmVersion":"11.19.0","description":"Free web search for DeepSeek Harness: 21 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key; OpenAI/Gemini/Claude model built-in search, explici","directories":{},"maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"_nodeVersion":"24.21.0","dependencies":{"@deepseek-ai/schemastery":"^3.18.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/dsh-tools":"^0.1.7-rc.1","@deepseek-ai/dsh-settings":"^0.1.7-rc.1"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/schemastery":"^3.18.4","@deepseek-ai/dsh-settings":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-commands":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-renderer":"^0.1.7-rc.1 || ^0.2.0-rc.1","@deepseek-ai/dsh-client-ui-plugin-manager":"^0.1.7-rc.1 || ^0.2.0-rc.1"},"peerDependenciesMeta":{"react":{"optional":true},"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-client-ui-commands":{"optional":true},"@deepseek-ai/dsh-client-ui-renderer":{"optional":true},"@deepseek-ai/dsh-client-ui-plugin-manager":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-free-search_0.7.4_1791112478398_0.055569465691965414"}}},"time":{"created":"2026-08-15T20:30:58.085Z","modified":"2026-10-04T11:14:38.741Z","0.2.0":"2026-08-15T20:30:58.522Z","0.3.0":"2026-08-15T20:44:52.821Z","0.4.0":"2026-08-15T21:32:47.716Z","0.4.1":"2026-08-15T21:47:17.230Z","0.4.2":"2026-08-15T22:19:47.451Z","0.4.3":"2026-08-17T09:49:04.627Z","0.4.4":"2026-08-17T20:34:19.729Z","0.4.5":"2026-08-17T21:12:01.712Z","0.4.6":"2026-08-18T07:31:21.535Z","0.4.7":"2026-08-18T18:03:34.413Z","0.4.8":"2026-08-19T13:39:03.153Z","0.4.9":"2026-08-19T19:28:56.777Z","0.4.10":"2026-08-19T20:54:12.605Z","0.4.11":"2026-08-20T12:35:09.294Z","0.4.12":"2026-08-21T18:06:12.990Z","0.4.13":"2026-08-27T08:23:01.810Z","0.4.14":"2026-08-27T13:58:36.584Z","0.4.15":"2026-08-27T15:38:28.275Z","0.4.16":"2026-08-28T17:18:11.197Z","0.4.17":"2026-08-28T18:56:24.437Z","0.4.18":"2026-08-31T14:27:46.651Z","0.4.19":"2026-08-31T15:13:09.662Z","0.4.20":"2026-08-31T15:30:41.553Z","0.4.21":"2026-08-31T16:19:50.269Z","0.4.22":"2026-08-31T16:42:40.946Z","0.4.23":"2026-09-03T12:04:43.036Z","0.4.24":"2026-09-03T12:39:28.796Z","0.4.25":"2026-09-13T12:36:55.536Z","0.4.26":"2026-09-13T12:55:07.296Z","0.4.27":"2026-09-13T14:39:25.598Z","0.4.28":"2026-09-13T14:49:14.329Z","0.4.29":"2026-09-17T15:19:31.329Z","0.4.30":"2026-09-17T16:13:49.329Z","0.4.31":"2026-09-17T16:20:57.551Z","0.4.32":"2026-09-17T17:01:58.569Z","0.4.33":"2026-09-21T17:36:29.768Z","0.4.34":"2026-09-21T18:26:53.567Z","0.4.35":"2026-09-21T18:43:48.727Z","0.4.36":"2026-09-23T11:22:30.185Z","0.4.37":"2026-09-24T09:18:20.889Z","0.4.38":"2026-09-24T14:34:45.334Z","0.4.39":"2026-09-24T16:00:49.008Z","0.5.0":"2026-09-28T09:05:22.360Z","0.5.5":"2026-09-28T19:52:14.293Z","0.5.6":"2026-09-28T20:30:00.328Z","0.6.0":"2026-09-29T07:46:52.102Z","0.6.5":"2026-09-29T17:59:59.055Z","0.6.6":"2026-10-01T20:35:45.040Z","0.6.7":"2026-10-03T07:30:27.617Z","0.7.0":"2026-10-03T10:18:10.338Z","0.7.1":"2026-10-03T10:32:02.740Z","0.7.2":"2026-10-03T14:25:41.842Z","0.7.3":"2026-10-03T20:19:53.536Z","0.7.4":"2026-10-04T11:14:38.548Z"},"bugs":{"url":"https://github.com/DDDMUC/dsh-free-search/issues"},"license":"MIT","homepage":"https://github.com/DDDMUC/dsh-free-search#readme","keywords":["deepseek-harness","dsh","dsh-plugin","web-search","duckduckgo","bing","tavily","exa","keenable","firecrawl","parallel","perplexity","serpbase","serply","search","free","baidu","kimi","moonshot","aliyun","youcom","multi-search","auto-routing","doubao","volcengine","volcano"],"repository":{"url":"git+https://github.com/DDDMUC/dsh-free-search.git","type":"git"},"description":"Free web search for DeepSeek Harness: 21 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel keyless; Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao with key; OpenAI/Gemini/Claude model built-in search, explici","maintainers":[{"name":"dddmuc","email":"mumucats@163.com"}],"readme":"# dsh-free-search\n\n**DeepSeek Harness 免费搜索插件 —— 无需 API key，零成本，多引擎可切换。** 一个给 DeepSeek Harness (dsh) 添加多引擎搜索 provider 的插件，注册进 `ctx.web` seam。内置 `web_search` 工具自动选用，支持网页设置页切换引擎、配置 API key、一键测试所有引擎、弹出式命令切换引擎。\n\n[中文](#中文) · [English](#english)\n\n---\n\n## 中文\n\n<div align=\"center\">\n  <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free1.png\">\n    <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free1.png\" alt=\"免费引擎设置 (Bing)\" width=\"820\" />\n  </a>\n  <br>\n  <sub>▲ 免费引擎（以Bing为例）</sub>\n</div>\n\n### 为什么需要它\n\ndsh 默认的搜索 provider 依赖 DeepSeek 官方 API key（`DEEPSEEK_API_KEY`）。如果你：\n- 没有（或不想用）DeepSeek 官方 key，\n- 用的是 opencode-go 这类网关（其 OpenAI 兼容端点不支持 `web_search` 工具），\n\n……那么内置搜索必然失败，agent 会告诉你\"无法联网\"。\n\n这个插件提供多个免费引擎 + 自动回退，彻底摆脱 DeepSeek 官方 key 的依赖。\n\n### 特性\n\n- **零成本** —— 多个免费引擎，无需 key、无需注册\n- **多引擎可选**：DuckDuckGo（html/lite）、Bing、SearXNG（元搜索，支持自定义实例）、AnySearch、Exa、Tavily、Keenable、Firecrawl、Parallel、Perplexity、SerpBase、Serply、DeepSeek 官方、You.com、百度千帆、Kimi、阿里云百炼、火山联网搜索（豆包搜索）、OpenAI / Gemini / Claude 模型内置搜索\n- **网页设置页** —— 引擎切换 + API key 配置（UI 中 key 脱敏显示\"已配置\"）+ 中英文切换；入口在左侧「插件」页的组件行配置（`plugins.row.config`，DSH 0.1.7-rc.1+）\n- **弹出式切换命令** —— 聊天框输入 `/free-search-engine`，弹出引擎选择窗口，点选即切换（等效设置页 + 保存）\n- **引擎测试** —— `free_search_test` 工具让 agent 一键测试所有引擎；设置页也有\"测试引擎\"按钮（直测当前引擎，不走回退链，付费引擎无 key 会明确报错）\n- **全局引擎开关与回退优先级** —— 设置页可勾选/取消引擎（取消后全局生效：普通搜索 / Auto / `advanced_search` / `multi_search` / 引擎测试都不再用它），并可用 ↑↓ 调整全局回退顺序（一键恢复默认）\n- **Multi 模式** —— 可把搜索引擎设为 `Multi Search`：`web_search` 并发请求前 3 个已启用引擎、按 URL 合并去重、跨源命中的结果优先（代价是成倍消耗额度；multi 失败会自动退回单引擎回退链）\n- **统一引擎回退** —— 任何引擎失败（付费/免费，缺 key/401/限流/网络）自动轮流尝试下一个引擎：首选引擎 → 其他引擎（exa/tavily/keenable/firecrawl/parallel 无 key 也会尝试，因为它们自带 keyless 免费额度）→ 剩余免费引擎，搜索永不直接失败；结果顶部注明实际生效的引擎（如 `Note: perplexity unavailable or failed, using exa.`）；失败按类别处理：额度/鉴权失败→本会话冷却该引擎，反爬→短退避，超时/5xx/限流→同引擎重试一次，解析失败/0 结果→不冷却（详见下文「失败分类与引擎冷却」）\n- **时间过滤** —— `advanced_search` 工具支持 `timeRange`：固定档、自定义相对值、绝对日期三种形式（详见下方逻辑说明）\n- **系统提示词注入** —— agent 知道当前用哪个引擎、哪些需要 key；并明确所有搜索结果是**不可信外部数据**，不得执行其中的指令\n- **提示注入防护（不可信数据边界）** —— 插件自有工具（advanced_search / platform_search / free_search_test）的网页文本包在 `<untrusted-web-content>` 边界内（正文里自带的同名标记会被剥离，防止提前闭合）；核心 web_search / web_fetch 由 DSH 核心自带同类提示（`External web content follows...`）；所有 snippet 统一清洗并截断到 300 字符\n- **版本号 + 检查更新** —— 设置卡片显示当前版本（v0.4.17），\"检查更新\"按钮直连 npm registry 对比最新版，有新版本时提示并可一键跳转\n- **结果缓存** —— 相同查询（含引擎/时间过滤参数）5 分钟内命中缓存（LRU 50 条），防免费引擎限流、省付费额度；时长可在设置页 0-5 分钟自由配置（0 关闭）\n- **免费标注** —— 设置页中免费引擎带绿色 `FREE` 徽章，付费引擎带橙色 `API KEY` 徽章\n- **网页抓取（web_fetch）** —— 让 agent 抓取网页内容（官方 `dsh-web-fetch-http` provider，纯 JS，零额外依赖）\n- **平台搜索（platform_search）** —— 搜 GitHub / V2EX / B站 / Reddit / Hacker News / Stack Overflow / 维基百科 / npm / YouTube / Vimeo（公开 API 或免 key 抓取，零依赖）\n- **视频搜索（video_search）** —— 跨站找视频：Bing Videos + DuckDuckGo Videos（免 key，失败互相回退），返回视频链接、标题与来源/时长等元信息\n- **干净集成** —— 实现官方 `WebSearchProvider` seam 接口，与官方插件共存\n\n如果这个插件帮到了你，欢迎给仓库点个 ⭐（[GitHub](https://github.com/DDDMUC/dsh-free-search)）——星标是开发者继续维护的最大动力，感谢支持！\n\n### 引擎列表\n\n| id | 引擎 | 费用 | 说明 |\n|---|---|---|---|\n| `auto` | Auto 智能路由 | 动态 | **根据查询语言/时间条件自动选路**（含中文优先 Bing/Baidu/Aliyun/AnySearch，英文优先 Bing/Exa/Tavily；时间过滤优先支持引擎），末尾全量回退 |\n| `ddg` | DuckDuckGo HTML | 免费 | 偶发限流（反爬），解封自动恢复 |\n| `ddg-lite` | DuckDuckGo Lite | 免费 | 轻量版，同上 |\n| `bing` | Bing | 免费 | **默认引擎**，最稳定，中文优化（zh-CN） |\n| `anysearch` | AnySearch AI | 免费 | AI 搜索，无 key（匿名额度） |\n| `searxng` | SearXNG 元搜索 | 免费 | 多实例自动切换，支持自定义实例 |\n| `exa` | Exa | 免费 | **无 key 也可用**（MCP 匿名），配 key 提升额度 |\n| `tavily` | Tavily | 免费 | **无 key 也可用**（keyless 匿名），配 key 提升额度 |\n| `keenable` | Keenable | 免费 | **无 key 也可用**（MCP 匿名），配 key 提升额度 |\n| `firecrawl` | Firecrawl | 免费 | **无 key 也可用**（官方免 key 匿名额度），配 key 提升限额 |\n| `parallel` | Parallel | 免费 | **无 key 也可用**（官方 MCP 匿名额度），配 key 提升额度并支持精确时间过滤 |\n| `perplexity` | Perplexity | 付费 | 需 `PERPLEXITY_API_KEY` |\n| `serpbase` | SerpBase | 付费 | 需 `SERPBASE_API_KEY`（serpbase.dev，注册送 100 次免费额度） |\n| `serply` | Serply | 付费 | 需 `SERPLY_API_KEY`（serply.io，新账户 30 天内 2,500 次免费额度）；Google 网页结果，按设置页语言本地化 |\n| `deepseek-official` | DeepSeek 官方 | 付费 | 需 `DEEPSEEK_API_KEY` |\n| `you` | You.com | 付费 | 需 `YOUCOM_API_KEY`（you.com/platform/api-keys，注册即送免费额度） |\n| `baidu` | 百度千帆 AI 搜索 | 额度 | 需 `BAIDU_API_KEY`（千帆 AI 搜索，每日赠 50 次，超额按量后付费）；中文全网，支持时间过滤 |\n| `kimi` | Kimi（Moonshot）联网搜索 | 付费 | 需 `MOONSHOT_API_KEY`（basic 约 ￥0.01/次），返回带正文 chunks 的中文结果 |\n| `aliyun` | 阿里云百炼 EnhancedSearch | 付费 | 需 `DASHSCOPE_API_KEY`（MCP search_pro，约 ￥0.03/次，新用户 200 次免费包）；中文全网带来源 hostname |\n| `doubao` | 火山引擎联网搜索（豆包搜索） | 免费额度 | 需 `DOUBAO_SEARCH_API_KEY`（联网搜索控制台开通，**每月 500 次免费**，超出按量付费）；中文时效内容强，支持时间/站点过滤，返回千字级摘要 |\n| `openai` | OpenAI 模型内置搜索 | 付费 | 需 `OPENAI_API_KEY`；走 Responses API 的 `web_search` 工具，返回带引用的回答。**按次计费，仅在显式选中时使用**（不参与自动回退/auto）；默认 `gpt-6-luna`，模型与端点可配（`openaiModel` / `openaiBaseUrl`） |\n| `gemini` | Gemini Grounding with Google Search | 付费 | 需 `GEMINI_API_KEY`（兼容 `GOOGLE_API_KEY`）；走官方推荐的 **Interactions API**（`POST /v1beta/interactions`，`tools:[{type:\"google_search\"}]`），从 `steps[].content[].annotations` 取引用。**按次计费，仅在显式选中时使用**；默认 `gemini-3.8-flash`，模型与端点可配（`geminiModel` / `geminiBaseUrl`） |\n| `claude` | Claude 服务端 web_search | 付费 | 需 `ANTHROPIC_API_KEY`；结果来自 `web_search_tool_result`。**按次计费，仅在显式选中时使用**；默认 `claude-sonnet-5-5`，模型与端点可配（`claudeModel` / `claudeBaseUrl`） |\n\n- **默认引擎为 `bing`**（免费且最稳定），安装后开箱即用。\n- **自动回退**：任何引擎失败（免费限流/反爬，付费缺 key/无效/网络错误）都会自动轮流尝试下一个引擎——先试其他已配 key 的付费引擎，再试免费引擎（Bing/AnySearch 等），并在结果中附带回退提示——搜索不会因引擎问题直接失败。\n- **设置页有官网链接**：免费引擎显示\"访问官网 →\"，付费引擎显示\"获取 API Key →\"（新标签页打开）：\n  - Exa：<https://dashboard.exa.ai/api-keys>\n  - Tavily：<https://app.tavily.com/home>\n  - Keenable：<https://keenable.ai/login>\n  - Parallel：<https://platform.parallel.ai>\n  - Perplexity：<https://www.perplexity.ai/settings/api>\n  - SerpBase：<https://serpbase.dev>\n  - Serply：<https://serply.io>（API 文档：<https://serply.io/docs>）\n  - DeepSeek：<https://platform.deepseek.com/api_keys>\n  - 豆包搜索（火山联网搜索）：<https://console.volcengine.com/search-infinity/web-search>\n  - You.com：<https://you.com/platform/api-keys>\n\n#### 为什么免费引擎不需要 key？\n\n- **AnySearch**：其 `v1/search` REST 接口提供匿名的公共搜索额度，无需注册或 API key。额度有限流（适合日常搜索），但作为免费引擎之一，与其他免费引擎互相回退，体验稳定。\n- **Exa**：公开 MCP 端点（`mcp.exa.ai/mcp`）支持匿名调用，不配 key 也能用；配置 `EXA_API_KEY` 后可获得更高额度。\n- **Tavily**：通过 `x-tavily-access-mode: keyless` 头走 keyless 匿名额度，不配 key 即可用；配置 `TAVILY_API_KEY` 后走账号档，额度更高、结果质量更稳定。\n- **Keenable**：无 key 时走其公开 MCP 端点（`api.keenable.ai/mcp`）匿名调用；配置 `KEENABLE_API_KEY` 后走 REST API（`api.keenable.ai/v1/search`），额度更高、按组织限流。\n- **Firecrawl**：其 `/v2/search` 端点**无需 key** 即可使用（官方文档明确说明，有匿名限流）；配置 `FIRECRAWL_API_KEY` 后可提高限额。支持 `tbs` 时间过滤（`qdr:h/d/w/m/y` 与自定义日期区间）。\n\n### 安装\n\n```sh\ngit clone https://github.com/DDDMUC/dsh-free-search.git\ndsh plugin --profile web add /path/to/dsh-free-search\n```\n\n然后重启：\n\n```sh\ndsh web\n```\n\n#### 接管行为与验证\n\n插件加载后**自动接管搜索**（运行时接管，不改配置层）：\n\n- `web.searchProvider` 未设置，或仍是 DSH 出厂默认的官方搜索 `deepseek-official` 时，自动切换为本插件的 provider（id 固定为 `ddg`）；\n- 如果（你或别的插件）已显式选择其他 provider，本插件不抢占，只在启动日志输出 WARN 与切换用的 YAML。\n\n**不再往配置里写 `searchProvider: ddg`**：静态覆盖曾导致\"悬空引用\"——patch 是整段覆盖 config，一旦插件那一行被**停用或跳过**（比如在插件管理器里关掉），配置仍指向 `ddg` 而没有任何东西注册它，于是每次搜索都失败：\n\n```\nError: configured web provider \"ddg\" is not registered\n```\n\n现在没有这层覆盖：插件被停用时 `web.searchProvider` 保持官方默认（`deepseek-official`），搜索至少还能走官方通道；插件启用时由上面的运行时接管切到 `ddg`。\n\n> 如果你曾按旧文档手动在 `profiles/<profile>/cordis.patch.yml` 里加过下面这段，而插件没有启用，就会看到上面那条错误——**删掉这段即可**（或重新启用插件）：\n\n```yaml\n# 可选，通常不需要：只有你想强制指定时才加。\n# DSH 0.1.2+ 的 patch 是\"整段覆盖 config\"，必须保留 fetchProvider。\n- id: web\n  config:\n    searchProvider: ddg\n    fetchProvider: http\n```\n\n- `searchProvider: ddg` —— 本插件的 **provider id（固定值）**，不是\"使用 DuckDuckGo 引擎\"；用哪个引擎由设置页的 `provider` 字段决定（`bing`/`baidu`/`auto`/…）。\n- `fetchProvider: http` —— 官方网页抓取（web-fetch-http），手动声明时必须保留。\n- 想改用官方搜索：在插件管理器里停用本插件条目即可，不需要改配置。\n\n#### 姊妹插件：dsh-preset-workbench（预设工作台）\n\n同作者的**姊妹插件**：在设置页里可视化创建/编辑 Agent 预设——分段提示词、15 项能力开关、内置「鲸鱼娘 / 梁神模式」模板，不用手写 YAML。两者搭配：**free-search 解决\"AI 联网搜索\"、preset-workbench 解决\"AI 人设能力编排\"**，都是纯免费、开箱即用。\n\n- 仓库：<https://github.com/DDDMUC/dsh-preset-workbench>\n- 安装：`dsh plugin --profile web add github:DDDMUC/dsh-preset-workbench`\n- 用法：设置 → 预设工作台\n\n如果你觉得 preset-workbench 也有用，同样欢迎给它的仓库点个 ⭐。🙏\n\n#### 依赖说明\n\n插件对 `@deepseek-ai/dsh-settings` 和 `@deepseek-ai/dsh-tools` 使用 `peerDependencies`，这是刻意的：DSH 运行时必须使用安装树中的唯一实例。请通过 `dsh plugin --profile <profile> add ...` 安装插件，不要把 DSH 核心包复制进 profile 的本地 `node_modules`；重复副本会导致工具调度器失效。\n\n### 使用\n\n#### 网页设置（推荐）\n\n安装后打开配置页（DSH 0.1.7-rc.1+）：\n\n- 左侧 **插件** 页 → **已安装** 分组 → `free-search` → 点击组件行 `web-search-free`（行内\"配置\"入口）\n\n配置页提供：\n\n- **Search engine**：下拉框切换引擎，保存即生效\n- **API keys**：为 Exa / Tavily / Keenable / Firecrawl / Parallel / Perplexity / DeepSeek / SerpBase / Serply / You.com 填写 key（密码框，保存后只显示\"已配置\"；Exa / Tavily / Keenable / Firecrawl / Parallel 不填也可免 key 使用）\n  - **推荐**：付费引擎 key 建议写入 harness 凭据中心 `~/.dsh/.credentials.yaml`（如 `DEEPSEEK_API_KEY: sk-...`，与官方 LLM provider 一致，一处管理所有 key）。插件读取优先级：凭据中心 > 设置页 > 环境变量，设置页填的 key 仅作为遗留兼容。\n- **Test engine**：直测当前引擎可用性（不走回退链，付费引擎无 key 会明确报错）\n- **Use Bing default**：把当前搜索引擎切回稳定的免费 Bing；`Discard` 只撤销尚未保存的编辑\n- **Platform search**：勾选启用 GitHub / V2EX / Bilibili / YouTube / Vimeo 平台搜索（`platform_search` 工具按此过滤）\n- **EN / 中文**：切换界面语言（默认中文）\n\n<table align=\"center\" style=\"border: none; border-collapse: collapse;\">\n  <tr style=\"border: none;\">\n    <td align=\"center\" width=\"50%\" style=\"border: none; padding: 6px;\">\n      <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free.png\">\n        <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free.png\" alt=\"免费引擎设置\" width=\"100%\" />\n      </a>\n      <br>\n      <sub>▲ <b>免费引擎</b>（显示绿色 FREE 徽章与官网链接）</sub>\n    </td>\n    <td align=\"center\" width=\"50%\" style=\"border: none; padding: 6px;\">\n      <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-apikey.png\">\n        <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-apikey.png\" alt=\"付费引擎设置\" width=\"100%\" />\n      </a>\n      <br>\n      <sub>▲ <b>付费/API Key 引擎</b>（显示橙色 API KEY 徽章与获取链接）</sub>\n    </td>\n  </tr>\n</table>\n\n#### 聊天框切换引擎（/free-search-engine）\n\n不用进设置页也能切换引擎：在聊天框输入 `/free-search-engine`，**弹出引擎选择窗口**（和 `/model` 选模型一样的交互），点选即切换，当前引擎会标记出来。等效于设置页切换 + 保存，且界面语言跟随设置页（中文/英文）。\n\n命令只改首选引擎配置，搜索仍走 `web_search` + 统一回退链：即使首选引擎挂了也会自动换其他引擎，永不直接失败。系统提示词同步刷新。\n\n#### 引擎开关、回退优先级与 Multi 模式\n\n设置页有三个新块（都会保存进条目 config）：\n\n- **全局启用的搜索引擎**：取消勾选后，该引擎会从普通 `web_search` 回退链、Auto 智能路由、`advanced_search`、`multi_search` 和引擎测试中**全局排除**；至少要保留一个引擎。\n- **全局回退优先级**：用 ↑↓ 调整先后顺序。首选引擎仍先尝试；Auto 保留\"语言/时间\"路由规则，但自定义后同一分组内及后续回退按此顺序。被禁用的引擎保留在列表里（标记「已禁用」）但不执行；「恢复默认顺序」一键还原。\n- **搜索引擎下拉里的 `Multi Search`**：选中后 `web_search` 会并发查询路由/优先级前 3 个已启用引擎，URL 去重合并、跨源命中的结果排前面。注意并发会成倍消耗额度；Multi 失败时会自动退回普通单引擎回退链并在结果里注明。\n\n#### 失败分类与引擎冷却（Failure-aware fallback）\n\n回退链不再把所有失败一视同仁，而是先给失败分类（issue #36）：\n\n- **`quota`（额度/预算耗尽，HTTP 402 / `NO_MORE_CREDITS` / SerpBase 免费额度用尽）**：立即切换，并把该引擎**在本进程内冷却**——后续搜索不再尝试它，避免反复撞墙；\n- **`auth`（401/403、key 无效或未配置）**：同上，冷却到本会话结束（改好 key 重载插件即恢复）；\n- **`bot-wall`（如 DDG 反爬挑战）**：冷却一小段（默认 60s）后再自动放回链中；\n- **`transient`（超时 / 5xx / 网络 / 429 限流）**：**同一引擎重试一次**再回退，避免一次抖动就丢掉好引擎；\n- **`invalid-response`（解析失败 / 结构变化 / 返回 0 结果）**：照常回退，但归类为插件侧问题，不冷却引擎。\n\n回退结果的 `Note:` 现在会给出具体类别，例如 `Note: exa is out of quota, using doubao.`、`Note: perplexity is misconfigured (API key rejected), using doubao.`、`Note: bing failed (transient), using doubao.`。`free_search_test` 也会为每个失败引擎附上类别（`failureClass`）。\n\n冷却只作用于本进程（重载插件或重启即清空），且**对配置的首选引擎同样适用**：若它正在冷却，本轮会跳过并回退，结果里注明 `is cooling down`；冷却中的引擎一旦成功即自动解冻。\n\n`fallbackOn` 控制哪些失败类别**允许**触发回退：默认勾选全部六类，即当前的「搜索永不直接失败」；取消某类后，遇到该类失败会**停下并把该引擎的错误报出**，不再换引擎（例如去掉 `invalid-response`：首选引擎返回空/解析失败时直接报错，而不是静默退回低质引擎）。设为空数组 `[]` 则任何失败都立即中止。注意**缺 key、被禁用、不支持时间过滤不算失败**，无论怎样都照常换引擎。设置页有对应勾选框，也可在 config 写 `fallbackOn: [quota, auth, bot-wall, transient, invalid-response, unknown]`。\n\n#### 配置文件\n\nDSH 0.1.7-rc.1 起，配置跟随 profile 的插件条目保存：设置页与 `/free-search-engine` 都会写入当前 profile 的 `cordis.patch.yml` 中 `web-search-free`（`dsh-free-search`）条目的 `config`。\n\n旧版 `~/.dsh/settings.yaml` 的 `free-search:` 段**不会被 DSH 核心自动导入**（核心的 `importLegacyDocument` 只为 `ui-developer-tools` / `ui-onboarding` / `shell` 三个段提供了映射），原文件在导入其它段后会被改名为 `settings.yaml.imported`，该段的值只留在那里。插件会在启动时检测 `settings.yaml.imported`（或仍存在的 `settings.yaml`）中的 `free-search:` 段，把可识别的字段**一次性补种**进当前 profile 的条目 `config`（写一次后不再重复，可在启动日志看到 `free-search: migrated N field(s)…`）。如果你想手动处理，也可以照着 `settings.yaml.imported` 里的值在插件页行配置中填一遍。\n\n```yaml\n# profiles/<profile>/cordis.patch.yml 中该条目的 config：\nprovider: bing              # ddg / ddg-lite / bing / searxng / anysearch / exa / tavily / keenable / firecrawl / parallel / perplexity / serpbase / serply / deepseek-official / you / baidu / kimi / aliyun / doubao / openai / gemini / claude / auto / multi\nfallbackOn: [quota, auth, bot-wall, transient, invalid-response, unknown]   # 允许触发回退的失败类别；[] = 任何失败都立即中止（默认全部）\nlang: zh                    # 设置页界面语言（zh / en）\nbingMarket: zh-CN           # Bing 市场\nregion: cn-zh               # DuckDuckGo 区域（可选）\nsearxngInstances:           # 自定义 SearXNG 实例（可选）\n  - https://your-instance.example\nexaApiKey: ...              # 或通过设置页填写\ntavilyApiKey: ...           # 或通过设置页填写\nkeenableApiKey: ...         # 或通过设置页填写\nfirecrawlApiKey: ...        # 或通过设置页填写\nparallelApiKey: ...         # 或通过设置页填写\nperplexityApiKey: ...\nserpbaseApiKey: ...         # 或通过设置页填写\nserplyApiKey: ...           # 或通过设置页填写\ndeepseekApiKey: ...\n```\n\n#### 让 agent 测试所有引擎\n\n对 agent 说\"测试一下所有搜索引擎\"，它会调用 `free_search_test` 工具，逐个测试并报告：\n\n```\nSearch engine test:\n- ddg: FAIL - DuckDuckGo is rate-limited right now (anti-bot challenge, usually temporary) - Bing works\n- bing: OK (2 results, e.g. \"DeepSeek Harness developer preview...\")\n- exa: FAIL - EXA_API_KEY not configured\n```\n\n#### 时间过滤（advanced_search）\n\n让 agent 搜\"最近一周的新闻\"、\"这个月的发布\"、\"最近 3 天的消息\"、\"7 月以来的更新\"，它会调用 `advanced_search` 工具，带 `timeRange` 参数。该工具同样走统一回退链，且可显式指定 `engine`，返回结构同 `web_search`。\n\n**timeRange 支持三种形式：**\n\n| 形式 | 示例 | 含义 |\n|---|---|---|\n| 固定档 | `day` / `week` / `month` / `year` | 分别 = 1 / 7 / 30 / 365 天 |\n| 自定义相对值 | `12h`、`3d`、`2mo`、`1y` | 最近 12 小时 / 3 天 / 2 个月 / 1 年 |\n| 绝对日期 | `2026-07-01` | 该日期（含）之后发布的结果 |\n\n**各引擎对 timeRange 的处理逻辑：**\n\n| 引擎 | 参数 | 是否精确 | 说明 |\n|---|---|---|---|\n| Exa | `startPublishedDate` | ✅ 精确 | 自定义天数转成 ISO 日期（N 天前），绝对日期原样传入 |\n| Keenable | `published_after` | ✅ 精确 | 相对值原样传（`12h/3d/2mo/1y`），绝对日期原样传 |\n| Tavily | `time_range` | ⚠️ 近似 | 只认固定档，自定义天数自动映射到最近似档位 |\n| Firecrawl | `tbs` | ⚠️ 近似 | 固定档映射到 `qdr:d/w/m/y`；绝对日期用 `cdr:1,cd_min:M/D/YYYY`（精确） |\n| Parallel | `source_policy.after_date`（有 key 时精确）；无 key 走 MCP，无日期参数，改为把窗口写进 objective 作为新鲜度提示（软过滤） | ✅ 精确 / ⚠️ 软过滤 | 自定义天数转成 ISO 日期（N 天前），绝对日期原样传入 |\n| SearXNG | `time_range` | ⚠️ 近似 | 同上 |\n| DuckDuckGo / Lite | `df` | ⚠️ 近似 | 同上 |\n| Bing / AnySearch | — | ❌ 忽略 | 无对应参数 |\n\n**\"最近似档位\"映射规则**：`≤2 天 → day`，`≤14 天 → week`，`≤90 天 → month`，否则 `year`。例如 `3d` 在 Tavily 上按 `day` 处理，`2mo` 按 `month` 处理。\n\n**引擎链优先级**：当带 timeRange 搜索时，支持时间过滤的引擎（tavily / exa / keenable / firecrawl / parallel / searxng / ddg / ddg-lite）会排到引擎链前面，确保过滤真正生效——即使首选引擎是 bing（不支持过滤），也会先尝试支持过滤的引擎。\n\n示例对话：*\"帮我搜最近 3 天关于 DSH 的新闻\"* → agent 调用 `advanced_search`，`timeRange: \"3d\"`。\n\n#### 多源并发合并搜索（multi_search）\n\n当需要对重要问题做**多源交叉验证**、避免单一引擎偏差或单源死锁时，可以让 agent 调用 `multi_search` 工具：\n\n- **并发请求**：默认基于当前查询类型并发请求前 3 个优选引擎（或显式传入 `engines` 列表），各引擎独立解析 API Key 与容错（缺 key 引擎自动跳过，不阻断其他引擎）。\n- **去重与合并**：按规范化 URL 去除结尾斜杠并合并结果，多引擎共同命中的条目优先置顶排在最前，并在结果附带 `seenIn` 命中来源清单（如 `[seen in: bing, exa]`）。\n- **不可信边界与清洗**：严格遵守 `<untrusted-web-content>` 数据边界，正文 snippet 统一清洗。\n- ⚠️ 注：多源并发会消耗更多 API 配额，建议在需要多角度核验时按需使用。\n\n#### 抓取网页内容（web_fetch）\n\n搜索到 URL 后，可以让 agent **读取网页全文**（如\"打开第一个链接看看内容\"）。`web_fetch` 工具已启用（官方 `dsh-web-fetch-http` provider）：\n\n- 自动跟随重定向、解码正文（HTML 转文本）\n- 支持超时和大小限制\n- ⚠️ 注意：`web_fetch` 无 SSRF 防护，agent 理论上可访问内网地址——按需使用\n\n#### 平台搜索（platform_search）\n\n让 agent 搜特定平台，如\"在 GitHub 上搜 deepseek harness\"、\"看看 B站有什么相关视频\"、\"V2EX 上关于 dsh 的讨论\"。`platform_search` 工具支持：\n\n| 平台 | 用途 |\n|---|---|\n| `github` | GitHub 仓库搜索（API，免费无 key） |\n| `v2ex` | V2EX 热门/相关主题 |\n| `bilibili` | B站视频/内容搜索（公开接口） |\n| `reddit` | Reddit 帖子/讨论搜索（公开 JSON API；部分网络环境可能被 Reddit 反爬拦截） |\n| `hn` | Hacker News 技术社区讨论（Algolia 官方 API） |\n| `stackoverflow` | Stack Overflow 技术问答（Stack Exchange 官方公开 API） |\n| `wikipedia` | 维基百科词条（中文环境用 zh.wikipedia.org，`lang: en` 时切换 en.wikipedia.org） |\n| `npm` | npm 包搜索（registry 官方 API） |\n| `youtube` | YouTube 视频搜索（抓 results 页 `ytInitialData`，免 key） |\n| `vimeo` | Vimeo 视频搜索（抓搜索页内嵌数据；抓不到时退回网页搜索 `site:vimeo.com`，免 key） |\n\n公开 API 或免 key 抓取，零外部依赖、无需任何 key。`youtube` / `vimeo` 需要先在设置页「平台搜索」里勾选启用。\n\n#### 视频搜索（video_search）\n\n让 agent 找视频：\"找几个关于 X 的视频\"、\"有没有 Y 的教学视频\"。`video_search` 跨站搜索：\n\n| 源 | 说明 |\n|---|---|\n| `bing` | Bing Videos（抓 `bing.com/videos/search` 的 `vrhm` 元数据，免 key） |\n| `ddg` | DuckDuckGo Videos（vqd + `v.js`，免 key） |\n\n默认两个源都试、失败互相回退，返回 `url / title / snippet`（来源站点、时长等）。**免 key 抓取，对方改版可能失效**；要按站点搜（YouTube / Vimeo / B站）请用 `platform_search`。\n\n### 本地引擎切换工具（tools/）\n\n`tools/` 目录附带了一个本地切换小工具（零依赖）：\n\n- **`启动搜索引擎切换器.cmd`**（Windows）——双击启动本地 Node 服务（`http://127.0.0.1:4789`）并自动打开浏览器选择页面\n- **`switch-engine.html`** —— 选择页面：显示当前引擎，点选新引擎，一键写入配置\n- **`server.mjs`** —— 本地服务，负责读写 `~/.dsh/profiles/web/cordis.patch.yml`\n- **`switch-engine.ps1`** —— 无界面命令行版：`powershell -File tools/switch-engine.ps1 -Engine bing`\n\n切换后重启 `dsh web` 生效。\n\n> 配置卡片挂在左侧「插件」页的 `plugins.row.config` 行配置插槽（dsh 自带），配置读写走插件自建 bridge，**不依赖 dsh-web-ui**，插件可独立使用。\n\n### 代理说明（国内用户）\n\nDuckDuckGo 等引擎可能需要代理才能访问，而 Node.js 的 `fetch` 默认不走系统代理。需要给 dsh 进程设置（Node 24+）：\n\n```sh\nexport NODE_USE_ENV_PROXY=1\nexport HTTPS_PROXY=http://127.0.0.1:7897   # 你的代理地址\nexport HTTP_PROXY=http://127.0.0.1:7897\n```\n\nWindows 用户：桌面快捷方式已内置此配置（`set NODE_USE_ENV_PROXY=1&& set HTTPS_PROXY=...`）。\n\n### 工作原理\n\n- `lib/index.js`：host 端。实现 `WebSearchProvider`（`id` / `available()` / `search()`），统一引擎路由 + 自动回退（付费引擎优先，免费兜底）；解析 `timeRange`（固定档/相对值/绝对日期）并透传给各引擎；在 `web-search-free` 条目上声明可编辑配置（`.volatile()`）并自带设置页（`plugins.row.config`）；提供 `/api/dsh-free-search-settings` 读写桥 + `raw-search` 调试接口；注册 `free_search_test`、`platform_search`、`video_search`、`advanced_search`、`multi_search` 工具；动态注入引擎清单到系统提示词（设置变更时自动刷新）。\n- `lib/client.js`：浏览器端。React 配置卡片（引擎选择 + key 输入 + 连通测试 + 中英切换），挂载到左侧「插件」页的 `plugins.row.config` 行配置插槽；注册 `/free-search-engine` 弹出式切换命令（`commandUi` popupSelect，与 `/model` 同机制）。\n- `cordis.patch.yml`：插件 loader 配置。\n\n---\n\n## English\n\n<div align=\"center\">\n  <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free1.png\">\n    <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free1.png\" alt=\"Free Engine Settings (Bing)\" width=\"820\" />\n  </a>\n  <br>\n  <sub>▲ Free engine (using Bing as an example)</sub>\n</div>\n\n### Why You Need It\n\ndsh's default search provider relies on the official DeepSeek API key (`DEEPSEEK_API_KEY`). If you:\n- Do not have (or prefer not to use) an official DeepSeek key,\n- Use a gateway like opencode-go (whose OpenAI-compatible endpoint does not support the `web_search` tool),\n\n...then the built-in search will inevitably fail, and the agent will tell you \"I cannot access the internet.\"\n\nThis plugin provides multiple free search engines with automatic fallback, completely freeing you from relying on DeepSeek's official key.\n\n### Features\n\n- **Zero Cost** — Multiple free engines with no API key or registration required\n- **Multi-Engine Support** — DuckDuckGo (HTML / Lite), Bing, AnySearch AI, SearXNG (meta-search with custom instances), Exa, Tavily, Keenable, Firecrawl, Parallel, Perplexity, SerpBase, Serply, DeepSeek Official, You.com, Baidu Qianfan, Kimi, Aliyun Bailian, Volcano Doubao, and the model-based OpenAI / Gemini / Claude searches\n- **Web Settings UI** — Engine switching, API key configuration (keys masked as \"configured\" in the UI), and a Chinese/English toggle; the entry is the component-row config (`plugins.row.config`) on the sidebar Plugins page (DSH 0.1.7-rc.1+)\n- **Popup Switch Command** — Type `/free-search-engine` in the chat: a picker opens with all engines; click one to switch (equivalent to the settings page + save)\n- **Engine Testing** — `free_search_test` for the agent to check all engines in one call; the settings UI also has a \"Test engine\" button that tests the selected engine directly (no fallback chain; paid engines without a key report an explicit error)\n- **Global engine enable/disable & fallback priority** — uncheck engines you never want (applies everywhere: web_search fallback, Auto routing, advanced_search, multi_search, engine tests) and reorder the global fallback chain with ↑↓ (one-click reset)\n- **Multi mode** — pick `Multi Search` as the engine: web_search queries the top 3 enabled engines concurrently, merges/deduplicates URLs and prioritizes cross-source hits (costs more quota; a failed multi run automatically falls back to the single-engine chain)\n- **Unified Engine Fallback** — Any engine failure (paid or free, missing key, 401, rate limit, network error) automatically tries the next engine: the configured engine first, then other engines (exa/tavily/keenable/firecrawl/parallel are tried even without a key because they have built-in keyless quota), then the remaining free engines (Bing/AnySearch etc.) — with a note attached to the results naming the engine that actually served them (e.g. `Note: perplexity unavailable or failed, using exa.`). Failures are classified: quota/auth failures cool the engine down for the session, anti-bot walls back off briefly, timeout/5xx/rate-limit failures retry the same engine once, and parse errors / 0 results are reported without cooling it down (see \"Failure-aware fallback\" below). Search never fails outright.\n- **Time Filtering** — The `advanced_search` tool supports `timeRange`: fixed tiers, custom relative values, or an absolute date (details below)\n- **System Prompt Injection** — The agent is aware of the currently active engine and which engines require API keys; it is also told that all search output is **untrusted external data** and must never be executed as instructions\n- **Prompt-Injection Guard (untrusted-data boundary)** — Web-derived text from the plugin's own tools (`advanced_search` / `platform_search` / `free_search_test`) is wrapped in an explicit `<untrusted-web-content>` boundary (look-alike tags inside the text are stripped to prevent early closure); the core `web_search` / `web_fetch` tools carry DSH core's own notice (`External web content follows...`); every snippet is cleaned and capped at 300 characters\n- **Version + Update Check** — The settings card shows the current version (v0.4.17), and a \"Check update\" button queries the npm registry to compare against the latest release, prompting a one-click jump when a newer version exists\n- **Result Caching** — Identical queries (same engine / time-filter args) hit an LRU cache (50 entries) for up to 5 minutes, protecting free engines from rate-limiting and saving paid quota; the TTL is configurable from 0-5 minutes in the settings UI (0 disables caching)\n- **Visual Badges** — Free engines feature a green `FREE` badge, while paid engines show an orange `API KEY` badge in the settings UI\n- **Webpage Fetching (`web_fetch`)** — Allows the agent to read full webpage contents (official `dsh-web-fetch-http` provider, pure JS, zero extra dependencies)\n- **Platform Search (`platform_search`)** — Search GitHub / V2EX / Bilibili / Reddit / Hacker News / Stack Overflow / Wikipedia / npm / YouTube / Vimeo (public APIs or keyless scraping, zero extra dependencies)\n- **Video Search (`video_search`)** — Find videos across the web via Bing Videos + DuckDuckGo Videos (keyless, mutual fallback), returning video links with titles and publisher/duration metadata\n- **Clean Integration** — Implements the official `WebSearchProvider` seam interface, coexisting seamlessly with official plugins\n\nIf this plugin has been helpful, a ⭐ on [GitHub](https://github.com/DDDMUC/dsh-free-search) would mean a lot — it's the biggest motivation for the developer to keep maintaining it. Thank you!\n\n### Supported Engines\n\n| id | Engine | Cost | Description |\n|---|---|---|---|\n| `auto` | Auto Smart Routing | Dynamic | **Smartly routes engines based on query language/time filter** (Chinese queries prioritize Bing/Baidu/Aliyun/AnySearch, English queries prioritize Bing/Exa/Tavily; time filters prioritize time-capable engines), with full fallback |\n| `ddg` | DuckDuckGo HTML | Free | Occasional rate limits (anti-bot challenges); recovers automatically |\n| `ddg-lite` | DuckDuckGo Lite | Free | Lightweight version; same rate-limit behavior as above |\n| `bing` | Bing | Free | **Default engine**, most stable, optimized for Chinese (`zh-CN`) |\n| `anysearch` | AnySearch AI | Free | AI search, no key needed (anonymous quota) |\n| `searxng` | SearXNG Meta Search | Free | Multi-instance automatic failover; supports custom instances |\n| `exa` | Exa | Free | **Usable without a key** (anonymous MCP); configure a key for higher quota |\n| `tavily` | Tavily | Free | **Usable without a key** (keyless anonymous); configure a key for higher quota |\n| `keenable` | Keenable | Free | **Usable without a key** (anonymous MCP); configure a key for higher quota |\n| `firecrawl` | Firecrawl | Free | **Usable without a key** (official keyless anonymous quota); configure a key for higher limits |\n| `parallel` | Parallel | Free | **Works without a key** (official MCP anonymous quota); a key raises limits and enables precise time filtering |\n| `perplexity` | Perplexity | Paid | Requires `PERPLEXITY_API_KEY` |\n| `serpbase` | SerpBase | Paid | Requires `SERPBASE_API_KEY` (serpbase.dev, 100 free queries on signup) |\n| `serply` | Serply | Paid | Requires `SERPLY_API_KEY` (serply.io, 2,500 free credits for the first 30 days); Google web results localized to the settings language |\n| `deepseek-official` | DeepSeek Official | Paid | Requires `DEEPSEEK_API_KEY` |\n| `you` | You.com | Paid | Requires `YOUCOM_API_KEY` (you.com/platform/api-keys, free tier on signup) |\n| `baidu` | Baidu Qianfan AI Search | Quota | Requires `BAIDU_API_KEY` (Qianfan AI Search, 50 free calls/day then pay-as-you-go); Chinese web-wide, supports time filtering |\n| `kimi` | Kimi (Moonshot) Web Search | Paid | Requires `MOONSHOT_API_KEY` (basic ~¥0.01/call); returns Chinese results with body chunks |\n| `aliyun` | Aliyun Bailian EnhancedSearch | Paid | Requires `DASHSCOPE_API_KEY` (MCP search_pro, ~¥0.03/call, 200 free calls for new users); Chinese web-wide with source hostnames |\n| `doubao` | Volcano Web Search (Doubao) | Free quota | Requires `DOUBAO_SEARCH_API_KEY` (open it in the Web Search console; **500 free queries/month**, pay-as-you-go beyond); strong for fresh Chinese content, supports time/site filters, returns long summaries |\n| `openai` | OpenAI built-in web search | Paid | Requires `OPENAI_API_KEY`; uses the Responses API `web_search` tool and returns a cited answer. **Billed per search, explicit selection only** (never picked by the fallback chain or Auto); default `gpt-6-luna`, model/endpoint configurable (`openaiModel` / `openaiBaseUrl`) |\n| `gemini` | Gemini grounding with Google Search | Paid | Requires `GEMINI_API_KEY` (falls back to `GOOGLE_API_KEY`); uses the recommended **Interactions API** (`POST /v1beta/interactions`, `tools:[{type:\"google_search\"}]`) and reads citations from `steps[].content[].annotations`. **Billed per search, explicit selection only**; default `gemini-3.8-flash`, model/endpoint configurable (`geminiModel` / `geminiBaseUrl`) |\n| `claude` | Claude server-side web_search | Paid | Requires `ANTHROPIC_API_KEY`; results come from `web_search_tool_result`. **Billed per search, explicit selection only**; default `claude-sonnet-5-5`, model/endpoint configurable (`claudeModel` / `claudeBaseUrl`) |\n\n- **Default engine is `bing`** (free and most stable), ready to use out of the box after installation.\n- **Auto-failover**: any engine failure (rate-limited free engine, or missing/invalid paid key, network error) automatically tries the next engine — the configured engine first, then other engines (exa/tavily/keenable/firecrawl/parallel are tried even without a key because they have built-in keyless quota), then the remaining free engines (Bing/AnySearch etc.) — with a note attached to the results naming the engine that actually served them (e.g. `Note: perplexity unavailable or failed, using exa.`). Search never fails outright because of engine issues.\n- **Official Links in Settings**: Free engines display \"Visit Website →\", while paid engines display \"Get API Key →\" (opens in a new tab):\n  - Exa: <https://dashboard.exa.ai/api-keys>\n  - Tavily: <https://app.tavily.com/home>\n  - Keenable: <https://keenable.ai/login>\n  - Parallel: <https://platform.parallel.ai>\n  - Perplexity: <https://www.perplexity.ai/settings/api>\n  - SerpBase: <https://serpbase.dev>\n  - Serply: <https://serply.io> (API docs: <https://serply.io/docs>)\n  - DeepSeek: <https://platform.deepseek.com/api_keys>\n  - Doubao / Volcano Web Search: <https://console.volcengine.com/search-infinity/web-search>\n  - You.com: <https://you.com/platform/api-keys>\n\n#### Why are some engines free?\n\n- **AnySearch**: its `v1/search` REST endpoint provides anonymous public search quota without registration or an API key. Quota is rate-limited (fine for daily queries), but as one of the free engines with mutual fallback it stays reliable.\n- **Exa**: its public MCP endpoint (`mcp.exa.ai/mcp`) supports anonymous requests, so it works without a key; configuring `EXA_API_KEY` grants a higher usage quota.\n- **Tavily**: offers keyless anonymous quota via the `x-tavily-access-mode: keyless` header — it works without a key; configuring `TAVILY_API_KEY` switches to the account tier for higher quota and more stable results.\n- **Keenable**: without a key it is called via its public MCP endpoint (`api.keenable.ai/mcp`); configuring `KEENABLE_API_KEY` switches to the REST API (`api.keenable.ai/v1/search`) for higher quota and organization-scoped rate limits.\n- **Firecrawl**: its `/v2/search` endpoint works **without a key** out of the box (the official docs state \"No API key needed to get started\", with anonymous rate limits); configuring `FIRECRAWL_API_KEY` raises the limits. Supports `tbs` time filtering (`qdr:h/d/w/m/y` and custom date ranges).\n\n### Installation\n\n```sh\ngit clone https://github.com/DDDMUC/dsh-free-search.git\ndsh plugin --profile web add /path/to/dsh-free-search\n```\n\nThen restart:\n\n```sh\ndsh web\n```\n\n#### Takeover behavior and verification\n\nThe plugin **takes over search at runtime** once loaded (it does not touch the config layer):\n\n- When `web.searchProvider` is unset, or still the shipped default `deepseek-official`, it switches to this plugin's provider (id: `ddg`);\n- If you (or another plugin) explicitly selected a different provider, it does not steal it — it only logs a WARN with a copy-pasteable YAML snippet.\n\n**It no longer writes `searchProvider: ddg` into the config layer.** A static override used to create a dangling reference: a patch replaces the whole row config, so when the plugin's row was **disabled or skipped** (e.g. switched off in the plugin manager) the config still said `ddg` while nothing registered it, and every search failed with:\n\n```\nError: configured web provider \"ddg\" is not registered\n```\n\nWithout that override, a disabled plugin leaves `web.searchProvider` at the shipped default (`deepseek-official`) so search still works through the official provider; when the plugin is enabled the runtime takeover above points it at `ddg`.\n\n> If you previously added the snippet below by hand to `profiles/<profile>/cordis.patch.yml` *and* the plugin is not enabled, you will see that error — **just remove the snippet** (or re-enable the plugin):\n\n```yaml\n# Optional; normally unnecessary — only to force a specific provider.\n# Since DSH 0.1.2 a patch REPLACES the whole entry config: keep fetchProvider.\n- id: web\n  config:\n    searchProvider: ddg\n    fetchProvider: http\n```\n\n- `searchProvider: ddg` — this plugin's **fixed provider id**, not \"use the DuckDuckGo engine\"; the engine is chosen by the `provider` field in settings (`bing` / `baidu` / `auto` / …).\n- `fetchProvider: http` — the official web-fetch provider; keep it when declaring the row by hand.\n- To go back to official search: disable this plugin's entry in the plugin manager — no config edit needed.\n\n#### Sister Plugin: dsh-preset-workbench\n\nA **sister plugin** by the same author: a **visual workbench for creating/editing agent presets** right inside Settings — sectioned prompts, 15 capability toggles, and built-in \"Whale Girl / Liangshen Mode\" templates, no YAML needed. Pair them up: **free-search gives your AI web search, preset-workbench shapes its persona & capabilities** — both free and zero-config.\n\n- Repo: <https://github.com/DDDMUC/dsh-preset-workbench>\n- Install: `dsh plugin --profile web add github:DDDMUC/dsh-preset-workbench`\n- Usage: Settings → Preset Workbench\n\nIf preset-workbench is useful to you too, a ⭐ on its repo is always welcome. 🙏\n\n#### Dependency Note\n\nThis plugin intentionally specifies `@deepseek-ai/dsh-settings` and `@deepseek-ai/dsh-tools` as `peerDependencies`: the DSH runtime must use a single instance from the installation tree. Always install the plugin using `dsh plugin --profile <profile> add ...`. Do **not** copy DSH core packages into a profile-local `node_modules`, as duplicate copies can break the tool scheduler.\n\n### Usage\n\n#### Web Settings (Recommended)\n\nAfter installation, open the config page (DSH 0.1.7-rc.1+):\n\n- Sidebar **Plugins** page → **Installed** group → `free-search` → click the `web-search-free` component row (the row's \"configure\" entry)\n\nThe config page provides:\n\n- **Search engine**: Select an engine from the dropdown; changes take effect immediately upon saving.\n- **API keys**: Enter keys for Exa / Tavily / Keenable / Firecrawl / Parallel / Perplexity / DeepSeek (password fields; displayed as \"configured\" once saved; Exa / Tavily / Keenable / Firecrawl / Parallel work without a key too).\n  - **Recommended**: store paid-engine keys in the harness credential center `~/.dsh/.credentials.yaml` (e.g. `DEEPSEEK_API_KEY: sk-...`, same as the official LLM providers — one place for all keys). Resolution order: credentials center > settings page > environment variable; the settings-page fields remain for backward compatibility.\n- **Test engine**: Tests the selected engine directly (no fallback chain; paid engines without a key report an explicit error).\n- **Use Bing default**: stage a switch back to the stable free Bing engine; `Discard` only cancels unsaved edits\n- **Platform search**: check platforms (GitHub / V2EX / Bilibili / Reddit / HN / Stack Overflow / Wikipedia / npm / YouTube / Vimeo) to enable them for the `platform_search` tool (disabled platforms are skipped).\n- **EN / 中文**: toggle the interface language (default Chinese).\n\n<table align=\"center\" style=\"border: none; border-collapse: collapse;\">\n  <tr style=\"border: none;\">\n    <td align=\"center\" width=\"50%\" style=\"border: none; padding: 6px;\">\n      <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free.png\">\n        <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-free.png\" alt=\"Free Engine Settings\" width=\"100%\" />\n      </a>\n      <br>\n      <sub>▲ <b>Free Engine</b> (shows green FREE badge and official website link)</sub>\n    </td>\n    <td align=\"center\" width=\"50%\" style=\"border: none; padding: 6px;\">\n      <a href=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-apikey.png\">\n        <img src=\"https://raw.githubusercontent.com/DDDMUC/dsh-free-search/master/assets/settings-apikey.png\" alt=\"Paid/API Key Engine Settings\" width=\"100%\" />\n      </a>\n      <br>\n      <sub>▲ <b>Paid / API Key Engine</b> (shows orange API KEY badge and link to get an API key)</sub>\n    </td>\n  </tr>\n</table>\n\n#### Switching Engines from the Chat (/free-search-engine)\n\nYou can also switch the engine right from the chat — no need to open the settings page. Type `/free-search-engine`: a **picker opens with all engines** (the same interaction as `/model` for selecting a model). Click one to switch; the current engine is marked. Equivalent to switching and saving in the settings page, and the language follows the settings page (Chinese/English).\n\nThe command only changes the preferred engine; search still goes through `web_search` + the unified fallback chain — even if the preferred engine fails, it automatically switches to others, never failing outright. The system prompt refreshes accordingly.\n\n#### Engine Switches, Fallback Priority and Multi Mode\n\nThe settings page has three new blocks (all saved into the entry config):\n\n- **Globally enabled engines**: unchecking an engine excludes it everywhere — the web_search fallback chain, Auto routing, `advanced_search`, `multi_search` and engine tests. At least one engine must remain enabled.\n- **Global fallback priority**: use ↑↓ to reorder. The preferred engine is still tried first; Auto keeps its language/time routing, while a customized order governs engines inside a route group and the remaining fallback chain. Disabled engines stay in the list (marked \"disabled\") but are skipped; \"Reset default order\" restores the defaults.\n- **`Multi Search` in the engine dropdown**: web_search then queries the top 3 enabled routed/prioritized engines concurrently, merges/deduplicates URLs and prioritizes cross-source hits. This multiplies quota usage; if a multi run fails it automatically falls back to the single-engine chain and says so in the result note.\n\n#### Failure-aware fallback\n\nThe fallback chain no longer treats every failure the same way — it classifies them first (issue #36):\n\n- **`quota`** (HTTP 402 / `NO_MORE_CREDITS` / SerpBase free quota exhausted): fail over immediately and put the engine on a **process-wide cooldown**, so later searches stop hammering an engine that cannot succeed;\n- **`auth`** (401/403, invalid or missing key): same — cooled for the rest of the session (reload the plugin after fixing the key);\n- **`bot-wall`** (e.g. the DDG anti-bot challenge): cools down for a short while (60s by default), then rejoins the chain;\n- **`transient`** (timeout / 5xx / network / 429 rate limit): the engine is **retried once** before advancing, so a single blip does not drop a good engine;\n- **`invalid-response`** (parse failure / schema change / 0 results): still fails over, but is reported as a plugin-side issue and does not cool the engine down.\n\nThe `Note:` line now names the class, e.g. `Note: exa is out of quota, using doubao.`, `Note: perplexity is misconfigured (API key rejected), using doubao.`, `Note: bing failed (transient), using doubao.`. `free_search_test` also reports the class per failed engine (`failureClass`).\n\nCooldowns are per-process (reloading the plugin or restarting clears them) and apply to the configured preferred engine too: if it is cooling down, this run skips it, fails over and says `is cooling down`. An engine that succeeds is automatically un-cooled.\n\n`fallbackOn` decides which failure classes are **allowed** to trigger a fallback: by default all six are checked, i.e. today's \"search never fails outright\". Unchecking a class makes such a failure **stop the search and surface that engine's error** instead of trying another engine (e.g. drop `invalid-response` and a preferred engine that returns nothing/parses badly fails loudly rather than silently handing you a lower-quality engine's results). An empty array `[]` aborts on any failure. Note that **missing keys, disabled engines and unsupported time filters are not failures** and always advance. There is a matching checkbox group in the settings page, and you can also write `fallbackOn: [quota, auth, bot-wall, transient, invalid-response, unknown]` in the config.\n\n#### Configuration File\n\nSince DSH 0.1.7-rc.1 the configuration is stored with the profile's plugin entry: the settings page and `/free-search-engine` both write the `config` of the `web-search-free` (`dsh-free-search`) entry in the active profile's `cordis.patch.yml`.\n\nThe old `free-search:` section of `~/.dsh/settings.yaml` is **not** imported by the DSH core (`importLegacyDocument` only maps `ui-developer-tools` / `ui-onboarding` / `shell`); the file is renamed to `settings.yaml.imported` after the other sections are imported, and the section's values stay there. The plugin detects that section in `settings.yaml.imported` (or in a still-present `settings.yaml`) at startup and seeds the recognized fields into this entry's `config` **once** (watch for `free-search: migrated N field(s)…` in the startup log). You can also migrate manually by copying the values from `settings.yaml.imported` into the plugin row config.\n\n```yaml\n# config of that entry in profiles/<profile>/cordis.patch.yml:\nprovider: bing              # ddg / ddg-lite / bing / searxng / anysearch / exa / tavily / keenable / firecrawl / parallel / perplexity / serpbase / serply / deepseek-official / you / baidu / kimi / aliyun / doubao / openai / gemini / claude / auto / multi\nfallbackOn: [quota, auth, bot-wall, transient, invalid-response, unknown]   # failure classes allowed to trigger fallback; [] = abort on any failure (default: all)\nlang: zh                    # settings UI language (zh / en)\nbingMarket: zh-CN           # Bing market\nregion: cn-zh               # DuckDuckGo region (optional)\nsearxngInstances:           # Custom SearXNG instances (optional)\n  - https://your-instance.example\nexaApiKey: ...              # Or configure via the web settings UI\ntavilyApiKey: ...           # Or configure via the web settings UI\nkeenableApiKey: ...         # Or configure via the web settings UI\nfirecrawlApiKey: ...        # Or configure via the web settings UI\nparallelApiKey: ...         # Or configure via the web settings UI\nperplexityApiKey: ...\nserpbaseApiKey: ...         # Or configure via the web settings UI\nserplyApiKey: ...           # Or configure via the web settings UI\ndeepseekApiKey: ...\n```\n\n#### Asking the Agent to Test All Engines\n\nTell the agent *\"Test all search engines\"*, and it will call the `free_search_test` tool to check each engine sequentially and report back:\n\n```\nSearch engine test:\n- ddg: FAIL - DuckDuckGo is rate-limited right now (anti-bot challenge, usually temporary) - Bing works\n- bing: OK (2 results, e.g. \"DeepSeek Harness developer preview...\")\n- exa: FAIL - EXA_API_KEY not configured\n```\n\n#### Time Filtering (`advanced_search`)\n\nAsk the agent for *\"news from the last week\"*, *\"releases this month\"*, *\"updates from the last 3 days\"*, or *\"posts since July\"*, and it will call the `advanced_search` tool with a `timeRange` parameter. It uses the same unified fallback chain, can force a specific `engine`, and returns the same shape as `web_search`.\n\n**The `timeRange` parameter accepts three forms:**\n\n| Form | Example | Meaning |\n|---|---|---|\n| Fixed tier | `day` / `week` / `month` / `year` | = 1 / 7 / 30 / 365 days |\n| Custom relative | `12h`, `3d`, `2mo`, `1y` | last 12 hours / 3 days / 2 months / 1 year |\n| Absolute date | `2026-07-01` | results published on or after that date |\n\n**How each engine handles `timeRange`:**\n\n| Engine | Parameter | Precise? | Notes |\n|---|---|---|---|\n| Exa | `startPublishedDate` | ✅ precise | custom days become an ISO date (N days ago); absolute dates pass through |\n| Keenable | `published_after` | ✅ precise | relative values (`12h/3d/2mo/1y`) and absolute dates pass through |\n| Tavily | `time_range` | ⚠️ approximate | only fixed tiers; custom days map to the nearest tier |\n| Firecrawl | `tbs` | ⚠️ approximate | fixed tiers map to `qdr:d/w/m/y`; absolute dates use `cdr:1,cd_min:M/D/YYYY` (precise) |\n| Parallel | `source_policy.after_date` with a key (precise); without a key the MCP path has no date parameter, so the window is written into the objective as a freshness hint (soft filter) | ✅ precise / ⚠️ soft | custom days become an ISO date (N days ago); absolute dates pass through |\n| SearXNG | `time_range` | ⚠️ approximate | same as above |\n| DuckDuckGo / Lite | `df` | ⚠️ approximate | same as above |\n| Bing / AnySearch | — | ❌ ignored | no corresponding parameter |\n\n**Nearest-tier mapping rule**: `≤2 days → day`, `≤14 days → week`, `≤90 days → month`, otherwise `year`. For example, `3d` becomes `day` on Tavily, and `2mo` becomes `month`.\n\n**Engine-chain priority**: when a `timeRange` is present, engines that support time filtering (tavily / exa / keenable / firecrawl / parallel / searxng / ddg / ddg-lite) are moved to the front of the fallback chain, so the filter actually takes effect — even if the preferred engine is bing (which does not support filtering), a filtering-capable engine is tried first.\n\nExample: *\"Find DSH news from the last 3 days\"* → agent calls `advanced_search` with `timeRange: \"3d\"`.\n\n#### Multi-Engine Concurrent Search (`multi_search`)\n\nWhen you need **cross-source verification** to prevent biases or fail-safes from a single engine, the agent can call `multi_search`:\n\n- **Concurrent Execution**: Defaults to querying the top 3 recommended engines for the query type (or an explicit list passed via `engines`). Each engine independently resolves API keys and handles errors (missing keys are skipped without failing the batch).\n- **Deduplication & Merge**: Normalizes URLs and ranks items by the number of engines that found them (`seenIn` counts), with cross-hit results placed at the top.\n- **Untrusted Boundary**: Enforces the `<untrusted-web-content>` safety wrapper and trims snippets.\n- ⚠️ Note: Running multiple engines in parallel consumes more search quota; use on demand when high source diversity is needed.\n\n#### Fetch Webpage Content (`web_fetch`)\n\nAfter searching, the agent can **read full webpage content** (e.g., *\"Open the first link and summarize it\"*). The `web_fetch` tool is enabled by default (official `dsh-web-fetch-http` provider):\n\n- Automatically follows redirects and decodes HTML to plain text.\n- Supports timeout and response size limits.\n- ⚠️ Note: `web_fetch` does not have SSRF protection; the agent could theoretically access internal network addresses. Use as needed.\n\n#### Platform Search (`platform_search`)\n\nAsk the agent to search specific platforms (e.g., *\"Search GitHub for deepseek harness\"*, *\"Find related videos on Bilibili\"*, or *\"Discussions about dsh on V2EX\"*). The `platform_search` tool supports:\n\n| Platform | Purpose |\n|---|---|\n| `github` | GitHub repository search (public API, free, no key required) |\n| `v2ex` | V2EX hot / relevant topics |\n| `bilibili` | Bilibili video / content search (public API) |\n| `reddit` | Reddit posts / discussions (public JSON API; may be blocked by Reddit anti-bot in some network environments) |\n| `hn` | Hacker News tech community discussions (official Algolia API) |\n| `stackoverflow` | Stack Overflow Q&A (official public Stack Exchange API) |\n| `wikipedia` | Wikipedia articles (zh.wikipedia.org for Chinese; switches to en.wikipedia.org when `lang: en`) |\n| `npm` | npm package search (registry official API) |\n| `youtube` | YouTube video search (scrapes the results page `ytInitialData`, keyless) |\n| `vimeo` | Vimeo video search (scrapes the search page's embedded data; falls back to web search `site:vimeo.com`, keyless) |\n\nThese rely on public endpoints or keyless scraping, with zero external dependencies and no API keys. `youtube` / `vimeo` must first be enabled in Settings → Platform search.\n\n#### Video Search (`video_search`)\n\nAsk the agent to find videos: *\"find some videos about X\"*, *\"any tutorials for Y\"*. `video_search` searches across the web:\n\n| Source | Notes |\n|---|---|\n| `bing` | Bing Videos (scrapes the `vrhm` metadata on `bing.com/videos/search`, keyless) |\n| `ddg` | DuckDuckGo Videos (vqd + `v.js`, keyless) |\n\nBoth sources are tried by default with mutual fallback, returning `url / title / snippet` (publisher, duration, etc.). **Keyless scraping — may break if the site changes its markup**; to search a specific site (YouTube / Vimeo / Bilibili) use `platform_search`.\n\n### Local Engine Switcher (`tools/`)\n\nThe `tools/` directory includes a lightweight, zero-dependency switcher:\n\n- **`启动搜索引擎切换器.cmd`** (Windows) — Double-click to launch a local Node server (`http://127.0.0.1:4789`) and automatically open the engine selector page in your browser.\n- **`switch-engine.html`** — The selector UI: displays current engine status and allows one-click switching.\n- **`server.mjs`** — The local backend service responsible for reading/writing `~/.dsh/profiles/web/cordis.patch.yml`.\n- **`switch-engine.ps1`** — Headless PowerShell script: `powershell -File tools/switch-engine.ps1 -Engine bing`.\n\nRestart `dsh web` after switching to apply changes.\n\n> The settings card mounts into the official `plugins.row.config` component-row slot on the sidebar Plugins page (built into DSH), and configuration reads/writes go through the plugin's own bridge. **No `dsh-web-ui` dependency — the plugin can be used standalone.**\n\n### Proxy Note (for Users in Mainland China)\n\nEngines like DuckDuckGo may require a proxy. Since Node.js `fetch` does not use the system proxy by default, set the following environment variables for the dsh process (Node 24+):\n\n```sh\nexport NODE_USE_ENV_PROXY=1\nexport HTTPS_PROXY=http://127.0.0.1:7897   # Your proxy address\nexport HTTP_PROXY=http://127.0.0.1:7897\n```\n\nWindows users: The desktop shortcut already includes this configuration (`set NODE_USE_ENV_PROXY=1&& set HTTPS_PROXY=...`).\n\n### How It Works\n\n- `lib/index.js`: Host side. Implements `WebSearchProvider` (`id` / `available()` / `search()`), unified engine routing + auto-fallback (paid engines first, free as fallback); parses `timeRange` (fixed tiers / relative values / absolute dates) and forwards it to each engine; declares its editable config as volatile fields on the `web-search-free` composition entry and ships its own settings page (`plugins.row.config`); provides the `/api/dsh-free-search-settings` read/write bridge + `raw-search` debug endpoint; registers the `free_search_test`, `platform_search`, `video_search`, and `advanced_search` tools; dynamically injects the engine list into system prompts (auto-refreshes on settings change).\n- `lib/client.js`: Browser side. React configuration card (engine select, key inputs, connectivity test, and Chinese/English toggle), mounted into the official `plugins.row.config` component-row slot on the sidebar Plugins page; registers the `/free-search-engine` popup switch command (`commandUi` popupSelect, the same mechanism as `/model`).\n- `cordis.patch.yml`: Plugin loader configuration.\n\n### License\n\nMIT\n\n## safeSearch 安全搜索过滤\n\n- 全新配置项 `safeSearch`：`off`（引擎默认，不加参数）/ `moderate` / `strict`\n- 作用于 Bing（adlt）、DuckDuckGo HTML（adlt）、DuckDuckGo Lite（adlt）\n- 默认 `off`：不额外过滤，保持引擎自身默认行为；需要时在「设置 > 插件 > Free Search」切换\n","readmeFilename":"README.md"}