hooks

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 3, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package hooks implements auto-capture hooks for lifecycle events. Hooks are invoked at key lifecycle events and automatically capture observations into the Yaad memory graph.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ScoreRelevance

func ScoreRelevance(toolName, input, output, toolError string) float64

ScoreRelevance determines if a tool observation is worth storing. Returns a score 0.0-1.0 where higher = more worth remembering. No LLM needed — heuristic-based on content signals.

func ShouldCapture

func ShouldCapture(toolName, input, output, toolError string) bool

ShouldCapture returns true if the observation passes the relevance threshold.

Types

type HookInput

type HookInput struct {
	// Common
	SessionID string `json:"session_id"`
	Project   string `json:"project"`
	Agent     string `json:"agent"`

	// PostToolUse
	ToolName   string `json:"tool_name"`
	ToolInput  string `json:"tool_input"`
	ToolOutput string `json:"tool_output"`
	ToolError  string `json:"tool_error"`

	// UserPromptSubmit
	Prompt string `json:"prompt"`

	// SessionEnd
	Summary string `json:"summary"`
}

HookInput is the JSON payload passed to hooks via stdin.

func ReadInput

func ReadInput(r io.Reader) (*HookInput, error)

ReadInput reads HookInput from stdin (agents pipe JSON to hooks). Returns an empty HookInput if the reader is empty or contains no JSON.

type Runner

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

Runner executes hook logic.

func New

func New(eng *engine.Engine, project string) *Runner

New creates a hook runner.

func (*Runner) PostToolUse

func (r *Runner) PostToolUse(ctx context.Context, in *HookInput) error

PostToolUse is called after each tool use. Captures the observation.

func (*Runner) SessionEnd

func (r *Runner) SessionEnd(ctx context.Context, in *HookInput) error

SessionEnd is called when a session ends. Compresses and stores summary.

func (*Runner) SessionStart

func (r *Runner) SessionStart(ctx context.Context, in *HookInput) error

SessionStart is called when an agent session begins. Outputs hot-tier context to stdout for injection into the session.

func (*Runner) StoreToolEvent

func (r *Runner) StoreToolEvent(ctx context.Context, in *HookInput, store storage.Storage) error

StoreToolEvent stores a raw tool event for session replay.

Jump to

Keyboard shortcuts

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