Help us shape the future of Go! Take the 2026 Go Developer Survey

claudecode

package
v0.2.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	EvSessionStart       = "SessionStart"
	EvUserPromptSubmit   = "UserPromptSubmit"
	EvPreToolUse         = "PreToolUse"
	EvPostToolUse        = "PostToolUse"
	EvPostToolUseFailure = "PostToolUseFailure"
	EvSubagentStart      = "SubagentStart"
	EvSubagentStop       = "SubagentStop"
	EvPreCompact         = "PreCompact"
	EvStop               = "Stop"
	EvSessionEnd         = "SessionEnd"
)
View Source
const Agent = "claude-code"

Variables

Functions

func Build

func Build(in Input) model.Trace

func Category

func Category(tool string) model.ToolCategory

func IsMutatingTool

func IsMutatingTool(mutating, readonly []string, tool string) bool

func IsToolEvent

func IsToolEvent(ev string) bool

func MatchTool

func MatchTool(patterns []string, tool string) bool

func ToolPaths

func ToolPaths(input string) []string

ToolPaths returns the file paths that a tool call names in its input.

func ToolResultText

func ToolResultText(raw json.RawMessage) string

ToolResultText flattens the content of a tool_result block, which is a string or a list of text and image blocks.

func ToolSummary

func ToolSummary(tool, input, cwd string) string

Types

type Block

type Block struct {
	Type      string          `json:"type"`
	Text      string          `json:"text"`
	Thinking  string          `json:"thinking"`
	ID        string          `json:"id"`
	Name      string          `json:"name"`
	Input     json.RawMessage `json:"input"`
	ToolUseID string          `json:"tool_use_id"`
	Content   json.RawMessage `json:"content"`
	IsError   bool            `json:"is_error"`
}

type Content

type Content []Block

Content is a string or a list of blocks in the transcript.

func (Content) IsPlainString

func (c Content) IsPlainString() bool

func (*Content) UnmarshalJSON

func (c *Content) UnmarshalJSON(b []byte) error

type Entry

type Entry struct {
	Type        string          `json:"type"`
	Subtype     string          `json:"subtype"`
	UUID        string          `json:"uuid"`
	ParentUUID  string          `json:"parentUuid"`
	Timestamp   time.Time       `json:"timestamp"`
	IsSidechain bool            `json:"isSidechain"`
	IsMeta      bool            `json:"isMeta"`
	SessionID   string          `json:"sessionId"`
	Version     string          `json:"version"`
	Cwd         string          `json:"cwd"`
	GitBranch   string          `json:"gitBranch"`
	AgentID     string          `json:"agentId"`
	Message     *Message        `json:"message"`
	Origin      *Origin         `json:"origin"`
	AITitle     string          `json:"aiTitle"`
	Content     json.RawMessage `json:"content"`
	ToolResult  json.RawMessage `json:"toolUseResult"`
}

func ReadTranscript

func ReadTranscript(path string) ([]Entry, []string, error)

type HookPayload

type HookPayload struct {
	SessionID            string          `json:"session_id"`
	TranscriptPath       string          `json:"transcript_path"`
	Cwd                  string          `json:"cwd"`
	HookEventName        string          `json:"hook_event_name"`
	PermissionMode       string          `json:"permission_mode"`
	PromptID             string          `json:"prompt_id"`
	Prompt               string          `json:"prompt"`
	Source               string          `json:"source"`
	Reason               string          `json:"reason"`
	AgentID              string          `json:"agent_id"`
	AgentType            string          `json:"agent_type"`
	AgentTranscriptPath  string          `json:"agent_transcript_path"`
	ToolName             string          `json:"tool_name"`
	ToolInput            json.RawMessage `json:"tool_input"`
	ToolResponse         json.RawMessage `json:"tool_response"`
	ToolUseID            string          `json:"tool_use_id"`
	Error                string          `json:"error"`
	IsInterrupt          bool            `json:"is_interrupt"`
	DurationMS           int64           `json:"duration_ms"`
	LastAssistantMessage string          `json:"last_assistant_message"`
	Trigger              string          `json:"trigger"`
	Model                string          `json:"model"`
}

func ParseHookPayload

func ParseHookPayload(b []byte) (HookPayload, error)

type Input

type Input struct {
	SessionID     string
	Events        []model.HookEvent
	Transcript    []Entry
	Subagents     map[string][]Entry
	HasTranscript bool
}

type Message

type Message struct {
	ID      string  `json:"id"`
	Role    string  `json:"role"`
	Model   string  `json:"model"`
	Content Content `json:"content"`
	Usage   *Usage  `json:"usage"`
}

type Origin

type Origin struct {
	Kind string `json:"kind"`
}

type Usage

type Usage struct {
	InputTokens              int64 `json:"input_tokens"`
	OutputTokens             int64 `json:"output_tokens"`
	CacheCreationInputTokens int64 `json:"cache_creation_input_tokens"`
	CacheReadInputTokens     int64 `json:"cache_read_input_tokens"`
}

Jump to

Keyboard shortcuts

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