Documentation
¶
Index ¶
- func ExtractClaudeProjectHints(path string) (cwd, gitBranch string)
- func ExtractCwdFromSession(path string) string
- func ExtractProjectFromCwd(cwd string) string
- func ExtractProjectFromCwdWithBranch(cwd, gitBranch string) string
- func ExtractTextContent(content gjson.Result) (string, bool, bool, []ParsedToolCall, []ParsedToolResult)
- func GeminiSessionID(data []byte) string
- func GetProjectName(dirName string) string
- func NeedsProjectReparse(project string) bool
- func NormalizeToolCategory(rawName string) string
- func ParseClaudeSession(path, project, machine string) (ParsedSession, []ParsedMessage, error)
- func ParseCodexSession(path, machine string, includeExec bool) (*ParsedSession, []ParsedMessage, error)
- func ParseGeminiSession(path, project, machine string) (*ParsedSession, []ParsedMessage, error)
- type AgentType
- type FileInfo
- type ParsedMessage
- type ParsedSession
- type ParsedToolCall
- type ParsedToolResult
- type RoleType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractClaudeProjectHints ¶ added in v0.4.0
ExtractClaudeProjectHints reads project-identifying metadata from a Claude Code JSONL session file.
func ExtractCwdFromSession ¶
ExtractCwdFromSession reads the first cwd field from a Claude Code JSONL session file.
func ExtractProjectFromCwd ¶
ExtractProjectFromCwd extracts a project name from a working directory path. If cwd is inside a git repository (including linked worktrees), this returns the repository root directory name. Otherwise it falls back to the last path component.
func ExtractProjectFromCwdWithBranch ¶ added in v0.4.0
ExtractProjectFromCwdWithBranch extracts a canonical project name from cwd and optionally git branch metadata. Branch is used as a fallback heuristic when the original worktree path no longer exists on disk.
func ExtractTextContent ¶
func ExtractTextContent( content gjson.Result, ) (string, bool, bool, []ParsedToolCall, []ParsedToolResult)
ExtractTextContent extracts readable text from message content. content can be a string or a JSON array of blocks. Returns the text, hasThinking, hasToolUse, tool calls, and tool results.
func GeminiSessionID ¶
GeminiSessionID extracts the sessionId field from raw Gemini session JSON data without fully parsing.
func GetProjectName ¶
GetProjectName converts an encoded Claude project directory name to a clean project name. Claude encodes paths like /Users/alice/code/my-app as -Users-alice-code-my-app.
func NeedsProjectReparse ¶
NeedsProjectReparse checks if a stored project name looks like an un-decoded encoded path that should be re-extracted.
func NormalizeToolCategory ¶
NormalizeToolCategory maps a raw tool name to a normalized category. Categories: Read, Edit, Write, Bash, Grep, Glob, Task, Tool, Other.
func ParseClaudeSession ¶
func ParseClaudeSession( path, project, machine string, ) (ParsedSession, []ParsedMessage, error)
ParseClaudeSession parses a Claude Code JSONL session file.
func ParseCodexSession ¶
func ParseCodexSession( path, machine string, includeExec bool, ) (*ParsedSession, []ParsedMessage, error)
ParseCodexSession parses a Codex JSONL session file. Returns nil session if the session is non-interactive and includeExec is false.
func ParseGeminiSession ¶
func ParseGeminiSession( path, project, machine string, ) (*ParsedSession, []ParsedMessage, error)
ParseGeminiSession parses a Gemini CLI session JSON file. Unlike Claude/Codex JSONL, each Gemini file is a single JSON document containing all messages.
Types ¶
type ParsedMessage ¶
type ParsedMessage struct {
Ordinal int
Role RoleType
Content string
Timestamp time.Time
HasThinking bool
HasToolUse bool
ContentLength int
ToolCalls []ParsedToolCall
ToolResults []ParsedToolResult
}
ParsedMessage holds a single extracted message.
type ParsedSession ¶
type ParsedSession struct {
ID string
Project string
Machine string
Agent AgentType
ParentSessionID string
FirstMessage string
StartedAt time.Time
EndedAt time.Time
MessageCount int
File FileInfo
}
ParsedSession holds session metadata extracted from a JSONL file.
type ParsedToolCall ¶
type ParsedToolCall struct {
ToolUseID string // tool_use block id from session data
ToolName string // raw name from session data
Category string // normalized: Read, Edit, Write, Bash, etc.
InputJSON string // raw JSON of the input object
SkillName string // skill name when ToolName is "Skill"
}
ParsedToolCall holds a single tool invocation extracted from a message.
type ParsedToolResult ¶ added in v0.4.0
ParsedToolResult holds metadata about a tool result block in a user message (the response to a prior tool_use).