sync local pi changes
This commit is contained in:
44
.pi/agent/extensions/tmux-subagent/src/models.test.ts
Normal file
44
.pi/agent/extensions/tmux-subagent/src/models.test.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import {
|
||||
formatModelReference,
|
||||
listAvailableModelReferences,
|
||||
normalizeAvailableModelReference,
|
||||
resolveChildModel,
|
||||
} from "./models.ts";
|
||||
|
||||
test("resolveChildModel prefers the per-task override over the required top-level model", () => {
|
||||
const selection = resolveChildModel({
|
||||
taskModel: "openai/gpt-5",
|
||||
topLevelModel: "anthropic/claude-sonnet-4-5",
|
||||
});
|
||||
|
||||
assert.equal(selection.requestedModel, "openai/gpt-5");
|
||||
assert.equal(selection.resolvedModel, "openai/gpt-5");
|
||||
});
|
||||
|
||||
test("formatModelReference returns provider/id", () => {
|
||||
const ref = formatModelReference({ provider: "anthropic", id: "claude-sonnet-4-5" });
|
||||
|
||||
assert.equal(ref, "anthropic/claude-sonnet-4-5");
|
||||
});
|
||||
|
||||
test("listAvailableModelReferences formats all configured available models", () => {
|
||||
const refs = listAvailableModelReferences({
|
||||
getAvailable: () => [
|
||||
{ provider: "anthropic", id: "claude-sonnet-4-5" },
|
||||
{ provider: "openai", id: "gpt-5" },
|
||||
],
|
||||
});
|
||||
|
||||
assert.deepEqual(refs, ["anthropic/claude-sonnet-4-5", "openai/gpt-5"]);
|
||||
});
|
||||
|
||||
test("normalizeAvailableModelReference matches canonical refs case-insensitively", () => {
|
||||
const normalized = normalizeAvailableModelReference("OpenAI/GPT-5", [
|
||||
"anthropic/claude-sonnet-4-5",
|
||||
"openai/gpt-5",
|
||||
]);
|
||||
|
||||
assert.equal(normalized, "openai/gpt-5");
|
||||
});
|
||||
Reference in New Issue
Block a user