tools

package
v0.0.0-...-d7328e9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2025 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

Package tools: consolidated interfaces for mocking CLI/tool dependencies

Index

Constants

View Source
const CreateNewStack = "Create new stack"

Variables

This section is empty.

Functions

func CollectDefangTools

func CollectDefangTools(ec elicitations.Controller, config StackConfig) []ai.Tool

func HandleCreateAWSStackTool

func HandleCreateAWSStackTool(ctx context.Context, params CreateAWSStackParams, sc StackConfig) (string, error)

func HandleCreateGCPStackTool

func HandleCreateGCPStackTool(ctx context.Context, params CreateGCPStackParams, sc StackConfig) (string, error)

func HandleCurrentStackTool

func HandleCurrentStackTool(ctx context.Context, sc StackConfig) (string, error)

func HandleDeployTool

func HandleDeployTool(ctx context.Context, loader client.ProjectLoader, params DeployParams, cli CLIInterface, ec elicitations.Controller, config StackConfig) (string, error)

func HandleDestroyTool

func HandleDestroyTool(ctx context.Context, loader client.ProjectLoader, params DestroyParams, cli CLIInterface, ec elicitations.Controller, config StackConfig) (string, error)

func HandleEstimateTool

func HandleEstimateTool(ctx context.Context, loader client.ProjectLoader, params EstimateParams, cli CLIInterface, sc StackConfig) (string, error)

func HandleListConfigTool

func HandleListConfigTool(ctx context.Context, loader client.ProjectLoader, params ListConfigParams, cli CLIInterface, ec elicitations.Controller, sc StackConfig) (string, error)

HandleListConfigTool handles the list config tool logic

func HandleListStacksTool

func HandleListStacksTool(ctx context.Context, params ListStacksParams) (string, error)

func HandleLogsTool

func HandleLogsTool(ctx context.Context, loader client.ProjectLoader, params LogsParams, cli CLIInterface, ec elicitations.Controller, config StackConfig) (string, error)

func HandleRemoveConfigTool

func HandleRemoveConfigTool(ctx context.Context, loader client.ProjectLoader, params RemoveConfigParams, cli CLIInterface, ec elicitations.Controller, sc StackConfig) (string, error)

HandleRemoveConfigTool handles the remove config tool logic

func HandleSelectStackTool

func HandleSelectStackTool(ctx context.Context, params SelectStackParams, sc StackConfig) (string, error)

func HandleServicesTool

func HandleServicesTool(ctx context.Context, loader client.ProjectLoader, params ServicesParams, cli CLIInterface, ec elicitations.Controller, config StackConfig) (string, error)

func NewProviderPreparer

func NewProviderPreparer(pc ProviderCreator, ec elicitations.Controller, fc client.FabricClient, sm stacks.Manager) *providerPreparer

Types

type CLIInterface

type CLIInterface interface {
	CanIUseProvider(ctx context.Context, fabric *client.GrpcClient, projectName, stackName string, provider client.Provider, serviceCount int) error
	ComposeDown(ctx context.Context, projectName string, fabric *client.GrpcClient, provider client.Provider) (string, error)
	ComposeUp(ctx context.Context, fabric *client.GrpcClient, provider client.Provider, params cli.ComposeUpParams) (*defangv1.DeployResponse, *compose.Project, error)
	ConfigDelete(ctx context.Context, projectName string, provider client.Provider, name string) error
	ConfigSet(ctx context.Context, projectName string, provider client.Provider, name, value string) error
	Connect(ctx context.Context, cluster string) (*client.GrpcClient, error)
	CreatePlaygroundProvider(fabric *client.GrpcClient) client.Provider
	GenerateAuthURL(authPort int) string
	GetServices(ctx context.Context, projectName string, provider client.Provider) ([]*cli.Service, error)
	InteractiveLoginMCP(ctx context.Context, cluster string, mcpClient string) error
	ListConfig(ctx context.Context, provider client.Provider, projectName string) (*defangv1.Secrets, error)
	LoadProject(ctx context.Context, loader client.Loader) (*compose.Project, error)
	LoadProjectNameWithFallback(ctx context.Context, loader client.Loader, provider client.Provider) (string, error)
	NewProvider(ctx context.Context, providerId client.ProviderID, client client.FabricClient, stack string) client.Provider
	PrintEstimate(mode modes.Mode, estimate *defangv1.EstimateResponse) string
	RunEstimate(ctx context.Context, project *compose.Project, fabric *client.GrpcClient, provider client.Provider, providerId client.ProviderID, region string, mode modes.Mode) (*defangv1.EstimateResponse, error)
	Tail(ctx context.Context, provider client.Provider, projectName string, options cli.TailOptions) error
}

type CreateAWSStackParams

type CreateAWSStackParams struct {
	common.LoaderParams
	Name        string `json:"stack" jsonschema:"required,description=The name of the stack to use for all tool calls."`
	Region      string `json:"region" jsonschema:"required,description=The AWS region to create the stack in."`
	AWS_Profile string `json:"aws_profile" jsonschema:"required,description=The AWS profile to use when creating the stack."`
	Mode        string `json:"mode" jsonschema:"enum=affordable,enum=balanced,enum=high_availability,description=The deployment mode for the stack."`
}

type CreateGCPStackParams

type CreateGCPStackParams struct {
	common.LoaderParams
	Name         string `json:"stack" jsonschema:"required,description=The name of the stack to use for all tool calls."`
	Region       string `json:"region" jsonschema:"required,description=The GCP region to create the stack in."`
	GCPProjectID string `json:"gcp_project_id" jsonschema:"required,description=The GCP project ID to use when creating the stack."`
	Mode         string `json:"mode" jsonschema:"enum=affordable,enum=balanced,enum=high_availability,description=The deployment mode for the stack."`
}

type CurrentStackParams

type CurrentStackParams struct{}

type DefaultToolCLI

type DefaultToolCLI struct{}

func (DefaultToolCLI) CanIUseProvider

func (DefaultToolCLI) CanIUseProvider(ctx context.Context, fabric *client.GrpcClient, projectName, stackName string, provider client.Provider, serviceCount int) error

func (DefaultToolCLI) ComposeDown

func (DefaultToolCLI) ComposeDown(ctx context.Context, projectName string, fabric *client.GrpcClient, provider client.Provider) (string, error)

func (DefaultToolCLI) ComposeUp

func (DefaultToolCLI) ConfigDelete

func (DefaultToolCLI) ConfigDelete(ctx context.Context, projectName string, provider client.Provider, name string) error

func (DefaultToolCLI) ConfigSet

func (DefaultToolCLI) ConfigSet(ctx context.Context, projectName string, provider client.Provider, name, value string) error

func (DefaultToolCLI) Connect

func (DefaultToolCLI) Connect(ctx context.Context, cluster string) (*client.GrpcClient, error)

func (DefaultToolCLI) CreatePlaygroundProvider

func (DefaultToolCLI) CreatePlaygroundProvider(fabric *client.GrpcClient) client.Provider

func (DefaultToolCLI) GenerateAuthURL

func (DefaultToolCLI) GenerateAuthURL(authPort int) string

func (DefaultToolCLI) GetServices

func (DefaultToolCLI) GetServices(ctx context.Context, projectName string, provider client.Provider) ([]*cli.Service, error)

func (DefaultToolCLI) InteractiveLoginMCP

func (DefaultToolCLI) InteractiveLoginMCP(ctx context.Context, cluster string, mcpClient string) error

func (DefaultToolCLI) ListConfig

func (DefaultToolCLI) ListConfig(ctx context.Context, provider client.Provider, projectName string) (*defangv1.Secrets, error)

func (DefaultToolCLI) LoadProject

func (DefaultToolCLI) LoadProject(ctx context.Context, loader client.Loader) (*compose.Project, error)

func (DefaultToolCLI) LoadProjectNameWithFallback

func (DefaultToolCLI) LoadProjectNameWithFallback(ctx context.Context, loader client.Loader, provider client.Provider) (string, error)

func (DefaultToolCLI) NewProvider

func (DefaultToolCLI) NewProvider(ctx context.Context, providerId client.ProviderID, fabric client.FabricClient, stack string) client.Provider

func (DefaultToolCLI) PrintEstimate

func (DefaultToolCLI) PrintEstimate(mode modes.Mode, estimate *defangv1.EstimateResponse) string

func (DefaultToolCLI) RunEstimate

func (DefaultToolCLI) RunEstimate(ctx context.Context, project *compose.Project, fabric *client.GrpcClient, provider client.Provider, providerId client.ProviderID, region string, mode modes.Mode) (*defangv1.EstimateResponse, error)

func (DefaultToolCLI) Tail

func (DefaultToolCLI) Tail(ctx context.Context, provider client.Provider, projectName string, options cli.TailOptions) error

type DeployParams

type DeployParams struct {
	common.LoaderParams
}

type DestroyParams

type DestroyParams struct {
	common.LoaderParams
}

type EstimateParams

type EstimateParams struct {
	common.LoaderParams
	DeploymentMode string `` /* 226-byte string literal not displayed */
	Provider       string `json:"provider" jsonschema:"required,enum=aws,enum=gcp description=The cloud provider for which to estimate costs."`
	Region         string `json:"region,omitempty" jsonschema:"description=The region in which to estimate costs."`
}

type ListConfigParams

type ListConfigParams struct {
	common.LoaderParams
}

type ListStacksParams

type ListStacksParams struct {
	common.LoaderParams
}

type LogsParams

type LogsParams struct {
	common.LoaderParams
	DeploymentID string `json:"deployment_id,omitempty" jsonschema:"description=Optional: Retrieve logs from a specific deployment."`
	Since        string `` /* 166-byte string literal not displayed */
	Until        string `` /* 167-byte string literal not displayed */
}

type ProviderCreator

type ProviderCreator interface {
	NewProvider(ctx context.Context, providerId client.ProviderID, client client.FabricClient, stack string) client.Provider
}

type RemoveConfigParams

type RemoveConfigParams struct {
	common.LoaderParams
	Name string `json:"name" jsonschema:"required"`
}

type SelectStackParams

type SelectStackParams struct {
	common.LoaderParams
	Stack string `json:"stack" jsonschema:"required,description=The name of the stack to use."`
}

type ServicesParams

type ServicesParams struct {
	common.LoaderParams
}

type SetConfigParams

type SetConfigParams struct {
	common.LoaderParams
	Name  string `json:"name" jsonschema:"required"`
	Value string `json:"value" jsonschema:"required"`
}

type StackConfig

type StackConfig struct {
	Cluster string
	Stack   *stacks.StackParameters
}