---
version: 2
interactions:
- id: 0
  request:
    proto: HTTP/1.1
    proto_major: 1
    proto_minor: 1
    content_length: 481
    host: ""
    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"}],"model":"google/gemini-3-pro-preview","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}}'
    headers:
      Accept:
      - application/json
      Content-Type:
      - application/json
      User-Agent:
      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
    url: https://ai-gateway.vercel.sh/v1/chat/completions
    method: POST
  response:
    proto: HTTP/2.0
    proto_major: 2
    proto_minor: 0
    content_length: -1
    uncompressed: true
    body: '{"id":"gen_01KKHTV30Q2RFH0VSMWRH42TGX","object":"chat.completion","created":1773346331,"model":"google/gemini-3-pro-preview","choices":[{"index":0,"message":{"role":"assistant","content":null,"reasoning":"**Retrieving Weather Data**\n\nI''m zeroing in on the user''s request: weather in Florence, Italy. My plan is to use the `get_weather` tool, it needs a location. The user helpfully gave me \"Florence, Italy,\" which perfectly fits the location parameter. It''s a straightforward execution, call the tool with the provided location.\n\n\n","reasoning_details":[{"type":"reasoning.text","text":"**Retrieving Weather Data**\n\nI''m zeroing in on the user''s request: weather in Florence, Italy. My plan is to use the `get_weather` tool, it needs a location. The user helpfully gave me \"Florence, Italy,\" which perfectly fits the location parameter. It''s a straightforward execution, call the tool with the provided location.\n\n\n","format":"google-gemini-v1","index":0}],"tool_calls":[{"id":"BgmJlIfqJnTEdHBD","type":"function","function":{"name":"weather","arguments":"{\"location\":\"Florence, Italy\"}"}}],"provider_metadata":{"google":{"promptFeedback":null,"groundingMetadata":null,"urlContextMetadata":null,"safetyRatings":null,"usageMetadata":{"thoughtsTokenCount":69,"promptTokenCount":28,"candidatesTokenCount":9,"totalTokenCount":106,"trafficType":"PROVISIONED_THROUGHPUT"}},"gateway":{"routing":{"originalModelId":"google/gemini-3-pro-preview","resolvedProvider":"vertex","resolvedProviderApiModelId":"gemini-3-pro-preview","internalResolvedModelId":"vertex:gemini-3-pro-preview","fallbacksAvailable":["google"],"internalReasoning":"Selected vertex as preferred provider for gemini-3-pro-preview. 1 fallback(s) available: google","planningReasoning":"System credentials planned for: vertex, google. Total execution order: vertex(system) → google(system)","canonicalSlug":"google/gemini-3-pro-preview","finalProvider":"vertex","attempts":[{"provider":"vertex","internalModelId":"vertex:gemini-3-pro-preview","providerApiModelId":"gemini-3-pro-preview","credentialType":"system","success":true,"startTime":399448.110594,"endTime":403222.368787,"statusCode":200,"providerResponseId":"Fx6zae-vJ5aB4OUP3ZyqqAM"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"vertex:gemini-3-pro-preview","canonicalSlug":"google/gemini-3-pro-preview","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"vertex","internalModelId":"vertex:gemini-3-pro-preview","providerApiModelId":"gemini-3-pro-preview","credentialType":"system","success":true,"startTime":399448.110594,"endTime":403222.368787,"statusCode":200,"providerResponseId":"Fx6zae-vJ5aB4OUP3ZyqqAM"}]}],"totalProviderAttemptCount":1},"cost":"0.000992","marketCost":"0.000992","generationId":"gen_01KKHTV30Q2RFH0VSMWRH42TGX","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":28,"completion_tokens":9,"total_tokens":37,"cost":0.000992,"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":69,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.000992},"system_fingerprint":"fp_um0c00bp7j","generationId":"gen_01KKHTV30Q2RFH0VSMWRH42TGX"}'
    headers:
      Content-Type:
      - application/json
    status: 200 OK
    code: 200
    duration: 4.049746125s
- id: 1
  request:
    proto: HTTP/1.1
    proto_major: 1
    proto_minor: 1
    content_length: 1206
    host: ""
    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"},{"tool_calls":[{"id":"BgmJlIfqJnTEdHBD","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant","reasoning_details":[{"format":"google-gemini-v1","index":0,"text":"**Retrieving Weather Data**\n\nI''m zeroing in on the user''s request: weather in Florence, Italy. My plan is to use the `get_weather` tool, it needs a location. The user helpfully gave me \"Florence, Italy,\" which perfectly fits the location parameter. It''s a straightforward execution, call the tool with the provided location.\n\n\n","type":"reasoning.text"},{"format":"google-gemini-v1","index":0,"type":"reasoning.encrypted"}]},{"content":"40 C","tool_call_id":"BgmJlIfqJnTEdHBD","role":"tool"}],"model":"google/gemini-3-pro-preview","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}}'
    headers:
      Accept:
      - application/json
      Content-Type:
      - application/json
      User-Agent:
      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
    url: https://ai-gateway.vercel.sh/v1/chat/completions
    method: POST
  response:
    proto: HTTP/2.0
    proto_major: 2
    proto_minor: 0
    content_length: -1
    uncompressed: true
    body: '{"id":"gen_01KKHTV6ZD9RXTEJ0JP2HT9ZN0","object":"chat.completion","created":1773346335,"model":"google/gemini-3-pro-preview","choices":[{"index":0,"message":{"role":"assistant","content":"The weather in Florence, Italy is currently 40°C.","provider_metadata":{"google":{"promptFeedback":null,"groundingMetadata":null,"urlContextMetadata":null,"safetyRatings":null,"usageMetadata":{"promptTokenCount":118,"candidatesTokenCount":14,"totalTokenCount":132,"trafficType":"PROVISIONED_THROUGHPUT"}},"gateway":{"routing":{"originalModelId":"google/gemini-3-pro-preview","resolvedProvider":"vertex","resolvedProviderApiModelId":"gemini-3-pro-preview","internalResolvedModelId":"vertex:gemini-3-pro-preview","fallbacksAvailable":["google"],"internalReasoning":"Selected vertex as preferred provider for gemini-3-pro-preview. 1 fallback(s) available: google","planningReasoning":"System credentials planned for: vertex, google. Total execution order: vertex(system) → google(system)","canonicalSlug":"google/gemini-3-pro-preview","finalProvider":"vertex","attempts":[{"provider":"vertex","internalModelId":"vertex:gemini-3-pro-preview","providerApiModelId":"gemini-3-pro-preview","credentialType":"system","success":true,"startTime":1350560.526679,"endTime":1354791.360034,"statusCode":200,"providerResponseId":"Gx6zaeqDLrepyOgP_oqLoAw"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"vertex:gemini-3-pro-preview","canonicalSlug":"google/gemini-3-pro-preview","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"vertex","internalModelId":"vertex:gemini-3-pro-preview","providerApiModelId":"gemini-3-pro-preview","credentialType":"system","success":true,"startTime":1350560.526679,"endTime":1354791.360034,"statusCode":200,"providerResponseId":"Gx6zaeqDLrepyOgP_oqLoAw"}]}],"totalProviderAttemptCount":1},"cost":"0.000404","marketCost":"0.000404","generationId":"gen_01KKHTV6ZD9RXTEJ0JP2HT9ZN0","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":118,"completion_tokens":14,"total_tokens":132,"cost":0.000404,"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":0,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.000404},"system_fingerprint":"fp_2z4eq13emy","generationId":"gen_01KKHTV6ZD9RXTEJ0JP2HT9ZN0"}'
    headers:
      Content-Type:
      - application/json
    status: 200 OK
    code: 200
    duration: 4.429330084s
