fix(models): support DeepSeek V4.1 vision and max effort
CI / typecheck (push) Failing after 51s
CI / format (push) Failing after 4s
CI / Oh My Pi compatibility (push) Failing after 1m7s
CI / CodeQL SAST (push) Failing after 26m15s
CI / Semgrep — pi extension audit (push) Failing after 8m15s
CI / Gitleaks — secrets scan (push) Failing after 8s
CI / Dependency review (push) Skipped
CI / npm audit (push) Failing after 6s
CI / Check lifecycle scripts (push) Failing after 2s
CI / typecheck (push) Failing after 51s
CI / format (push) Failing after 4s
CI / Oh My Pi compatibility (push) Failing after 1m7s
CI / CodeQL SAST (push) Failing after 26m15s
CI / Semgrep — pi extension audit (push) Failing after 8m15s
CI / Gitleaks — secrets scan (push) Failing after 8s
CI / Dependency review (push) Skipped
CI / npm audit (push) Failing after 6s
CI / Check lifecycle scripts (push) Failing after 2s
Refresh the generated capability catalog from command-code@1.44.0 to 1.53.1. deepseek/deepseek-v4.1-flash now advertises image input and its low, high, and max reasoning efforts, so pi forwards attached images and exposes the full thinking-level selector instead of reporting the model as text-only without selectable levels. The sync also adds gpt-6-astra, xai/grok-4.6, and inclusionai/ling-3.0-flash-sante:free metadata. Drop the now-obsolete manual Meta Muse Spark effort overrides because upstream publishes efforts for meta/muse-spark-1.1 through 1.3-contributor and MiniMaxAI/MiniMax-M3, and add a regression test for the V4.1 capabilities.
This commit is contained in:
+16
-1
@@ -126,6 +126,22 @@ describe("commandCodeModelsFromApiResponse()", () => {
|
||||
assert.equal(modelSupportsImageInput("unknown-new-model"), false)
|
||||
})
|
||||
|
||||
it("exposes DeepSeek V4.1 vision input and its low/high/max thinking levels", () => {
|
||||
const modelId = "deepseek/deepseek-v4.1-flash"
|
||||
assert.deepEqual(inputModalitiesForModel(modelId), ["text", "image"])
|
||||
assert.equal(modelSupportsImageInput(modelId), true)
|
||||
assert.equal(MODEL_REASONING[modelId], true)
|
||||
assert.deepEqual(MODEL_EFFORTS[modelId], ["low", "high", "max"])
|
||||
assert.deepEqual(thinkingMetadataForModel(modelId)?.thinkingLevelMap, {
|
||||
minimal: null,
|
||||
low: "low",
|
||||
medium: null,
|
||||
high: "high",
|
||||
xhigh: null,
|
||||
max: "max",
|
||||
})
|
||||
})
|
||||
|
||||
it("tracks reasoning independently from selectable effort levels", () => {
|
||||
const reasoningModels = Object.keys(MODEL_REASONING)
|
||||
const effortModels = Object.keys(MODEL_EFFORTS)
|
||||
@@ -198,7 +214,6 @@ describe("commandCodeModelsFromApiResponse()", () => {
|
||||
|
||||
it("merges manual effort overrides over the generated catalog", () => {
|
||||
const validEfforts = new Set(["minimal", "low", "medium", "high", "xhigh", "max"])
|
||||
assert.ok(Object.keys(MODEL_EFFORT_OVERRIDES).length > 0)
|
||||
for (const [modelId, efforts] of Object.entries(MODEL_EFFORT_OVERRIDES)) {
|
||||
assert.equal(MODEL_REASONING[modelId], true, `${modelId} override needs a reasoning flag`)
|
||||
assert.equal(
|
||||
|
||||
Reference in New Issue
Block a user