Documentation
¶
Index ¶
- type ClassContext
- type CodeSummary
- type ContextBuilder
- func (cb *ContextBuilder) BuildClassContext(name, docstring, language, filePath string, inheritance, implements []string, ...) *ClassContext
- func (cb *ContextBuilder) BuildFileContext(filePath, language, packageName, moduleName string, imports []string, ...) *FileContext
- func (cb *ContextBuilder) BuildFolderContext(folderPath string, fileSummaries, subfolderSummaries []EntitySummary, ...) *FolderContext
- func (cb *ContextBuilder) BuildFunctionContext(name, signature, docstring, sourceCode, language, filePath, className string, ...) *FunctionContext
- func (cb *ContextBuilder) BuildProjectContext(projectName string, languages []string, topLevelSummaries []EntitySummary, ...) *ProjectContext
- func (cb *ContextBuilder) HashContext(context any) string
- func (cb *ContextBuilder) TruncateSummaries(summaries []EntitySummary, maxTotal int) []EntitySummary
- type EntitySummary
- type FieldInfo
- type FileContext
- type FolderContext
- type FunctionContext
- type ParameterInfo
- type ProjectContext
- type PromptDefaults
- type PromptManager
- type PromptTemplate
- type SummaryLevel
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 ¶
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