跳转到内容

desktop/src-tauri/crates/core/tests/m8_contract.rs

第 1 条注释,第 1 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1

//! M8 第二批 18 个适配器的合成测试,检查探测、扫描与各步骤断言。

第 2 条注释,第 2 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:2

//! 初始调研日期 2026-09-29;这些测试不构成真实客户端验收。

第 3 条注释,第 3 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:3

//! 当前各适配器的真实检查单独记录。期望值在各用例中手工核算。

第 4 条注释,第 4 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:4

//!(空行)

第 5 条注释,第 5 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:5

//! 合成测试数据的手工核算:

第 6 条注释,第 6 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:6

//! - zed:历史 hosted cumulative{in=120,out=34} 缺失 cr/cc 按旧格式读取为 0,

第 7 条注释,第 7 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:7

//! 120/34/0/0;request 桶和 161 vs cumulative 154 ⇒ mismatch(覆盖语义);

第 8 条注释,第 8 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:8

//! 跳过本用例未核验的 Anthropic provider 与 imported(version 1.0.0)线程。

第 9 条注释,第 9 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:9

//! - aider:{prompt=10006,completion=81,total=10087,cost=0.0133175} 秒→毫秒

第 10 条注释,第 10 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:10

//! 时间戳 1_755_100_406_000;估算费用 13_318 micro-USD。

第 11 条注释,第 11 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:11

//! - junie:modelUsage[2](input/output + cache 别名组)⇒ 2 事件;

第 12 条注释,第 12 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:12

//! time=1500 ⇒ interval_start = ts−1500;重复扫描键稳定。

第 13 条注释,第 13 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:13

//! - xum:byModel 两模型 ⇒ 2 聚合;键 provider:model 拆分。

第 14 条注释,第 14 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:14

//! - droid:tokenUsage{in=10,out=20,cr=30,cc=40,think=5} ⇒ 1 聚合。

第 15 条注释,第 15 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:15

//! - amp:1 条有时间戳的 ledger 事件入库;无 ledger 且无时间戳的 assistant

第 16 条注释,第 16 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:16

//! usage 跳过(不推造时间)⇒ 诊断 + Reconciliation mismatch。

第 17 条注释,第 17 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:17

//! - grok:2 行显式 usage(别名组),1 行无 usage 跳过 ⇒ 2 事件。

第 18 条注释,第 18 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:18

//! - roo:旧测试映射 tokensIn=100 含 cr=30+cw=10,uncached=60、total=120;

第 19 条注释,第 19 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:19

//! api_req_deleted 不计;condense cost-only 辅助事件。

第 20 条注释,第 20 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:20

//! - goose:usage_ledger 3 行(provider_reported cost 入账、estimated 不入、

第 21 条注释,第 21 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:21

//! carried_forward token 入账 cost 不入)⇒ 3 事件 1 cost;旧库 accumulated

第 22 条注释,第 22 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:22

//! ⇒ 1 聚合。

第 23 条注释,第 23 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:23

//! - crush:根会话 cost=0.5 ⇒ 1 条 UsageObservation(500_000 micro-USD

第 24 条注释,第 24 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:24

//! Estimated);子会话行排除。

第 25 条注释,第 25 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:25

//! - jcode:OpenAI input=100、cr=30、cw=10,未缓存输入=60;Anthropic in=60、

第 26 条注释,第 26 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:26

//! cr=30 cw=10 ⇒ input_total=100;崩溃窗口同 id 取 journal 版。

第 27 条注释,第 27 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:27

//! - gajae:五字段 {1,2,3,4,10} 按 pi 规则计算,totalTokens=10 与分量和一致;

第 28 条注释,第 28 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:28

//! 缺少必需字段的行跳过。

第 29 条注释,第 29 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:29

//! - commandcode:链上 2 条 assistant usage;孤儿分支 1 条不计。

第 30 条注释,第 30 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:30

//! - continue:CLI usage ⇒ 1 聚合(prompt/completion/cached);

第 31 条注释,第 31 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:31

//! GUI 会话(无 usage)0 产出。

第 32 条注释,第 32 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:32

//! - atomcode:两模型聚合加独立未归属轮数,调用合计 5,未缓存输入=prompt−cached。

第 33 条注释,第 33 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:33

//! - kiro:CLI 1 个非零 turn 入账、1 个全零 turn(Auto)跳过;

第 34 条注释,第 34 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:34

//! sqlite request_metadata 1 事件(毫秒时间戳)。

第 35 条注释,第 35 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:35

//! - antigravity:protobuf 行 #1+#2 input、#9.#4 时间戳 ⇒ 事件;无时间戳行

第 36 条注释,第 36 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:36

//! 跳过。

第 37 条注释,第 37 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:37

//! - qoder:探针 fail closed(诊断 usage_fields_unverified,0 事件)。

第 38 条注释,第 98 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:98

// Zed 测试。

第 39 条注释,第 128 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:128

// 跳过本测试未核验的 Anthropic provider;另有真实样本的 Provider 使用独立规则。

第 40 条注释,第 140 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:140

// 分享导入(version 1.0.0):跳过。

第 41 条注释,第 182 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:182

// Aider 测试。

第 42 条注释,第 212 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:212

// 追加一行再扫:增量。

第 43 条注释,第 231 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:231

// Junie 测试。

第 44 条注释,第 271 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:271

// Xum 测试。

第 45 条注释,第 320 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:320

// Droid 测试。

第 46 条注释,第 352 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:352

// Amp 测试。

第 47 条注释,第 388 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:388

// ledger 1 行入账;messageId=2 已对账不计;messageId=3 无 ledger 且无时间戳跳过。

第 48 条注释,第 403 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:403

// Grok 测试。

第 49 条注释,第 458 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:458

// Roo 测试。

第 50 条注释,第 483 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:483

// 1 请求 + 1 condense 辅助;deleted 备忘不计。

第 51 条注释,第 502 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:502

// Goose 测试。

第 52 条注释,第 508 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:508

// 新库:usage_ledger。

第 53 条注释,第 552 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:552

// 旧库无 usage_ledger,读取 accumulated_* 字段。

第 54 条注释,第 590 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:590

// Crush 测试。

第 55 条注释,第 616 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:616

// 子会话(cost 回卷父行):排除。

第 56 条注释,第 623 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:623

// 零 cost 根会话:跳过。

第 57 条注释,第 647 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:647

// Jcode 测试。

第 58 条注释,第 689 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:689

// m1 取 journal 版(meta 覆盖为 anthropic:in=60 cr=30 cw=10 ⇒ total=100);

第 59 条注释,第 690 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:690

// m2 的 Anthropic in=50、无 cache,input_total=50。

第 60 条注释,第 718 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:718

// gajae-code 测试。

第 61 条注释,第 745 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:745

// 必需五字段完整的一行入库;缺字段行跳过,与所引用解析器规则一致。

第 62 条注释,第 759 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:759

// CommandCode 测试。

第 63 条注释,第 786 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:786

// head=cccc0001 → aaaa0002 → aaaa0001:bbbb0001 是 rewind 孤儿不计。

第 64 条注释,第 803 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:803

// Continue 测试。

第 65 条注释,第 834 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:834

// GUI 会话(无 usage 字段):0 产出、正常完成。

第 66 条注释,第 845 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:845

// AtomCode 测试。

第 67 条注释,第 888 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:888

// 两模型各一聚合 + 多模型 turn 的 round_count 单列 unattributed

第 68 条注释,第 889 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:889

// (t1 的 3 轮调用无法确认所属模型,不能对 claude/gpt 各计一次虚增合计)。

第 69 条注释,第 896 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:896

// 60+30=90 未缓存 + 40+10=50 缓存 ⇒ input_total=140;

第 70 条注释,第 897 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:897

// 仅单模型 turn t2 的 2 轮归属 claude。

第 71 条注释,第 916 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:916

// 调用数总计守恒:2 + 3 = 5 = 3(t1) + 2(t2)。

第 72 条注释,第 925 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:925

// Kiro 测试。

第 73 条注释,第 956 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:956

// 跳过全零 Auto-agent turn,导入一个合成非零 turn。

第 74 条注释,第 968 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:968

// kiro-cli SQLite:request_metadata 逐请求。

第 75 条注释,第 1010 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1010

// Antigravity 测试。

第 76 条注释,第 1024 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1024

// protobuf 测试结构:chatModel{#19 model bytes, #9{#4 Timestamp{#1 seconds}}} 加

第 77 条注释,第 1025 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1025

// 用量结构:usage{#1 1132, #2 100, #5 40, #9 20, #10 5, #11 "resp-1"}。

第 78 条注释,第 1043 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1043

// 行 2:无 #9.#4 时间戳(1.1.18+ 布局)⇒ 跳过。

第 79 条注释,第 1107 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1107

// Qoder 测试。

第 80 条注释,第 1124 行

desktop/src-tauri/crates/core/tests/m8_contract.rs:1124

// ---- 结构约定:V30 注册表形状(M8 全目录)----