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)


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

def enabled?
  teams_settings.dig(:api_ingest, :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

  ai_settings = teams_settings[:api_ingest]
  log.info('ApiIngest: starting Graph API ingest')
  result = runner_class.ingest_api(
    token:          token,
    top_people:     ai_settings[:top_people],
    message_depth:  ai_settings[:message_depth],
    skip_bots:      ai_settings[:skip_bots],
    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
# File 'lib/legion/extensions/microsoft_teams/actors/api_ingest.rb', line 29

def time
  teams_settings.dig(:api_ingest, :interval)
end

#use_runner?Boolean

Returns:

  • (Boolean)


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

def use_runner? = false