v0.3.02026-10-29:新增指定全文读取/ecolink-list、/ecolink-read、模型工具…
34.2/100
综合分
6
GitHub 星标
432
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @zoria-lind/dsh-ecolink-adapternpm 源 · @zoria-lind/dsh-ecolink-adapter 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过安装清单取自 adapter/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@zoria-lind/dsh-ecolink-adapter @ 0.2.2
✓Node 引擎要求 >=18.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 04:55:17
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
命令参数由运行时变量拼接读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 62 处,展示前 41 条)
- 发起网络请求adapter/src/client.js:7
const response=await fetch(method==='GET'?`${path}?${new URLSearchParams(args)}`:path, - 读取本地文件adapter/src/modules/memoryWrite.js:33
if (existsSync(cand)) { - 读取本地文件adapter/src/modules/memoryWrite.js:34
const token = String(JSON.parse(readFileSync(cand, 'utf8'))?.token ?? '') - 发起网络请求adapter/src/modules/memoryWrite.js:46
const fetchImpl = typeof deps.fetchImpl === 'function' ? deps.fetchImpl : ((...a) => fetch(...a)) - 发起网络请求adapter/src/modules/serviceGuard.js:49
const fetchImpl = typeof deps.fetchImpl === 'function' ? deps.fetchImpl : ((...a) => fetch(...a)) - 执行外部命令表达式求值adapter/src/modules/serviceGuard.js:50
const spawnImpl = typeof deps.spawnImpl === 'function' ? deps.spawnImpl : ((...a) => spawn(...a)) - 读取本地文件adapter/src/modules/serviceGuard.js:51
const serverPath = typeof deps.serverPath === 'string' ? deps.serverPath : (SERVICE_SERVER_CANDIDATES.find((p) => existsSync(p)) ?? SERVICE_SERVER_CAN - 读取本地文件adapter/src/modules/serviceGuard.js:78
if (!existsSync(serverPath)) { - 读取本地文件adapter/src/modules/memoryReader.js:39
const readFile=deps.readFile ?? (p=>readFileSync(p,'utf8')) - 写入本地文件service/pool.mjs:114
mkdirSync(dir, { recursive: true }) - 读取本地文件service/pool.mjs:115
if (existsSync(poolFile)) { - 读取本地文件service/pool.mjs:117
const data = JSON.parse(readFileSync(poolFile, 'utf8')) - 写入本地文件service/pool.mjs:128
try { renameSync(poolFile, `${poolFile}.broken-${Date.now()}`) } catch { } - 写入本地文件service/pool.mjs:137
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件service/pool.mjs:140
writeFileSync(tmp, text, 'utf8') - 写入本地文件service/pool.mjs:141
renameSync(tmp, file) - 读取本地文件service/pool.mjs:143
try { if (existsSync(tmp)) unlinkSync(tmp) } catch { } - 删除本地文件service/pool.mjs:143
try { if (existsSync(tmp)) unlinkSync(tmp) } catch { } - 读取本地文件service/pool.mjs:154
if (existsSync(sugFile)) { - 读取本地文件service/pool.mjs:156
const data = JSON.parse(readFileSync(sugFile, 'utf8')) - 写入本地文件service/pool.mjs:160
try { renameSync(sugFile, `${sugFile}.broken-${Date.now()}`) } catch { } - 读取本地文件service/pool.mjs:200
if (existsSync(archiveFile)) { - 删除本地文件service/pool.mjs:597
unlinkSync(stagingFile) - 删除本地文件service/pool.mjs:622
unlinkSync(stagingFile) - 发起网络请求service/compress.mjs:55
const resp = await fetch(`${baseUrl.replace(/ $/, '')}/chat/completions`, { - 写入本地文件service/server.mjs:23
appendFileSync(logPath, `[${new Date().toISOString()}] ${method} ${path} ${detail}\n`, 'utf8') - 读取本地文件service/server.mjs:24
if (statSync(logPath).size > 1024 * 1024) { - 写入本地文件service/server.mjs:25
renameSync(logPath, `${logPath}.old`) - 读取本地文件service/server.mjs:35
if (existsSync(CONFIG_FILE)) { - 读取本地文件service/server.mjs:37
Object.assign(defaults, JSON.parse(readFileSync(CONFIG_FILE, 'utf8'))) - 读取密钥环境变量service/server.mjs:45
if (process.env.ECOLLINK_TOKEN !== undefined) defaults.token = process.env.ECOLLINK_TOKEN - 读取密钥环境变量service/server.mjs:47
if (process.env.ECOLLINK_DEEPSEEK_API_KEY) defaults.deepseekApiKey = process.env.ECOLLINK_DEEPSEEK_API_KEY - 读取密钥环境变量service/server.mjs:64
if (!config.token && process.env.ECOLLINK_TOKEN === undefined) { - 读取本地文件service/server.mjs:68
if (existsSync(CONFIG_FILE)) { - 读取本地文件service/server.mjs:69
try { raw = JSON.parse(readFileSync(CONFIG_FILE, 'utf8')) ?? {} } catch { } - 写入本地文件service/server.mjs:74
writeFileSync(tmp, JSON.stringify(raw, null, 2), 'utf8') - 写入本地文件service/server.mjs:75
renameSync(tmp, CONFIG_FILE) - 读取本地文件service/server.mjs:77
try { if (existsSync(tmp)) unlinkSync(tmp) } catch { } - 删除本地文件service/server.mjs:77
try { if (existsSync(tmp)) unlinkSync(tmp) } catch { } - 读取密钥环境变量service/server.mjs:134
const disabled = process.env.ECOLLINK_DISABLE_TOKEN_DISCOVERY === '1' - 读取密钥环境变量service/server.mjs:156
if (process.env.ECOLLINK_DISABLE_TOKEN_DISCOVERY === '1') {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 打通网页版与本地记忆
- 本地记忆池共享
- 浏览器扩展采集注入
记忆生态打通 DeepSeek 网页版与本地 DSH——一个本地记忆池,由浏览器扩展(采集/注入)、零依赖本地服务(唯一写入方)和 DSH 适配器(前置步骤注入)共用。
README
由 DeepSeek 最新模型翻译生成v0.3.0(2026-10-29):新增指定全文读取(/ecolink-list、/ecolink-read、模型工具 ecolink_memory)、DSH 记忆侧栏与通用/非通用分类、网页「保存完整成果」。自动短标签继续独立收割和入池;全文读取不再要求手动复制。完整规则与限制见 adapter/README.md。
dsh-ecolink
打通 DeepSeek 网页版与本地 DSH 的记忆生态:网页端记住的,DSH 直接用;DSH 里产生的,网页端也能读到。同一份结构化本地记忆池(~/.dsh-memory/memory.json)。
组件
| 组件 | 目录 | 说明 |
| dsh-ecolink-web | extension/ | Chrome/Edge MV3 扩展:网页端标签收割(DSM 兼容格式)、请求注入(打分+预算+会话去重)、防污染三件套、popup 面板(配置/会话管理/DSM 导入/压缩) |
| dsh-ecolink-service | service/ | 本地记忆池唯一写者:零依赖 HTTP 服务、时间戳分层、归档、事务化压缩(暂存池 → 动态下限验收 → 提交/回滚,零丢失)、请求日志 |
| dsh-ecolink-adapter | adapter/ | DSH 适配层:直读记忆池、pre-step 注入、#记忆名 过滤 |
展开完整文档(README 剩余 1 节)
v0.3.0(2026-10-29):新增指定全文读取(/ecolink-list、/ecolink-read、模型工具 ecolink_memory)、DSH 记忆侧栏与通用/非通用分类、网页「保存完整成果」。自动短标签继续独立收割和入池;全文读取不再要求手动复制。完整规则与限制见 adapter/README.md。 dsh-ecolink 打通 DeepSeek 网页版与本地 DSH 的记忆生态:网页端记住的,DSH 直接用;DSH 里产生的,网页端也能读到。同一份结构化本地记忆池(~/.dsh-memory/memory.json)。 组件 | 组件 | 目录 | 说明 | | dsh-ecolink-web | extension/ | Chrome/Edge MV3 扩展:网页端标签收割(DSM 兼容格式)、请求注入(打分+预算+会话去重)、防污染三件套、popup 面板(配置/会话管理/DSM 导入/压缩) | | dsh-ecolink-service | service/ | 本地记忆池唯一写者:零依赖 HTTP 服务、时间戳分层、归档、事务化压缩(暂存池 → 动态下限验收 → 提交/回滚,零丢失)、请求日志 | | dsh-ecolink-adapter | adapter/ | DSH 适配层:直读记忆池、pre-step 注入、#记忆名 过滤 | 快速开始 1. 启动服务(记忆池唯一写者)——日常不需要手动起: DSH 的 adapter 会自动拉起(serviceAutoStart 默认开); 登录自启任务兜底:scripts/install-autostart.ps1(不开 DSH 也能用) node dsh-ecolink/service/server.mjs 2. 加载扩展 Edge: edge://extensions → 开发人员模式 → 加载解压缩的扩展 → 选 extension/ 3. DSH 挂载适配层(npm 安装,推荐) dsh plugin --profile web add @zoria-lind/dsh-ecolink-adapter 或本地路径(开发): dsh plugin --profile web add <仓库目录>/adapter 服务默认 http://127.0.0.1:17520,零外部网络请求、零遥测;记忆数据只落在本机。 运维脚本:scripts/start-service.ps1(隐藏启动)/ stop-service.ps1(停止)/ install-autostart.ps1 / uninstall-autostart.ps1(登录自启)。 记忆流动 网页端对话 ──吐 <DSM:memory_write> 标签──▶ 扩展收割(DOM + 历史响应双通道) │ │ │ 注入(打分+预算) ▼ ◀────────────────────────────── ecolink-service 落盘 │ DSH 会话 ──pre-step 注入(同选择器)──◀─────────┘ (adapter 只读) - 写入:模型在网页对话中输出 <DSM:memory_write>内容</DSM:memory_write>(兼容 DSM 的 key/importance 属性格式),扩展收割后落盘 - 读取:请求注入(网页端)/ pre-step 注入(DSH),同一套打分选择器 - 压缩(0.2.0,双池事务):popup 一键,网页端免费模型为主、API 压缩(deepseek-chat)为辅。 开始压缩 = 过时记忆从主池移入暂存池(staging.json,全程留落盘副本);模型输出的新标签作为普通记忆写回主池;验收通过 → 清空暂存池,不达标/失败 → 暂存池原样放回主池(零丢失)。 验收公式与完整流程见 service/README.md 测试 node --test extension/test/core.test.mjs # 扩展核心 14 项 node --test service/test.mjs # 服务 14 项 node adapter/test/smoke.mjs # 适配层 76 项 文档 - 完整方案与阶段表:PLAN.md - 组件细节见各目录 README License MIT © 2026 Zoria Lind
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Zoria-Lind/dsh-ecolink
v0.3.02026-10-29:新增指定全文读取/ecolink-list、/ecolink-read、模型工具…
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目