{"_id":"@4t145/lark-connector","_rev":"7-4a5bd90a704f56d3878faf3c01c05289","name":"@4t145/lark-connector","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@4t145/lark-connector","version":"0.1.0","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.0","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"a0701df0303047fa5080b9dadadfe40b527239ed","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.0.tgz","fileCount":56,"integrity":"sha512-JceiAk0TX3IqkltjFZe4bwodxEesVNFZqZPGTw+6ycz4yBvR/Y6PVaGqNRlTp6MgQCdybU/st/qHSZ61Uufo4Q==","signatures":[{"sig":"MEUCIQDUnNDMHjs1u5AVBC2SrVvBrIC1ya7+dcaZ57iTLRxZegIgQ8o9Y6TpP1xSQ/YxYMpHOC1/sSOWqeUs7pWmWOzJgyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705001},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"6e304f9505f4ace20262d39020292952d083d38d","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"4t145","email":"u4t145@163.com"},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.0_1786986032436_0.39329828574055914","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@4t145/lark-connector","version":"0.1.1","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.1","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"104ba4b83b4522e5e0208c4073dc3ede6fdef336","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.1.tgz","fileCount":56,"integrity":"sha512-E7xStpq/9XvPUEzHunSCUEdaZb6IdaBpKUuT6skizGwgSZG63nccEbC2TsatYEEDwyRPJQs63mYHS9MI/vSJIw==","signatures":[{"sig":"MEUCIGhuL1aKXtN+wEJxZpfSfLv04+ZMnRuQBxCx+1yutR6nAiEAr+yNDMVRNrt/Zf6JETV2ThH1DRSFnTgDBl581LSZij4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706527},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"bcb54136904ca5da2cf2d76aa8cf525bc14c5596","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.1_1786986749675_0.9719994065285151","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@4t145/lark-connector","version":"0.1.2","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.2","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"1edf61c16b299bf049e43de3c48c8873ce773dc4","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.2.tgz","fileCount":56,"integrity":"sha512-EIw3tWYhfIucp67Ni47yF9Dl+pZ7tIhWxKRE0PyitbpB5tla5pb4L3G8JamsnkB8BEmSEsTamqxx/WoyzOSi9w==","signatures":[{"sig":"MEUCIDiEHHwH4dzIIH5AuoiVNmo49Z3baJlgroWClFUVa2FTAiEAwvNRwMGmjxVAAw0ZgZrzFg6EkXFZKtbYG52FlwiYdTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706520},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"e2b9940f626d27ec3fd6fccf02e52c991be8baac","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.2_1786987015258_0.6248976995744453","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@4t145/lark-connector","version":"0.1.3","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.3","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"60e8eb0cd9c60c5172419b0c51528de2e4e8752a","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.3.tgz","fileCount":56,"integrity":"sha512-qlAkU1e7wpuEUMPKlYlebshfQdmqrkUMslpkPibqc2eQrUlhSZrgIacUPFozdy3zE76bwQp//rsspgZ1TfhqJQ==","signatures":[{"sig":"MEUCIQCYXXDNiys7b8pFwsx+JCOh1GNpRAwlay8wZl1/JTPDRAIgWmFKAWK0uZI+wGvVVjgNsBOFL9VtOAwema2oUTZSErk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706529},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"efc03920fd63228e3ac6f71472988b20f014edcc","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.3_1786988998958_0.6207121403007936","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@4t145/lark-connector","version":"0.1.4","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.4","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"53e63d790bdfd6020c5c7fa5d877400f1bbbe563","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.4.tgz","fileCount":56,"integrity":"sha512-4of8527dAIeNpgaEicAdNmFu23wRklsLB8ADO719FjtXFh7DcWPJVJ9CXLz1pFFWDQbK0c9KvSfjIT2psq0+5w==","signatures":[{"sig":"MEUCIBTlxivNMNsB8/qxdV5GI7HTl6jiLwP0gMxnj1XJBEu5AiEAw1PhOmoIWm8+4jOmjEeuFdIZ0u9TG45rITAoGFoVHR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706536},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"28beac9141626f35c1f421081acab70b3582334d","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.4_1786989780706_0.4731298072997763","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@4t145/lark-connector","version":"0.1.5","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","_id":"@4t145/lark-connector@0.1.5","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"98d0ba7ef92e88f20a959a55d0f2db90ce11cec4","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.1.5.tgz","fileCount":56,"integrity":"sha512-71CXBcVMn9Ui67gWGecPeRGgAOCVx2/8xz9kI53n8hGEEq77oM8BZtPrFcJJ5dVL7jEXZ/LBXReZcxlzud6mwA==","signatures":[{"sig":"MEQCIAw2CfQbVKd29XcFNiWcLDRHEkYBsfvrcroDKk81EOriAiB7RIngycsDDWnjgRF5Yqp4/pVUcVjkAYiJAK/jxZg4uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706662},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=22.6"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"b420eecde29c3fee95d8d6e3a3c6b37c3300de6d","scripts":{"lint":"eslint .","pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","check":"npm run typecheck && npm run lint && npm run format:check && npm test","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc --noEmit","build:client":"node scripts/build-client.mjs","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"repository":{"url":"git+https://github.com/4t145/dsh-lark-connector.git","type":"git"},"_npmVersion":"11.17.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@larksuiteoapi/node-sdk":"^1.73.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.0","eslint":"^9.17.0","vitest":"^3.0.0","esbuild":"^0.24.0","prettier":"^3.4.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/react":"^18.3.0","typescript-eslint":"^8.18.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/lark-connector_0.1.5_1787038206906_0.0007212373172471587","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@4t145/lark-connector","version":"0.2.0","description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","type":"module","main":"./lib/index.js","types":"./lib/index.d.ts","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"scripts":{"build":"tsc -p tsconfig.build.json && node scripts/build-client.mjs","typecheck":"tsc --noEmit","prepare":"npm run build","pack":"npm pack","test":"vitest run","lint":"eslint .","format":"prettier --write .","format:check":"prettier --check .","check":"npm run typecheck && npm run lint && npm run format:check && npm test","build:client":"node scripts/build-client.mjs"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1","@larksuiteoapi/node-sdk":"^1.73.0","zod":"^4.4.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-attachment":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-default-model":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-presets":"^0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.6","@deepseek-ai/dsh-attachment":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-settings-plugins":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-credentials":"^0.1.0-rc.6","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-session-persistence":"^0.1.0-rc.6","@deepseek-ai/dsh-session-title":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-settings":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@types/node":"^22.10.0","@types/react":"^18.3.0","esbuild":"^0.24.0","eslint":"^9.17.0","prettier":"^3.4.0","react":"^18.3.0","typescript":"^5.7.0","typescript-eslint":"^8.18.0","vitest":"^3.0.0"},"engines":{"node":">=22.6"},"keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/4t145/dsh-lark-connector.git"},"homepage":"https://github.com/4t145/dsh-lark-connector#readme","bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"publishConfig":{"access":"public"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./package.json":"./package.json"},"gitHead":"a0820b9dfe5502f46b7470c13a74c9082a9d14ca","_id":"@4t145/lark-connector@0.2.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-7H+QuN5mrbamq/hvOaBo6cUnv12v8sSgmU+7v3ODI/iFis0KUbMyRONOJz5arFJ9IKoWu/9wxcH+klpJhbrddg==","shasum":"d170ba4057135299d5ef0a77ce2eed1bac9df66e","tarball":"https://registry.npmjs.org/@4t145/lark-connector/-/lark-connector-0.2.0.tgz","fileCount":58,"unpackedSize":718555,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@4t145%2flark-connector@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBDp/QyXM+PzrgpoIMNAI43xOCXxuj+swJVItRlumIw0AiBiyQb5yZxu7kHhXG2jlzPklwXzNLhmgCZazCxuuEYOPQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08f0af09-0b41-4895-bf4b-60a807933c23"}},"directories":{},"maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lark-connector_0.2.0_1787040262750_0.6762880925165928"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T17:00:32.275Z","modified":"2026-08-18T08:04:23.212Z","0.1.0":"2026-08-17T17:00:32.597Z","0.1.1":"2026-08-17T17:12:29.845Z","0.1.2":"2026-08-17T17:16:55.412Z","0.1.3":"2026-08-17T17:49:59.134Z","0.1.4":"2026-08-17T18:03:00.840Z","0.1.5":"2026-08-18T07:30:07.080Z","0.2.0":"2026-08-18T08:04:22.896Z"},"bugs":{"url":"https://github.com/4t145/dsh-lark-connector/issues"},"license":"MIT","homepage":"https://github.com/4t145/dsh-lark-connector#readme","keywords":["dsh","dsh-plugin","deepseek-harness","plugin","cordis","feishu","lark"],"repository":{"type":"git","url":"git+https://github.com/4t145/dsh-lark-connector.git"},"description":"Connect Feishu and Lark chats to DeepSeek Harness sessions","maintainers":[{"name":"4t145","email":"u4t145@163.com"}],"readme":"# dsh-lark-connector\n\n一个面向 DeepSeek Harness（DSH）的飞书连接器插件。\n\n它把飞书机器人接入 DSH：飞书私聊或群聊中的消息可以进入独立的 DSH 会话，由 Agent 处理后再回复到原飞书消息。同时提供 Web 设置页，用于管理飞书凭据、连接状态以及新建飞书会话的默认配置。\n\n## 功能特性\n\n- 飞书 WebSocket 长连接：使用飞书官方 Node SDK 接收实时消息，不需要额外部署 Webhook 服务。\n- 私聊与群聊支持：私聊消息直接响应；群聊仅响应明确 @ 机器人的文本消息。\n- 识图能力：自动下载私聊图片消息与富文本 post 中的图片，持久化到 DSH 附件存储后随消息转发给 Agent，供具备视觉能力的模型识图；群聊中的富文本需要 @ 机器人。\n- 会话隔离：每个飞书 chat 映射到独立的 DSH session；同一 chat 内按 FIFO 顺序处理，不同 chat 可以并发处理。\n- 会话恢复与归档替换：使用 DSH session persistence 保存历史；归档后的 chat 会自动创建新的可见 session。\n- 原生 DSH 会话标题：使用飞书聊天标题作为 DSH session 标题，并在消息中标注发送者信息。\n- Workspace 归属：可将飞书会话归入指定 DSH workspace；未配置时使用宿主默认目录。\n- 新会话默认配置：在 Web 设置页选择 Agent preset、Provider/Model 和 Workspace，应用于之后创建的飞书 session。\n- 可靠回复：Agent 完成后将最终文本回复到原消息；超长文本自动分段，消息 ID 有界去重，避免长连接重放造成重复处理。\n- 凭据管理：通过 DSH credentials 服务保存 App ID、App Secret、品牌和 lark-cli 路径，也支持环境变量和 .env 来源。\n- lark-cli 集成：自动同步应用凭据到 lark-cli，并提供 lark_setup、lark_status 工具检查 CLI、官方 Skills 与连接状态。\n- 中英文 Web 界面：设置页面文案跟随 DSH 当前语言。\n\n## 安装\n\n插件以 `@4t145/lark-connector` 名称发布在 npm。发布后可以直接把 npm 包安装到 DSH profile；也可以克隆源码本地安装：\n\n```sh\nnpm install\nnpm run build\ndsh plugin --profile web add /path/to/dsh-lark-connector\n```\n\n插件 bundle 安装后，重启 DSH Web Host。插件注册名为 lark-connector。\n\n## 飞书应用配置\n\n在飞书开放平台创建应用并启用机器人能力，然后：\n\n1. 开通接收和发送消息所需的权限。\n2. 在事件订阅中选择“使用长连接接收事件”。\n3. 订阅 im.message.receive_v1。\n4. 将机器人加入需要响应的群聊。\n\n## Web 设置\n\n![配置界面预览](docs/preview.png)\n\n打开 DSH 设置中的“飞书连接器”页面，可以配置：\n\n- App ID\n- App Secret\n- Brand（feishu 或 lark）\n- lark-cli 路径\n- 飞书会话 Workspace\n- 新建飞书会话使用的 Agent preset\n- 新建飞书会话使用的模型 Provider 和 Model\n- 处理期间是否添加 THINKING 表情，并在完成后移除\n- 是否使用交互卡片流式更新回复\n- 是否在卡片中展示可折叠思维过程\n- 是否在卡片时间线中展示工具调用和结果\n\n卡片展示默认参考 lark-acp：思考和工具调用会合并到同一张 Feishu Card，并在生成期间持续更新。若卡片接口不可用，会自动回退为普通文本回复。\n\n图片支持 PNG / JPEG / WebP / GIF：下载后的图片写入 DSH 附件存储，并以 image content block 随用户消息进入会话，DSH 会话界面里也能看到原图。超出单条消息附件数量上限的图片会被忽略；下载失败或格式不支持时降级为纯文本，转发内容中会附带说明。\n\n保存的默认配置只影响之后新建的飞书 session，不会修改已经存在的 session。\n\n## 环境变量\n\n凭据引用如下：\n\n| 引用            | 作用                                        |\n| --------------- | ------------------------------------------- |\n| LARK_APP_ID     | 飞书应用 App ID                             |\n| LARK_APP_SECRET | 飞书应用密钥                                |\n| LARK_BRAND      | 品牌，通常为 feishu                         |\n| LARK_CLI_PATH   | lark-cli 可执行文件路径；留空时从 PATH 查找 |\n\n例如：\n\n```sh\nexport LARK_APP_ID=cli_xxx\nexport LARK_APP_SECRET=your-app-secret\nexport LARK_BRAND=feishu\nnpx @deepseek-ai/dsh web --port 8080\n```\n\n环境变量来源通常是只读的，优先级高于 Web 页面中保存的同名凭据。\n\n## lark-cli 与官方 Skills\n\n插件提供两个 DSH 工具：\n\n- lark_setup：检查 lark-cli 和官方 Agent Skills；可选择执行官方安装器。\n- lark_status：查看应用配置、CLI 版本和连接状态；可选择联网验证凭据。\n\n也可以手动安装：\n\n```sh\nnpx @larksuite/cli@latest install\n```\n\n## 本地开发\n\n```sh\nnpm install\nnpm run check\nnpm run build\n```\n\n测试覆盖消息去重、chat/session ID、消息路由和 lark-cli 配置同步等核心逻辑。\n\n## 项目结构\n\n- src/plugin.ts：DSH 插件生命周期、凭据同步和工具注册。\n- src/message/：飞书长连接、消息过滤、会话路由和 Agent 回复。\n- src/lark-cli/：lark-cli 探测、安装和凭据同步。\n- src/client/：DSH Web 设置页和 Typert 客户端 RPC。\n- src/typert.host.ts：Host 端 RPC manifest。\n- cordis.patch.yml：bundle 安装时使用的 Cordis 插件入口配置。\n\n## 发布\n\n本包通过 GitHub Actions 使用 npm Trusted Publishing（OIDC）发布，不需要长期保存的 NPM_TOKEN：\n\n- .github/workflows/ci.yml：push 到 main 和 PR 时运行 typecheck、lint、格式检查、测试与构建。\n- .github/workflows/npm-publish.yml：push `v*` tag（或手动触发）时，在检查与构建通过后执行 `npm publish --provenance --access public`。\n\nnpm 包设置中的 Trusted Publisher 需要填写：\n\n- Repository：`4t145/dsh-lark-connector`\n- Workflow filename：`npm-publish.yml`\n- Environment：留空\n\n首个版本需要先用已登录的 npm 账号手动发布一次以创建包条目，然后配置 Trusted Publisher，之后的版本由 tag 自动发布。\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md"}