Documentation
¶
Index ¶
- func BuildTree(flatMap map[string]any) map[string]any
- func MergeTreesPreferFirst(first, second map[string]any) map[string]any
- type TrackingEnv
- type VariableTracker
- func (vt *VariableTracker) ClearWritesWithPrefix(prefix string)
- func (vt *VariableTracker) GetReadVars() map[string]any
- func (vt *VariableTracker) GetReadVarsAsTree() map[string]any
- func (vt *VariableTracker) GetWrittenVars() map[string]any
- func (vt *VariableTracker) GetWrittenVarsAsTree() map[string]any
- func (vt *VariableTracker) Reset()
- func (vt *VariableTracker) TrackRead(key string, value any)
- func (vt *VariableTracker) TrackWrite(key string, value any)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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