{"_id":"@apollo-music/dsh-wecom-bridge","_rev":"9-d8884df3d342663433ff4acfd6a55afd","name":"@apollo-music/dsh-wecom-bridge","dist-tags":{"latest":"0.5.3"},"versions":{"0.1.0":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.1.0","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.1.0","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"9433ea9e8c9df13f9746bd81197ac4ab364ced7a","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.1.0.tgz","fileCount":27,"integrity":"sha512-bWFk3Z1RYYZngSkp//d9nnUXkrBQP9RJEolCvAMTJwr+9n8HOT7OsauqDnk7yKiRFhiSIuNtkv2xW/rMJLM7bg==","signatures":[{"sig":"MEYCIQDqxqXpbuMhcPW5VkXgpu0gU3K8BqdIOD3N6CN6eKok6wIhAK/5R+fmFZkjHDHUznn2Vmve7EOYxnroO3C6/9Yb39RH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58226},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"gitHead":"a193988b1327744abc7a29826c167062bcede6e0","scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.1.0_1786938842542_0.25112745180292184","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.2.0","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.2.0","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"af4b6f32e071e36b68e53e27d0bc4ebd32707b59","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.2.0.tgz","fileCount":27,"integrity":"sha512-vVz3VkJJCGD5J9x0QtsbR6ijjSepHdDabNlC8EmyHYvVgBYGqoVu6FiDbxIrCec7SqCTPBqIHp+mBuqX94iKkQ==","signatures":[{"sig":"MEUCIDNVcn8KvKH1vvrYTYs1tk4SnG7c9KVpyC8uf1AdUmb5AiEA2dahczvnkMDK7OXho4F1u3HjaEOtBPHADEgcEmVgO6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72153},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"gitHead":"6857e7d520602150eefe8a0befd16ec3a872ff3d","scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.6.2","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.2.0_1786951771578_0.15651019578083458","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.3.0","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.3.0","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"8a69bd8f15fb4133ffa8237c27d4b63329e53259","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.3.0.tgz","fileCount":28,"integrity":"sha512-dOHfSo/f6VieCJmV2bzTwtyb9vkzIKHdw6CNvT5Wo5kdUSGzMvr8WaIktcw6lHRyanW++6JxM/EV0y0huStvQA==","signatures":[{"sig":"MEUCIQDHIHLYj18RcwrQiIg7VStQ/tslFO/ckPdx8O3bB73DbAIgeZWPjBl4Nac0QDuQ0MQpJmaTZrGPsUvEoZbTQmXZ8fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82205},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"gitHead":"dcf0c862da3295c3e164a76fe2ffcfc09828cac7","scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.6.2","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.3.0_1786955446319_0.924239443182062","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.3.1","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.3.1","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"5358ac2cd0106ffe06696cd322531a72ff66bf99","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.3.1.tgz","fileCount":28,"integrity":"sha512-Hvj0/eIk47fHi5W36fFk5UI/VG+yOBsWD1DLb526wQ9m8K3hF7DIE/20eqW995xcPH6BIOCVbmGrmbZIOfGVQw==","signatures":[{"sig":"MEUCIQCrCxJ5ROKHPbjWxfwXHciVBzpFzPYkukkjciKS4qB10gIgGWFEwc3+hQMVS2kFGBdhvCrMlIzJw7DrXOJWtQju5GY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82495},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"gitHead":"2df6023c4855990b0bebaf8ab26bd7958c0414fd","scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.6.2","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.3.1_1786958948988_0.3378005118935783","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.4.0","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.4.0","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"5b44a0c3a33502ce52b07f6aa81909ef6fda1b5e","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.4.0.tgz","fileCount":29,"integrity":"sha512-X3JZeQZJ9Km8RNBv/nvnLV3OfcdMLkkyg03MdgDsDkwz9RuT6rNY26rh4Bn7xnNkYqnYeeP0qhljynwRjGJ2xg==","signatures":[{"sig":"MEQCIEreiIbvX+FY3eGNGIYqtk8rdH3uNFoUD1m3Ufuh3iKeAiBVYnoSgR16AxAHzxDXmP9KMNGZmYyTdj5Mk1CghtH7sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99527},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-session":"0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.7"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.4.0_1787032184124_0.5074037441445269","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.5.0","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.5.0","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"3159cccbad07d26deccfc5421ed3cb638d8b6306","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.5.0.tgz","fileCount":29,"integrity":"sha512-Mp8L1iKneot76nuOe8DiF7R180pJ8P3fQs7bMWblLDESvY9SgWcjMA2c6BGLthEBN55LiYaxxl6jLs0zshSteg==","signatures":[{"sig":"MEQCIGx2HTC6gg46E5fNdFbUk0BfZ3ZmspwGrKPl2ae8Z5R9AiB86qsMAZ6kglB2jNHwZHeLe4TwcXdKrselREmdPzKCxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103291},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-session":"0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.7"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.5.0_1787039540149_0.6970967185293708","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.5.1","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.5.1","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"1722ec3201b89b956637926da1dcaf42a1b95f9d","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.5.1.tgz","fileCount":29,"integrity":"sha512-lhlpz/UVW8Ti27KH9FtFrTaPbApIKCYe87Dd58/Z6jw/+bs/Rt0BFsMl32rWc0v/qeQKyvRS0pBr1vU9Aylf/w==","signatures":[{"sig":"MEYCIQCLeff7Q7XHz1YJfbWEr2RSbIbrNs2fB41/xx1fe5X7YAIhAI0ZR/jSURH5wxLalX4jlxfLQMgH9cUHCeuZp1rlutxf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107007},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.7","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-session":"0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.7","@deepseek-ai/dsh-tools":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.7"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.5.1_1787050093109_0.2874363438740286","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.5.2","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"license":"UNLICENSED","_id":"@apollo-music/dsh-wecom-bridge@0.5.2","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"dist":{"shasum":"839d3955410c3e01ee71fca63d77cd81fcdf2673","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.5.2.tgz","fileCount":29,"integrity":"sha512-Z3AfziX5BWaonl+lujRNBZeWzPpuObwid+yF/UrS/AzeRn/a8GBQZyULkYUqTSdz3U2oGo3GkKYsFjjzGNAMPw==","signatures":[{"sig":"MEUCIHRxJUdVSor1IPK7P+Gcj9uUjkyXpEw5CStOObd/DQ1jAiEAihjpIZ+V0h7DhVOGsClDzU8XbvdrKDzdVlfkur1qdvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107912},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./channel-system.md":"./prompts/channel-system.md"},"scripts":{"test":"npm run patch:sdk && npm run build && node --test test/*.node-test.ts test/*.node-test.mjs","build":"npm run clean && tsc -p tsconfig.types.json && rolldown -c && node ./scripts/verify-bundle.mjs","clean":"node ./scripts/clean.mjs","prepare":"npm run patch:sdk && npm run build","patch:sdk":"node ./scripts/apply-sdk-patch.mjs","typecheck":"tsc --noEmit","test:package":"npm run patch:sdk && npm run build && node ./scripts/smoke-package.mjs"},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"repository":{"url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"8.21.3","axios":"1.19.0","eventemitter3":"5.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"1.2.4","typescript":"7.0.2","@types/node":"24.13.3","patch-package":"8.0.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@wecom/aibot-node-sdk":"1.0.7","@deepseek-ai/dsh-tools":"0.1.0-rc.8","@deepseek-ai/dsh-session":"0.1.0-rc.8","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.8"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@deepseek-ai/dsh-session":"^0.1.0-rc.8","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wecom-bridge_0.5.2_1787208426515_0.236543620310931","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@apollo-music/dsh-wecom-bridge","version":"0.5.3","description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","repository":{"type":"git","url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git"},"bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./coordinator":{"types":"./dist/coordinator.d.ts","import":"./dist/coordinator.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./transport-state":{"types":"./dist/transport-state.d.ts","import":"./dist/transport-state.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./deployment":{"types":"./dist/deployment.d.ts","import":"./dist/deployment.js"},"./prompt":{"types":"./dist/prompt.d.ts","import":"./dist/prompt.js"},"./channel-system.md":"./prompts/channel-system.md"},"bin":{"dsh-wecom-health":"dist/health-cli.js","dsh-wecom-deployment":"dist/deployment-cli.js"},"engines":{"node":">=24"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"license":"UNLICENSED","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"packageManager":"pnpm@11.19.0","scripts":{"test":"node --test scripts/package-smoke.node-test.mjs","test:package":"node --test scripts/package-smoke.node-test.mjs"},"peerDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-host-apiproxy":"0.1.1-rc.2","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/dsh-tools":"0.1.1-rc.2"},"dependencies":{"axios":"1.19.0","eventemitter3":"5.0.4","ws":"8.21.3"},"devDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-host-apiproxy":"0.1.1-rc.2","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/dsh-tools":"0.1.1-rc.2","@types/node":"24.13.3","@wecom/aibot-node-sdk":"1.0.7","patch-package":"8.0.1","rolldown":"1.2.4","typescript":"7.0.2"},"_id":"@apollo-music/dsh-wecom-bridge@0.5.3","_integrity":"sha512-8fkBq1HHq2BJsTNRlngpycKlA+0vtZWd2LoPivFM+qbpROu/Qt2kgYGLgJ9gxcio3Gc0UYQa40rbEKl+8NClNw==","_resolved":"/private/tmp/dsh-wecom-bridge-rc2.aQnFBJ/final-artifacts/apollo-music-dsh-wecom-bridge-0.5.3.tgz","_from":"file:/private/tmp/dsh-wecom-bridge-rc2.aQnFBJ/final-artifacts/apollo-music-dsh-wecom-bridge-0.5.3.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-8fkBq1HHq2BJsTNRlngpycKlA+0vtZWd2LoPivFM+qbpROu/Qt2kgYGLgJ9gxcio3Gc0UYQa40rbEKl+8NClNw==","shasum":"05901d44b932bd211d2e7b739a393738b8567672","tarball":"https://registry.npmjs.org/@apollo-music/dsh-wecom-bridge/-/dsh-wecom-bridge-0.5.3.tgz","fileCount":30,"unpackedSize":110933,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDgsF6feQMzmnVYnyUn9bXnBTyVuvT3zmc8YJebR+bqKAiEAr3ikUtGRp7RYcZdfcwq2okZTQvrOGB4Xi2iaBfzqoOU="}]},"_npmUser":{"name":"djagger","email":"634750802@qq.com"},"directories":{},"maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-wecom-bridge_0.5.3_1787556184929_0.04487058979418612"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T03:54:02.100Z","modified":"2026-08-24T07:23:05.251Z","0.1.0":"2026-08-17T03:54:02.701Z","0.2.0":"2026-08-17T07:29:31.691Z","0.3.0":"2026-08-17T08:30:46.480Z","0.3.1":"2026-08-17T09:29:09.130Z","0.4.0":"2026-08-18T05:49:44.270Z","0.5.0":"2026-08-18T07:52:20.333Z","0.5.1":"2026-08-18T10:48:13.259Z","0.5.2":"2026-08-20T06:47:06.668Z","0.5.3":"2026-08-24T07:23:05.063Z"},"bugs":{"url":"https://github.com/fde0-inc/dsh-wecom-bridge/issues"},"license":"UNLICENSED","homepage":"https://github.com/fde0-inc/dsh-wecom-bridge#readme","keywords":["deepseek-harness","cordis","wecom","enterprise-wechat","aibot"],"repository":{"type":"git","url":"git+https://github.com/fde0-inc/dsh-wecom-bridge.git"},"description":"Apollo enterprise WeCom intelligent-bot channel for DeepSeek Harness","maintainers":[{"name":"djagger","email":"634750802@qq.com"}],"readme":"# Apollo DSH 企业微信 Bridge\n\n面向 Apollo 企业内部 DeepSeek Harness Agent 的通用企业微信智能机器人渠道包。\n\n它负责企业微信长连接、DSH session 映射、群成员匿名化、连续消息 `steer`、`progress_report` 流式更新、跨 turn 后台子代理投递、超长 Markdown 分段、标准中文状态与错误转换，以及可观测的连接状态和单副本部署保护。业务 Agent 只提供 workspace、企微专用 preset 和可选的业务渠道 overlay。\n\n`0.5.2` 的升级步骤见 [MIGRATION.md](./MIGRATION.md)。\n\n## Prompt 分层\n\n业务 Agent 的企微 preset 应在构建或 bootstrap 阶段按以下顺序确定性合成：\n\n```text\n业务 Agent domain persona\n+ 本包 prompts/channel-system.md\n+ 可选的业务 Agent WeCom overlay\n```\n\n共享 channel prompt 只应用于面向企微用户的父 Agent，不应注入 Web 会话或研究子代理。\n\n## Cordis 配置\n\n```yaml\n- id: apollo-wecom-bridge\n  name: '@apollo-music/dsh-wecom-bridge'\n  disabled: !!js process.env.APOLLO_WECOM_ENABLED !== '1'\n  config:\n    workspace: !!js process.env.APOLLO_HARNESS_WORKSPACE\n    agentPreset: my-agent-wecom\n    awaitSubagents: true\n    terminalQuiescenceMs: 250\n    deliveryRetryIntervalMs: 30000\n    mediaDirectory: .dsh-wecom/inbox\n    maxInboundMediaBytes: 20971520\n    maxInboundMessageMediaBytes: 41943040\n    mediaDownloadTimeoutMs: 15000\n    botIdEnv: WECOM_AIBOT_BOT_ID\n    secretEnv: WECOM_AIBOT_SECRET\n```\n\n`agentPreset` 必须显式配置，避免通用包静默路由到某个业务 Agent。其余环境变量默认如下：\n\n- `WECOM_AIBOT_MENTION_NAME`\n- `WECOM_AIBOT_SESSION_EPOCH`\n- `WECOM_AIBOT_SESSION_RESET_IDS`\n- `APOLLO_WECOM_INSTANCE_ID`\n- `APOLLO_WECOM_STATUS_FILE`\n- `APOLLO_WECOM_OUTBOX_FILE`\n\n### Web 开发身份 Mock\n\n本地 Web 调试需要调用依赖 `ctx.wecomSession` 的业务工具、但不需要连接企业微信时，可以启用\n开发身份 mock：\n\n```yaml\n- id: apollo-wecom-bridge-web-mock\n  name: '@apollo-music/dsh-wecom-bridge'\n  config:\n    mockMode:\n      enabled: !!js process.env.APOLLO_WECOM_MOCK_ENABLED === '1'\n      wecomUserId: !!js process.env.APOLLO_WECOM_MOCK_USER_ID\n```\n\n`mockMode.enabled` 默认为 `false`。启用后不要求 `agentPreset`、Bot ID 或 Secret，也不会创建\n企微长连接；`mockMode.wecomUserId` 必须是非空字符串。Web 工具执行会得到\n`status: \"resolved\"`、固定的 `userId`、`chatType: \"single\"`，以及\n`identitySource: \"development-mock\"`。引用消息仍然不可用。配置存在真实企微执行绑定时，真实身份\n始终优先于 mock。\n\n该模式仅用于开发：`NODE_ENV=production` 时 Bridge 会拒绝加载。不要在共享测试环境中配置真实\n用户的 userid；需要按开发者切换身份时，应通过本地 profile overlay 或环境表达式覆盖该值。\n\n`awaitSubagents` 默认为 `true`。每个 `turn/end` 先进入候选完成状态，Bridge\n在 `terminalQuiescenceMs`（默认 250 ms）内继续观察父 Agent inbox 和新 turn。\n如果 DSH 仍有运行中的直接子代理，Bridge 会结束原回复流但保留逻辑任务；\n已排队的 settlement/wakeup 会取消旧的候选完成，中间回传不逐条推送。直接子代理、\n父 inbox 和新 turn 都静默后，才通过 `sendMessage` 主动投递最终答案。\n该机制只依赖 DSH 的通用子代理和 inbox 生命周期，\n不包含任何业务 Agent 的完成文案或任务规则。\n\n同一个最终 turn 内可能出现多条完整的 `assistant/message`（例如最终汇总后又收到\n一个迟到的子代理 settlement）。Bridge 会按生成顺序缓冲并合并这些消息，连续的\n完全相同消息只保留一次；后一条消息不会覆盖此前尚未投递的完整答案。\n\n## 消息、附件与引用\n\nBridge 接收企业微信当前定义的六类消息：文本、图片、图文混排、语音、文件和视频。\n语音直接使用企业微信回调提供的转写文本；当前回调没有原始音频下载字段，因此不自行实现\n语音识别。图片、混排图片、文件、视频，以及这些类型的引用消息，会在回调 URL 失效前立即\n下载、按回调 `aeskey` 解密，并以 `0600` 权限保存到 Agent workspace 下的\n`mediaDirectory`。Bridge 始终向 Agent 提供安全化文件名、workspace 相对路径和字节数。\n对直接收到的 PNG、JPEG、WebP 和 GIF，Bridge 会在发送 prompt 前读取 session 当前模型，\n再通过 DSH `llm` service 解析该精确 provider/model 的 `inputModalities`。只有能力元数据\n明确包含 `image` 时，Bridge 才会在路径文本之外同时传入 DSH 原生图片；明确不支持或\n能力未知时只传路径，由 Agent 使用 preset 中的图片读取工具分析。引用图片仍通过\n`read_quoted_message` 返回 workspace 路径，不作为当前 prompt 的原生图片。\n\n该路由不做重试降级：模型目录、能力解析、已落盘图片完整性校验或 DSH 原生图片\n准入失败时，当次消息直接失败，Bridge 不会再发一次路径版 prompt。\n\n单个附件、单条回调内全部附件和下载超时分别由 `maxInboundMediaBytes`、\n`maxInboundMessageMediaBytes` 和 `mediaDownloadTimeoutMs` 限制。`mediaDirectory` 必须是\nworkspace 相对路径，默认为 `.dsh-wecom/inbox`。Bridge 不自动删除已接收文件；部署方应将\n该目录排除出版本库和镜像，并按业务留存要求定期清理持久卷。\n\nBridge 依赖 DSH `llm` 和 `tools` service，并随主插件自动注册 `read_quoted_message`，无需在企微\nAgent preset 中再挂载插件。该工具不接收消息 ID，而是按当前 DSH `ToolExecution` 精确读取\n触发该步骤的引用快照，避免模型伪造 ID 或跨 session 读取。文本与官方语音转写直接返回；\n附件返回已落盘的 workspace 相对路径，后续可交给已安装的图片或 file reader。没有引用时\n返回 `none`，无法建立可信执行绑定时拒绝读取。\n\n文档读取使用独立的 `@apollo-music/dsh-file-reader` profile bundle。Bridge `0.5.3`\n以 DSH `0.1.1-rc.2` 为精确兼容基线；同一 profile 的 DSH service 包必须保持这一版本，\n并使用已经完成相同闭包升级的 file reader `0.3.1`，不允许混装旧预发布版本：\n\n```sh\ndsh plugin --profile <profile> add @apollo-music/dsh-file-reader@0.3.1\n```\n\n该 bundle 自动提供 `file_reader_open` 等工具。Bridge 传入的 workspace 相对路径可直接作为\n`sourcePath`，支持 PDF、DOCX、XLSX/XLSM 和 PPTX。file reader 的生产配置默认要求受批准的\nsandbox sidecar runner；仅安装 npm 依赖并不会替代 profile bundle 挂载。\n\n## 可信企微会话上下文\n\nBridge 提供 Host-only Cordis service `ctx.wecomSession`，业务工具可以用\nDSH 的当前 `ToolExecution` / `ToolRunContext` 解析与该次执行精确关联的企微事实：\n\n```ts\nimport type { Context } from \"@deepseek-ai/cordis\";\nimport type { ToolRunContext } from \"@deepseek-ai/dsh-tools\";\nimport type {} from \"@apollo-music/dsh-wecom-bridge\";\n\nexport const inject = [\"wecomSession\"] as const;\n\nexport function resolveWeComContext(ctx: Context, exec: ToolRunContext) {\n  const wecom = ctx.wecomSession.resolve(exec);\n  if (wecom.status === \"resolved\") {\n    // wecom.userId 是当前执行的唯一已验证贡献用户。\n  }\n  return wecom;\n}\n```\n\n返回值包含：\n\n- `userIds`：该个实时 DSH session 中 Bridge 曾观察到的已验证发言者；它不是完整或实时的群成员名单。\n- `contributingUserIds`：当前执行所属任务的已验证贡献用户。\n- `status: \"resolved\"`：当前只有一个贡献用户，并提供 `userId`。\n- `status: \"ambiguous\"`：同一执行合并了多个不同的已验证用户。\n- `status: \"unavailable\"`：没有可信绑定，或绑定已失效。\n\n开发 mock 返回的 `resolved` 结果额外带有 `identitySource: \"development-mock\"`；真实企微结果不带\n该字段。\n\nBridge 只提供事实，不注册权限 guard，也不决定多用户时的 ACL 策略。\n使用者负责在访问业务 API 前根据返回事实实施权限。身份绑定只存在于当前进程的精确\nsession 生命周期；冷恢复、已销毁 session，以及未显式传递身份的子 Agent 都返回\n`unavailable`。原始回调、凭据、userid、附件临时 URL 和 `aeskey` 都不会注入模型\nprompt；附件的安全化 workspace 相对路径会作为读取入口注入。\n\n企微协议单条上限为 20,480 UTF-8 字节；Bridge 使用 20,000 字节的本地\n安全上限。超过上限的最终答案按段落、\n行或句子边界拆成带序号的多条消息，不再静默截断。\n\n设置 `APOLLO_WECOM_OUTBOX_FILE` 后，Bridge 会以 `0600` 权限原子保存\n逻辑任务路由、待确认答案和待发最终内容。完成状态检查失败与主动发送失败\n的记录都会保留，并在企微连接\n重新认证时立即重试，连接期间也会按 `deliveryRetryIntervalMs`\n（默认 30 秒）重试；交付语义为 at-least-once。文件含会话路由和用户可见\n答案，必须放在受保护的持久卷中，不得纳入日志或镜像。\n\n## 构建与 SDK 封装\n\n```sh\nnpm install\nnpm test\nnpm pack --dry-run\n```\n\n构建过程会严格修补锁定的 `@wecom/aibot-node-sdk@1.0.7`，校验修补后文件哈希，再由 Rolldown 把 SDK 及其 JavaScript 依赖打入 `dist`。发布产物不得包含对 `@wecom/aibot-node-sdk` 的裸导入；消费方不运行 `patch-package`，也不依赖官方 SDK。\n\nDeepSeek Harness/Cordis 包保持 peer dependency，确保插件与 Host 共享同一运行时实例。\n\n## 部署约束\n\n同一企业微信 Bot 只允许一条活跃长连接。生产部署必须声明\n`APOLLO_WECOM_REPLICA_COUNT=1`；多副本只有显式设置\n`APOLLO_WECOM_UNSUPPORTED_ALLOW_MULTIPLE=1` 才能绕过启动检查，但不会获得 HA。\n\n`dsh-wecom-health` 同时检查 Harness HTTP 和企微 `authenticated` 状态；\n`dsh-wecom-deployment` 校验副本声明并清除上一个进程留下的状态文件。\n","readmeFilename":"README.md"}