Packages
claude_code
0.33.1
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
lib/claude_code/message/system_message.ex
defmodule ClaudeCode.Message.SystemMessage do
@moduledoc """
Umbrella module for system message subtypes from the Claude CLI.
System messages are emitted by the CLI for session initialization,
hook lifecycle events, status updates, task progress, and other
informational events. Each subtype has its own struct module under
`ClaudeCode.Message.SystemMessage.*`.
"""
alias __MODULE__.CompactBoundary
alias __MODULE__.ElicitationComplete
alias __MODULE__.FilesPersisted
alias __MODULE__.HookProgress
alias __MODULE__.HookResponse
alias __MODULE__.HookStarted
alias __MODULE__.Init
alias __MODULE__.LocalCommandOutput
alias __MODULE__.Status
alias __MODULE__.TaskNotification
alias __MODULE__.TaskProgress
alias __MODULE__.TaskStarted
@type t ::
Init.t()
| CompactBoundary.t()
| HookStarted.t()
| HookResponse.t()
| HookProgress.t()
| Status.t()
| LocalCommandOutput.t()
| FilesPersisted.t()
| ElicitationComplete.t()
| TaskStarted.t()
| TaskProgress.t()
| TaskNotification.t()
@doc """
Checks if a value is any type of system message.
"""
@spec type?(any()) :: boolean()
def type?(%Init{}), do: true
def type?(%CompactBoundary{}), do: true
def type?(%HookStarted{}), do: true
def type?(%HookResponse{}), do: true
def type?(%HookProgress{}), do: true
def type?(%Status{}), do: true
def type?(%LocalCommandOutput{}), do: true
def type?(%FilesPersisted{}), do: true
def type?(%ElicitationComplete{}), do: true
def type?(%TaskStarted{}), do: true
def type?(%TaskProgress{}), do: true
def type?(%TaskNotification{}), do: true
def type?(_), do: false
end