跳转到内容

desktop/src-tauri/crates/core/src/adapters/usage_map.rs

第 1 条注释,第 1 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:1

//! V01:来源字段语义的 token 字段映射(跨 Agent 共享部分)。

第 2 条注释,第 2 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:2

//!(空行)

第 3 条注释,第 3 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:3

//! 目录约定(architecture.md#adapter-layout):产品特有映射已下沉到各 Agent 目录

第 4 条注释,第 4 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:4

//! 例如 adapters/codex/common.rs、adapters/claude/,

第 5 条注释,第 5 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:5

//! zcode → adapters/zcode/common.rs(M4 下沉,两种字段语义映射

第 6 条注释,第 6 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:6

//! map_zcode_ai_sdk / map_zcode_anthropic 随迁),kilo → adapters/kilo/common.rs

第 7 条注释,第 7 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:7

//! (M3 下沉,map_kilo/KiloUsage 随迁),kimi → adapters/kimi_wire.rs

第 8 条注释,第 8 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:8

//! (M4 下沉,Kimi Code / Kimi Work 家族共享模块,map_kimi_wire/KimiWireUsage

第 9 条注释,第 9 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:9

//! 本模块保留跨 Agent 共享的类型和辅助函数。

第 10 条注释,第 10 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:10

//! - pi/omp 共享 `map_pi_family`(固定源码证实两家族规则相同);

第 11 条注释,第 11 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:11

//! - gemini/qwen 共享 `map_genai_usage`(usageMetadata 同形)。

第 12 条注释,第 12 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:12

//!(空行)

第 13 条注释,第 13 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:13

//! 实读核验结论(m0-agent-fixtures.md):

第 14 条注释,第 14 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:14

//! - kimi wire:inputOther/inputCacheRead/inputCacheCreation/output 四字段互斥,无 total

第 15 条注释,第 15 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:15

//! (映射在 adapters/kimi_wire.rs)。

第 16 条注释,第 16 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:16

//! - zcode:AI SDK `inputTokens` 含缓存读;anthropic `input_tokens` 不含缓存(两种字段语义相反)

第 17 条注释,第 17 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:17

//! (映射在 adapters/zcode/common.rs)。

第 18 条注释,第 18 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:18

//! - copilot:input = 未缓存 + read + write(映射在 adapters/copilot/common.rs)。

第 19 条注释,第 19 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:19

//! - kilo:total = input+output+reasoning+cache.read+cache.write 全互斥

第 20 条注释,第 20 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:20

//! (映射在 adapters/kilo/common.rs)。

第 21 条注释,第 21 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:21

//!(空行)

第 22 条注释,第 22 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:22

//! 所有映射只填已确认的字段;缺失保持 None(unknown),不补零。

第 23 条注释,第 23 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:23

//! 矛盾(如缓存读 > 总输入)返回诊断,不用 max(0, …) 隐藏。

第 24 条注释,第 28 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:28

/// 映射结果:规范化 usage、逐字段质量、一致性诊断。

第 25 条注释,第 44 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:44

/// 并列报告映射专用(zed 等"包含关系未验证 ⇒ 不推导互斥/子集"):

第 26 条注释,第 45 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:45

/// 子集类矛盾检测(cache ≤ input_total 等)以包含关系为前提,对并列报告的字段

第 27 条注释,第 46 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:46

/// 误判独立报告的字段;domain 仍校验非负值和上限。

第 28 条注释,第 103 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:103

// kimi wire 四互斥映射已下沉到 adapters/kimi_wire.rs(M4 家族共享模块,

第 29 条注释,第 104 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:104

// KimiCode/KimiWork 两产品共用);zcode 两种字段语义映射已下沉到

第 30 条注释,第 105 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:105

// adapters/zcode/common.rs(M4)。计算规则依据见各文件头。

第 31 条注释,第 107 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:107

/// pi / oh-my-pi 共享 Usage 字段语义(adapters.md:两家族可共享部分 Usage 类型知识)。

第 32 条注释,第 108 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:108

/// 依据(固定源码):

第 33 条注释,第 109 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:109

/// pi-mono b4559750 的 Usage 包含 input/output/cacheRead/cacheWrite,

第 34 条注释,第 110 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:110

/// 可选 cacheWrite1h 属于 cacheWrite,reasoning 属于 output,另有 totalTokens 和 cost。

第 35 条注释,第 111 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:111

/// anthropic-messages.ts 与 openai-completions.ts 均把 input 规范化为未缓存桶

第 36 条注释,第 112 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:112

/// 计算为 input = max(0, prompt_tokens - cached - cache_write);

第 37 条注释,第 113 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:113

/// totalTokens 为 input、output、cacheRead 和 cacheWrite 之和。

第 38 条注释,第 114 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:114

/// - oh-my-pi 62bc57b packages/catalog/src/types.ts:`input` 注释为 "Non-cached

第 39 条注释,第 115 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:115

/// conversation input tokens";`totalTokens` 为四桶之和外加 provider orchestration

第 40 条注释,第 116 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:116

/// (若有);`reasoningTokens`⊆`output`;`cttl` 细分⊆`cacheWrite`。

第 41 条注释,第 117 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:117

//!(空行)

第 42 条注释,第 118 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:118

/// 因此 input/cacheRead/cacheWrite 互斥;reasoning 不再加;totalTokens 与派生总量

第 43 条注释,第 119 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:119

/// 不一致(如 omp orchestration 附加)记诊断,不截断数值。

第 44 条注释,第 127 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:127

/// pi `reasoning` / omp `reasoningTokens`:缺字段表示供应商未报告(Unknown),

第 45 条注释,第 128 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:128

/// 传入值已确认由来源报告时保留零。

第 46 条注释,第 195 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:195

/// genai usageMetadata 六分类(Gemini CLI 会话 JSON 的 tokens 对象、Qwen Code

第 47 条注释,第 196 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:196

/// 固定源码 ChatRecord.usageMetadata 同形):

第 48 条注释,第 197 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:197

/// prompt(input)/candidates(output)/cached/thoughts/tool/total,逐字段可选。

第 49 条注释,第 198 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:198

/// 已核对资料只确认字段存在与分类;cached/thoughts/tool 与 input/output 的包含关系

第 50 条注释,第 199 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:199

/// 逐 provider 未核验(未知不补零、不猜),因此:

第 51 条注释,第 200 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:200

/// - input_uncached / output_reasoning 保持 None(不能断言互斥/子集关系);

第 52 条注释,第 201 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:201

/// - total_tokens 只取来源直报的 total;缺失时不由拆分相加伪造

第 53 条注释,第 202 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:202

/// (thoughts/tool 可能在 input+output 之外);

第 54 条注释,第 203 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:203

/// - tool 无统一桶,不并入任何字段(并入 input_total 与保持 total 一致二者不可兼得)。

第 55 条注释,第 204 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:204

//!(空行)

第 56 条注释,第 205 行

desktop/src-tauri/crates/core/src/adapters/usage_map.rs:205

/// 矛盾(如 cached > prompt)仍由 finish() 的矛盾检测进诊断。