11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/legion/extensions/llm/ledger/runners/prompts.rb', line 11
def write_prompt_record(payload = nil, metadata = {}, **message)
payload, metadata = normalize_runner_args(payload, metadata, message)
= metadata[:headers] || {}
props = metadata[:properties] || {}
body = Helpers::Decryption.decrypt_if_needed(payload, metadata)
ctx = body[:message_context] || {}
expires_at = Helpers::Retention.resolve(
retention: ['x-legion-retention'],
contains_phi: ['x-legion-contains-phi'] == 'true'
)
record = build_prompt_record(body, ctx, props, , expires_at)
::Legion::Data::DB[:prompt_records].insert(record)
{ result: :ok }
rescue Sequel::UniqueConstraintViolation => _e
{ result: :duplicate }
rescue Helpers::DecryptionUnavailable => _e
raise
rescue StandardError => e
Legion::Logging.error("[lex-llm-ledger] write_prompt_record failed: #{e.message}") { result: :error, error: e.message }
end
|