feat(agent-queue): report concrete engine + Devin session id on release

parse_usage now always emits engine=<engine>, and the devin arm extracts the
ATIF export's session_id. fleet-client includes engine + sessionId in the run
insights it reports, so the coordinator/UI can show the real engine (not
'unknown') and a session handle for traceability/recovery (devin --resume <id>).

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
saravanakumardb1 2026-06-01 02:19:52 -07:00
parent f9be343e32
commit 70c6d47a75
2 changed files with 11 additions and 1 deletions

View File

@ -1225,6 +1225,9 @@ recover_orphans() {
parse_usage() { parse_usage() {
local engine=$1 log=$2 local engine=$1 log=$2
[[ -f "$log" ]] || return 0 [[ -f "$log" ]] || return 0
# Always report the concrete engine that ran (the coordinator created the run
# with the job's abstract engineClass, which is usually 'unknown').
echo "engine=$engine"
# 1) Generic, explicit usage line (preferred; emitted by any cooperating wrapper). # 1) Generic, explicit usage line (preferred; emitted by any cooperating wrapper).
local line; line=$(grep -E '^AQ_USAGE ' "$log" 2>/dev/null | tail -1) local line; line=$(grep -E '^AQ_USAGE ' "$log" 2>/dev/null | tail -1)
if [[ -n "$line" ]]; then if [[ -n "$line" ]]; then
@ -1264,6 +1267,10 @@ parse_usage() {
dtc=$(grep -oE '"cache_read_tokens"[[:space:]]*:[[:space:]]*[0-9]+' "$exp" | grep -oE '[0-9]+' | awk '{s+=$1} END{print s+0}') dtc=$(grep -oE '"cache_read_tokens"[[:space:]]*:[[:space:]]*[0-9]+' "$exp" | grep -oE '[0-9]+' | awk '{s+=$1} END{print s+0}')
dmodel=$(grep -oE '"model_name"[[:space:]]*:[[:space:]]*"[^"]+"' "$exp" | head -1 | sed -E 's/.*:[[:space:]]*"([^"]+)".*/\1/') dmodel=$(grep -oE '"model_name"[[:space:]]*:[[:space:]]*"[^"]+"' "$exp" | head -1 | sed -E 's/.*:[[:space:]]*"([^"]+)".*/\1/')
[[ -n "$dmodel" ]] && echo "model=$dmodel" [[ -n "$dmodel" ]] && echo "model=$dmodel"
# Devin session handle — enables traceability/recovery (`devin --resume <id>`).
local dsession
dsession=$(grep -oE '"session_id"[[:space:]]*:[[:space:]]*"[^"]+"' "$exp" | head -1 | sed -E 's/.*:[[:space:]]*"([^"]+)".*/\1/')
[[ -n "$dsession" ]] && echo "session_id=$dsession"
[[ "${dti:-0}" -gt 0 ]] && echo "tokens_in=$dti" [[ "${dti:-0}" -gt 0 ]] && echo "tokens_in=$dti"
[[ "${dto:-0}" -gt 0 ]] && echo "tokens_out=$dto" [[ "${dto:-0}" -gt 0 ]] && echo "tokens_out=$dto"
[[ "${dtc:-0}" -gt 0 ]] && echo "tokens_cached=$dtc" [[ "${dtc:-0}" -gt 0 ]] && echo "tokens_cached=$dtc"

View File

@ -349,13 +349,16 @@ fleet_report_insights() {
metaf="$STATE/$job.meta" metaf="$STATE/$job.meta"
jid=$(_meta_val "$metaf" fleet_job_id); epoch=$(_meta_val "$metaf" fleet_lease_epoch) jid=$(_meta_val "$metaf" fleet_job_id); epoch=$(_meta_val "$metaf" fleet_lease_epoch)
[[ -n "$jid" ]] || return 0 [[ -n "$jid" ]] || return 0
local model ti to tc cost turns tools est ins="" local model engine session ti to tc cost turns tools est ins=""
model=$(_meta_val "$metaf" model) model=$(_meta_val "$metaf" model)
engine=$(_meta_val "$metaf" engine); session=$(_meta_val "$metaf" session_id)
ti=$(_meta_val "$metaf" tokens_in); to=$(_meta_val "$metaf" tokens_out) ti=$(_meta_val "$metaf" tokens_in); to=$(_meta_val "$metaf" tokens_out)
tc=$(_meta_val "$metaf" tokens_cached); cost=$(_meta_val "$metaf" cost_usd) tc=$(_meta_val "$metaf" tokens_cached); cost=$(_meta_val "$metaf" cost_usd)
turns=$(_meta_val "$metaf" turns); tools=$(_meta_val "$metaf" tool_calls) turns=$(_meta_val "$metaf" turns); tools=$(_meta_val "$metaf" tool_calls)
est=$(_meta_val "$metaf" usage_estimated) est=$(_meta_val "$metaf" usage_estimated)
[[ -n "$model" ]] && ins+=",\"model\":\"$(_json_escape "$model")\"" [[ -n "$model" ]] && ins+=",\"model\":\"$(_json_escape "$model")\""
[[ -n "$engine" ]] && ins+=",\"engine\":\"$(_json_escape "$engine")\""
[[ -n "$session" ]] && ins+=",\"sessionId\":\"$(_json_escape "$session")\""
[[ "$ti" =~ ^[0-9]+$ ]] && ins+=",\"tokensIn\":$ti" [[ "$ti" =~ ^[0-9]+$ ]] && ins+=",\"tokensIn\":$ti"
[[ "$to" =~ ^[0-9]+$ ]] && ins+=",\"tokensOut\":$to" [[ "$to" =~ ^[0-9]+$ ]] && ins+=",\"tokensOut\":$to"
[[ "$tc" =~ ^[0-9]+$ ]] && ins+=",\"tokensCached\":$tc" [[ "$tc" =~ ^[0-9]+$ ]] && ins+=",\"tokensCached\":$tc"