okstra 0.215.0 → 0.216.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.
- package/docs/cli.md +3 -3
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +4 -0
- package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +4 -11
- package/runtime/python/okstra_ctl/render_final_report.py +1 -1
- package/runtime/python/okstra_token_usage/pricing.py +2 -0
package/docs/cli.md
CHANGED
|
@@ -498,13 +498,13 @@ Then `okstra worker-dispatch --project-root <dir> --run-manifest <run-manifest>
|
|
|
498
498
|
The Codex worker (`--role-model analyser=codex/<model>`, `--codex-model`) and Codex lead runtime are separate. The former creates a worker assignment whose runner depends on the host; the latter selects Codex as the native lead boundary. On Claude Code the Codex worker uses a CLI wrapper, while on Codex it uses the host-native worker/session primitive.
|
|
499
499
|
|
|
500
500
|
> Every `--*-model` flag accepts only aliases registered in the provider mappings in `scripts/okstra_ctl/models.py`. An unregistered value is immediately rejected with `UnknownModelError`, preventing a contract violation where the manifest's `modelExecutionValue` differs from the actual execution value. Allowed values:
|
|
501
|
-
> - Claude (`--lead-model` / `--claude-model` / `--report-writer-model`): `fable`, `fable-5-1`, `claude-fable-5-1`, `fable-5`, `claude-fable-5`, `opus`, `opus-5`, `claude-opus-5`, `sonnet`, `sonnet-5`, `claude-sonnet-5`, `haiku`, `haiku-
|
|
501
|
+
> - Claude (`--lead-model` / `--claude-model` / `--report-writer-model`): `fable`, `fable-5-1`, `claude-fable-5-1`, `fable-5`, `claude-fable-5`, `opus`, `opus-5`, `claude-opus-5`, `sonnet`, `sonnet-5`, `claude-sonnet-5`, `haiku`, `haiku-5-5`, `claude-haiku-5-5`
|
|
502
502
|
> - Codex (`--codex-model`): `gpt-6-astra`, `gpt-6.1-sol`, `gpt-6-luna`. The bundled default is `gpt-6.1-sol`, which okstra runs at `high` reasoning effort (`-c model_reasoning_effort=high`, overriding `~/.codex/config.toml`) for both workers and a launched lead. GPT-6 Sol, GPT-5.6 Sol, Terra, and Luna, `gpt-5.4-mini`, and `codex-auto-review` remain in the catalog for historical records but are not selectable. When the CLI model cache matches the running CLI version, dispatch rejects identifiers absent from that catalog rather than renaming them. A missing or mismatched cache leaves availability enforcement to the provider CLI; model selection does not guarantee account access.
|
|
503
|
-
> - Antigravity (`--antigravity-model`): `gemini-3.1-pro` (default), `gemini-3.8-flash`, and their space-separated aliases. The antigravity worker uses the `agy` CLI to run Gemini-family models, so model IDs retain the `gemini-*` form.
|
|
503
|
+
> - Antigravity (`--antigravity-model`): `gemini-3.1-pro` (default), `gemini-4-argon`, `gemini-3.8-flash`, and their space-separated aliases. The antigravity worker uses the `agy` CLI to run Gemini-family models, so model IDs retain the `gemini-*` form.
|
|
504
504
|
> - Grok (`--worker-model grok=<model>`): `grok-4.7`
|
|
505
505
|
> - Kimi (`--worker-model kimi=<model>`): `kimi-k3`, `k3`, `k3-256k` and their registered display aliases
|
|
506
506
|
>
|
|
507
|
-
> Not every registered alias is offered for selection. A model whose `ModelSpec` sets `selectable=False` stays in the catalog — so served-model attestation and historical pricing still resolve it — but it is hidden from the wizard's role-model picker, from `okstra model list`, and from `--role-model`. `okstra model list` still prints them, marked `selectable: no` with the reason. Currently hidden: `claude/fable-5-1`, `claude/fable-5`, `claude/opus-5`, `claude/sonnet-5`, `claude/haiku-
|
|
507
|
+
> Not every registered alias is offered for selection. A model whose `ModelSpec` sets `selectable=False` stays in the catalog — so served-model attestation and historical pricing still resolve it — but it is hidden from the wizard's role-model picker, from `okstra model list`, and from `--role-model`. `okstra model list` still prints them, marked `selectable: no` with the reason. Currently hidden: `claude/fable-5-1`, `claude/fable-5`, `claude/opus-5`, `claude/sonnet-5`, `claude/haiku-5-5` (each one the pinned twin of a channel entry that already appears; `claude/fable-5` is the previous served id, kept for attestation and pricing), `kimi/k3` (same model as `kimi/kimi-k3`), `codex/gpt-5.4-mini`, `codex/codex-auto-review`, `grok/grok-build-0.1`, `kimi/k3-256k`.
|
|
508
508
|
|
|
509
509
|
### `--role-count`
|
|
510
510
|
|
package/package.json
CHANGED
package/runtime/BUILD.json
CHANGED
|
@@ -33,6 +33,10 @@ ANTIGRAVITY = {
|
|
|
33
33
|
"gemini-3.1-pro", "Gemini 3.1 Pro", "gemini-3.1-pro",
|
|
34
34
|
aliases=("gemini 3.1 pro",),
|
|
35
35
|
),
|
|
36
|
+
"gemini-4-argon": ModelSpec(
|
|
37
|
+
"gemini-4-argon", "Gemini 4 Argon", "gemini-4-argon",
|
|
38
|
+
aliases=("gemini 4 argon",),
|
|
39
|
+
),
|
|
36
40
|
"gemini-3.8-flash": ModelSpec(
|
|
37
41
|
"gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash",
|
|
38
42
|
aliases=("gemini 3.8 flash",),
|
|
@@ -44,7 +44,7 @@ CLAUDE = {
|
|
|
44
44
|
# opus 채널이 지금 서빙하는 점-릴리스. 엔트리가 없으면 served-model 게이트가
|
|
45
45
|
# 관측값을 카탈로그에서 못 찾아 dispatch 가 exit 78 로 실패한다 — 실측
|
|
46
46
|
# 2026-09-23, 두 프로젝트에서 `claude-opus-5-5` 로 같은 실패(dev-10860
|
|
47
|
-
# stage-3·4·5).
|
|
47
|
+
# stage-3·4·5).
|
|
48
48
|
"opus-5-5": ModelSpec(
|
|
49
49
|
"opus-5-5", "opus-5-5", "claude-opus-5-5", aliases=("claude-opus-5-5",),
|
|
50
50
|
channel_family="opus", selectable=False,
|
|
@@ -66,16 +66,9 @@ CLAUDE = {
|
|
|
66
66
|
"haiku": ModelSpec(
|
|
67
67
|
"haiku", "haiku", "haiku", version_kind="channel", channel_family="haiku"
|
|
68
68
|
),
|
|
69
|
-
#
|
|
70
|
-
"haiku-
|
|
71
|
-
"haiku-
|
|
72
|
-
channel_family="haiku", selectable=False,
|
|
73
|
-
),
|
|
74
|
-
# 구버전이 아니라 haiku 채널이 실제로 서빙하는 날짜-고정 id 다. 이 엔트리가
|
|
75
|
-
# 없으면 served-model 게이트가 관측값을 카탈로그에서 못 찾아 dispatch 가
|
|
76
|
-
# "served model is not in the catalog" 로 실패한다(dispatch_core.py).
|
|
77
|
-
"haiku-4-5-20251001": ModelSpec(
|
|
78
|
-
"haiku-4-5-20251001", "haiku-4-5", "claude-haiku-4-5-20251001",
|
|
69
|
+
# haiku 채널이 서빙하는 점-릴리스(opus-5-5 와 같은 이유).
|
|
70
|
+
"haiku-5-5": ModelSpec(
|
|
71
|
+
"haiku-5-5", "haiku-5-5", "claude-haiku-5-5", aliases=("claude-haiku-5-5",),
|
|
79
72
|
channel_family="haiku", selectable=False,
|
|
80
73
|
),
|
|
81
74
|
}
|
|
@@ -72,6 +72,8 @@ CLAUDE_PRICING = {
|
|
|
72
72
|
"opus-4-6": (5.0, 6.25, 0.50, 25.0), # Opus 4.6 (legacy; pricing matches 4.7 per Anthropic)
|
|
73
73
|
"sonnet-4-6": (3.0, 3.75, 0.30, 15.0), # Sonnet 4.6 (cache prices derived from ratios)
|
|
74
74
|
"haiku-4-5": (1.0, 1.25, 0.10, 5.0), # Haiku 4.5 (cache prices derived from ratios)
|
|
75
|
+
# Haiku 5.5 bills prompts over 100K tokens at 5x; this row is the <=100K rate.
|
|
76
|
+
"haiku-5-5": (0.10, 0.125, 0.01, 0.50), # Haiku 5.5 (platform.claude.com pricing, read 2026-10-15)
|
|
75
77
|
|
|
76
78
|
# Claude 4 family fallbacks (Opus 4 / Sonnet 4 / Haiku 4 base).
|
|
77
79
|
"opus-4": (15.0, 18.75, 1.50, 75.0),
|