Documentation
¶
Overview ¶
Package inspect provides business logic for inspecting and explaining solutions. This package is the shared domain layer used by CLI, MCP, and future API consumers.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LoadSolution ¶
LoadSolution loads a solution from a path using the standard loader with catalog resolution. This function is reusable by CLI, MCP, and future API.
func LookupProvider ¶
func LookupProvider(ctx context.Context, name string, reg *provider.Registry) (*provider.Descriptor, error)
LookupProvider looks up a provider by name and returns its descriptor. This is a standalone function reusable by CLI, MCP, and future API.
Types ¶
type ActionInfo ¶
type ActionInfo struct {
Name string `json:"name" yaml:"name" doc:"Action name"`
Provider string `json:"provider" yaml:"provider" doc:"Provider used by this action"`
DependsOn []string `json:"dependsOn,omitempty" yaml:"dependsOn,omitempty" doc:"Action dependencies"`
Conditional bool `json:"conditional,omitempty" yaml:"conditional,omitempty" doc:"Whether action has a when condition"`
HasRetry bool `json:"hasRetry,omitempty" yaml:"hasRetry,omitempty" doc:"Whether retry is configured"`
HasForEach bool `json:"hasForEach,omitempty" yaml:"hasForEach,omitempty" doc:"Whether forEach is configured"`
SourcePos *sourcepos.Position `json:"sourcePos,omitempty" yaml:"sourcePos,omitempty" doc:"Source file location"`
}
ActionInfo holds structured information about an action.
type CatalogInfo ¶
type CatalogInfo struct {
Visibility string `json:"visibility,omitempty" yaml:"visibility,omitempty" doc:"Catalog visibility level"`
Beta bool `json:"beta,omitempty" yaml:"beta,omitempty" doc:"Whether the solution is in beta"`
Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty" doc:"Whether the solution is disabled"`
}
CatalogInfo holds catalog metadata.
type LinkInfo ¶
type LinkInfo struct {
Name string `json:"name" yaml:"name" doc:"Link display name"`
URL string `json:"url" yaml:"url" doc:"Link URL"`
}
LinkInfo holds a named link.
type MaintainerInfo ¶
type MaintainerInfo struct {
Name string `json:"name" yaml:"name" doc:"Maintainer name"`
Email string `json:"email,omitempty" yaml:"email,omitempty" doc:"Maintainer email"`
}
MaintainerInfo holds maintainer contact info.
type ResolverInfo ¶
type ResolverInfo struct {
Name string `json:"name" yaml:"name" doc:"Resolver name"`
Providers []string `json:"providers,omitempty" yaml:"providers,omitempty" doc:"Provider names used"`
DependsOn []string `json:"dependsOn,omitempty" yaml:"dependsOn,omitempty" doc:"Resolver dependencies"`
Conditional bool `json:"conditional,omitempty" yaml:"conditional,omitempty" doc:"Whether resolver has a when condition"`
Phases []string `json:"phases,omitempty" yaml:"phases,omitempty" doc:"Configured phases (resolve, transform, validate)"`
SourcePos *sourcepos.Position `json:"sourcePos,omitempty" yaml:"sourcePos,omitempty" doc:"Source file location"`
}
ResolverInfo holds structured information about a resolver.
type SolutionExplanation ¶
type SolutionExplanation struct {
Name string `json:"name" yaml:"name" doc:"Solution name"`
DisplayName string `json:"displayName,omitempty" yaml:"displayName,omitempty" doc:"Human-readable display name"`
Version string `json:"version" yaml:"version" doc:"Solution version"`
Description string `json:"description,omitempty" yaml:"description,omitempty" doc:"Solution description"`
Category string `json:"category,omitempty" yaml:"category,omitempty" doc:"Solution category"`
Path string `json:"path,omitempty" yaml:"path,omitempty" doc:"Source file path"`
Catalog *CatalogInfo `json:"catalog,omitempty" yaml:"catalog,omitempty" doc:"Catalog visibility info"`
Resolvers []ResolverInfo `json:"resolvers,omitempty" yaml:"resolvers,omitempty" doc:"Resolver configurations"`
Actions []ActionInfo `json:"actions,omitempty" yaml:"actions,omitempty" doc:"Action configurations"`
Finally []ActionInfo `json:"finally,omitempty" yaml:"finally,omitempty" doc:"Finally/cleanup actions"`
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty" doc:"Solution tags"`
Links []LinkInfo `json:"links,omitempty" yaml:"links,omitempty" doc:"Related links"`
Maintainers []MaintainerInfo `json:"maintainers,omitempty" yaml:"maintainers,omitempty" doc:"Solution maintainers"`
}
SolutionExplanation holds structured explanation data for a solution. This can be serialized to JSON/YAML or formatted for terminal output.
func BuildSolutionExplanation ¶
func BuildSolutionExplanation(sol *solution.Solution) *SolutionExplanation
BuildSolutionExplanation builds a structured explanation from a loaded solution. This returns data that can be serialized (JSON/YAML) or formatted for display.