summary

package
v0.0.0-...-6320ad3 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClassContext

type ClassContext struct {
	Name            string          `json:"name"`
	Docstring       string          `json:"docstring"`
	Inheritance     []string        `json:"inheritance"` // Parent classes/interfaces
	Implements      []string        `json:"implements"`
	Fields          []FieldInfo     `json:"fields"`
	MethodSummaries []EntitySummary `json:"method_summaries"`
	Language        string          `json:"language"`
	FilePath        string          `json:"file_path"`
	Annotations     []string        `json:"annotations"`
	Modifiers       []string        `json:"modifiers"`
}

ClassContext holds context for class-level summarization

type CodeSummary

type CodeSummary struct {
	ID           int64        `json:"id" db:"id"`
	EntityID     string       `json:"entity_id" db:"entity_id"`     // AST NodeID or path
	EntityType   SummaryLevel `json:"entity_type" db:"entity_type"` // function, class, file, folder, project
	EntityName   string       `json:"entity_name" db:"entity_name"`
	FilePath     string       `json:"file_path" db:"file_path"`
	Summary      string       `json:"summary" db:"summary"`
	ContextHash  string       `json:"context_hash" db:"context_hash"` // Hash of input context
	LLMProvider  string       `json:"llm_provider" db:"llm_provider"`
	LLMModel     string       `json:"llm_model" db:"llm_model"`
	PromptTokens int          `json:"prompt_tokens" db:"prompt_tokens"`
	OutputTokens int          `json:"output_tokens" db:"output_tokens"`
	CreatedAt    time.Time    `json:"created_at" db:"created_at"`
	UpdatedAt    time.Time    `json:"updated_at" db:"updated_at"`
}

CodeSummary represents a generated summary for a code entity

type ContextBuilder

type ContextBuilder struct {
	// contains filtered or unexported fields
}

ContextBuilder builds context objects for different summary levels

func NewContextBuilder

func NewContextBuilder(maxContextChars int) *ContextBuilder

NewContextBuilder creates a new context builder

func (*ContextBuilder) BuildClassContext

func (cb *ContextBuilder) BuildClassContext(
	name, docstring, language, filePath string,
	inheritance, implements []string,
	fields []FieldInfo,
	methodSummaries []EntitySummary,
	annotations, modifiers []string,
) *ClassContext

BuildClassContext builds context for class-level summarization

func (*ContextBuilder) BuildFileContext

func (cb *ContextBuilder) BuildFileContext(
	filePath, language, packageName, moduleName string,
	imports []string,
	classSummaries, functionSummaries []EntitySummary,
) *FileContext

BuildFileContext builds context for file-level summarization

func (*ContextBuilder) BuildFolderContext

func (cb *ContextBuilder) BuildFolderContext(
	folderPath string,
	fileSummaries, subfolderSummaries []EntitySummary,
	languages []string,
) *FolderContext

BuildFolderContext builds context for folder-level summarization

func (*ContextBuilder) BuildFunctionContext

func (cb *ContextBuilder) BuildFunctionContext(
	name, signature, docstring, sourceCode, language, filePath, className string,
	parameters []ParameterInfo,
	returnType string,
	annotations, modifiers []string,
) *FunctionContext

BuildFunctionContext builds context for function-level summarization

func (*ContextBuilder) BuildProjectContext

func (cb *ContextBuilder) BuildProjectContext(
	projectName string,
	languages []string,
	topLevelSummaries []EntitySummary,
	entryPoints []string,
	totalFiles, totalClasses, totalFunctions int,
) *ProjectContext

BuildProjectContext builds context for project-level summarization

func (*ContextBuilder) HashContext

func (cb *ContextBuilder) HashContext(context any) string

HashContext generates a hash of the context for caching

func (*ContextBuilder) TruncateSummaries

func (cb *ContextBuilder) TruncateSummaries(summaries []EntitySummary, maxTotal int) []EntitySummary

TruncateSummaries truncates a list of summaries to fit within context limits

type EntitySummary

type EntitySummary struct {
	Name     string `json:"name"`
	Summary  string `json:"summary"`
	FilePath string `json:"file_path,omitempty"`
}

EntitySummary is a lightweight summary reference used in contexts

type FieldInfo

type FieldInfo struct {
	Name      string   `json:"name"`
	Type      string   `json:"type"`
	Modifiers []string `json:"modifiers"`
}

FieldInfo holds information about a class field

type FileContext

type FileContext struct {
	FilePath          string          `json:"file_path"`
	FileName          string          `json:"file_name"`
	Language          string          `json:"language"`
	Imports           []string        `json:"imports"`
	ClassSummaries    []EntitySummary `json:"class_summaries"`
	FunctionSummaries []EntitySummary `json:"function_summaries"`
	PackageName       string          `json:"package_name"`
	ModuleName        string          `json:"module_name"`
}

FileContext holds context for file-level summarization

type FolderContext

type FolderContext struct {
	FolderPath         string          `json:"folder_path"`
	FolderName         string          `json:"folder_name"`
	FileSummaries      []EntitySummary `json:"file_summaries"`
	SubfolderSummaries []EntitySummary `json:"subfolder_summaries"`
	Languages          []string        `json:"languages"`
}

FolderContext holds context for folder-level summarization

type FunctionContext

type FunctionContext struct {
	Name        string          `json:"name"`
	Signature   string          `json:"signature"`
	Docstring   string          `json:"docstring"`
	SourceCode  string          `json:"source_code"`
	Parameters  []ParameterInfo `json:"parameters"`
	ReturnType  string          `json:"return_type"`
	Language    string          `json:"language"`
	FilePath    string          `json:"file_path"`
	ClassName   string          `json:"class_name"` // If it's a method
	Annotations []string        `json:"annotations"`
	Modifiers   []string        `json:"modifiers"` // public, private, static, etc.
}

FunctionContext holds context for function-level summarization

type ParameterInfo

type ParameterInfo struct {
	Name string `json:"name"`
	Type string `json:"type"`
}

ParameterInfo holds information about a function parameter

type ProjectContext

type ProjectContext struct {
	ProjectName       string          `json:"project_name"`
	Languages         []string        `json:"languages"`
	TopLevelSummaries []EntitySummary `json:"top_level_summaries"`
	EntryPoints       []string        `json:"entry_points"`
	TotalFiles        int             `json:"total_files"`
	TotalClasses      int             `json:"total_classes"`
	TotalFunctions    int             `json:"total_functions"`
}

ProjectContext holds context for project-level summarization

type PromptDefaults

type PromptDefaults struct {
	MaxTokens   int     `yaml:"max_tokens"`
	Temperature float64 `yaml:"temperature"`
}

PromptDefaults holds default settings for all prompts

type PromptManager

type PromptManager struct {
	// contains filtered or unexported fields
}

PromptManager manages prompt templates for different summary levels

func NewPromptManager

func NewPromptManager(configPath string) (*PromptManager, error)

NewPromptManager creates a new prompt manager from a YAML config file

func NewPromptManagerFromBytes

func NewPromptManagerFromBytes(data []byte) (*PromptManager, error)

NewPromptManagerFromBytes creates a new prompt manager from YAML bytes

func NewPromptManagerWithDefaults

func NewPromptManagerWithDefaults() (*PromptManager, error)

NewPromptManagerWithDefaults creates a prompt manager with default prompts

func (*PromptManager) GetDefaults

func (pm *PromptManager) GetDefaults() PromptDefaults

GetDefaults returns the default prompt settings

func (*PromptManager) GetTemplate

func (pm *PromptManager) GetTemplate(level SummaryLevel) (*PromptTemplate, error)

GetTemplate returns the prompt template for a given level

func (*PromptManager) RenderPrompt

func (pm *PromptManager) RenderPrompt(level SummaryLevel, context any) (systemPrompt, userPrompt string, err error)

RenderPrompt renders a prompt for the given level and context

type PromptTemplate

type PromptTemplate struct {
	Level           SummaryLevel
	SystemPrompt    string
	UserPromptTmpl  *template.Template
	ContextFields   []string
	MaxContextChars int
	MaxTokens       int
	Temperature     float64
}

PromptTemplate holds a parsed prompt template

type SummaryLevel

type SummaryLevel int

SummaryLevel represents the hierarchical level of a summary

const (
	LevelFunction SummaryLevel = iota + 1
	LevelClass
	LevelFile
	LevelFolder
	LevelProject
)

func ParseSummaryLevel

func ParseSummaryLevel(s string) SummaryLevel

ParseSummaryLevel parses a string into a SummaryLevel

func (SummaryLevel) String

func (l SummaryLevel) String() string

String returns the string representation of the level

Jump to

Keyboard shortcuts

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