Class: Ace::LLM::Providers::CLI::Atoms::SessionFinders::CodexSessionFinder
- Inherits:
-
Object
- Object
- Ace::LLM::Providers::CLI::Atoms::SessionFinders::CodexSessionFinder
- Defined in:
- lib/ace/llm/providers/cli/atoms/session_finders/codex_session_finder.rb
Overview
Finds a Codex session by scanning JSONL session files.
Codex stores sessions under ~/.codex/sessions/YYYY/MM/DD/*.jsonl Session ID: ‘session_meta.payload.id` First user message: `payload.role:“user”` + `payload.content.text`
Constant Summary collapse
- DEFAULT_BASE =
File.("~/.codex/sessions").freeze
Class Method Summary collapse
-
.call(working_dir:, prompt:, base_path: DEFAULT_BASE, max_candidates: 5) ⇒ Hash?
{ session_id:, session_path: } or nil.
Class Method Details
.call(working_dir:, prompt:, base_path: DEFAULT_BASE, max_candidates: 5) ⇒ Hash?
Returns { session_id:, session_path: } or nil.
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ace/llm/providers/cli/atoms/session_finders/codex_session_finder.rb', line 24 def self.call(working_dir:, prompt:, base_path: DEFAULT_BASE, max_candidates: 5) candidates = recent_session_files(base_path) .first(max_candidates) candidates.each do |path| result = scan_file(path, prompt) return result if result end nil rescue nil end |