Module: Kward::MessageAccess
- Defined in:
- lib/kward/message_access.rb
Overview
Compatibility reader for persisted conversation message hashes.
Kward stores transcript entries as plain hashes because model payloads,
JSONL sessions, plugins, and RPC normalizers all need to pass them around
without framework objects. Restored sessions may contain either symbol keys,
string keys, or Tauren-style camelCase aliases. MessageAccess centralizes
those lookup rules so callers do not grow one-off compatibility branches.
Class Method Summary collapse
-
.content(message) ⇒ Object?
Raw message content.
-
.display_content(message) ⇒ String?
UI-facing content preserved separately from model input.
- .name(message) ⇒ Object
-
.role(message) ⇒ String?
Message role such as
user,assistant, ortool. - .summary(message) ⇒ Object
- .tool_call_id(message) ⇒ Object
-
.tool_calls(message) ⇒ Array<Hash>
Assistant tool calls, or an empty array.
- .tool_name(message) ⇒ Object
-
.value(object, key) ⇒ Object?
Reads a field from a hash-like object using symbol or string keys.
Class Method Details
.content(message) ⇒ Object?
Returns raw message content.
32 33 34 |
# File 'lib/kward/message_access.rb', line 32 def content() value(, :content) end |
.display_content(message) ⇒ String?
Returns UI-facing content preserved separately from model input.
37 38 39 |
# File 'lib/kward/message_access.rb', line 37 def display_content() value(, :display_content) || value(, :displayContent) end |
.name(message) ⇒ Object
45 46 47 |
# File 'lib/kward/message_access.rb', line 45 def name() value(, :name) end |
.role(message) ⇒ String?
Returns message role such as user, assistant, or tool.
27 28 29 |
# File 'lib/kward/message_access.rb', line 27 def role() value(, :role) end |
.summary(message) ⇒ Object
41 42 43 |
# File 'lib/kward/message_access.rb', line 41 def summary() value(, :summary) end |
.tool_call_id(message) ⇒ Object
49 50 51 |
# File 'lib/kward/message_access.rb', line 49 def tool_call_id() value(, :tool_call_id) || value(, :toolCallId) end |
.tool_calls(message) ⇒ Array<Hash>
Returns assistant tool calls, or an empty array.
58 59 60 61 |
# File 'lib/kward/message_access.rb', line 58 def tool_calls() calls = value(, :tool_calls) || value(, :toolCalls) calls.is_a?(Array) ? calls : [] end |
.tool_name(message) ⇒ Object
53 54 55 |
# File 'lib/kward/message_access.rb', line 53 def tool_name() value(, :name) || value(, :toolName) end |
.value(object, key) ⇒ Object?
Reads a field from a hash-like object using symbol or string keys.
18 19 20 21 22 23 24 |
# File 'lib/kward/message_access.rb', line 18 def value(object, key) return nil unless object.respond_to?(:key?) return object[key] if object.key?(key) return object[key.to_s] if object.key?(key.to_s) nil end |