Skip to content
Closed
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
4 changes: 3 additions & 1 deletion src/providers/registry/model-seeds.ts
Original file line number Diff line number Diff line change
Expand Up @@ -637,11 +637,13 @@ export const ALIBABA_TOKEN_PLAN_PRESERVE_REASONING = [
// entitlement tiers. Bare `k3` advertises the Moderato 256K ceiling; the local `[1m]`
// alias advertises Allegretto's 1M ceiling and is stripped before the upstream request.
// The separately billed Moonshot API uses `kimi-k3`.
// 260921: `k3-256k` is the same K3 served under the explicit ceiling id (verified live
// 260921: same 988-token scaffold and identity answer as bare `k3` on the same input).
// Evidence: https://www.kimi.com/code/docs/en/kimi-code/models.html
// https://www.kimi.com/code/docs/en/kimi-code/error-reference.html
export const KIMI_K3_STANDARD_CONTEXT_WINDOW = 262_144;
export const KIMI_K3_1M_CONTEXT_WINDOW = 1_048_576;
export const KIMI_CODING_K3_MODELS = ["k3", "k3[1m]"];
export const KIMI_CODING_K3_MODELS = ["k3", "k3[1m]", "k3-256k"];
// 260921 Kimi K2.8: `kimi-for-coding` is the stable subscription alias Moonshot re-points
// at each coding release. Live GET /coding/v1/models lists only kimi-for-coding[-highspeed],
// k3, k3-256k — the k2.x ids are retired from the subscription endpoint. Since K2.8 Preview
Expand Down
2 changes: 2 additions & 0 deletions src/usage/expected-prices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ export const EXPECTED_PRICE_OVERLAYS: readonly ExpectedPriceOverlay[] = [
// kimi-code = API key surface (expected list price, not actual billing).
{ provider: "kimi", modelId: "k3", cost4: KIMI_K3, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi", modelId: "k3[1m]", cost4: KIMI_K3, source: `derived: k3 (official docs: k3[1m] is the 1M-context compat notation for k3) ${KIMI_PRICING}`, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi", modelId: "k3-256k", cost4: KIMI_K3, source: `derived: k3 (verified live 260921: same K3 served under the explicit ceiling id; identical prompt scaffold as bare k3) ${KIMI_PRICING}`, verifiedAt: "2026-09-21", status: "verified-derived" },
{ provider: "kimi", modelId: "kimi-k2.7-code", cost4: KIMI_K27_CODE, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi", modelId: "kimi-k2.7-code-highspeed", cost4: KIMI_K27_CODE_HIGHSPEED, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi", modelId: "kimi-k2.6", cost4: KIMI_K26, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
Expand All @@ -298,6 +299,7 @@ export const EXPECTED_PRICE_OVERLAYS: readonly ExpectedPriceOverlay[] = [
{ provider: "moonshot", modelId: "kimi-k2.5", cost4: KIMI_K25, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi-code", modelId: "k3", cost4: KIMI_K3, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi-code", modelId: "k3[1m]", cost4: KIMI_K3, source: `derived: k3 ${KIMI_PRICING}`, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi-code", modelId: "k3-256k", cost4: KIMI_K3, source: `derived: k3 (verified live 260921: same K3 served under the explicit ceiling id) ${KIMI_PRICING}`, verifiedAt: "2026-09-21", status: "verified-derived" },
{ provider: "kimi-code", modelId: "kimi-k2.7-code", cost4: KIMI_K27_CODE, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi-code", modelId: "kimi-k2.7-code-highspeed", cost4: KIMI_K27_CODE_HIGHSPEED, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
{ provider: "kimi-code", modelId: "kimi-k2.6", cost4: KIMI_K26, source: KIMI_PRICING, verifiedAt: "2026-07-20", status: "verified-derived" },
Expand Down
2 changes: 1 addition & 1 deletion tests/providers/provider-registry-parity.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -950,7 +950,7 @@ describe("provider registry parity", () => {
// k3-256k). Seeding a retired id in a metadata list would re-arm the model-rename
// migration on every boot (#5066); saved rows still naming one are repaired by
// MODEL_RENAMES instead.
const codingModels = ["k3", "k3[1m]", "kimi-for-coding"];
const codingModels = ["k3", "k3[1m]", "k3-256k", "kimi-for-coding"];
const parityLists = [
"noReasoningModels",
"noTemperatureModels",
Expand Down
6 changes: 4 additions & 2 deletions tests/usage/usage-cost.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -328,8 +328,8 @@ describe("resolveMatchedPrice", () => {
expect(resolveMatchedPrice("openrouter", "anthropic-claude-3.5-sonnet")).toBeNull();
});

test("16. shipped overlay membership: 126 keys, including canonical Fable 5.1, Opus 5, OpenCode Go and compatibility prices", () => {
expect(EXPECTED_PRICE_OVERLAYS.length).toBe(126);
test("16. shipped overlay membership: 128 keys, including canonical Fable 5.1, Opus 5, OpenCode Go and compatibility prices", () => {
expect(EXPECTED_PRICE_OVERLAYS.length).toBe(128);
expect(EXPECTED_PRICE_OVERLAYS.some(row => row.status === "unverified")).toBe(false);
const keys = new Set(EXPECTED_PRICE_OVERLAYS.map(row => `${row.provider}/${row.modelId}`));
for (const expected of [
Expand Down Expand Up @@ -380,6 +380,7 @@ describe("resolveMatchedPrice", () => {
"google-antigravity/gpt-oss-120b-medium",
"kimi/k3",
"kimi/k3[1m]",
"kimi/k3-256k",
"kimi/kimi-k2.7-code",
"kimi/kimi-k2.7-code-highspeed",
"kimi/kimi-k2.6",
Expand All @@ -392,6 +393,7 @@ describe("resolveMatchedPrice", () => {
"moonshot/kimi-k2.5",
"kimi-code/k3",
"kimi-code/k3[1m]",
"kimi-code/k3-256k",
"kimi-code/kimi-k2.7-code",
"kimi-code/kimi-k2.7-code-highspeed",
"kimi-code/kimi-k2.6",
Expand Down
Loading