== small refund ($50): auto-approved ==
  approval requests (isAutomatic): [ 'refund:true' ]
  content types: tool-call, tool-call, tool-result, tool-approval-request, tool-approval-response, tool-result, text
  executed so far: [ 'lookup 42', 'refund 42 $50' ]
  final text: Model saw: [["lookupOrder",{"type":"json","value":{"orderId":"42","total":250}}],["refund",{"type":"json","value":{"refunded":50}}]]
== large refund ($500): APPROVED ==
  approval requests (isAutomatic): [ 'refund:false' ]
  content types: tool-call, tool-call, tool-result, tool-approval-request
  executed so far: [ 'lookup 42' ]
  approval request aitxt-D1VU8ZZWN33brXX5xpEcmi5V: refund({"orderId":"42","amount":500}) reason=refund over $100 ($500)
  -> human responds approved=true
  resumed content types: text
  executed after resume: [ 'lookup 42', 'refund 42 $500' ]
  final text: Model saw: [["lookupOrder",{"type":"json","value":{"orderId":"42","total":250}}],["refund",{"type":"json","value":{"refunded":500}}]]
  model calls made: 2
== large refund ($500): DENIED ==
  approval requests (isAutomatic): [ 'refund:false' ]
  content types: tool-call, tool-call, tool-result, tool-approval-request
  executed so far: [ 'lookup 42' ]
  approval request aitxt-zzn2oZ1tVYDUhe0vtC6clPwY: refund({"orderId":"42","amount":500}) reason=refund over $100 ($500)
  -> human responds approved=false
  resumed content types: text
  executed after resume: [ 'lookup 42' ]
  final text: Model saw: [["lookupOrder",{"type":"json","value":{"orderId":"42","total":250}}],["refund",{"type":"execution-denied","reason":"refund too large"}]]
  model calls made: 2
