Session messages¶
48 types. Import any of them from opencode.types.
SessionMessageAssistant
¶
metadata
class-attribute
instance-attribute
¶
snapshot
class-attribute
instance-attribute
¶
snapshot: SessionMessageAssistantSnapshot | None = Field(
default=None, exclude_if=is_none
)
finish
class-attribute
instance-attribute
¶
finish: (
OpenEnum[
Literal[
"stop",
"length",
"tool-calls",
"content-filter",
"error",
"unknown",
]
]
| None
) = Field(default=None, exclude_if=is_none)
raw_finish
class-attribute
instance-attribute
¶
raw_finish: str | None = Field(
default=None,
validation_alias="rawFinish",
serialization_alias="rawFinish",
exclude_if=is_none,
)
native
class-attribute
instance-attribute
¶
native: SessionMessageNative | None = Field(
default=None, exclude_if=is_none
)
cost
class-attribute
instance-attribute
¶
cost: MoneyUSD | None = Field(
default=None, exclude_if=is_none
)
tokens
class-attribute
instance-attribute
¶
tokens: TokenUsageInfo | None = Field(
default=None, exclude_if=is_none
)
error
class-attribute
instance-attribute
¶
error: SessionStructuredError | None = Field(
default=None, exclude_if=is_none
)
retry
class-attribute
instance-attribute
¶
retry: SessionMessageAssistantRetry | None = Field(
default=None, exclude_if=is_none
)
SessionMessageAssistantContent
module-attribute
¶
SessionMessageAssistantContent: TypeAlias = Annotated[
Annotated[SessionMessageAssistantText, Tag("text")]
| Annotated[
SessionMessageAssistantReasoning, Tag("reasoning")
]
| Annotated[SessionMessageAssistantTool, Tag("tool")]
| Annotated[
UnknownSessionMessageAssistantContent,
Tag("__unknown__"),
],
Discriminator(
discriminator(
"type", "type", ["text", "reasoning", "tool"]
)
),
]
SessionMessageAssistantContentItem
module-attribute
¶
SessionMessageAssistantContentItem: TypeAlias = Annotated[
Annotated[SessionMessageAssistantText, Tag("text")]
| Annotated[
SessionMessageAssistantReasoning, Tag("reasoning")
]
| Annotated[SessionMessageAssistantTool, Tag("tool")]
| Annotated[
UnknownSessionMessageAssistantContentItem,
Tag("__unknown__"),
],
Discriminator(
discriminator(
"type", "type", ["text", "reasoning", "tool"]
)
),
]
SessionMessageAssistantReasoning
¶
native
class-attribute
instance-attribute
¶
native: SessionMessageNative | None = Field(
default=None, exclude_if=is_none
)
time
class-attribute
instance-attribute
¶
time: SessionMessageAssistantReasoningTime | None = Field(
default=None, exclude_if=is_none
)
SessionMessageAssistantReasoningTime
¶
SessionMessageAssistantRetry
¶
SessionMessageAssistantSnapshot
¶
start
class-attribute
instance-attribute
¶
start: SnapshotID | None = Field(
default=None, exclude_if=is_none
)
end
class-attribute
instance-attribute
¶
end: SnapshotID | None = Field(
default=None, exclude_if=is_none
)
files
class-attribute
instance-attribute
¶
files: list[RelativePath] | None = Field(
default=None, exclude_if=is_none
)
SessionMessageAssistantText
¶
SessionMessageAssistantTime
¶
SessionMessageAssistantTool
¶
executed
class-attribute
instance-attribute
¶
executed: bool | None = Field(
default=None, exclude_if=is_none
)
native
class-attribute
instance-attribute
¶
native: SessionMessageNative | None = Field(
default=None, exclude_if=is_none
)
SessionMessageAssistantToolState
module-attribute
¶
SessionMessageAssistantToolState: TypeAlias = Annotated[
Annotated[
SessionMessageToolStateStreaming, Tag("streaming")
]
| Annotated[
SessionMessageToolStateRunning, Tag("running")
]
| Annotated[
SessionMessageToolStateCompleted, Tag("completed")
]
| Annotated[SessionMessageToolStateError, Tag("error")]
| Annotated[
UnknownSessionMessageAssistantToolState,
Tag("__unknown__"),
],
Discriminator(
discriminator(
"status",
"status",
["streaming", "running", "completed", "error"],
)
),
]
SessionMessageAssistantToolTime
¶
SessionMessageCompaction
module-attribute
¶
SessionMessageCompaction: TypeAlias = Annotated[
Annotated[
SessionMessageCompactionRunning, Tag("running")
]
| Annotated[
SessionMessageCompactionCompleted, Tag("completed")
]
| Annotated[
SessionMessageCompactionFailed, Tag("failed")
]
| Annotated[
UnknownSessionMessageCompaction, Tag("__unknown__")
],
Discriminator(
discriminator(
"status",
"status",
["running", "completed", "failed"],
)
),
]
SessionMessageCompactionCompleted
¶
metadata
class-attribute
instance-attribute
¶
model
class-attribute
instance-attribute
¶
model: ModelRef | None = Field(
default=None, exclude_if=is_none
)
native
class-attribute
instance-attribute
¶
native: SessionMessageNative | None = Field(
default=None, exclude_if=is_none
)
cost
class-attribute
instance-attribute
¶
cost: MoneyUSD | None = Field(
default=None, exclude_if=is_none
)
tokens
class-attribute
instance-attribute
¶
tokens: TokenUsageInfo | None = Field(
default=None, exclude_if=is_none
)
SessionMessageCompactionFailed
¶
metadata
class-attribute
instance-attribute
¶
cost
class-attribute
instance-attribute
¶
cost: MoneyUSD | None = Field(
default=None, exclude_if=is_none
)
tokens
class-attribute
instance-attribute
¶
tokens: TokenUsageInfo | None = Field(
default=None, exclude_if=is_none
)
SessionMessageContentUpdatedEventData
¶
session_id
class-attribute
instance-attribute
¶
session_id: SessionID = Field(
validation_alias="sessionID",
serialization_alias="sessionID",
)
message_id
class-attribute
instance-attribute
¶
message_id: SessionMessageID = Field(
validation_alias="messageID",
serialization_alias="messageID",
)
SessionMessageContentUpdatedEventDurable
¶
SessionMessageIdle
¶
metadata
class-attribute
instance-attribute
¶
error
class-attribute
instance-attribute
¶
error: SessionStructuredError | None = Field(
default=None, exclude_if=is_none
)
SessionMessageInfo
module-attribute
¶
SessionMessageInfo: TypeAlias = Annotated[
Annotated[
SessionMessageAgentSelected, Tag("agent-switched")
]
| Annotated[
SessionMessageModelSelected, Tag("model-switched")
]
| Annotated[
SessionMessageLocationSwitched,
Tag("location-switched"),
]
| Annotated[SessionMessageUser, Tag("user")]
| Annotated[SessionMessageSynthetic, Tag("synthetic")]
| Annotated[SessionMessageSystem, Tag("system")]
| Annotated[SessionMessageSkill, Tag("skill")]
| Annotated[SessionMessageShell, Tag("shell")]
| Annotated[SessionMessageAssistant, Tag("assistant")]
| Annotated[SessionMessageCompaction, Tag("compaction")]
| Annotated[SessionMessageIdle, Tag("idle")]
| Annotated[
UnknownSessionMessageInfo, Tag("__unknown__")
],
Discriminator(
discriminator(
"type",
"type",
[
"agent-switched",
"model-switched",
"location-switched",
"user",
"synthetic",
"system",
"skill",
"shell",
"assistant",
"compaction",
"idle",
],
)
),
]
SessionMessageLocationSwitched
¶
metadata
class-attribute
instance-attribute
¶
project_id
class-attribute
instance-attribute
¶
project_id: ProjectID | None = Field(
default=None,
validation_alias="projectID",
serialization_alias="projectID",
exclude_if=is_none,
)
subpath
class-attribute
instance-attribute
¶
subpath: RelativePath | None = Field(
default=None, exclude_if=is_none
)
previous
class-attribute
instance-attribute
¶
previous: SessionMessageLocationSwitchedPrevious | None = (
None
)
SessionMessageLocationSwitchedPrevious
¶
project_id
class-attribute
instance-attribute
¶
project_id: ProjectID | None = Field(
default=None,
validation_alias="projectID",
serialization_alias="projectID",
exclude_if=is_none,
)
subpath
class-attribute
instance-attribute
¶
subpath: RelativePath | None = Field(
default=None, exclude_if=is_none
)
SessionMessageShell
¶
metadata
class-attribute
instance-attribute
¶
shell_id
class-attribute
instance-attribute
¶
shell_id: ShellID = Field(
validation_alias="shellID",
serialization_alias="shellID",
)
exit
class-attribute
instance-attribute
¶
exit: (
float
| OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
| None
) = Field(default=None, exclude_if=is_none)
output
class-attribute
instance-attribute
¶
output: SessionMessageShellOutput | None = Field(
default=None, exclude_if=is_none
)
SessionMessageShellOutput
¶
SessionMessageShellTime
¶
SessionMessageSynthetic
¶
SessionMessageToolStateCompleted
¶
SessionMessageToolStateError
¶
content
class-attribute
instance-attribute
¶
content: list[ToolContent] | None = Field(
default=None, exclude_if=is_none
)
SessionMessageToolStateRunning
¶
SessionMessageToolStateStreaming
¶
SessionMessageUser
¶
metadata
class-attribute
instance-attribute
¶
files
class-attribute
instance-attribute
¶
files: list[PromptFileAttachment] | None = Field(
default=None, exclude_if=is_none
)
agents
class-attribute
instance-attribute
¶
agents: list[PromptAgentAttachment] | None = Field(
default=None, exclude_if=is_none
)
skills
class-attribute
instance-attribute
¶
skills: list[PromptSkillAttachment] | None = Field(
default=None, exclude_if=is_none
)