mirror of
https://github.com/aaif-goose/goose.git
synced 2026-07-03 14:10:03 +02:00
chore: some old code hanging around, and mention configure cli (#5822)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -428,7 +428,7 @@ impl Provider for GithubCopilotProvider {
|
||||
ProviderMetadata::new(
|
||||
"github_copilot",
|
||||
"GitHub Copilot",
|
||||
"GitHub Copilot and associated models",
|
||||
"GitHub Copilot. Run `goose configure` and select copilot to set up.",
|
||||
GITHUB_COPILOT_DEFAULT_MODEL,
|
||||
GITHUB_COPILOT_KNOWN_MODELS.to_vec(),
|
||||
GITHUB_COPILOT_DOC_URL,
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
import ProviderDetails from './interfaces/ProviderDetails';
|
||||
|
||||
export interface ProviderRegistry {
|
||||
name: string;
|
||||
details: ProviderDetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provider Registry System
|
||||
* ========================
|
||||
*
|
||||
* This registry defines all available providers and how they behave in the UI.
|
||||
* It works with a dynamic modal system to create a flexible, extensible architecture
|
||||
* for managing provider configurations.
|
||||
*
|
||||
* How the System Works:
|
||||
* --------------------
|
||||
*
|
||||
* 1. Provider Definition:
|
||||
* Each provider entry in the registry defines its core properties:
|
||||
* - Basic info (id, name, description)
|
||||
* - Parameters needed for configuration
|
||||
* - Optional custom form component
|
||||
* - Action buttons that appear on provider cards
|
||||
*
|
||||
* 2. Configuration submission:
|
||||
*
|
||||
* Modal Content - What form appears in the configuration modal
|
||||
* - A single modal component exists in the app
|
||||
* - Content changes dynamically based on the provider being configured
|
||||
* - If provider has CustomForm property, that component is rendered
|
||||
* - Otherwise, DefaultProviderForm renders based on parameters array
|
||||
*
|
||||
* 3. Modal Flow:
|
||||
* - User clicks Configure button on a provider card
|
||||
* - Button handler calls openModal() with the provider object
|
||||
* - Modal context stores the current provider and opens the modal
|
||||
* - ProviderConfigModal checks for CustomForm on the current provider
|
||||
* - Appropriate form is rendered with provider data passed as props
|
||||
*
|
||||
* Adding a New Provider:
|
||||
* ---------------------
|
||||
*
|
||||
* For a standard provider with simple configuration:
|
||||
* - Define parameters array with all required fields and any defaults that should be supplied
|
||||
* - No need to specify a CustomForm
|
||||
*
|
||||
* For a provider needing custom configuration:
|
||||
* - Define parameters array (if needed, otherwise leave as an empty list)
|
||||
* - Create a custom form component and assign to CustomForm property
|
||||
*
|
||||
* This architecture centralizes provider definitions while allowing
|
||||
* flexibility for special cases, keeping the codebase maintainable.
|
||||
*/
|
||||
|
||||
export const PROVIDER_REGISTRY: ProviderRegistry[] = [
|
||||
{
|
||||
name: 'OpenAI',
|
||||
details: {
|
||||
id: 'openai',
|
||||
name: 'OpenAI',
|
||||
description: 'Access GPT-4, GPT-3.5 Turbo, and other OpenAI models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'OPENAI_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
{
|
||||
name: 'OPENAI_HOST',
|
||||
is_secret: false,
|
||||
default: 'https://api.openai.com',
|
||||
},
|
||||
{
|
||||
name: 'OPENAI_BASE_PATH',
|
||||
is_secret: false,
|
||||
default: 'v1/chat/completions',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Anthropic',
|
||||
details: {
|
||||
id: 'anthropic',
|
||||
name: 'Anthropic',
|
||||
description: 'Access Claude and other Anthropic models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'ANTHROPIC_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
{
|
||||
name: 'ANTHROPIC_HOST',
|
||||
is_secret: false,
|
||||
default: 'https://api.anthropic.com',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'xAI',
|
||||
details: {
|
||||
id: 'xai',
|
||||
name: 'xAI',
|
||||
description: 'Access Grok models from xAI, including reasoning and multimodal capabilities',
|
||||
parameters: [
|
||||
{
|
||||
name: 'XAI_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
{
|
||||
name: 'XAI_HOST',
|
||||
is_secret: false,
|
||||
default: 'https://api.x.ai/v1',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Google',
|
||||
details: {
|
||||
id: 'google',
|
||||
name: 'Google',
|
||||
description: 'Access Gemini and other Google AI models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'GOOGLE_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Groq',
|
||||
details: {
|
||||
id: 'groq',
|
||||
name: 'Groq',
|
||||
description: 'Access Mixtral and other Groq-hosted models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'GROQ_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Databricks',
|
||||
details: {
|
||||
id: 'databricks',
|
||||
name: 'Databricks',
|
||||
description: 'Access models hosted on your Databricks instance',
|
||||
parameters: [
|
||||
{
|
||||
name: 'DATABRICKS_HOST',
|
||||
is_secret: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'OpenRouter',
|
||||
details: {
|
||||
id: 'openrouter',
|
||||
name: 'OpenRouter',
|
||||
description: 'Access a variety of AI models through OpenRouter',
|
||||
parameters: [
|
||||
{
|
||||
name: 'OPENROUTER_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Ollama',
|
||||
details: {
|
||||
id: 'ollama',
|
||||
name: 'Ollama',
|
||||
description: 'Run and use open-source models locally',
|
||||
parameters: [
|
||||
{
|
||||
name: 'OLLAMA_HOST',
|
||||
is_secret: false,
|
||||
default: 'localhost',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Azure OpenAI',
|
||||
details: {
|
||||
id: 'azure_openai',
|
||||
name: 'Azure OpenAI',
|
||||
description:
|
||||
'Access Azure OpenAI models using API key or Azure credentials. If no API key is provided, Azure credential chain will be used.',
|
||||
parameters: [
|
||||
{
|
||||
name: 'AZURE_OPENAI_ENDPOINT',
|
||||
is_secret: false,
|
||||
},
|
||||
{
|
||||
name: 'AZURE_OPENAI_DEPLOYMENT_NAME',
|
||||
is_secret: false,
|
||||
},
|
||||
{
|
||||
name: 'AZURE_OPENAI_API_VERSION',
|
||||
is_secret: false,
|
||||
default: '2024-10-21',
|
||||
},
|
||||
{
|
||||
name: 'AZURE_OPENAI_API_KEY',
|
||||
is_secret: true,
|
||||
default: '',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'GCP Vertex AI',
|
||||
details: {
|
||||
id: 'gcp_vertex_ai',
|
||||
name: 'GCP Vertex AI',
|
||||
description: 'GCP Vertex AI models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'GCP_PROJECT_ID',
|
||||
is_secret: false,
|
||||
},
|
||||
{
|
||||
name: 'GCP_LOCATION',
|
||||
is_secret: false,
|
||||
default: 'us-central1',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Snowflake',
|
||||
details: {
|
||||
id: 'snowflake',
|
||||
name: 'Snowflake',
|
||||
description: 'Access the latest models using Snowflake Cortex services.',
|
||||
parameters: [
|
||||
{
|
||||
name: 'SNOWFLAKE_HOST',
|
||||
is_secret: false,
|
||||
},
|
||||
{
|
||||
name: 'SNOWFLAKE_TOKEN',
|
||||
is_secret: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Tetrate Agent Router Service',
|
||||
details: {
|
||||
id: 'tetrate_agent_router_service',
|
||||
name: 'Tetrate Agent Router Service',
|
||||
description:
|
||||
'Unified router for AI models including Claude, Gemini, GPT, and open-weight models',
|
||||
parameters: [
|
||||
{
|
||||
name: 'TETRATE_API_KEY',
|
||||
is_secret: true,
|
||||
},
|
||||
{
|
||||
name: 'TETRATE_HOST',
|
||||
is_secret: false,
|
||||
default: 'https://api.router.tetrate.ai',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user