@azure-id/orc 1.9.0 → 1.9.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.
- package/CHANGELOG.md +202 -0
- package/README-id.md +57 -59
- package/README.md +53 -54
- package/bin/build-agents.js +109 -109
- package/bin/cli.js +262 -58
- package/bin/graph-audit.js +235 -0
- package/bin/graph-extract.js +308 -3
- package/bin/graph-gain.js +23 -3
- package/bin/graph-map.js +9 -1
- package/bin/graph-query.js +152 -10
- package/bin/graph-shard.js +6 -1
- package/bin/graph-signals.js +287 -4
- package/bin/graph.js +717 -658
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/verify-contracts.js +117 -2
- package/bin/verify-package.js +11 -7
- package/bin/webui/css/04-motion.css +162 -152
- package/bin/webui/css/panels/knowledge.css +563 -116
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/hookui.js +5 -5
- package/bin/webui/fixtures/knowledge.js +21 -4
- package/bin/webui/fixtures/settings.js +305 -305
- package/bin/webui/i18n/en/knowledge.json +122 -4
- package/bin/webui/i18n/id/knowledge.json +122 -4
- package/bin/webui/js/panels/knowledge.js +573 -9
- package/bin/webui/js/panels/overview.js +13 -4
- package/mock-run/context-combiner.md +100 -100
- package/mock-run/orc-budget.md +534 -534
- package/mock-run/orc-challenge-council.md +262 -262
- package/mock-run/orc-ultra.md +103 -103
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +43 -43
- package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -56
- package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -60
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -58
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
- package/templates/agents/orc-claude-writer-opus-5-med.md +55 -55
- package/templates/agents/orc-context-combiner-opus-5-high.md +88 -88
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
- package/templates/agents/orc-executor-haiku-4-5.md +2 -1
- package/templates/agents/orc-executor-opus-4-7-high.md +2 -1
- package/templates/agents/orc-executor-opus-4-7-med.md +2 -1
- package/templates/agents/orc-executor-opus-4-8-high.md +2 -1
- package/templates/agents/orc-executor-opus-5-high.md +4 -3
- package/templates/agents/orc-executor-opus-5-low.md +4 -3
- package/templates/agents/orc-executor-opus-5-med.md +4 -3
- package/templates/agents/orc-executor-sonnet-4-6-high.md +2 -1
- package/templates/agents/orc-executor-sonnet-4-6-med.md +2 -1
- package/templates/agents/orc-executor-sonnet-5-high.md +2 -1
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -1
- package/templates/agents/orc-judge-opus-5-xhigh.md +85 -85
- package/templates/agents/orc-learn-writer-opus-5-low.md +73 -73
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -65
- package/templates/agents/orc-planner-mini-opus-5-med.md +4 -4
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +1 -1
- package/templates/agents/orc-planner-opus-5-med.md +160 -160
- package/templates/agents/orc-recon-opus-5-low.md +18 -8
- package/templates/agents/orc-recon-sonnet-4-6-med.md +15 -5
- package/templates/agents/orc-retro-opus-5-med.md +3 -3
- package/templates/agents/orc-reviewer-opus-5-med.md +60 -60
- package/templates/agents/orc-scout-opus-5-low.md +40 -40
- package/templates/agents/orc-system-analyst-opus-5-high.md +120 -120
- package/templates/agents/orc-test-author-opus-5-med.md +71 -71
- package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
- package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
- package/templates/agents/orc-verifier-opus-5-med.md +69 -69
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -81
- package/templates/commands/orc-ultra.md +17 -17
- package/templates/commands/orc-verify.md +11 -11
- package/templates/hooks/README.md +13 -3
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-graph-hook.js +53 -7
- package/templates/hooks/orc-statusline.js +6 -6
- package/templates/skills/_shared/code-graph.md +57 -18
- package/templates/skills/_shared/config-precedence.md +198 -198
- package/templates/skills/_shared/extra-dispatch.md +1346 -1346
- package/templates/skills/_shared/opus5-only.md +8 -8
- package/templates/skills/_shared/phases/analyst-gates.md +136 -136
- package/templates/skills/_shared/phases/execution.md +4 -4
- package/templates/skills/_shared/phases/planning.md +3 -3
- package/templates/skills/_shared/phases/preflight.md +1 -1
- package/templates/skills/_shared/phases/review.md +4 -2
- package/templates/skills/_shared/phases/ship.md +1 -1
- package/templates/skills/_shared/phases/trace.md +3 -2
- package/templates/skills/_shared/read-ladder.md +14 -1
- package/templates/skills/_shared/return-validation.md +1 -1
- package/templates/skills/context-combiner/SKILL.md +1 -1
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +8 -8
- package/templates/skills/orc/config.md +9 -9
- package/templates/skills/orc/examples/full-run-mock.md +73 -73
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc/references/preflight-report.md +2 -2
- package/templates/skills/orc/references/ultra-mode.md +3 -3
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -76
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -45
- package/templates/skills/orc-analyze/SKILL.md +2 -2
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
- package/templates/skills/orc-analyze/schemas/report-audit.md +83 -83
- package/templates/skills/orc-analyze/schemas/report-prose.md +63 -63
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
- package/templates/skills/orc-challenge/README.md +142 -142
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
- package/templates/skills/orc-challenge/references/council.md +315 -315
- package/templates/skills/orc-challenge/references/intake.md +171 -171
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-diy/README.md +143 -143
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-doc/README.md +229 -229
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
- package/templates/skills/orc-doc/references/chunking.md +527 -527
- package/templates/skills/orc-fast/SKILL.md +4 -4
- package/templates/skills/orc-learn/SKILL.md +14 -14
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
- package/templates/skills/orc-mini/SKILL.md +16 -20
- package/templates/skills/orc-mini/references/complexity.md +25 -11
- package/templates/skills/orc-quick/SKILL.md +12 -13
- package/templates/skills/orc-quick/references/gh-mode.md +1 -1
- package/templates/skills/orc-quick/references/look.md +5 -5
- package/templates/skills/orc-verify/SKILL.md +15 -15
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
- package/templates/skills/orc-wiki/references/extra.md +1 -1
|
@@ -36,8 +36,8 @@ const SECTIONS = [
|
|
|
36
36
|
"init merges two guards into .claude/settings.json (non-destructively):",
|
|
37
37
|
" • a PreToolUse effort hard-block (keeps /orc on a capable tier)",
|
|
38
38
|
" • a statusline model warning (❌ ORC WILL DEGRADE on the wrong tier)",
|
|
39
|
-
"Run your MAIN session on Opus 4.8 high (or Opus 5 / Fable 5 at medium+) —",
|
|
40
|
-
"subagents can't exceed it; the top [90,100] band needs an Opus 5 session.",
|
|
39
|
+
"Run your MAIN session on Opus 4.8 high (or Opus 5.5 / Fable 5 at medium+) —",
|
|
40
|
+
"subagents can't exceed it; the top [90,100] band needs an Opus 5.5 session.",
|
|
41
41
|
],
|
|
42
42
|
},
|
|
43
43
|
{
|
|
@@ -54,7 +54,7 @@ const SECTIONS = [
|
|
|
54
54
|
"",
|
|
55
55
|
"Session-tier acceptance (the statusline verdict):",
|
|
56
56
|
" ✔ ORC-ready Opus 4.8 high (the baseline)",
|
|
57
|
-
" 🚀 ORC-boosted Opus 4.8 xhigh/max, or Opus 5 / Fable 5 medium…max",
|
|
57
|
+
" 🚀 ORC-boosted Opus 4.8 xhigh/max, or Opus 5.5 / Fable 5 medium…max",
|
|
58
58
|
" ✖ WILL DEGRADE anything below (wrong model or sub-baseline effort)",
|
|
59
59
|
"",
|
|
60
60
|
"Which one do I type? Start from what you HAVE, not from the lane names:",
|
|
@@ -153,7 +153,7 @@ const SECTIONS = [
|
|
|
153
153
|
title: "⑧ Troubleshooting",
|
|
154
154
|
lines: [
|
|
155
155
|
" \"/orc blocked — required effort not met\"",
|
|
156
|
-
" → switch to high effort (or Opus 5 / Fable 5 at medium+). xhigh/max also pass.",
|
|
156
|
+
" → switch to high effort (or Opus 5.5 / Fable 5 at medium+). xhigh/max also pass.",
|
|
157
157
|
" statusline says \"WILL DEGRADE\"",
|
|
158
158
|
" → wrong model/effort, or a usage window ≥90%. Move to Opus 4.8 high or Opus 5.",
|
|
159
159
|
" \"wiki: UNREGISTERED\"",
|
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":
|
|
41
|
-
"cache_write":
|
|
42
|
-
"cache_read":
|
|
43
|
-
"output":
|
|
44
|
-
},
|
|
45
|
-
"claude-opus-
|
|
46
|
-
"input": 15,
|
|
47
|
-
"cache_write": 18.75,
|
|
48
|
-
"cache_read": 1.5,
|
|
49
|
-
"output": 75
|
|
50
|
-
},
|
|
51
|
-
"claude-opus-4-
|
|
52
|
-
"input": 15,
|
|
53
|
-
"cache_write": 18.75,
|
|
54
|
-
"cache_read": 1.5,
|
|
55
|
-
"output": 75
|
|
56
|
-
},
|
|
57
|
-
"claude-
|
|
58
|
-
"input": 15,
|
|
59
|
-
"cache_write": 18.75,
|
|
60
|
-
"cache_read": 1.5,
|
|
61
|
-
"output": 75
|
|
62
|
-
},
|
|
63
|
-
"claude-
|
|
64
|
-
"input":
|
|
65
|
-
"cache_write":
|
|
66
|
-
"cache_read":
|
|
67
|
-
"output":
|
|
68
|
-
},
|
|
69
|
-
"claude-sonnet-
|
|
70
|
-
"input": 3,
|
|
71
|
-
"cache_write": 3.75,
|
|
72
|
-
"cache_read": 0.3,
|
|
73
|
-
"output": 15
|
|
74
|
-
},
|
|
75
|
-
"claude-
|
|
76
|
-
"input":
|
|
77
|
-
"cache_write":
|
|
78
|
-
"cache_read": 0.
|
|
79
|
-
"output":
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
"input": 15,
|
|
91
|
-
"cache_write": 18.75,
|
|
92
|
-
"cache_read": 1.5,
|
|
93
|
-
"output": 75
|
|
94
|
-
},
|
|
95
|
-
"
|
|
96
|
-
"input":
|
|
97
|
-
"cache_write":
|
|
98
|
-
"cache_read":
|
|
99
|
-
"output":
|
|
100
|
-
},
|
|
101
|
-
"
|
|
102
|
-
"input":
|
|
103
|
-
"cache_write":
|
|
104
|
-
"cache_read": 0.
|
|
105
|
-
"output":
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
"claude-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
"
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
"
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
"
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
"
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
"
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
"
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
"
|
|
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
|
+
}
|
package/bin/verify-contracts.js
CHANGED
|
@@ -1813,7 +1813,7 @@ const CONTRACTS = [
|
|
|
1813
1813
|
binFiles: ["bin/cli.js"],
|
|
1814
1814
|
files: [
|
|
1815
1815
|
"agents/MODEL-MAPPING.md",
|
|
1816
|
-
// v1.8.0 — the graph noter has no Opus 5 variant; under the mode a lane
|
|
1816
|
+
// v1.8.0 — the graph noter has no Opus 5.5 variant; under the mode a lane
|
|
1817
1817
|
// skips notes. Both the agent and the canonical contract say so.
|
|
1818
1818
|
"agents/orc-graph-noter-sonnet-4-6-med.md",
|
|
1819
1819
|
"skills/_shared/code-graph.md",
|
|
@@ -2741,6 +2741,75 @@ const CONTRACTS = [
|
|
|
2741
2741
|
"skills/orc-fast/SKILL.md",
|
|
2742
2742
|
],
|
|
2743
2743
|
},
|
|
2744
|
+
// ── v1.9.1 W3 — the brief answer, and the lines the CLI now computes ──
|
|
2745
|
+
{
|
|
2746
|
+
// Every `--json` read a lane makes carries it, and the CLI is the only
|
|
2747
|
+
// thing that can answer it. A rename that reached one side and not the
|
|
2748
|
+
// other would leave every lane asking for a flag nothing knows.
|
|
2749
|
+
name: "graph brief answer (v1.9.1 — --brief on every --json read a lane makes)",
|
|
2750
|
+
token: "--brief",
|
|
2751
|
+
files: [
|
|
2752
|
+
"agents/orc-executor-haiku-4-5.md",
|
|
2753
|
+
"agents/orc-executor-opus-4-7-high.md",
|
|
2754
|
+
"agents/orc-executor-opus-4-7-med.md",
|
|
2755
|
+
"agents/orc-executor-opus-4-8-high.md",
|
|
2756
|
+
"agents/orc-executor-opus-5-high.md",
|
|
2757
|
+
"agents/orc-executor-opus-5-low.md",
|
|
2758
|
+
"agents/orc-executor-opus-5-med.md",
|
|
2759
|
+
"agents/orc-executor-sonnet-4-6-high.md",
|
|
2760
|
+
"agents/orc-executor-sonnet-4-6-med.md",
|
|
2761
|
+
"agents/orc-executor-sonnet-5-high.md",
|
|
2762
|
+
"agents/orc-recon-opus-5-low.md",
|
|
2763
|
+
"agents/orc-recon-sonnet-4-6-med.md",
|
|
2764
|
+
"skills/_shared/code-graph.md",
|
|
2765
|
+
"skills/_shared/phases/execution.md",
|
|
2766
|
+
"skills/_shared/phases/planning.md",
|
|
2767
|
+
"skills/_shared/phases/preflight.md",
|
|
2768
|
+
// review.md names it to say where it is deliberately NOT used.
|
|
2769
|
+
"skills/_shared/phases/review.md",
|
|
2770
|
+
"skills/_shared/phases/ship.md",
|
|
2771
|
+
// trace.md names the call each trace verb is copied from.
|
|
2772
|
+
"skills/_shared/phases/trace.md",
|
|
2773
|
+
"skills/_shared/read-ladder.md",
|
|
2774
|
+
"skills/orc/SKILL.md",
|
|
2775
|
+
"skills/orc-fast/SKILL.md",
|
|
2776
|
+
"skills/orc-mini/SKILL.md",
|
|
2777
|
+
"skills/orc-mini/references/complexity.md",
|
|
2778
|
+
"skills/orc-quick/SKILL.md",
|
|
2779
|
+
"skills/orc-quick/references/gh-mode.md",
|
|
2780
|
+
"skills/orc-quick/references/look.md",
|
|
2781
|
+
],
|
|
2782
|
+
binFiles: ["bin/cli.js"],
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
// The blast radius is the CLI's line now. A lane that assembled it by hand
|
|
2786
|
+
// would drift from the CLI's grammar the first time either side moved.
|
|
2787
|
+
name: "graph blast line (v1.9.1 — changes computes the blast radius, the lane prints it)",
|
|
2788
|
+
token: "blast_line",
|
|
2789
|
+
files: ["skills/orc-mini/SKILL.md", "skills/orc-quick/SKILL.md"],
|
|
2790
|
+
binFiles: ["bin/graph-signals.js"],
|
|
2791
|
+
},
|
|
2792
|
+
{
|
|
2793
|
+
// Mini's one call. The flag, the prose that explains it and the engine that
|
|
2794
|
+
// answers it move together or not at all.
|
|
2795
|
+
name: "graph complexity read (v1.9.1 — impact --complexity, one call, one line)",
|
|
2796
|
+
token: "--complexity",
|
|
2797
|
+
files: [
|
|
2798
|
+
"skills/_shared/code-graph.md",
|
|
2799
|
+
"skills/_shared/phases/trace.md",
|
|
2800
|
+
"skills/orc-mini/SKILL.md",
|
|
2801
|
+
"skills/orc-mini/references/complexity.md",
|
|
2802
|
+
],
|
|
2803
|
+
binFiles: ["bin/cli.js"],
|
|
2804
|
+
},
|
|
2805
|
+
{
|
|
2806
|
+
// The four thresholds live in ONE place. The prose quotes them by NAME, so
|
|
2807
|
+
// a rename that reaches only the engine fails here.
|
|
2808
|
+
name: "graph complexity thresholds (v1.9.1 — the constants the prose quotes)",
|
|
2809
|
+
token: "COMPLEXITY_CALLER_FILES",
|
|
2810
|
+
files: ["skills/orc-mini/references/complexity.md"],
|
|
2811
|
+
binFiles: ["bin/graph-signals.js"],
|
|
2812
|
+
},
|
|
2744
2813
|
// ── v1.8.2 W3 — the delivery flags (D1 · D2 · D3 · D5) ────────────────
|
|
2745
2814
|
{
|
|
2746
2815
|
// The slice call. A rename must reach the contract, the phase file that
|
|
@@ -2773,6 +2842,43 @@ const CONTRACTS = [
|
|
|
2773
2842
|
],
|
|
2774
2843
|
binFiles: ["bin/cli.js"],
|
|
2775
2844
|
},
|
|
2845
|
+
// ── v1.9.1 W5 — delivery where the paid reads are (R1 · R4) ─────────────
|
|
2846
|
+
{
|
|
2847
|
+
// The call sites WITH the card. The recon agents ask for it, the ladder
|
|
2848
|
+
// and the contract say what it may never print, and the CLI answers it.
|
|
2849
|
+
name: "graph callers source (v1.9.1 — ctx --callers-source, six lines per confident call site)",
|
|
2850
|
+
token: "--callers-source",
|
|
2851
|
+
files: [
|
|
2852
|
+
"agents/orc-recon-opus-5-low.md",
|
|
2853
|
+
"agents/orc-recon-sonnet-4-6-med.md",
|
|
2854
|
+
"skills/_shared/code-graph.md",
|
|
2855
|
+
"skills/_shared/read-ladder.md",
|
|
2856
|
+
],
|
|
2857
|
+
binFiles: ["bin/cli.js", "bin/graph-query.js"],
|
|
2858
|
+
},
|
|
2859
|
+
{
|
|
2860
|
+
// Where a language server is asked. Every reader that is told to use it
|
|
2861
|
+
// names the field, and the engine is the only thing that computes it.
|
|
2862
|
+
name: "graph LSP anchor (v1.9.1 — lsp_at on a symbol card: file, line, 1-based character)",
|
|
2863
|
+
token: "lsp_at",
|
|
2864
|
+
files: [
|
|
2865
|
+
"agents/orc-executor-haiku-4-5.md",
|
|
2866
|
+
"agents/orc-executor-opus-4-7-high.md",
|
|
2867
|
+
"agents/orc-executor-opus-4-7-med.md",
|
|
2868
|
+
"agents/orc-executor-opus-4-8-high.md",
|
|
2869
|
+
"agents/orc-executor-opus-5-high.md",
|
|
2870
|
+
"agents/orc-executor-opus-5-low.md",
|
|
2871
|
+
"agents/orc-executor-opus-5-med.md",
|
|
2872
|
+
"agents/orc-executor-sonnet-4-6-high.md",
|
|
2873
|
+
"agents/orc-executor-sonnet-4-6-med.md",
|
|
2874
|
+
"agents/orc-executor-sonnet-5-high.md",
|
|
2875
|
+
"agents/orc-recon-opus-5-low.md",
|
|
2876
|
+
"agents/orc-recon-sonnet-4-6-med.md",
|
|
2877
|
+
"skills/_shared/code-graph.md",
|
|
2878
|
+
"skills/_shared/read-ladder.md",
|
|
2879
|
+
],
|
|
2880
|
+
binFiles: ["bin/graph-query.js"],
|
|
2881
|
+
},
|
|
2776
2882
|
// ── v1.9.0 — the lean lanes reproduce before they fix ───────────────────
|
|
2777
2883
|
{
|
|
2778
2884
|
// The slice field that makes a defect entry show the bug RED first. It is
|
|
@@ -2943,7 +3049,7 @@ const CONTRACTS = [
|
|
|
2943
3049
|
{
|
|
2944
3050
|
// The only notes writer, dispatched BY NAME. An unnamed dispatch cannot
|
|
2945
3051
|
// enforce the Sonnet 4.6 pin and is invisible to the trace hook.
|
|
2946
|
-
name: "graph noter (v1.8.0 — dispatched by name, no Opus 5 variant)",
|
|
3052
|
+
name: "graph noter (v1.8.0 — dispatched by name, no Opus 5.5 variant)",
|
|
2947
3053
|
token: "orc-graph-noter-sonnet-4-6-med",
|
|
2948
3054
|
files: [
|
|
2949
3055
|
"agents/MODEL-MAPPING.md",
|
|
@@ -4562,6 +4668,15 @@ for (const b of BUDGETS) {
|
|
|
4562
4668
|
// one. design-05 §6.3: a call one lane makes belongs to that lane.
|
|
4563
4669
|
for (const [id, c] of Object.entries(CALLS)) {
|
|
4564
4670
|
const want = [...(measured[prefixOf(c.cmd)] || new Set())].sort();
|
|
4671
|
+
// v1.9.1: a row with `lanes: []` is a USER command — catalogued so
|
|
4672
|
+
// `orc lane calls --all` documents it, and asserted the OTHER way round:
|
|
4673
|
+
// no lane may name it. `orc graph audit` is the first one. The assertion is
|
|
4674
|
+
// stronger than the >= 2 rule, not an exception to it.
|
|
4675
|
+
if (Array.isArray(c.lanes) && c.lanes.length === 0) {
|
|
4676
|
+
if (want.length)
|
|
4677
|
+
errs.push(`${id}: a user command, and ${want.join(", ")} name it — remove the call, or give the row its lanes`);
|
|
4678
|
+
continue;
|
|
4679
|
+
}
|
|
4565
4680
|
if (want.length < 2)
|
|
4566
4681
|
errs.push(
|
|
4567
4682
|
`${id}: only ${want.length} lane names it — a call one lane makes belongs to that lane and is not catalogued`
|