@@ -11,11 +11,15 @@ import {
1111 LogLevel ,
1212 subAgentTool ,
1313 errorToString ,
14+ getModel ,
15+ AVAILABLE_MODELS ,
16+ DEFAULT_CONFIG ,
1417} from 'mycoder-agent' ;
1518import { TokenTracker } from 'mycoder-agent/dist/core/tokens.js' ;
1619
1720import { SharedOptions } from '../options.js' ;
1821import { initSentry , captureException } from '../sentry/index.js' ;
22+ import { getConfig } from '../settings/config.js' ;
1923import { hasUserConsented , saveUserConsent } from '../settings/settings.js' ;
2024import { nameToLogIndex } from '../utils/nameToLogIndex.js' ;
2125import { checkForUpdates , getPackageInfo } from '../utils/versionCheck.js' ;
@@ -86,10 +90,33 @@ export const command: CommandModule<SharedOptions, DefaultArgs> = {
8690 ) ;
8791
8892 try {
89- // Early API key check
90- if ( ! process . env . ANTHROPIC_API_KEY ) {
93+ // Get configuration for model provider and name
94+ const userConfig = getConfig ( ) ;
95+ const userModelProvider = argv . modelProvider || userConfig . modelProvider ;
96+ const userModelName = argv . modelName || userConfig . modelName ;
97+
98+ // Early API key check based on model provider
99+ if ( userModelProvider === 'anthropic' && ! process . env . ANTHROPIC_API_KEY ) {
91100 logger . error ( getAnthropicApiKeyError ( ) ) ;
92101 throw new Error ( 'Anthropic API key not found' ) ;
102+ } else if (
103+ userModelProvider === 'openai' &&
104+ ! process . env . OPENAI_API_KEY
105+ ) {
106+ logger . error (
107+ 'No OpenAI API key found. Please set the OPENAI_API_KEY environment variable.' ,
108+ 'You can get an API key from https://platform.openai.com/api-keys' ,
109+ ) ;
110+ throw new Error ( 'OpenAI API key not found' ) ;
111+ }
112+
113+ // Validate model name
114+ if ( ! AVAILABLE_MODELS [ userModelProvider ] . includes ( userModelName ) ) {
115+ logger . error (
116+ `Invalid model name: ${ userModelName } for provider ${ userModelProvider } ` ,
117+ `Available models for ${ userModelProvider } : ${ AVAILABLE_MODELS [ userModelProvider ] . join ( ', ' ) } ` ,
118+ ) ;
119+ throw new Error ( `Invalid model name: ${ userModelName } ` ) ;
93120 }
94121
95122 let prompt : string | undefined ;
@@ -134,7 +161,16 @@ export const command: CommandModule<SharedOptions, DefaultArgs> = {
134161 process . exit ( 0 ) ;
135162 } ) ;
136163
137- const result = await toolAgent ( prompt , tools , undefined , {
164+ // Create a config with the selected model
165+ const agentConfig = {
166+ ...DEFAULT_CONFIG ,
167+ model : getModel (
168+ userModelProvider as 'anthropic' | 'openai' ,
169+ userModelName ,
170+ ) ,
171+ } ;
172+
173+ const result = await toolAgent ( prompt , tools , agentConfig , {
138174 logger,
139175 headless : argv . headless ?? true ,
140176 userSession : argv . userSession ?? false ,
0 commit comments