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
5 changes: 3 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ These decisions are part of the repo contract. Changing them is not a small refa

Current honest limitation:

- the curated registry currently contains exactly one supported model:
`qwen3-235b` -> `qwen/qwen3-235b-a22b-instruct-2507-fp8`
- the curated registry currently contains these supported models:
- `qwen3-235b` -> `qwen/qwen3-235b-a22b-instruct-2507-fp8`
- `kimi-k2.6` -> `moonshotai/Kimi-K2.6` (default)

## What the Repo Does and Does Not Do

Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## [Unreleased]

- Added `moonshotai/Kimi-K2.6` to the curated GonkaGate model registry under the `kimi-k2.6` model key and made it the default model.
- Raised the minimum supported Node.js runtime for this package to Node 22.14+ so it matches current OpenClaw install support expectations.
- CI and publish workflows now both run on Node 22.14.0, and runtime documentation no longer advertises Node 18 support.
- Upgraded `@inquirer/prompts`, `commander`, and `write-file-atomic` to current releases that are now appropriate for a Node 22.14+ baseline.
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ This command checks:
Current curated registry in this package:

- `qwen3-235b` -> `qwen/qwen3-235b-a22b-instruct-2507-fp8`
- `kimi-k2.6` -> `moonshotai/Kimi-K2.6` (default)

## What It Does

Expand Down
9 changes: 8 additions & 1 deletion src/constants/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ const curatedModelRegistry = [
key: "qwen3-235b",
displayName: "Qwen 3 235B Instruct",
modelId: "qwen/qwen3-235b-a22b-instruct-2507-fp8",
description: "Best default for complex reasoning on GonkaGate.",
description: "Qwen reasoning model on GonkaGate.",
isDefault: false
},
{
key: "kimi-k2.6",
displayName: "Kimi K2.6",
modelId: "moonshotai/Kimi-K2.6",
description: "Recommended default for long-horizon coding and agentic workflows on GonkaGate.",
isDefault: true
}
] as const satisfies readonly SupportedModelDefinition[];
Expand Down
2 changes: 1 addition & 1 deletion src/install/prompts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export function buildModelPromptConfig(
value: model.key,
name: model.displayName,
short: model.key,
description: model.description ? `${model.description} Model ID: ${model.modelId}` : `Model ID: ${model.modelId}`
description: `${model.description ? `${model.description} ` : ""}Model ID: ${model.modelId}`
})),
pageSize: Math.min(models.length, 8),
loop: false,
Expand Down
2 changes: 1 addition & 1 deletion test/merge-settings.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ test("mergeSettingsWithGonkaGate preserves unrelated agents.defaults.model keys"
assert.deepEqual((merged.agents as Record<string, unknown>).defaults, {
model: {
fallback: "openai/legacy-model",
primary: "openai/qwen/qwen3-235b-a22b-instruct-2507-fp8",
primary: toPrimaryModelRef(DEFAULT_MODEL),
temperature: 0.2
}
});
Expand Down
24 changes: 24 additions & 0 deletions test/models.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import assert from "node:assert/strict";
import test from "node:test";
import {
DEFAULT_MODEL,
DEFAULT_MODEL_KEY,
getSupportedModelByKey,
requireSupportedModel,
SUPPORTED_MODEL_KEYS,
toPrimaryModelRef
} from "../src/constants/models.js";

test("curated registry includes Kimi K2.6 as the default model", () => {
assert.equal(DEFAULT_MODEL_KEY, "kimi-k2.6");
assert.equal(DEFAULT_MODEL.modelId, "moonshotai/Kimi-K2.6");
assert.deepEqual(SUPPORTED_MODEL_KEYS, ["qwen3-235b", "kimi-k2.6"]);

const kimi = requireSupportedModel("kimi-k2.6");

assert.equal(kimi.displayName, "Kimi K2.6");
assert.equal(kimi.modelId, "moonshotai/Kimi-K2.6");
assert.equal(toPrimaryModelRef(kimi), "openai/moonshotai/Kimi-K2.6");
assert.equal(DEFAULT_MODEL, kimi);
assert.equal(getSupportedModelByKey("missing-model"), undefined);
});
Loading