53 lines
1.3 KiB
Bash
Executable File
53 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
LOG_FILE="${1:-}"
|
|
|
|
if [ -z "$LOG_FILE" ]; then
|
|
for candidate in "./didactyl.log" "./debug.log" "./context.log.md"; do
|
|
if [ -f "$candidate" ]; then
|
|
LOG_FILE="$candidate"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ -z "$LOG_FILE" ] || [ ! -f "$LOG_FILE" ]; then
|
|
echo "Log file not found." >&2
|
|
echo "Tried defaults: ./didactyl.log ./debug.log ./context.log.md" >&2
|
|
echo "Usage: $0 [path/to/logfile]" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Following numbered LLM API calls from: $LOG_FILE"
|
|
echo "(Press Ctrl+C to stop)"
|
|
|
|
# Count only outbound provider calls from src/llm.c:
|
|
# [didactyl] llm request: method=... url=...
|
|
START_API=$(tail -n 20000 "$LOG_FILE" | grep -Ec "\\[didactyl\\] llm request:" || true)
|
|
[ -z "$START_API" ] && START_API=0
|
|
|
|
echo "Starting api_call count from: $START_API"
|
|
|
|
tail -n 0 -F "$LOG_FILE" \
|
|
| awk -v api_start="$START_API" '
|
|
BEGIN { api = api_start }
|
|
{
|
|
line = $0
|
|
if (line !~ /\[didactyl\] llm request:/) next
|
|
|
|
api++
|
|
method = "?"
|
|
url = "?"
|
|
|
|
if (match(line, /method=[A-Z]+/)) {
|
|
method = substr(line, RSTART + 7, RLENGTH - 7)
|
|
}
|
|
if (match(line, /url=[^ ]+/)) {
|
|
url = substr(line, RSTART + 4, RLENGTH - 4)
|
|
}
|
|
|
|
printf "%d) %s %s\n", api, method, url
|
|
fflush()
|
|
}
|
|
' |