npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-trivium

v0.4.14

Published

In-process graph memory for DeepSeek Harness, backed by TriviumDB.

Readme

dsh-trivium — DSH 进程内图记忆

DeepSeek Harness 的进程内图记忆插件:按节点和边记,默认少注入,设置页可改可归档。内核贴近 DSH:不另起进程、默认不加导航。要钉住某些记忆片段,再在设置里打开 芯片 注入;情节画布是可选的自嗨层,嵌在芯片开关下。每个工作区一个 .dsh/trivium.tdb,不另起服务。

快速安装dsh plugin --profile web add dsh-trivium → 重启 dsh web → 打开工作区(设置里出现「Trivium 记忆」;标题栏 芯片 默认关)。完整步骤见 安装

English | 中文版


安装

前提:已安装 DeepSeek Harness 并至少启动过一次 dsh web。当前测试宿主:@deepseek-ai/[email protected]dsh-llm / dsh-tools peer 兼容 0.1.0-rc.80.1.1-rc.2)。

dsh plugin --profile web add dsh-trivium

重启 dsh web 后生效。记忆文件在当前工作区:

<workspace>/.dsh/trivium.tdb      # 本地索引(二进制,建议 gitignore)
<workspace>/.dsh/trivium.jsonl    # git 源(业务事实)

trivium.jsonl 交给 git。二进制库不要进版本库:

.dsh/trivium.tdb
.dsh/trivium.tdb*
.dsh/trivium-pending.json

clone / git pull 后若 jsonl 变了会自动导回。设置里 Git 旁路 默认关(和芯片一样)。在「检查更新」下面的 配置设置 里打开。开关只控制是否自动写出。开着时 生成 用当前 .tdb 覆盖写出同一路径的 jsonl;关掉后 删除 jsonl 会清掉已知工作区的 jsonl(.tdb 不动)。情节、向量、芯片钉选仍只留在本机。

Dsh_BatStart 的,双击启动就会装上,不必再执行上面这条。

本地跟源码联调:

npm install
node scripts/link-dsh.mjs

然后重启 dsh web

更新

dsh plugin --profile web add dsh-trivium

装完重启 dsh web。源码联调则在仓库里 git pull 后再跑一次 node scripts/link-dsh.mjs

卸载

先停掉 dsh web,避免 .tdb 被占用,然后:

dsh plugin --profile web remove dsh-trivium

remove 会删掉本插件的文件:~/.dsh/trivium.json,以及它打开过的每个工作区里的 .dsh/trivium.tdbtrivium.jsonltrivium-pending.json.dsh/ 下其它文件不动。用 dsh plugin add dsh-trivium 升级不会清记忆。若 trivium.jsonl 已提交,git checkout 可以找回。

然后再重启 dsh web:设置里不再有「Trivium 记忆」,标题栏不再有「芯片」,四个工具不再注册。

从未用本版打开过的工作区,可能还留着旧 .tdb;看到就手动删那个文件。只想停用、不卸载(数据还在):在该 profile 的 cordis.patch.yml 里加:

- id: dsh-trivium
  disabled: true

再重启 dsh web

权限与数据

插件随 dsh web 进程加载,不另起端口、不另起服务。

| 访问 | 默认 | 说明 | |---|---|---| | 工作区 .dsh/trivium.tdb | 读写 | 记忆库。同一文件不要两个 Node 进程同时打开 | | 工作区 .dsh/trivium.jsonl | 读写 | Git 旁路(默认关)。只含业务节点和边,不含向量 | | ~/.dsh/trivium.json | 读写 | 设置和芯片钉选;可含你手填的 embedding API key | | .dsh/trivium-pending.json | 读写 | 抽取失败时的本地队列 | | 网络 | 关 | 对话不外发。打开 embedding 并填了 URL 才会把被检索文本发到你填的地址。设置页点「检查更新」会请求 npm registry(只拿版本号,不含对话) | | 对话原文 | 不外发 | 抽取和检索都在本机;embedding 开启后,被检索的文本会发到你填的地址 |

官方 DeepSeek 对话接口没有 embeddings。不开 embedding 也能用:关键词 + 图遍历。改完设置或 embedding 后需重启 dsh web

AI 时代安装

把下面这句话复制给助手即可:

请在 DeepSeek Harness 上执行:dsh plugin --profile web add dsh-trivium
然后重启 dsh web。设置里会出现「Trivium 记忆」。标题栏标签叫「芯片」,默认关;在设置「Trivium 记忆」里打开「芯片(记忆白名单)」即可,拨一下就保存,不必再重启。

默认安静的图记忆

Trivium 是记忆内核,不是日记、日历或聊天伴侣。它按节点和边记,默认少注入,记错了人能改。

  • 跨会话 — 会话 A 记下「鉴权走 header X」,会话 B 调用 ctx_find("鉴权") 命中,并带上它连着谁(about / decided / broke / fixed)。
  • 默认安静 — 新会话只注入一张短地图(≤400 token)。模型要用再调工具,不会每一步灌满。标题栏默认也不加第三标签。
  • 芯片 / 记忆白名单(默认关) — 设置里打开后,标题栏「对话 / 轨迹」旁出现 芯片。拨一下即写入 ~/.dsh/trivium.json,重启后仍保持。勾选的条目从下一轮注入(L0,≤300 token)。其下还有 会话层(也默认关):把 compaction / 分叉画成方框。
  • 人能改错 — 芯片条可新增、归档、删除;设置页管搜、改名 / 正文、合并、导入导出、全局开关。
  • 抽取偏严 — 闲聊、一次性改文件、密钥不会从对话自动入库。芯片「新增」按你写的存(点一次整段一条),同样过写入卫生闸门。
  • 写入卫生ctx_remember、芯片新增、抽取、外部导入会拒绝乱码、复读、JSON envelope、base64 残骸和密钥。已经进 .tdb 的脏节点仍可在设置里看见以便归档;find / 短地图 / 芯片不再带它们。
  • 可选 embedding — 默认关。官方 DeepSeek 对话接口没有 embeddings;可填 OpenAI 兼容地址。不开也能用:关键词 + 图遍历。

底层工程

  • 进程内、一个文件 — TriviumDB(向量 + JSON payload + 有向带权图)随 DSH 进程打开。不另起 HTTP / Python 服务。
  • 只有四个工具ctx_find / ctx_read / ctx_remember / ctx_link。芯片 / 会话层不加第五个。
  • 注入走 agent.inject() — 不写 system prompt,避免 persona.complete: true 把地图静默丢掉。
  • 召回带路径 — 每条命中都说明从哪个节点、沿哪条边过来。
  • 失败不挡主循环 — 存储 / embedding / 抽取出错只记日志,Agent 继续。
  • 界面跟随宿主语言 — 设置页和「芯片」标签随 DSH locale/change 切换(zh / en),也可在配置设置里锁定。
  • 首轮短地图 — 每个会话只注入一次。若 session-start 和第一步赛跑输了,pre-step 会补上;不会每步重写(前缀缓存友好)。

功能

跨会话图

节点类型是 entity / preference / decision / experience。业务边是 aboutdecidedbrokefixed

ctx_find 返回 L0 摘要和图路径(入边写成 <-label-id)。查询点到已有实体名时,还会带上未过期的 about/decided/broke/fixed 邻居,即使邻居正文不含查询词。带 until 的过期决策默认不出现,除非查询本身在问期限(如「周五」)。

芯片(记忆白名单)

默认关。在设置里打开 芯片(记忆白名单):不必再点「保存设置」,也不必重启。标题栏立刻出现 对话 / 轨迹 / 芯片,选择写入 ~/.dsh/trivium.json,重启后仍在。这是钉选白名单,不是记忆编辑器;改名、合并、全局开关仍走设置页。

列出未归档的 preference / decision / entity(experience 不进芯片)。勾选后从下一轮注入(L0,≤300 token)。条上可新增、归档、删除。

| 操作 | 生效时机 | |---|---| | 勾上某条 | 当前这段里你再发的下一条带上它(L0,≤300 token) | | 取消勾选 | 再下一轮不再带 | | 新增 | 点一次写入一条;整段粘贴也是一条 | | 选择 → 归档 | 软删除:find / 短地图 / 芯片不再出现,节点还在 .tdb | | 选择 → 删除 | 从 .tdb 去掉,不可恢复 | | 已经发出去的轮次 | 不回写 |

芯片按会话隔离。新开会话、fork 出的子会话默认都不勾。短地图仍在 session-start 自动带,不占芯片位。

其下 会话层 也默认关。打开后,同一标签里画出 compaction / 分叉方框(生成检查点、更新检查点、从方框 fork)。episode 不进 ctx_find。关掉会话层就停止写检查点,已有节点仍在 .tdb

设置页(Trivium 记忆)

设置里的「Trivium 记忆」管库。「检查更新」在最上,记忆条目保持可见。其余选项收在 配置设置 折叠里(默认收起):注入、抽取、芯片、Git 旁路、界面语言、导入、embedding。开关拨一下就写入 ~/.dsh/trivium.json

| 开关 | 默认 | 作用 | |---|---|---| | 芯片(记忆白名单) | 关 | 标题栏「对话 / 轨迹」旁的标签。勾选的芯片是下一轮注入白名单(L0,≤300 token)。 | | 会话层 | 关(要先开芯片) | 同一标签里的情节画布:生成检查点、更新检查点、从方框分叉。 | | Git 旁路 | 关 | 图有改动后延迟写入 .dsh/trivium.jsonl。开着可 生成(从当前 .tdb 覆盖写出);关掉可 删除 jsonl。clone / pull 会导回。 | | 界面语言 | 跟随宿主 | 只改本插件设置页和芯片标签的中英文,不改 DSH。 | | 注入策略 | 关 | 只有开场短地图;可改 autoRecall 或实体名折中。 | | 抽取 | 开 | compaction / 空闲后写入。 | | embedding | 关 | 要填 URL 并点「保存设置」,改 URL 后重启。 |

注入细节:autoRecall 在本步含用户文本时最多灌 3 条 L0;实体名折中只在话里点到已有实体时灌 1 跳业务边邻居。芯片钉选优先占预算。抽取失败进 pending,下次 session-start 重放(每批正文 ≤3000 字、最多 24 条)。

  • 条目 — 可搜、按类型筛、展开业务边邻居、「只看挂在这上面的」、默认隐藏过期决策。可改名 / 改正文 / 别名 / until,同类型合并,归档或删除。
  • 导出导入 — JSON 是真回写。Markdown 只读投影(给人看)。给 git 用的是 .dsh/trivium.jsonl(业务事实,自动写)。WorkBuddy MEMORY.md、Claude Code CLAUDE.md、Codex AGENTS.md 可一次性严导入。不监视那些文件,不导入会话 jsonl。
  • 检查更新 — 设置页对比已装版本和 npm latest,有新版时给出 dsh plugin --profile web add dsh-trivium。不会在后台自动升级。

四个工具

| 工具 | 说明 | |---|---| | ctx_find | 检索,返回 L0 摘要和图路径(含入边 <-label-id)。查询点到已有实体名时,还会带上未过期的 about/decided/broke/fixed 邻居。带 until 的过期决策默认不出现,除非查询本身在问期限(如「周五」) | | ctx_read | 按 id 读全文和入边 | | ctx_remember | 手动写入 | | ctx_link | 两点之间建有向边 |

内核仍是这四个。芯片 / 会话层不加第五个工具。


界面截图

以下入口在本机 DSH Web(0.1.1-rc.2)上仍在。截图为中文界面。插件默认跟随 DSH 宿主语言;也可在 配置设置 里锁定中文或英文。

会话 — ctx_find("鉴权")

会话开头注入 dsh-trivium 短地图;模型调用 ctx_find,命中「本仓库鉴权走 header X」。

轨迹 — 上下文注入可见

设置 — 检查更新、语言、注入策略

「检查更新」下面是可折叠的 配置设置(本插件语言、注入策略)。

设置 — 抽取、芯片、Git 旁路

芯片开关下嵌 会话层(情节画布)。同一页还有 Git 旁路、Markdown 导出、外部记忆一次性导入、远程 embedding。

设置 — 记忆条目

芯片 — 可选,在对话 / 轨迹旁

默认关。设置里打开 芯片(记忆白名单) 后,标题栏立刻出现 芯片。若同时打开 会话层,没压过的会话只有一个「后续」方框;顶部是记忆芯片(默认不勾)。可点「生成检查点」把后续收成左边一格。compaction 或 /compact 之后左边也会出现历史方框,分叉从方框连到子会话。


限制

  • 模型不调 ctx_find、也不勾芯片时,窗口里主要是开场短地图。
  • 抽取会漏;脏数据可在芯片条归档 / 删除,或到设置里改、合并。
  • 同一个 .tdb 不要两个 Node 进程同时打开(正常只开一个 dsh web 即可)。
  • Markdown 导出是给人看的,不能再解析回去。能回写进 git 的是 trivium.jsonl,不是 Markdown。外部导入(WorkBuddy / Claude Code / Codex)是一次性,不是双向同步,也不会吃会话 jsonl。
  • .tdb 不要在 git 里合并(二进制)。跟踪 trivium.jsonl,忽略 .tdb。jsonl 冲突按普通文本解决,再打开工作区即可。
  • 会话层打开时只投影 compaction 与 fork,不会按消息条数自己切方框。窗口没到 DSH 压缩线时,「更新检查点」也补不出历史方框;要分段请点「生成检查点」。
  • 芯片 / 会话层 / Git 旁路 / 注入 / 抽取开关拨一下即保存。Embedding URL 仍要点「保存设置」。只有设置页本身没出现时才需要重启 dsh web
  • 宿主升到 rc.8 后,DSH 自己的旧会话库可能打不开(官方 SQLite 格式不兼容)。工作区里的 .tdb 图记忆还在;对不上号的旧情节方框可以当残留,不影响 ctx_find

更新说明

0.4.14 — 存储升到 [email protected](WAL/锁更硬、可选只读共享、ARM64 修复)。四工具 / 短地图 / find 路径不变。

0.4.13 — 标题栏只显示 芯片;设置里的开关仍叫 芯片(记忆白名单)。会话层开关立刻刷新芯片页。设置 / 芯片截图更新。

0.4.12 — Git 旁路:工作区 .dsh/trivium.jsonl 作为文本源(业务节点和边)。.tdb 仍是本地索引。写入延迟约 1.5 秒,不额外调模型。clone / git pull 后文件变了会导回。开关默认关生成 用当前 .tdb 覆盖写出 jsonl;关掉后 删除 jsonl 会清掉已知文件。设置页把可选项收到「检查更新」下的配置折叠里。界面语言可跟随宿主或锁定中/英。

0.4.11 — 标题栏标签改为 芯片(记忆白名单)(不再叫「会话图」)。开关拨一下即写入 ~/.dsh/trivium.json;标签立刻出现或消失,不必重启。

0.4.10dsh plugin remove 会删掉已知工作区的 .tdb~/.dsh/trivium.json。升级安装不清记忆。配置里 disabled 仍保留数据。

0.4.9 — 芯片标签和会话层画布都默认关。设置里打开芯片后标题栏才出现「芯片」;情节方框嵌在其下。内核(四工具、短地图、进程内 .tdb)不变。

0.4.8 — 写入 + 注入卫生闸门(密钥、乱码、复读、JSON envelope、base64 残骸)。设置页 / 芯片标签跟随 DSH 语言。设置页可检查 npm 更新。一次性严导入同时发现 Claude Code CLAUDE.md 与 Codex AGENTS.md。若 session-start 和第一步赛跑,首轮短地图仍会补上。

0.4.7 — 存储升到 [email protected](引擎侧 searchExact / searchBatch)。find / 芯片标签行为不变。

0.4.6 — 芯片标签可「生成检查点」:把当前「后续」收成左边一格。不触发 DSH 压缩。

0.4.5 — 宿主 peer 放宽到 0.1.0-rc.80.1.1-rc.2,不再嵌一套旧 dsh-llm / dsh-tools

0.4.4 — 依赖 [email protected]:入边、按 label 扩邻、按 label 删边走引擎 API,不再全表扫边。find / 芯片标签行为不变。

0.4.3 — 芯片标签「更新检查点」:把当前对话里 DSH 已有的压缩标记和侧边栏 fork 补进图,给装插件之前的旧会话用。没压过的会话仍然只有「后续」。

0.4.2 — 芯片条可新增(整段粘贴一条)、批量归档 / 删除。自动抽取仍偏严;芯片新增按你写的入库。

0.4.1 — 宿主钉到 @deepseek-ai/[email protected]。功能与 0.4.0 相同。已在 rc.8 上确认:设置「Trivium 记忆」、新会话短地图、跨会话 ctx_find、标题栏标签(现为芯片)。

0.4.0 — 标题栏标签、记忆芯片、从检查点 fork。

排障

| 现象 | 处理 | |---|---| | 设置里没有「Trivium 记忆」 | 确认装的是 web profile,然后重启 dsh web,再打开一个工作区。只刷新浏览器不够。 | | 标题栏没有「芯片」 | 在设置里打开「芯片(记忆白名单)」(拨一下就会保存)。切回对话页,标签应立刻出现,不用重启。 | | 改了注入 / 抽取 / embedding / 芯片开关没生效 | 芯片 / 抽取 / 注入拨一下即保存。Embedding URL 仍要点「保存设置」。只有设置页本身没出现时才重启 dsh web。 | | 会话层只有一个「后续」方框 | 正常(在会话层已打开时)。方框跟 DSH 压缩走,会话长不等于已经压过(默认约窗口 80% 才自动压)。要分段:对话里 /compact,或点「生成检查点」(只切图,不压窗口)。旧会话可点「更新检查点」补已经发生过的压缩 / 分叉。 | | ctx_find 什么都没有 | 新会话默认只注入短地图,模型要自己调工具。也可以在芯片条「新增」或对模型说「记住:…」。闲聊和一次性改文件不会自动入库。 | | 报 .tdb 被占用 / 打不开 | 只开一个 dsh web。不要同时跑两份链接了本插件的 Node 进程。 | | embedding 填了但检索没变准 | 失败会退回关键词 + 图。看 ~/.dsh/trivium.json 里 URL 是否 OpenAI 兼容(含 /v1 那种)。改完重启。 | | 卸载后记忆还在 | 先停 dsh webdsh plugin remove。剩下的 .tdb 是从未用 0.4.10 打开过的工作区,到该文件夹删 .dsh/trivium.tdb。已提交的 trivium.jsonlgit checkout 找回。只在配置里 disabled 不会清文件。 | | 检查更新失败 | 只请求 npm registry 拿最新版本号,不影响记忆;过一会儿再点即可。 | | rc.8 之后旧对话打不开 | 那是 DSH 自己的会话库格式变了,不是 .tdb 坏了。图记忆仍可 ctx_find;对不上号的旧方框可当情节残留。 |

本地联调:仓库里 npm installnode scripts/link-dsh.mjs,再重启 dsh webtriviumdb 是原生模块,装不上时先看 Node 是否满足 package.jsonengines^22.19.0 || >=24)。


发布信息


致谢

写入卫生闸门、npm 检查更新、跟随宿主语言的界面,以及 Claude Code / Codex 文件发现,部分借鉴自 dsh-auto-memory(Aik358)。产品仍是图内核(节点、边、四个工具、默认安静),不是日记 / 日历伴侣。