/workspace/agent-signal-templates/google-adk-v212-confirmation/.venv/lib/python3.13/site-packages/google/adk/models/llm_request.py:306: UserWarning: [EXPERIMENTAL] feature FeatureName.JSON_SCHEMA_FOR_FUNC_DECL is enabled.
  declaration = tool._get_declaration()
Skipping missing token usage metadata for agent bank and model scripted-fake
Skipping missing token usage metadata for agent bank and model scripted-fake
/workspace/agent-signal-templates/google-adk-v212-confirmation/.venv/lib/python3.13/site-packages/google/adk/features/_feature_decorator.py:71: UserWarning: [EXPERIMENTAL] feature FeatureName.TOOL_CONFIRMATION is enabled.
  check_feature_enabled()
Skipping missing token usage metadata for agent bank and model scripted-fake
Skipping missing token usage metadata for agent bank and model scripted-fake
Skipping missing token usage metadata for agent bank and model scripted-fake
Skipping missing token usage metadata for agent bank and model scripted-fake
== small (no confirm) ==
  [bank] function_call transfer_money args={'amount': 50, 'to': 'bob'}
  [bank] function_response transfer_money -> {'status': 'sent', 'amount': 50, 'to': 'bob'}
  [bank] text: Tool result: {'status': 'sent', 'amount': 50, 'to': 'bob'}
== large, APPROVED ==
  [bank] function_call transfer_money args={'amount': 5000, 'to': 'bob'}
  [bank] function_call adk_request_confirmation args={'originalFunctionCall': {'id': 'adk-83211cc7-8bdb-451a-8c44-dee93db1c5f1', 'args': {'amount': 5000, 'to': 'bob'}, 'name': 'transfer_money'}, 'toolConfirmation': {'hint': 'Please approve or reject the tool call transfer_money() by responding with a FunctionResponse with an expected ToolConfirmation payload.', 'confirmed': False}}
  [bank] function_response transfer_money -> {'error': 'This tool call requires confirmation, please approve or reject.'}
  -> human responds confirmed=True
  [bank] function_response transfer_money -> {'status': 'sent', 'amount': 5000, 'to': 'bob'}
  [bank] text: Tool result: {'status': 'sent', 'amount': 5000, 'to': 'bob'}
== large, REJECTED ==
  [bank] function_call transfer_money args={'amount': 5000, 'to': 'bob'}
  [bank] function_call adk_request_confirmation args={'originalFunctionCall': {'id': 'adk-47c0362a-a27e-43bf-9caf-f67c64ff4113', 'args': {'amount': 5000, 'to': 'bob'}, 'name': 'transfer_money'}, 'toolConfirmation': {'hint': 'Please approve or reject the tool call transfer_money() by responding with a FunctionResponse with an expected ToolConfirmation payload.', 'confirmed': False}}
  [bank] function_response transfer_money -> {'error': 'This tool call requires confirmation, please approve or reject.'}
  -> human responds confirmed=False
  [bank] function_response transfer_money -> {'error': 'This tool call is rejected.'}
  [bank] text: Tool result: {'error': 'This tool call is rejected.'}
