thinking.yaml

 1---
 2version: 2
 3interactions:
 4- id: 0
 5  request:
 6    proto: HTTP/1.1
 7    proto_major: 1
 8    proto_minor: 1
 9    content_length: 466
10    host: ""
11    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"}],"model":"openai/gpt-5","tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"reasoning":{"enabled":true}}'
12    headers:
13      Accept:
14      - application/json
15      Content-Type:
16      - application/json
17      User-Agent:
18      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
19    url: https://ai-gateway.vercel.sh/v1/chat/completions
20    method: POST
21  response:
22    proto: HTTP/2.0
23    proto_major: 2
24    proto_minor: 0
25    content_length: -1
26    uncompressed: true
27    body: '{"id":"gen_01KKHTTA1DCN018DY9V8QKWPKR","object":"chat.completion","created":1773346311,"model":"openai/gpt-5","choices":[{"index":0,"message":{"role":"assistant","content":null,"reasoning":"**Deciding on the weather tool**\n\nI need to figure out whether to call the weather tool for the user’s request about Florence, Italy. Since they’ve asked for weather info, it makes sense to use the functions.weather tool targeting that location. Since there''s only one tool involved, I think I should call functions.weather directly. Using multi_tool_use.parallel seems unnecessary here because we only need this one tool. So, I''ll proceed with calling functions.weather for Florence, Italy.","reasoning_details":[{"type":"reasoning.summary","summary":"**Deciding on the weather tool**\n\nI need to figure out whether to call the weather tool for the user’s request about Florence, Italy. Since they’ve asked for weather info, it makes sense to use the functions.weather tool targeting that location. Since there''s only one tool involved, I think I should call functions.weather directly. Using multi_tool_use.parallel seems unnecessary here because we only need this one tool. So, I''ll proceed with calling functions.weather for Florence, Italy.","id":"rs_00d2f6810bafb8e40169b31dfe9384819092696410f3668856","format":"openai-responses-v1","index":0},{"type":"reasoning.encrypted","data":"gAAAAABpsx4H2XPLIGMjLXTKKE3tMMj5N_K6bCl-bKPuPQIa1yJCBxhXG_ttUlpbM74yKj9nnhAVciny2to3wHBSfjbj3fn20yJavilIW_sFeARllHgBl9dVWaQ8pmGsHBpryThxIrl-iXrYGka2JA21nhNVN1m_UE3yz1qdfLAAGKyKBHVmo0UlBCwPG6bA_PisxWdRebjJrEB1oEzl7WhWMN2T6SjEKykKF4z8bSiOpx8rxgI4vn0SinBw556RaNU9cgKtUR4CC2u4E7700zVSicSKSoqB7FlWCgKFvjO_vGJ5uWsVqm50VGQK9h2R4DS2ZOddfsWjJfqo32h9Pz6VBmru2DKil7DSVhgP--1p9b9gzjeGYPrgqBpxt-XO9i7loUhrwgo3k42fjJ8itaoFqLkloX882-HbxZwgsVgcyM95WWwBrUlPuR3MpVVZ7sqGo5K9MSX1PUiBQt7qdfxLnLJSmOpgJUW65XU2RCOR9wGQ3ZqIsQ0-gmvLk5QrlrCegrF1DGgSCND3DSiyEwkmBP21FJEk6Yzr2JB4vSPp9WUW6XbHi3tyJbXQZlwfg64JDT378xowgAkBDF6utYhMQbOswQ1FJa0RTSM9iI3jmBeZs9ka5PdHtlieWZfGMZ5OoCVj48J_mrv9cfEJi1rHmKiFNP90tdeW0JJ-fcBaET-mWFEJtRy7yg1twEfE__3CUhYqGDPUI7IB_8o2-oZ3l6SfaRHuXsVkLq3t2K8qFgdj-njeEH5_pIC8Hi1oipNkaTngSDFNmskkD7L1Tz8v36vDV-p686KL7qFrHaBtMDc62hx2WM1tgrxngTwPbfeH2BYCw7r1fvCIpxxLpt1aS3u3fGPDRed9QP7DlS7bCbjexMR0RIR_Npegt-bRps1btWfvpuAVcEPRAv6IHW3ahaNKHtJ-mUddZxISngosiyI27xdf8PtQSLSjIoW-w6cn2lAPXauS-FCVgHIGci76p0vZm9oW1TZ9J1S4Cyj9E8rwRiThrp60L4Ey1KbervfOEPhRJMFNIifJgp3sGBKWXKatIcqC5-aHMjWsn5AzBV440zHDAbEqaJ_VzgOEQ72rNUyXIw3Wm3kRqS9dheG9dCMAdQmHchzr4sQw7N66u-vAgqd6nBMAwtdxni4E4LMhl_ndfVV7FV-bBg1W0iRN3CPlL9ksCxqgmPPCI5v40PJvypF_VMxR8GP4qBTziMtqIF505z7NaAiYAXQul_djMUkn6UkQQMkzj6Dboe7Yk3ymZbWkRyoVwWciU6F2WsaT6qX5V4Ao5aQdg2V3_zjIIlpWWuSA7o7JXX8GvUzj6jGfx4PCPNbIco5l0Jv8IaBQlF0t6P4IdpgT55ESMUdx0U_oR0i1urKsmTmydoCWKJKVvTetSLigniRRS2BfZN3NCRRwBT9N518UuqgjikdQ4fNewfgru9V5zdGnddRxaFUDYlkmok-lwA6LUhZsheFOBrnXra38gDfyqUn-QOIaUAw5R-3HakXIR13-jl99hTCuvxIlYtbJkPauZtfJxuZiG-VcAIKyQStO_UArWTsFv_lj4W1lTw==","id":"rs_00d2f6810bafb8e40169b31dfe9384819092696410f3668856","format":"openai-responses-v1","index":0}],"tool_calls":[{"id":"call_SmeBZtwDeWEKUJC6ead03JoS","type":"function","function":{"name":"weather","arguments":"{\"location\":\"Florence, Italy\"}"}}],"provider_metadata":{"openai":{"responseId":"resp_00d2f6810bafb8e40169b31dfe12208190b20f1737de071c6a","serviceTier":"default"},"gateway":{"routing":{"originalModelId":"openai/gpt-5","resolvedProvider":"openai","resolvedProviderApiModelId":"gpt-5-2025-08-07","internalResolvedModelId":"openai:gpt-5-2025-08-07","fallbacksAvailable":["azure"],"internalReasoning":"Selected openai as preferred provider for gpt-5. 1 fallback(s) available: azure","planningReasoning":"System credentials planned for: openai, azure. Total execution order: openai(system) → azure(system)","canonicalSlug":"openai/gpt-5","finalProvider":"openai","attempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":373697.894945,"endTime":382770.366758,"statusCode":200,"providerResponseId":"resp_00d2f6810bafb8e40169b31dfe12208190b20f1737de071c6a"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"openai:gpt-5-2025-08-07","canonicalSlug":"openai/gpt-5","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":373697.894945,"endTime":382770.366758,"statusCode":200,"providerResponseId":"resp_00d2f6810bafb8e40169b31dfe12208190b20f1737de071c6a"}]}],"totalProviderAttemptCount":1},"cost":"0.00205875","marketCost":"0.00205875","generationId":"gen_01KKHTTA1DCN018DY9V8QKWPKR","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":63,"completion_tokens":134,"total_tokens":197,"cost":0.00205875,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":64,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.00205875},"system_fingerprint":"fp_9oouf2om06","service_tier":"default","generationId":"gen_01KKHTTA1DCN018DY9V8QKWPKR"}'
28    headers:
29      Content-Type:
30      - application/json
31    status: 200 OK
32    code: 200
33    duration: 9.264108209s
34- id: 1
35  request:
36    proto: HTTP/1.1
37    proto_major: 1
38    proto_minor: 1
39    content_length: 3035
40    host: ""
41    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"},{"tool_calls":[{"id":"call_SmeBZtwDeWEKUJC6ead03JoS","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant","reasoning_details":[{"format":"openai-responses-v1","index":0,"summary":"**Deciding on the weather tool**\n\nI need to figure out whether to call the weather tool for the user’s request about Florence, Italy. Since they’ve asked for weather info, it makes sense to use the functions.weather tool targeting that location. Since there''s only one tool involved, I think I should call functions.weather directly. Using multi_tool_use.parallel seems unnecessary here because we only need this one tool. So, I''ll proceed with calling functions.weather for Florence, Italy.","type":"reasoning.summary"},{"data":"gAAAAABpsx4H2XPLIGMjLXTKKE3tMMj5N_K6bCl-bKPuPQIa1yJCBxhXG_ttUlpbM74yKj9nnhAVciny2to3wHBSfjbj3fn20yJavilIW_sFeARllHgBl9dVWaQ8pmGsHBpryThxIrl-iXrYGka2JA21nhNVN1m_UE3yz1qdfLAAGKyKBHVmo0UlBCwPG6bA_PisxWdRebjJrEB1oEzl7WhWMN2T6SjEKykKF4z8bSiOpx8rxgI4vn0SinBw556RaNU9cgKtUR4CC2u4E7700zVSicSKSoqB7FlWCgKFvjO_vGJ5uWsVqm50VGQK9h2R4DS2ZOddfsWjJfqo32h9Pz6VBmru2DKil7DSVhgP--1p9b9gzjeGYPrgqBpxt-XO9i7loUhrwgo3k42fjJ8itaoFqLkloX882-HbxZwgsVgcyM95WWwBrUlPuR3MpVVZ7sqGo5K9MSX1PUiBQt7qdfxLnLJSmOpgJUW65XU2RCOR9wGQ3ZqIsQ0-gmvLk5QrlrCegrF1DGgSCND3DSiyEwkmBP21FJEk6Yzr2JB4vSPp9WUW6XbHi3tyJbXQZlwfg64JDT378xowgAkBDF6utYhMQbOswQ1FJa0RTSM9iI3jmBeZs9ka5PdHtlieWZfGMZ5OoCVj48J_mrv9cfEJi1rHmKiFNP90tdeW0JJ-fcBaET-mWFEJtRy7yg1twEfE__3CUhYqGDPUI7IB_8o2-oZ3l6SfaRHuXsVkLq3t2K8qFgdj-njeEH5_pIC8Hi1oipNkaTngSDFNmskkD7L1Tz8v36vDV-p686KL7qFrHaBtMDc62hx2WM1tgrxngTwPbfeH2BYCw7r1fvCIpxxLpt1aS3u3fGPDRed9QP7DlS7bCbjexMR0RIR_Npegt-bRps1btWfvpuAVcEPRAv6IHW3ahaNKHtJ-mUddZxISngosiyI27xdf8PtQSLSjIoW-w6cn2lAPXauS-FCVgHIGci76p0vZm9oW1TZ9J1S4Cyj9E8rwRiThrp60L4Ey1KbervfOEPhRJMFNIifJgp3sGBKWXKatIcqC5-aHMjWsn5AzBV440zHDAbEqaJ_VzgOEQ72rNUyXIw3Wm3kRqS9dheG9dCMAdQmHchzr4sQw7N66u-vAgqd6nBMAwtdxni4E4LMhl_ndfVV7FV-bBg1W0iRN3CPlL9ksCxqgmPPCI5v40PJvypF_VMxR8GP4qBTziMtqIF505z7NaAiYAXQul_djMUkn6UkQQMkzj6Dboe7Yk3ymZbWkRyoVwWciU6F2WsaT6qX5V4Ao5aQdg2V3_zjIIlpWWuSA7o7JXX8GvUzj6jGfx4PCPNbIco5l0Jv8IaBQlF0t6P4IdpgT55ESMUdx0U_oR0i1urKsmTmydoCWKJKVvTetSLigniRRS2BfZN3NCRRwBT9N518UuqgjikdQ4fNewfgru9V5zdGnddRxaFUDYlkmok-lwA6LUhZsheFOBrnXra38gDfyqUn-QOIaUAw5R-3HakXIR13-jl99hTCuvxIlYtbJkPauZtfJxuZiG-VcAIKyQStO_UArWTsFv_lj4W1lTw==","format":"openai-responses-v1","id":"rs_00d2f6810bafb8e40169b31dfe9384819092696410f3668856","index":0,"type":"reasoning.encrypted"}]},{"content":"40 C","tool_call_id":"call_SmeBZtwDeWEKUJC6ead03JoS","role":"tool"}],"model":"openai/gpt-5","tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"reasoning":{"enabled":true}}'
42    headers:
43      Accept:
44      - application/json
45      Content-Type:
46      - application/json
47      User-Agent:
48      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
49    url: https://ai-gateway.vercel.sh/v1/chat/completions
50    method: POST
51  response:
52    proto: HTTP/2.0
53    proto_major: 2
54    proto_minor: 0
55    content_length: -1
56    uncompressed: true
57    body: '{"id":"gen_01KKHTTK2W8P9CZKMV03VRJETZ","object":"chat.completion","created":1773346320,"model":"openai/gpt-5","choices":[{"index":0,"message":{"role":"assistant","content":"It’s currently about 40°C (104°F) in Florence, Italy. Want the forecast or details like humidity and wind?","reasoning":"**Presenting weather information**\n\nThe tool returned a terse output of 40°C, which is very hot. I want to phrase it as: \"The current temperature in Florence, Italy, is 40°C.\" It might be helpful to warn the user about staying hydrated or mention that it’s likely sunny. I''ll report the temperature and highlight its extremity without inventing details. Including the Fahrenheit conversion could be useful, stating: \"40°C is about 104°F.\" So, my final response will be: \"Current temperature in Florence, Italy, is about 40°C (104°F).\"**Clarifying user needs**\n\nI want to check if the user wants more details like a forecast or information on humidity and wind. Keeping it simple is key, so I plan to avoid heavy formatting and be concise in my response. I think asking them if they need additional details will help ensure I''m providing the information they''re looking for without overwhelming them. Let''s finalize this and make sure it’s straightforward and user-friendly!","reasoning_details":[{"type":"reasoning.summary","summary":"**Presenting weather information**\n\nThe tool returned a terse output of 40°C, which is very hot. I want to phrase it as: \"The current temperature in Florence, Italy, is 40°C.\" It might be helpful to warn the user about staying hydrated or mention that it’s likely sunny. I''ll report the temperature and highlight its extremity without inventing details. Including the Fahrenheit conversion could be useful, stating: \"40°C is about 104°F.\" So, my final response will be: \"Current temperature in Florence, Italy, is about 40°C (104°F).\"**Clarifying user needs**\n\nI want to check if the user wants more details like a forecast or information on humidity and wind. Keeping it simple is key, so I plan to avoid heavy formatting and be concise in my response. I think asking them if they need additional details will help ensure I''m providing the information they''re looking for without overwhelming them. Let''s finalize this and make sure it’s straightforward and user-friendly!","id":"rs_00d2f6810bafb8e40169b31e07d96881908f86723c28e3ade8","format":"openai-responses-v1","index":0},{"type":"reasoning.encrypted","data":"gAAAAABpsx4QjPXFs7MBZyi4wDhhkb4F_sS54UJUyocsvBfRCnLCaVJ66WzB0x-t60C_oXSlGCYZHUP0bs2jJtAGG6n6vRv4m_HZS1gIFDiMfPuWlg_C4sxA9sK4JmOA00bU7ZQkwniQ9ngeYUai-M_IP7vHT-02MvM45F5rlrkugPMJtyXgH_9qhlI_yHVWvEhviNrS9Fc39WJT1qquGgQCt6hTPiimO9IQ-XYf8UYGXeu2-CdYl3Lq4r-gxOopJbOImJAjzVBbS2Wx0z88rZP28X0f_hyfIcx6GOTtnsyTrloxD9Jsx3mdyWCrpZ3wyOfYELiDE1Bbm0umG2hDaNq83oRYoJOtQ_VanSharqc-pjblXdnaQs6jnINnH3hkJCrEVcQsTFnThY3tS2DU1wPFq92WIzTey4A1kMa3_ZmEJGFtkBaAgoNL2ls8d-Nc18C8spSYTS-Cu3joOWVkRsEj5ODLxGWUqNLh0HH-cjj9EEAYLuUScI6J5S_bCuWrUl-7uDnIY9HT_h-IUlp5Cfh58-vHMOSYwTXPMgUUN2BNL9v5Ral1tykgqaHzUXToKYnC9unQb6wwVO1WleHDBaroC_0JzTN4cT_KN8vbVVEAYkN92ghGkrsdZOw_fkvX7SZE0fHcWpndG5gRQUCClsVuYQLgp_IWmbovDifxRyQb3AOe5gupgcU5xSlD8btZTWolfn8IGXiSNC30W2gYcHBttCOGEhIG1l1hc-UTavNVUuNwGLxpkonZZ7E3luxJ4CHMgxaiZccdzcJvixNxmFs8mq2KSAdrm89uIA6W1zfg5yEUbT6HVfliLm67HkXWmRMQVsftdmpZnTmxg6q2KUQEwXKqLZAauorHyNiehEA8sCzxR03g3uKS9owBrHU-lCNNClY4szsIjTOGI7UO9WCxrYJV0Ec6m_gg_0sUwpTJukReY3euz-684jvBhVg1FTwb2wu1DanVLEyB7bzWcaCc8p-zkebPxCww3Dqf_NFdqRXIOmoKl8oFL9t4EuqnB9wLp01QhcJ7aiKc2RGXLhh4MO8_9sNdgGVHyjkP3zOQ8b8ASm0Zun3CMzzl_F6EHPC7-Dkk6GVJQOTrM5EzjANV0hd0ZFmsDKw4eWNzFln3CRZ1WgZFbqJcRmMwJh3SFGUZtbNjX2s9s1msPf4FgUCdAJWqpfuyeC6KbfWj88voj3w0ezImLKN6ZxlRI3YRiLMTE4osHkROoYBaKok0qlJSe7Cn2VaRtVT2HWNRt0H6I_-lTT5G3xInpRWGSzJq89k9zhTAKuq2ZgCkUKrEEZEMH2HXjp559h1YbP7PZOxAEXoAylb16tgfSYozHtWfHjabpv4CeN_JKoVGifoyGrJxPmC4ORsiqaVDmjxyVmA-B6cVoBPLi8cXRSpIfm4_lAc0C3gE-AH5FuCoj-Inj1kd2lYNyagfx3y7-_--gMsyS9V1lajY1UU96J_cXOIlNlQVHTQ4MpAICQKHMljsQuBzNy_tsjGWTqm3WB9YObO6rTE8SH5jDtxWfRN148oKTMfXPvAJBl1GwjusjkpluqZD0cw3FzDj3p6ALhlFp6MpkRk4EMWZ6LrVOmvp1mbfiX4R2_OWtArrsu4kIznTD3Cd1qw72jxhHszAEeGjCUvorhg4-EujPAvuVUE00G_6GX80nSxei2zABX4yf926P-lrYcD_vi8LwfBDuH_40vNe7yXSyX6cCxbPR6MCJErvE-RzR_XZO5kjKhMYFMh4P_-4x7WZTlGS-ysB2_o_B_FR5AUSG-3MLyVIqfQk5iOxAYVHsQi1z66xjuUacIAA9QLtFK9qs9jBkwzF7gf6QJmO4llo7Y9MIukCjcjXTsK20GcOQkz9eIUddxDYc4iPy3-mtUUy-GfzVpWPUFgzPKrMzOM39YfGT5kn2SMwvN_O3QUUk5C2XrQZNC0BDowN4vNo97x1m5CHf2gRIZKz1Od4bHCYzXO0fMl3a-0Y4yoLxSMxmSG2QdsapnWZMr5A-LC14VIKYgEydtOSSQPcN7KMitmAXXi3NkM8mnKw3htH7hSJ2Jq5gywadfKGt1dMYDBsWZF0ZSbF7P3Otz3oYS5YtHu3RanSjAjtAKRjuNTueUfxB4jhA69tiXlKOrrQcyxm_7CfMhRPJEeuZ3T93s2fXaTT4huvxyfvitc9zvyIk6n_gazYoodc7gDlr94VrbD1H5Bi4a84PtKTmsXWrk1IaBYG_fFfGtb1xaHavXt6xtlGwYX1PoAP","id":"rs_00d2f6810bafb8e40169b31e07d96881908f86723c28e3ade8","format":"openai-responses-v1","index":0}],"provider_metadata":{"openai":{"responseId":"resp_00d2f6810bafb8e40169b31e0754448190a8f85e1dd376a88f","serviceTier":"default"},"gateway":{"routing":{"originalModelId":"openai/gpt-5","resolvedProvider":"openai","resolvedProviderApiModelId":"gpt-5-2025-08-07","internalResolvedModelId":"openai:gpt-5-2025-08-07","fallbacksAvailable":["azure"],"internalReasoning":"Selected openai as preferred provider for gpt-5. 1 fallback(s) available: azure","planningReasoning":"System credentials planned for: openai, azure. Total execution order: openai(system) → azure(system)","canonicalSlug":"openai/gpt-5","finalProvider":"openai","attempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":1327619.961347,"endTime":1337223.544461,"statusCode":200,"providerResponseId":"resp_00d2f6810bafb8e40169b31e0754448190a8f85e1dd376a88f"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"openai:gpt-5-2025-08-07","canonicalSlug":"openai/gpt-5","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":1327619.961347,"endTime":1337223.544461,"statusCode":200,"providerResponseId":"resp_00d2f6810bafb8e40169b31e0754448190a8f85e1dd376a88f"}]}],"totalProviderAttemptCount":1},"cost":"0.0047375","marketCost":"0.0047375","generationId":"gen_01KKHTTK2W8P9CZKMV03VRJETZ","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":206,"completion_tokens":256,"total_tokens":462,"cost":0.0047375,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":192,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.0047375},"system_fingerprint":"fp_9rir8dou27","service_tier":"default","generationId":"gen_01KKHTTK2W8P9CZKMV03VRJETZ"}'
58    headers:
59      Content-Type:
60      - application/json
61    status: 200 OK
62    code: 200
63    duration: 9.769461541s