use vtcode_core::llm::provider as uni;
use vtcode_core::tools::tool_intent;
use crate::agent::runloop::unified::turn::context::TurnProcessingContext;
pub(crate) fn record_tool_call_budget_usage(
ctx: &mut TurnProcessingContext<'_>,
tool_name: &str,
args: &serde_json::Value,
) {
ctx.harness_state.record_admitted_tool_call();
if tool_intent::is_turn_budget_exempt_call(tool_name, args) {
return;
}
if let Some(warning) = ctx.harness_state.record_tool_call_with_default_warning() {
ctx.working_history.push(uni::Message::system(warning.system_message()));
}
}