Module: ClaudeAgentServer::Services::MessageSerializer
- Defined in:
- lib/claude_agent_server/services/message_serializer.rb
Class Method Summary collapse
- .serialize(message) ⇒ Object
- .serialize_assistant_message(msg) ⇒ Object
- .serialize_content(content) ⇒ Object
- .serialize_content_block(block) ⇒ Object
- .serialize_rate_limit_event(msg) ⇒ Object
- .serialize_result_message(msg) ⇒ Object
- .serialize_stream_event(msg) ⇒ Object
- .serialize_system_message(msg) ⇒ Object
- .serialize_task_notification_message(msg) ⇒ Object
- .serialize_task_progress_message(msg) ⇒ Object
- .serialize_task_started_message(msg) ⇒ Object
- .serialize_user_message(msg) ⇒ Object
Class Method Details
.serialize(message) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 10 def serialize() case when ClaudeAgentSDK::UserMessage () when ClaudeAgentSDK::AssistantMessage () when ClaudeAgentSDK::ResultMessage () when ClaudeAgentSDK::TaskStartedMessage () when ClaudeAgentSDK::TaskProgressMessage () when ClaudeAgentSDK::TaskNotificationMessage () when ClaudeAgentSDK::SystemMessage () when ClaudeAgentSDK::StreamEvent serialize_stream_event() when ClaudeAgentSDK::RateLimitEvent serialize_rate_limit_event() else { type: 'unknown', data: .to_s } end end |
.serialize_assistant_message(msg) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 44 def (msg) { type: 'assistant', content: serialize_content(msg.content), model: msg.model, parentToolUseId: msg.parent_tool_use_id, error: msg.error }.compact end |
.serialize_content(content) ⇒ Object
138 139 140 141 142 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 138 def serialize_content(content) return content.map { |block| serialize_content_block(block) } if content.is_a?(Array) content end |
.serialize_content_block(block) ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 144 def serialize_content_block(block) case block when ClaudeAgentSDK::TextBlock { type: 'text', text: block.text } when ClaudeAgentSDK::ThinkingBlock { type: 'thinking', thinking: block.thinking, signature: block.signature } when ClaudeAgentSDK::ToolUseBlock { type: 'tool_use', id: block.id, name: block.name, input: block.input } when ClaudeAgentSDK::ToolResultBlock result = { type: 'tool_result', toolUseId: block.tool_use_id } result[:content] = block.content if block.content result[:isError] = block.is_error unless block.is_error.nil? result when ClaudeAgentSDK::UnknownBlock block.data else block end end |
.serialize_rate_limit_event(msg) ⇒ Object
131 132 133 134 135 136 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 131 def serialize_rate_limit_event(msg) { type: 'rate_limit_event', data: msg.data }.compact end |
.serialize_result_message(msg) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 54 def (msg) { type: 'result', subtype: msg.subtype, durationMs: msg.duration_ms, durationApiMs: msg.duration_api_ms, isError: msg.is_error, numTurns: msg.num_turns, sessionId: msg.session_id, stopReason: msg.stop_reason, totalCostUsd: msg.total_cost_usd, usage: msg.usage, result: msg.result, structuredOutput: msg.structured_output }.compact end |
.serialize_stream_event(msg) ⇒ Object
121 122 123 124 125 126 127 128 129 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 121 def serialize_stream_event(msg) { type: 'stream_event', uuid: msg.uuid, sessionId: msg.session_id, event: msg.event, parentToolUseId: msg.parent_tool_use_id }.compact end |
.serialize_system_message(msg) ⇒ Object
113 114 115 116 117 118 119 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 113 def (msg) { type: 'system', subtype: msg.subtype, data: msg.data }.compact end |
.serialize_task_notification_message(msg) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 98 def (msg) { type: 'system', subtype: 'task_notification', taskId: msg.task_id, status: msg.status, outputFile: msg.output_file, summary: msg.summary, uuid: msg.uuid, sessionId: msg.session_id, toolUseId: msg.tool_use_id, usage: msg.usage }.compact end |
.serialize_task_progress_message(msg) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 84 def (msg) { type: 'system', subtype: 'task_progress', taskId: msg.task_id, description: msg.description, usage: msg.usage, uuid: msg.uuid, sessionId: msg.session_id, toolUseId: msg.tool_use_id, lastToolName: msg.last_tool_name }.compact end |
.serialize_task_started_message(msg) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 71 def (msg) { type: 'system', subtype: 'task_started', taskId: msg.task_id, description: msg.description, uuid: msg.uuid, sessionId: msg.session_id, toolUseId: msg.tool_use_id, taskType: msg.task_type }.compact end |
.serialize_user_message(msg) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/claude_agent_server/services/message_serializer.rb', line 35 def (msg) { type: 'user', content: serialize_content(msg.content), uuid: msg.uuid, parentToolUseId: msg.parent_tool_use_id }.compact end |