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
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 20

def delay
  auth_validator = Legion::Extensions::Identity::Entra::Delegated::Actor::AuthValidator.allocate
  base_delay = auth_validator.respond_to?(:delay) ? auth_validator.delay.to_f : 9.0
  [base_delay + 5.0, 14].max
rescue StandardError => e
  handle_exception(e, level: :debug, operation: 'ApiIngest#delay')
  14
end

#enabled?Boolean

Returns:

  • (Boolean)


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

def enabled?
  defined?(Legion::Extensions::Agentic::Memory::Trace::Runners::Traces)
rescue StandardError => e
  handle_exception(e, level: :warn, operation: 'ApiIngest#enabled?')
  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



41
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 41

def manual
  log.debug('ApiIngest#manual starting')
  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
  handle_exception(e, level: :error, operation: 'ApiIngest#manual')
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



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

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