go: grok 4.5 and kimi k3

This commit is contained in:
Frank
2026-07-16 19:20:17 -04:00
parent 0bc9a28b5e
commit 51213520f5
40 changed files with 883 additions and 563 deletions
@@ -628,10 +628,6 @@ body {
stroke: none;
}
[data-bar][data-kind="free"] {
fill: var(--color-text-strong);
}
[data-val] {
fill: var(--color-text-strong);
font-size: 13px;
@@ -652,11 +648,6 @@ body {
transform-origin: center;
}
[data-point][data-kind="free"] {
fill: var(--color-background);
stroke: var(--color-text-strong);
}
[data-point][data-kind="go"] {
fill: var(--color-background-interactive);
stroke: var(--color-text-strong);
@@ -1029,26 +1020,6 @@ body {
[data-slot="faq-models"] {
margin-top: 16px;
overflow-x: auto;
table {
width: 100%;
min-width: 28rem;
border-collapse: collapse;
}
th,
td {
padding: 12px 16px;
text-align: left;
white-space: nowrap;
}
th {
background: var(--color-background-weak);
color: var(--color-text-strong);
font-weight: 500;
}
}
}
}
+23 -54
View File
@@ -23,19 +23,21 @@ const checkLoggedIn = query(async () => {
}, "checkLoggedIn.get")
const models = [
{ name: "GLM-5.2", provider: "DeepInfra, Fireworks AI, Z.ai" },
{ name: "GLM-5.1", provider: "DeepInfra, Fireworks AI, Z.ai" },
{ name: "Kimi K2.7 Code", provider: "Moonshot AI" },
{ name: "Kimi K2.6", provider: "Moonshot AI" },
{ name: "MiMo-V2.5-Pro", provider: "Xiaomi MiMo" },
{ name: "MiMo-V2.5", provider: "Xiaomi MiMo" },
{ name: "Qwen3.7 Max", provider: "Alibaba Cloud Model Studio" },
{ name: "Qwen3.7 Plus", provider: "Alibaba Cloud Model Studio" },
{ name: "Qwen3.6 Plus", provider: "Alibaba Cloud Model Studio" },
{ name: "MiniMax M3", provider: "MiniMax" },
{ name: "MiniMax M2.7", provider: "MiniMax" },
{ name: "DeepSeek V4 Pro", provider: "DeepSeek" },
{ name: "DeepSeek V4 Flash", provider: "DeepSeek" },
"Grok 4.5",
"GLM-5.2",
"GLM-5.1",
"Kimi K3",
"Kimi K2.7 Code",
"Kimi K2.6",
"MiMo-V2.5-Pro",
"MiMo-V2.5",
"Qwen3.7 Max",
"Qwen3.7 Plus",
"Qwen3.6 Plus",
"MiniMax M3",
"MiniMax M2.7",
"DeepSeek V4 Pro",
"DeepSeek V4 Flash",
]
function LimitsGraph(props: { href: string }) {
@@ -59,8 +61,10 @@ function LimitsGraph(props: { href: string }) {
onCleanup(() => observer.disconnect())
})
const free = 200
const baseline = 200
const graph = [
{ id: "grok-4.5", name: "Grok 4.5", req: 80, d: "50ms" },
{ id: "kimi-k3", name: "Kimi K3", req: 140, d: "75ms" },
{ id: "glm-5.2", name: "GLM-5.2", req: 880, d: "100ms" },
{ id: "qwen3.7-max", name: "Qwen3.7 Max", req: 950, d: "110ms" },
{ id: "kimi-k2.7-code", name: "Kimi K2.7 Code", req: 1150, d: "150ms" },
@@ -79,14 +83,12 @@ function LimitsGraph(props: { href: string }) {
const bottom = 44
const plot = w - left - right
const ratio = (n: number) => n / free
const ratio = (n: number) => n / baseline
const rmax = Math.max(1, ...graph.map((m) => ratio(m.req)))
const log = (n: number) => Math.log10(Math.max(n, 1))
const base = 24
const p = 2.2
const x = (r: number) => left + base + Math.pow(log(r) / log(rmax), p) * (plot - base)
const start = (x(1) / w) * 100
const ticks = [1, 5, 10, 25, 50, 100].filter((t) => t <= rmax)
const labels = (() => {
const set = new Set<number>()
@@ -108,10 +110,8 @@ function LimitsGraph(props: { href: string }) {
const bh = 8
const gap = 20
const step = bh + gap
const h = 330 + Math.max(0, graph.length - 8) * step
const sep = bh + 40
const fy = top + 22
const gy = (i: number) => fy + sep + step * i
const gy = (i: number) => top + 22 + step * i
const h = gy(graph.length - 1) + bottom
const my = graph.length < 2 ? gy(0) : (gy(0) + gy(graph.length - 1)) / 2
const px = (n: number) => `${(n / w) * 100}%`
const py = (n: number) => `${(n / h) * 100}%`
@@ -121,10 +121,9 @@ function LimitsGraph(props: { href: string }) {
return (
<figure
data-component="limit-graph"
aria-label={i18n.t("go.graph.aria", { free: i18n.t("go.graph.free"), go: i18n.t("go.graph.go") })}
aria-label={i18n.t("go.graph.label")}
data-visible={visible() ? "" : undefined}
ref={root}
style={{ "--start": `${start}%` } as any}
>
<div data-slot="plot">
<svg
@@ -147,10 +146,6 @@ function LimitsGraph(props: { href: string }) {
<line x1={left} y1={top} x2={left} y2={h - bottom} data-stub />
<g data-slot="bars">
<g style={{ "--d": "0ms" } as any}>
<rect x={left} y={fy - bh / 2} width={Math.max(0, x(1) - left)} height={bh} data-bar data-kind="free" />
</g>
<For each={graph}>
{(m, i) => (
<g style={{ "--d": m.d } as any}>
@@ -170,9 +165,6 @@ function LimitsGraph(props: { href: string }) {
</svg>
<div data-slot="ylabels" aria-hidden="true">
<span data-ylabel style={{ "--x": lx, "--y": py(fy) } as any}>
{i18n.t("go.graph.free")}
</span>
<span data-ylabel style={{ "--x": lx, "--y": py(my) } as any}>
{i18n.t("go.graph.go")}
</span>
@@ -189,10 +181,6 @@ function LimitsGraph(props: { href: string }) {
</div>
<div data-slot="pills" aria-hidden="true">
<span data-item data-kind="free" style={{ "--x": px(x(1)), "--y": py(fy), "--d": "0ms" } as any}>
<span data-value>{free.toLocaleString()}</span>
<span data-name>{i18n.t("go.graph.freePill")}</span>
</span>
<For each={graph}>
{(m, i) => (
<span
@@ -447,26 +435,7 @@ export default function Home() {
<li>
<Faq question={i18n.t("go.faq.q2")}>
{i18n.t("go.faq.a2")}
<div data-slot="faq-models">
<table>
<thead>
<tr>
<th>{i18n.t("workspace.models.table.model")}</th>
<th>{i18n.t("workspace.providers.table.provider")}</th>
</tr>
</thead>
<tbody>
<For each={models}>
{(m) => (
<tr>
<td>{m.name}</td>
<td>{m.provider}</td>
</tr>
)}
</For>
</tbody>
</table>
</div>
<div data-slot="faq-models">{models.join(", ")}.</div>
</Faq>
</li>
<li>
@@ -306,10 +306,12 @@ export function LiteSection(props: { lite: LiteSubscription | undefined }) {
</p>
<h3 data-slot="promo-models-title">{i18n.t("workspace.lite.promo.modelsTitle")}</h3>
<ul data-slot="promo-models">
<li>Kimi K2.7 Code</li>
<li>Kimi K2.6</li>
<li>Grok 4.5</li>
<li>GLM-5.2</li>
<li>GLM-5.1</li>
<li>Kimi K3</li>
<li>Kimi K2.7 Code</li>
<li>Kimi K2.6</li>
<li>MiniMax M3</li>
<li>MiniMax M2.7</li>
<li>Qwen3.7 Max</li>