2121from splunklib .ai .tools import ToolType
2222
2323
24- @dataclass (frozen = True )
24+ @dataclass (frozen = True , kw_only = True )
2525class TextBlock :
2626 """Plain text content block returned by a model."""
2727
@@ -36,7 +36,7 @@ class TextBlock:
3636 """
3737
3838
39- @dataclass (frozen = True )
39+ @dataclass (frozen = True , kw_only = True )
4040class OpaqueBlock :
4141 """Content block of an unrecognized or unsupported type.
4242
@@ -62,30 +62,30 @@ class OpaqueBlock:
6262ContentBlock = TextBlock | OpaqueBlock
6363
6464
65- @dataclass (frozen = True )
65+ @dataclass (frozen = True , kw_only = True )
6666class ToolCall :
6767 id : str
6868 name : str
6969 type : ToolType
7070 args : dict [str , Any ]
7171
7272
73- @dataclass (frozen = True )
73+ @dataclass (frozen = True , kw_only = True )
7474class SubagentCall :
7575 id : str
7676 name : str
7777 args : str | dict [str , Any ]
7878 thread_id : str | None
7979
8080
81- @dataclass (frozen = True )
81+ @dataclass (frozen = True , kw_only = True )
8282class StructuredOutputCall :
8383 id : str
8484 name : str
8585 args : dict [str , Any ]
8686
8787
88- @dataclass (frozen = True )
88+ @dataclass (frozen = True , kw_only = True )
8989class BaseMessage :
9090 role : str = field (init = False )
9191
@@ -96,7 +96,7 @@ def __post_init__(self) -> None:
9696 )
9797
9898
99- @dataclass (frozen = True )
99+ @dataclass (frozen = True , kw_only = True )
100100class HumanMessage (BaseMessage ):
101101 """
102102 Message originating from a human user.
@@ -110,7 +110,7 @@ class HumanMessage(BaseMessage):
110110 content : str
111111
112112
113- @dataclass (frozen = True )
113+ @dataclass (frozen = True , kw_only = True )
114114class AIMessage (BaseMessage ):
115115 """
116116 Message produced by an LLM.
@@ -141,7 +141,7 @@ class AIMessage(BaseMessage):
141141 """
142142
143143
144- @dataclass (frozen = True )
144+ @dataclass (frozen = True , kw_only = True )
145145class ToolResult :
146146 """
147147 ToolResult represents a result of a successful tool call.
@@ -151,7 +151,7 @@ class ToolResult:
151151 structured_content : dict [str , Any ] | None
152152
153153
154- @dataclass (frozen = True )
154+ @dataclass (frozen = True , kw_only = True )
155155class SubagentStructuredResult :
156156 """
157157 SubagentStructuredResult represents a result of a successful subagent call.
@@ -161,7 +161,7 @@ class SubagentStructuredResult:
161161 structured_output : dict [str , Any ]
162162
163163
164- @dataclass (frozen = True )
164+ @dataclass (frozen = True , kw_only = True )
165165class SubagentTextResult :
166166 """
167167 SubagentTextResult represents a result of a successful subagent call.
@@ -171,7 +171,7 @@ class SubagentTextResult:
171171 content : str
172172
173173
174- @dataclass (frozen = True )
174+ @dataclass (frozen = True , kw_only = True )
175175class ToolFailureResult :
176176 """
177177 Represents the result of a failed sub-agent call.
@@ -183,7 +183,7 @@ class ToolFailureResult:
183183 error_message : str
184184
185185
186- @dataclass (frozen = True )
186+ @dataclass (frozen = True , kw_only = True )
187187class SubagentFailureResult :
188188 """
189189 Represents the result of a failed tool call.
@@ -195,7 +195,7 @@ class SubagentFailureResult:
195195 error_message : str
196196
197197
198- @dataclass (frozen = True )
198+ @dataclass (frozen = True , kw_only = True )
199199class ToolMessage (BaseMessage ):
200200 """ToolMessage represents a response of a tool call"""
201201
@@ -208,7 +208,7 @@ class ToolMessage(BaseMessage):
208208
209209
210210# TODO: do we have a test that uses this?
211- @dataclass (frozen = True )
211+ @dataclass (frozen = True , kw_only = True )
212212class SystemMessage (BaseMessage ):
213213 """
214214 A message used to prime or control agent behavior.
@@ -218,7 +218,7 @@ class SystemMessage(BaseMessage):
218218 content : str
219219
220220
221- @dataclass (frozen = True )
221+ @dataclass (frozen = True , kw_only = True )
222222class SubagentMessage (BaseMessage ):
223223 """
224224 SubagentMessage represents a response of an agent invocation
@@ -231,7 +231,7 @@ class SubagentMessage(BaseMessage):
231231 result : SubagentStructuredResult | SubagentTextResult | SubagentFailureResult
232232
233233
234- @dataclass (frozen = True )
234+ @dataclass (frozen = True , kw_only = True )
235235class StructuredOutputMessage (BaseMessage ):
236236 """
237237 StructuredMessage represents a response to the StructuredOutputCall.
@@ -254,7 +254,7 @@ class StructuredOutputMessage(BaseMessage):
254254# where developers might want to store messages in say KV store.
255255
256256
257- @dataclass (frozen = True )
257+ @dataclass (frozen = True , kw_only = True )
258258class AgentResponse (Generic [OutputT ]):
259259 # in case output_schema is provided, this will hold the parsed structured output
260260 structured_output : OutputT
0 commit comments