3434 "integer+uint64=integer" ,
3535)
3636
37- # These are generator configuration, not schema rewrites. The v1.19 schema uses
38- # discriminators for open variants that datamodel-code-generator otherwise renders
39- # as placeholder literals.
40- CATCHALL_TYPE_OVERRIDES = {
41- "CreateElicitationRequest3.mode" : "acp._schema_types.OpenString" ,
42- "CreateElicitationRequest4.mode" : "acp._schema_types.OpenString" ,
43- "CreateElicitationResponse4.action" : "acp._schema_types.OpenString" ,
44- "ElicitationPropertySchema6.type" : "acp._schema_types.OpenString" ,
45- "MultiSelectItems2.type" : "acp._schema_types.OpenString" ,
37+ OPEN_UNIONS = {
38+ "CreateElicitationRequest" : 2 ,
39+ "CreateElicitationResponse" : 3 ,
40+ "ElicitationPropertySchema" : 5 ,
41+ "MultiSelectItems" : 1 ,
4642}
47- OPEN_UNIONS = (
48- "CreateElicitationRequest" ,
49- "CreateElicitationResponse" ,
50- "ElicitationPropertySchema" ,
51- "MultiSelectItems" ,
52- )
43+
44+
45+ def _inline_model_ref (definition : str , * steps : tuple [str , int | None ]) -> str :
46+ ref = f"#/$defs/{ definition } "
47+ for keyword , index in steps :
48+ ref += f"#-datamodel-code-generator-#-{ keyword } -#-special-#"
49+ if index is not None :
50+ ref += f"/{ index } "
51+ return ref
52+
5353
5454# A few schema definitions share their name with a tagged SessionUpdate or
5555# MultiSelectItems variant. Give the definition an internal base name so the public
6565 "UsageUpdate" ,
6666 )
6767}
68+ MODEL_NAME_MAP .update ({
69+ _inline_model_ref ("AgentResponse" , ("anyOf" , 0 ), ("object" , None )): "AgentResponseMessage" ,
70+ _inline_model_ref ("AgentResponse" , ("anyOf" , 1 ), ("object" , None )): "AgentErrorMessage" ,
71+ _inline_model_ref ("ClientResponse" , ("anyOf" , 0 ), ("object" , None )): "ClientResponseMessage" ,
72+ _inline_model_ref ("ClientResponse" , ("anyOf" , 1 ), ("object" , None )): "ClientErrorMessage" ,
73+ _inline_model_ref ("SetSessionConfigOptionRequest" , ("anyOf" , 0 ), ("object" , None )): (
74+ "SetSessionConfigOptionBooleanRequest"
75+ ),
76+ _inline_model_ref ("SetSessionConfigOptionRequest" , ("anyOf" , 1 ), ("object" , None )): (
77+ "SetSessionConfigOptionSelectRequest"
78+ ),
79+ _inline_model_ref ("CreateElicitationResponse" , ("anyOf" , 0 ), ("allOf" , None )): "AcceptElicitationResponse" ,
80+ _inline_model_ref ("CreateElicitationResponse" , ("anyOf" , 1 ), ("object" , None )): "DeclineElicitationResponse" ,
81+ _inline_model_ref ("CreateElicitationResponse" , ("anyOf" , 2 ), ("object" , None )): "CancelElicitationResponse" ,
82+ _inline_model_ref ("CreateElicitationResponse" , ("anyOf" , 3 ), ("object" , None )): "OtherElicitationResponse" ,
83+ _inline_model_ref ("ElicitationFormMode" , ("anyOf" , 0 ), ("allOf" , None )): "ElicitationFormSessionMode" ,
84+ _inline_model_ref ("ElicitationFormMode" , ("anyOf" , 1 ), ("allOf" , None )): "ElicitationFormRequestMode" ,
85+ _inline_model_ref ("ElicitationUrlMode" , ("anyOf" , 0 ), ("allOf" , None )): "ElicitationUrlSessionMode" ,
86+ _inline_model_ref ("ElicitationUrlMode" , ("anyOf" , 1 ), ("allOf" , None )): "ElicitationUrlRequestMode" ,
87+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 0 ), ("allOf" , None )): ("ElicitationStringPropertySchema" ),
88+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 1 ), ("allOf" , None )): ("ElicitationNumberPropertySchema" ),
89+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 2 ), ("allOf" , None )): ("ElicitationIntegerPropertySchema" ),
90+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 3 ), ("allOf" , None )): ("ElicitationBooleanPropertySchema" ),
91+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 4 ), ("allOf" , None )): (
92+ "ElicitationMultiSelectPropertySchema"
93+ ),
94+ _inline_model_ref ("ElicitationPropertySchema" , ("anyOf" , 5 ), ("object" , None )): ("ElicitationOtherPropertySchema" ),
95+ _inline_model_ref ("MultiSelectItems" , ("anyOf" , 0 ), ("allOf" , None )): "StringMultiSelectItems" ,
96+ _inline_model_ref ("MultiSelectItems" , ("anyOf" , 1 ), ("object" , None )): "OtherMultiSelectItems" ,
97+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 0 ), ("allOf" , None ), ("allOf" , None )): (
98+ "CreateFormElicitationRequestBase"
99+ ),
100+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 0 ), ("allOf" , 0 ), ("allOf" , None )): (
101+ "CreateFormSessionElicitationRequestBase"
102+ ),
103+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 0 ), ("allOf" , 1 ), ("allOf" , None )): (
104+ "CreateFormRequestElicitationRequestBase"
105+ ),
106+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 0 ), ("allOf" , None ), ("union_model-0" , None )): (
107+ "CreateFormSessionElicitationRequest"
108+ ),
109+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 0 ), ("allOf" , None ), ("union_model-1" , None )): (
110+ "CreateFormRequestElicitationRequest"
111+ ),
112+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 1 ), ("allOf" , None ), ("allOf" , None )): (
113+ "CreateUrlElicitationRequestBase"
114+ ),
115+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 1 ), ("allOf" , 0 ), ("allOf" , None )): (
116+ "CreateUrlSessionElicitationRequestBase"
117+ ),
118+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 1 ), ("allOf" , 1 ), ("allOf" , None )): (
119+ "CreateUrlRequestElicitationRequestBase"
120+ ),
121+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 1 ), ("allOf" , None ), ("union_model-0" , None )): (
122+ "CreateUrlSessionElicitationRequest"
123+ ),
124+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 1 ), ("allOf" , None ), ("union_model-1" , None )): (
125+ "CreateUrlRequestElicitationRequest"
126+ ),
127+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 2 ), ("anyOf" , 0 ), ("allOf" , None )): (
128+ "CreateOtherSessionElicitationRequest"
129+ ),
130+ _inline_model_ref ("CreateElicitationRequest" , ("anyOf" , 2 ), ("anyOf" , 1 ), ("allOf" , None )): (
131+ "CreateOtherRequestElicitationRequest"
132+ ),
133+ })
68134
69135# datamodel-code-generator owns schema interpretation and its internal model names.
70136# This block only preserves the Python names already published by the SDK.
87153 "other",
88154 ]
89155
90- AgentResponseMessage = AgentResponse1
91- AgentErrorMessage = AgentResponse2
92- ClientResponseMessage = ClientResponse1
93- ClientErrorMessage = ClientResponse2
94-
95156 TextContentBlock = ContentBlockText
96157 ImageContentBlock = ContentBlockImage
97158 AudioContentBlock = ContentBlockAudio
105166 AllowedOutcome = RequestPermissionOutcomeSelected
106167 EnvVarAuthMethod = AuthMethodEnvVarModel
107168 TerminalAuthMethod = AuthMethodTerminalModel
108- SetSessionConfigOptionBooleanRequest = SetSessionConfigOptionRequest1
109- SetSessionConfigOptionSelectRequest = SetSessionConfigOptionRequest2
110- SetSessionConfigOptionRequest1.__acp_public_name__ = "SetSessionConfigOptionBooleanRequest"
111- SetSessionConfigOptionRequest2.__acp_public_name__ = "SetSessionConfigOptionSelectRequest"
112-
113169 UserMessageChunk = SessionUpdateUserMessageChunk
114170 AgentMessageChunk = SessionUpdateAgentMessageChunk
115171 AgentThoughtChunk = SessionUpdateAgentThoughtChunk
138194 TerminalToolCallContent = ToolCallContentTerminal
139195
140196 CreateOtherElicitationRequest = Union[
141- CreateElicitationRequest3 ,
142- CreateElicitationRequest4 ,
197+ CreateOtherSessionElicitationRequest ,
198+ CreateOtherRequestElicitationRequest ,
143199 ]
144- CreateFormSessionElicitationRequest = CreateElicitationRequest14
145- CreateFormRequestElicitationRequest = CreateElicitationRequest15
146- CreateUrlSessionElicitationRequest = CreateElicitationRequest24
147- CreateUrlRequestElicitationRequest = CreateElicitationRequest25
148200 CreateFormElicitationRequest = Union[
149201 CreateFormSessionElicitationRequest,
150202 CreateFormRequestElicitationRequest,
159211 CreateOtherElicitationRequest,
160212 ]
161213
162- AcceptElicitationResponse = CreateElicitationResponse1
163- DeclineElicitationResponse = CreateElicitationResponse2
164- CancelElicitationResponse = CreateElicitationResponse3
165- OtherElicitationResponse = CreateElicitationResponse4
166214 CreateElicitationResponse = Union[
167215 AcceptElicitationResponse,
168216 DeclineElicitationResponse,
169217 CancelElicitationResponse,
170218 OtherElicitationResponse,
171219 ]
172- ElicitationFormSessionMode = ElicitationFormMode1
173- ElicitationFormRequestMode = ElicitationFormMode2
174- ElicitationUrlSessionMode = ElicitationUrlMode1
175- ElicitationUrlRequestMode = ElicitationUrlMode2
176220 ElicitationMode = Union[
177221 ElicitationFormSessionMode,
178222 ElicitationFormRequestMode,
179223 ElicitationUrlSessionMode,
180224 ElicitationUrlRequestMode,
181225 ]
182226
183- ElicitationStringPropertySchema = ElicitationPropertySchema1
184- ElicitationNumberPropertySchema = ElicitationPropertySchema2
185- ElicitationIntegerPropertySchema = ElicitationPropertySchema3
186- ElicitationBooleanPropertySchema = ElicitationPropertySchema4
187- ElicitationMultiSelectPropertySchema = ElicitationPropertySchema5
188- ElicitationOtherPropertySchema = ElicitationPropertySchema6
189227 _StringMultiSelectItems = StringMultiSelectItemsBase
190- StringMultiSelectItems = MultiSelectItems1
191- OtherMultiSelectItems = MultiSelectItems2
192228
193229 NesEditSuggestionVariant = NesSuggestionEdit
194230 NesJumpSuggestionVariant = NesSuggestionJump
@@ -264,7 +300,6 @@ def render_schema() -> str:
264300 schema_version = "2020-12" ,
265301 schema_version_mode = VersionMode .Strict ,
266302 type_mappings = list (UNSIGNED_TYPE_MAPPINGS ),
267- type_overrides = CATCHALL_TYPE_OVERRIDES ,
268303 generate_schema_validators = True ,
269304 use_annotated = True ,
270305 field_constraints = True ,
@@ -277,13 +312,14 @@ def render_schema() -> str:
277312
278313
279314def _schema_for_codegen (schema : dict [str , Any ]) -> dict [str , Any ]:
280- """Apply the fixed v1.19 compatibility patch required for open unions ."""
315+ """Drop open-union constraints that Pydantic cannot represent statically ."""
281316 patched = copy .deepcopy (schema )
282- for name in OPEN_UNIONS :
317+ for name , catchall_index in OPEN_UNIONS . items () :
283318 try :
284319 del patched ["$defs" ][name ]["discriminator" ]
320+ del patched ["$defs" ][name ]["anyOf" ][catchall_index ]["not" ]
285321 except KeyError :
286- raise ValueError (f"{ name } no longer has the expected discriminator " ) from None
322+ raise ValueError (f"{ name } no longer has the expected open-union shape " ) from None
287323 return patched
288324
289325
0 commit comments