2026-01-04 21:58:59 -05:00
// CLI Tools configuration
export const CLI _TOOLS = {
claude : {
id : "claude" ,
name : "Claude Code" ,
icon : "terminal" ,
color : "#D97757" ,
description : "Anthropic Claude Code CLI" ,
configType : "env" ,
envVars : {
baseUrl : "ANTHROPIC_BASE_URL" ,
model : "ANTHROPIC_MODEL" ,
opusModel : "ANTHROPIC_DEFAULT_OPUS_MODEL" ,
sonnetModel : "ANTHROPIC_DEFAULT_SONNET_MODEL" ,
haikuModel : "ANTHROPIC_DEFAULT_HAIKU_MODEL" ,
} ,
modelAliases : [ "default" , "sonnet" , "opus" , "haiku" , "opusplan" ] ,
settingsFile : "~/.claude/settings.json" ,
defaultModels : [
{ id : "opus" , name : "Claude Opus" , alias : "opus" , envKey : "ANTHROPIC_DEFAULT_OPUS_MODEL" , defaultValue : "cc/claude-opus-4-5-20251101" } ,
{ id : "sonnet" , name : "Claude Sonnet" , alias : "sonnet" , envKey : "ANTHROPIC_DEFAULT_SONNET_MODEL" , defaultValue : "cc/claude-sonnet-4-5-20250929" } ,
{ id : "haiku" , name : "Claude Haiku" , alias : "haiku" , envKey : "ANTHROPIC_DEFAULT_HAIKU_MODEL" , defaultValue : "cc/claude-haiku-4-5-20251001" } ,
] ,
} ,
codex : {
id : "codex" ,
name : "OpenAI Codex CLI" ,
image : "/providers/codex.png" ,
color : "#10A37F" ,
description : "OpenAI Codex CLI" ,
configType : "custom" ,
} ,
cursor : {
id : "cursor" ,
name : "Cursor" ,
image : "/providers/cursor.png" ,
color : "#000000" ,
description : "Cursor AI Code Editor" ,
configType : "guide" ,
requiresCloud : true ,
notes : [
{ type : "warning" , text : "Requires Cursor Pro account to use this feature." } ,
{ type : "cloudCheck" , text : "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings." } ,
] ,
guideSteps : [
{ step : 1 , title : "Open Settings" , desc : "Go to Settings → Models" } ,
{ step : 2 , title : "Enable OpenAI API" , desc : "Enable \"OpenAI API key\" option" } ,
{ step : 3 , title : "Base URL" , value : "{{baseUrl}}/v1" , copyable : true } ,
{ step : 4 , title : "API Key" , type : "apiKeySelector" } ,
{ step : 5 , title : "Add Custom Model" , desc : "Click \"View All Model\" → \"Add Custom Model\"" } ,
{ step : 6 , title : "Select Model" , type : "modelSelector" } ,
] ,
} ,
cline : {
id : "cline" ,
2026-01-18 22:39:30 -05:00
name : "Cline" ,
2026-01-04 21:58:59 -05:00
image : "/providers/cline.png" ,
color : "#00D1B2" ,
description : "CLINE AI Assistant" ,
configType : "guide" ,
guideSteps : [
{ step : 1 , title : "Open Settings" , desc : "Go to CLINE Settings panel" } ,
{ step : 2 , title : "Select Provider" , desc : "Choose API Provider → Ollama" } ,
{ step : 3 , title : "Base URL" , value : "{{baseUrl}}" , copyable : true } ,
{ step : 4 , title : "API Key" , type : "apiKeySelector" } ,
{ step : 5 , title : "Select Model" , type : "modelSelector" } ,
] ,
} ,
roo : {
id : "roo" ,
name : "Roo" ,
image : "/providers/roo.png" ,
color : "#FF6B6B" ,
description : "Roo AI Assistant" ,
configType : "guide" ,
guideSteps : [
{ step : 1 , title : "Open Settings" , desc : "Go to Roo Settings panel" } ,
{ step : 2 , title : "Select Provider" , desc : "Choose API Provider → Ollama" } ,
{ step : 3 , title : "Base URL" , value : "{{baseUrl}}" , copyable : true } ,
{ step : 4 , title : "API Key" , type : "apiKeySelector" } ,
{ step : 5 , title : "Select Model" , type : "modelSelector" } ,
] ,
} ,
continue : {
id : "continue" ,
name : "Continue" ,
image : "/providers/continue.png" ,
color : "#7C3AED" ,
description : "Continue AI Assistant" ,
configType : "guide" ,
guideSteps : [
{ step : 1 , title : "Open Config" , desc : "Open Continue configuration file" } ,
{ step : 2 , title : "API Key" , type : "apiKeySelector" } ,
{ step : 3 , title : "Select Model" , type : "modelSelector" } ,
{ step : 4 , title : "Add Model Config" , desc : "Add the following configuration to your models array:" } ,
] ,
codeBlock : {
language : "json" ,
code : ` {
"apiBase" : "{{baseUrl}}" ,
"title" : "{{model}}" ,
"model" : "{{model}}" ,
"provider" : "openai" ,
"apiKey" : "{{apiKey}}"
} ` ,
} ,
} ,
// HIDDEN: gemini-cli
// "gemini-cli": {
// id: "gemini-cli",
// name: "Gemini CLI",
// icon: "terminal",
// color: "#4285F4",
// description: "Google Gemini CLI",
// configType: "env",
// envVars: {
// baseUrl: "GEMINI_API_BASE_URL",
// model: "GEMINI_MODEL",
// },
// defaultModels: [
// { id: "gemini-2.5-pro", name: "Gemini 2.5 Pro", alias: "pro" },
// { id: "gemini-2.5-flash", name: "Gemini 2.5 Flash", alias: "flash" },
// ],
// },
} ;
// Get all provider models for mapping dropdown
export const getProviderModelsForMapping = ( providers ) => {
const result = [ ] ;
providers . forEach ( conn => {
if ( conn . isActive && ( conn . testStatus === "active" || conn . testStatus === "success" ) ) {
result . push ( {
connectionId : conn . id ,
provider : conn . provider ,
name : conn . name ,
models : conn . models || [ ] ,
} ) ;
}
} ) ;
return result ;
} ;