Class: Legion::Extensions::MicrosoftTeams::Actor::ApiIngest

Inherits:
Actors::Every
  • Object
show all
Defined in:
lib/legion/extensions/microsoft_teams/actors/api_ingest.rb

Instance Method Summary collapse

Instance Method Details

#check_subtask?Boolean

Returns:

  • (Boolean)


14
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 14

def check_subtask? = false

#delayObject



20
21
22
23
24
25
26
27
28
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 20

def delay
  if defined?(Legion::Extensions::MicrosoftTeams::Actor::AuthValidator)
    auth_validator = Legion::Extensions::MicrosoftTeams::Actor::AuthValidator.allocate
    base_delay = auth_validator.respond_to?(:delay) ? auth_validator.delay.to_f : 90.0
    [base_delay + 5.0, 30].max
  else
    30
  end
end

#enabled?Boolean

Returns:

  • (Boolean)


35
36
37
38
39
40
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 35

def enabled?
  defined?(Legion::Extensions::Agentic::Memory::Trace::Runners::Traces)
rescue StandardError => e
  log.warn("ApiIngest#enabled?: #{e.message}")
  false
end

#generate_task?Boolean

Returns:

  • (Boolean)


16
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 16

def generate_task? = false

#manualObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 42

def manual
  token = resolve_token
  unless token
    log.warn('ApiIngest: no delegated token, skipping')
    return
  end

  ingest = teams_settings[:ingest] || {}
  log.info('ApiIngest: starting Graph API ingest')
  result = runner_class.ingest_api(
    token:          token,
    top_people:     ingest.fetch(:top_people, 15),
    message_depth:  ingest.fetch(:message_depth, 50),
    skip_bots:      ingest.fetch(:skip_bots, true),
    imprint_active: imprint_active?
  )
  log.info("ApiIngest: #{result.inspect[0, 200]}")
  result
rescue StandardError => e
  log.error("ApiIngest: #{e.message}")
end

#run_now?Boolean

Returns:

  • (Boolean)


18
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 18

def run_now? = true

#runner_classObject



8
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 8

def runner_class = Legion::Extensions::MicrosoftTeams::Runners::ApiIngest

#runner_functionObject



10
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 10

def runner_function = 'ingest_api'

#timeObject



30
31
32
33
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 30

def time
  interval = teams_settings.dig(:ingest, :api_interval) || 1800
  interval.to_i
end

#use_runner?Boolean

Returns:

  • (Boolean)


12
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 12

def use_runner? = false