---
version: 2
interactions:
- id: 0
  request:
    proto: HTTP/1.1
    proto_major: 1
    proto_minor: 1
    content_length: 551
    host: ""
    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"}],"model":"openai/gpt-5.4-nano","max_completion_tokens":4000,"stream_options":{"include_usage":true},"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"}],"usage":{"include":true},"stream":true}'
    headers:
      Accept:
      - application/json
      Content-Type:
      - application/json
      User-Agent:
      - Charm-Fantasy/0.21.0 (https://charm.land/fantasy)
    url: https://openrouter.ai/api/v1/chat/completions
    method: POST
  response:
    proto: HTTP/2.0
    proto_major: 2
    proto_minor: 0
    content_length: -1
    body: |+
      : OPENROUTER PROCESSING

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"call_PwnQR6IkH2UiHQ4qel3LGcri","type":"function","function":{"name":"weather","arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"Flor"}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"ence"}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":" Italy"}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","service_tier":"default","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"completed"}]}

      data: {"id":"gen-1777319812-D6VzmWKMw6zukREQPum0","object":"chat.completion.chunk","created":1777319812,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","service_tier":"default","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"completed"}],"usage":{"prompt_tokens":63,"completion_tokens":20,"total_tokens":83,"cost":0.0000376,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.0000376,"upstream_inference_prompt_cost":0.0000126,"upstream_inference_completions_cost":0.000025},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}

      data: [DONE]

    headers:
      Content-Type:
      - text/event-stream
    status: 200 OK
    code: 200
    duration: 845.789666ms
- id: 1
  request:
    proto: HTTP/1.1
    proto_major: 1
    proto_minor: 1
    content_length: 803
    host: ""
    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"},{"tool_calls":[{"id":"call_PwnQR6IkH2UiHQ4qel3LGcri","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant"},{"content":"40 C","tool_call_id":"call_PwnQR6IkH2UiHQ4qel3LGcri","role":"tool"}],"model":"openai/gpt-5.4-nano","max_completion_tokens":4000,"stream_options":{"include_usage":true},"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"}],"usage":{"include":true},"stream":true}'
    headers:
      Accept:
      - application/json
      Content-Type:
      - application/json
      User-Agent:
      - Charm-Fantasy/0.21.0 (https://charm.land/fantasy)
    url: https://openrouter.ai/api/v1/chat/completions
    method: POST
  response:
    proto: HTTP/2.0
    proto_major: 2
    proto_minor: 0
    content_length: -1
    body: |+
      : OPENROUTER PROCESSING

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"The","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" current","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" weather","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" in","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"Flor","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"ence","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":",","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" Italy","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" is","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"40","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"°C","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":".","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","service_tier":"default","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"completed"}]}

      data: {"id":"gen-1777319813-VorvbQqOmlpN8EcPKbMR","object":"chat.completion.chunk","created":1777319813,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","service_tier":"default","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"completed"}],"usage":{"prompt_tokens":95,"completion_tokens":20,"total_tokens":115,"cost":0.000044,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.000044,"upstream_inference_prompt_cost":0.000019,"upstream_inference_completions_cost":0.000025},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}

      data: [DONE]

    headers:
      Content-Type:
      - text/event-stream
    status: 200 OK
    code: 200
    duration: 701.089708ms
