@azure-id/orc 1.9.1 → 2.0.2

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 (224) hide show
  1. package/CHANGELOG.md +390 -0
  2. package/README-id.md +20 -36
  3. package/README.md +24 -34
  4. package/bin/build-agents.js +206 -109
  5. package/bin/cli.js +760 -62
  6. package/bin/gotcha-import.js +1081 -0
  7. package/bin/gotcha.js +1286 -0
  8. package/bin/graph-query.js +1 -1
  9. package/bin/graph.js +717 -717
  10. package/bin/habit.js +1453 -0
  11. package/bin/mockrun-catalog.js +281 -276
  12. package/bin/onboarding-content.js +4 -4
  13. package/bin/pricing.json +207 -200
  14. package/bin/run-undo.js +398 -0
  15. package/bin/trace-write.js +657 -0
  16. package/bin/verify-contracts.js +527 -81
  17. package/bin/verify-package.js +58 -11
  18. package/bin/webui/api.js +26 -0
  19. package/bin/webui/app.html +239 -232
  20. package/bin/webui/css/00-tokens.css +110 -92
  21. package/bin/webui/css/04-motion.css +249 -152
  22. package/bin/webui/css/06-responsive.css +203 -178
  23. package/bin/webui/css/panels/behaviour.css +205 -0
  24. package/bin/webui/css/panels/knowledge.css +563 -116
  25. package/bin/webui/fixtures/behaviour.js +532 -0
  26. package/bin/webui/fixtures/extra.js +2036 -2036
  27. package/bin/webui/fixtures/hookui.js +5 -5
  28. package/bin/webui/fixtures/index.js +34 -0
  29. package/bin/webui/fixtures/knowledge.js +7 -1
  30. package/bin/webui/fixtures/settings.js +305 -305
  31. package/bin/webui/fixtures/stats.js +16 -0
  32. package/bin/webui/i18n/en/behaviour.json +143 -0
  33. package/bin/webui/i18n/en/knowledge.json +117 -2
  34. package/bin/webui/i18n/en/nav.json +25 -24
  35. package/bin/webui/i18n/en/tour.json +37 -35
  36. package/bin/webui/i18n/id/behaviour.json +143 -0
  37. package/bin/webui/i18n/id/knowledge.json +117 -2
  38. package/bin/webui/i18n/id/nav.json +25 -24
  39. package/bin/webui/i18n/id/tour.json +37 -35
  40. package/bin/webui/js/01-i18n.js +155 -154
  41. package/bin/webui/js/90-tour.js +498 -494
  42. package/bin/webui/js/91-shortcuts.js +126 -126
  43. package/bin/webui/js/99-boot.js +121 -118
  44. package/bin/webui/js/panels/behaviour.js +1022 -0
  45. package/bin/webui/js/panels/knowledge.js +552 -7
  46. package/bin/webui/js/panels/overview.js +13 -4
  47. package/mock-run/INDEX.md +109 -107
  48. package/mock-run/context-combiner.md +100 -100
  49. package/mock-run/gotcha-import.md +118 -0
  50. package/mock-run/habits.md +129 -0
  51. package/mock-run/orc-budget.md +534 -534
  52. package/mock-run/orc-challenge-council.md +262 -262
  53. package/mock-run/orc-quick.md +6 -1
  54. package/mock-run/orc-ultra.md +103 -103
  55. package/package.json +1 -1
  56. package/templates/agents/MODEL-MAPPING.md +49 -49
  57. package/templates/agents/orc-advisor-opus-5-xhigh.md +50 -56
  58. package/templates/agents/orc-analyze-mini-opus-5-med.md +55 -60
  59. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +55 -58
  60. package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
  61. package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
  62. package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
  63. package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
  64. package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
  65. package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
  66. package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
  67. package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
  68. package/templates/agents/orc-claude-writer-opus-4-8-high.md +48 -53
  69. package/templates/agents/orc-claude-writer-opus-5-med.md +48 -55
  70. package/templates/agents/orc-context-combiner-opus-5-high.md +78 -88
  71. package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
  72. package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
  73. package/templates/agents/orc-executor-haiku-4-5.md +14 -6
  74. package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
  75. package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
  76. package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
  77. package/templates/agents/orc-executor-opus-5-high.md +15 -7
  78. package/templates/agents/orc-executor-opus-5-low.md +15 -7
  79. package/templates/agents/orc-executor-opus-5-med.md +15 -7
  80. package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
  81. package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
  82. package/templates/agents/orc-executor-sonnet-5-high.md +14 -6
  83. package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
  84. package/templates/agents/orc-judge-opus-5-xhigh.md +81 -85
  85. package/templates/agents/orc-learn-writer-opus-5-low.md +67 -73
  86. package/templates/agents/orc-pattern-codifier-opus-5-med.md +58 -65
  87. package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
  88. package/templates/agents/orc-planner-mini-opus-5-med.md +4 -7
  89. package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
  90. package/templates/agents/orc-planner-opus-5-med.md +157 -160
  91. package/templates/agents/orc-recon-opus-5-low.md +3 -10
  92. package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
  93. package/templates/agents/orc-retro-opus-5-med.md +8 -10
  94. package/templates/agents/orc-retro-sonnet-5-high.md +6 -7
  95. package/templates/agents/orc-reviewer-opus-5-med.md +96 -60
  96. package/templates/agents/orc-scout-opus-5-low.md +35 -40
  97. package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
  98. package/templates/agents/orc-system-analyst-opus-5-high.md +115 -120
  99. package/templates/agents/orc-test-author-opus-5-med.md +70 -71
  100. package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
  101. package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
  102. package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
  103. package/templates/agents/orc-verifier-opus-5-med.md +77 -69
  104. package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +74 -79
  105. package/templates/agents/orc-wiki-scanner-opus-5-med.md +74 -81
  106. package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
  107. package/templates/commands/orc-analyze.md +13 -21
  108. package/templates/commands/orc-fast.md +10 -15
  109. package/templates/commands/orc-poly.md +12 -21
  110. package/templates/commands/orc-pr-driver.md +11 -30
  111. package/templates/commands/orc-pr-setup.md +10 -31
  112. package/templates/commands/orc-route.md +11 -41
  113. package/templates/commands/orc-test.md +5 -60
  114. package/templates/commands/orc-ultra.md +17 -17
  115. package/templates/commands/orc-verify.md +11 -11
  116. package/templates/hooks/README.md +36 -2
  117. package/templates/hooks/orc-effort-guard.js +178 -178
  118. package/templates/hooks/orc-session-hook.js +264 -0
  119. package/templates/hooks/orc-statusline.js +9 -7
  120. package/templates/skills/_shared/README.md +9 -0
  121. package/templates/skills/_shared/code-graph.md +48 -56
  122. package/templates/skills/_shared/config-precedence.md +200 -198
  123. package/templates/skills/_shared/extra-dispatch.md +1331 -1346
  124. package/templates/skills/_shared/gotchas.md +228 -177
  125. package/templates/skills/_shared/habits.md +101 -0
  126. package/templates/skills/_shared/lane-contract.md +84 -0
  127. package/templates/skills/_shared/opus5-only.md +8 -8
  128. package/templates/skills/_shared/phases/README.md +142 -83
  129. package/templates/skills/_shared/phases/analyst-gates.md +125 -136
  130. package/templates/skills/_shared/phases/execution.md +8 -14
  131. package/templates/skills/_shared/phases/house-rules.md +27 -32
  132. package/templates/skills/_shared/phases/intake.md +127 -133
  133. package/templates/skills/_shared/phases/mock-example.md +46 -56
  134. package/templates/skills/_shared/phases/plan-handoff.md +91 -97
  135. package/templates/skills/_shared/phases/planning.md +7 -17
  136. package/templates/skills/_shared/phases/preflight.md +19 -42
  137. package/templates/skills/_shared/phases/review.md +23 -27
  138. package/templates/skills/_shared/phases/rules.md +18 -42
  139. package/templates/skills/_shared/phases/scoring.md +55 -65
  140. package/templates/skills/_shared/phases/security-checklist.md +46 -50
  141. package/templates/skills/_shared/phases/security.md +45 -55
  142. package/templates/skills/_shared/phases/ship.md +6 -15
  143. package/templates/skills/_shared/phases/stop-resume.md +2 -5
  144. package/templates/skills/_shared/phases/summary.md +73 -48
  145. package/templates/skills/_shared/phases/testgen.md +41 -51
  146. package/templates/skills/_shared/phases/trace-verbs.md +433 -0
  147. package/templates/skills/_shared/phases/trace.md +136 -367
  148. package/templates/skills/_shared/phases/verify.md +62 -70
  149. package/templates/skills/_shared/phases/wave-grouping.md +128 -133
  150. package/templates/skills/_shared/phases/wiki-consult.md +10 -6
  151. package/templates/skills/_shared/read-ladder.md +2 -55
  152. package/templates/skills/_shared/return-validation.md +17 -70
  153. package/templates/skills/_shared/review-slice.md +79 -0
  154. package/templates/skills/_shared/smoke-gate.md +46 -28
  155. package/templates/skills/context-combiner/SKILL.md +16 -45
  156. package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
  157. package/templates/skills/orc/README.md +2 -2
  158. package/templates/skills/orc/SKILL.md +41 -69
  159. package/templates/skills/orc/config.md +9 -9
  160. package/templates/skills/orc/examples/full-run-mock.md +73 -73
  161. package/templates/skills/orc/references/effort-and-mode.md +222 -222
  162. package/templates/skills/orc/references/pattern-gate.md +89 -89
  163. package/templates/skills/orc/references/phases/intake.md +41 -47
  164. package/templates/skills/orc/references/phases/integration.md +13 -19
  165. package/templates/skills/orc/references/preflight-report.md +10 -11
  166. package/templates/skills/orc/references/ultra-mode.md +11 -9
  167. package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
  168. package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
  169. package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
  170. package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
  171. package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
  172. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +35 -76
  173. package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
  174. package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
  175. package/templates/skills/orc/subskills/orc-testgen/SKILL.md +34 -45
  176. package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
  177. package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
  178. package/templates/skills/orc-advisor/SKILL.md +56 -60
  179. package/templates/skills/orc-analyze/SKILL.md +32 -68
  180. package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
  181. package/templates/skills/orc-analyze/schemas/report-audit.md +84 -83
  182. package/templates/skills/orc-analyze/schemas/report-prose.md +64 -63
  183. package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
  184. package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
  185. package/templates/skills/orc-challenge/README.md +142 -142
  186. package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
  187. package/templates/skills/orc-challenge/references/council.md +315 -315
  188. package/templates/skills/orc-challenge/references/intake.md +171 -171
  189. package/templates/skills/orc-claude/SKILL.md +14 -14
  190. package/templates/skills/orc-diy/README.md +174 -143
  191. package/templates/skills/orc-diy/SKILL.md +23 -74
  192. package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
  193. package/templates/skills/orc-diy/references/flow-schema.md +1 -1
  194. package/templates/skills/orc-doc/README.md +229 -229
  195. package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
  196. package/templates/skills/orc-doc/references/chunking.md +527 -527
  197. package/templates/skills/orc-fast/SKILL.md +45 -73
  198. package/templates/skills/orc-judge/SKILL.md +77 -82
  199. package/templates/skills/orc-learn/SKILL.md +14 -14
  200. package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
  201. package/templates/skills/orc-mini/SKILL.md +65 -113
  202. package/templates/skills/orc-pattern/SKILL.md +27 -48
  203. package/templates/skills/orc-poly/SKILL.md +32 -61
  204. package/templates/skills/orc-pr-driver/SKILL.md +25 -51
  205. package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
  206. package/templates/skills/orc-pr-setup/SKILL.md +20 -45
  207. package/templates/skills/orc-quick/README.md +43 -2
  208. package/templates/skills/orc-quick/SKILL.md +76 -107
  209. package/templates/skills/orc-quick/references/dispatch-gate.md +16 -5
  210. package/templates/skills/orc-quick/references/gh-mode.md +48 -1
  211. package/templates/skills/orc-quick/references/look.md +3 -1
  212. package/templates/skills/orc-retro/SKILL.md +19 -18
  213. package/templates/skills/orc-retro/examples/retro-mock.md +1 -1
  214. package/templates/skills/orc-route/SKILL.md +25 -45
  215. package/templates/skills/orc-test/SKILL.md +16 -37
  216. package/templates/skills/orc-verify/SKILL.md +21 -39
  217. package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
  218. package/templates/skills/orc-wait/SKILL.md +156 -163
  219. package/templates/skills/orc-wiki/references/extra.md +1 -1
  220. package/templates/skills/orc-wiki/references/phases/phase-0.md +1 -6
  221. package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
  222. package/templates/skills/orc-wiki/references/phases/phase-2.md +1 -6
  223. package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
  224. package/templates/skills/orc-wiki/references/phases/phase-3c.md +1 -6
package/bin/pricing.json CHANGED
@@ -1,200 +1,207 @@
1
- {
2
- "_readme": [
3
- "Dated price table for `orc budget`. Point `orc config set budget_price_table <path>`",
4
- "at your own copy to override it. Rates are USD per MILLION tokens.",
5
- "",
6
- "Four rates per model, never one: cache reads are usually the LARGEST token",
7
- "count in a run and the CHEAPEST per token, so a blended number hides",
8
- "whichever component is about to bite you. cache_write/cache_read are the",
9
- "multipliers this vendor publishes against `input` (1.25x / 0.1x) written out",
10
- "as absolute rates so nothing has to remember the ratio.",
11
- "",
12
- "`as_of` is load-bearing: a table older than 90 days makes every dollar",
13
- "figure print a staleness warning. Bump the date only when you have checked",
14
- "the published rates.",
15
- "",
16
- "`providers` (v0.50.0) is the same four-rate shape for a NON-CLAUDE endpoint",
17
- "reached through `orc extra`. Every `models` map SHIPS EMPTY, on purpose, and",
18
- "that is not an oversight: between this package's cutoff and any release the",
19
- "lineup moves (DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2), several",
20
- "of these vendors price by PEAK/OFF-PEAK window or by tier, one is",
21
- "subscription-only, and one is a passthrough with a surcharge. A shipped",
22
- "figure that is wrong by 2x is worse than no figure, because a wrong figure",
23
- "gets believed. So ORC ships the MECHANISM and no dollar figure without a",
24
- "rate you put there yourself.",
25
- "",
26
- "Fill one in with `orc extra rates` — it lists every provider/model pair your",
27
- "own traces have actually used, prints the JSON to paste, and says which ones",
28
- "it has no rate for. A pair with no rate reports `usd: null` forever, never a",
29
- "guess and never a family fallback."
30
- ],
31
- "as_of": "2026-08-01",
32
- "currency": "USD",
33
- "unit": "per_million_tokens",
34
- "server_tools": {
35
- "web_search_requests": 0.01,
36
- "web_fetch_requests": 0.0
37
- },
38
- "models": {
39
- "claude-opus-5": {
40
- "input": 15,
41
- "cache_write": 18.75,
42
- "cache_read": 1.5,
43
- "output": 75
44
- },
45
- "claude-opus-4-8": {
46
- "input": 15,
47
- "cache_write": 18.75,
48
- "cache_read": 1.5,
49
- "output": 75
50
- },
51
- "claude-opus-4-7": {
52
- "input": 15,
53
- "cache_write": 18.75,
54
- "cache_read": 1.5,
55
- "output": 75
56
- },
57
- "claude-fable-5": {
58
- "input": 15,
59
- "cache_write": 18.75,
60
- "cache_read": 1.5,
61
- "output": 75
62
- },
63
- "claude-sonnet-5": {
64
- "input": 3,
65
- "cache_write": 3.75,
66
- "cache_read": 0.3,
67
- "output": 15
68
- },
69
- "claude-sonnet-4-6": {
70
- "input": 3,
71
- "cache_write": 3.75,
72
- "cache_read": 0.3,
73
- "output": 15
74
- },
75
- "claude-haiku-4-5": {
76
- "input": 1,
77
- "cache_write": 1.25,
78
- "cache_read": 0.1,
79
- "output": 5
80
- }
81
- },
82
- "families": {
83
- "opus": {
84
- "input": 15,
85
- "cache_write": 18.75,
86
- "cache_read": 1.5,
87
- "output": 75
88
- },
89
- "fable": {
90
- "input": 15,
91
- "cache_write": 18.75,
92
- "cache_read": 1.5,
93
- "output": 75
94
- },
95
- "sonnet": {
96
- "input": 3,
97
- "cache_write": 3.75,
98
- "cache_read": 0.3,
99
- "output": 15
100
- },
101
- "haiku": {
102
- "input": 1,
103
- "cache_write": 1.25,
104
- "cache_read": 0.1,
105
- "output": 5
106
- }
107
- },
108
- "_plans_readme": [
109
- "Quota view. A Pro/Max user does not pay per token — they burn a 5-hour",
110
- "session window and a weekly ceiling. These are WEIGHTED-token capacities",
111
- "(cache reads counted at their 0.1x weight), because that is the unit the",
112
- "forecast can actually produce. They are approximations of a published",
113
- "allowance, not a metered balance: the percentages are a magnitude, and the",
114
- "renderer says so."
115
- ],
116
- "plans": {
117
- "pro": {
118
- "label": "Pro",
119
- "window_weighted_tokens": 900000,
120
- "weekly_weighted_tokens": 9000000
121
- },
122
- "max5": {
123
- "label": "Max 5x",
124
- "window_weighted_tokens": 4500000,
125
- "weekly_weighted_tokens": 45000000
126
- },
127
- "max20": {
128
- "label": "Max 20x",
129
- "window_weighted_tokens": 18000000,
130
- "weekly_weighted_tokens": 180000000
131
- }
132
- },
133
- "context_windows": {
134
- "claude-opus-5": 200000,
135
- "claude-opus-4-8": 200000,
136
- "claude-opus-4-7": 200000,
137
- "claude-fable-5": 200000,
138
- "claude-sonnet-5": 200000,
139
- "claude-sonnet-4-6": 200000,
140
- "claude-haiku-4-5": 200000
141
- },
142
- "providers": {
143
- "_note": "Rates are USD per MILLION tokens, four per model, never one. `models` maps a provider's own model id EXACTLY as the endpoint reports it.",
144
- "deepseek": {
145
- "label": "DeepSeek",
146
- "caveat": "Prices differ by PEAK and OFF-PEAK window, so one number cannot be right for both. Record the window you actually run in.",
147
- "models": {}
148
- },
149
- "zai": {
150
- "label": "Z.ai / GLM",
151
- "caveat": "The current flagship is sold inside a Coding Plan subscription rather than per token, which a per-token table cannot express. Leave it empty and read your invoice.",
152
- "models": {}
153
- },
154
- "moonshot": {
155
- "label": "Moonshot / Kimi",
156
- "caveat": null,
157
- "models": {}
158
- },
159
- "minimax": {
160
- "label": "MiniMax",
161
- "caveat": null,
162
- "models": {}
163
- },
164
- "qwen": {
165
- "label": "Alibaba / Qwen",
166
- "caveat": "Tiered by request size, so a single rate is an average rather than a price.",
167
- "models": {}
168
- },
169
- "mimo": {
170
- "label": "Xiaomi / MiMo",
171
- "caveat": null,
172
- "models": {}
173
- },
174
- "stepfun": {
175
- "label": "StepFun",
176
- "caveat": null,
177
- "models": {}
178
- },
179
- "siliconflow": {
180
- "label": "SiliconFlow",
181
- "caveat": null,
182
- "models": {}
183
- },
184
- "openrouter": {
185
- "label": "OpenRouter",
186
- "caveat": "A PASSTHROUGH: the rate is the upstream provider's, plus a surcharge on credit purchase. It also reroutes between providers by default while preserving the model id, so the model id alone does not identify who you paid.",
187
- "models": {}
188
- },
189
- "ollama": {
190
- "label": "Ollama (local)",
191
- "caveat": "Local inference has no per-token price. Zero here would be true of the API bill and false of the electricity and the hardware, so it is left empty rather than asserted as free.",
192
- "models": {}
193
- },
194
- "custom": {
195
- "label": "Custom endpoint",
196
- "caveat": null,
197
- "models": {}
198
- }
199
- }
200
- }
1
+ {
2
+ "_readme": [
3
+ "Dated price table for `orc budget`. Point `orc config set budget_price_table <path>`",
4
+ "at your own copy to override it. Rates are USD per MILLION tokens.",
5
+ "",
6
+ "Four rates per model, never one: cache reads are usually the LARGEST token",
7
+ "count in a run and the CHEAPEST per token, so a blended number hides",
8
+ "whichever component is about to bite you. cache_write/cache_read are the",
9
+ "multipliers this vendor publishes against `input` (1.25x / 0.1x) written out",
10
+ "as absolute rates so nothing has to remember the ratio.",
11
+ "",
12
+ "`as_of` is load-bearing: a table older than 90 days makes every dollar",
13
+ "figure print a staleness warning. Bump the date only when you have checked",
14
+ "the published rates.",
15
+ "",
16
+ "`providers` (v0.50.0) is the same four-rate shape for a NON-CLAUDE endpoint",
17
+ "reached through `orc extra`. Every `models` map SHIPS EMPTY, on purpose, and",
18
+ "that is not an oversight: between this package's cutoff and any release the",
19
+ "lineup moves (DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2), several",
20
+ "of these vendors price by PEAK/OFF-PEAK window or by tier, one is",
21
+ "subscription-only, and one is a passthrough with a surcharge. A shipped",
22
+ "figure that is wrong by 2x is worse than no figure, because a wrong figure",
23
+ "gets believed. So ORC ships the MECHANISM and no dollar figure without a",
24
+ "rate you put there yourself.",
25
+ "",
26
+ "Fill one in with `orc extra rates` — it lists every provider/model pair your",
27
+ "own traces have actually used, prints the JSON to paste, and says which ones",
28
+ "it has no rate for. A pair with no rate reports `usd: null` forever, never a",
29
+ "guess and never a family fallback."
30
+ ],
31
+ "as_of": "2026-08-01",
32
+ "currency": "USD",
33
+ "unit": "per_million_tokens",
34
+ "server_tools": {
35
+ "web_search_requests": 0.01,
36
+ "web_fetch_requests": 0.0
37
+ },
38
+ "models": {
39
+ "claude-opus-5-5": {
40
+ "input": 4,
41
+ "cache_write": 5,
42
+ "cache_read": 0.2,
43
+ "output": 20
44
+ },
45
+ "claude-opus-5": {
46
+ "input": 15,
47
+ "cache_write": 18.75,
48
+ "cache_read": 1.5,
49
+ "output": 75
50
+ },
51
+ "claude-opus-4-8": {
52
+ "input": 15,
53
+ "cache_write": 18.75,
54
+ "cache_read": 1.5,
55
+ "output": 75
56
+ },
57
+ "claude-opus-4-7": {
58
+ "input": 15,
59
+ "cache_write": 18.75,
60
+ "cache_read": 1.5,
61
+ "output": 75
62
+ },
63
+ "claude-fable-5": {
64
+ "input": 15,
65
+ "cache_write": 18.75,
66
+ "cache_read": 1.5,
67
+ "output": 75
68
+ },
69
+ "claude-sonnet-5": {
70
+ "input": 3,
71
+ "cache_write": 3.75,
72
+ "cache_read": 0.3,
73
+ "output": 15
74
+ },
75
+ "claude-sonnet-4-6": {
76
+ "input": 3,
77
+ "cache_write": 3.75,
78
+ "cache_read": 0.3,
79
+ "output": 15
80
+ },
81
+ "claude-haiku-4-5": {
82
+ "input": 1,
83
+ "cache_write": 1.25,
84
+ "cache_read": 0.1,
85
+ "output": 5
86
+ }
87
+ },
88
+ "families": {
89
+ "opus": {
90
+ "input": 15,
91
+ "cache_write": 18.75,
92
+ "cache_read": 1.5,
93
+ "output": 75
94
+ },
95
+ "fable": {
96
+ "input": 15,
97
+ "cache_write": 18.75,
98
+ "cache_read": 1.5,
99
+ "output": 75
100
+ },
101
+ "sonnet": {
102
+ "input": 3,
103
+ "cache_write": 3.75,
104
+ "cache_read": 0.3,
105
+ "output": 15
106
+ },
107
+ "haiku": {
108
+ "input": 1,
109
+ "cache_write": 1.25,
110
+ "cache_read": 0.1,
111
+ "output": 5
112
+ }
113
+ },
114
+ "_plans_readme": [
115
+ "Quota view. A Pro/Max user does not pay per token — they burn a 5-hour",
116
+ "session window and a weekly ceiling. These are WEIGHTED-token capacities",
117
+ "(cache reads counted at their 0.1x weight), because that is the unit the",
118
+ "forecast can actually produce. They are approximations of a published",
119
+ "allowance, not a metered balance: the percentages are a magnitude, and the",
120
+ "renderer says so."
121
+ ],
122
+ "plans": {
123
+ "pro": {
124
+ "label": "Pro",
125
+ "window_weighted_tokens": 900000,
126
+ "weekly_weighted_tokens": 9000000
127
+ },
128
+ "max5": {
129
+ "label": "Max 5x",
130
+ "window_weighted_tokens": 4500000,
131
+ "weekly_weighted_tokens": 45000000
132
+ },
133
+ "max20": {
134
+ "label": "Max 20x",
135
+ "window_weighted_tokens": 18000000,
136
+ "weekly_weighted_tokens": 180000000
137
+ }
138
+ },
139
+ "context_windows": {
140
+ "claude-opus-5-5": 200000,
141
+ "claude-opus-5": 200000,
142
+ "claude-opus-4-8": 200000,
143
+ "claude-opus-4-7": 200000,
144
+ "claude-fable-5": 200000,
145
+ "claude-sonnet-5": 200000,
146
+ "claude-sonnet-4-6": 200000,
147
+ "claude-haiku-4-5": 200000
148
+ },
149
+ "providers": {
150
+ "_note": "Rates are USD per MILLION tokens, four per model, never one. `models` maps a provider's own model id EXACTLY as the endpoint reports it.",
151
+ "deepseek": {
152
+ "label": "DeepSeek",
153
+ "caveat": "Prices differ by PEAK and OFF-PEAK window, so one number cannot be right for both. Record the window you actually run in.",
154
+ "models": {}
155
+ },
156
+ "zai": {
157
+ "label": "Z.ai / GLM",
158
+ "caveat": "The current flagship is sold inside a Coding Plan subscription rather than per token, which a per-token table cannot express. Leave it empty and read your invoice.",
159
+ "models": {}
160
+ },
161
+ "moonshot": {
162
+ "label": "Moonshot / Kimi",
163
+ "caveat": null,
164
+ "models": {}
165
+ },
166
+ "minimax": {
167
+ "label": "MiniMax",
168
+ "caveat": null,
169
+ "models": {}
170
+ },
171
+ "qwen": {
172
+ "label": "Alibaba / Qwen",
173
+ "caveat": "Tiered by request size, so a single rate is an average rather than a price.",
174
+ "models": {}
175
+ },
176
+ "mimo": {
177
+ "label": "Xiaomi / MiMo",
178
+ "caveat": null,
179
+ "models": {}
180
+ },
181
+ "stepfun": {
182
+ "label": "StepFun",
183
+ "caveat": null,
184
+ "models": {}
185
+ },
186
+ "siliconflow": {
187
+ "label": "SiliconFlow",
188
+ "caveat": null,
189
+ "models": {}
190
+ },
191
+ "openrouter": {
192
+ "label": "OpenRouter",
193
+ "caveat": "A PASSTHROUGH: the rate is the upstream provider's, plus a surcharge on credit purchase. It also reroutes between providers by default while preserving the model id, so the model id alone does not identify who you paid.",
194
+ "models": {}
195
+ },
196
+ "ollama": {
197
+ "label": "Ollama (local)",
198
+ "caveat": "Local inference has no per-token price. Zero here would be true of the API bill and false of the electricity and the hardware, so it is left empty rather than asserted as free.",
199
+ "models": {}
200
+ },
201
+ "custom": {
202
+ "label": "Custom endpoint",
203
+ "caveat": null,
204
+ "models": {}
205
+ }
206
+ }
207
+ }