{"_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk","_rev":"7-d57767d48a385e26dd1918cd8ed4f72f","name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.0","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.0","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"702c32e12c3f6d6063ea58689d66c4e48d0330dc","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.0.tgz","fileCount":9,"integrity":"sha512-eK7LDOpGgZ4I+kjTROGwqKPIKeKYSJ0swF0wETFNZSriTeo49U4+cC4yW3N8qmbiXjBtUMzyHNf8y72vWLPK5w==","signatures":[{"sig":"MEYCIQCTkliZdIbwt7DgRoBAf9Df/SlEj9f0Rt1gNsRSbYEZIgIhALkbvWT3WM9xGDqy/XL6v5tbH8dFqEUtfFSjfs2pXmhH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35868},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"194f9641b4bc934b29b5c49188322d1d1d8b56c8","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"^0.1.2"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.2-rc.1","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":">=0.1.0-rc.6"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.0_1788796105907_0.5609626530164522","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.1","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.1","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"97903243faf0b0092a24a18f948f081c9de4f94c","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.1.tgz","fileCount":9,"integrity":"sha512-uvtqrTSKYg1QLtkuHEw1PBq/PazcYczzIVVHfnPACvQ/XrRF4znpxSdMxdiOCQ1sSGhQAV7WJnSvbzy7skLhBg==","signatures":[{"sig":"MEUCIDjVjvbaqOH1VlRnkKB8NtVH4SJdycaXQfdQCZsG0rtGAiEAwlGpXzJGTgRtk5CCQ+uakHAXxrLA88FjOrzGgKfd710=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAfqFKfHtE4WFu71PPbsH2SO6bT9YipRYawCsGlD6oD/AiA2ScsoDlgkn6ufhk8bvqXE06f+Odu2u4k7dbFPEwJjmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36217},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"8fa0ec715dce80fbc0e59ce054e0c76da19e7e88","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.5"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@deepseek-ai/dsh-tools":"0.1.5-rc.1","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.1_1789027056954_0.6476793537565471","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.2","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.2","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"596e394667c0d5ca76760fba701e7e0981488092","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.2.tgz","fileCount":9,"integrity":"sha512-2h326j1qo6yPKUHnDQ99+j1uSOlmjJsC4GM22Ac62KXIpJvAapWbLsc/Dm9JrPDU0U8cKWunhERhMsLgMEDvZg==","signatures":[{"sig":"MEUCIQDDAcn0lqlWlNV7JECPv5I7uyKEsw3rs5/SXnTPoQRcxgIgJ0FIFlh8YlE15iFTmA04xmL3knKrgSjy32ckuuCQu+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCA5eL+IQ6eK7cO5UGBEiT1rvWEL6HhLbxi9s9KFbQLJQIgIsVRUKfthdE0GRjWpb3mYUY45nCgX8KsOaeSe3T5AUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36188},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"49800401f88fe4009128d43bee43d76b7c38a6eb","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.6"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@deepseek-ai/dsh-tools":"0.1.5-rc.1 || 0.1.5-rc.2","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1 || 0.1.5-rc.2"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.2_1789357253329_0.26035536000575665","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.3","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.3","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"1827477c8300e351f3a085b2b7d8ac84550e4bfc","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.3.tgz","fileCount":9,"integrity":"sha512-4/vZzN1WqsCbSeoZVFOe5BQx4/tZQXqTPKh3+JJQnpp3akVbEXA78nhddmOGmH7Mw5Ea342p8ifCRDZ0j/xM3g==","signatures":[{"sig":"MEQCICQd5qaztreeLPqqYvRsUe8p6YI8ecXRPU0mB5fWk2aAAiA1u7UvNXRNMFT/OGz7MVqSasziqH/vnh5jXldwp8d9Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAlh6wTqh53CAo7xBWHSwQ3hFOYY8TzaSWLEj5ICrdWYAiAHYyogohPesuI54Ywfv4tGqf5o3/fTz1BlXVawi7OcLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36370},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"1a1da7728faf2f45518b5e1deec69ab51a6e83af","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 / DingTalk (Stream Mode) behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.7"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@deepseek-ai/dsh-tools":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.3_1790005958237_0.016808684532887197","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.4","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.4","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"7b389c7bec8f4a68c894090c222cb7428555e5b8","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.4.tgz","fileCount":9,"integrity":"sha512-kPgkR2T73qAKrLd8dWQpyFj0X9du/k/avk9AQfi3bBKAbe0P+E0gmZ7oqcphynrQ7pUsERMDc3SxiG0Qs/vlDw==","signatures":[{"sig":"MEYCIQCUYrtE8A7RyYc055RBfWpo7el4SQ0js+PuYYkRiMQu0wIhANj42EqHdIjHqxTghq5fl9kuZJzi51MvIUh049lppIgT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDhkhdsGxtn0zwji8svsGaP7EvDyUoyb+AQSdTe3GmcvAIgYmm9KdN6u2GyikuLxJP8eGbE4xu3kViEkwzcoBut6GI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36427},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"a78ce2d8644092dfca297b49156253e6ab4226ee","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 / DingTalk (Stream Mode) behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.8"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.4","@deepseek-ai/dsh-tools":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || 0.1.7-rc.2","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || 0.1.7-rc.2"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.4_1790433695916_0.7788394427822731","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","version":"0.1.5","license":"MIT","_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.5","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"homepage":"https://github.com/mapan0424/deepseek-harness-plugins#readme","bugs":{"url":"https://github.com/mapan0424/deepseek-harness-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"4edd415b3e572fd6f3bbf22de236ea4899eba66f","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.5.tgz","fileCount":9,"integrity":"sha512-9Wr/ajfqcdncotWIx7yIeJxLv/YDi5rsIc73ewoAWGU5CJ6GbHd3vdiVWO9VPwkNH20w4GkHWkGy+KFBWDL4og==","signatures":[{"sig":"MEYCIQDgWnqYWBJtBaPrGUsrcnbBzgGTF0HNi67JiUci9WSwmAIhALANYGYzebhRLOiM1fXfpCJENpdiqnCjyo2NhvWtj6U1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD3sn9/QbFYg3OcEZzjqjGT1Ld3sSf6n0UNZqYNOY4YhgIgDpyFylsBGnhBSNE8NF4vr5nLf0+lvJuaV/FUafJDwqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36530},"main":"./index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"gitHead":"df874e1f08256ae19611b711204495bc94ca32f4","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"git+https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"_npmVersion":"10.9.8","description":"Channel plugin for DeepSeek Harness: 钉钉 / DingTalk (Stream Mode) behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.9"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.4","@deepseek-ai/dsh-tools":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || ^0.1.7-0 || >=0.1.7","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || ^0.1.7-0 || >=0.1.7"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.5_1790444871328_0.870545757647526","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"_id":"@anarkhgatsby/deepseek-harness-channel-dingtalk@0.1.6","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"e03f76d433c73f3e890cb1113a48c176da81ca91","tarball":"https://registry.npmjs.org/@anarkhgatsby/deepseek-harness-channel-dingtalk/-/deepseek-harness-channel-dingtalk-0.1.6.tgz","fileCount":9,"integrity":"sha512-CsULgWXk0jVfrGddQq1kzP0W+qcdXys542XCRrKew6qmpo3dDie9EnieEiwdEsJ0PccFON7YEKXJhmbPDA7yAA==","signatures":[{"sig":"MEUCIDvCgHTMIwkldlkz862J8kpD9o1IbfFhFEVt2byWiMM7AiEAzIV9h8IV/pfc3bwTQMNcxJ1EkRzcFgwz6jjY0YDA6pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCDatGBCqSnN4AdzbP1MzI9Nvehl3hnlvUoKVKJObkLxAIhAK04MnZLr8Y/JJOwrT3+sAnln5AKFzSwT2f2LAvPu+cp"}],"unpackedSize":36648},"main":"./index.js","name":"@anarkhgatsby/deepseek-harness-channel-dingtalk","type":"module","exports":{".":"./index.js","./client":"./client.js","./package.json":"./package.json"},"license":"MIT","version":"0.1.6","_npmUser":{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"},"repository":{"url":"https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"description":"Channel plugin for DeepSeek Harness: 钉钉 / DingTalk (Stream Mode) behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","directories":{},"maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@anarkhgatsby/deepseek-harness-core":"0.1.10"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.4","@deepseek-ai/dsh-tools":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || ^0.1.7-0 || >=0.1.7","@deepseek-ai/schemastery":">=3.18.0","@deepseek-ai/dsh-typert-protocol":"0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.2 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || ^0.1.7-0 || >=0.1.7"},"optionalDependencies":{"ws":"^8.18.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/deepseek-harness-channel-dingtalk_0.1.6_1791297622331_0.44422263556223207"}}},"time":{"created":"2026-09-07T15:48:25.730Z","modified":"2026-10-06T14:40:22.585Z","0.1.0":"2026-09-07T15:48:26.042Z","0.1.1":"2026-09-10T07:57:37.044Z","0.1.2":"2026-09-14T03:40:53.419Z","0.1.3":"2026-09-21T15:52:38.341Z","0.1.4":"2026-09-26T14:41:36.034Z","0.1.5":"2026-09-26T17:47:51.415Z","0.1.6":"2026-10-06T14:40:22.420Z"},"license":"MIT","repository":{"url":"https://github.com/mapan0424/deepseek-harness-plugins.git","type":"git","directory":"packages/harness-channel-dingtalk"},"description":"Channel plugin for DeepSeek Harness: 钉钉 / DingTalk (Stream Mode) behind one message bus. Thin facade on @anarkhgatsby/deepseek-harness-core.","maintainers":[{"name":"anarkhgatsby","email":"pan.anarkh1994@gmail.com"}],"readme":"# `@anarkhgatsby/deepseek-harness-channel-dingtalk`\n\n[简体中文](README.zh-CN.md) | [NPM](https://www.npmjs.com/package/@anarkhgatsby/deepseek-harness-channel-dingtalk) | [Repository](https://github.com/mapan0424/deepseek-harness-plugins/tree/main/packages/harness-channel-dingtalk)\n\n[![npm version](https://img.shields.io/npm/v/@anarkhgatsby/deepseek-harness-channel-dingtalk.svg)](https://www.npmjs.com/package/@anarkhgatsby/deepseek-harness-channel-dingtalk) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n\nDingTalk bot channel plugin for **DeepSeek Harness**, using DingTalk's Stream long-connection transport and the shared `GatewayCore` message bus.\n\n> ⚠️ **Unofficial project** — independently developed and maintained by the open-source community. It is not an official DeepSeek or DingTalk product.\n\n## Features\n\n* **Stream long connection** for local deployments without a public webhook endpoint.\n* **One-to-one and group conversations**, with sender / conversation routing and optional allowlists.\n* **Markdown replies and active notifications** through the built-in `message_dingtalk` tool.\n* **Session continuity and deduplication** through the shared Core package.\n* **Approval and question routing**: requests from DingTalk-originated Agent sessions are returned to the same conversation, while GUI sessions retain the native GUI flow.\n* **Automatic fallback** from the passive callback response to DingTalk OpenAPI active send when the callback context is unavailable or expired.\n\n## Installation\n\n```bash\ndsh plugin add @anarkhgatsby/deepseek-harness-channel-dingtalk\ndsh plugin add @anarkhgatsby/deepseek-harness-channel-config\n```\n\nThe configuration package is optional. `@anarkhgatsby/deepseek-harness-core` is resolved as a dependency.\n\n## DingTalk Developer Console setup\n\n1. Create an enterprise internal application in the [DingTalk Developer Console](https://open-dev.dingtalk.com/).\n2. Enable the **Bot** capability and configure the message receiving method.\n3. Enable **Stream mode** when the console offers the long-connection option; this avoids a public webhook endpoint.\n4. Grant the application the permissions required to receive bot messages and send bot replies.\n5. Publish the application configuration according to the DingTalk console workflow.\n6. Copy the **Client ID (AppKey)** and **Client Secret (AppSecret)**.\n\nThe exact permission names and console labels may vary by DingTalk tenant and region. Follow the permissions shown for the application in your console.\n\n## Configuration\n\nOpen **DeepSeek Harness → Settings → Channel Configuration → DingTalk**, or configure the `dingtalk` namespace:\n\n```yaml\ndingtalk:\n  appKey: \"dingxxxxxxxxxxxxxxxx\"\n  appSecret: \"replace-with-app-secret\"\n  defaultWorkspace: \"/Users/you/dsh/default\"\n  autoReply: true\n  streamReplies: true\n  toolCallReplies: true\n  stepTimeoutSec: 0\n  allowlist: []\n  routes: {}\n```\n\nFor local development, `DINGTALK_APP_KEY`, `DINGTALK_APP_SECRET`, and `DSH_CH_DEFAULT_WORKSPACE` can provide defaults. Keep secrets in the local Harness profile or environment, never in a committed repository.\n\n## Approvals and agent questions\n\nWhen an Agent created from DingTalk requests a sandbox or tool permission, the request is sent to the same conversation:\n\n* Reply `1` to approve once.\n* Reply `2` or any other non-approval text to reject.\n* For `userQuestions`, reply with the displayed option number; separate multiple selections with commas.\n\nIf there is no active callback context, the adapter uses DingTalk OpenAPI active sending. A GUI-originated Agent session continues to use the native Harness approval dialog.\n\n## Active message tool\n\nThe plugin registers `message_dingtalk` for proactive notifications:\n\n```json\n{\n  \"action\": \"send\",\n  \"channel\": \"dingtalk\",\n  \"target\": \"staff-or-conversation-id\",\n  \"message\": \"Build completed successfully.\"\n}\n```\n\n## Architecture\n\n```text\nHarness Agent\n     │\n     ▼\nDingTalk channel plugin (index.js)\n     │\n     ▼\nGatewayCore (routing, sessions, deduplication, approvals)\n     │\n     ▼\nDingtalkAdapter (Stream receive + OpenAPI send)\n```\n\n## Troubleshooting\n\n| Symptom | Check |\n| --- | --- |\n| No connection | Verify AppKey / AppSecret, bot capability, published app settings, and Stream mode. |\n| Bot receives nothing | Check message subscription, application permissions, and tenant visibility. |\n| Reply fails after a long task | The passive callback window may have expired; verify OpenAPI send permissions and target identifiers. |\n| Approval appears as a GUI popup | The session-to-sender mapping was not recognized; inspect Core state and runtime logs. |\n| Duplicate replies | Ensure only one runtime instance uses the same DingTalk application and state file. |\n\n## Compatibility\n\n`0.1.4` is validated with DeepSeek Harness `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.6-alpha.2`, and `0.1.7-rc.2`, `@deepseek-ai/cordis@^4.0.4`, and matching protocol and tools peers. It uses `@anarkhgatsby/deepseek-harness-core@0.1.8` for shared routing.\n\n## License\n\n[MIT License](./LICENSE)\n","readmeFilename":""}