{"_id":"@dsh-feishu/dsh-feishu","_rev":"11-dd58d71089dd371f56aeda8b5c8b24e0","name":"@dsh-feishu/dsh-feishu","dist-tags":{"latest":"0.3.5"},"versions":{"0.1.0":{"name":"@dsh-feishu/dsh-feishu","version":"0.1.0","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.1.0","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"4786c44a552e0b6ea59edc0b6ca22caee2e34cff","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.1.0.tgz","fileCount":90,"integrity":"sha512-6qiBtD8yfERcrDrThUa/q9n+iRKO6Q1fxb/s3raQ8+s65hR6xsJ1t0rr1qpFpMhOATjwlvQZ7TU7ftWrCOOUSg==","signatures":[{"sig":"MEQCIAro5Q9oYabvU3cL0JmYAG/zXq1YTpT6m4astkG3eXSoAiA9QC1ki9LLCMBURr5hVk8l7tzAqMKH6NnAVp3N/7f4Sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700087},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.1.0.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"biome format --write src tests","lint:fix":"biome check --write src tests","typecheck":"tsc --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/f474e9f5d4108a9de95a6f4f55b03eac/dsh-feishu-dsh-feishu-0.1.0.tgz","_integrity":"sha512-6qiBtD8yfERcrDrThUa/q9n+iRKO6Q1fxb/s3raQ8+s65hR6xsJ1t0rr1qpFpMhOATjwlvQZ7TU7ftWrCOOUSg==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.0-rc.6","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.1.0_1786738861869_0.3877092167074454","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dsh-feishu/dsh-feishu","version":"0.1.1","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.1.1","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"5ef4ac63902429082424e3def74204fbe02c93c6","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.1.1.tgz","fileCount":90,"integrity":"sha512-cFsbh6uMBIYZW+A31MKT9UuC1mWYoTv6mRvF5GPr5F/o/PPvYjCreo+z0MgURIE15yhgYCUxX19RicX3ZM4ihw==","signatures":[{"sig":"MEYCIQC2CrvCI9EFtIhaQjHC3j7DKkCDlBAnKPzptMdkH9iDugIhAMZZsZvEP1YD565WmOWDSKKxDtYx/1Ig30qweSLueBMo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700858},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.1.1.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"biome format --write src tests","lint:fix":"biome check --write src tests","typecheck":"tsc --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/473504402bcdc4eda468f6b0d851ecb4/dsh-feishu-dsh-feishu-0.1.1.tgz","_integrity":"sha512-cFsbh6uMBIYZW+A31MKT9UuC1mWYoTv6mRvF5GPr5F/o/PPvYjCreo+z0MgURIE15yhgYCUxX19RicX3ZM4ihw==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.0-rc.6","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.1.1_1786740466783_0.14153926763377234","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dsh-feishu/dsh-feishu","version":"0.2.0","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.2.0","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"19c8a28696b63e15276526345579f5f62e98f7c8","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.2.0.tgz","fileCount":147,"integrity":"sha512-/pdg1ZSpDJxr0ARDJ5JX5KtDSf/AdzBZu3mEM9+tlPX550TZdjokvPPVij9tlODm0NSjzWGIBqjb7mYGLOxKhw==","signatures":[{"sig":"MEYCIQDuJYcfUZubzCVTH1neAnw7YNSQwT4g/vYD3eBRixLwRwIhAL2tyeOpbqdKU/QIZN750wImrNrjfKjT78Wg7N8ThByR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":900474},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.2.0.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"biome format --write src tests","lint:fix":"biome check --write src tests","typecheck":"tsc --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/ab1243283504a378961ff9bf2dded2e4/dsh-feishu-dsh-feishu-0.2.0.tgz","_integrity":"sha512-/pdg1ZSpDJxr0ARDJ5JX5KtDSf/AdzBZu3mEM9+tlPX550TZdjokvPPVij9tlODm0NSjzWGIBqjb7mYGLOxKhw==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.0-rc.6","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-commands":"^0.1.0-rc.6","@deepseek-ai/dsh-schedule":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.6","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.2.0_1786907561889_0.8459813360364576","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@dsh-feishu/dsh-feishu","version":"0.2.1","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.2.1","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"08fe774c9c59d84a1469b488be2f451259827f37","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.2.1.tgz","fileCount":147,"integrity":"sha512-P0bgYIo+/ZUQG576m2Y5WRJgSYqSrWCKeoLIRrhI51TWTqpzrWzqYh72k+KQmulpRMSeFvHZ+HWXV70Q8yj48A==","signatures":[{"sig":"MEUCIAGlVCErA4/7Z8ZALR0iQoaJUj2bmPSXuLrwKEt83cEmAiEAg9ZR2oIF0rpaknzSg8NDSW/iwaKUn81Fq2IuyuNA3yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":936524},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.2.1.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","format":"biome format --write src tests","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests","typecheck":"tsc --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/b8842a524be14b4db000cdc8527359de/dsh-feishu-dsh-feishu-0.2.1.tgz","_integrity":"sha512-P0bgYIo+/ZUQG576m2Y5WRJgSYqSrWCKeoLIRrhI51TWTqpzrWzqYh72k+KQmulpRMSeFvHZ+HWXV70Q8yj48A==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@deepseek-ai/dsh-llm":"^0.1.0-rc.7","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/dsh-storage":"^0.1.0-rc.7","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-workspace":"^0.1.0-rc.7","@deepseek-ai/dsh-storage-json":"^0.1.0-rc.7","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.0-rc.7","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.7","@deepseek-ai/dsh-agent":"^0.1.0-rc.7","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-schedule":"^0.1.0-rc.7","@deepseek-ai/dsh-credentials":"^0.1.0-rc.7","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.7","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-schedule":"^0.1.0-rc.7","@deepseek-ai/dsh-credentials":"^0.1.0-rc.7","@deepseek-ai/dsh-user-approval":"^0.1.0-rc.7","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.7"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.2.1_1787203623195_0.12683185695393906","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@dsh-feishu/dsh-feishu","version":"0.2.2","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.2.2","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"692a7ca88b62c13090868af9f817537b59ddb601","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.2.2.tgz","fileCount":156,"integrity":"sha512-4GUD12yKr+eQfB11ovy0KRborkMesHTMu0vXz+E0KKLRD5my5Un6u8oqqq28rloR7GhwfJZZxqZAyhuuELezOA==","signatures":[{"sig":"MEUCIQCdTqS2MHh50oM/zpkiTZRbY1yDGcSmMRs6gWeiZO/4qAIgeGLy/KVmeewOl65M519pj3YTkwykm0l2NQ7hRULc+3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1052415},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.2.2.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/580631baf29f56f656746760a08d7b3b/dsh-feishu-dsh-feishu-0.2.2.tgz","_integrity":"sha512-4GUD12yKr+eQfB11ovy0KRborkMesHTMu0vXz+E0KKLRD5my5Un6u8oqqq28rloR7GhwfJZZxqZAyhuuELezOA==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-tools":"^0.1.1-rc.2","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/dsh-storage":"^0.1.1-rc.2","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-workspace":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-json":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-domain":"^0.1.1-rc.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.1-rc.2","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.2.2_1787466111881_0.3478859451728169","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dsh-feishu/dsh-feishu","version":"0.3.0","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.3.0","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"1cfb9403ae2d162471a256d69312492dac9a0263","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.0.tgz","fileCount":163,"integrity":"sha512-tDx/V/3HMlokEPrDczAaxFRelYt1kh/VtRKu0lzTqpMFRDMfSuoNMs7Z7sUVMSCP1nH1m0qJlYfQaspocoFzsw==","signatures":[{"sig":"MEYCIQD30+HwsjgT7sPB5PqjJd9zINMNkSU3QrCp/qpf6kaYQgIhAJYEHmJQpYFsESCsaIJI02i90lM27yJ6geZv4lDt5668","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1184275},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.0.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/af7d84777b13e674c5ea41902af75880/dsh-feishu-dsh-feishu-0.3.0.tgz","_integrity":"sha512-tDx/V/3HMlokEPrDczAaxFRelYt1kh/VtRKu0lzTqpMFRDMfSuoNMs7Z7sUVMSCP1nH1m0qJlYfQaspocoFzsw==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.1-rc.2","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@deepseek-ai/dsh-tools":"^0.1.1-rc.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-storage":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-workspace":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-json":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-domain":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.3.0_1787733078224_0.4217684541682214","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dsh-feishu/dsh-feishu","version":"0.3.1","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.3.1","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a50a71d1860f91f684349ba0e14c5eaae257f83c","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.1.tgz","fileCount":172,"integrity":"sha512-ZHH+1CVmMmLN/xQJqDFoCmIMVx1CpGUAFWAG3ayl1bvY/GqIct6H9qreeSIM30zwOWjgMjMzGeiQ4tZ9woMh6g==","signatures":[{"sig":"MEYCIQCa5I5n5sPGKTlTo6fdb2vx59uyzIiZEdNgPFKR6AV3bgIhAOHsuO6uhjEPg82V+GPexOsEIKFvKyhZtrq6p5RBJMoO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1321226},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.1.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/3b6ee52f3a36b5641a42a9322f23b18a/dsh-feishu-dsh-feishu-0.3.1.tgz","_integrity":"sha512-ZHH+1CVmMmLN/xQJqDFoCmIMVx1CpGUAFWAG3ayl1bvY/GqIct6H9qreeSIM30zwOWjgMjMzGeiQ4tZ9woMh6g==","_npmVersion":"11.17.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.1-rc.2","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-scope":"^0.1.1-rc.2","@deepseek-ai/dsh-tools":"^0.1.1-rc.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-storage":"^0.1.1-rc.2","@deepseek-ai/dsh-timeout":"^0.1.1-rc.2","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.1-rc.2","@deepseek-ai/dsh-schedule":"^0.1.1-rc.2","@deepseek-ai/dsh-workspace":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-credentials":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-json":"^0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.1-rc.2","@deepseek-ai/dsh-storage-domain":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.3.1_1788352434727_0.9992114583974607","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@dsh-feishu/dsh-feishu","version":"0.3.2","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.3.2","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"db8fd296e26b1fbb80b77ee1c20122703870fc03","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.2.tgz","fileCount":172,"integrity":"sha512-o25eVTxIv/Chk5TFC7/UQGvpUX0yUfoOwfrkZMDcR4616WyFb9trYiHH+UgsZv3PDaa4WApvhEMPFRdJqQaZ3g==","signatures":[{"sig":"MEUCIQCpSuQzgckOXJNnh0Ffk8Mj9VnxsMXAdG7Bv0vh8X9SUAIgNZm4BhaNuMY9maESvPMRD2qc60VTmJWbjTaFOQjE4qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1323030},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.2.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/6333d50401c6517f74f0eb65dab58683/dsh-feishu-dsh-feishu-0.3.2.tgz","_integrity":"sha512-o25eVTxIv/Chk5TFC7/UQGvpUX0yUfoOwfrkZMDcR4616WyFb9trYiHH+UgsZv3PDaa4WApvhEMPFRdJqQaZ3g==","_npmVersion":"11.19.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.2-rc.1","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.2-rc.1","@deepseek-ai/dsh-agent":"^0.1.2-rc.1","@deepseek-ai/dsh-scope":"^0.1.2-rc.1","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.2-rc.1","@deepseek-ai/dsh-timeout":"^0.1.2-rc.1","@deepseek-ai/dsh-commands":"^0.1.2-rc.1","@deepseek-ai/dsh-schedule":"^0.1.2-rc.1","@deepseek-ai/dsh-invariants":"^0.1.2-rc.1","@deepseek-ai/dsh-credentials":"^0.1.2-rc.1","@deepseek-ai/dsh-user-approval":"^0.1.2-rc.1","@deepseek-ai/dsh-user-questions":"^0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.2-rc.1","@deepseek-ai/dsh-agent":"^0.1.2-rc.1","@deepseek-ai/dsh-scope":"^0.1.2-rc.1","@deepseek-ai/dsh-tools":"^0.1.2-rc.1","@deepseek-ai/dsh-session":"^0.1.2-rc.1","@deepseek-ai/dsh-storage":"^0.1.2-rc.1","@deepseek-ai/dsh-timeout":"^0.1.2-rc.1","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.2-rc.1","@deepseek-ai/dsh-schedule":"^0.1.2-rc.1","@deepseek-ai/dsh-workspace":"^0.1.2-rc.1","@deepseek-ai/dsh-invariants":"^0.1.2-rc.1","@deepseek-ai/dsh-credentials":"^0.1.2-rc.1","@deepseek-ai/dsh-storage-json":"^0.1.2-rc.1","@deepseek-ai/dsh-user-approval":"^0.1.2-rc.1","@deepseek-ai/dsh-storage-domain":"^0.1.2-rc.1","@deepseek-ai/dsh-user-questions":"^0.1.2-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.3.2_1788648517616_0.5790305032777827","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@dsh-feishu/dsh-feishu","version":"0.3.3","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.3.3","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"3c66cfc1e6b761e3ac14c76e6c85299df2b27728","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.3.tgz","fileCount":172,"integrity":"sha512-kjQDnNN0CznXRGCEFGfNp0RjWsQCYDg8O7PvfhSoY4C3lJtYZ4cronoztdTLHPyhUdTcYxfzy0kqGuEsDMxDjA==","signatures":[{"sig":"MEUCIBwapj8llmGkvE/azA4uE6HRHysX7qOk15b2E12kJMPTAiEAvzxctW9gD1v767U31G9ms69lmtE4EWkLizlqjGClVJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1332679},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.3.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/8e3fbfb561d60075dd42206aec49d7eb/dsh-feishu-dsh-feishu-0.3.3.tgz","_integrity":"sha512-kjQDnNN0CznXRGCEFGfNp0RjWsQCYDg8O7PvfhSoY4C3lJtYZ4cronoztdTLHPyhUdTcYxfzy0kqGuEsDMxDjA==","_npmVersion":"11.19.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.5-rc.1","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.5-rc.1","@deepseek-ai/dsh-agent":"^0.1.5-rc.1","@deepseek-ai/dsh-scope":"^0.1.5-rc.1","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.5-rc.1","@deepseek-ai/dsh-timeout":"^0.1.5-rc.1","@deepseek-ai/dsh-commands":"^0.1.5-rc.1","@deepseek-ai/dsh-schedule":"^0.1.5-rc.1","@deepseek-ai/dsh-invariants":"^0.1.5-rc.1","@deepseek-ai/dsh-credentials":"^0.1.5-rc.1","@deepseek-ai/dsh-user-approval":"^0.1.5-rc.1","@deepseek-ai/dsh-user-questions":"^0.1.5-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.5-rc.1","@deepseek-ai/dsh-agent":"^0.1.5-rc.1","@deepseek-ai/dsh-scope":"^0.1.5-rc.1","@deepseek-ai/dsh-tools":"^0.1.5-rc.1","@deepseek-ai/dsh-session":"^0.1.5-rc.1","@deepseek-ai/dsh-storage":"^0.1.5-rc.1","@deepseek-ai/dsh-timeout":"^0.1.5-rc.1","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.5-rc.1","@deepseek-ai/dsh-schedule":"^0.1.5-rc.1","@deepseek-ai/dsh-workspace":"^0.1.5-rc.1","@deepseek-ai/dsh-invariants":"^0.1.5-rc.1","@deepseek-ai/dsh-credentials":"^0.1.5-rc.1","@deepseek-ai/dsh-storage-json":"^0.1.5-rc.1","@deepseek-ai/dsh-user-approval":"^0.1.5-rc.1","@deepseek-ai/dsh-storage-domain":"^0.1.5-rc.1","@deepseek-ai/dsh-user-questions":"^0.1.5-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.3.3_1789442865807_0.3537643699332822","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@dsh-feishu/dsh-feishu","version":"0.3.4","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"license":"MIT","_id":"@dsh-feishu/dsh-feishu@0.3.4","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"3a6781c30ce1914fdab9c52ca6a8842b7c141761","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.4.tgz","fileCount":172,"integrity":"sha512-ozol9Iu+W3LJ5tZDR689GiyEO2cfDQsf9jzRd/lpaXF/f2lfeHCiPFlmHZaO0ALQp7sw5g6Lm6NKEjF20DARUA==","signatures":[{"sig":"MEUCIGNDj4TscKsvmeDizSfE2KnSgfNHe7horhzz/1/584yEAiEA9invmrOqBCs3eiDiY0NZbl+EUoY2nG/AvON1a/9bkn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOSZeU2xY22cEAEHqPo2lIePqIUF+5gfHZGQTgxr3q3gIhAPegcmwotKjRa9r0g5K2WeLoHdb/kdUqW+48CS6WjyTm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1334365},"main":"lib/index.js","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.4.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"_resolved":"/tmp/904df8adaec5c2e1f61cd915b3e3d54c/dsh-feishu-dsh-feishu-0.3.4.tgz","_integrity":"sha512-ozol9Iu+W3LJ5tZDR689GiyEO2cfDQsf9jzRd/lpaXF/f2lfeHCiPFlmHZaO0ALQp7sw5g6Lm6NKEjF20DARUA==","_npmVersion":"11.19.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.5-rc.2","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.5-rc.2","@deepseek-ai/dsh-agent":"^0.1.5-rc.2","@deepseek-ai/dsh-scope":"^0.1.5-rc.2","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.5-rc.2","@deepseek-ai/dsh-timeout":"^0.1.5-rc.2","@deepseek-ai/dsh-commands":"^0.1.5-rc.2","@deepseek-ai/dsh-schedule":"^0.1.5-rc.2","@deepseek-ai/dsh-invariants":"^0.1.5-rc.2","@deepseek-ai/dsh-credentials":"^0.1.5-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.5-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.5-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.5-rc.2","@deepseek-ai/dsh-agent":"^0.1.5-rc.2","@deepseek-ai/dsh-scope":"^0.1.5-rc.2","@deepseek-ai/dsh-tools":"^0.1.5-rc.2","@deepseek-ai/dsh-session":"^0.1.5-rc.2","@deepseek-ai/dsh-storage":"^0.1.5-rc.2","@deepseek-ai/dsh-timeout":"^0.1.5-rc.2","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.5-rc.2","@deepseek-ai/dsh-schedule":"^0.1.5-rc.2","@deepseek-ai/dsh-workspace":"^0.1.5-rc.2","@deepseek-ai/dsh-invariants":"^0.1.5-rc.2","@deepseek-ai/dsh-credentials":"^0.1.5-rc.2","@deepseek-ai/dsh-storage-json":"^0.1.5-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.5-rc.2","@deepseek-ai/dsh-storage-domain":"^0.1.5-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.5-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-feishu_0.3.4_1790159725724_0.5515522552971823","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"_id":"@dsh-feishu/dsh-feishu@0.3.5","bin":{"dsh-feishu-setup":"lib/setup/cli.js"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"240600b41e51391337aa31a2bb93a6eb90c93c97","tarball":"https://registry.npmjs.org/@dsh-feishu/dsh-feishu/-/dsh-feishu-0.3.5.tgz","fileCount":172,"integrity":"sha512-bS/svkrSLqBY1Ib9R+KhqSv8P0VljN3Lti0IYIJ9zctzFyR3OGmo5Tw2AHWEM+GgaiEaj8kaVdXgEjTuITGXxA==","signatures":[{"sig":"MEUCIDRkzjMXgOjjQRcksOD/Jlny7BI+ZprVfPm97yMAaR0rAiEAvWHTkYpOAHXD1F0EcAL7CQYGioOQ1fm4aXKjPWhJF0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD38CK2zdoALEHCBws1SrO+Z8y2HoE+9sWruE61kH3QugIgIydJZINKcKH4jGbzX6ava56gQUgx0ysD0hj+B8NLXks="}],"unpackedSize":1340430},"main":"lib/index.js","name":"@dsh-feishu/dsh-feishu","type":"module","_from":"file:dsh-feishu-dsh-feishu-0.3.5.tgz","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"license":"MIT","scripts":{"lint":"biome check src tests e2e","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"node scripts/check-conventions.mjs","gates":"node scripts/run-gates.mjs","e2e:ui":"node e2e/scripts/e2e-ui.mjs","format":"biome format --write src tests e2e","verify":"node scripts/check-conventions.mjs && node scripts/run-gates.mjs","lint:fix":"biome check --write src tests e2e","e2e:login":"node e2e/scripts/e2e-login.mjs","e2e:setup":"node e2e/scripts/e2e-setup.mjs","typecheck":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","test:watch":"vitest","setup:feishu":"node scripts/setup-feishu.mjs","e2e:ui:headed":"E2E_HEADED=1 node e2e/scripts/e2e-ui.mjs","check:mergeable":"node scripts/check-mergeable.mjs"},"version":"0.3.5","_npmUser":{"name":"pgzxb","email":"pgzxb@qq.com"},"keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"_resolved":"/tmp/a2b7c2ab8ea7e17f9b1443b98bb3640d/dsh-feishu-dsh-feishu-0.3.5.tgz","_integrity":"sha512-bS/svkrSLqBY1Ib9R+KhqSv8P0VljN3Lti0IYIJ9zctzFyR3OGmo5Tw2AHWEM+GgaiEaj8kaVdXgEjTuITGXxA==","_npmVersion":"11.19.0","description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","directories":{},"maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"_nodeVersion":"24.21.0","dependencies":{"axios":"^1.7.0","js-yaml":"^5.2.3","markdown-it":"^15.0.0","qrcode-terminal":"^0.12.0","@larksuiteoapi/node-sdk":"^1.73.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.7","typescript":"^5.9.3","@types/node":"^22.15.0","@biomejs/biome":"^2.5.7","@types/js-yaml":"^4.0.9","@deepseek-ai/dsh":"0.1.7-rc.2","@playwright/test":"1.62.1","@types/markdown-it":"^14.1.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.7-rc.2","@deepseek-ai/dsh-agent":"^0.1.7-rc.2","@deepseek-ai/dsh-scope":"^0.1.7-rc.2","@types/qrcode-terminal":"^0.12.2","@deepseek-ai/dsh-session":"^0.1.7-rc.2","@deepseek-ai/dsh-timeout":"^0.1.7-rc.2","@deepseek-ai/dsh-commands":"^0.1.7-rc.2","@deepseek-ai/dsh-schedule":"^0.1.7-rc.2","@deepseek-ai/dsh-invariants":"^0.1.7-rc.2","@deepseek-ai/dsh-credentials":"^0.1.7-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.7-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.7-rc.2","@deepseek-ai/dsh-client-connection":"^0.1.7-rc.2","@deepseek-ai/dsh-client-file-upload":"^0.1.7-rc.2","@deepseek-ai/dsh-api-session-controller":"^0.1.7-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.7-rc.2","@deepseek-ai/dsh-agent":"^0.1.7-rc.2","@deepseek-ai/dsh-scope":"^0.1.7-rc.2","@deepseek-ai/dsh-tools":"^0.1.7-rc.2","@deepseek-ai/dsh-session":"^0.1.7-rc.2","@deepseek-ai/dsh-storage":"^0.1.7-rc.2","@deepseek-ai/dsh-timeout":"^0.1.7-rc.2","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-commands":"^0.1.7-rc.2","@deepseek-ai/dsh-schedule":"^0.1.7-rc.2","@deepseek-ai/dsh-workspace":"^0.1.7-rc.2","@deepseek-ai/dsh-invariants":"^0.1.7-rc.2","@deepseek-ai/dsh-credentials":"^0.1.7-rc.2","@deepseek-ai/dsh-storage-json":"^0.1.7-rc.2","@deepseek-ai/dsh-user-approval":"^0.1.7-rc.2","@deepseek-ai/dsh-storage-domain":"^0.1.7-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.7-rc.2","@deepseek-ai/dsh-client-connection":"^0.1.7-rc.2","@deepseek-ai/dsh-client-file-upload":"^0.1.7-rc.2","@deepseek-ai/dsh-api-session-controller":"^0.1.7-rc.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-feishu_0.3.5_1790607851102_0.6888382781798679"}}},"time":{"created":"2026-08-14T20:21:01.658Z","modified":"2026-09-28T15:04:11.575Z","0.1.0":"2026-08-14T20:21:02.028Z","0.1.1":"2026-08-14T20:47:46.906Z","0.2.0":"2026-08-16T19:12:42.093Z","0.2.1":"2026-08-20T05:27:03.337Z","0.2.2":"2026-08-23T06:21:52.040Z","0.3.0":"2026-08-26T08:31:18.373Z","0.3.1":"2026-09-02T12:33:54.877Z","0.3.2":"2026-09-05T22:48:37.781Z","0.3.3":"2026-09-15T03:27:45.972Z","0.3.4":"2026-09-23T10:35:25.825Z","0.3.5":"2026-09-28T15:04:11.214Z"},"license":"MIT","keywords":["dsh","deepseek-harness","deepseek","agent","feishu","lark","surface","bundle","cards","plugin"],"description":"The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin: live streaming cards, in-card questions & approvals, one-QR setup.","maintainers":[{"name":"pgzxb","email":"pgzxb@qq.com"}],"readme":"# The Feishu UI for DeepSeek Harness (dsh)\n\n[English](README.md) | 中文\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Node](https://img.shields.io/badge/node-%3E%3D22.13-339933.svg)](package.json)\n[![npm](https://img.shields.io/npm/v/@dsh-feishu/dsh-feishu)](https://www.npmjs.com/package/@dsh-feishu/dsh-feishu)\n[![CI](https://img.shields.io/github/actions/workflow/status/PGZXB/dsh-feishu/ci.yml?branch=main)](.github/workflows/ci.yml)\n\n给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)（dsh）做的飞书 UI——一个 dsh 原生插件，带**面板驱动的控制台**：每个 slash 命令都是 ⚙️ 控制面板卡片上的一个按钮，审批和提问都在聊天卡片内完成，扫一次二维码就把整个应用配好。\n\n> **注意：** [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)\n> 仍是预发布版本，版本之间可能有破坏性变更。dsh-feishu 以 **dsh `@latest`**\n> （当前为 **`0.1.7-rc.2`**）为准构建与验证，从 npm 与从 git 安装都适用。\n\nhttps://github.com/user-attachments/assets/e9163793-52f2-4e2c-a08a-22b27372be61\n\n*2 分半的演示（控制面板、流式卡片、审批与提问）。*\n\n## 快速上手\n\n### 从 npm 安装\n\n```sh\n# 1. 安装 Node.js ≥ 22.13\n#    macOS / Linux：nvm（https://github.com/nvm-sh/nvm）→ nvm install 22\n#    Windows：https://nodejs.org（或 winget install OpenJS.NodeJS.LTS）\nnode --version\n\n# 2. 安装 pnpm\nnpm install -g pnpm\n\n# 3. 安装插件\n#    （pnpm ≥ 11 默认拦截 protobufjs 的构建脚本，所以加上\n#     --allow-build=protobufjs 让它执行）\nnpx @deepseek-ai/dsh plugin --profile feishu add @dsh-feishu/dsh-feishu@latest --allow-build=protobufjs\n\n# 4. 扫一次二维码：创建并配置飞书应用\nnpx --yes --package @dsh-feishu/dsh-feishu dsh-feishu-setup --new --profile feishu\n\n# 5. 启动\nnpx @deepseek-ai/dsh --profile feishu\n```\n\n### 从源码安装\n\n```sh\n# 1. 安装 Node.js ≥ 22.13\n#    macOS / Linux：nvm（https://github.com/nvm-sh/nvm）→ nvm install 22\n#    Windows：https://nodejs.org（或 winget install OpenJS.NodeJS.LTS）\nnode --version\n\n# 2. 安装 pnpm\nnpm install -g pnpm\n\n# 3. 克隆并构建\ngit clone https://github.com/PGZXB/dsh-feishu.git\ncd dsh-feishu\npnpm install\npnpm run build\n\n# 4. 装进 profile\nnpx @deepseek-ai/dsh plugin --profile feishu add link:.\n\n# 5. 扫一次二维码：创建并配置飞书应用\npnpm run setup:feishu -- --new --profile feishu\n\n# 6. 启动\nnpx @deepseek-ai/dsh --profile feishu\n```\n\n然后到飞书里给机器人发消息即可。配置向导会把飞书应用整套搞定，全程不用开网页控制台，也不用手填凭据。如果你已经有应用，改成设置 `FEISHU_APP_ID` / `FEISHU_APP_SECRET`（环境变量或 profile 配置），详见 [docs/feishu-setup.md](docs/feishu-setup.md)。\n\n### 卸载\n\n```sh\n# 从 profile 移除插件\nnpx @deepseek-ai/dsh plugin --profile feishu remove @dsh-feishu/dsh-feishu\n\n# 可选——彻底清理：删除 profile 及其 surface 数据\n#（路径按默认 dsh home，~/.dsh）\nrm -rf ~/.dsh/profiles/feishu ~/.dsh/feishu\n```\n\n## 怎么用\n\n一个飞书聊天对应一个 dsh 会话，机器人就是 agent 的化身。一次典型的使用是这样：\n\n1. **开个聊天。** 直接私聊机器人；也可以发 `/group <名字>` 建个群。群里一般要 @ 机器人（默认策略）；如果群里只有你和机器人，不 @ 直接说也行；@ 策略本身可配置。\n\n<p align=\"center\"><img src=\"docs/assets/snapshots/1_chat.png\" width=\"640\" alt=\"与机器人的聊天\"></p>\n\n2. **打开控制面板。** 发 `/panel` 会唤出一张面板卡片。\n\n<p align=\"center\"><img src=\"docs/assets/snapshots/2_panel.png\" width=\"640\" alt=\"控制面板\"></p>\n\n3. **先定工作目录。** 没定目录之前机器人不会开工：点 **📚 Pick project** 从列表里挑（等价于 `/repo`），或点 **📁 Change dir** 直接输入路径（等价于 `/cd <路径>`）。\n\n<p align=\"center\"><img src=\"docs/assets/snapshots/3_repo.png\" width=\"640\" alt=\"项目选择\"></p>\n\n4. **直接问。** 发消息，agent 跑起来，工具调用、思考过程、markdown、表格一行行流进一张卡片。跑完卡片变绿，答案完整留在里面；停止、复制、重试和 ⚙️ 面板按钮就贴在卡片上。\n\n   | 进行中 | 已完成 |\n   |---|---|\n   | ![卡片进行中](docs/assets/snapshots/4.1_streaming-mid.png) | ![卡片已完成](docs/assets/snapshots/4.2_streaming-done.png) |\n\n5. **要审批就批，要回答就答。** agent 需要提权时会弹一张审批卡，点 **Allow once** 放行（或 **Reject** 拒绝）；它有问题会弹提问卡，点选项或直接回一句。\n\n   | 审批 | 提问 |\n   |---|---|\n   | ![审批卡](docs/assets/snapshots/5.1_approval.png) | ![提问卡](docs/assets/snapshots/5.2_question.png) |\n\n6. **管会话。** 点 **🗂️ Sessions** 列出所有已保存的会话、直接在卡片上恢复（等价于 `/sessions`；`/resume <id>` 也能把某个会话搬进当前聊天），点 **➕ New chat** 开新对话、旧的照留（等价于 `/clear`）。\n\n<p align=\"center\"><img src=\"docs/assets/snapshots/6_sessions.png\" width=\"640\" alt=\"会话列表\"></p>\n\n面板卡片上的每个按钮都对应一个 slash 命令——哪种顺手用哪种；`/help` 会把所有命令列一遍。\n\n## 命令\n\n| 命令 | 作用 |\n|---|---|\n| `/help` | 列出所有命令 |\n| `/panel` | 打开控制面板卡（所有命令的按钮版） |\n| `/group <name>` | 和机器人建群（无参会弹名称输入卡） |\n| `/cancel` | 停下正在跑的回合 |\n| `/cd <path>` | 设置本聊天的工作目录（无参会弹路径输入卡） |\n| `/repo [path]` | 挑一个项目目录（无参扫描默认 roots；`/repo <path>` 扫描该路径） |\n| `/status` | 查看本聊天的会话状态 |\n| `/feishu-status` | 显示运行状态诊断卡 |\n| `/schedule` | 列出活跃的提醒 |\n| `/model <provider/model>` | 切换本会话的模型（无参打开选择器） |\n| `/export` | 把会话日志作为文件发出来 |\n| `/log` | 把 dsh-feishu 的日志文件发到本聊天（便于排查问题；提 issue 时建议附上关键日志） |\n| `/sessions` | 列出已保存会话（卡片上可恢复） |\n| `/resume <id>` | 在本聊天恢复一个已保存会话（无参打开会话列表） |\n| `/clear` `/new` | 开新对话（旧会话仍保留） |\n| `/goal <text>` | 设置任务目标（无参会弹文本输入卡） |\n| `/compact` | 压缩较旧的对话历史 |\n| `/feedback <text>` | 发送反馈（无参会弹文本输入卡） |\n| `/permission <preset>` | 切换权限预设（无参打开选择器） |\n| `/plan [on\\|off]` | 进入或退出计划模式（无参切换） |\n\n## 能做什么\n\n- **实时流式卡片**——工具调用、思考、markdown、表格，边跑边流出来。\n- **一键控制面板**——`/panel` 把命令面板全部做成按钮；不用记命令语法，且每个按钮与敲命令完全等价。\n- **卡内审批 / 提问**——提权审批、回答问题都在聊天里完成。\n- **会话不丢**——重启守护进程，会话与工作目录都还在；`/sessions` 可列出、恢复、重命名、归档、导出。\n- **一次扫码完成接入**——扫一次飞书二维码就建好并配好应用（机器人资料、权限、事件订阅、凭据），并写好 dsh profile。\n- **文件双向流动**——你发的图片、文件、视频、富文本都会落到工作区成为普通文件，agent 按路径读取；agent 也能把工作区里的文件/图片发回聊天。\n- **消息排队与插话**——回合运行中发的消息会排队可见；可编辑、删除，或插进正在跑的回合。\n- **回合产物**——回合产出的文件以 chips 出现在卡片底部，点一下就在聊天里收到。\n- **卡片统计与诊断**——卡片上显示回合数、工具调用数、token 与当前上下文占用；`/feishu-status` 显示连接与会话诊断，回合运行中也能用。\n- **群聊 + @ 提醒**——群里 @ 机器人即可；出错、审批、提问都会 @ 回发起人。\n- **回执、白名单、提醒、导出**——表情回执、`allowedChats` / `allowedUsers` 白名单、定时提醒、会话日志文件。\n\n## 参与贡献\n\n见 [CONTRIBUTING.md](CONTRIBUTING.md) 与 [SECURITY.md](SECURITY.md)。开发、测试与发布：[docs/development.md](docs/development.md)。\n\n## 交流群\n\n扫码加入 dsh-feishu 飞书交流群：\n\n<img src=\"docs/assets/feishu-group-qr-code.png\" alt=\"dsh-feishu 交流群二维码\" width=\"220\">\n\n## 致谢\n\n- **[botmux](https://github.com/deepcoldy/botmux)** —— 群聊交互模式的参考：流式卡片、审批，以及扫码驱动的开放平台快速接入流程。dsh-feishu 借鉴的是 botmux 的*交互与接入模式*，而非其架构——botmux 桥接外部 CLI，本插件则是 dsh 原生、进程内的。\n- **[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)** —— 本插件所服务的平台。\n- **[Lark Open Platform SDK](https://github.com/larksuite/node-sdk)** —— 底层所用的 WebSocket 长连接与卡片 API。\n\n## License\n\nMIT——见 [LICENSE](LICENSE)。\n","readmeFilename":"README.zh.md"}