Documentation
¶
Overview ¶
Package tools: consolidated interfaces for mocking CLI/tool dependencies
Index ¶
- Variables
- func CanIUseProvider(ctx context.Context, grpcClient client.FabricClient, ...) error
- func CheckProviderConfigured(ctx context.Context, client cliClient.FabricClient, ...) (cliClient.Provider, error)
- func HandleConfigError(err error) *mcp.CallToolResult
- func HandleTermsOfServiceError(err error) *mcp.CallToolResult
- func SetupTools(s *server.MCPServer, cluster string, authPort int, ...)
- type CLIInterface
- type Connecter
- type DefaultCLI
- func (c *DefaultCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
- func (c *DefaultCLI) LoadProjectNameWithFallback(ctx context.Context, loader cliClient.Loader, provider cliClient.Provider) (string, error)
- func (c *DefaultCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- type DefaultDeployCLI
- func (c *DefaultDeployCLI) CheckProviderConfigured(ctx context.Context, client *cliClient.GrpcClient, ...) (cliClient.Provider, error)
- func (c *DefaultDeployCLI) ComposeUp(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, ...) (*defangv1.DeployResponse, *compose.Project, error)
- func (c *DefaultDeployCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
- func (c *DefaultDeployCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
- func (c *DefaultDeployCLI) LoadProject(ctx context.Context, loader cliClient.Loader) (*compose.Project, error)
- func (c *DefaultDeployCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- func (c *DefaultDeployCLI) OpenBrowser(url string) error
- type DefaultDeploymentInfo
- type DefaultEstimateCLI
- func (c *DefaultEstimateCLI) CaptureTermOutput(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) string
- func (c *DefaultEstimateCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
- func (c *DefaultEstimateCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
- func (c *DefaultEstimateCLI) CreatePlaygroundProvider(client *cliClient.GrpcClient) cliClient.Provider
- func (c *DefaultEstimateCLI) GetRegion(providerId cliClient.ProviderID) string
- func (c *DefaultEstimateCLI) LoadProject(ctx context.Context, loader cliClient.Loader) (*compose.Project, error)
- func (c *DefaultEstimateCLI) PrintEstimate(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse)
- func (c *DefaultEstimateCLI) RunEstimate(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, ...) (*defangv1.EstimateResponse, error)
- func (c *DefaultEstimateCLI) SetProviderID(providerId *cliClient.ProviderID, providerString string) error
- type DefaultLoginCLI
- type DefaultToolCLI
- func (c *DefaultToolCLI) CanIUseProvider(ctx context.Context, client *cliClient.GrpcClient, ...) error
- func (c *DefaultToolCLI) CaptureTermOutput(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) string
- func (c *DefaultToolCLI) CheckProviderConfigured(ctx context.Context, client *cliClient.GrpcClient, ...) (cliClient.Provider, error)
- func (c *DefaultToolCLI) ComposeDown(ctx context.Context, projectName string, client *cliClient.GrpcClient, ...) (string, error)
- func (c *DefaultToolCLI) ComposeUp(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, ...) (*defangv1.DeployResponse, *compose.Project, error)
- func (c *DefaultToolCLI) ConfigDelete(ctx context.Context, projectName string, provider cliClient.Provider, ...) error
- func (c *DefaultToolCLI) ConfigSet(ctx context.Context, projectName string, provider cliClient.Provider, ...) error
- func (c *DefaultToolCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
- func (c *DefaultToolCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
- func (c *DefaultToolCLI) CreatePlaygroundProvider(client *cliClient.GrpcClient) cliClient.Provider
- func (c *DefaultToolCLI) GetRegion(providerId cliClient.ProviderID) string
- func (c *DefaultToolCLI) GetServices(ctx context.Context, projectName string, provider cliClient.Provider) ([]deployment_info.Service, error)
- func (c *DefaultToolCLI) ListConfig(ctx context.Context, provider cliClient.Provider, projectName string) (*defangv1.Secrets, error)
- func (c *DefaultToolCLI) LoadProject(ctx context.Context, loader cliClient.Loader) (*compose.Project, error)
- func (c *DefaultToolCLI) LoadProjectNameWithFallback(ctx context.Context, loader cliClient.Loader, provider cliClient.Provider) (string, error)
- func (c *DefaultToolCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- func (c *DefaultToolCLI) NewProviderFabric(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- func (c *DefaultToolCLI) NewProviderGrpc(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- func (c *DefaultToolCLI) OpenBrowser(url string) error
- func (c *DefaultToolCLI) PrintEstimate(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse)
- func (c *DefaultToolCLI) RunEstimate(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, ...) (*defangv1.EstimateResponse, error)
- func (c *DefaultToolCLI) SetProviderID(providerId *cliClient.ProviderID, providerString string) error
- type DeployCLIAdapter
- type DeployCLIInterface
- type DeploymentInfoInterface
- type DestroyCLIAdapter
- type DestroyCLIInterface
- type EstimateCLIInterface
- type ListConfigCLIAdapter
- type ListConfigCLIInterface
- type LoaderConfigurator
- type LoginCLIAdapter
- type LoginCLIInterface
- type ProjectNameLoader
- type ProviderFactory
- type RemoveConfigCLIAdapter
- func (a *RemoveConfigCLIAdapter) ConfigDelete(ctx context.Context, projectName string, provider cliClient.Provider, ...) error
- func (a *RemoveConfigCLIAdapter) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
- func (a *RemoveConfigCLIAdapter) LoadProjectNameWithFallback(ctx context.Context, loader cliClient.Loader, provider cliClient.Provider) (string, error)
- type RemoveConfigCLIInterface
- type SetConfigCLIAdapter
- func (a *SetConfigCLIAdapter) ConfigSet(ctx context.Context, projectName string, provider cliClient.Provider, ...) error
- func (a *SetConfigCLIAdapter) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
- func (a *SetConfigCLIAdapter) LoadProjectNameWithFallback(ctx context.Context, loader cliClient.Loader, provider cliClient.Provider) (string, error)
- func (a *SetConfigCLIAdapter) NewProvider(ctx context.Context, providerId cliClient.ProviderID, ...) (cliClient.Provider, error)
- type SetConfigCLIInterface
Constants ¶
This section is empty.
Variables ¶
var OpenURLFunc = browser.OpenURL
OpenURLFunc allows browser.OpenURL to be overridden in tests
Functions ¶
func CanIUseProvider ¶
func CheckProviderConfigured ¶
func HandleConfigError ¶
func HandleConfigError(err error) *mcp.CallToolResult
func HandleTermsOfServiceError ¶
func HandleTermsOfServiceError(err error) *mcp.CallToolResult
HandleTermsOfServiceError checks if the error is related to terms of service not being accepted and returns an appropriate error message if it is. Returns nil if the error is not related to terms of service.
func SetupTools ¶
SetupTools configures and adds all the MCP tools to the server
Types ¶
type CLIInterface ¶
type CLIInterface interface { Connecter // Unique methods NewProvider(ctx context.Context, providerId cliClient.ProviderID, client cliClient.FabricClient) (cliClient.Provider, error) LoadProjectNameWithFallback(ctx context.Context, loader cliClient.Loader, provider cliClient.Provider) (string, error) }
type Connecter ¶
type Connecter interface {
Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
}
--- Common method sets ---
type DefaultCLI ¶
type DefaultCLI struct{}
DefaultCLI implements CLIInterface using the actual CLI functions
func (*DefaultCLI) Connect ¶
func (c *DefaultCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
func (*DefaultCLI) LoadProjectNameWithFallback ¶
func (*DefaultCLI) NewProvider ¶
func (c *DefaultCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, client cliClient.FabricClient) (cliClient.Provider, error)
type DefaultDeployCLI ¶
type DefaultDeployCLI struct{}
DefaultDeployCLI implements DeployCLIInterface using actual CLI functions
func (*DefaultDeployCLI) CheckProviderConfigured ¶
func (c *DefaultDeployCLI) CheckProviderConfigured(ctx context.Context, client *cliClient.GrpcClient, providerId cliClient.ProviderID, projectName string, serviceCount int) (cliClient.Provider, error)
func (*DefaultDeployCLI) ComposeUp ¶
func (c *DefaultDeployCLI) ComposeUp(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, uploadMode compose.UploadMode, mode defangv1.DeploymentMode) (*defangv1.DeployResponse, *compose.Project, error)
func (*DefaultDeployCLI) ConfigureLoader ¶
func (c *DefaultDeployCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
func (*DefaultDeployCLI) Connect ¶
func (c *DefaultDeployCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
func (*DefaultDeployCLI) LoadProject ¶
func (*DefaultDeployCLI) NewProvider ¶
func (c *DefaultDeployCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, client *cliClient.GrpcClient) (cliClient.Provider, error)
func (*DefaultDeployCLI) OpenBrowser ¶
func (c *DefaultDeployCLI) OpenBrowser(url string) error
type DefaultDeploymentInfo ¶
type DefaultDeploymentInfo struct{}
DefaultDeploymentInfo implements DeploymentInfoInterface using the actual deployment_info functions
func (*DefaultDeploymentInfo) GetServices ¶
func (d *DefaultDeploymentInfo) GetServices(ctx context.Context, projectName string, provider cliClient.Provider) ([]deployment_info.Service, error)
type DefaultEstimateCLI ¶
type DefaultEstimateCLI struct{}
DefaultEstimateCLI implements EstimateCLIInterface using actual CLI functions
func (*DefaultEstimateCLI) CaptureTermOutput ¶
func (c *DefaultEstimateCLI) CaptureTermOutput(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) string
func (*DefaultEstimateCLI) ConfigureLoader ¶
func (c *DefaultEstimateCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
func (*DefaultEstimateCLI) Connect ¶
func (c *DefaultEstimateCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
func (*DefaultEstimateCLI) CreatePlaygroundProvider ¶
func (c *DefaultEstimateCLI) CreatePlaygroundProvider(client *cliClient.GrpcClient) cliClient.Provider
func (*DefaultEstimateCLI) GetRegion ¶
func (c *DefaultEstimateCLI) GetRegion(providerId cliClient.ProviderID) string
func (*DefaultEstimateCLI) LoadProject ¶
func (*DefaultEstimateCLI) PrintEstimate ¶
func (c *DefaultEstimateCLI) PrintEstimate(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse)
func (*DefaultEstimateCLI) RunEstimate ¶
func (c *DefaultEstimateCLI) RunEstimate(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, providerId cliClient.ProviderID, region string, mode defangv1.DeploymentMode) (*defangv1.EstimateResponse, error)
func (*DefaultEstimateCLI) SetProviderID ¶
func (c *DefaultEstimateCLI) SetProviderID(providerId *cliClient.ProviderID, providerString string) error
type DefaultLoginCLI ¶
type DefaultLoginCLI struct{}
DefaultLoginCLI provides the default implementation
func (*DefaultLoginCLI) Connect ¶
func (c *DefaultLoginCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
func (*DefaultLoginCLI) GenerateAuthURL ¶
func (c *DefaultLoginCLI) GenerateAuthURL(authPort int) string
func (*DefaultLoginCLI) InteractiveLoginMCP ¶
func (c *DefaultLoginCLI) InteractiveLoginMCP(ctx context.Context, client *cliClient.GrpcClient, cluster string) error
type DefaultToolCLI ¶
type DefaultToolCLI struct{}
func (*DefaultToolCLI) CanIUseProvider ¶
func (c *DefaultToolCLI) CanIUseProvider(ctx context.Context, client *cliClient.GrpcClient, providerId cliClient.ProviderID, projectName string, provider cliClient.Provider, serviceCount int) error
func (*DefaultToolCLI) CaptureTermOutput ¶
func (c *DefaultToolCLI) CaptureTermOutput(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) string
func (*DefaultToolCLI) CheckProviderConfigured ¶
func (c *DefaultToolCLI) CheckProviderConfigured(ctx context.Context, client *cliClient.GrpcClient, providerId cliClient.ProviderID, projectName string, serviceCount int) (cliClient.Provider, error)
func (*DefaultToolCLI) ComposeDown ¶
func (c *DefaultToolCLI) ComposeDown(ctx context.Context, projectName string, client *cliClient.GrpcClient, provider cliClient.Provider) (string, error)
func (*DefaultToolCLI) ComposeUp ¶
func (c *DefaultToolCLI) ComposeUp(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, uploadMode compose.UploadMode, mode defangv1.DeploymentMode) (*defangv1.DeployResponse, *compose.Project, error)
func (*DefaultToolCLI) ConfigDelete ¶
func (*DefaultToolCLI) ConfigureLoader ¶
func (c *DefaultToolCLI) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
func (*DefaultToolCLI) Connect ¶
func (c *DefaultToolCLI) Connect(ctx context.Context, cluster string) (*cliClient.GrpcClient, error)
func (*DefaultToolCLI) CreatePlaygroundProvider ¶
func (c *DefaultToolCLI) CreatePlaygroundProvider(client *cliClient.GrpcClient) cliClient.Provider
func (*DefaultToolCLI) GetRegion ¶
func (c *DefaultToolCLI) GetRegion(providerId cliClient.ProviderID) string
func (*DefaultToolCLI) GetServices ¶
func (c *DefaultToolCLI) GetServices(ctx context.Context, projectName string, provider cliClient.Provider) ([]deployment_info.Service, error)
func (*DefaultToolCLI) ListConfig ¶
func (*DefaultToolCLI) LoadProject ¶
func (*DefaultToolCLI) LoadProjectNameWithFallback ¶
func (*DefaultToolCLI) NewProvider ¶
func (c *DefaultToolCLI) NewProvider(ctx context.Context, providerId cliClient.ProviderID, client *cliClient.GrpcClient) (cliClient.Provider, error)
func (*DefaultToolCLI) NewProviderFabric ¶
func (c *DefaultToolCLI) NewProviderFabric(ctx context.Context, providerId cliClient.ProviderID, client cliClient.FabricClient) (cliClient.Provider, error)
func (*DefaultToolCLI) NewProviderGrpc ¶
func (c *DefaultToolCLI) NewProviderGrpc(ctx context.Context, providerId cliClient.ProviderID, client *cliClient.GrpcClient) (cliClient.Provider, error)
func (*DefaultToolCLI) OpenBrowser ¶
func (c *DefaultToolCLI) OpenBrowser(url string) error
func (*DefaultToolCLI) PrintEstimate ¶
func (c *DefaultToolCLI) PrintEstimate(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse)
func (*DefaultToolCLI) RunEstimate ¶
func (c *DefaultToolCLI) RunEstimate(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, providerId cliClient.ProviderID, region string, mode defangv1.DeploymentMode) (*defangv1.EstimateResponse, error)
func (*DefaultToolCLI) SetProviderID ¶
func (c *DefaultToolCLI) SetProviderID(providerId *cliClient.ProviderID, providerString string) error
type DeployCLIAdapter ¶
type DeployCLIAdapter struct{ *DefaultToolCLI }
--- Adapter types for tool interfaces --- The following adapter types embed DefaultToolCLI to implement specific tool interfaces.
type DeployCLIInterface ¶
type DeployCLIInterface interface { Connecter ProviderFactory LoaderConfigurator // Unique methods ComposeUp(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, uploadMode compose.UploadMode, mode defangv1.DeploymentMode) (*defangv1.DeployResponse, *compose.Project, error) CheckProviderConfigured(ctx context.Context, client *cliClient.GrpcClient, providerId cliClient.ProviderID, projectName string, serviceCount int) (cliClient.Provider, error) LoadProject(ctx context.Context, loader cliClient.Loader) (*compose.Project, error) OpenBrowser(url string) error }
--- Tool interfaces composed from common sets ---
type DeploymentInfoInterface ¶
type DestroyCLIAdapter ¶
type DestroyCLIAdapter struct{ *DefaultToolCLI }
func (*DestroyCLIAdapter) ConfigureLoader ¶
func (a *DestroyCLIAdapter) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
type DestroyCLIInterface ¶
type DestroyCLIInterface interface { Connecter ProviderFactory LoaderConfigurator ProjectNameLoader // Unique methods ComposeDown(ctx context.Context, projectName string, client *cliClient.GrpcClient, provider cliClient.Provider) (string, error) CanIUseProvider(ctx context.Context, client *cliClient.GrpcClient, providerId cliClient.ProviderID, projectName string, provider cliClient.Provider, serviceCount int) error }
type EstimateCLIInterface ¶
type EstimateCLIInterface interface { Connecter LoaderConfigurator // Unique methods LoadProject(ctx context.Context, loader cliClient.Loader) (*compose.Project, error) RunEstimate(ctx context.Context, project *compose.Project, client *cliClient.GrpcClient, provider cliClient.Provider, providerId cliClient.ProviderID, region string, mode defangv1.DeploymentMode) (*defangv1.EstimateResponse, error) PrintEstimate(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) GetRegion(providerId cliClient.ProviderID) string CreatePlaygroundProvider(client *cliClient.GrpcClient) cliClient.Provider SetProviderID(providerId *cliClient.ProviderID, providerString string) error CaptureTermOutput(mode defangv1.DeploymentMode, estimate *defangv1.EstimateResponse) string }
type ListConfigCLIAdapter ¶
type ListConfigCLIAdapter struct{ *DefaultToolCLI }
type ListConfigCLIInterface ¶
type ListConfigCLIInterface interface { Connecter ProviderFactory LoaderConfigurator ProjectNameLoader // Unique methods ListConfig(ctx context.Context, provider cliClient.Provider, projectName string) (*defangv1.Secrets, error) }
type LoaderConfigurator ¶
type LoaderConfigurator interface {
ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
}
type LoginCLIAdapter ¶
type LoginCLIAdapter struct{ *DefaultToolCLI }
func (*LoginCLIAdapter) GenerateAuthURL ¶
func (a *LoginCLIAdapter) GenerateAuthURL(authPort int) string
func (*LoginCLIAdapter) InteractiveLoginMCP ¶
func (a *LoginCLIAdapter) InteractiveLoginMCP(ctx context.Context, client *cliClient.GrpcClient, cluster string) error
--- LoginCLIInterface ---
type LoginCLIInterface ¶
type ProjectNameLoader ¶
type ProviderFactory ¶
type ProviderFactory interface {
NewProvider(ctx context.Context, providerId cliClient.ProviderID, client *cliClient.GrpcClient) (cliClient.Provider, error)
}
type RemoveConfigCLIAdapter ¶
type RemoveConfigCLIAdapter struct{ *DefaultToolCLI }
func (*RemoveConfigCLIAdapter) ConfigDelete ¶
func (*RemoveConfigCLIAdapter) ConfigureLoader ¶
func (a *RemoveConfigCLIAdapter) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
--- RemoveConfigCLIInterface ---
type RemoveConfigCLIInterface ¶
type RemoveConfigCLIInterface interface { Connecter ProviderFactory LoaderConfigurator ProjectNameLoader // Unique methods ConfigDelete(ctx context.Context, projectName string, provider cliClient.Provider, name string) error }
type SetConfigCLIAdapter ¶
type SetConfigCLIAdapter struct{ *DefaultToolCLI }
func (*SetConfigCLIAdapter) ConfigureLoader ¶
func (a *SetConfigCLIAdapter) ConfigureLoader(request mcp.CallToolRequest) cliClient.Loader
func (*SetConfigCLIAdapter) LoadProjectNameWithFallback ¶
func (*SetConfigCLIAdapter) NewProvider ¶
func (a *SetConfigCLIAdapter) NewProvider(ctx context.Context, providerId cliClient.ProviderID, client cliClient.FabricClient) (cliClient.Provider, error)
--- SetConfigCLIInterface ---
type SetConfigCLIInterface ¶
type SetConfigCLIInterface interface { Connecter LoaderConfigurator ProjectNameLoader // Unique methods NewProvider(ctx context.Context, providerId cliClient.ProviderID, client cliClient.FabricClient) (cliClient.Provider, error) ConfigSet(ctx context.Context, projectName string, provider cliClient.Provider, name, value string) error }