vibeusage 0.2.20 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +306 -173
  2. package/README.old.md +324 -0
  3. package/README.zh-CN.md +304 -188
  4. package/package.json +32 -30
  5. package/src/cli.js +41 -37
  6. package/src/commands/activate-if-needed.js +41 -0
  7. package/src/commands/diagnostics.js +8 -9
  8. package/src/commands/doctor.js +31 -26
  9. package/src/commands/init.js +324 -208
  10. package/src/commands/status.js +86 -80
  11. package/src/commands/sync.js +182 -130
  12. package/src/commands/uninstall.js +69 -58
  13. package/src/lib/activation-check.js +290 -0
  14. package/src/lib/browser-auth.js +52 -54
  15. package/src/lib/claude-config.js +25 -25
  16. package/src/lib/cli-ui.js +35 -35
  17. package/src/lib/codex-config.js +40 -36
  18. package/src/lib/debug-flags.js +2 -2
  19. package/src/lib/diagnostics.js +73 -55
  20. package/src/lib/doctor.js +139 -132
  21. package/src/lib/fs.js +17 -17
  22. package/src/lib/gemini-config.js +44 -40
  23. package/src/lib/init-flow.js +16 -22
  24. package/src/lib/insforge-client.js +10 -10
  25. package/src/lib/insforge.js +9 -3
  26. package/src/lib/openclaw-hook.js +91 -67
  27. package/src/lib/openclaw-session-plugin.js +520 -0
  28. package/src/lib/opencode-config.js +31 -32
  29. package/src/lib/opencode-usage-audit.js +34 -31
  30. package/src/lib/progress.js +12 -13
  31. package/src/lib/project-usage-purge.js +23 -17
  32. package/src/lib/prompt.js +8 -4
  33. package/src/lib/rollout.js +342 -241
  34. package/src/lib/runtime-config.js +34 -22
  35. package/src/lib/subscriptions.js +94 -92
  36. package/src/lib/tracker-paths.js +6 -6
  37. package/src/lib/upload-throttle.js +35 -16
  38. package/src/lib/uploader.js +33 -29
  39. package/src/lib/vibeusage-api.js +72 -56
  40. package/src/lib/vibeusage-public-repo.js +41 -24
package/README.zh-CN.md CHANGED
@@ -4,18 +4,19 @@
4
4
 
5
5
  # 🟢 VIBEUSAGE
6
6
 
7
- **量化你的 AI 产出**
8
- _Codex CLI 实时 AI 分析工具_
7
+ **量化你的 AI 产出**
8
+ _追踪所有 AI CLI 工具的 Token 使用量_
9
9
 
10
10
  [**www.vibeusage.cc**](https://www.vibeusage.cc)
11
11
 
12
12
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
13
- [![Node.js Support](https://img.shields.io/badge/Node.js-%3E%3D18-brightgreen.svg)](https://nodejs.org/)
13
+ [![npm version](https://img.shields.io/npm/v/vibeusage.svg)](https://www.npmjs.com/package/vibeusage)
14
+ [![Node.js Support](https://img.shields.io/badge/Node.js-20.x-brightgreen.svg)](https://nodejs.org/)
14
15
  [![Platform](https://img.shields.io/badge/Platform-macOS-lightgrey.svg)](https://www.apple.com/macos/)
15
16
 
16
17
  [**English**](README.md) • [**中文说明**](README.zh-CN.md)
17
18
 
18
- [**文档**](docs/) • [**控制台**](dashboard/) • [**后端接口**](BACKEND_API.md)
19
+ [**文档**](docs/) • [**控制台**](https://www.vibeusage.cc) • [**后端接口**](BACKEND_API.md)
19
20
 
20
21
  <br/>
21
22
 
@@ -25,184 +26,273 @@ _Codex CLI 实时 AI 分析工具_
25
26
 
26
27
  ---
27
28
 
28
- ## 🌌 项目概述
29
+ ## 🚀 快速开始
30
+
31
+ 30 秒即可上手:
32
+
33
+ ```bash
34
+ npx vibeusage init
35
+ ```
36
+
37
+ 就这样!你的 AI token 使用量将自动同步到[控制台](https://www.vibeusage.cc) 🎉
29
38
 
30
- **VibeUsage** 是一个专为 macOS 开发者设计的智能令牌(Token)使用追踪系统。它通过全新的 **Matrix-A Design System**,提供高度可视化的赛博朋克风格仪表盘,将你的 **AI 产出 (AI Output)** 转化为可量化的指标,并支持通过 **Neural Divergence Map** 实时监控多模型的算力分布。
39
+ ## 为什么选择 VibeUsage?
31
40
 
32
- > [!TIP] > **Core Index (核心指数)**: 我们的标志性指标,通过分析 Token 消耗速率与模式,反映你的开发心流状态。
41
+ - 📡 **多来源统一追踪** - 支持 Codex CLI、Every Code、Gemini CLI、Claude Code、Opencode、OpenClaw 等多个 AI CLI 工具
42
+ - 🤖 **多模型统计** - 统一追踪 GPT-4、Claude、Gemini、o1 等所有 AI 模型的 token 消耗
43
+ - 📁 **项目 AI 足迹** - 按仓库追踪并公开展示 token 使用量,证明这是 AI 辅助开发的项目
44
+ - 🏆 **全球排行榜** - 周榜/月榜/总榜实时更新,与全球开发者社区一起成长
45
+ - 🌐 **公开档案** - 分享你的 AI 使用旅程,可选公开参与排行榜
46
+ - 🔒 **隐私优先** - 只统计数字,永不上传你的代码和对话
47
+ - ⚡ **零配置自动同步** - 设置一次,终身自动
48
+ - 🎨 **Matrix-A 设计** - 赛博朋克风格的高颜值控制台
49
+ - 📈 **深度分析** - 成本洞察、趋势预测、活动热图
33
50
 
34
- ## 🔒 隐私优先架构 (隐身协议)
51
+ ## 🧰 支持的 AI CLI
35
52
 
36
- 我们坚信你的代码和思想属于你自己。VibeUsage 建立在严格的隐私支柱之上,确保你的数据始终处于受控状态。
53
+ | CLI 工具 | 自动检测 | 状态 |
54
+ |----------|---------|------|
55
+ | **Codex CLI** | ✅ | 完全支持 |
56
+ | **Every Code** | ✅ | 完全支持 |
57
+ | **Gemini CLI** | ✅ | 完全支持 |
58
+ | **Claude Code** | ✅ | 完全支持 |
59
+ | **Opencode** | ✅ | 完全支持 |
60
+ | **OpenClaw** | ✅ | 完全支持 |
37
61
 
38
- - 🛡️ **内容不出本地**:我们从不上传 Prompt 或响应内容。只在本地计算 Token 数量,并上传 Token 计数与最小元数据(时间、模型、设备)。
39
- - 📡 **本地聚合**:所有 Token 消耗分析均在你的机器上完成。我们仅将量化的 30 分钟使用桶(Usage Buckets)中继到云端。
40
- - 🔐 **身份哈希**:设备令牌在服务端使用 SHA-256 进行哈希处理。你的原始凭据绝不会存在于我们的数据库中。
41
- - 🔦 **全程透明**:你可以亲自审计 `src/lib/rollout.js` 中的同步逻辑。我们真正采集的只有数字和时间戳。
62
+ 无论你使用 GPT-4、Claude 3.5 Sonnet、o1 还是 Gemini,所有 token 消耗都会被统一追踪。
42
63
 
43
- ## 🚀 核心功能
64
+ ## 🌌 项目概述
65
+
66
+ **VibeUsage** 是一个专为 macOS 开发者设计的智能 token 使用追踪系统。通过全新的 **Matrix-A Design System**,它提供高度可视化的赛博朋克风格仪表盘,将你的 **AI 产出** 转化为可量化的指标,并支持通过 **Neural Divergence Map** 实时监控多模型的算力分布。
67
+
68
+ > [!TIP]
69
+ > **核心指数**:我们的标志性指标,通过分析 token 消耗速率与模式,反映你的开发心流状态。
44
70
 
45
- - 📡 **自动嗅探与同步 (Auto-Sync)**: 实时监听 AI CLI 管道并具备**全自动后台同步**功能。初始化后,你的 Token 产出将自动追踪并同步,无需手动执行脚本。
46
- - 🧭 **全能采集 (Universal-Sync)**: 原生支持多种 AI CLI 工具:
47
- - **Codex CLI** - OpenAI 官方 CLI
48
- - **Every Code** - 社区版 Codex 替代品
49
- - **Gemini CLI** - Google AI CLI
50
- - **Opencode** - AI 编程助手
51
- - **Claude Code** - Anthropic 官方 CLI
52
- - 无论是 GPT-4、Claude 3.5 Sonnet 还是 o1/Gemini,所有模型的 Token 消耗均可被统一捕获与统计。
53
- - 📊 **Matrix Dashboard (矩阵控制台)**: 基于 React + Vite 的高性能仪表盘,采用全新的 **Matrix-A** 设计语言。
54
- - **Neural Divergence Map (神经发散图谱)**: 可视化多引擎负载均衡状态,直观展示算力分布。
55
- - **Cost Intelligence (成本智能)**: 实时、多维度的成本分解与预测。
56
- - **Activity Heatmap (活跃热力图)**: GitHub 风格的贡献图,支持连续天数统计。
57
- - **Smart Notifications (智能通知)**: 非侵入式的系统级通知,采用金色 (Gold/Amber) 视觉传达高价值信息。
58
- - ⚡ **AI Analytics (AI 分析)**: 深度分析 Input/Output Token,支持缓存 (Cached) 与推理 (Reasoning) 部分的分离监控。
59
- - 📈 **排行榜 (Leaderboard)**: 日、周、月、总排行榜,使用隐私安全的显示名称。
60
- - 🌐 **公开视图 (Public View)**: 分享你的 AI 使用历程,隐私安全的公开档案。
61
- - 📁 **项目统计 (Project Stats)**: 按项目/仓库追踪 Token 使用,支持全时间范围。
62
- - 🔒 **Identity Core (身份核心)**: 完备的身份验证与权限管理,保护你的开发数据资产。
71
+ ## 📊 控制台功能
63
72
 
64
- ### 🌌 视觉预览
73
+ ### 🎨 Matrix-A 设计系统
74
+ 使用 React + Vite 构建的高性能控制台,配备赛博朋克风格的设计语言:
75
+ - **Neural Divergence Map**:可视化多引擎负载均衡和算力分布
76
+ - **成本智能**:实时、多维度的成本分解和预测
77
+ - **活动热图**:GitHub 风格的贡献图表,带连击追踪
78
+ - **智能通知**:非侵入式的系统级提醒,采用 Golden 视觉风格
79
+
80
+ ### 📈 分析与洞察
81
+ - **AI 分析**:深度分析输入/输出 token,专门追踪缓存和推理组件
82
+ - **模型分解**:按模型统计使用量和成本分析
83
+ - **项目统计**:按 GitHub 仓库追踪 token 使用量
84
+ - **趋势预测**:预测未来使用模式
85
+
86
+ ### 🏆 社区功能
87
+ - **全球排行榜**:日榜、周榜、月榜和总榜,隐私安全的显示名称
88
+ - **公开档案**:使用隐私安全的公开档案分享你的 AI 使用旅程
89
+ - **排行榜分类**:参与总体排名或按特定模型(GPT、Claude 等)竞争
65
90
 
66
91
  <img src="docs/screenshots/landing.png" width="900" alt="VibeUsage 落地页预览"/>
67
92
 
68
- ## 🛠️ 快速开始
93
+ ## 🔒 隐私保证
94
+
95
+ 我们相信你的代码和想法属于你自己。VibeUsage 采用严格的隐私保护架构,确保你的数据始终受控。
69
96
 
70
- ### 安装
97
+ | 保护措施 | 说明 |
98
+ |---------|------|
99
+ | 🛡️ **不上传内容** | 永不上传 prompt 或响应 - 仅在本地计算 token 数量 |
100
+ | 📡 **本地聚合** | 所有分析在本地完成 - 仅发送 30 分钟使用桶 |
101
+ | 🔐 **哈希身份** | 设备 token 在服务端使用 SHA-256 哈希 - 原始凭据从不存储 |
102
+ | 🔦 **完全透明** | 可以在 `src/lib/rollout.js` 中审计同步逻辑 - 真的只有数字和时间戳 |
71
103
 
72
- 只需一次初始化,即可变身为“自动驾驶”模式。VibeUsage 会在后台处理所有数据同步,你只需专注开发。
104
+ ## 📦 安装
105
+
106
+ ### 标准设置
107
+
108
+ 一次初始化环境 - VibeUsage 会在后台自动处理所有同步:
73
109
 
74
110
  ```bash
75
- npx --yes vibeusage init
111
+ npx vibeusage init
76
112
  ```
77
113
 
78
- **认证方式:**
114
+ ### 认证方式
79
115
 
80
116
  1. **浏览器认证**(默认)- 打开浏览器进行安全认证
81
- 2. **链接码** - 使用 `--link-code` 通过控制台生成的代码认证
82
- 3. **密码** - 直接密码认证(后备方案)
117
+ 2. **链接码** - 使用 `--link-code` 通过控制台生成的代码进行认证
118
+ 3. **密码** - 直接密码登录(备选)
83
119
  4. **访问令牌** - 用于 CI/自动化环境
84
120
 
85
- **CLI 选项:**
86
- - `--yes` - 非交互环境跳过确认提示
87
- - `--dry-run` - 仅预览变更,不写入文件
88
- - `--link-code <code>` - 使用控制台的链接码认证
89
- - `--base-url <url>` - 覆盖默认 API 端点
121
+ ### CLI 选项
122
+
123
+ ```bash
124
+ npx vibeusage init [选项]
125
+
126
+ 选项:
127
+ --yes 跳过确认提示(非交互环境)
128
+ --dry-run 预览更改但不实际写入文件
129
+ --link-code <code> 使用控制台的链接码进行认证
130
+ --base-url <url> 覆盖默认 API 端点
131
+ --debug 启用调试输出
132
+ ```
133
+
134
+ ### 自动配置
90
135
 
91
- **支持的 CLI 工具自动配置:**
136
+ `init` 完成后,所有支持的 CLI 工具都会自动配置数据同步:
92
137
 
93
- | 工具 | 配置位置 | 方式 |
94
- |------|---------|------|
95
- | Codex CLI | `~/.codex/config.toml` | `notify` hook |
96
- | Every Code | `~/.code/config.toml`(或 `CODE_HOME`) | `notify` hook |
97
- | Gemini CLI | `~/.gemini/settings.json`(或 `GEMINI_HOME`) | `SessionEnd` hook |
98
- | Opencode | 全局插件 | 消息解析插件 |
99
- | Claude Code | `~/.claude/hooks/` | Hook 配置 |
138
+ | 工具 | 配置位置 | 方法 |
139
+ |-----|---------|-----|
140
+ | **Codex CLI** | `~/.codex/config.toml` | `notify` 钩子 |
141
+ | **Every Code** | `~/.code/config.toml`(或 `CODE_HOME`) | `notify` 钩子 |
142
+ | **Gemini CLI** | `~/.gemini/settings.json`(或 `GEMINI_HOME`) | `SessionEnd` 钩子 |
143
+ | **Opencode** | 全局插件 | 消息解析器插件 |
144
+ | **Claude Code** | `~/.claude/hooks/` | 钩子配置 |
145
+ | **OpenClaw** | 安装时自动链接 | Gateway 钩子(需要重启) |
100
146
 
101
- `init` 完成后,所有支持的 CLI 工具将自动配置数据同步,无需额外操作。
147
+ 无需进一步操作!🎉
102
148
 
103
- ### 同步与状态查看
149
+ ## 💡 使用方法
104
150
 
105
- 虽然同步是自动完成的,但你仍可以随时手动触发同步或查看状态:
151
+ ### 手动同步
152
+
153
+ 虽然同步是自动进行的,但你可以随时手动触发同步:
106
154
 
107
155
  ```bash
108
- # 手动同步最新的本地会话数据 (可选)
109
- npx --yes vibeusage sync
156
+ # 手动同步最新的本地会话数据
157
+ npx vibeusage sync
110
158
 
111
- # 查看当前连接状态
112
- npx --yes vibeusage status
159
+ # 检查当前链接状态
160
+ npx vibeusage status
113
161
  ```
114
162
 
115
- ### Doctor
163
+ ### 健康检查
164
+
165
+ 运行综合诊断以识别问题:
116
166
 
117
167
  ```bash
118
- # 运行健康检查
119
- npx --yes vibeusage doctor
168
+ # 基本健康检查
169
+ npx vibeusage doctor
120
170
 
121
- # 输出 JSON 报告(同时写文件)
122
- npx --yes vibeusage doctor --json --out doctor.json
171
+ # JSON 输出用于调试
172
+ npx vibeusage doctor --json --out doctor.json
123
173
 
124
- # 覆盖 base URL(仅诊断)
125
- npx --yes vibeusage doctor --base-url https://example.invalid
174
+ # 针对不同端点进行测试
175
+ npx vibeusage doctor --base-url https://your-instance.insforge.app
176
+ ```
177
+
178
+ ### 调试模式
179
+
180
+ 启用调试输出以查看详细的请求/响应信息:
181
+
182
+ ```bash
183
+ VIBEUSAGE_DEBUG=1 npx vibeusage sync
184
+ # 或
185
+ npx vibeusage sync --debug
126
186
  ```
127
187
 
128
188
  ### 卸载
129
189
 
130
190
  ```bash
131
191
  # 标准卸载(保留数据)
132
- npx --yes vibeusage uninstall
192
+ npx vibeusage uninstall
133
193
 
134
- # 完全清理 - 删除所有数据,包括配置和缓存会话
135
- npx --yes vibeusage uninstall --purge
194
+ # 完全清除 - 删除所有数据,包括配置和缓存的会话
195
+ npx vibeusage uninstall --purge
136
196
  ```
137
197
 
138
- ### 日志来源
198
+ ## 🏗️ 架构
199
+
200
+ ```mermaid
201
+ graph LR
202
+ A[Codex CLI] -->|Rollout 日志| G(Tracker CLI)
203
+ B[Every Code] -->|Rollout 日志| G
204
+ C[Gemini CLI] -->|会话日志| G
205
+ D[Opencode] -->|消息日志| G
206
+ E[Claude Code] -->|钩子输出| G
207
+ F[OpenClaw] -->|Gateway 钩子| G
208
+ G -->|AI Tokens| H{核心中继}
209
+ H --> I[VibeUsage 控制台]
210
+ H --> J[AI 分析引擎]
211
+ H --> K[排行榜服务]
212
+ H --> L[公开视图 API]
213
+ ```
214
+
215
+ ### 技术栈
216
+
217
+ - **CLI**:Node.js 20.x、CommonJS
218
+ - **控制台**:React 18 + Vite + TailwindCSS + TypeScript
219
+ - **后端**:InsForge Edge Functions (Deno)
220
+ - **数据库**:InsForge Database (PostgreSQL)
221
+ - **设计**:Matrix-A Design System
222
+
223
+ ### 组件
224
+
225
+ - **Tracker CLI**(`src/`):Node.js CLI,解析多个 AI 工具的日志并同步 token 数据
226
+ - **核心中继**(InsForge Edge Functions):无服务器后端,处理摄入、聚合和 API
227
+ - **控制台**(`dashboard/`):React + Vite 前端用于可视化
228
+ - **AI 分析引擎**:成本计算、模型分解和使用预测
229
+
230
+ ### 数据流
231
+
232
+ 1. AI CLI 工具在使用过程中生成日志
233
+ 2. 本地 `notify-handler` 检测更改并触发同步
234
+ 3. CLI 增量解析日志,提取 token 计数(仅白名单字段)
235
+ 4. 数据在本地聚合到 30 分钟 UTC 桶中
236
+ 5. 批量上传到 InsForge,带幂等去重
237
+ 6. 控制台查询聚合结果进行可视化
238
+
239
+ ### 日志源
139
240
 
140
241
  | 工具 | 日志位置 | 覆盖环境变量 |
141
- |------|---------|-------------|
142
- | Codex CLI | `~/.codex/sessions/**/rollout-*.jsonl` | `CODEX_HOME` |
143
- | Every Code | `~/.code/sessions/**/rollout-*.jsonl` | `CODE_HOME` |
144
- | Gemini CLI | `~/.gemini/tmp/**/chats/session-*.json` | `GEMINI_HOME` |
145
- | Opencode | `~/.opencode/messages/*.json` | - |
146
- | Claude Code | hook 输出解析 | - |
242
+ |-----|---------|------------|
243
+ | **Codex CLI** | `~/.codex/sessions/**/rollout-*.jsonl` | `CODEX_HOME` |
244
+ | **Every Code** | `~/.code/sessions/**/rollout-*.jsonl` | `CODE_HOME` |
245
+ | **Gemini CLI** | `~/.gemini/tmp/**/chats/session-*.json` | `GEMINI_HOME` |
246
+ | **Opencode** | `~/.opencode/messages/*.json` | - |
247
+ | **Claude Code** | 从钩子输出解析 | - |
248
+ | **OpenClaw** | Gateway 钩子集成 | - |
249
+
250
+ ## ⚙️ 配置
147
251
 
148
- ## 🔧 环境变量
252
+ <details>
253
+ <summary><b>环境变量</b></summary>
149
254
 
150
255
  ### 核心设置
151
256
 
152
257
  | 变量 | 说明 | 默认值 |
153
- |------|------|--------|
154
- | `VIBEUSAGE_HTTP_TIMEOUT_MS` | CLI HTTP 超时(毫秒,`0` 表示关闭,范围 `1000..120000`) | `20000` |
155
- | `VITE_VIBEUSAGE_HTTP_TIMEOUT_MS` | Dashboard 请求超时(毫秒,`0` 表示关闭,范围 `1000..30000`) | `15000` |
156
- | `VIBEUSAGE_DEBUG` | 启用调试输出(`1` 或 `true` 开启) | - |
157
- | `VIBEUSAGE_DASHBOARD_URL` | 自定义 Dashboard URL | `https://www.vibeusage.cc` |
258
+ |-----|------|-------|
259
+ | `VIBEUSAGE_HTTP_TIMEOUT_MS` | CLI HTTP 超时(毫秒)(`0` 禁用,限制 `1000..120000`) | `20000` |
260
+ | `VITE_VIBEUSAGE_HTTP_TIMEOUT_MS` | 控制台请求超时(毫秒)(`0` 禁用,限制 `1000..30000`) | `15000` |
261
+ | `VIBEUSAGE_DEBUG` | 启用调试输出(`1` 或 `true` 启用) | - |
262
+ | `VIBEUSAGE_DASHBOARD_URL` | 自定义控制台 URL | `https://www.vibeusage.cc` |
158
263
  | `VIBEUSAGE_INSFORGE_BASE_URL` | 自定义 API 基础 URL | `https://5tmappuk.us-east.insforge.app` |
159
264
  | `VIBEUSAGE_DEVICE_TOKEN` | 预配置设备令牌(用于 CI) | - |
160
265
 
161
266
  ### CLI 工具覆盖
162
267
 
163
268
  | 变量 | 说明 | 默认值 |
164
- |------|------|--------|
269
+ |-----|------|-------|
165
270
  | `CODEX_HOME` | Codex CLI 目录覆盖 | `~/.codex` |
166
271
  | `CODE_HOME` | Every Code 目录覆盖 | `~/.code` |
167
272
  | `GEMINI_HOME` | Gemini CLI 目录覆盖 | `~/.gemini` |
168
273
 
169
- ### 已废弃
170
-
171
- - `VIBEUSAGE_ROLLUP_ENABLED`:当前被忽略;rollup 聚合在代码层禁用,等待 rollup 表部署完成后再恢复。
172
-
173
- ## 🧰 常见问题
174
-
175
- ### 调试模式
176
-
177
- 启用调试输出以查看详细的请求/响应信息:
178
-
179
- ```bash
180
- VIBEUSAGE_DEBUG=1 npx --yes vibeusage sync
181
- # 或
182
- npx --yes vibeusage sync --debug
183
- ```
274
+ </details>
184
275
 
185
- ### 健康检查
276
+ ## 🔧 故障排查
186
277
 
187
- 运行内置的 doctor 命令诊断问题:
278
+ <details>
279
+ <summary><b>数据未出现在控制台中</b></summary>
188
280
 
189
- ```bash
190
- # 基础健康检查
191
- npx --yes vibeusage doctor
281
+ 1. 检查状态:`npx vibeusage status`
282
+ 2. 强制手动同步:`npx vibeusage sync`
283
+ 3. 验证 CLI 工具钩子已配置(如需要,重新运行 `init`)
284
+ 4. 检查调试输出:`VIBEUSAGE_DEBUG=1 npx vibeusage sync`
192
285
 
193
- # JSON 输出用于调试
194
- npx --yes vibeusage doctor --json --out doctor.json
286
+ </details>
195
287
 
196
- # 测试不同端点
197
- npx --yes vibeusage doctor --base-url https://your-instance.insforge.app
198
- ```
288
+ <details>
289
+ <summary><b>连击显示 0 天,但总数看起来正确</b></summary>
199
290
 
200
- ### Streak 显示 0 天但总量正常
291
+ 连击定义为连续到今天的天数。如果今天的总数为 0,连击将为 0
201
292
 
202
- - Streak 的口径是“从今天开始连续使用的天数”,如果今天的 total 为 0,streak 就是 0。
203
- - 如果你确认应该有 streak,请清理本地缓存并重新登录:
293
+ 如果你期望非零连击,清除缓存的认证/热图数据并重新登录:
204
294
 
205
- ```js
295
+ ```javascript
206
296
  localStorage.removeItem("vibeusage.dashboard.auth.v1");
207
297
  Object.keys(localStorage)
208
298
  .filter((k) => k.startsWith("vibeusage.heatmap."))
@@ -210,115 +300,141 @@ Object.keys(localStorage)
210
300
  location.reload();
211
301
  ```
212
302
 
213
- - 刷新后重新走一遍 landing page 的登录流程。
214
- - 说明:Dashboard 不使用 `insforge-auth-token`,实际存储在 `vibeusage.dashboard.auth.v1`。
303
+ 重新加载后完成落地页登录流程。
215
304
 
216
- ### 同步问题
305
+ 注意:控制台不使用 `insforge-auth-token`;使用 `vibeusage.dashboard.auth.v1`。
217
306
 
218
- 如果数据未出现在控制台:
307
+ </details>
219
308
 
220
- 1. 检查状态:`npx --yes vibeusage status`
221
- 2. 强制手动同步:`npx --yes vibeusage sync`
222
- 3. 验证 CLI 工具 hooks 是否已配置(需要时重新运行 `init`)
223
- 4. 检查调试输出:`VIBEUSAGE_DEBUG=1 npx vibeusage sync`
224
-
225
- ### 超时错误
309
+ <details>
310
+ <summary><b>慢速连接上的超时错误</b></summary>
226
311
 
227
312
  为慢速连接增加 HTTP 超时:
228
313
 
229
314
  ```bash
230
- VIBEUSAGE_HTTP_TIMEOUT_MS=60000 npx --yes vibeusage sync
231
- ```
232
-
233
- ## 🏗️ 系统架构
234
-
235
- ```mermaid
236
- graph TD
237
- A[Codex CLI] -->|Rollout Logs| F(Tracker CLI)
238
- B[Every Code] -->|Rollout Logs| F
239
- C[Gemini CLI] -->|Session Logs| F
240
- D[Opencode] -->|Message Logs| F
241
- E[Claude Code] -->|Hook Output| F
242
- F -->|AI Tokens| G{Core Relay}
243
- G --> H[VibeUsage Dashboard]
244
- G --> I[AI Analytics Engine]
245
- G --> J[Leaderboard Service]
246
- G --> K[Public View API]
315
+ VIBEUSAGE_HTTP_TIMEOUT_MS=60000 npx vibeusage sync
247
316
  ```
248
317
 
249
- ### 组件说明
318
+ </details>
250
319
 
251
- - **Tracker CLI** (`src/`): Node.js CLI,解析多个 AI 工具的日志并同步 Token 数据
252
- - **Core Relay** (InsForge Edge Functions): 无服务器后端,处理摄取、聚合和 API
253
- - **Dashboard** (`dashboard/`): React + Vite 前端可视化
254
- - **AI Analytics Engine**: 成本计算、模型分解和使用预测
320
+ ## 💻 开发
255
321
 
256
- ## 💻 开发者指南
257
-
258
- 如果你想在本地运行或贡献代码:
259
-
260
- ### 仪表盘开发
322
+ ### 本地开发
261
323
 
262
324
  ```bash
325
+ # 克隆仓库
326
+ git clone https://github.com/your-username/vibeusage.git
327
+ cd vibeusage
328
+
263
329
  # 安装依赖
264
- cd dashboard
265
330
  npm install
266
331
 
267
- # 启动开发服务器
332
+ # 启动控制台开发服务器
333
+ cd dashboard
334
+ npm install
268
335
  npm run dev
269
336
  ```
270
337
 
271
- ### 调试字段(Usage 接口)
272
-
273
- 当请求包含 `debug=1` 时,usage 接口会在响应体中附带 `debug` 对象,方便前端定位慢查询而不依赖响应头。
274
-
275
- ```ts
276
- const res = await fetch(
277
- `${baseUrl}/functions/vibeusage-usage-summary?from=2025-12-30&to=2025-12-30&debug=1`,
278
- {
279
- headers: { Authorization: `Bearer ${userJwt}` }
280
- }
281
- );
282
- const data = await res.json();
283
-
284
- if (data.debug) {
285
- console.debug('usage debug', {
286
- requestId: data.debug.request_id,
287
- status: data.debug.status,
288
- queryMs: data.debug.query_ms,
289
- slowThresholdMs: data.debug.slow_threshold_ms,
290
- slowQuery: data.debug.slow_query
291
- });
292
- }
293
- ```
294
-
295
- ### 整体架构验证
338
+ ### 开发命令
296
339
 
297
340
  ```bash
298
- # 验证 Copy 注册表
341
+ # 运行测试
342
+ npm test
343
+
344
+ # 运行本地 CI 检查
345
+ npm run ci:local
346
+
347
+ # 验证文案注册表
299
348
  npm run validate:copy
300
349
 
301
- # 执行烟雾测试
350
+ # 验证 UI 硬编码文本
351
+ npm run validate:ui-hardcode
352
+
353
+ # 验证架构防护栏
354
+ npm run validate:guardrails
355
+
356
+ # 构建后端函数
357
+ npm run build:insforge
358
+
359
+ # 检查后端构建(不写入)
360
+ npm run build:insforge:check
361
+
362
+ # 运行冒烟测试
302
363
  npm run smoke
303
364
  ```
304
365
 
305
- ### 架构画布聚焦
366
+ ### OpenSpec 工作流
367
+
368
+ 本项目使用 **OpenSpec** 进行规格驱动开发。在进行重大更改之前:
369
+
370
+ 1. 阅读 [`openspec/project.md`](openspec/project.md) 了解项目约定
371
+ 2. 查看 [`openspec/AGENTS.md`](openspec/AGENTS.md) 了解完整的 OpenSpec 工作流
372
+ 3. 运行 `openspec list` 查看活跃的更改
373
+ 4. 运行 `openspec list --specs` 查看现有规格
374
+
375
+ 详见 [CLAUDE.md](CLAUDE.md) 了解详细指南。
376
+
377
+ ### 架构验证
306
378
 
307
379
  ```bash
308
- # 生成指定顶层模块的聚焦画布
309
- node scripts/ops/architecture-canvas.cjs --focus src
380
+ # 验证文案注册表
381
+ npm run validate:copy
382
+
383
+ # 生成架构画布
384
+ npm run architecture:canvas
310
385
 
311
- # 别名:--module
312
- node scripts/ops/architecture-canvas.cjs --module dashboard
386
+ # 为模块生成聚焦画布
387
+ npm run architecture:canvas:focus -- src
313
388
  ```
314
389
 
315
- ## 📜 开源协议
390
+ ## 🗺️ 路线图
391
+
392
+ - [ ] Windows 支持
393
+ - [ ] Linux 支持
394
+ - [ ] 增强的项目级统计
395
+ - [ ] 团队协作功能
396
+ - [ ] 自定义报告导出
397
+ - [ ] 更多 AI CLI 支持
316
398
 
317
- 本项目基于 [MIT](LICENSE) 协议开源。
399
+ 查看 [Issues](https://github.com/your-username/vibeusage/issues) 了解详细计划。
400
+
401
+ ## 🤝 贡献
402
+
403
+ 我们欢迎所有形式的贡献!
404
+
405
+ 1. Fork 仓库
406
+ 2. 创建功能分支(`git checkout -b feature/amazing-feature`)
407
+ 3. 提交你的更改(`git commit -m 'Add amazing feature'`)
408
+ 4. 推送到分支(`git push origin feature/amazing-feature`)
409
+ 5. 创建 Pull Request
410
+
411
+ ### 开发指南
412
+
413
+ - 所有用户界面文本必须在 `dashboard/src/content/copy.csv` 中注册
414
+ - 对于重大更改,遵循 OpenSpec 提案流程
415
+ - 代码必须通过所有测试和验证
416
+ - 详见 [CLAUDE.md](CLAUDE.md) 了解详细约定
417
+
418
+ ## 📜 许可证
419
+
420
+ 本项目采用 [MIT 许可证](LICENSE)。
421
+
422
+ ## 🙏 致谢
423
+
424
+ - [InsForge](https://insforge.app) - 后端基础设施
425
+ - [Matrix-A Design System](docs/dashboard/matrix-a.md) - UI 框架
426
+ - 所有出色的贡献者
318
427
 
319
428
  ---
320
429
 
321
430
  <div align="center">
322
- <b>System_Ready // 2024 VibeUsage OS</b><br/>
323
- <i>"More Tokens. More Vibe."</i>
431
+ <b>System_Ready // 2024-2026 VibeUsage</b><br/>
432
+ <i>"量化你的 AI 产出。拥有你的数据。"</i><br/><br/>
433
+
434
+ 由开发者制作,为开发者服务 💚
435
+
436
+ [网站](https://www.vibeusage.cc) •
437
+ [控制台](https://www.vibeusage.cc) •
438
+ [文档](docs/) •
439
+ [API](BACKEND_API.md)
324
440
  </div>