tracking

package
v0.0.0-...-110f058 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildTree

func BuildTree(flatMap map[string]any) map[string]any

BuildTree converts flat key-value pairs with dot notation into a nested tree structure Example: {"a.b.c": "value"} becomes {"a": {"b": {"c": "value"}}}

func MergeTreesPreferFirst

func MergeTreesPreferFirst(first, second map[string]any) map[string]any

MergeTreesPreferFirst merges two tree structures, preferring values from the first tree when conflicts occur

Types

type TrackingEnv

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

TrackingEnv wraps an environment map to track variable access

func NewTrackingEnv

func NewTrackingEnv(env map[string]any, tracker *VariableTracker) *TrackingEnv

NewTrackingEnv creates a new tracking environment wrapper

func (*TrackingEnv) Get

func (te *TrackingEnv) Get(key string) (any, bool)

Get retrieves a value from the environment and tracks the read

func (*TrackingEnv) GetMap

func (te *TrackingEnv) GetMap() map[string]any

GetMap returns the underlying map for use with expr.Compile This is needed for expression compilation but doesn't track access

func (*TrackingEnv) TrackAllVariables

func (te *TrackingEnv) TrackAllVariables()

TrackAllVariables tracks all variables in the environment as potentially accessed This is called for expression evaluation since we can't track individual variable access

type VariableTracker

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

VariableTracker tracks variable reads and writes during node execution

func NewVariableTracker

func NewVariableTracker() *VariableTracker

NewVariableTracker creates a new variable tracker instance

func (*VariableTracker) ClearWritesWithPrefix

func (vt *VariableTracker) ClearWritesWithPrefix(prefix string)

ClearWritesWithPrefix removes all tracked writes whose keys start with the given prefix. This is useful for clearing intermediate writes before tracking final output. For example, ClearWritesWithPrefix("ai_1.") clears "ai_1.random_id", "ai_1.userId", etc.

func (*VariableTracker) GetReadVars

func (vt *VariableTracker) GetReadVars() map[string]any

GetReadVars returns a copy of all tracked read variables

func (*VariableTracker) GetReadVarsAsTree

func (vt *VariableTracker) GetReadVarsAsTree() map[string]any

GetReadVarsAsTree returns read variables as a nested tree structure

func (*VariableTracker) GetWrittenVars

func (vt *VariableTracker) GetWrittenVars() map[string]any

GetWrittenVars returns a copy of all tracked written variables

func (*VariableTracker) GetWrittenVarsAsTree

func (vt *VariableTracker) GetWrittenVarsAsTree() map[string]any

GetWrittenVarsAsTree returns written variables as a nested tree structure

func (*VariableTracker) Reset

func (vt *VariableTracker) Reset()

Reset clears tracked values so the tracker can be reused.

func (*VariableTracker) TrackRead

func (vt *VariableTracker) TrackRead(key string, value any)

TrackRead records a variable read operation

func (*VariableTracker) TrackWrite

func (vt *VariableTracker) TrackWrite(key string, value any)

TrackWrite records a variable write operation

Jump to

Keyboard shortcuts

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