@@ -48,4 +48,43 @@ void shouldParseTypedPromptResultFromRawNodeWithSameFacts() throws Exception {
4848 assertEquals (raw .path ("usage" ).path ("totalTokens" ).asLong (),
4949 typed .getUsage ().getTotalTokens ());
5050 }
51+ @ Test
52+ void shouldParseDescriptorAndSessionModelsFromCallerOwnedRawNodes () throws Exception {
53+ // Exercise every remaining raw-node overload on Jackson 3.
54+ JsonNode sessionRaw = JsonMapper .builder ().build ().readTree (
55+ "{\" sessionId\" :\" s2\" ,\" model\" :\" kimi-k2\" ,\" mode\" :\" code\" ,\" future\" :1}" );
56+ JsonNode toolRaw = JsonMapper .builder ().build ().readTree (
57+ "{\" id\" :\" call_2\" ,\" name\" :\" search\" ,\" arguments\" :{\" q\" :\" x\" },\" future\" :2}" );
58+ JsonNode errorRaw = JsonMapper .builder ().build ().readTree (
59+ "{\" code\" :40001,\" message\" :\" bad\" ,\" data\" :{\" x\" :1},\" future\" :3}" );
60+ JsonNode modelRaw = JsonMapper .builder ().build ().readTree (
61+ "{\" id\" :\" kimi-k2\" ,\" name\" :\" Kimi K2\" ,\" future\" :4}" );
62+ JsonNode modeRaw = JsonMapper .builder ().build ().readTree (
63+ "{\" id\" :\" code\" ,\" name\" :\" Code\" ,\" future\" :5}" );
64+ JsonNode providerRaw = JsonMapper .builder ().build ().readTree (
65+ "{\" id\" :\" moonshot\" ,\" name\" :\" Moonshot\" ,\" future\" :6}" );
66+
67+ KimiSession session = mapper .readSession (sessionRaw );
68+ KimiToolCall tool = mapper .readToolCall (toolRaw );
69+ KimiError error = mapper .readError (errorRaw );
70+ KimiModel model = mapper .readModel (modelRaw );
71+ KimiMode mode = mapper .readMode (modeRaw );
72+ KimiProvider provider = mapper .readProvider (providerRaw );
73+
74+ assertEquals ("s2" , session .getId ());
75+ assertEquals (1 , session .getExtensions ().get ("future" ).asInt ());
76+ assertEquals ("search" , tool .getName ());
77+ assertEquals (2 , tool .getExtensions ().get ("future" ).asInt ());
78+ assertEquals (40001 , error .getCode ().asInt ());
79+ assertEquals (3 , error .getExtensions ().get ("future" ).asInt ());
80+ assertEquals (4 , model .getExtensions ().get ("future" ).asInt ());
81+ assertEquals (5 , mode .getExtensions ().get ("future" ).asInt ());
82+ assertEquals (6 , provider .getExtensions ().get ("future" ).asInt ());
83+
84+ sessionRaw .withObject ("/" ).put ("future" , 99 );
85+ toolRaw .withObject ("/" ).put ("future" , 99 );
86+ assertEquals (1 , session .getExtensions ().get ("future" ).asInt ());
87+ assertEquals (2 , tool .getExtensions ().get ("future" ).asInt ());
88+ }
89+
5190}
0 commit comments