@@ -75,11 +75,15 @@ export async function runSetupWizard(): Promise<boolean> {
7575 console . log ( " 2) OpenAI" ) ;
7676 console . log ( " 3) Anthropic" ) ;
7777 console . log ( " 4) Ollama (local, no key)" ) ;
78- console . log ( " 5) Custom OpenAI-compatible base URL" ) ;
78+ console . log ( " 5) Groq (fast, api.groq.com)" ) ;
79+ console . log ( " 6) DeepSeek (api.deepseek.com)" ) ;
80+ console . log ( " 7) Gemini (Google OpenAI-compatible API)" ) ;
81+ console . log ( " 8) OpenRouter (openrouter.ai)" ) ;
82+ console . log ( " 9) Custom OpenAI-compatible base URL" ) ;
7983 console . log ( " 0) Cancel / Set up later" ) ;
8084 console . log ( "" ) ;
8185
82- const pAns = await ask ( rl , " Choose [0-5 ] (default 1): " ) ;
86+ const pAns = await ask ( rl , " Choose [0-9 ] (default 1): " ) ;
8387 if ( pAns === "0" || pAns . toLowerCase ( ) === "cancel" ) {
8488 console . log ( "" ) ;
8589 console . log ( " No problem! You can configure ArrowCode later by running: arrowcode --setup" ) ;
@@ -93,7 +97,11 @@ export async function runSetupWizard(): Promise<boolean> {
9397 "2" : "openai" ,
9498 "3" : "anthropic" ,
9599 "4" : "ollama" ,
96- "5" : "custom" ,
100+ "5" : "groq" ,
101+ "6" : "deepseek" ,
102+ "7" : "gemini" ,
103+ "8" : "openrouter" ,
104+ "9" : "custom" ,
97105 } ;
98106 const provider = map [ pAns ] || "nim" ;
99107
@@ -136,6 +144,30 @@ export async function runSetupWizard(): Promise<boolean> {
136144 baseUrl = b || baseUrl ;
137145 const m = await ask ( rl , ` Model (default ${ model } ): ` ) ;
138146 model = m || model ;
147+ } else if ( provider === "groq" ) {
148+ baseUrl = "https://api.groq.com/openai/v1" ;
149+ model = "llama-3.3-70b-versatile" ;
150+ apiKey = await ask ( rl , " Groq API key: " ) ;
151+ const m = await ask ( rl , ` Model (default ${ model } ): ` ) ;
152+ model = m || model ;
153+ } else if ( provider === "deepseek" ) {
154+ baseUrl = "https://api.deepseek.com/v1" ;
155+ model = "deepseek-chat" ;
156+ apiKey = await ask ( rl , " DeepSeek API key: " ) ;
157+ const m = await ask ( rl , ` Model (default ${ model } ): ` ) ;
158+ model = m || model ;
159+ } else if ( provider === "gemini" ) {
160+ baseUrl = "https://generativelanguage.googleapis.com/v1beta/openai" ;
161+ model = "gemini-2.5-flash" ;
162+ apiKey = await ask ( rl , " Gemini API key: " ) ;
163+ const m = await ask ( rl , ` Model (default ${ model } ): ` ) ;
164+ model = m || model ;
165+ } else if ( provider === "openrouter" ) {
166+ baseUrl = "https://openrouter.ai/api/v1" ;
167+ model = "google/gemini-2.5-flash" ;
168+ apiKey = await ask ( rl , " OpenRouter API key: " ) ;
169+ const m = await ask ( rl , ` Model (default ${ model } ): ` ) ;
170+ model = m || model ;
139171 } else {
140172 baseUrl =
141173 ( await ask ( rl , " Base URL (e.g. http://localhost:8000/v1): " ) ) ||
0 commit comments