@azure-id/orc 1.9.1 → 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 +69 -0
- package/README-id.md +38 -39
- package/README.md +36 -35
- package/bin/build-agents.js +109 -109
- package/bin/cli.js +35 -33
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/verify-contracts.js +2 -2
- package/bin/verify-package.js +7 -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/settings.js +305 -305
- package/bin/webui/i18n/en/knowledge.json +117 -2
- package/bin/webui/i18n/id/knowledge.json +117 -2
- package/bin/webui/js/panels/knowledge.js +552 -7
- 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-opus-5-high.md +2 -2
- package/templates/agents/orc-executor-opus-5-low.md +2 -2
- package/templates/agents/orc-executor-opus-5-med.md +2 -2
- 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 +3 -3
- 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 +2 -2
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-statusline.js +6 -6
- package/templates/skills/_shared/code-graph.md +1 -1
- 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/review.md +1 -1
- package/templates/skills/_shared/phases/trace.md +1 -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 +7 -7
- 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 +1 -1
- 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 +3 -3
- 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
package/bin/cli.js
CHANGED
|
@@ -1067,6 +1067,8 @@ function upgrade() {
|
|
|
1067
1067
|
// ---------------------------------------------------------------------------
|
|
1068
1068
|
|
|
1069
1069
|
const KNOWN_MODELS = [
|
|
1070
|
+
"claude-opus-5-5",
|
|
1071
|
+
// Kept so a config written before v1.9.2 still validates.
|
|
1070
1072
|
"claude-opus-5",
|
|
1071
1073
|
"claude-opus-4-8",
|
|
1072
1074
|
"claude-opus-4-7",
|
|
@@ -1253,7 +1255,7 @@ const CONFIG_FAMILIES = {
|
|
|
1253
1255
|
// without being a CONFIG_META key, because where it sits in the
|
|
1254
1256
|
// precedence is a fact even though `orc config set` refuses to write it.
|
|
1255
1257
|
registry_less: true,
|
|
1256
|
-
shadow_note: "shadowed by {by} — executors use the fixed 2-band Opus 5 ladder",
|
|
1258
|
+
shadow_note: "shadowed by {by} — executors use the fixed 2-band Opus 5.5 ladder",
|
|
1257
1259
|
},
|
|
1258
1260
|
{ prio: "P3", key: null, terminal: "the shipped score→model table" },
|
|
1259
1261
|
],
|
|
@@ -1440,7 +1442,7 @@ const CONFIG_META = [
|
|
|
1440
1442
|
// decision with a recorded reason (the /orc-pact retirement rule).
|
|
1441
1443
|
{ key: "extra_demote_after", def: 2, tier: "common", answers: [{ family: "extra", prio: "P2", mode: "replace" }], gated_by: "extra_enabled", lanes: [], validate: vInt(0), options: [0, 2, 3, 5], desc: "Consecutive `stalled` dispatches on ONE profile, inside one run, before that profile is DEMOTED to the bottom of the ladder for the rest of the run — so `opus5_only` (or the shipped score table) becomes the effective P0 and the work stays on Claude. Only `stalled` counts: a 401 or a rate limit has its own answer (`extra_on_failure`, the vault, `extra_resume`), and demoting on one would hide a credential problem behind a routing change. A resume of the same stalled attempt is the SAME stall, never a second one. A demotion is RUN state — it never writes your config — it is ANNOUNCED before the next dispatch, and it is never auto-promoted back: `orc extra promote <run> --reason \"<why>\"`. 0 turns this clock off and leaves only extra_demote_stale_min." },
|
|
1442
1444
|
{ key: "extra_demote_stale_min", def: 20, tier: "common", answers: [{ family: "extra", prio: "P2", mode: "replace" }], gated_by: "extra_enabled", lanes: [], validate: vInt(0), options: [0, 10, 20, 45], desc: "Minutes a LIVE foreign attempt may show no observable progress before its profile is demoted. This is a different question from `extra_stall_s`, which stops ONE dispatch after 180s of silence: this clock is about the RUN — two workers in flight, both quiet, and a wave that is going nowhere — so the two have their own budgets and their own off values and neither is a simplification of the other. It reads the journal's own progress file on disk, never a remembered fact. 0 turns this clock off and leaves only extra_demote_after." },
|
|
1443
|
-
{ key: "opus5_only", def: false, tier: "common", answers: [{ family: "executor-band", prio: "P1", mode: "replace" }, { family: "fixed-role-model", prio: "P1", mode: "replace" }], lanes: ["orc", "orc-analyze", "orc-challenge", "orc-claude", "orc-diy", "orc-doc", "orc-fast", "orc-mini", "orc-pattern", "orc-quick", "orc-retro", "orc-wiki"], validate: vEnum("true", "false"), options: ["true", "false"], desc: "EVERY dispatched role uses ONE model — Opus 5 — with EFFORT as the cost dial (executors: [0,40) low · [40,80) medium · [80,100] high; each fixed role its own pinned effort). Deep SWE-benchmark work on cost vs efficiency across Claude models finds a single Opus 5 agent with the effort ladder the most efficient setup. It FORCES: while on it outranks a hand-written rubric_bands_override. Needs an Opus 5 main session or EVERY dispatch silently downgrades. Excludes the Haiku trace writer and orc-diy (compile-owned)." },
|
|
1445
|
+
{ key: "opus5_only", def: false, tier: "common", answers: [{ family: "executor-band", prio: "P1", mode: "replace" }, { family: "fixed-role-model", prio: "P1", mode: "replace" }], lanes: ["orc", "orc-analyze", "orc-challenge", "orc-claude", "orc-diy", "orc-doc", "orc-fast", "orc-mini", "orc-pattern", "orc-quick", "orc-retro", "orc-wiki"], validate: vEnum("true", "false"), options: ["true", "false"], desc: "EVERY dispatched role uses ONE model — Opus 5.5 — with EFFORT as the cost dial (executors: [0,40) low · [40,80) medium · [80,100] high; each fixed role its own pinned effort). Deep SWE-benchmark work on cost vs efficiency across Claude models finds a single Opus 5.5 agent with the effort ladder the most efficient setup. It FORCES: while on it outranks a hand-written rubric_bands_override. Needs an Opus 5.5 main session or EVERY dispatch silently downgrades. Excludes the Haiku trace writer and orc-diy (compile-owned)." },
|
|
1444
1446
|
// --- v0.46.0 — the six new lanes ------------------------------------------
|
|
1445
1447
|
{ key: "pact_gate", def: "warn", tier: "common", answers: [{ family: "pact", prio: "P2", mode: "replace" }], lanes: ["orc", "orc-pact"], validate: vEnum("off", "warn"), options: ["off", "warn"], desc: "Invariant ledger at Phase 1 + planning: warn = print the one pact line and inject a DRIFTED/BROKEN promise whose anchors intersect the plan's declared files as a planner constraint; off = nothing. NEVER blocks — a promise is advice with a receipt, not a gate. See /orc-pact." },
|
|
1446
1448
|
{ key: "pact_recheck_on_verify", def: "true", tier: "common", answers: [{ family: "pact", prio: "P2", mode: "replace" }], lanes: ["orc", "orc-pact"], validate: vEnum("true", "false"), options: ["true", "false"], desc: "Phase 6: re-run the cheap checks for ONLY the invariants the change touched (`orc pact check`), so a promise that just leaked is caught in the run that broke it." },
|
|
@@ -1523,7 +1525,7 @@ const LEGACY_KEYS = {
|
|
|
1523
1525
|
// So `config list` prints them, `config list --json` carries them, and
|
|
1524
1526
|
// `config set` refuses them BY NAME instead of with a generic unknown-key list.
|
|
1525
1527
|
const RETIRED_KEYS = {
|
|
1526
|
-
fable5_enabled: { removed_in: "1.0.0", why: "the Fable 5 role override was removed — every role dispatches its shipped Claude agent, or the Opus 5 variant under opus5_only" },
|
|
1528
|
+
fable5_enabled: { removed_in: "1.0.0", why: "the Fable 5 role override was removed — every role dispatches its shipped Claude agent, or the Opus 5.5 variant under opus5_only" },
|
|
1527
1529
|
fable5_roles: { removed_in: "1.0.0", why: "the Fable 5 role override was removed" },
|
|
1528
1530
|
fable5_effort: { removed_in: "1.0.0", why: "the Fable 5 role override was removed" },
|
|
1529
1531
|
};
|
|
@@ -2082,7 +2084,7 @@ function shadowReason(key, map, claudeDir) {
|
|
|
2082
2084
|
//
|
|
2083
2085
|
// v1.0.0 W4 — TWO BANDS, not three, and the same 90 edge as the default table's
|
|
2084
2086
|
// top two rows (D13). That symmetry is the point: once the default table's high
|
|
2085
|
-
// end is already Opus 5 with effort as the dial, the forcing mode differs from
|
|
2087
|
+
// end is already Opus 5.5 with effort as the dial, the forcing mode differs from
|
|
2086
2088
|
// it only BELOW 65, so a third band here would be a distinction the default
|
|
2087
2089
|
// table stopped making.
|
|
2088
2090
|
//
|
|
@@ -2128,7 +2130,7 @@ function scoreTableJson(map, claudeDir) {
|
|
|
2128
2130
|
// > the default 6-band table
|
|
2129
2131
|
//
|
|
2130
2132
|
// Extra is an OVERLAY, not a replacement, which is what makes "cheap grunt
|
|
2131
|
-
// work goes to DeepSeek, hard work stays on Opus 5" a two-command setup
|
|
2133
|
+
// work goes to DeepSeek, hard work stays on Opus 5.5" a two-command setup
|
|
2132
2134
|
// rather than a full table rewrite. `active` can therefore read as a
|
|
2133
2135
|
// COMPOSITE — because the truth is a composite, and a single word would be
|
|
2134
2136
|
// a lie about what the next dispatch will do.
|
|
@@ -2373,7 +2375,7 @@ function extraLegacyRoleWarn(value) {
|
|
|
2373
2375
|
|
|
2374
2376
|
// A shadowed setting must never be silent — the v0.36.0 rule, applied to a
|
|
2375
2377
|
// shadow that runs BOTH WAYS. Turning on opus5_only while route rows exist
|
|
2376
|
-
// does not give you the Opus 5 ladder everywhere, and turning on Extra does
|
|
2378
|
+
// does not give you the Opus 5.5 ladder everywhere, and turning on Extra does
|
|
2377
2379
|
// not take the Claude table away; saying either would be wrong. So name the
|
|
2378
2380
|
// ranges, which is the only statement that is true from both sides.
|
|
2379
2381
|
function extraShadowNotice(claudeDir) {
|
|
@@ -2434,17 +2436,17 @@ function opus5Notice(on, claudeDir) {
|
|
|
2434
2436
|
console.log(
|
|
2435
2437
|
"\n " + ui.color.bold("Opus-5-only dispatch is now ACTIVE — for EVERY role, not just executors.") + "\n" +
|
|
2436
2438
|
"\n Why: deep SWE-benchmark work on cost vs efficiency across Claude models finds a\n" +
|
|
2437
|
-
" single Opus 5 agent, with the EFFORT ladder as the cost dial, the most efficient\n" +
|
|
2439
|
+
" single Opus 5.5 agent, with the EFFORT ladder as the cost dial, the most efficient\n" +
|
|
2438
2440
|
" configuration. You trade model-class variety for effort variety.\n" +
|
|
2439
2441
|
"\n Scored executors (/orc + /orc-ultra):\n\n" +
|
|
2440
2442
|
ladderTable(OPUS5_SCORE_TABLE) +
|
|
2441
2443
|
"\n Fixed roles now dispatched instead of their defaults:\n\n" + roleRows + "\n" +
|
|
2442
|
-
"\n Already Opus 5, unchanged: analyst · planner · reviewer · verifier · test-author\n" +
|
|
2444
|
+
"\n Already Opus 5.5, unchanged: analyst · planner · reviewer · verifier · test-author\n" +
|
|
2443
2445
|
" · combiner · learn-writer · advisor · judge.\n" +
|
|
2444
2446
|
" NEVER forced: orc-trace-writer-haiku-4-5 (it transcribes a packet, no reasoning)\n" +
|
|
2445
2447
|
" and orc-diy (its table is compile-owned — re-run `orc diy compile` to change it).\n" +
|
|
2446
2448
|
"\n " + ui.mark.warn("Tier requirement — read this one:") + "\n" +
|
|
2447
|
-
" Today only the [90,100] executor band needs an Opus 5 main session. With this ON,\n" +
|
|
2449
|
+
" Today only the [90,100] executor band needs an Opus 5.5 main session. With this ON,\n" +
|
|
2448
2450
|
" EVERY dispatch does. A subagent can never outrank the main session, so on a lower\n" +
|
|
2449
2451
|
" session every role silently falls back to the session model and the tier-honesty\n" +
|
|
2450
2452
|
" rule reports a downgrade on EVERY return instead of occasionally. Hooks cannot\n" +
|
|
@@ -2860,17 +2862,17 @@ const LANE_INERT = {
|
|
|
2860
2862
|
{ key: "extra_fallback_agent", reason: "re-opening the gate IS the ask, so a second menu composed from a config key would be the same question twice in different words" },
|
|
2861
2863
|
],
|
|
2862
2864
|
"orc-challenge": [
|
|
2863
|
-
{ key: "opus5_only", reason: "every agent in this lane is already claude-opus-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2865
|
+
{ key: "opus5_only", reason: "every agent in this lane is already claude-opus-5-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2864
2866
|
],
|
|
2865
2867
|
"orc-doc": [
|
|
2866
|
-
{ key: "opus5_only", reason: "both agents in this lane are already claude-opus-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2868
|
+
{ key: "opus5_only", reason: "both agents in this lane are already claude-opus-5-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2867
2869
|
],
|
|
2868
|
-
// v1.5.0 — both agents in this lane ship as claude-opus-5, and the
|
|
2870
|
+
// v1.5.0 — both agents in this lane ship as claude-opus-5-5, and the
|
|
2869
2871
|
// interpreter's `low` is a MEASUREMENT choice rather than a cost one: a
|
|
2870
2872
|
// harder-thinking interpreter reasons its way to why a leaked stack trace is
|
|
2871
2873
|
// probably fine in staging, which is exactly the gap it exists to find.
|
|
2872
2874
|
"orc-test": [
|
|
2873
|
-
{ key: "opus5_only", reason: "both agents in this lane are already claude-opus-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2875
|
+
{ key: "opus5_only", reason: "both agents in this lane are already claude-opus-5-5, so this is a no-op — the lane is unaffected, not exempt" },
|
|
2874
2876
|
],
|
|
2875
2877
|
// v1.1.0 W2 — this lane DISPATCHES NOTHING. A detached command does the
|
|
2876
2878
|
// waiting, so every family that answers "which model runs this" has no work
|
|
@@ -3145,7 +3147,7 @@ function laneAnnounce(lane, map, claudeDir, families) {
|
|
|
3145
3147
|
out.push(
|
|
3146
3148
|
off
|
|
3147
3149
|
? `opus5_only: ON, and INERT in this lane — ${off.reason}`
|
|
3148
|
-
: "opus5_only: ON — every dispatched role uses Opus 5, with effort as the only cost dial"
|
|
3150
|
+
: "opus5_only: ON — every dispatched role uses Opus 5.5, with effort as the only cost dial"
|
|
3149
3151
|
);
|
|
3150
3152
|
}
|
|
3151
3153
|
if (isTrue(map.extra_enabled)) {
|
|
@@ -4982,7 +4984,7 @@ const sha256 = (s) => crypto.createHash("sha256").update(s).digest("hex");
|
|
|
4982
4984
|
// The tier-clip roster. It must contain EVERY agent the default table names —
|
|
4983
4985
|
// `diyScoreTable()` looks each row's agent up here, so a table row naming an
|
|
4984
4986
|
// agent this map does not know is a crash, not a fallback. v1.0.0 W4 added the
|
|
4985
|
-
// two Opus 5 rows for exactly that reason.
|
|
4987
|
+
// two Opus 5.5 rows for exactly that reason.
|
|
4986
4988
|
//
|
|
4987
4989
|
// It also feeds `fixed_executor`'s option list, so every entry here is offerable
|
|
4988
4990
|
// — which is what keeps the four agents no band names reachable (D14).
|
|
@@ -5014,10 +5016,10 @@ const DIY_TIERS = {
|
|
|
5014
5016
|
"opus-4-8-high": { model: 5, effort: 2, modelId: "claude-opus-4-8", effortName: "high" },
|
|
5015
5017
|
"opus-4-8-xhigh": { model: 5, effort: 3, modelId: "claude-opus-4-8", effortName: "xhigh" },
|
|
5016
5018
|
"opus-4-8-max": { model: 5, effort: 4, modelId: "claude-opus-4-8", effortName: "max" },
|
|
5017
|
-
"opus-5-med": { model: 6, effort: 1, modelId: "claude-opus-5", effortName: "medium" },
|
|
5018
|
-
"opus-5-high": { model: 6, effort: 2, modelId: "claude-opus-5", effortName: "high" },
|
|
5019
|
-
"opus-5-xhigh": { model: 6, effort: 3, modelId: "claude-opus-5", effortName: "xhigh" },
|
|
5020
|
-
"opus-5-max": { model: 6, effort: 4, modelId: "claude-opus-5", effortName: "max" },
|
|
5019
|
+
"opus-5-med": { model: 6, effort: 1, modelId: "claude-opus-5-5", effortName: "medium" },
|
|
5020
|
+
"opus-5-high": { model: 6, effort: 2, modelId: "claude-opus-5-5", effortName: "high" },
|
|
5021
|
+
"opus-5-xhigh": { model: 6, effort: 3, modelId: "claude-opus-5-5", effortName: "xhigh" },
|
|
5022
|
+
"opus-5-max": { model: 6, effort: 4, modelId: "claude-opus-5-5", effortName: "max" },
|
|
5021
5023
|
"fable-5-med": { model: 7, effort: 1, modelId: "claude-fable-5", effortName: "medium" },
|
|
5022
5024
|
"fable-5-high": { model: 7, effort: 2, modelId: "claude-fable-5", effortName: "high" },
|
|
5023
5025
|
"fable-5-xhigh": { model: 7, effort: 3, modelId: "claude-fable-5", effortName: "xhigh" },
|
|
@@ -5254,15 +5256,15 @@ function diyValidate(cfg) {
|
|
|
5254
5256
|
if (cfg.autonomy === "hands-off" && (cfg.ship_mode === "commit" || cfg.ship_mode === "pr")) {
|
|
5255
5257
|
warnings.push(`hands-off + ship_mode ${cfg.ship_mode}: git actions will run fully unattended`);
|
|
5256
5258
|
}
|
|
5257
|
-
// The pinned reviewer/verifier moved to claude-opus-5 (model rank 6) in
|
|
5259
|
+
// The pinned reviewer/verifier moved to claude-opus-5-5 (model rank 6) in
|
|
5258
5260
|
// v0.34.0 — anything below that tier silently runs them at the session model.
|
|
5259
5261
|
if (tier && tier.model < 6 && (cfg.review !== "off" || cfg.verify !== "off")) {
|
|
5260
5262
|
// Careful wording (v0.34.7): `session_tier` is a DECLARATION, not the real
|
|
5261
5263
|
// session model — a hook cannot read the model, only the effort. On a
|
|
5262
|
-
// session that actually outranks the declared tier the pinned Opus 5 roles
|
|
5264
|
+
// session that actually outranks the declared tier the pinned Opus 5.5 roles
|
|
5263
5265
|
// run at FULL pin (observed), so asserting they "will" downgrade is a false
|
|
5264
5266
|
// alarm; what is certain is only that a LOWER real session caps them.
|
|
5265
|
-
warnings.push(`session_tier ${cfg.session_tier} is below the pinned Opus 5 reviewer/verifier: if the REAL session is also below Opus 5 they run capped at it (the tier-honesty rule reports the actual model). A session above this tier runs them at full pin — but your executor table stays clipped to ${cfg.session_tier}; recompile to use the full ladder`);
|
|
5267
|
+
warnings.push(`session_tier ${cfg.session_tier} is below the pinned Opus 5.5 reviewer/verifier: if the REAL session is also below Opus 5.5 they run capped at it (the tier-honesty rule reports the actual model). A session above this tier runs them at full pin — but your executor table stays clipped to ${cfg.session_tier}; recompile to use the full ladder`);
|
|
5266
5268
|
}
|
|
5267
5269
|
return { errors, warnings };
|
|
5268
5270
|
}
|
|
@@ -7646,7 +7648,7 @@ const WIKI_TIER_LADDER = [
|
|
|
7646
7648
|
{ id: "small-delta", tier: "light", why: "small delta, no new surface" },
|
|
7647
7649
|
];
|
|
7648
7650
|
|
|
7649
|
-
// The POSITION each tier resolves to (v0.55.0). Two slots and ONE Opus 5 agent
|
|
7651
|
+
// The POSITION each tier resolves to (v0.55.0). Two slots and ONE Opus 5.5 agent
|
|
7650
7652
|
// is not a contradiction: a slot names the POSITION, not the model, and the
|
|
7651
7653
|
// ladder already collapses both tiers onto that agent while `opus5_only` is on.
|
|
7652
7654
|
const WIKI_TIER_SLOT = { deep: "wiki-scanner-deep", light: "wiki-scanner-light" };
|
|
@@ -11236,7 +11238,7 @@ function resume() {
|
|
|
11236
11238
|
// assumed the opposite, so an interrupted turn produced a SECOND agent on the
|
|
11237
11239
|
// same task while the first was still working. A graded run put THREE
|
|
11238
11240
|
// `orc-executor-opus-5-low` agents on one task for 50m19s + 115m22s + 100m53s
|
|
11239
|
-
// — 266 minutes of Opus 5 for one authorised dispatch, all editing the same
|
|
11241
|
+
// — 266 minutes of Opus 5.5 for one authorised dispatch, all editing the same
|
|
11240
11242
|
// files. The hook already recorded every one of them; nothing ever READ it.
|
|
11241
11243
|
//
|
|
11242
11244
|
// The pending sidecar (`<trace>.pending.json`, written by orc-trace.js on every
|
|
@@ -21240,7 +21242,7 @@ function docForecastCmd(claudeDir, slugArg) {
|
|
|
21240
21242
|
for (const part of roleParts) {
|
|
21241
21243
|
const vec = vecFor(part.agent, part.n, pct);
|
|
21242
21244
|
if (!part.target) {
|
|
21243
|
-
const m = priceVector(claudeDir, vec, "claude-opus-5");
|
|
21245
|
+
const m = priceVector(claudeDir, vec, "claude-opus-5-5");
|
|
21244
21246
|
if (m.usd === null) priceable = false;
|
|
21245
21247
|
else total += m.usd;
|
|
21246
21248
|
continue;
|
|
@@ -21264,8 +21266,8 @@ function docForecastCmd(claudeDir, slugArg) {
|
|
|
21264
21266
|
};
|
|
21265
21267
|
const usd50 = usdAt("p50");
|
|
21266
21268
|
const usd90 = usdAt("p90");
|
|
21267
|
-
const money50 = priceVector(claudeDir, p50, "claude-opus-5");
|
|
21268
|
-
const money90 = priceVector(claudeDir, p90, "claude-opus-5");
|
|
21269
|
+
const money50 = priceVector(claudeDir, p50, "claude-opus-5-5");
|
|
21270
|
+
const money90 = priceVector(claudeDir, p90, "claude-opus-5-5");
|
|
21269
21271
|
const extraView = {
|
|
21270
21272
|
resolved: docExtra.resolved,
|
|
21271
21273
|
why: docExtra.why,
|
|
@@ -21484,7 +21486,7 @@ function docCostCmd(claudeDir, slugArg) {
|
|
|
21484
21486
|
runRows.push({ trace: r.name, lane: r.lane, date: r.date, tokens: runVec, weighted: weightedTokens(runVec) });
|
|
21485
21487
|
}
|
|
21486
21488
|
|
|
21487
|
-
const money = priceVector(claudeDir, total, "claude-opus-5");
|
|
21489
|
+
const money = priceVector(claudeDir, total, "claude-opus-5-5");
|
|
21488
21490
|
const sections = Object.values(bySection).map((s) => ({
|
|
21489
21491
|
id: s.id,
|
|
21490
21492
|
heading: s.heading,
|
|
@@ -21493,7 +21495,7 @@ function docCostCmd(claudeDir, slugArg) {
|
|
|
21493
21495
|
joined: s.joined > 0,
|
|
21494
21496
|
tokens: s.joined ? s.vec : null,
|
|
21495
21497
|
weighted: s.joined ? weightedTokens(s.vec) : null,
|
|
21496
|
-
usd: s.joined ? priceVector(claudeDir, s.vec, "claude-opus-5").usd : null,
|
|
21498
|
+
usd: s.joined ? priceVector(claudeDir, s.vec, "claude-opus-5-5").usd : null,
|
|
21497
21499
|
}));
|
|
21498
21500
|
const unjoined = sections.filter((s) => !s.joined).length;
|
|
21499
21501
|
const code = joined === 0 ? 3 : unjoined ? 1 : 0;
|
|
@@ -25827,8 +25829,8 @@ function extraResolveFor(claudeDir, score, opts) {
|
|
|
25827
25829
|
//
|
|
25828
25830
|
// `claude` is an ARRAY because `quick-executor` has two: a menu is what that
|
|
25829
25831
|
// lane is. `claude_opus5` is the variant `opus5_only` would have used, derived
|
|
25830
|
-
// from the shipped ladders — NULL where the agent is already Opus 5, so two
|
|
25831
|
-
// wiki slots collapsing onto one Opus 5 scanner is not a contradiction: the
|
|
25832
|
+
// from the shipped ladders — NULL where the agent is already Opus 5.5, so two
|
|
25833
|
+
// wiki slots collapsing onto one Opus 5.5 scanner is not a contradiction: the
|
|
25832
25834
|
// slot names the POSITION, not the model. NO AGENT IS ADDED by this release
|
|
25833
25835
|
// and no pair is needed (the floor stays 51).
|
|
25834
25836
|
const EXTRA_SLOTS = [
|
|
@@ -43603,7 +43605,7 @@ function slEngine() {
|
|
|
43603
43605
|
// panel really hands over — including `tokenCount`, which is the number v1.2.0
|
|
43604
43606
|
// concluded could not be measured.
|
|
43605
43607
|
const SL_TASK_FIXTURES = {
|
|
43606
|
-
healthy: { id: "t1", name: "orc-executor-opus-5-low", type: "orc-executor-opus-5-low", description: "wire the retry ladder", status: "running", model: "claude-opus-5", effort: "low", tokenCount: 84000, contextWindowSize: 200000, startTime: 1767225600000 - 17 * 60000 },
|
|
43608
|
+
healthy: { id: "t1", name: "orc-executor-opus-5-low", type: "orc-executor-opus-5-low", description: "wire the retry ladder", status: "running", model: "claude-opus-5-5", effort: "low", tokenCount: 84000, contextWindowSize: 200000, startTime: 1767225600000 - 17 * 60000 },
|
|
43607
43609
|
degraded: { id: "t2", name: "orc-executor-sonnet-4-6-med", type: "orc-executor-sonnet-4-6-med", description: "rename two files", status: "failed", model: "claude-sonnet-4-6", effort: "medium", tokenCount: 191000, contextWindowSize: 200000, startTime: 1767225600000 - 96 * 60000 },
|
|
43608
43610
|
empty: { id: "t3" },
|
|
43609
43611
|
};
|
|
@@ -43612,7 +43614,7 @@ const SL_FIXTURES = {
|
|
|
43612
43614
|
healthy: {
|
|
43613
43615
|
label: "a healthy session mid-run",
|
|
43614
43616
|
payload: {
|
|
43615
|
-
model: { id: "claude-opus-5", display_name: "Opus 5" },
|
|
43617
|
+
model: { id: "claude-opus-5-5", display_name: "Opus 5.5" },
|
|
43616
43618
|
effort: { level: "high" },
|
|
43617
43619
|
version: "2.1.80",
|
|
43618
43620
|
context_window: { used_percentage: 38, remaining_percentage: 62, context_window_size: 200000 },
|
|
@@ -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\"",
|