fix: require providers for new CLI agents
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
import { resolveProviderAndModel } from "./provider-model.js";
|
||||
|
||||
describe("resolveProviderAndModel", () => {
|
||||
test("requires an explicit provider when no default is supplied", () => {
|
||||
expect(() => resolveProviderAndModel({})).toThrow(
|
||||
expect.objectContaining({
|
||||
code: "MISSING_PROVIDER",
|
||||
message: "Provider is required",
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
test("uses an explicit default provider when supplied by a scoped caller", () => {
|
||||
expect(resolveProviderAndModel({ defaultProvider: "claude" })).toEqual({
|
||||
provider: "claude",
|
||||
model: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
test("parses provider/model shorthand", () => {
|
||||
expect(resolveProviderAndModel({ provider: "codex/gpt-5.4" })).toEqual({
|
||||
provider: "codex",
|
||||
model: "gpt-5.4",
|
||||
});
|
||||
});
|
||||
|
||||
test("rejects conflicting model values", () => {
|
||||
expect(() =>
|
||||
resolveProviderAndModel({ provider: "codex/gpt-5.4", model: "gpt-5.4-mini" }),
|
||||
).toThrow(
|
||||
expect.objectContaining({
|
||||
code: "CONFLICTING_MODEL_OPTIONS",
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -14,9 +14,19 @@ export interface ResolvedProviderModel {
|
||||
export function resolveProviderAndModel(
|
||||
options: ResolveProviderAndModelOptions,
|
||||
): ResolvedProviderModel {
|
||||
const providerInput = options.provider?.trim() || options.defaultProvider || "claude";
|
||||
const providerInput = options.provider?.trim() || options.defaultProvider;
|
||||
const modelInput = options.model?.trim();
|
||||
|
||||
if (!providerInput) {
|
||||
const error: CommandError = {
|
||||
code: "MISSING_PROVIDER",
|
||||
message: "Provider is required",
|
||||
details:
|
||||
"Pass --provider <provider> or --provider <provider>/<model>. Use `paseo provider ls` to see providers and `paseo provider models <provider>` to see models.",
|
||||
};
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (options.model !== undefined && !modelInput) {
|
||||
const error: CommandError = {
|
||||
code: "INVALID_MODEL",
|
||||
|
||||
Reference in New Issue
Block a user