27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/legion/mcp/tools/state_diff.rb', line 27
def call(since: nil, snapshot: nil)
log.info('Starting legion.mcp.tools.state_diff.call')
if snapshot
result = StateTracker.snapshot
text_response(result)
elsif since
result = StateTracker.diff(since: since)
text_response(result)
else
text_response(StateTracker.collect_state.merge(timestamp: Time.now.iso8601))
end
rescue StandardError => e
handle_exception(e, level: :warn, operation: 'legion.mcp.tools.state_diff.call')
log.warn("StateDiff#call failed: #{e.message}")
error_response("Failed: #{e.message}")
end
|