Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ Current honest state:
validated curated default, with installer-managed
`limit.output = 8192` for Kilo `7.2.0` compatibility
- the managed GonkaGate provider config now writes the validated
chat-completions catalog, currently Kimi K2.6 plus Qwen3 235B A22B Instruct
2507 FP8, so Kilo's OpenCode-style `/models` picker can switch between
validated GonkaGate models
chat-completions catalog, currently Kimi K2.6, Qwen3 235B A22B Instruct
2507 FP8, and MiniMax M2.7, so Kilo's OpenCode-style `/models` picker can
switch between validated GonkaGate models
- Kilo detection now accepts `@kilocode/cli >=7.2.0` without pre-blocking
future Kilo releases, while the audited compatibility baseline remains
`@kilocode/cli@7.2.0`
Expand Down Expand Up @@ -136,8 +136,8 @@ These are implementation facts today:
orchestration
- `src/constants/models.ts` now exposes Kimi K2.6 as the recommended validated
production default plus the validated Qwen3 235B A22B Instruct 2507 FP8
catalog entry, each with installer-managed `limit.output = 8192` in the
written Kilo provider config
and MiniMax M2.7 catalog entries, each with installer-managed
`limit.output = 8192` in the written Kilo provider config
- `docs/specs/kilo-setup-prd/spec.md` is the copied Kilo setup PRD
- `docs/release-readiness.md` records the current production-readiness audit
- `.github/workflows/release-please.yml` and `.github/workflows/publish.yml`
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- Wrote the validated GonkaGate chat-completions catalog into the managed
provider config so Kilo's OpenCode-style `/models` picker can switch between
Kimi K2.6 and Qwen3 235B A22B Instruct 2507 FP8.
Kimi K2.6, Qwen3 235B A22B Instruct 2507 FP8, and MiniMax M2.7.
- Accepted Kilo versions at or above `@kilocode/cli >=7.2.0` instead of
pre-blocking future Kilo releases with the previous `7.2.0`-only gate.
- Kept local verification blockers and mismatches visible in rollback output
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ Current public baseline:
- curated default:
`moonshotai/Kimi-K2.6`
- managed validated catalog for Kilo's OpenCode-style `/models` picker:
`moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`
`moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`
- installer-managed `limit.output = 8192` for Kilo compatibility
- no native Windows production claim yet

Expand Down Expand Up @@ -207,8 +208,9 @@ This repository intentionally stays narrow today:
- current curated default:
`moonshotai/Kimi-K2.6`
- validated GonkaGate models exposed to Kilo's `/models` picker:
`moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`
`moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`
- real-path Kilo verification is not the production default
- native Windows production support is not claimed yet
- future Kilo releases are not pre-blocked by version, but observed
Expand Down
7 changes: 4 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Current contract documents:

This repository ships the Kilo installer runtime with a validated curated
GonkaGate chat-completions catalog, Kimi K2.6 as the recommended default,
installer-managed `limit.output = 8192` for Kilo compatibility, and a minimum
accepted Kilo floor of `@kilocode/cli >=7.2.0` without a preset upper version
bound.
MiniMax M2.7 and Qwen3 235B A22B Instruct 2507 FP8 as additional validated
catalog entries, installer-managed `limit.output = 8192` for Kilo
compatibility, and a minimum accepted Kilo floor of `@kilocode/cli >=7.2.0`
without a preset upper version bound.
8 changes: 5 additions & 3 deletions docs/gonkagate-x-kilo.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,11 @@ Right now the public default is deliberately small:
- minimum Kilo floor: `@kilocode/cli >=7.2.0`
- recommended validated model: `moonshotai/Kimi-K2.6`
- validated catalog exposed to Kilo's OpenCode-style `/models` picker:
`moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`
- managed limits: `limit.context = 262144`, `limit.output = 8192`
`moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`
- managed limits: `limit.output = 8192` for all validated entries;
`limit.context = 262144` for Kimi/Qwen and `204800` for MiniMax

We are treating model support as a curated list, not as a vague "it probably
works" promise.
Expand Down
7 changes: 4 additions & 3 deletions docs/how-it-works.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ Current public limit:
`moonshotai/Kimi-K2.6` with `limit.context = 262144` and
`limit.output = 8192`
- the written provider config includes the validated chat-completions model
catalog, currently `moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, so Kilo's OpenCode-style
`/models` picker can switch between validated GonkaGate models
catalog, currently `moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`, so Kilo's OpenCode-style `/models` picker can
switch between validated GonkaGate models
- broader model claims still require additional proof before models should be
added to the validated catalog

Expand Down
15 changes: 11 additions & 4 deletions docs/release-readiness.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ docs, and tests for these facts:
- curated public default:
`moonshotai/Kimi-K2.6`
- validated provider catalog exposed to Kilo's OpenCode-style `/models` picker:
`moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`
`moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`
- curated model limits for the validated catalog:
`limit.context = 262144`; `limit.output = 8192`
`limit.output = 8192` for all validated entries; `limit.context = 262144`
for Kimi/Qwen and `204800` for MiniMax
- managed secret path: `~/.gonkagate/kilo/api-key`
- project scope stays secret-free and still depends on a compatible
user-level `provider.gonkagate` definition on each machine
Expand All @@ -46,6 +48,10 @@ Moonshot metadata checked on 2026-04-29:
- the April 14, 2026 Kilo compatibility spike captured
`qwen/qwen3-235b-a22b-instruct-2507-fp8` as a validated
chat-completions model with a 262K context window and `maxTokens` 8192
- NVIDIA NIM metadata checked on 2026-05-29 lists
`minimaxai/minimax-m2.7` as MiniMax M2.7 with a 204,800 input context
length; the package keeps the same installer-managed `limit.output = 8192`
compatibility clamp for this catalog entry
- npm registry metadata checked on 2026-04-29 showed `@kilocode/cli` patch
releases in the `7.2.x` line, including `7.2.14`, with both `kilo` and
`kilocode` binaries still exposed by the wrapper package
Expand Down Expand Up @@ -76,4 +82,5 @@ repository-only pass:
Those items do not change the current package contract: the publishable surface
remains the minimum Kilo `7.2.0` floor without an upper version bound, the
validated GonkaGate chat-completions catalog with Kimi as the recommended
default, and the current non-Windows verification policy documented above.
default, Qwen3 and MiniMax as additional validated entries, and the current
non-Windows verification policy documented above.
9 changes: 5 additions & 4 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ If you see a config error mentioning
you are likely running a stale build that predates the required Kilo 7.2.0
output-limit fix.

## Why Does `/models` Show Only One GonkaGate Model?
## Why Does `/models` Show Too Few GonkaGate Models?

Current builds write the validated GonkaGate chat-completions catalog into
`provider.gonkagate.models`, so Kilo's OpenCode-style `/models` picker should
show both `moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`.
show `moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`.

If `/models` still shows only one GonkaGate model, rerun the installer from a
If `/models` still shows fewer GonkaGate models, rerun the installer from a
current build so the user-level `provider.gonkagate` definition is refreshed.
Also check for a higher-precedence Kilo layer such as project config,
`KILO_CONFIG`, `KILO_CONFIG_DIR`, or `KILO_CONFIG_CONTENT` defining its own
Expand Down
8 changes: 5 additions & 3 deletions docs/user-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ Today the public package is intentionally narrow:
- current curated default:
`moonshotai/Kimi-K2.6`
- validated GonkaGate catalog for Kilo's OpenCode-style `/models` picker:
`moonshotai/Kimi-K2.6` and
`qwen/qwen3-235b-a22b-instruct-2507-fp8`
- managed model limits: `limit.context = 262144`, `limit.output = 8192`
`moonshotai/Kimi-K2.6`,
`qwen/qwen3-235b-a22b-instruct-2507-fp8`, and
`minimaxai/minimax-m2.7`
- managed model limits: `limit.output = 8192` for all validated entries;
`limit.context = 262144` for Kimi/Qwen and `204800` for MiniMax
- no native Windows production claim yet

## Before You Run It
Expand Down
18 changes: 18 additions & 0 deletions src/constants/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,24 @@ export const CURATED_MODEL_REGISTRY = Object.freeze({
transport: "chat_completions",
validationStatus: "validated",
},
"minimax-m2.7": {
adapterPackage: "@ai-sdk/openai-compatible",
displayName: "MiniMax M2.7",
limits: {
context: 204800,
output: 8192,
},
modelId: "minimaxai/minimax-m2.7",
recommended: false,
runtimeCompatibility: {
notes: [
"NVIDIA NIM metadata lists minimaxai/minimax-m2.7 as MiniMax M2.7 with a 204,800 input context length.",
"The installer writes limit.output = 8192 as the existing conservative Kilo 7.2.0 compatibility clamp for validated catalog entries.",
],
},
transport: "chat_completions",
validationStatus: "validated",
},
} as const satisfies CuratedModelRegistry);

function toCuratedModelRecord<
Expand Down
6 changes: 3 additions & 3 deletions src/install/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ Start here:
durable/current-session Kilo proof path with redacted diagnostics

The current stock runtime ships a validated curated Kimi K2.6 default plus the
validated Qwen3 235B A22B Instruct 2507 FP8 catalog entry. Keep Kilo-specific
behavior here and do not import OpenCode env vars or config targets as runtime
defaults.
validated Qwen3 235B A22B Instruct 2507 FP8 and MiniMax M2.7 catalog entries.
Keep Kilo-specific behavior here and do not import OpenCode env vars or config
targets as runtime defaults.
1 change: 1 addition & 0 deletions test/install/models.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ test("the default curated model is the shipped validated Kimi public default", (
assert.deepEqual(getValidatedModelKeys(), [
"kimi-k2.6",
"qwen3-235b-a22b-instruct-2507-fp8",
"minimax-m2.7",
]);
assert.equal(getRecommendedProductionDefaultModel()?.key, "kimi-k2.6");
});
Expand Down
36 changes: 27 additions & 9 deletions test/package-contract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@ test("constants use Kilo-specific defaults and leave OpenCode env vars out", ()

test("curated model registry exposes Kimi as the shipped validated default", () => {
const kimi = CURATED_MODEL_REGISTRY["kimi-k2.6"];
const model = CURATED_MODEL_REGISTRY["qwen3-235b-a22b-instruct-2507-fp8"];
const qwen = CURATED_MODEL_REGISTRY["qwen3-235b-a22b-instruct-2507-fp8"];
const minimax = CURATED_MODEL_REGISTRY["minimax-m2.7"];

assert.equal(kimi.adapterPackage, "@ai-sdk/openai-compatible");
assert.deepEqual(kimi.limits, { context: 262144, output: 8192 });
Expand All @@ -143,27 +144,38 @@ test("curated model registry exposes Kimi as the shipped validated default", ()
assert.equal(kimi.transport, "chat_completions");
assert.equal(kimi.validationStatus, "validated");

assert.equal(model.adapterPackage, "@ai-sdk/openai-compatible");
assert.equal(model.limits?.context, 262144);
assert.equal(model.limits?.output, 8192);
assert.equal(model.modelId, "qwen/qwen3-235b-a22b-instruct-2507-fp8");
assert.equal(model.recommended, false);
assert.equal(model.transport, "chat_completions");
assert.equal(model.validationStatus, "validated");
assert.equal(qwen.adapterPackage, "@ai-sdk/openai-compatible");
assert.equal(qwen.limits?.context, 262144);
assert.equal(qwen.limits?.output, 8192);
assert.equal(qwen.modelId, "qwen/qwen3-235b-a22b-instruct-2507-fp8");
assert.equal(qwen.recommended, false);
assert.equal(qwen.transport, "chat_completions");
assert.equal(qwen.validationStatus, "validated");

assert.equal(minimax.adapterPackage, "@ai-sdk/openai-compatible");
assert.equal(minimax.limits?.context, 204800);
assert.equal(minimax.limits?.output, 8192);
assert.equal(minimax.modelId, "minimaxai/minimax-m2.7");
assert.equal(minimax.recommended, false);
assert.equal(minimax.transport, "chat_completions");
assert.equal(minimax.validationStatus, "validated");
assert.deepEqual(getValidatedModelKeys(), [
"kimi-k2.6",
"qwen3-235b-a22b-instruct-2507-fp8",
"minimax-m2.7",
]);
assert.equal(getRecommendedProductionDefaultModel()?.key, "kimi-k2.6");
});

test("managed provider config includes the required Kilo output token limit", () => {
test("managed provider config includes the required Kilo model limits", () => {
const providerConfig = buildManagedProviderConfig("kimi-k2.6") as {
models: Record<string, { limit?: { context?: number; output?: number } }>;
};

assert.equal(providerConfig.models["kimi-k2.6"]?.limit?.context, 262144);
assert.equal(providerConfig.models["kimi-k2.6"]?.limit?.output, 8192);
assert.equal(providerConfig.models["minimax-m2.7"]?.limit?.context, 204800);
assert.equal(providerConfig.models["minimax-m2.7"]?.limit?.output, 8192);
});

test("managed provider config exposes the validated catalog for model switching", () => {
Expand All @@ -174,10 +186,16 @@ test("managed provider config exposes the validated catalog for model switching"
assert.deepEqual(Object.keys(providerConfig.models), [
"kimi-k2.6",
"qwen3-235b-a22b-instruct-2507-fp8",
"minimax-m2.7",
]);
assert.equal(providerConfig.models["kimi-k2.6"]?.id, "moonshotai/Kimi-K2.6");
assert.equal(
providerConfig.models["qwen3-235b-a22b-instruct-2507-fp8"]?.id,
"qwen/qwen3-235b-a22b-instruct-2507-fp8",
);
assert.equal(
providerConfig.models["minimax-m2.7"]?.id,
"minimaxai/minimax-m2.7",
);
assert.equal(providerConfig.models["minimax-m2.7"]?.name, "MiniMax M2.7");
});
Loading