classify

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2026 License: MIT Imports: 4 Imported by: 0

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.

type Signal

type Signal struct {
	Name   string
	Score  float64
	Weight float64
}

Signal represents a single classification signal with its weight.

Jump to

Keyboard shortcuts

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