Class: Antigravity::LifecycleLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/antigravity/lifecycle_logger.rb

Constant Summary collapse

C =
Antigravity::Colors

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(verbose: false) ⇒ LifecycleLogger

Returns a new instance of LifecycleLogger.



35
36
37
38
39
40
# File 'lib/antigravity/lifecycle_logger.rb', line 35

def initialize(verbose: false)
  @verbose = verbose
  @session_start_time = nil
  @turn_start_time = nil
  @turn_count = 0
end

Class Method Details

.attach!(agent, verbose: false) ⇒ Object



31
32
33
# File 'lib/antigravity/lifecycle_logger.rb', line 31

def self.attach!(agent, verbose: false)
  new(verbose: verbose).attach(agent)
end

.status_line(agent) ⇒ Object

Compact status string — the "Cloud Code status bar" equivalent. Example: "T3 | 1.2k tok | 4 tools | 2.3s"



20
21
22
23
24
25
26
27
28
29
# File 'lib/antigravity/lifecycle_logger.rb', line 20

def self.status_line(agent)
  turns    = agent.turn_count rescue 0
  summary  = agent.session_summary rescue {}
  tokens   = summary.dig(:tokens, :total) || 0
  tok_str  = tokens > 999 ? "#{(tokens / 1000.0).round(1)}k" : tokens.to_s
  model    = summary[:model] || agent.model || '?'
  conv_id  = (summary[:conversation_id] || '?')[0..7]

  C.dim("T#{turns} | #{tok_str} tok | #{model} | #{conv_id}")
end

Instance Method Details

#attach(agent) ⇒ Object



42
43
44
45
46
# File 'lib/antigravity/lifecycle_logger.rb', line 42

def attach(agent)
  attach_session_hooks(agent)
  attach_turn_hooks(agent)
  attach_tool_hooks(agent)
end