Documentation
¶
Overview ¶
Package classify provides scored heuristics to identify OpenAPI documents. It analyzes file content and metadata to determine whether a file is an OpenAPI root document, a $ref fragment, or neither. The classifier uses multiple signals (root key detection, key fingerprinting, graph membership, file extension, config overrides) with configurable weights to produce a confidence score. Thresholds: 0.60 for full features, 0.30 for reduced features.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FileClassification ¶
type FileClassification struct {
IsOpenAPI bool
DocumentKind navigator.DocumentKind
Version string // OpenAPI or Arazzo version when detected
Confidence float64 // 0.0-1.0
OpenAPIVersion string // "2.0", "3.0", "3.1", "3.2" or empty
IsFragment bool // referenced via $ref, no root version
Signals []Signal // individual signal contributions
}
FileClassification is the result of classifying a file.
type FileClassifier ¶
type FileClassifier struct {
// contains filtered or unexported fields
}
FileClassifier uses scored heuristics to determine if a file is an OpenAPI document.
func NewFileClassifier ¶
func NewFileClassifier() *FileClassifier
NewFileClassifier creates a new FileClassifier with no overrides.
func (*FileClassifier) AddOverride ¶
func (c *FileClassifier) AddOverride(pattern string, isOpenAPI bool)
AddOverride adds a config-driven classification override (glob pattern -> isOpenAPI).
func (*FileClassifier) Classify ¶
func (c *FileClassifier) Classify(uri string, content []byte, isGraphMember bool) FileClassification
Classify analyzes content and metadata to produce a classification.
func (*FileClassifier) RegisterRootDir ¶
func (c *FileClassifier) RegisterRootDir(dir string)
RegisterRootDir marks a directory as containing a known root spec for proximity scoring.
func (*FileClassifier) SetIncludeExclude ¶
func (c *FileClassifier) SetIncludeExclude(include, exclude []string)
SetIncludeExclude configures include/exclude patterns from the workspace config. Files matching an exclude pattern are never classified as OpenAPI. Files matching an include pattern receive a confidence boost.