feat: add Claude Code model selection to setup

This commit is contained in:
Andrey Avtomonov 2026-05-16 11:40:16 +02:00
parent fe7ac389fc
commit 3d6e8e64f3
10 changed files with 203 additions and 19 deletions

View file

@ -447,4 +447,18 @@ describe('ClaudeCodeKtxLlmRuntime', () => {
env: expect.not.objectContaining({ ANTHROPIC_API_KEY: 'sk-ant-test' }),
});
});
it('reports unsupported Claude Code models without framing them as auth failures', async () => {
await expect(
runClaudeCodeAuthProbe({
projectDir: '/tmp/project',
model: 'gpt-5',
query: vi.fn(),
env: {},
}),
).resolves.toEqual({
ok: false,
message: 'Unsupported Claude Code model "gpt-5". Use sonnet, opus, haiku, or a claude-* model id.',
});
});
});

View file

@ -288,10 +288,20 @@ export async function runClaudeCodeAuthProbe(input: {
query?: QueryFn;
env?: NodeJS.ProcessEnv;
}): Promise<{ ok: true } | { ok: false; message: string }> {
let model: string;
try {
model = resolveClaudeCodeModel(input.model);
} catch (error) {
return {
ok: false,
message: error instanceof Error ? error.message : String(error),
};
}
try {
const options = baseOptions({
projectDir: input.projectDir,
model: resolveClaudeCodeModel(input.model),
model,
env: input.env,
maxTurns: 1,
});