@kontextmind/kxm 0.7.184 → 0.7.185
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/.claude-plugin/marketplace.json +1 -1
- package/.kxm/roles/reviewer-cli.yaml +5 -2
- package/CHANGELOG.md +9 -0
- package/docs/contributing/assignment-runner.md +1 -1
- package/docs/contributing/harness-routing-internals.md +11 -9
- package/docs/reference/cli-reference.md +4 -2
- package/docs/reference/config-reference.md +11 -3
- package/docs/reference/harness-routing.md +12 -8
- package/docs/templates/review.md +1 -1
- package/package.json +1 -1
- package/plugins/kxm/.claude-plugin/plugin.json +1 -1
- package/plugins/kxm/dist/cli.js +1 -0
- package/plugins/kxm/dist/mcp-server.js +1 -1
- package/plugins/kxm/dist/runtime-supervisor.js +1 -0
- package/plugins/kxm/dist/runtime.js +1 -0
- package/plugins/kxm/dist/server.js +1 -0
- package/plugins/kxm/package.json +1 -1
- package/plugins/kxm/src/mcp-server.ts +1 -1
- package/plugins/kxm/src/workforce-names.mjs +1 -0
- package/scripts/assignment-run.mjs +1 -1
- package/scripts/harness-run.mjs +1 -1
|
@@ -3,9 +3,12 @@ id: reviewer-cli
|
|
|
3
3
|
purpose: reviewer-cli
|
|
4
4
|
permission: read-only
|
|
5
5
|
description: Independent CLI and docs critic.
|
|
6
|
-
# codex-gpt-
|
|
6
|
+
# codex-gpt-6-1-sol is the required cli critic. The Pi fallback is a different vendor.
|
|
7
|
+
# codex-gpt-5-6-sol stays admitted as the last fallback.
|
|
7
8
|
roster:
|
|
8
|
-
- route: codex-gpt-
|
|
9
|
+
- route: codex-gpt-6-1-sol
|
|
9
10
|
effort: low
|
|
10
11
|
- route: pi-qwen3-8-flash-openrouter
|
|
11
12
|
effort: low
|
|
13
|
+
- route: codex-gpt-5-6-sol
|
|
14
|
+
effort: low
|
package/CHANGELOG.md
CHANGED
|
@@ -216,6 +216,15 @@ All notable user-facing changes are documented here. The project follows [Semant
|
|
|
216
216
|
|
|
217
217
|
### Changed
|
|
218
218
|
|
|
219
|
+
- **The CLI critic is Codex GPT-6.1 Sol.** `codex-gpt-6-1-sol` is the
|
|
220
|
+
`reviewer-cli` primary (`codex` / `gpt-6.1-sol`, effort `low`).
|
|
221
|
+
`pi-qwen3-8-flash-openrouter` stays the other-vendor fallback, and
|
|
222
|
+
`codex-gpt-5-6-sol` stays admitted as the last fallback. Architecture
|
|
223
|
+
review stays `claude-fable`, then `pi-glm-5-3-flash-openrouter`. Pro is
|
|
224
|
+
the same model with reasoning mode `pro`, not a separate route. List
|
|
225
|
+
price is $2 / $10 per 1M tokens through 272,000 prompt tokens ($0.10
|
|
226
|
+
cached input, $2.50 cache write), then $4 / $15.
|
|
227
|
+
|
|
219
228
|
- **The writer rotation's agy routes are Gemini 4 Argon.** `agy-gemini-4-argon-high`
|
|
220
229
|
(alias `gemini-agy`) and `agy-gemini-4-argon-medium` are writer #3 and #4.
|
|
221
230
|
`agy-gemini-3-8-flash-medium` stays #5 because Argon needs a paid Google AI
|
|
@@ -37,7 +37,7 @@ admits each route for specific roles and permissions:
|
|
|
37
37
|
| `writer` | `grok` / `grok-4.7`; relief: `pi` / `openrouter/qwen/qwen3-coder-plus`; `agy` / `gemini-4-argon-high`, then `gemini-4-argon-medium`, then `gemini-3.8-flash-medium`, then `gemini-3.8-flash-high` | `xai`; `alibaba`; `google` | `edit` |
|
|
38
38
|
| `planner` | `claude` / `fable` | `anthropic` | `read-only` |
|
|
39
39
|
| `reviewer-arch` | `claude` / `fable` | `anthropic` | `read-only` |
|
|
40
|
-
| `reviewer-cli` | `codex` / `gpt-5.6-sol` | `openai` | `read-only` |
|
|
40
|
+
| `reviewer-cli` | `codex` / `gpt-6.1-sol`; fallback `pi` / `openrouter/qwen/qwen3.8-flash`, then `codex` / `gpt-5.6-sol` | `openai`; `alibaba`; `openai` | `read-only` |
|
|
41
41
|
|
|
42
42
|
The policy itself enforces three rules. Critics are read-only. The two
|
|
43
43
|
designated critics have different vendors. No admitted writer shares a vendor
|
|
@@ -9,7 +9,7 @@ This page records how the KXM repository applies [harness routing](../reference/
|
|
|
9
9
|
|
|
10
10
|
The files use one id shape per kind. A route id is `<harness>-<model-slug>[-<provider>]`, with `.` written as `-`. An agent id equals its role. A workflow id is `default`, `land`, or `<role>-only`. An agent step id equals that role.
|
|
11
11
|
|
|
12
|
-
This checkout's routes are `grok-grok-4-7`, `pi-qwen3-coder-plus-openrouter`, `agy-gemini-4-argon-high`, `agy-gemini-4-argon-medium`, `agy-gemini-3-8-flash-medium`, `agy-gemini-3-8-flash-high`, `claude-fable`, `codex-gpt-5-6-sol`, `pi-qwen3-8-flash-openrouter`, and `pi-glm-5-3-flash-openrouter`. Agents are `planner`, `writer`, `reviewer-arch`, and `reviewer-cli`. `opus-claude` was removed because `opus` is not an admitted selector. `qwen-token-plan/*` and `zai-coding-cn/*` left the admitted list because those harnesses are not allowlisted; their `prices.yaml` rows stay. Old ids resolve as aliases. Every roster entry names an effort. `reviewer-arch` dispatches `claude-fable`. #343's architecture critic ran on opus because the justfile recipe review-arch hardcoded that model; the role file on that commit listed only `fable-claude`. The helper now refuses `opus`.
|
|
12
|
+
This checkout's routes are `grok-grok-4-7`, `pi-qwen3-coder-plus-openrouter`, `agy-gemini-4-argon-high`, `agy-gemini-4-argon-medium`, `agy-gemini-3-8-flash-medium`, `agy-gemini-3-8-flash-high`, `claude-fable`, `codex-gpt-6-1-sol`, `codex-gpt-5-6-sol`, `pi-qwen3-8-flash-openrouter`, and `pi-glm-5-3-flash-openrouter`. Agents are `planner`, `writer`, `reviewer-arch`, and `reviewer-cli`. `opus-claude` was removed because `opus` is not an admitted selector. `qwen-token-plan/*` and `zai-coding-cn/*` left the admitted list because those harnesses are not allowlisted; their `prices.yaml` rows stay. Old ids resolve as aliases. Every roster entry names an effort. `reviewer-arch` dispatches `claude-fable`. #343's architecture critic ran on opus because the justfile recipe review-arch hardcoded that model; the role file on that commit listed only `fable-claude`. The helper now refuses `opus`.
|
|
13
13
|
|
|
14
14
|
## This checkout's routes and roster
|
|
15
15
|
|
|
@@ -37,7 +37,7 @@ roster:
|
|
|
37
37
|
effort: medium
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
The writer role lists route ids, in order: `grok-grok-4-7`, then `pi-qwen3-coder-plus-openrouter`, then `agy-gemini-4-argon-high`, `agy-gemini-4-argon-medium`, `agy-gemini-3-8-flash-medium`, and `agy-gemini-3-8-flash-high`. `grok-grok-4-7` is harness `grok`, model `grok-4.7`, vendor `xai`. An agent file does not declare `harness:`. Argon is writer #3 and #4. Flash medium is the safety net because Argon needs a paid Google AI Pro, Ultra, or Enterprise plan and `agy -p` exits when the pinned model is missing. Flash high stays on the roster so that admitted model file is still used.
|
|
40
|
+
The writer role lists route ids, in order: `grok-grok-4-7`, then `pi-qwen3-coder-plus-openrouter`, then `agy-gemini-4-argon-high`, `agy-gemini-4-argon-medium`, `agy-gemini-3-8-flash-medium`, and `agy-gemini-3-8-flash-high`. `grok-grok-4-7` is harness `grok`, model `grok-4.7`, vendor `xai`. An agent file does not declare `harness:`. Argon is writer #3 and #4. Flash medium is the safety net because Argon needs a paid Google AI Pro, Ultra, or Enterprise plan and `agy -p` exits when the pinned model is missing. Flash high stays on the roster so that admitted model file is still used. The planner primary stays `claude-fable`. The CLI critic primary is `codex-gpt-6-1-sol`, then `pi-qwen3-8-flash-openrouter`, then `codex-gpt-5-6-sol`. The architecture critic primary stays `claude-fable`, then `pi-glm-5-3-flash-openrouter`. Argon can serve as a planner or architecture-review fallback; it is not on those rosters. GPT-6.1 Sol Pro is the same model with reasoning mode `pro`. The route id does not carry a reasoning mode, role effort has no `pro` value, and codex is limited to `reviewer-cli`, so that mode is not an architecture fallback.
|
|
41
41
|
|
|
42
42
|
`node scripts/kxm.mjs routes list`:
|
|
43
43
|
|
|
@@ -48,6 +48,7 @@ admitted google/gemini-3.8-flash-medium
|
|
|
48
48
|
admitted google/gemini-4-argon-high
|
|
49
49
|
admitted google/gemini-4-argon-medium
|
|
50
50
|
admitted openai/gpt-5.6-sol
|
|
51
|
+
admitted openai/gpt-6.1-sol
|
|
51
52
|
admitted openrouter/qwen/qwen3-coder-plus
|
|
52
53
|
admitted openrouter/qwen/qwen3.8-flash
|
|
53
54
|
admitted openrouter/z-ai/glm-5.3-flash
|
|
@@ -56,8 +57,9 @@ planner claude-fable
|
|
|
56
57
|
planner pi-qwen3-8-flash-openrouter
|
|
57
58
|
reviewer-arch claude-fable
|
|
58
59
|
reviewer-arch pi-glm-5-3-flash-openrouter
|
|
59
|
-
reviewer-cli codex-gpt-
|
|
60
|
+
reviewer-cli codex-gpt-6-1-sol
|
|
60
61
|
reviewer-cli pi-qwen3-8-flash-openrouter
|
|
62
|
+
reviewer-cli codex-gpt-5-6-sol
|
|
61
63
|
writer grok-grok-4-7
|
|
62
64
|
writer pi-qwen3-coder-plus-openrouter
|
|
63
65
|
writer agy-gemini-4-argon-high
|
|
@@ -129,16 +131,16 @@ These extend the generic examples on the reference page with this checkout's adm
|
|
|
129
131
|
|
|
130
132
|
Pi's own `xai` provider reported `ready` (OAuth) on the capture machine. When the grok quota runs out, the next writer in the lineup is `pi-qwen3-coder-plus-openrouter`, a different vendor.
|
|
131
133
|
|
|
132
|
-
### GPT-
|
|
134
|
+
### GPT-6.1 Sol
|
|
133
135
|
|
|
134
136
|
| | Native `codex` | Pi + OpenRouter |
|
|
135
137
|
|---|---|---|
|
|
136
|
-
| Selector | `openai/gpt-
|
|
137
|
-
| Developer roster | `codex-gpt-
|
|
138
|
-
| Billing | ChatGPT subscription
|
|
139
|
-
| Context |
|
|
138
|
+
| Selector | `openai/gpt-6.1-sol`: admitted, the CLI critic | `openrouter/openai/gpt-6.1-sol`: not admitted |
|
|
139
|
+
| Developer roster | `codex-gpt-6-1-sol`: `reviewer-cli` primary, `read-only`, effort `low` | Refused |
|
|
140
|
+
| Billing | ChatGPT subscription. List price $2.00 input, $10.00 output, $0.10 cached input, $2.50 cache write through 272,000 prompt tokens, then $4.00 / $15.00 | Same per-token list price. OpenRouter's `openai/gpt-6.1-sol-pro` row is reasoning mode `pro`, not a second model |
|
|
141
|
+
| Context | 1,050,000 (922,000 max input, 128,000 max output). Reasoning is mandatory | 1,050,000 |
|
|
140
142
|
|
|
141
|
-
|
|
143
|
+
`codex-gpt-5-6-sol` stays on the `reviewer-cli` roster after the Qwen fallback. Its selector `openai/gpt-5.6-sol` stays admitted. OpenRouter lists that model at $4.00 input, $20.00 output, and $0.40 cached input. `pi auth check --provider openai-codex` reported `ready` on the capture machine. That readiness is not permission to bill OpenAI through Pi.
|
|
142
144
|
|
|
143
145
|
### Claude Fable
|
|
144
146
|
|
|
@@ -1156,6 +1156,7 @@ admitted google/gemini-3.8-flash-medium
|
|
|
1156
1156
|
admitted google/gemini-4-argon-high
|
|
1157
1157
|
admitted google/gemini-4-argon-medium
|
|
1158
1158
|
admitted openai/gpt-5.6-sol
|
|
1159
|
+
admitted openai/gpt-6.1-sol
|
|
1159
1160
|
admitted openrouter/qwen/qwen3-coder-plus
|
|
1160
1161
|
admitted openrouter/qwen/qwen3.8-flash
|
|
1161
1162
|
admitted openrouter/z-ai/glm-5.3-flash
|
|
@@ -1164,8 +1165,9 @@ planner claude-fable
|
|
|
1164
1165
|
planner pi-qwen3-8-flash-openrouter
|
|
1165
1166
|
reviewer-arch claude-fable
|
|
1166
1167
|
reviewer-arch pi-glm-5-3-flash-openrouter
|
|
1167
|
-
reviewer-cli codex-gpt-
|
|
1168
|
+
reviewer-cli codex-gpt-6-1-sol
|
|
1168
1169
|
reviewer-cli pi-qwen3-8-flash-openrouter
|
|
1170
|
+
reviewer-cli codex-gpt-5-6-sol
|
|
1169
1171
|
writer grok-grok-4-7
|
|
1170
1172
|
writer pi-qwen3-coder-plus-openrouter
|
|
1171
1173
|
writer agy-gemini-4-argon-high
|
|
@@ -1179,7 +1181,7 @@ kxm routes list --json
|
|
|
1179
1181
|
```
|
|
1180
1182
|
|
|
1181
1183
|
```text
|
|
1182
|
-
{"schema":"kxm.cli-result.v1","ok":true,"command":"routes list","policy":{"schema":"kxm.routes.v2","updatedAt":"2026-10-
|
|
1184
|
+
{"schema":"kxm.cli-result.v1","ok":true,"command":"routes list","policy":{"schema":"kxm.routes.v2","updatedAt":"2026-10-17T14:30:00.000Z","admitted":["anthropic/fable","google/gemini-3.8-flash-high","google/gemini-3.8-flash-medium","google/gemini-4-argon-high","google/gemini-4-argon-medium","openai/gpt-5.6-sol","openai/gpt-6.1-sol","openrouter/qwen/qwen3-coder-plus","openrouter/qwen/qwen3.8-flash","openrouter/z-ai/glm-5.3-flash","xai/grok-4.7"],"disabled":[]},"membership":["planner claude-fable","planner pi-qwen3-8-flash-openrouter","reviewer-arch claude-fable","reviewer-arch pi-glm-5-3-flash-openrouter","reviewer-cli codex-gpt-6-1-sol","reviewer-cli pi-qwen3-8-flash-openrouter","reviewer-cli codex-gpt-5-6-sol","writer grok-grok-4-7","writer pi-qwen3-coder-plus-openrouter","writer agy-gemini-4-argon-high","writer agy-gemini-4-argon-medium","writer agy-gemini-3-8-flash-medium","writer agy-gemini-3-8-flash-high"]}
|
|
1183
1185
|
```
|
|
1184
1186
|
|
|
1185
1187
|
### `kxm routes count`
|
|
@@ -686,7 +686,7 @@ Example (validated with `kxm init --json` and compiled with
|
|
|
686
686
|
the `critic-claude` profile shown above, it needs a `planner` agent (the
|
|
687
687
|
workflow coordinator; `coordinator` still resolves as an alias), a
|
|
688
688
|
`reviewer-cli` agent, and a second profile tagged `critic`, `critic-sol`
|
|
689
|
-
(`openai/gpt-
|
|
689
|
+
(`openai/gpt-6.1-sol`). Routes, not agent files, name the harness and model.
|
|
690
690
|
The two providers among the `critic` candidates satisfy
|
|
691
691
|
`distinctBy: [provider]` with `target: 2`.
|
|
692
692
|
|
|
@@ -1011,6 +1011,7 @@ updatedAt: '2026-09-23T00:00:00.000Z'
|
|
|
1011
1011
|
admitted:
|
|
1012
1012
|
- anthropic/fable
|
|
1013
1013
|
- openai/gpt-5.6-sol
|
|
1014
|
+
- openai/gpt-6.1-sol
|
|
1014
1015
|
- xai/grok-4.6
|
|
1015
1016
|
- openrouter/qwen/qwen3-coder-plus
|
|
1016
1017
|
disabled: []
|
|
@@ -1081,6 +1082,13 @@ routes:
|
|
|
1081
1082
|
roles: [planner, reviewer-arch]
|
|
1082
1083
|
permissions: [read-only]
|
|
1083
1084
|
status: admitted
|
|
1085
|
+
codex-gpt-6-1-sol:
|
|
1086
|
+
harness: codex
|
|
1087
|
+
model: gpt-6.1-sol
|
|
1088
|
+
vendor: openai
|
|
1089
|
+
roles: [reviewer-cli]
|
|
1090
|
+
permissions: [read-only]
|
|
1091
|
+
status: admitted
|
|
1084
1092
|
codex-gpt-5-6-sol:
|
|
1085
1093
|
harness: codex
|
|
1086
1094
|
model: gpt-5.6-sol
|
|
@@ -1092,10 +1100,10 @@ lineup: # routes admitted for each role, preference orde
|
|
|
1092
1100
|
writer: [grok-grok-4-7, pi-qwen3-coder-plus-openrouter, agy-gemini-4-argon-high, agy-gemini-4-argon-medium, agy-gemini-3-8-flash-medium, agy-gemini-3-8-flash-high]
|
|
1093
1101
|
planner: [claude-fable, pi-qwen3-8-flash-openrouter]
|
|
1094
1102
|
reviewer-arch: [claude-fable, pi-glm-5-3-flash-openrouter]
|
|
1095
|
-
reviewer-cli: [codex-gpt-
|
|
1103
|
+
reviewer-cli: [codex-gpt-6-1-sol, pi-qwen3-8-flash-openrouter, codex-gpt-5-6-sol]
|
|
1096
1104
|
required_critics:
|
|
1097
1105
|
review-arch: claude-fable
|
|
1098
|
-
review-cli: codex-gpt-
|
|
1106
|
+
review-cli: codex-gpt-6-1-sol
|
|
1099
1107
|
model_origins: # required for every Pi route model
|
|
1100
1108
|
openrouter/qwen/qwen3-coder-plus:
|
|
1101
1109
|
vendor: alibaba
|
|
@@ -232,7 +232,7 @@ The same model shows up under different ids depending on the file:
|
|
|
232
232
|
| `.kxm/models/inventory.yaml`, source `openrouter` | `x-ai/grok-4.7` | The OpenRouter catalog slug. The inventory stores OpenRouter ids without an `openrouter/` prefix. |
|
|
233
233
|
| `.kxm/prices.yaml` | `id: xai/grok-4.7`, `provider: xai`, alias `x-ai/grok-4.7` | A list price that applies only to provider `xai`, because price lookup filters by provider. `xai/grok-4.6` remains a separate row. |
|
|
234
234
|
|
|
235
|
-
An inventory id can also mean something else in `.kxm/routes.yaml`. For example, the inventory can list `openai/gpt-
|
|
235
|
+
An inventory id can also mean something else in `.kxm/routes.yaml`. For example, the inventory can list `openai/gpt-6.1-sol` from the OpenRouter feed with OpenRouter prices, while in `.kxm/routes.yaml` the same string means provider `openai` through native `codex`. `openai/gpt-5.6-sol` is the same kind of selector and stays admitted.
|
|
236
236
|
|
|
237
237
|
### What the brake refuses
|
|
238
238
|
|
|
@@ -249,7 +249,7 @@ The brake runs wherever KXM starts Pi on a model: in the dispatch probe that eac
|
|
|
249
249
|
| How the id names the vendor | Refused examples | Message |
|
|
250
250
|
|---|---|---|
|
|
251
251
|
| The provider is the vendor | `anthropic/…`, `openai/…`, `xai/…`, `moonshot/…`, `google/…`, `deepseek/…` | `pi must not impersonate native provider xai; use the native harness` |
|
|
252
|
-
| A Pi provider that belongs to the vendor | `openai-codex/…`, `moonshotai/…`, `moonshotai-cn/…`, `kimi-coding/…`, `google-vertex/…`, `claude-bridge/…`, and `antigravity/…` except Gemini ids | `pi provider openai-codex bills native vendor openai for gpt-
|
|
252
|
+
| A Pi provider that belongs to the vendor | `openai-codex/…`, `moonshotai/…`, `moonshotai-cn/…`, `kimi-coding/…`, `google-vertex/…`, `claude-bridge/…`, and `antigravity/…` except Gemini ids | `pi provider openai-codex bills native vendor openai for gpt-6.1-sol; use the native harness` |
|
|
253
253
|
| The vendor segment of an aggregator id, including the aliases `x-ai`, `moonshotai` and `google-ai` | `openrouter/x-ai/grok-4.6`, `openrouter/anthropic/claude-fable-5.1`, `nous-portal/google/…` | `pi must not bill native vendor xai through openrouter; use the native harness` |
|
|
254
254
|
|
|
255
255
|
The brake accepts `antigravity/gemini-…` and any id whose vendor has no native harness, such as `openrouter/qwen/qwen3-coder-plus`, `zai-coding-cn/glm-5.3` or `qwen-token-plan/qwen3.8-flash`. Passing the brake is not admission: the route must still be admitted. The hosting refusal at dispatch reads `grok_not_authenticated: grok harness not detected (harness_unhosted_model)`.
|
|
@@ -367,18 +367,22 @@ pi auth check --provider xai --json --no-refresh
|
|
|
367
367
|
{"status":"ready","provider":"xai","authType":"oauth"}
|
|
368
368
|
```
|
|
369
369
|
|
|
370
|
-
### GPT-
|
|
370
|
+
### GPT-6.1 Sol
|
|
371
371
|
|
|
372
372
|
| | Native `codex` | Pi + OpenRouter |
|
|
373
373
|
|---|---|---|
|
|
374
|
-
| Model file | `harness: codex`, `model: gpt-
|
|
375
|
-
| Selector | `openai/gpt-
|
|
374
|
+
| Model file | `harness: codex`, `model: gpt-6.1-sol`, `vendor: openai` | `harness: pi`, `model: openrouter/openai/gpt-6.1-sol`, `vendor: openai` |
|
|
375
|
+
| Selector | `openai/gpt-6.1-sol`: admitted, the CLI critic | `openrouter/openai/gpt-6.1-sol` |
|
|
376
376
|
| Readiness | Needs `codex` auth `yes` with `authMethod: ChatGPT` | Never reached: the brake refuses it first |
|
|
377
|
-
| Billing | ChatGPT subscription | OpenRouter credit |
|
|
377
|
+
| Billing | ChatGPT subscription. List price $2 / $10 per 1M tokens through 272,000 prompt tokens ($0.10 cached input, $2.50 cache write), then $4 / $15 | OpenRouter credit, same per-token list price |
|
|
378
378
|
| Recorded `costBasis` | `unmetered`, `priceRef: subscription:codex` | None: refused before dispatch |
|
|
379
|
-
| Mode | One-shot `codex exec --json
|
|
379
|
+
| Mode | One-shot `codex exec --json -`. Reasoning is mandatory (`low`, `medium`, `high`, `xhigh`, `max`) | Refused |
|
|
380
380
|
|
|
381
|
-
|
|
381
|
+
`codex-gpt-6-1-sol` is the `reviewer-cli` primary at effort `low`. `pi-qwen3-8-flash-openrouter` is the other-vendor fallback. `codex-gpt-5-6-sol` stays admitted as the last fallback. Architecture review stays `claude-fable`, then `pi-glm-5-3-flash-openrouter`.
|
|
382
|
+
|
|
383
|
+
Pro is not a separate model. It is `gpt-6.1-sol` with reasoning mode `pro`. OpenRouter lists that mode as `openai/gpt-6.1-sol-pro` at the same per-token price. A route id is `<harness>-<model-slug>`, role `effort` has no `pro` value, and the codex harness ceiling is `reviewer-cli` only. There is no pro architecture-review fallback.
|
|
384
|
+
|
|
385
|
+
**KXM picks the native route.** Two traps apply here. The first is `openai-codex/gpt-6.1-sol`, which is the same ChatGPT subscription driven through Pi. `pi auth check --provider openai-codex` can report `ready`, but readiness is not permission: the brake refuses `openai-codex` as OpenAI's own Pi provider. The second is a codex login made with an API key: the row shows `API key`, and the run records `unknown`. `openai/gpt-5.6-sol` is the same shape of selector and stays admitted. On OpenRouter it now lists at $4 / $20 per 1M tokens.
|
|
382
386
|
|
|
383
387
|
```bash
|
|
384
388
|
pi auth check --provider openai-codex --json --no-refresh
|
package/docs/templates/review.md
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "kxm",
|
|
4
4
|
"displayName": "KXM",
|
|
5
|
-
"version": "0.7.
|
|
5
|
+
"version": "0.7.185",
|
|
6
6
|
"description": "Headless multi-agent orchestration, durable workflows, and a live operator dashboard for Pi and Claude Code",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "KontextMind",
|
package/plugins/kxm/dist/cli.js
CHANGED
|
@@ -18617,6 +18617,7 @@ var init_workforce_names = __esm({
|
|
|
18617
18617
|
["qwen-openrouter-pi", "pi-qwen3-coder-plus-openrouter"],
|
|
18618
18618
|
["gemini-agy", "agy-gemini-4-argon-high"],
|
|
18619
18619
|
["fable-claude", "claude-fable"],
|
|
18620
|
+
// sol-codex stays the GPT-5.6 route. codex-gpt-6-1-sol is a separate route.
|
|
18620
18621
|
["sol-codex", "codex-gpt-5-6-sol"],
|
|
18621
18622
|
["grok-default", "grok-grok-4-6"],
|
|
18622
18623
|
["fable-default", "claude-fable"]
|
|
@@ -25462,7 +25462,7 @@ function sessionTokenFixHint(policy) {
|
|
|
25462
25462
|
}
|
|
25463
25463
|
|
|
25464
25464
|
// plugins/kxm/src/mcp-server.ts
|
|
25465
|
-
var VERSION = "0.7.
|
|
25465
|
+
var VERSION = "0.7.185";
|
|
25466
25466
|
var CONFIGURE_PLUGIN = "/plugin configure kxm@kxm";
|
|
25467
25467
|
var inbox = /* @__PURE__ */ new Map();
|
|
25468
25468
|
var notifiedInbox = /* @__PURE__ */ new Set();
|
|
@@ -15546,6 +15546,7 @@ var ROUTE_RENAMES = Object.freeze([
|
|
|
15546
15546
|
["qwen-openrouter-pi", "pi-qwen3-coder-plus-openrouter"],
|
|
15547
15547
|
["gemini-agy", "agy-gemini-4-argon-high"],
|
|
15548
15548
|
["fable-claude", "claude-fable"],
|
|
15549
|
+
// sol-codex stays the GPT-5.6 route. codex-gpt-6-1-sol is a separate route.
|
|
15549
15550
|
["sol-codex", "codex-gpt-5-6-sol"],
|
|
15550
15551
|
["grok-default", "grok-grok-4-6"],
|
|
15551
15552
|
["fable-default", "claude-fable"]
|
|
@@ -15519,6 +15519,7 @@ var ROUTE_RENAMES = Object.freeze([
|
|
|
15519
15519
|
["qwen-openrouter-pi", "pi-qwen3-coder-plus-openrouter"],
|
|
15520
15520
|
["gemini-agy", "agy-gemini-4-argon-high"],
|
|
15521
15521
|
["fable-claude", "claude-fable"],
|
|
15522
|
+
// sol-codex stays the GPT-5.6 route. codex-gpt-6-1-sol is a separate route.
|
|
15522
15523
|
["sol-codex", "codex-gpt-5-6-sol"],
|
|
15523
15524
|
["grok-default", "grok-grok-4-6"],
|
|
15524
15525
|
["fable-default", "claude-fable"]
|
|
@@ -15011,6 +15011,7 @@ var ROUTE_RENAMES = Object.freeze([
|
|
|
15011
15011
|
["qwen-openrouter-pi", "pi-qwen3-coder-plus-openrouter"],
|
|
15012
15012
|
["gemini-agy", "agy-gemini-4-argon-high"],
|
|
15013
15013
|
["fable-claude", "claude-fable"],
|
|
15014
|
+
// sol-codex stays the GPT-5.6 route. codex-gpt-6-1-sol is a separate route.
|
|
15014
15015
|
["sol-codex", "codex-gpt-5-6-sol"],
|
|
15015
15016
|
["grok-default", "grok-grok-4-6"],
|
|
15016
15017
|
["fable-default", "claude-fable"]
|
package/plugins/kxm/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import { deliverInboxNotification } from "./inbox.ts";
|
|
|
11
11
|
import type { HubEvent, MessageRecord } from "./protocol.ts";
|
|
12
12
|
import { sessionTokenFixHint } from "./session-token-hint.ts";
|
|
13
13
|
|
|
14
|
-
const VERSION = "0.7.
|
|
14
|
+
const VERSION = "0.7.185";
|
|
15
15
|
const CONFIGURE_PLUGIN = "/plugin configure kxm@kxm";
|
|
16
16
|
const inbox = new Map<string, MessageRecord>();
|
|
17
17
|
const notifiedInbox = new Set<string>();
|
|
@@ -35,6 +35,7 @@ export const ROUTE_RENAMES = Object.freeze([
|
|
|
35
35
|
["qwen-openrouter-pi", "pi-qwen3-coder-plus-openrouter"],
|
|
36
36
|
["gemini-agy", "agy-gemini-4-argon-high"],
|
|
37
37
|
["fable-claude", "claude-fable"],
|
|
38
|
+
// sol-codex stays the GPT-5.6 route. codex-gpt-6-1-sol is a separate route.
|
|
38
39
|
["sol-codex", "codex-gpt-5-6-sol"],
|
|
39
40
|
["grok-default", "grok-grok-4-6"],
|
|
40
41
|
["fable-default", "claude-fable"],
|
|
@@ -141,7 +141,7 @@ export const ATTRIBUTION_CLASSES = Object.freeze(["orchestration", "model", "env
|
|
|
141
141
|
export const ACCEPTED_NOTE = "developer record; not human approval, hub peer evidence, CI success, or merged/released status";
|
|
142
142
|
export const REQUIRED_ACCEPT_CRITICS = Object.freeze({
|
|
143
143
|
"review-arch": Object.freeze({ harness: "claude", model: "fable", role: "reviewer-arch" }),
|
|
144
|
-
"review-cli": Object.freeze({ harness: "codex", model: "gpt-
|
|
144
|
+
"review-cli": Object.freeze({ harness: "codex", model: "gpt-6.1-sol", role: "reviewer-cli" }),
|
|
145
145
|
});
|
|
146
146
|
export const ASSIGNMENT_KINDS = Object.freeze([
|
|
147
147
|
"plan",
|
package/scripts/harness-run.mjs
CHANGED
|
@@ -164,7 +164,7 @@ export const ROUTES = Object.freeze({
|
|
|
164
164
|
provider: "openai",
|
|
165
165
|
roles: Object.freeze(["reviewer-cli"]),
|
|
166
166
|
permissions: Object.freeze(["read-only"]),
|
|
167
|
-
models: Object.freeze(["gpt-5.6-sol"]),
|
|
167
|
+
models: Object.freeze(["gpt-6.1-sol", "gpt-5.6-sol"]),
|
|
168
168
|
efforts: Object.freeze(["low", "medium", "high"]),
|
|
169
169
|
auth: Object.freeze({ args: ["login", "status"], loginHint: "codex login" }),
|
|
170
170
|
},
|