thinking-streaming.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: 636
 10    host: ""
 11    body: '{"max_tokens":4096,"messages":[{"content":[{"text":"What''s the weather in Florence, Italy?","cache_control":{"type":"ephemeral"},"type":"text"}],"role":"user"}],"model":"claude-sonnet-4-20250514","system":[{"text":"You are a helpful assistant","cache_control":{"type":"ephemeral"},"type":"text"}],"thinking":{"budget_tokens":4000,"type":"enabled"},"tool_choice":{"disable_parallel_tool_use":false,"type":"auto"},"tools":[{"input_schema":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"},"name":"weather","description":"Get weather information for a location"}],"stream":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://api.anthropic.com/v1/messages
 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: |+
 28      event: message_start
 29      data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01ApaK754YQvujSfdPXzsdyD","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":424,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard","inference_geo":"not_available"}}          }
 30
 31      event: content_block_start
 32      data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}            }
 33
 34      event: ping
 35      data: {"type": "ping"}
 36
 37      event: content_block_delta
 38      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"The user is asking for"}      }
 39
 40      event: content_block_delta
 41      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" weather"}   }
 42
 43      event: content_block_delta
 44      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" information for Florence, Italy. I have"}               }
 45
 46      event: content_block_delta
 47      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" a weather"}             }
 48
 49      event: content_block_delta
 50      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" function available"}  }
 51
 52      event: content_block_delta
 53      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" that takes"}         }
 54
 55      event: content_block_delta
 56      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" a location parameter."}  }
 57
 58      event: content_block_delta
 59      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" The"}          }
 60
 61      event: content_block_delta
 62      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" location is"}               }
 63
 64      event: content_block_delta
 65      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" clearly"}               }
 66
 67      event: content_block_delta
 68      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" specified as \"Florence, Italy\" so"}    }
 69
 70      event: content_block_delta
 71      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" I have"}}
 72
 73      event: content_block_delta
 74      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" all the required parameters to"}   }
 75
 76      event: content_block_delta
 77      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" make the function call."}  }
 78
 79      event: content_block_delta
 80      data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""}}
 81
 82      event: content_block_delta
 83      data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EqUDCkYICxgCKkB94vhGG6xKjNnGimHMfRxMKRoDnfxu8X0ubqexC/CZ0gU1q1TlbdRN/J4R0tWVpSFl6fFlfjxBILkP/+4vk0rsEgzbQkeDFZOgLMaFoiIaDG8QqH26wO17qRddBiIwRcuTXQ+vYvilaa2l7ZrhFrzBcvIl0OGzUAC7j0HlRAHwvUOrRgdTv/T3RNxp54IyKowCTaf1uRz1+N5xdqDP1QqRQeb2IoF4gIh96Uuu4hxNWfp2sP3d+iUFTxF7xf4mYIoeYgNwcPw3xqzTFgjbIqpKFNMjnsC+8P+zxVjz+yCeSCrISQKZb7jZsz0VxX28VA6q8Vcz65qYFU0+l438jCr7eDxSKxf2uzGUc5TA3jsOVEHZFlh4CtkJbmeWaU5Zntjc1cUmPLH/oSxgy9M9rqw71+nw/a2b5n37UsZdKULm//NsOf0FaptS0cVdbxztoBFQXoOJLo1O+9TnV+hS2de4kxWTqDpNEkS7V6eEmt2Ulfw6dLTMt89OCLz+6mE6bV3D/R2CVQJTS+tLaPXBa5/hTsEcioJgRy9XQOyPuBgB"}          }
 84
 85      event: content_block_stop
 86      data: {"type":"content_block_stop","index":0        }
 87
 88      event: content_block_start
 89      data: {"type":"content_block_start","index":1,"content_block":{"type":"tool_use","id":"toolu_017cWttjFBXZWw8LkJbhpqm1","name":"weather","input":{},"caller":{"type":"direct"}}           }
 90
 91      event: content_block_delta
 92      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":""}   }
 93
 94      event: content_block_delta
 95      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"{\"location\":"}              }
 96
 97      event: content_block_delta
 98      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" \"F"}       }
 99
100      event: content_block_delta
101      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"lore"}               }
102
103      event: content_block_delta
104      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"nce, Ital"}            }
105
106      event: content_block_delta
107      data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"y\"}"}   }
108
109      event: content_block_stop
110      data: {"type":"content_block_stop","index":1          }
111
112      event: message_delta
113      data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"input_tokens":424,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":109}}
114
115      event: message_stop
116      data: {"type":"message_stop"           }
117
118    headers:
119      Content-Type:
120      - text/event-stream; charset=utf-8
121    status: 200 OK
122    code: 200
123    duration: 3.171908791s
124- id: 1
125  request:
126    proto: HTTP/1.1
127    proto_major: 1
128    proto_minor: 1
129    content_length: 1831
130    host: ""
131    body: '{"max_tokens":4096,"messages":[{"content":[{"text":"What''s the weather in Florence, Italy?","type":"text"}],"role":"user"},{"content":[{"signature":"EqUDCkYICxgCKkB94vhGG6xKjNnGimHMfRxMKRoDnfxu8X0ubqexC/CZ0gU1q1TlbdRN/J4R0tWVpSFl6fFlfjxBILkP/+4vk0rsEgzbQkeDFZOgLMaFoiIaDG8QqH26wO17qRddBiIwRcuTXQ+vYvilaa2l7ZrhFrzBcvIl0OGzUAC7j0HlRAHwvUOrRgdTv/T3RNxp54IyKowCTaf1uRz1+N5xdqDP1QqRQeb2IoF4gIh96Uuu4hxNWfp2sP3d+iUFTxF7xf4mYIoeYgNwcPw3xqzTFgjbIqpKFNMjnsC+8P+zxVjz+yCeSCrISQKZb7jZsz0VxX28VA6q8Vcz65qYFU0+l438jCr7eDxSKxf2uzGUc5TA3jsOVEHZFlh4CtkJbmeWaU5Zntjc1cUmPLH/oSxgy9M9rqw71+nw/a2b5n37UsZdKULm//NsOf0FaptS0cVdbxztoBFQXoOJLo1O+9TnV+hS2de4kxWTqDpNEkS7V6eEmt2Ulfw6dLTMt89OCLz+6mE6bV3D/R2CVQJTS+tLaPXBa5/hTsEcioJgRy9XQOyPuBgB","thinking":"The user is asking for weather information for Florence, Italy. I have a weather function available that takes a location parameter. The location is clearly specified as \"Florence, Italy\" so I have all the required parameters to make the function call.","type":"thinking"},{"id":"toolu_017cWttjFBXZWw8LkJbhpqm1","input":{"location":"Florence, Italy"},"name":"weather","cache_control":{"type":"ephemeral"},"type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_017cWttjFBXZWw8LkJbhpqm1","cache_control":{"type":"ephemeral"},"content":[{"text":"40 C","type":"text"}],"type":"tool_result"}],"role":"user"}],"model":"claude-sonnet-4-20250514","system":[{"text":"You are a helpful assistant","cache_control":{"type":"ephemeral"},"type":"text"}],"thinking":{"budget_tokens":4000,"type":"enabled"},"tool_choice":{"disable_parallel_tool_use":false,"type":"auto"},"tools":[{"input_schema":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"},"name":"weather","description":"Get weather information for a location"}],"stream":true}'
132    headers:
133      Accept:
134      - application/json
135      Content-Type:
136      - application/json
137      User-Agent:
138      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
139    url: https://api.anthropic.com/v1/messages
140    method: POST
141  response:
142    proto: HTTP/2.0
143    proto_major: 2
144    proto_minor: 0
145    content_length: -1
146    uncompressed: true
147    body: |+
148      event: message_start
149      data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01VinQM2kgcAKaRJC2QMMMWX","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":548,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard","inference_geo":"not_available"}} }
150
151      event: content_block_start
152      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}         }
153
154      event: ping
155      data: {"type": "ping"}
156
157      event: content_block_delta
158      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The current"} }
159
160      event: content_block_delta
161      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" weather in Florence, Italy is 40"}}
162
163      event: content_block_delta
164      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"°C (104°F). That"}           }
165
166      event: content_block_delta
167      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'s quite"} }
168
169      event: content_block_delta
170      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" hot"}             }
171
172      event: content_block_delta
173      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"! It"}              }
174
175      event: content_block_delta
176      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" would"}  }
177
178      event: content_block_delta
179      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" be a very"}  }
180
181      event: content_block_delta
182      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" warm day there"}   }
183
184      event: content_block_delta
185      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."}               }
186
187      event: content_block_stop
188      data: {"type":"content_block_stop","index":0      }
189
190      event: message_delta
191      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":548,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":34}               }
192
193      event: message_stop
194      data: {"type":"message_stop"}
195
196    headers:
197      Content-Type:
198      - text/event-stream; charset=utf-8
199    status: 200 OK
200    code: 200
201    duration: 1.459782333s