import assert from "node:assert/strict"
import test from "node:test"
import { applyCursorCatalog, cursorModelLimits, cursorVariants } from "../cursor-catalog.js"
test("uses Cursor model-specific limits and suppresses host auto-compaction", () => {
assert.deepEqual(cursorModelLimits("gpt-5.6-sol"), {
context: 1_000_000_000,
input: 1_000_000_000,
output: 64_000,
})
assert.deepEqual(cursorModelLimits("claude-opus-4-8-thinking"), {
context: 1_000_000_000,
input: 1_000_000_000,
output: 64_000,
})
assert.deepEqual(cursorModelLimits("future-model"), {
context: 1_000_000_000,
input: 1_000_000_000,
output: 32_000,
})
})
test("leaves the input threshold unset when auto-compaction is enabled", () => {
assert.deepEqual(cursorModelLimits("gpt-5.6-sol", { autoCompaction: true }), {
context: 272_000,
output: 64_000,
})
})
test("applies the provider auto-compaction setting to catalog models", () => {
let configuredModel
const catalog = {
provider: {
update(_id, apply) {
apply({ request: { headers: {}, body: { autoCompaction: true } } })
},
},
model: {
update(_provider, _model, apply) {
configuredModel = {}
apply(configuredModel)
},
},
}
applyCursorCatalog(catalog, [{ id: "gpt-5.6-sol", displayName: "GPT-5.6 Sol" }])
assert.deepEqual(configuredModel.limit, { context: 272_000, output: 64_000 })
assert.deepEqual(configuredModel.request.body, {})
assert.deepEqual(configuredModel.cost, [
{ input: 5, output: 30, cache: { read: 0.5, write: 6.25 } },
])
})
test("builds off and on variants for Cursor thinking controls", () => {
const controls = cursorVariants({
parameters: [{ id: "thinking", values: [{ value: "off" }, { value: "on" }] }],
})
assert.deepEqual(controls.defaults, {})
assert.deepEqual(
controls.variants.map((variant) => variant.id),
["off", "on", "plan"],
)
assert.deepEqual(controls.variants[0].body.params, { thinking: "off" })
})
test("builds defaults and reasoning variants using Cursor semantics", () => {
const controls = cursorVariants({
parameters: [
{ id: "fast", values: [{ value: "false" }, { value: "true" }] },
{
id: "reasoning_effort",
values: [
{ value: "none" },
{ value: "low" },
{ value: "off" },
{ value: "extra-high" },
],
},
],
})
assert.deepEqual(controls.defaults, { fast: "false" })
assert.deepEqual(
controls.variants.map((variant) => variant.id),
["fast", "low", "off", "xhigh", "plan"],
)
assert.deepEqual(controls.variants.at(-2).body.params, {
fast: "false",
reasoning_effort: "extra-high",
})
})
test("prefers labeled Cursor SDK presets", () => {
const controls = cursorVariants({
parameters: [{ id: "fast", values: [{ value: "false" }, { value: "true" }] }],
variants: [
{ displayName: "Default", isDefault: true, params: [] },
{
displayName: "High Quality",
params: [{ id: "thinking", value: "on" }],
},
{
displayName: "High Quality",
params: [{ id: "thinking", value: "off" }],
},
{
displayName: "Fast Mode",
params: [{ id: "fast", value: "true" }],
},
],
})
assert.deepEqual(
controls.variants.map((variant) => variant.id),
["high-quality", "high-quality-2", "fast-mode", "plan"],
)
assert.deepEqual(controls.variants[0].body.params, {
fast: "false",
thinking: "on",
})
})