@adversity/coding-tool-x 3.1.2 → 3.1.4

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 (59) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/web/assets/Analytics-Blo8_rhE.css +1 -0
  3. package/dist/web/assets/Analytics-DEIGaSFz.js +39 -0
  4. package/dist/web/assets/{ConfigTemplates-DvcbKKdS.js → ConfigTemplates-BZaehll1.js} +1 -1
  5. package/dist/web/assets/{Home-BJKPCBuk.css → Home-CyCIx4BA.css} +1 -1
  6. package/dist/web/assets/{Home-Cw-F_Wnu.js → Home-DIIH5bAk.js} +1 -1
  7. package/dist/web/assets/{PluginManager-jy_4GVxI.js → PluginManager-b4IlavFA.js} +1 -1
  8. package/dist/web/assets/{ProjectList-Df1-NcNr.js → ProjectList-QaqzjEea.js} +1 -1
  9. package/dist/web/assets/SessionList-CXUr6S7w.css +1 -0
  10. package/dist/web/assets/SessionList-Cz_hrGmL.js +1 -0
  11. package/dist/web/assets/{SkillManager-IRdseMKB.js → SkillManager-B-Rcb9xY.js} +1 -1
  12. package/dist/web/assets/{Terminal-BasTyDut.js → Terminal-C8CFJEkx.js} +1 -1
  13. package/dist/web/assets/{WorkspaceManager-D-D2kK1V.js → WorkspaceManager-XaQj8BRE.js} +1 -1
  14. package/dist/web/assets/icons-BxcwoY5F.js +1 -0
  15. package/dist/web/assets/index-B_kPXCbH.js +2 -0
  16. package/dist/web/assets/index-DUNAVDGb.css +1 -0
  17. package/dist/web/assets/naive-ui-BIXcURHZ.js +1 -0
  18. package/dist/web/assets/{vendors-CO3Upi1d.js → vendors-i5CBGnlm.js} +1 -1
  19. package/dist/web/assets/{vue-vendor-DqyWIXEb.js → vue-vendor-PKd8utv_.js} +1 -1
  20. package/dist/web/index.html +6 -6
  21. package/package.json +1 -1
  22. package/src/config/default.js +7 -29
  23. package/src/config/loader.js +6 -3
  24. package/src/config/model-metadata.js +102 -350
  25. package/src/config/model-metadata.json +125 -0
  26. package/src/server/api/channels.js +16 -39
  27. package/src/server/api/codex-channels.js +15 -43
  28. package/src/server/api/commands.js +0 -77
  29. package/src/server/api/config.js +4 -1
  30. package/src/server/api/gemini-channels.js +16 -40
  31. package/src/server/api/opencode-channels.js +25 -51
  32. package/src/server/api/opencode-proxy.js +1 -1
  33. package/src/server/api/opencode-sessions.js +0 -7
  34. package/src/server/api/sessions.js +11 -68
  35. package/src/server/api/settings.js +66 -39
  36. package/src/server/api/skills.js +0 -44
  37. package/src/server/api/statistics.js +115 -1
  38. package/src/server/codex-proxy-server.js +26 -55
  39. package/src/server/gemini-proxy-server.js +15 -14
  40. package/src/server/index.js +0 -3
  41. package/src/server/opencode-proxy-server.js +45 -121
  42. package/src/server/proxy-server.js +2 -4
  43. package/src/server/services/commands-service.js +0 -29
  44. package/src/server/services/config-templates-service.js +38 -28
  45. package/src/server/services/env-checker.js +73 -8
  46. package/src/server/services/plugins-service.js +37 -28
  47. package/src/server/services/pty-manager.js +22 -18
  48. package/src/server/services/skill-service.js +1 -49
  49. package/src/server/services/speed-test.js +40 -3
  50. package/src/server/services/statistics-service.js +238 -1
  51. package/src/server/utils/pricing.js +51 -60
  52. package/dist/web/assets/SessionList-BGJWyneI.css +0 -1
  53. package/dist/web/assets/SessionList-UWcZtC2r.js +0 -1
  54. package/dist/web/assets/icons-kcfLIMBB.js +0 -1
  55. package/dist/web/assets/index-CoB3zF0K.css +0 -1
  56. package/dist/web/assets/index-CryrSLv8.js +0 -2
  57. package/dist/web/assets/naive-ui-CSrLusZZ.js +0 -1
  58. package/src/server/api/convert.js +0 -260
  59. package/src/server/services/session-converter.js +0 -577
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  该项目遵循 [Semantic Versioning](https://semver.org/)。
6
6
 
7
+ ## [3.1.4] - 2026-02-28
8
+
9
+ ### Fixed
10
+ - 🐛 **统计卡数值恒显示** - 修复切换 metric 时其他维度统计卡显示为 0 的问题,现在并发请求三个维度数据
11
+ - 🐛 **移除 dataZoom 滑块** - 修复 90d 视图图例下方出现多余波形滑块的问题
12
+
13
+ ## [3.1.3] - 2026-02-28
14
+
15
+ ### Added
16
+ - ✨ **用量分析页面** - 新增独立 `/analytics` 页面,支持按模型/渠道/工具类型的 Token 用量、费用、请求数趋势图表
17
+ - ✨ **多工具数据聚合** - 分析图表合并 Claude / Codex / Gemini / OpenCode 四个工具的统计数据
18
+ - ✨ **堆叠柱状图 & 累计趋势图** - 基于 ECharts,支持柱状图/折线图切换、全屏展示
19
+ - ✨ **灵活时间范围** - 支持 1d/3d/7d/30d/90d 及自定义日期区间,自动选择小时/天粒度
20
+ - ✨ **数据导出** - 支持 CSV 和 JSON 格式导出趋势数据
21
+
22
+ ### Changed
23
+ - 🔄 **1天视图步长调整** - 从每2小时改为每4小时,减少数据点密度
24
+ - 🔄 **3天视图步长调整** - 从每6小时改为每12小时,图表更清晰
25
+ - 🔄 **X 轴日期格式精简** - 从 `2026-02-06` 改为 `02/06`,小时标签改为 `02/06 14:00`
26
+
27
+ ### Fixed
28
+ - 🐛 **步长参数未传递** - 修复后端路由未解构 `step` 参数导致步长设置无效的问题
29
+
7
30
  ## [3.1.2] - 2026-02-27
8
31
 
9
32
  ### Added
@@ -0,0 +1 @@
1
+ .analytics-page[data-v-f66ba4e5]{height:100%;background:var(--bg-primary);overflow-y:auto;padding:16px 20px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px}.analytics-header[data-v-f66ba4e5]{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;flex-wrap:wrap;gap:10px}.page-title[data-v-f66ba4e5]{margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.toolbar[data-v-f66ba4e5]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.range-buttons[data-v-f66ba4e5]{display:flex;align-items:center;gap:4px}.range-btn[data-v-f66ba4e5]{padding:4px 10px;font-size:12px;border:1px solid var(--border-color, #e0e0e6);background:transparent;color:var(--text-secondary);border-radius:4px;cursor:pointer;transition:all .15s}.range-btn[data-v-f66ba4e5]:hover{border-color:var(--primary-color, #18a058);color:var(--primary-color, #18a058)}.range-btn.active[data-v-f66ba4e5]{background:var(--primary-color, #18a058);border-color:var(--primary-color, #18a058);color:#fff}.custom-range-wrapper[data-v-f66ba4e5]{margin-left:4px}.loading-overlay[data-v-f66ba4e5]{display:flex;justify-content:center;padding:20px 0}.summary-cards[data-v-f66ba4e5]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;flex-shrink:0}.summary-card[data-v-f66ba4e5]{background:var(--bg-secondary);border:1px solid var(--border-color, #e0e0e6);border-radius:8px;padding:14px 16px}.summary-label[data-v-f66ba4e5]{font-size:11px;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.summary-value[data-v-f66ba4e5]{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.2}.chart-section[data-v-f66ba4e5]{background:var(--bg-secondary);border:1px solid var(--border-color, #e0e0e6);border-radius:8px;padding:14px 16px;flex-shrink:0}.chart-section.fullscreen[data-v-f66ba4e5]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;border-radius:0;padding:20px;background:var(--bg-secondary);overflow:auto}.cumulative-section[data-v-f66ba4e5]{margin-bottom:8px}.chart-section-header[data-v-f66ba4e5]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.chart-title[data-v-f66ba4e5]{font-size:13px;font-weight:600;color:var(--text-primary)}.chart-controls[data-v-f66ba4e5]{display:flex;align-items:center;gap:8px}.chart-type-toggle[data-v-f66ba4e5]{display:flex;border:1px solid var(--border-color, #e0e0e6);border-radius:4px;overflow:hidden}.toggle-btn[data-v-f66ba4e5]{padding:3px 10px;font-size:12px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.toggle-btn.active[data-v-f66ba4e5]{background:var(--primary-color, #18a058);color:#fff}.icon-btn[data-v-f66ba4e5]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color, #e0e0e6);border-radius:4px;background:transparent;cursor:pointer;color:var(--text-secondary);transition:all .15s}.icon-btn[data-v-f66ba4e5]:hover{border-color:var(--primary-color, #18a058);color:var(--primary-color, #18a058)}.main-chart[data-v-f66ba4e5]{height:560px;width:100%}.chart-section.fullscreen .main-chart[data-v-f66ba4e5]{height:calc(100vh - 100px)}.cumulative-chart[data-v-f66ba4e5]{height:200px;width:100%}.empty-state[data-v-f66ba4e5]{height:120px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:13px}@media (max-width: 768px){.analytics-page[data-v-f66ba4e5]{padding:10px 12px}.summary-cards[data-v-f66ba4e5]{grid-template-columns:repeat(2,1fr)}.analytics-header[data-v-f66ba4e5]{flex-direction:column;align-items:flex-start}.toolbar[data-v-f66ba4e5]{width:100%}}@media (max-width: 480px){.summary-cards[data-v-f66ba4e5]{grid-template-columns:1fr 1fr}.summary-value[data-v-f66ba4e5]{font-size:18px}}