Skip to content

feat(core): 新增 DeepSeek Harness (dsh) 用量采集 - #39

Open
cyhano wants to merge 1 commit into
juejin-cn:mainfrom
cyhano:feat/dsh-harness-source
Open

feat(core): 新增 DeepSeek Harness (dsh) 用量采集#39
cyhano wants to merge 1 commit into
juejin-cn:mainfrom
cyhano:feat/dsh-harness-source

Conversation

@cyhano

@cyhano cyhano commented Aug 31, 2026

Copy link
Copy Markdown

概述

让 juejin-usage 能读取本机 DeepSeek Harness(dsh) 的官方会话存储,把 token 用量计入面板与排行榜。

数据源

DSH 官方会话文件:~/.dsh/sessions/<workspace>/<sessionId>/session.jsonl.zstd(zstd 压缩的 JSONL,逐行一个事件)。

  • 用量仅出现在 assistant/message 事件的 data.usageinputTokens / outputTokens / cacheReadTokens,每个消息的最终值)。
  • 模型/provder 在 data.message.source(如 api/deepseek-v4-pro)。
  • 项目根目录在 session 首行的 cwd

注:assistant/chunktool/result 里也带同一份 usage(流式中间态),parser 只读 assistant/message,避免重复计数。

字段映射

DSH 字段 QueueBucket
inputTokens input_tokens
outputTokens output_tokens
cacheReadTokens cached_input_tokens
(无) cache_creation_input_tokens = 0
(无) reasoning_output_tokens = 0
message.source.model model
session cwdresolveProjectName project

关键实现点

  1. 多帧 zstd 解压:dsh 会话是流式追加写入的多帧 zstd 文件,Node 内置 zstdDecompressSync 只解压第一帧。parser 按帧循环解压并拼接(靠 { info: true } 返回的 engine.bytesWritten 推进偏移)。
  2. 增量重扫:zstd 无法按字节 offset 续读,因此按「会话文件 inode+size+mtime 变了才重读」短路;重读后用 sessionId|messageId 去重,避免重复计数。
  3. 接入点:parser(parsers/dsh.ts)→ sync 调度(syncDsh + SYNC_SOURCE_IDS)→ source 探测(source-presence.ts)→ tool catalog → 上传事件映射(upload/events.ts)→ 前端 label/颜色/图标/关于页。

测试

packages/core/test/dsh.test.ts 新增 5 个用例(覆盖:环境变量、文件发现、基础解析、幂等、多帧 zstd),全量 core 测试 246 个通过,无回归。

Co-Authored-By: ZCode noreply@z.ai

读取 ~/.dsh/sessions/**/session.jsonl.zstd,把 dsh 的 token 用量计入面板与排行榜。

- 新增 parser:解析官方会话文件(zstd 压缩 JSONL),只采 assistant/message 的
  data.usage,按消息去重、支持增量重扫,避免重复计数
- 多帧 zstd:dsh 会话是流式追加写入的多帧文件,Node 内置解压只处理第一帧,
  这里按帧循环解压并拼接(靠 engine.bytesWritten 推进)
- 字段映射:inputTokens→input,outputTokens→output,cacheReadTokens→cached_input,
  model 取 message.source.model,项目取 session 首行 cwd
- 接入 sync 调度、source 探测、tool catalog、上传事件映射与前端 label/颜色/图标

Co-Authored-By: ZCode <noreply@z.ai>
@cyhano
cyhano force-pushed the feat/dsh-harness-source branch from cc940da to 99e7171 Compare August 31, 2026 10:34
@ATQQ ATQQ mentioned this pull request Sep 1, 2026
21 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant