warnings

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeInstructionsTooLarge         = "INSTRUCTIONS_TOO_LARGE"
	CodeMCPServerUnreachable         = "MCP_SERVER_UNREACHABLE"
	CodeMCPTooManyServers            = "MCP_TOO_MANY_SERVERS_ENABLED"
	CodeMCPTooManyToolsTotal         = "MCP_TOO_MANY_TOOLS_TOTAL"
	CodeMCPServerTooManyTools        = "MCP_SERVER_TOO_MANY_TOOLS"
	CodeMCPToolSchemaBloatTotal      = "MCP_TOOL_SCHEMA_BLOAT_TOTAL"
	CodeMCPToolSchemaBloatServer     = "MCP_TOOL_SCHEMA_BLOAT_SERVER"
	CodeMCPToolNameCollision         = "MCP_TOOL_NAME_COLLISION"
	CodeWarningNoiseModeInvalid      = "WARNING_NOISE_MODE_INVALID"
	CodePolicySecretInURL            = "POLICY_SECRET_IN_URL"
	CodePolicyCodexHeaderForm        = "POLICY_CODEX_HEADER_FORM_UNSUPPORTED"
	CodePolicyCapabilityMismatch     = "POLICY_CLIENT_CAPABILITY_MISMATCH"
	CodePolicyAgentSpecificOverrides = "POLICY_AGENT_SPECIFIC_OVERRIDES"
	CodeGeminiTrustFolderFailed      = "GEMINI_TRUST_FOLDER_FAILED"
)

Warning codes.

View Source
const (
	SourceInternal           = "internal"
	SourceNetwork            = "network"
	SourceExternalDependency = "external dependency"
)

Source labels where a warning originates.

View Source
const (
	SeverityWarning  = "warning"
	SeverityCritical = "critical"
)

Severity labels whether a warning should be considered critical.

View Source
const (
	// NoiseModeDefault keeps all warnings.
	NoiseModeDefault = "default"
	// NoiseModeReduce hides suppressible non-critical warnings.
	NoiseModeReduce = "reduce"
	// NoiseModeQuiet suppresses all warning output.
	NoiseModeQuiet = "quiet"
)

Variables

View Source
var NewMCPClientFunc = func(impl *mcp.Implementation, opts *mcp.ClientOptions) mcpClientInterface {
	return &realMCPClient{client: mcp.NewClient(impl, opts)}
}

NewMCPClientFunc is a mockable function for creating MCP clients.

Functions

func EstimateTokens

func EstimateTokens(s string) int

EstimateTokens estimates the token count for a given UTF-8 string using a heuristic. Heuristic: T = max(ceil(B/3), ceil(R/4)) * 1.10 where B is the byte length and R is the rune count.

Types

type Connector

type Connector interface {
	ConnectAndDiscover(ctx context.Context, server projection.ResolvedMCPServer) DiscoveryResult
}

Connector interface for mocking.

type DiscoveryResult

type DiscoveryResult struct {
	ServerID     string
	Tools        []ToolDef
	SchemaTokens int
	Error        error
}

DiscoveryResult contains the results of discovering tools from an MCP server.

type MCPDiscoveryEvent added in v0.5.7

type MCPDiscoveryEvent struct {
	ServerID string
	Status   MCPDiscoveryStatus
	Err      error
}

MCPDiscoveryEvent describes a discovery event for a single MCP server.

type MCPDiscoveryStatus added in v0.5.7

type MCPDiscoveryStatus string

MCPDiscoveryStatus is the status of a discovery event for an MCP server.

const (
	// MCPDiscoveryStatusStart indicates a server discovery has started.
	MCPDiscoveryStatusStart MCPDiscoveryStatus = "start"
	// MCPDiscoveryStatusDone indicates a server discovery completed successfully.
	MCPDiscoveryStatusDone MCPDiscoveryStatus = "done"
	// MCPDiscoveryStatusError indicates a server discovery completed with an error.
	MCPDiscoveryStatusError MCPDiscoveryStatus = "error"
)

type MCPDiscoveryStatusFunc added in v0.5.7

type MCPDiscoveryStatusFunc func(event MCPDiscoveryEvent)

MCPDiscoveryStatusFunc handles a discovery event emitted during MCP server discovery. The function may be invoked concurrently from multiple goroutines.

type RealConnector

type RealConnector struct{}

RealConnector implements Connector using the SDK.

func (*RealConnector) ConnectAndDiscover

func (r *RealConnector) ConnectAndDiscover(ctx context.Context, server projection.ResolvedMCPServer) DiscoveryResult

ConnectAndDiscover connects to an MCP server and discovers its tools.

type ToolDef

type ToolDef struct {
	Name   string
	Tokens int
}

ToolDef represents a discovered tool from an MCP server.

type Warning

type Warning struct {
	Code     string
	Subject  string
	Message  string
	Fix      string
	Details  []string
	Source   string
	Severity string
	// NoiseSuppressible marks warnings that can be hidden by conservative noise controls.
	// Critical warnings are never suppressed even if this flag is true.
	NoiseSuppressible bool
}

Warning represents a warning message.

func ApplyNoiseControl added in v0.8.0

func ApplyNoiseControl(items []Warning, mode string) []Warning

ApplyNoiseControl applies a conservative noise filter to warning output. mode is the warnings.noise_mode value from config.

func CheckInstructions

func CheckInstructions(rootDir string, threshold *int) ([]Warning, error)

CheckInstructions checks if the combined instruction payload exceeds the threshold. rootDir is the project root directory; threshold is the max token count (nil disables warnings). It returns any warnings and an error if the payload cannot be read.

func CheckMCPServers

func CheckMCPServers(ctx context.Context, cfg *config.ProjectConfig, connector Connector, statusFn MCPDiscoveryStatusFunc) ([]Warning, error)

CheckMCPServers performs discovery on enabled MCP servers and checks against warning thresholds. cfg supplies the configured thresholds; nil thresholds disable the corresponding warnings. statusFn is an optional callback invoked with discovery events; it is safe to pass nil.

func CheckPolicy added in v0.8.0

func CheckPolicy(project *config.ProjectConfig) []Warning

CheckPolicy returns static policy warnings that do not require network calls.

func (Warning) String

func (w Warning) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL