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: 551
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.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}'
12 headers:
13 Accept:
14 - application/json
15 Content-Type:
16 - application/json
17 User-Agent:
18 - Charm-Fantasy/0.15.0 (https://charm.land/fantasy)
19 url: https://openrouter.ai/api/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 body: |+
27 : OPENROUTER PROCESSING
28
29 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"call_6jrRIpW4Qm0ovEB92ylZxfBy","type":"function","function":{"name":"weather","arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
30
31 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
32
33 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
34
35 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
36
37 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
38
39 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
40
41 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
42
43 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
44
45 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
46
47 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"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}]}
48
49 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"completed"}]}
50
51 data: {"id":"gen-1773945376-TLrrn3G9TGS0BbGDFto3","object":"chat.completion.chunk","created":1773945376,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","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}}}
52
53 data: [DONE]
54
55 headers:
56 Content-Type:
57 - text/event-stream
58 status: 200 OK
59 code: 200
60 duration: 406.696208ms
61- id: 1
62 request:
63 proto: HTTP/1.1
64 proto_major: 1
65 proto_minor: 1
66 content_length: 803
67 host: ""
68 body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"},{"tool_calls":[{"id":"call_6jrRIpW4Qm0ovEB92ylZxfBy","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant"},{"content":"40 C","tool_call_id":"call_6jrRIpW4Qm0ovEB92ylZxfBy","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}'
69 headers:
70 Accept:
71 - application/json
72 Content-Type:
73 - application/json
74 User-Agent:
75 - Charm-Fantasy/0.15.0 (https://charm.land/fantasy)
76 url: https://openrouter.ai/api/v1/chat/completions
77 method: POST
78 response:
79 proto: HTTP/2.0
80 proto_major: 2
81 proto_minor: 0
82 content_length: -1
83 body: |+
84 : OPENROUTER PROCESSING
85
86 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"The","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
87
88 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" weather","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
89
90 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" in","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
91
92 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
93
94 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"Flor","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
95
96 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"ence","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
97
98 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":",","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
99
100 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" Italy","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
101
102 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
103
104 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" is","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
105
106 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" currently","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
107
108 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
109
110 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"40","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
111
112 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"°C","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
113
114 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
115
116 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":".","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
117
118 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"completed"}]}
119
120 data: {"id":"gen-1773945377-qEiqJ8jtJDRv2fbll0BH","object":"chat.completion.chunk","created":1773945377,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","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}}}
121
122 data: [DONE]
123
124 headers:
125 Content-Type:
126 - text/event-stream
127 status: 200 OK
128 code: 200
129 duration: 896.667791ms