"""Step 6 源码守卫:成本建模的两个新 pathology 必须有 reason code。 来源:Claude Haiku 5.5 定价/能力锚点吸收(learn_queue #1359, 2026-10-12)。 WHY(病理): ① 提示词长度分档定价崖——同一模型 ≤100k 与 >100k 价差 5x,单 cost_per_call 无法表达。 ② effort 档位放大——路由只比标称单价,忽略 Max 档输出 token 可达 High 档数倍。 WHERE(环节):① 成本建模(DEFAULT_BUDGETS.cost_per_call / _check_budget);② 模型路由决策。 """ from pathlib import Path SRC = Path(__file__).with_name("app.py").read_text(encoding="utf-8") checks = [ # ① 分档定价崖 ("分档定价崖 reason code 定义", 'BUDGET_TIER_CLIFF_UNMODELED = "BUDGET_TIER_CLIFF_UNMODELED"' in SRC), ("分档定价崖 reason code 注册", "VerifyReason.BUDGET_TIER_CLIFF_UNMODELED:" in SRC), ("分档定价崖描述含 100k 悬崖", "100k" in SRC and "BUDGET_TIER_CLIFF_UNMODELED" in SRC), # ② effort 档位 ("effort 档位 reason code 定义", 'ROUTER_EFFORT_TIER_BLIND = "ROUTER_EFFORT_TIER_BLIND"' in SRC), ("effort 档位 reason code 注册", "VerifyReason.ROUTER_EFFORT_TIER_BLIND:" in SRC), ] failed = [label for label, ok in checks if not ok] for label, ok in checks: print(("PASS " if ok else "FAIL ") + label) if failed: print(f"\n{len(failed)}/{len(checks)} 检查未通过") raise SystemExit(1) print(f"\n{len(checks)}/{len(checks)} 检查通过")