LemonCore. ResumeToken
(lemon_core v0.1.0)
View Source
Session identifier for resuming interrupted CLI sessions.
Each CLI tool (codex, claude, etc.) provides its own session ID format. The ResumeToken captures both the engine and the session value.
Examples
# Codex session
%LemonCore.ResumeToken{engine: "codex", value: "thread_abc123"}
# Claude session
%LemonCore.ResumeToken{engine: "claude", value: "session_xyz"}
# Kimi session
%LemonCore.ResumeToken{engine: "kimi", value: "session_kimi"}
Summary
Functions
Extract a resume token from text.
Extract a resume token for a specific engine from text.
Format token for display to user
Format token for plain-text display without code fences
Check if a line is exactly a resume line (for truncation preservation).
Check if a line is a resume line for a specific engine.
Create a new resume token
Types
Functions
Extract a resume token from text.
Searches text for resume line patterns from any supported engine. Returns the first token found, or nil if none.
Handles various formats:
- Plain text:
codex resume abc123 - Backticks:
`claude --resume xyz` - Code blocks:
codex resume abc123
Examples
iex> LemonCore.ResumeToken.extract_resume("Please run `codex resume thread_abc123`")
%LemonCore.ResumeToken{engine: "codex", value: "thread_abc123"}
iex> LemonCore.ResumeToken.extract_resume("Continue with claude --resume session_xyz")
%LemonCore.ResumeToken{engine: "claude", value: "session_xyz"}
iex> LemonCore.ResumeToken.extract_resume("Continue with kimi --session session_kimi")
%LemonCore.ResumeToken{engine: "kimi", value: "session_kimi"}
iex> LemonCore.ResumeToken.extract_resume("lemon resume abc12345")
%LemonCore.ResumeToken{engine: "lemon", value: "abc12345"}
iex> LemonCore.ResumeToken.extract_resume("No resume token here")
nil
Extract a resume token for a specific engine from text.
Examples
iex> LemonCore.ResumeToken.extract_resume("codex resume abc", "codex")
%LemonCore.ResumeToken{engine: "codex", value: "abc"}
iex> LemonCore.ResumeToken.extract_resume("codex resume abc", "claude")
nil
Format token for display to user
Format token for plain-text display without code fences
Check if a line is exactly a resume line (for truncation preservation).
This is a strict check - the line should be primarily a resume command, not just contain one among other text.
Examples
iex> LemonCore.ResumeToken.is_resume_line("codex resume thread_abc123")
true
iex> LemonCore.ResumeToken.is_resume_line("`claude --resume session_xyz`")
true
iex> LemonCore.ResumeToken.is_resume_line("Please run codex resume abc")
false
iex> LemonCore.ResumeToken.is_resume_line("Some other text")
false
Check if a line is a resume line for a specific engine.
Create a new resume token