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 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-4-5`, `claude-haiku-4-5`
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-4-5`, `claude/haiku-4-5-20251001` (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`.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okstra",
3
- "version": "0.215.0",
3
+ "version": "0.216.0",
4
4
  "description": "Host-aware multi-provider cross-verification orchestrator runtime and agent skills.",
5
5
  "license": "MIT",
6
6
  "author": "devonshin",
@@ -1,5 +1,5 @@
1
1
  {
2
- "package": "0.215.0",
3
- "builtAt": "2026-10-15T11:38:32.098Z",
2
+ "package": "0.216.0",
3
+ "builtAt": "2026-10-15T14:08:59.435Z",
4
4
  "repoRoot": "/home/runner/work/okstra/okstra"
5
5
  }
@@ -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). haiku-4-5-20251001 과 같은 이유의 엔트리다.
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
- # picker 에서는 감춘다(사유는 fable-5 와 동일).
70
- "haiku-4-5": ModelSpec(
71
- "haiku-4-5", "haiku-4-5", "claude-haiku-4-5", aliases=("claude-haiku-4-5",),
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
  }
@@ -487,7 +487,7 @@ _DISPLAY_CONCRETE_CLAUDE = {
487
487
  "fable": "claude-fable-5-1",
488
488
  "opus": "claude-opus-5",
489
489
  "sonnet": "claude-sonnet-5",
490
- "haiku": "claude-haiku-4-5",
490
+ "haiku": "claude-haiku-5-5",
491
491
  }
492
492
 
493
493
 
@@ -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),