Class: Roast::Cogs::Agent::Providers::Claude::Messages::SystemMessage

Inherits:
Roast::Cogs::Agent::Providers::Claude::Message show all
Defined in:
lib/roast/cogs/agent/providers/claude/messages/system_message.rb

Constant Summary collapse

IGNORED_FIELDS =
[
  :agents,
  :apiKeySource,
  :compact_metadata,
  :claude_code_version,
  :cwd,
  :exit_code,
  :fast_mode_state,
  :hook_event,
  :hook_name,
  :mcp_servers,
  :output_style,
  :permissionMode,
  :plugins,
  :skills,
  :slash_commands,
  # TODO: "status": "compacting" indicates compaction in progress. We might want to handle that someday
  :status,
  :stderr,
  :stdout,
  :subtype,
  :tools,
].freeze

Instance Attribute Summary collapse

Attributes inherited from Roast::Cogs::Agent::Providers::Claude::Message

#error, #session_id, #type, #unparsed

Instance Method Summary collapse

Methods inherited from Roast::Cogs::Agent::Providers::Claude::Message

#format, from_hash, from_json

Constructor Details

#initialize(type:, hash:) ⇒ SystemMessage

: (type: Symbol, hash: Hash[Symbol, untyped]) -> void



42
43
44
45
46
47
# File 'lib/roast/cogs/agent/providers/claude/messages/system_message.rb', line 42

def initialize(type:, hash:)
  @message = hash.delete(:message)
  @model = hash.delete(:model)
  hash.except!(*IGNORED_FIELDS)
  super(type:, hash:)
end

Instance Attribute Details

#messageObject (readonly)

: String?



36
37
38
# File 'lib/roast/cogs/agent/providers/claude/messages/system_message.rb', line 36

def message
  @message
end

#modelObject (readonly)

: String?



39
40
41
# File 'lib/roast/cogs/agent/providers/claude/messages/system_message.rb', line 39

def model
  @model
end