{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"omdsh-dev-dsh-lark","slug":"omdsh-dev-dsh-lark","rank":116,"url":"https://github.com/omdsh-dev/dsh-lark","name":"omdsh-dev/dsh-lark","category":"notify","description":{"zh":"DeepSeek Harness 的飞书/Lark 机器人渠道：每个会话驱动独立 agent，工具审批、模型提问与计划审阅都以卡片回到聊天，点按钮或直接回复即可作答；聊天里用 `/cd`、`/model`、`/new` 切工作区、换模型、重开会话，多个机器人各自独立并可在同群交接回合。","en":"Lark/Feishu bot channel for DeepSeek Harness: each chat drives its own agent, and tool approvals, model questions, and plan reviews return as cards answered by a button or a reply. Switch workspace and model from the chat (`/cd`, `/model`, `/new`), and run several bots that keep separate sessions and can hand turns to each other in one group."},"stars":40,"starsCheckedAt":"2026-08-21","repository":{"owner":"omdsh-dev","repo":"dsh-lark","requestedRef":null,"subpath":""},"npm":"dsh-lark-channel","downloads":1460,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-lark-channel","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/omdsh-dev/dsh-lark/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"omdsh-dev-dsh-lark","slug":"omdsh-dev-dsh-lark","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:21:01.779Z","scanStatus":"static-complete","verdict":"caution","score":89,"commit":"632807d9abafbb866a5e208a0298eff21c7856d1","commitDate":"2026-08-19T17:02:04+08:00","artifactDigest":"sha256:e3698dcd5ad58d793a2fb0dac6e1061923e34b702eeb37936124d62bf26ccd70","downloadUrl":"https://github.com/omdsh-dev/dsh-lark/archive/632807d9abafbb866a5e208a0298eff21c7856d1.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-lark-channel","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-lark-channel","packageVersion":"0.0.7","bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{"prepare":"node scripts/prepare.mjs"},"peerDependencies":["@deepseek-ai/cordis"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-lark-channel","manifestName":"dsh-lark-channel","nameMatch":true,"npm":{"name":"dsh-lark-channel","latestVersion":"0.0.7","publishedAt":"2026-08-19T09:03:16.807Z","createdAt":"2026-08-14T06:14:06.578Z","versionCount":7,"maintainers":1,"repository":"git+https://github.com/omdsh-dev/dsh-lark.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"attested","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"lark-channel","name":"dsh-lark-channel","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":2,"clientPlatform":null,"parseErrors":[]},"capabilities":["agent-control","browser-ui","credentials","environment","filesystem","host-bundle","network","session","subprocess","telemetry"],"outboundHosts":[{"host":"open.larksuite.com","count":2},{"host":"open.feishu.cn","count":1},{"host":"www.apple.com","count":1}],"findings":[{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":15,"evidence":"!!js process.env.LARK_APP_ID","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"14959a5f920f209269567a2e"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":16,"evidence":"!!js process.env.LARK_APP_SECRET","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"4e104fd602137754b7e2ba43"},{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"low","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":29,"evidence":"\"prepare\": \"node scripts/prepare.mjs\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"该插件以 npm/tarball 预构建方式分发，prepare 不在用户机器上执行","hash":"fe611574a2e9dd5156aca68d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/prepare.mjs","pathClass":"source","line":5,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a25b2e787ff1f6e5fc685d33"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/prepare.mjs","pathClass":"source","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7f1b508b50e536d42221f442"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/provision.ts","pathClass":"source","line":28,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"093d9641655778b28c6dd54d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/provision.ts","pathClass":"source","line":28,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"733e9e0f436faa5df263d88d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/package.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a1e81d3f7602f8b4233e4167"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/package.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"6052260a3b6f3ad4c0748ca0"},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"src/provision.ts","pathClass":"source","line":20,"evidence":"credential access at line 20 + outbound network at line 1083","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"b5d5ebb65364d8f35af15a0f","review":{"verdict":"functional","reason":"第20行只是注释说明模型密钥经宿主ctx.credentials解析，实际凭据处理是把用户自己环境变量LARK_APP_ID/APP_SECRET写入0600本地unit文件供supervisor启动用，未见外泄第三方；1083行网络行为未展示但结合上下文属于向Lark开放平台完成QR/应用注册这一插件本职功能。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:19:53.141Z"}}],"counts":{"critical":0,"high":0,"medium":3,"low":4},"rawCounts":{"critical":0,"high":0,"medium":4,"low":6},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":85,"bytesScanned":1243834,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"test-example-docs":27,"markdown":6,"cordis":1,"manifest":1,"yaml":2,"source":43,"data":5}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:21:01.779Z","summary":null,"intentMatch":null,"findingsReviewed":1,"findingsCandidates":1,"fromCache":1,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:21:01.779Z","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:19:53.141Z","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:47:49.967Z","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:21:01.779Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:19:53.141Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"632807d9abafbb866a5e208a0298eff21c7856d1","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:47:49.967Z"}]}