Documentation
¶
Overview ¶
@index Consumer-owned transaction ports for graph ingest application workflows.
Index ¶
- func FilePackagesFromContext(ctx context.Context) map[string]string
- func ImportPackagesFromContext(ctx context.Context) map[string]string
- func WithFilePackages(ctx context.Context, packages map[string]string) context.Context
- func WithImportPackages(ctx context.Context, packages map[string]string) context.Context
- type AnnotatingParser
- type BatchIncrementalSyncer
- type CommentBlock
- type FileBatchSource
- type FileBatchVisitor
- type FileInfo
- type GraphStore
- type IncrementalSyncer
- type MetadataParser
- type PackageContext
- type PackageDiscoverer
- type PackageDiscoveryOptions
- type PackageEdgeBuilder
- type PackageInfo
- type PackageInterfaceInfo
- type ParseCache
- type ParseCacheKey
- type ParseMetadata
- type Parser
- type SearchWriter
- type SyncStats
- type Transaction
- type TransactionalBatchIncrementalSyncer
- type TransactionalIncrementalSyncer
- type UnitOfWork
- type UnresolvedEdgeStore
- type VersionedParser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FilePackagesFromContext ¶
FilePackagesFromContext loads canonical file package hints for parser adapters. @intent let parser adapters seed qualified names from application-owned file context.
func ImportPackagesFromContext ¶
ImportPackagesFromContext loads repository import-path normalization hints. @intent let parser adapters consume application-owned package context without reversing dependencies.
func WithFilePackages ¶
WithFilePackages stores canonical import paths keyed by repository-relative file path. @intent provide deterministic package prefixes for languages without package declarations.
func WithImportPackages ¶
WithImportPackages stores repository import-path normalization hints for parser adapters. @intent thread parser-neutral package names through build and update calls without adapter-specific APIs.
Types ¶
type AnnotatingParser ¶
type AnnotatingParser interface {
Parser
ParseWithComments(ctx context.Context, filePath string, content []byte) ([]graph.Node, []graph.Edge, []CommentBlock, error)
Language() string
}
AnnotatingParser adds comments and language identity for annotation restoration. @intent make comment-aware parsing an optional ingest capability.
type BatchIncrementalSyncer ¶ added in v0.11.2
type BatchIncrementalSyncer interface {
SyncBatchesWithExisting(ctx context.Context, source FileBatchSource, deletedFiles []string) (*SyncStats, error)
}
BatchIncrementalSyncer supports a single staged reconciliation across multiple input batches. @intent prevent batch order from affecting cross-file edge resolution during large updates. @domainRule deletedFiles must contain only paths absent from the supplied source batches.
type CommentBlock ¶
type CommentBlock struct {
StartLine int
EndLine int
Text string
IsDocstring bool
OwnerStartLine int
}
CommentBlock is parser-neutral documentation text associated with source lines. @intent carry comments and docstring ownership from parser adapters into ingest binding policy.
type FileBatchSource ¶ added in v0.11.2
type FileBatchSource func(visitor FileBatchVisitor) error
FileBatchSource replays the current source snapshot in bounded batches. @intent let workflow retain source spooling while incremental reconciliation controls node and edge phases.
type FileBatchVisitor ¶ added in v0.11.2
FileBatchVisitor receives one bounded source batch during staged incremental reconciliation. @intent keep bulk update input streaming while allowing a syncer to own cross-batch ordering.
type FileInfo ¶
FileInfo carries one incremental source snapshot and its change-detection metadata. @intent keep incremental update inputs owned by ingest rather than a concrete sync implementation.
type GraphStore ¶
type GraphStore interface {
GetNodesByIDs(ctx context.Context, ids []uint) ([]graph.Node, error)
GetNodesByFile(ctx context.Context, filePath string) ([]graph.Node, error)
GetNodesByFiles(ctx context.Context, filePaths []string) (map[string][]graph.Node, error)
GetNodesByQualifiedNames(ctx context.Context, names []string) (map[string][]graph.Node, error)
ListFileNodes(ctx context.Context) ([]graph.Node, error)
ListImportFileNodes(ctx context.Context) ([]graph.Node, error)
GetFileNodesByPathSuffix(ctx context.Context, suffix string) ([]graph.Node, error)
GetEdgesFromNodes(ctx context.Context, nodeIDs []uint) ([]graph.Edge, error)
GetEdgesToNodes(ctx context.Context, nodeIDs []uint) ([]graph.Edge, error)
UpsertNodes(ctx context.Context, nodes []graph.Node) error
UpsertEdges(ctx context.Context, edges []graph.Edge) error
UpsertAnnotations(ctx context.Context, annotations []*graph.Annotation) error
DeleteNodesByFiles(ctx context.Context, filePaths []string) error
DeleteEdgesByFile(ctx context.Context, filePath string) error
DeletePackageSemanticEdges(ctx context.Context, anchorFiles []string) error
DeleteGraph(ctx context.Context) error
}
GraphStore is the transaction-scoped graph persistence surface required by build and update workflows. @intent keep ingest graph reads and writes inside the unit-of-work boundary without exposing a persistence implementation.
type IncrementalSyncer ¶
type IncrementalSyncer interface {
SyncWithExisting(ctx context.Context, files map[string]FileInfo, existingFiles []string) (*SyncStats, error)
}
IncrementalSyncer reconciles one current source snapshot against known files. @intent let ingest orchestrate batching and deletion policy through an implementation-neutral sync seam.
type MetadataParser ¶
type MetadataParser interface {
AnnotatingParser
ParseWithCommentsAndMetadata(ctx context.Context, filePath string, content []byte) ([]graph.Node, []graph.Edge, []CommentBlock, ParseMetadata, error)
}
MetadataParser adds package-level parse metadata used by full and incremental semantic refreshes. @intent expose package/interface metadata without coupling ingest to parser adapter structs.
type PackageContext ¶
type PackageContext struct {
Package string
Language string
Files []string
Nodes []graph.Node
Interfaces []PackageInterfaceInfo
ImportPackages map[string]string
}
PackageContext contains the package-wide graph state used to derive semantic edges. @intent let parser adapters enrich multi-file packages without leaking AST types into ingest.
type PackageDiscoverer ¶
type PackageDiscoverer interface {
DiscoverPackages(ctx context.Context, opts PackageDiscoveryOptions) (map[string]PackageInfo, error)
}
PackageDiscoverer is an optional parser capability for repository-level package discovery. @intent delegate language-specific package discovery while ingest owns traversal policy.
type PackageDiscoveryOptions ¶
type PackageDiscoveryOptions struct {
RootDir string
WalkFiles func(func(path, relPath string) error) error
HasParser func(ext string) bool
}
PackageDiscoveryOptions supplies traversal policy to parser package discovery. @intent reuse ingest include/exclude and parser-registration policy during language-specific package discovery.
type PackageEdgeBuilder ¶
type PackageEdgeBuilder interface {
PackageEdges(ctx PackageContext) []graph.Edge
}
PackageEdgeBuilder is an optional parser capability for multi-file semantic relationships. @intent derive language-specific package edges through a parser-neutral ingest contract.
type PackageInfo ¶
PackageInfo describes one source package discovered by a parser adapter. @intent let ingest create package nodes and membership edges without knowing language-specific discovery details.
type PackageInterfaceInfo ¶
PackageInterfaceInfo describes one parsed interface and its declared methods. @intent preserve package-level implementation inference without exposing parser implementation types.
type ParseCache ¶ added in v0.11.2
type ParseCache interface {
LoadParseResult(ctx context.Context, key ParseCacheKey) ([]byte, bool, error)
StoreParseResult(ctx context.Context, key ParseCacheKey, payload []byte) error
}
ParseCache stores opaque serialized parse results outside the graph transaction. @intent make repeated full builds skip Tree-sitter work without coupling ingest to one cache backend. @domainRule cache failures are optimization misses and must not fail graph builds.
type ParseCacheKey ¶ added in v0.11.2
type ParseCacheKey struct {
FilePath string
SourceHash string
ParserVersion string
ContextHash string
}
ParseCacheKey identifies one correctness-equivalent parsed source result. @intent include every input known to affect parser output instead of trusting source content alone.
type ParseMetadata ¶
type ParseMetadata struct {
Package string
Interfaces []PackageInterfaceInfo
}
ParseMetadata carries package-level enrichment inputs produced by a parser. @intent let ingest coordinate package semantics through parser-owned metadata.
type Parser ¶
type Parser interface {
Parse(filePath string, content []byte) ([]graph.Node, []graph.Edge, error)
ParseWithContext(ctx context.Context, filePath string, content []byte) ([]graph.Node, []graph.Edge, error)
}
Parser is the minimum source parser consumed by build and update workflows. @intent parse source into domain graph values without exposing Tree-sitter or another parser implementation. @domainRule full builds may invoke one Parser instance concurrently, so ParseWithContext implementations must isolate mutable parser state.
type SearchWriter ¶
type SearchWriter interface {
RebuildAll(ctx context.Context) error
RebuildNodes(ctx context.Context, nodeIDs []uint) error
}
SearchWriter updates derived search state inside the same transaction as graph mutations. @intent expose full and scoped search rebuilds as indivisible application operations. @domainRule implementations must combine search-document refresh and backend index rebuild so callers cannot commit only one half.
type SyncStats ¶
type SyncStats struct {
Added int
Modified int
Skipped int
Deleted int
Unresolved resolve.FilterResolvedDiagnostics
}
SyncStats reports incremental file outcomes and unresolved-edge diagnostics. @intent expose update results without coupling callers to the incremental implementation package.
type Transaction ¶
type Transaction interface {
Graph() GraphStore
Search() SearchWriter
}
Transaction exposes the graph and search capabilities participating in one atomic ingest operation. @intent give an ingest callback transaction-scoped capabilities without exposing a raw database handle.
type TransactionalBatchIncrementalSyncer ¶ added in v0.11.2
type TransactionalBatchIncrementalSyncer interface {
SyncBatchesWithExistingStore(ctx context.Context, graphStore GraphStore, source FileBatchSource, deletedFiles []string) (*SyncStats, error)
}
TransactionalBatchIncrementalSyncer runs staged reconciliation against the active graph transaction. @intent preserve one atomic graph and search transaction while reconciling streamed update batches.
type TransactionalIncrementalSyncer ¶
type TransactionalIncrementalSyncer interface {
SyncWithExistingStore(ctx context.Context, graphStore GraphStore, files map[string]FileInfo, existingFiles []string) (*SyncStats, error)
}
TransactionalIncrementalSyncer runs incremental reconciliation against the active graph transaction. @intent keep incremental graph mutations inside the same unit of work as package and search updates.
type UnitOfWork ¶
type UnitOfWork interface {
WithinTransaction(ctx context.Context, fn func(Transaction) error) error
}
UnitOfWork owns the atomic boundary for graph persistence and derived search updates. @intent commit graph and search changes together only when the callback succeeds. @ensures a callback error rolls back both graph and search changes.
type UnresolvedEdgeStore ¶ added in v0.11.2
type UnresolvedEdgeStore interface {
UpsertUnresolvedEdges(ctx context.Context, candidates []graph.UnresolvedEdgeCandidate) error
FindUnresolvedEdgesByLookupKeys(ctx context.Context, keys []string) ([]graph.Edge, error)
FindUnresolvedEdgesByFiles(ctx context.Context, filePaths []string) ([]graph.Edge, error)
DeleteUnresolvedEdgesByFingerprints(ctx context.Context, fingerprints []string) error
UnresolvedIndexReady(ctx context.Context, version string) (bool, error)
MarkUnresolvedIndexReady(ctx context.Context, version string) error
}
UnresolvedEdgeStore persists and replays unresolved syntax relationships for semi-naive updates. @intent select unchanged source edges affected by newly added symbols without exposing persistence details.
type VersionedParser ¶ added in v0.11.2
VersionedParser exposes the semantic parser/query identity used for parse-result cache invalidation. @intent let ingest reuse parsed output only while parser behavior and embedded queries remain compatible.
Directories
¶
| Path | Synopsis |
|---|---|
|
@index Session-local parsed-edge spool for staged incremental reconciliation.
|
@index Session-local parsed-edge spool for staged incremental reconciliation. |
|
@index Language-specific dispatch hooks used by call edge resolution.
|
@index Language-specific dispatch hooks used by call edge resolution. |
|
@index Full graph build pipeline: spool, batch persistence, and edge resolution.
|
@index Full graph build pipeline: spool, batch persistence, and edge resolution. |