oc2token 0.1.0

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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +399 -0
  3. package/dist/src/accounting/index.d.ts +1 -0
  4. package/dist/src/accounting/index.js +2 -0
  5. package/dist/src/accounting/index.js.map +1 -0
  6. package/dist/src/accounting/reducer.d.ts +21 -0
  7. package/dist/src/accounting/reducer.js +105 -0
  8. package/dist/src/accounting/reducer.js.map +1 -0
  9. package/dist/src/antigravity/discovery.d.ts +18 -0
  10. package/dist/src/antigravity/discovery.js +95 -0
  11. package/dist/src/antigravity/discovery.js.map +1 -0
  12. package/dist/src/antigravity/doctor.d.ts +6 -0
  13. package/dist/src/antigravity/doctor.js +78 -0
  14. package/dist/src/antigravity/doctor.js.map +1 -0
  15. package/dist/src/antigravity/index.d.ts +3 -0
  16. package/dist/src/antigravity/index.js +4 -0
  17. package/dist/src/antigravity/index.js.map +1 -0
  18. package/dist/src/antigravity/proto.d.ts +73 -0
  19. package/dist/src/antigravity/proto.js +259 -0
  20. package/dist/src/antigravity/proto.js.map +1 -0
  21. package/dist/src/antigravity/scanner.d.ts +8 -0
  22. package/dist/src/antigravity/scanner.js +552 -0
  23. package/dist/src/antigravity/scanner.js.map +1 -0
  24. package/dist/src/application.d.ts +73 -0
  25. package/dist/src/application.js +657 -0
  26. package/dist/src/application.js.map +1 -0
  27. package/dist/src/cache/filesystem.d.ts +8 -0
  28. package/dist/src/cache/filesystem.js +70 -0
  29. package/dist/src/cache/filesystem.js.map +1 -0
  30. package/dist/src/cache/index.d.ts +5 -0
  31. package/dist/src/cache/index.js +6 -0
  32. package/dist/src/cache/index.js.map +1 -0
  33. package/dist/src/cache/lock.d.ts +40 -0
  34. package/dist/src/cache/lock.js +227 -0
  35. package/dist/src/cache/lock.js.map +1 -0
  36. package/dist/src/cache/schema.d.ts +45 -0
  37. package/dist/src/cache/schema.js +308 -0
  38. package/dist/src/cache/schema.js.map +1 -0
  39. package/dist/src/cache/store.d.ts +46 -0
  40. package/dist/src/cache/store.js +396 -0
  41. package/dist/src/cache/store.js.map +1 -0
  42. package/dist/src/cache/types.d.ts +130 -0
  43. package/dist/src/cache/types.js +6 -0
  44. package/dist/src/cache/types.js.map +1 -0
  45. package/dist/src/cli.d.ts +8 -0
  46. package/dist/src/cli.js +874 -0
  47. package/dist/src/cli.js.map +1 -0
  48. package/dist/src/codex/discovery.d.ts +6 -0
  49. package/dist/src/codex/discovery.js +88 -0
  50. package/dist/src/codex/discovery.js.map +1 -0
  51. package/dist/src/codex/doctor.d.ts +6 -0
  52. package/dist/src/codex/doctor.js +52 -0
  53. package/dist/src/codex/doctor.js.map +1 -0
  54. package/dist/src/codex/index.d.ts +3 -0
  55. package/dist/src/codex/index.js +3 -0
  56. package/dist/src/codex/index.js.map +1 -0
  57. package/dist/src/codex/scanner.d.ts +6 -0
  58. package/dist/src/codex/scanner.js +487 -0
  59. package/dist/src/codex/scanner.js.map +1 -0
  60. package/dist/src/codex/types.d.ts +31 -0
  61. package/dist/src/codex/types.js +5 -0
  62. package/dist/src/codex/types.js.map +1 -0
  63. package/dist/src/collector/collector.d.ts +15 -0
  64. package/dist/src/collector/collector.js +597 -0
  65. package/dist/src/collector/collector.js.map +1 -0
  66. package/dist/src/collector/index.d.ts +3 -0
  67. package/dist/src/collector/index.js +3 -0
  68. package/dist/src/collector/index.js.map +1 -0
  69. package/dist/src/collector/types.d.ts +55 -0
  70. package/dist/src/collector/types.js +18 -0
  71. package/dist/src/collector/types.js.map +1 -0
  72. package/dist/src/dashboard/render/ansi.d.ts +53 -0
  73. package/dist/src/dashboard/render/ansi.js +106 -0
  74. package/dist/src/dashboard/render/ansi.js.map +1 -0
  75. package/dist/src/dashboard/render/dashboard.d.ts +13 -0
  76. package/dist/src/dashboard/render/dashboard.js +750 -0
  77. package/dist/src/dashboard/render/dashboard.js.map +1 -0
  78. package/dist/src/dashboard/render/format.d.ts +23 -0
  79. package/dist/src/dashboard/render/format.js +169 -0
  80. package/dist/src/dashboard/render/format.js.map +1 -0
  81. package/dist/src/dashboard/render/redraw.d.ts +13 -0
  82. package/dist/src/dashboard/render/redraw.js +24 -0
  83. package/dist/src/dashboard/render/redraw.js.map +1 -0
  84. package/dist/src/dashboard/render/types.d.ts +83 -0
  85. package/dist/src/dashboard/render/types.js +528 -0
  86. package/dist/src/dashboard/render/types.js.map +1 -0
  87. package/dist/src/dashboard/scheduler/index.d.ts +1 -0
  88. package/dist/src/dashboard/scheduler/index.js +2 -0
  89. package/dist/src/dashboard/scheduler/index.js.map +1 -0
  90. package/dist/src/dashboard/scheduler/refresh-scheduler.d.ts +46 -0
  91. package/dist/src/dashboard/scheduler/refresh-scheduler.js +137 -0
  92. package/dist/src/dashboard/scheduler/refresh-scheduler.js.map +1 -0
  93. package/dist/src/dashboard/settings/index.d.ts +25 -0
  94. package/dist/src/dashboard/settings/index.js +162 -0
  95. package/dist/src/dashboard/settings/index.js.map +1 -0
  96. package/dist/src/dashboard/state/index.d.ts +2 -0
  97. package/dist/src/dashboard/state/index.js +3 -0
  98. package/dist/src/dashboard/state/index.js.map +1 -0
  99. package/dist/src/dashboard/state/refresh-coordinator.d.ts +72 -0
  100. package/dist/src/dashboard/state/refresh-coordinator.js +346 -0
  101. package/dist/src/dashboard/state/refresh-coordinator.js.map +1 -0
  102. package/dist/src/dashboard/state/types.d.ts +68 -0
  103. package/dist/src/dashboard/state/types.js +2 -0
  104. package/dist/src/dashboard/state/types.js.map +1 -0
  105. package/dist/src/domain/contracts.d.ts +219 -0
  106. package/dist/src/domain/contracts.js +2 -0
  107. package/dist/src/domain/contracts.js.map +1 -0
  108. package/dist/src/domain/errors.d.ts +25 -0
  109. package/dist/src/domain/errors.js +65 -0
  110. package/dist/src/domain/errors.js.map +1 -0
  111. package/dist/src/domain/index.d.ts +5 -0
  112. package/dist/src/domain/index.js +6 -0
  113. package/dist/src/domain/index.js.map +1 -0
  114. package/dist/src/domain/records.d.ts +59 -0
  115. package/dist/src/domain/records.js +141 -0
  116. package/dist/src/domain/records.js.map +1 -0
  117. package/dist/src/domain/tokens.d.ts +51 -0
  118. package/dist/src/domain/tokens.js +93 -0
  119. package/dist/src/domain/tokens.js.map +1 -0
  120. package/dist/src/domain/windows.d.ts +59 -0
  121. package/dist/src/domain/windows.js +272 -0
  122. package/dist/src/domain/windows.js.map +1 -0
  123. package/dist/src/index.d.ts +9 -0
  124. package/dist/src/index.js +9 -0
  125. package/dist/src/index.js.map +1 -0
  126. package/dist/src/opencode/adapter.d.ts +47 -0
  127. package/dist/src/opencode/adapter.js +118 -0
  128. package/dist/src/opencode/adapter.js.map +1 -0
  129. package/dist/src/opencode/client.d.ts +64 -0
  130. package/dist/src/opencode/client.js +118 -0
  131. package/dist/src/opencode/client.js.map +1 -0
  132. package/dist/src/opencode/doctor.d.ts +28 -0
  133. package/dist/src/opencode/doctor.js +82 -0
  134. package/dist/src/opencode/doctor.js.map +1 -0
  135. package/dist/src/opencode/index.d.ts +5 -0
  136. package/dist/src/opencode/index.js +6 -0
  137. package/dist/src/opencode/index.js.map +1 -0
  138. package/dist/src/opencode/stats.d.ts +8 -0
  139. package/dist/src/opencode/stats.js +174 -0
  140. package/dist/src/opencode/stats.js.map +1 -0
  141. package/dist/src/opencode/transport.d.ts +54 -0
  142. package/dist/src/opencode/transport.js +621 -0
  143. package/dist/src/opencode/transport.js.map +1 -0
  144. package/dist/src/output/index.d.ts +20 -0
  145. package/dist/src/output/index.js +46 -0
  146. package/dist/src/output/index.js.map +1 -0
  147. package/dist/src/output/json.d.ts +72 -0
  148. package/dist/src/output/json.js +133 -0
  149. package/dist/src/output/json.js.map +1 -0
  150. package/dist/src/output/table.d.ts +4 -0
  151. package/dist/src/output/table.js +81 -0
  152. package/dist/src/output/table.js.map +1 -0
  153. package/dist/src/pricing/index.d.ts +1 -0
  154. package/dist/src/pricing/index.js +2 -0
  155. package/dist/src/pricing/index.js.map +1 -0
  156. package/dist/src/pricing/pricing.d.ts +19 -0
  157. package/dist/src/pricing/pricing.js +441 -0
  158. package/dist/src/pricing/pricing.js.map +1 -0
  159. package/package.json +27 -0
@@ -0,0 +1,441 @@
1
+ // Per-model pricing per 1M tokens (USD) — updated 2026-09-02 from official sources:
2
+ // - OpenAI: openai.com/api/pricing, Azure, pricepertoken.com
3
+ // - Anthropic: anthropic.com/pricing, platform.claude.com
4
+ // - Google: ai.google.dev/gemini-api/docs/pricing
5
+ // - OpenCode Zen: opencode.ai/zen + opencode.ai/docs/zen + opencode.ai/docs/go (opencode/* at-cost, 2026-09-02)
6
+ // Unknown models return undefined (no generic fallback) per spec, except opencode/* which has explicit Zen pricing.
7
+ // OpenAI GPT-5 family
8
+ const PRICING_GPT5 = { input: 1.25, output: 10, reasoning: 10, cacheRead: 0.125, cacheWrite: 1.25 };
9
+ const PRICING_GPT5_MINI = { input: 0.25, output: 2, reasoning: 2, cacheRead: 0.025, cacheWrite: 0.25 };
10
+ const PRICING_GPT5_NANO = { input: 0.05, output: 0.40, reasoning: 0.40, cacheRead: 0.005, cacheWrite: 0.05 };
11
+ const PRICING_GPT51 = { input: 1.25, output: 10, reasoning: 10, cacheRead: 0.125, cacheWrite: 1.25 };
12
+ const PRICING_GPT52 = { input: 1.75, output: 14, reasoning: 14, cacheRead: 0.175, cacheWrite: 1.75 };
13
+ const PRICING_GPT53_CODEX = { input: 1.75, output: 14, reasoning: 14, cacheRead: 0.175, cacheWrite: 1.75 };
14
+ const PRICING_GPT54 = { input: 2.5, output: 15, reasoning: 15, cacheRead: 0.25, cacheWrite: 3.125 };
15
+ const PRICING_GPT54_MINI = { input: 0.75, output: 4.5, reasoning: 4.5, cacheRead: 0.075, cacheWrite: 0.9375 };
16
+ const PRICING_GPT54_NANO = { input: 0.20, output: 1.25, reasoning: 1.25, cacheRead: 0.02, cacheWrite: 0.25 };
17
+ const PRICING_GPT55 = { input: 5, output: 30, reasoning: 30, cacheRead: 0.5, cacheWrite: 6.25 };
18
+ const PRICING_GPT55_PRO = { input: 30, output: 180, reasoning: 180, cacheRead: 3, cacheWrite: 37.5 };
19
+ const PRICING_GPT56_SOL = { input: 5, output: 30, reasoning: 30, cacheRead: 0.5, cacheWrite: 6.25 };
20
+ const PRICING_GPT56_TERRA = { input: 2, output: 12, reasoning: 12, cacheRead: 0.2, cacheWrite: 2.5 };
21
+ const PRICING_GPT56_LUNA = { input: 0.20, output: 1.20, reasoning: 1.20, cacheRead: 0.02, cacheWrite: 0.25 };
22
+ // Zen variants (opencode/* at-cost, slightly cheaper for GPT-5 family)
23
+ const PRICING_ZEN_GPT5 = { input: 1.07, output: 8.50, reasoning: 8.50, cacheRead: 0.107, cacheWrite: 1.07 };
24
+ const PRICING_ZEN_GPT51 = { input: 1.07, output: 8.50, reasoning: 8.50, cacheRead: 0.107, cacheWrite: 1.07 };
25
+ const PRICING_ZEN_GPT51_CODEX_MINI = { input: 0.25, output: 2, reasoning: 2, cacheRead: 0.025, cacheWrite: 0.25 };
26
+ const PRICING_GPT4O = { input: 2.5, output: 10, reasoning: 10, cacheRead: 1.25, cacheWrite: 2.5 };
27
+ const PRICING_GPT4O_MINI = { input: 0.15, output: 0.60, reasoning: 0.60, cacheRead: 0.075, cacheWrite: 0.15 };
28
+ const PRICING_GPT41 = { input: 2.0, output: 8.0, reasoning: 8.0, cacheRead: 0.50, cacheWrite: 2.0 };
29
+ const PRICING_GPT41_MINI = { input: 0.40, output: 1.60, reasoning: 1.60, cacheRead: 0.10, cacheWrite: 0.40 };
30
+ const PRICING_GPT41_NANO = { input: 0.10, output: 0.40, reasoning: 0.40, cacheRead: 0.025, cacheWrite: 0.10 };
31
+ const PRICING_O1 = { input: 15, output: 60, reasoning: 60, cacheRead: 7.5, cacheWrite: 15 };
32
+ const PRICING_O1_MINI = { input: 1.10, output: 4.40, reasoning: 4.40, cacheRead: 0.55, cacheWrite: 1.10 };
33
+ const PRICING_O3 = { input: 2.0, output: 8.0, reasoning: 8.0, cacheRead: 0.50, cacheWrite: 2.0 };
34
+ const PRICING_O3_MINI = { input: 1.10, output: 4.40, reasoning: 4.40, cacheRead: 0.55, cacheWrite: 1.10 };
35
+ const PRICING_O4_MINI = { input: 1.10, output: 4.40, reasoning: 4.40, cacheRead: 0.275, cacheWrite: 1.10 };
36
+ const PRICING_CLAUDE_SONNET = { input: 3.0, output: 15, reasoning: 15, cacheRead: 0.30, cacheWrite: 3.75 };
37
+ const PRICING_CLAUDE_SONNET5 = { input: 2.0, output: 10, reasoning: 10, cacheRead: 0.20, cacheWrite: 2.50 };
38
+ const PRICING_CLAUDE_HAIKU = { input: 0.80, output: 4.0, reasoning: 4.0, cacheRead: 0.08, cacheWrite: 1.0 };
39
+ const PRICING_CLAUDE_HAIKU45 = { input: 1.0, output: 5.0, reasoning: 5.0, cacheRead: 0.10, cacheWrite: 1.25 };
40
+ const PRICING_CLAUDE_OPUS = { input: 15, output: 75, reasoning: 75, cacheRead: 1.50, cacheWrite: 18.75 };
41
+ const PRICING_CLAUDE_OPUS_45 = { input: 5.0, output: 25, reasoning: 25, cacheRead: 0.50, cacheWrite: 6.25 };
42
+ const PRICING_CLAUDE_FABLE = { input: 10, output: 50, reasoning: 50, cacheRead: 1.0, cacheWrite: 12.50 };
43
+ const PRICING_CLAUDE_FABLE51 = { input: 10, output: 50, reasoning: 50, cacheRead: 0.25, cacheWrite: 12.50 };
44
+ const PRICING_GEMINI_25_PRO = { input: 1.25, output: 10, reasoning: 10, cacheRead: 0.125, cacheWrite: 1.25 };
45
+ const PRICING_GEMINI_25_FLASH = { input: 0.30, output: 2.50, reasoning: 2.50, cacheRead: 0.03, cacheWrite: 0.30 };
46
+ const PRICING_GEMINI_25_FLASH_LITE = { input: 0.10, output: 0.40, reasoning: 0.40, cacheRead: 0.01, cacheWrite: 0.10 };
47
+ const PRICING_GEMINI_20_FLASH = { input: 0.10, output: 0.40, reasoning: 0.40, cacheRead: 0.01, cacheWrite: 0.10 };
48
+ const PRICING_GEMINI_31_PRO = { input: 2.0, output: 12, reasoning: 12, cacheRead: 0.20, cacheWrite: 2.0 };
49
+ const PRICING_GEMINI_31_FLASH_LITE = { input: 0.25, output: 1.50, reasoning: 1.50, cacheRead: 0.025, cacheWrite: 0.25 };
50
+ const PRICING_GEMINI_35_FLASH = { input: 1.50, output: 9.00, reasoning: 9.00, cacheRead: 0.15, cacheWrite: 1.50 };
51
+ const PRICING_GEMINI_35_FLASH_LITE = { input: 0.30, output: 2.50, reasoning: 2.50, cacheRead: 0.03, cacheWrite: 0.30 };
52
+ const PRICING_GEMINI_36_FLASH = { input: 0.75, output: 3.75, reasoning: 3.75, cacheRead: 0.075, cacheWrite: 0.75 };
53
+ const PRICING_GEMINI_37_FLASH = { input: 0.75, output: 3.75, reasoning: 3.75, cacheRead: 0.075, cacheWrite: 0.75 };
54
+ const PRICING_GEMINI_15_PRO = { input: 1.25, output: 5.0, reasoning: 5.0, cacheRead: 0.125, cacheWrite: 1.25 };
55
+ // Zen / Go open models (opencode/*) — at-cost from opencode.ai/zen
56
+ const PRICING_ZEN_MINIMAX_M25 = { input: 0.30, output: 1.20, reasoning: 1.20, cacheRead: 0.06, cacheWrite: 0.30 };
57
+ const PRICING_ZEN_MINIMAX_M3 = { input: 0.30, output: 1.20, reasoning: 1.20, cacheRead: 0.06, cacheWrite: 0.30 };
58
+ const PRICING_ZEN_GLM5 = { input: 1.0, output: 3.20, reasoning: 3.20, cacheRead: 0.20, cacheWrite: 1.0 };
59
+ const PRICING_ZEN_GLM51 = { input: 1.40, output: 4.40, reasoning: 4.40, cacheRead: 0.26, cacheWrite: 1.40 };
60
+ const PRICING_ZEN_GLM52 = { input: 1.40, output: 4.40, reasoning: 4.40, cacheRead: 0.26, cacheWrite: 1.40 };
61
+ const PRICING_ZEN_KIMI_K2_5 = { input: 0.60, output: 3.00, reasoning: 3.00, cacheRead: 0.10, cacheWrite: 0.60 };
62
+ const PRICING_ZEN_KIMI_K3 = { input: 3.00, output: 15.00, reasoning: 15.00, cacheRead: 0.30, cacheWrite: 3.00 };
63
+ const PRICING_ZEN_QWEN_37_MAX = { input: 2.50, output: 7.50, reasoning: 7.50, cacheRead: 0.50, cacheWrite: 3.125 };
64
+ const PRICING_ZEN_DEEPSEEK_V4_PRO = { input: 0.66, output: 1.98, reasoning: 1.98, cacheRead: 0.022, cacheWrite: 0.66 };
65
+ const PRICING_ZEN_DEEPSEEK_V4_FLASH = { input: 0.22, output: 0.66, reasoning: 0.66, cacheRead: 0.007, cacheWrite: 0.22 };
66
+ const PRICING_ZEN_MIMO = { input: 0.14, output: 0.28, reasoning: 0.28, cacheRead: 0.0028, cacheWrite: 0.14 };
67
+ const PRICING_ZEN_MUSE_SPARK = { input: 1.25, output: 4.25, reasoning: 4.25, cacheRead: 0.15, cacheWrite: 1.25 };
68
+ const PRICING_GEMINI_3_PRO = PRICING_GEMINI_31_PRO;
69
+ const PRICING_GEMINI_3_FLASH = PRICING_GEMINI_36_FLASH;
70
+ const EXACT_PRICING = {
71
+ "gpt-5": PRICING_GPT5,
72
+ "gpt-5-mini": PRICING_GPT5_MINI,
73
+ "gpt-5-nano": PRICING_GPT5_NANO,
74
+ "openai/gpt-5": PRICING_GPT5,
75
+ "openai/gpt-5-mini": PRICING_GPT5_MINI,
76
+ "openai/gpt-5-nano": PRICING_GPT5_NANO,
77
+ // Zen opencode/* variants (at-cost, cheaper)
78
+ "opencode/gpt-5": PRICING_ZEN_GPT5,
79
+ "opencode/gpt-5.1": PRICING_ZEN_GPT51,
80
+ "opencode/gpt-5.1-codex": PRICING_ZEN_GPT51,
81
+ "opencode/gpt-5.1-codex-mini": PRICING_ZEN_GPT51_CODEX_MINI,
82
+ "opencode/gpt-5.1-codex-max": PRICING_ZEN_GPT5,
83
+ "opencode/gpt-5-codex": PRICING_ZEN_GPT5,
84
+ "opencode/gpt-5-nano": PRICING_GPT5_NANO,
85
+ "opencode/gpt-5-mini": PRICING_GPT5_MINI,
86
+ "gpt-5.1": PRICING_GPT51,
87
+ "openai/gpt-5.1": PRICING_GPT51,
88
+ "gpt-5.2": PRICING_GPT52,
89
+ "openai/gpt-5.2": PRICING_GPT52,
90
+ "gpt-5.3-codex": PRICING_GPT53_CODEX,
91
+ "openai/gpt-5.3-codex": PRICING_GPT53_CODEX,
92
+ "opencode/gpt-5.2": PRICING_GPT52,
93
+ "opencode/gpt-5.3-codex": PRICING_GPT53_CODEX,
94
+ "gpt-5.4": PRICING_GPT54,
95
+ "openai/gpt-5.4": PRICING_GPT54,
96
+ "gpt-5.4-mini": PRICING_GPT54_MINI,
97
+ "openai/gpt-5.4-mini": PRICING_GPT54_MINI,
98
+ "gpt-5.4-nano": PRICING_GPT54_NANO,
99
+ "openai/gpt-5.4-nano": PRICING_GPT54_NANO,
100
+ "opencode/gpt-5.4": PRICING_GPT54,
101
+ "opencode/gpt-5.4-mini": PRICING_GPT54_MINI,
102
+ "gpt-5.5": PRICING_GPT55,
103
+ "openai/gpt-5.5": PRICING_GPT55,
104
+ "gpt-5.5-pro": PRICING_GPT55_PRO,
105
+ "openai/gpt-5.5-pro": PRICING_GPT55_PRO,
106
+ "opencode/gpt-5.5": PRICING_GPT55,
107
+ "gpt-5.6-sol": PRICING_GPT56_SOL,
108
+ "gpt-5.6-terra": PRICING_GPT56_TERRA,
109
+ "gpt-5.6-luna": PRICING_GPT56_LUNA,
110
+ "openai/gpt-5.6-sol": PRICING_GPT56_SOL,
111
+ "openai/gpt-5.6-terra": PRICING_GPT56_TERRA,
112
+ "openai/gpt-5.6-luna": PRICING_GPT56_LUNA,
113
+ "opencode/gpt-5.6-sol": PRICING_GPT56_SOL,
114
+ "opencode/gpt-5.6-terra": PRICING_GPT56_TERRA,
115
+ "opencode/gpt-5.6-luna": PRICING_GPT56_LUNA,
116
+ "gpt-4o": PRICING_GPT4O,
117
+ "gpt-4o-mini": PRICING_GPT4O_MINI,
118
+ "openai/gpt-4o": PRICING_GPT4O,
119
+ "openai/gpt-4o-mini": PRICING_GPT4O_MINI,
120
+ "opencode/gpt-4o": PRICING_GPT4O,
121
+ "opencode/gpt-4o-mini": PRICING_GPT4O_MINI,
122
+ "gpt-4.1": PRICING_GPT41,
123
+ "gpt-4.1-mini": PRICING_GPT41_MINI,
124
+ "gpt-4.1-nano": PRICING_GPT41_NANO,
125
+ "openai/gpt-4.1": PRICING_GPT41,
126
+ "openai/gpt-4.1-mini": PRICING_GPT41_MINI,
127
+ "opencode/gpt-4.1": PRICING_GPT41,
128
+ "o1": PRICING_O1,
129
+ "o1-mini": PRICING_O1_MINI,
130
+ "o3": PRICING_O3,
131
+ "o3-mini": PRICING_O3_MINI,
132
+ "o4-mini": PRICING_O4_MINI,
133
+ "openai/o1": PRICING_O1,
134
+ "openai/o1-mini": PRICING_O1_MINI,
135
+ "openai/o3": PRICING_O3,
136
+ "openai/o3-mini": PRICING_O3_MINI,
137
+ "openai/o4-mini": PRICING_O4_MINI,
138
+ "opencode/o1": PRICING_O1,
139
+ "opencode/o3": PRICING_O3,
140
+ "claude-3-5-sonnet": PRICING_CLAUDE_SONNET,
141
+ "claude-3.5-sonnet": PRICING_CLAUDE_SONNET,
142
+ "claude-sonnet-4": PRICING_CLAUDE_SONNET,
143
+ "claude-sonnet-4.5": PRICING_CLAUDE_SONNET,
144
+ "claude-sonnet-4.6": PRICING_CLAUDE_SONNET,
145
+ "claude-sonnet-5": PRICING_CLAUDE_SONNET5,
146
+ "claude-3-5-haiku": PRICING_CLAUDE_HAIKU,
147
+ "claude-haiku": PRICING_CLAUDE_HAIKU,
148
+ "claude-haiku-3.5": PRICING_CLAUDE_HAIKU,
149
+ "claude-haiku-4.5": PRICING_CLAUDE_HAIKU45,
150
+ "claude-opus": PRICING_CLAUDE_OPUS,
151
+ "claude-opus-4": PRICING_CLAUDE_OPUS,
152
+ "claude-opus-4.1": PRICING_CLAUDE_OPUS,
153
+ "claude-opus-4.5": PRICING_CLAUDE_OPUS_45,
154
+ "claude-opus-4.6": PRICING_CLAUDE_OPUS_45,
155
+ "claude-opus-4.7": PRICING_CLAUDE_OPUS_45,
156
+ "claude-opus-4.8": PRICING_CLAUDE_OPUS_45,
157
+ "claude-opus-5": PRICING_CLAUDE_OPUS_45,
158
+ "claude-fable-5": PRICING_CLAUDE_FABLE,
159
+ "claude-fable-5.1": PRICING_CLAUDE_FABLE51,
160
+ "anthropic/claude-3-5-sonnet": PRICING_CLAUDE_SONNET,
161
+ "anthropic/claude-sonnet-4": PRICING_CLAUDE_SONNET,
162
+ "anthropic/claude-sonnet-5": PRICING_CLAUDE_SONNET5,
163
+ "anthropic/claude-haiku": PRICING_CLAUDE_HAIKU,
164
+ "anthropic/claude-haiku-4.5": PRICING_CLAUDE_HAIKU45,
165
+ "anthropic/claude-opus-4": PRICING_CLAUDE_OPUS,
166
+ "anthropic/claude-opus-5": PRICING_CLAUDE_OPUS_45,
167
+ "anthropic/claude-fable-5": PRICING_CLAUDE_FABLE,
168
+ "anthropic/claude-fable-5.1": PRICING_CLAUDE_FABLE51,
169
+ "opencode/claude-sonnet-4": PRICING_CLAUDE_SONNET,
170
+ "opencode/claude-sonnet-5": PRICING_CLAUDE_SONNET5,
171
+ "opencode/claude-haiku-4.5": PRICING_CLAUDE_HAIKU45,
172
+ "opencode/claude-opus-5": PRICING_CLAUDE_OPUS_45,
173
+ "opencode/claude-fable-5": PRICING_CLAUDE_FABLE,
174
+ "opencode/claude-fable-5.1": PRICING_CLAUDE_FABLE51,
175
+ "gemini-2.5-pro": PRICING_GEMINI_25_PRO,
176
+ "gemini-2.5-flash": PRICING_GEMINI_25_FLASH,
177
+ "gemini-2.5-flash-lite": PRICING_GEMINI_25_FLASH_LITE,
178
+ "gemini-2.0-flash": PRICING_GEMINI_20_FLASH,
179
+ "gemini-3-pro": PRICING_GEMINI_31_PRO,
180
+ "gemini-3.1-pro": PRICING_GEMINI_31_PRO,
181
+ "gemini-3.1-pro-preview": PRICING_GEMINI_31_PRO,
182
+ "gemini-3-flash": PRICING_GEMINI_36_FLASH,
183
+ "gemini-3.5-flash": PRICING_GEMINI_35_FLASH,
184
+ "gemini-3.5-flash-lite": PRICING_GEMINI_35_FLASH_LITE,
185
+ "gemini-3.6-flash": PRICING_GEMINI_36_FLASH,
186
+ "gemini-3.7-flash": PRICING_GEMINI_37_FLASH,
187
+ "gemini-3.1-flash-lite": PRICING_GEMINI_31_FLASH_LITE,
188
+ "gemini-1.5-pro": PRICING_GEMINI_15_PRO,
189
+ "google/gemini-2.5-pro": PRICING_GEMINI_25_PRO,
190
+ "opencode/gemini-2.5-pro": PRICING_GEMINI_25_PRO,
191
+ "opencode/gemini-3.1-pro": PRICING_GEMINI_31_PRO,
192
+ "opencode/gemini-3.5-flash": PRICING_GEMINI_35_FLASH,
193
+ "opencode/gemini-3.7-flash": PRICING_GEMINI_37_FLASH,
194
+ // Go models (opencode-go/*)
195
+ "opencode-go/kimi-k2.5": PRICING_ZEN_KIMI_K2_5,
196
+ "opencode-go/kimi-k3": PRICING_ZEN_KIMI_K3,
197
+ "opencode-go/qwen3.7-max": PRICING_ZEN_QWEN_37_MAX,
198
+ "opencode-go/qwen3.8-max": PRICING_ZEN_QWEN_37_MAX,
199
+ "opencode-go/deepseek-v4-pro": PRICING_ZEN_DEEPSEEK_V4_PRO,
200
+ "opencode-go/deepseek-v4-flash": PRICING_ZEN_DEEPSEEK_V4_FLASH,
201
+ "opencode-go/minimax-m2.5": PRICING_ZEN_MINIMAX_M25,
202
+ "opencode-go/minimax-m3": PRICING_ZEN_MINIMAX_M3,
203
+ "opencode-go/mimo-v2.5": PRICING_ZEN_MIMO,
204
+ "opencode-go/muse-spark-1.2": PRICING_ZEN_MUSE_SPARK,
205
+ "opencode/go/kimi-k2.5": PRICING_ZEN_KIMI_K2_5,
206
+ // Zen open models (opencode/*)
207
+ "opencode/minimax-m2.5": PRICING_ZEN_MINIMAX_M25,
208
+ "opencode/minimax-m3": PRICING_ZEN_MINIMAX_M3,
209
+ "opencode/glm-5": PRICING_ZEN_GLM5,
210
+ "opencode/glm-5.1": PRICING_ZEN_GLM51,
211
+ "opencode/glm-5.2": PRICING_ZEN_GLM52,
212
+ "opencode/glm-5.3": PRICING_ZEN_GLM52,
213
+ "opencode/kimi-k2.5": PRICING_ZEN_KIMI_K2_5,
214
+ "opencode/kimi-k3": PRICING_ZEN_KIMI_K3,
215
+ "opencode/kimi-k2.6": PRICING_ZEN_KIMI_K3,
216
+ "opencode/qwen3.7-max": PRICING_ZEN_QWEN_37_MAX,
217
+ "opencode/qwen3.8-max": PRICING_ZEN_QWEN_37_MAX,
218
+ "opencode/deepseek-v4-pro": PRICING_ZEN_DEEPSEEK_V4_PRO,
219
+ "opencode/deepseek-v4-flash": PRICING_ZEN_DEEPSEEK_V4_FLASH,
220
+ "opencode/mimo-v2.5": PRICING_ZEN_MIMO,
221
+ "opencode/muse-spark-1.2": PRICING_ZEN_MUSE_SPARK,
222
+ "opencode/qwen3.7-plus": PRICING_ZEN_QWEN_37_MAX,
223
+ // Provider-level aliases
224
+ "openai": PRICING_GPT5,
225
+ "anthropic": PRICING_CLAUDE_SONNET5,
226
+ "google": PRICING_GEMINI_25_PRO,
227
+ "opencode": PRICING_ZEN_GPT5,
228
+ "codex": PRICING_GPT5,
229
+ "antigravity": PRICING_GEMINI_25_PRO,
230
+ };
231
+ function stripPricingSuffix(value) {
232
+ return value.replace(/-(high|medium|low|agent)$/i, "");
233
+ }
234
+ function normalizeForLookup(value) {
235
+ const lower = value.toLowerCase().trim();
236
+ const stripped = stripPricingSuffix(lower);
237
+ return stripped;
238
+ }
239
+ export function pricingForModel(model) {
240
+ if (typeof model !== "string" || model.trim().length === 0)
241
+ return undefined;
242
+ const normalized = normalizeForLookup(model);
243
+ const direct = EXACT_PRICING[normalized];
244
+ if (direct !== undefined)
245
+ return direct;
246
+ const withoutProvider = normalized.includes("/") ? normalized.split("/").pop() : normalized;
247
+ const withoutProviderExact = EXACT_PRICING[withoutProvider];
248
+ if (withoutProviderExact !== undefined)
249
+ return withoutProviderExact;
250
+ const base = withoutProvider.split("-20")[0] ?? withoutProvider;
251
+ if (EXACT_PRICING[base] !== undefined)
252
+ return EXACT_PRICING[base];
253
+ const m = normalized;
254
+ if (m.includes("gpt-5.6")) {
255
+ if (m.includes("luna"))
256
+ return PRICING_GPT56_LUNA;
257
+ if (m.includes("terra"))
258
+ return PRICING_GPT56_TERRA;
259
+ if (m.includes("sol"))
260
+ return PRICING_GPT56_SOL;
261
+ if (m.includes("nano"))
262
+ return PRICING_GPT54_NANO;
263
+ if (m.includes("mini"))
264
+ return PRICING_GPT54_MINI;
265
+ return PRICING_GPT56_SOL;
266
+ }
267
+ if (m.includes("gpt-5.5")) {
268
+ if (m.includes("pro"))
269
+ return PRICING_GPT55_PRO;
270
+ return PRICING_GPT55;
271
+ }
272
+ if (m.includes("gpt-5.4")) {
273
+ if (m.includes("nano"))
274
+ return PRICING_GPT54_NANO;
275
+ if (m.includes("mini"))
276
+ return PRICING_GPT54_MINI;
277
+ return PRICING_GPT54;
278
+ }
279
+ if (m.includes("gpt-5.3") || m.includes("gpt-5.2")) {
280
+ if (m.includes("pro"))
281
+ return PRICING_GPT52;
282
+ return PRICING_GPT52;
283
+ }
284
+ if (m.includes("gpt-5.1"))
285
+ return PRICING_GPT51;
286
+ if (m.includes("gpt-5")) {
287
+ if (m.includes("nano"))
288
+ return PRICING_GPT5_NANO;
289
+ if (m.includes("mini"))
290
+ return PRICING_GPT5_MINI;
291
+ return PRICING_GPT5;
292
+ }
293
+ if (m.includes("gpt-4o-mini"))
294
+ return PRICING_GPT4O_MINI;
295
+ if (m.includes("gpt-4o"))
296
+ return PRICING_GPT4O;
297
+ if (m.includes("gpt-4.1-nano"))
298
+ return PRICING_GPT41_NANO;
299
+ if (m.includes("gpt-4.1-mini"))
300
+ return PRICING_GPT41_MINI;
301
+ if (m.includes("gpt-4.1"))
302
+ return PRICING_GPT41;
303
+ if (m.includes("o4-mini"))
304
+ return PRICING_O4_MINI;
305
+ if (m.includes("o3-mini"))
306
+ return PRICING_O3_MINI;
307
+ if (m.includes("o3"))
308
+ return PRICING_O3;
309
+ if (m.includes("o1-mini"))
310
+ return PRICING_O1_MINI;
311
+ if (m.includes("o1"))
312
+ return PRICING_O1;
313
+ if (m.includes("fable")) {
314
+ if (m.includes("5.1"))
315
+ return PRICING_CLAUDE_FABLE51;
316
+ return PRICING_CLAUDE_FABLE;
317
+ }
318
+ if (m.includes("claude")) {
319
+ if (m.includes("opus")) {
320
+ if (m.includes("4.1"))
321
+ return PRICING_CLAUDE_OPUS;
322
+ return PRICING_CLAUDE_OPUS_45;
323
+ }
324
+ if (m.includes("haiku")) {
325
+ if (m.includes("4.5"))
326
+ return PRICING_CLAUDE_HAIKU45;
327
+ return PRICING_CLAUDE_HAIKU;
328
+ }
329
+ if (m.includes("sonnet")) {
330
+ if (m.includes("5"))
331
+ return PRICING_CLAUDE_SONNET5;
332
+ return PRICING_CLAUDE_SONNET;
333
+ }
334
+ return PRICING_CLAUDE_SONNET5;
335
+ }
336
+ if (m.includes("minimax"))
337
+ return PRICING_ZEN_MINIMAX_M25;
338
+ if (m.includes("glm-5"))
339
+ return PRICING_ZEN_GLM5;
340
+ if (m.includes("glm"))
341
+ return PRICING_ZEN_GLM52;
342
+ if (m.includes("kimi")) {
343
+ if (m.includes("k3"))
344
+ return PRICING_ZEN_KIMI_K3;
345
+ return PRICING_ZEN_KIMI_K2_5;
346
+ }
347
+ if (m.includes("qwen")) {
348
+ if (m.includes("3.8") || m.includes("3.7"))
349
+ return PRICING_ZEN_QWEN_37_MAX;
350
+ return PRICING_ZEN_QWEN_37_MAX;
351
+ }
352
+ if (m.includes("deepseek")) {
353
+ if (m.includes("flash"))
354
+ return PRICING_ZEN_DEEPSEEK_V4_FLASH;
355
+ return PRICING_ZEN_DEEPSEEK_V4_PRO;
356
+ }
357
+ if (m.includes("mimo"))
358
+ return PRICING_ZEN_MIMO;
359
+ if (m.includes("muse") && m.includes("spark"))
360
+ return PRICING_ZEN_MUSE_SPARK;
361
+ if (m.includes("gemini")) {
362
+ if (m.includes("3.7"))
363
+ return PRICING_GEMINI_37_FLASH;
364
+ if (m.includes("3.6"))
365
+ return PRICING_GEMINI_36_FLASH;
366
+ if (m.includes("3.5")) {
367
+ if (m.includes("lite"))
368
+ return PRICING_GEMINI_35_FLASH_LITE;
369
+ return PRICING_GEMINI_35_FLASH;
370
+ }
371
+ if (m.includes("3.1")) {
372
+ if (m.includes("lite"))
373
+ return PRICING_GEMINI_31_FLASH_LITE;
374
+ if (m.includes("pro"))
375
+ return PRICING_GEMINI_31_PRO;
376
+ return PRICING_GEMINI_31_PRO;
377
+ }
378
+ if (m.includes("flash")) {
379
+ if (m.includes("lite")) {
380
+ if (m.includes("2.5"))
381
+ return PRICING_GEMINI_25_FLASH_LITE;
382
+ if (m.includes("2.0") || m.includes("2-0"))
383
+ return PRICING_GEMINI_20_FLASH;
384
+ return PRICING_GEMINI_25_FLASH_LITE;
385
+ }
386
+ if (m.includes("2.0") || m.includes("2-0"))
387
+ return PRICING_GEMINI_20_FLASH;
388
+ if (m.includes("3"))
389
+ return PRICING_GEMINI_36_FLASH;
390
+ return PRICING_GEMINI_25_FLASH;
391
+ }
392
+ if (m.includes("pro")) {
393
+ if (m.includes("3"))
394
+ return PRICING_GEMINI_31_PRO;
395
+ if (m.includes("2.5") || m.includes("2-5"))
396
+ return PRICING_GEMINI_25_PRO;
397
+ return PRICING_GEMINI_15_PRO;
398
+ }
399
+ return PRICING_GEMINI_25_FLASH;
400
+ }
401
+ return undefined;
402
+ }
403
+ export function costForTokens(totals, pricing) {
404
+ const inputCost = (totals.input * pricing.input) / 1_000_000;
405
+ const outputCost = (totals.output * pricing.output) / 1_000_000;
406
+ const reasoningCost = (totals.reasoning * pricing.reasoning) / 1_000_000;
407
+ const cacheReadCost = (totals.cacheRead * pricing.cacheRead) / 1_000_000;
408
+ const cacheWriteCost = (totals.cacheWrite * pricing.cacheWrite) / 1_000_000;
409
+ const total = inputCost + outputCost + reasoningCost + cacheReadCost + cacheWriteCost;
410
+ return Math.round(total * 1_000_000) / 1_000_000;
411
+ }
412
+ export function estimatedCost(totals, model) {
413
+ const pricing = pricingForModel(model);
414
+ if (pricing === undefined)
415
+ return undefined;
416
+ return costForTokens(totals, pricing);
417
+ }
418
+ export function estimatedCostForBreakdowns(breakdowns, strict = true) {
419
+ let total = 0;
420
+ for (const item of breakdowns) {
421
+ const pricing = pricingForModel(item.name);
422
+ if (pricing === undefined) {
423
+ if (strict)
424
+ return undefined;
425
+ continue;
426
+ }
427
+ total += costForTokens(item.totals, pricing);
428
+ }
429
+ return Math.round(total * 1_000_000) / 1_000_000;
430
+ }
431
+ export function estimatedCostForBreakdownsPartial(breakdowns) {
432
+ let total = 0;
433
+ for (const item of breakdowns) {
434
+ const pricing = pricingForModel(item.name);
435
+ if (pricing === undefined)
436
+ continue;
437
+ total += costForTokens(item.totals, pricing);
438
+ }
439
+ return Math.round(total * 1_000_000) / 1_000_000;
440
+ }
441
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../../src/pricing/pricing.ts"],"names":[],"mappings":"AAUA,oFAAoF;AACpF,6DAA6D;AAC7D,0DAA0D;AAC1D,kDAAkD;AAClD,gHAAgH;AAChH,oHAAoH;AAEpH,sBAAsB;AACtB,MAAM,YAAY,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAClH,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrH,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACnH,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACnH,MAAM,mBAAmB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACzH,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAClH,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC5H,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9G,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACnH,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAClH,MAAM,mBAAmB,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACnH,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,uEAAuE;AACvE,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1H,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,4BAA4B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAEhI,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAChH,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5H,MAAM,aAAa,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAClH,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,kBAAkB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5H,MAAM,UAAU,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC1G,MAAM,eAAe,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACxH,MAAM,UAAU,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAC/G,MAAM,eAAe,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACxH,MAAM,eAAe,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAEzH,MAAM,qBAAqB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACzH,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1H,MAAM,oBAAoB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAC1H,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5H,MAAM,mBAAmB,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACvH,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1H,MAAM,oBAAoB,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACvH,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAE1H,MAAM,qBAAqB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChI,MAAM,4BAA4B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrI,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChI,MAAM,qBAAqB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACxH,MAAM,4BAA4B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtI,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChI,MAAM,4BAA4B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrI,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACjI,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACjI,MAAM,qBAAqB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAE7H,mEAAmE;AACnE,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChI,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC/H,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACvH,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1H,MAAM,iBAAiB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1H,MAAM,qBAAqB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9H,MAAM,mBAAmB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9H,MAAM,uBAAuB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACjI,MAAM,2BAA2B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrI,MAAM,6BAA6B,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvI,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3H,MAAM,sBAAsB,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAE/H,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AACnD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAEvD,MAAM,aAAa,GAAiC;IAClD,OAAO,EAAE,YAAY;IACrB,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,cAAc,EAAE,YAAY;IAC5B,mBAAmB,EAAE,iBAAiB;IACtC,mBAAmB,EAAE,iBAAiB;IACtC,6CAA6C;IAC7C,gBAAgB,EAAE,gBAAgB;IAClC,kBAAkB,EAAE,iBAAiB;IACrC,wBAAwB,EAAE,iBAAiB;IAC3C,6BAA6B,EAAE,4BAA4B;IAC3D,4BAA4B,EAAE,gBAAgB;IAC9C,sBAAsB,EAAE,gBAAgB;IACxC,qBAAqB,EAAE,iBAAiB;IACxC,qBAAqB,EAAE,iBAAiB;IACxC,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,aAAa;IAC/B,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,aAAa;IAC/B,eAAe,EAAE,mBAAmB;IACpC,sBAAsB,EAAE,mBAAmB;IAC3C,kBAAkB,EAAE,aAAa;IACjC,wBAAwB,EAAE,mBAAmB;IAC7C,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,aAAa;IAC/B,cAAc,EAAE,kBAAkB;IAClC,qBAAqB,EAAE,kBAAkB;IACzC,cAAc,EAAE,kBAAkB;IAClC,qBAAqB,EAAE,kBAAkB;IACzC,kBAAkB,EAAE,aAAa;IACjC,uBAAuB,EAAE,kBAAkB;IAC3C,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,aAAa;IAC/B,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,iBAAiB;IACvC,kBAAkB,EAAE,aAAa;IACjC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,oBAAoB,EAAE,iBAAiB;IACvC,sBAAsB,EAAE,mBAAmB;IAC3C,qBAAqB,EAAE,kBAAkB;IACzC,sBAAsB,EAAE,iBAAiB;IACzC,wBAAwB,EAAE,mBAAmB;IAC7C,uBAAuB,EAAE,kBAAkB;IAC3C,QAAQ,EAAE,aAAa;IACvB,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,aAAa;IAC9B,oBAAoB,EAAE,kBAAkB;IACxC,iBAAiB,EAAE,aAAa;IAChC,sBAAsB,EAAE,kBAAkB;IAC1C,SAAS,EAAE,aAAa;IACxB,cAAc,EAAE,kBAAkB;IAClC,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,aAAa;IAC/B,qBAAqB,EAAE,kBAAkB;IACzC,kBAAkB,EAAE,aAAa;IACjC,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,eAAe;IACjC,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,eAAe;IACjC,gBAAgB,EAAE,eAAe;IACjC,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,qBAAqB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,sBAAsB;IAC1C,6BAA6B,EAAE,qBAAqB;IACpD,2BAA2B,EAAE,qBAAqB;IAClD,2BAA2B,EAAE,sBAAsB;IACnD,wBAAwB,EAAE,oBAAoB;IAC9C,4BAA4B,EAAE,sBAAsB;IACpD,yBAAyB,EAAE,mBAAmB;IAC9C,yBAAyB,EAAE,sBAAsB;IACjD,0BAA0B,EAAE,oBAAoB;IAChD,4BAA4B,EAAE,sBAAsB;IACpD,0BAA0B,EAAE,qBAAqB;IACjD,0BAA0B,EAAE,sBAAsB;IAClD,2BAA2B,EAAE,sBAAsB;IACnD,wBAAwB,EAAE,sBAAsB;IAChD,yBAAyB,EAAE,oBAAoB;IAC/C,2BAA2B,EAAE,sBAAsB;IACnD,gBAAgB,EAAE,qBAAqB;IACvC,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,wBAAwB,EAAE,qBAAqB;IAC/C,gBAAgB,EAAE,uBAAuB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,gBAAgB,EAAE,qBAAqB;IACvC,uBAAuB,EAAE,qBAAqB;IAC9C,yBAAyB,EAAE,qBAAqB;IAChD,yBAAyB,EAAE,qBAAqB;IAChD,2BAA2B,EAAE,uBAAuB;IACpD,2BAA2B,EAAE,uBAAuB;IACpD,4BAA4B;IAC5B,uBAAuB,EAAE,qBAAqB;IAC9C,qBAAqB,EAAE,mBAAmB;IAC1C,yBAAyB,EAAE,uBAAuB;IAClD,yBAAyB,EAAE,uBAAuB;IAClD,6BAA6B,EAAE,2BAA2B;IAC1D,+BAA+B,EAAE,6BAA6B;IAC9D,0BAA0B,EAAE,uBAAuB;IACnD,wBAAwB,EAAE,sBAAsB;IAChD,uBAAuB,EAAE,gBAAgB;IACzC,4BAA4B,EAAE,sBAAsB;IACpD,uBAAuB,EAAE,qBAAqB;IAC9C,+BAA+B;IAC/B,uBAAuB,EAAE,uBAAuB;IAChD,qBAAqB,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,gBAAgB;IAClC,kBAAkB,EAAE,iBAAiB;IACrC,kBAAkB,EAAE,iBAAiB;IACrC,kBAAkB,EAAE,iBAAiB;IACrC,oBAAoB,EAAE,qBAAqB;IAC3C,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,mBAAmB;IACzC,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,0BAA0B,EAAE,2BAA2B;IACvD,4BAA4B,EAAE,6BAA6B;IAC3D,oBAAoB,EAAE,gBAAgB;IACtC,yBAAyB,EAAE,sBAAsB;IACjD,uBAAuB,EAAE,uBAAuB;IAChD,yBAAyB;IACzB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE,qBAAqB;IAC/B,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE,qBAAqB;CACrC,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7F,MAAM,oBAAoB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,oBAAoB,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;IAChE,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAElE,MAAM,CAAC,GAAG,UAAU,CAAC;IAErB,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,mBAAmB,CAAC;QACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,iBAAiB,CAAC;QAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAClD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,iBAAiB,CAAC;QAChD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAClD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,aAAa,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;QACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;QACjD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACzD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAC;IAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC1D,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC1D,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,aAAa,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,eAAe,CAAC;IAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,eAAe,CAAC;IAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,eAAe,CAAC;IAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAExC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAC;QACrD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,mBAAmB,CAAC;YAClD,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,sBAAsB,CAAC;YACrD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,sBAAsB,CAAC;YACnD,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC1D,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,mBAAmB,CAAC;QACjD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;QAC3E,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,6BAA6B,CAAC;QAC9D,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAE7E,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;QACtD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;QACtD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,4BAA4B,CAAC;YAC5D,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,4BAA4B,CAAC;YAC5D,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,qBAAqB,CAAC;YACpD,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO,4BAA4B,CAAC;gBAC3D,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO,uBAAuB,CAAC;gBAC3E,OAAO,4BAA4B,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,uBAAuB,CAAC;YAC3E,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,uBAAuB,CAAC;YACpD,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,qBAAqB,CAAC;YAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,qBAAqB,CAAC;YACzE,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,OAAqB;IACtE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC7D,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzE,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAC5E,MAAM,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;IACtF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,KAAa;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAkF,EAClF,MAAM,GAAG,IAAI;IAEb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,UAAkF;IAElF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACpC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AACnD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "oc2token",
3
+ "version": "0.1.0",
4
+ "description": "A macOS-first OpenCode 2 token usage dashboard CLI",
5
+ "type": "module",
6
+ "bin": {
7
+ "oc2token": "dist/src/cli.js"
8
+ },
9
+ "files": ["dist/src", "README.md", "LICENSE"],
10
+ "engines": {"node": ">=20"},
11
+ "scripts": {
12
+ "build": "tsc -p tsconfig.json",
13
+ "typecheck": "tsc -p tsconfig.json --noEmit",
14
+ "test": "npm run build && node --test $(find dist/test -name '*.test.js' -print)",
15
+ "pack:check": "npm run build && npm pack --dry-run"
16
+ },
17
+ "keywords": ["opencode", "tokens", "terminal", "tui"],
18
+ "license": "MIT",
19
+ "publishConfig": {"access": "public"},
20
+ "dependencies": {
21
+ "@opencode-ai/client": "0.0.0-beta-18866"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^22.0.0",
25
+ "typescript": "^5.7.0"
26
+ }
27
+ }