#!/usr/bin/env bash
set -euo pipefail

script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=ai/tools/operator-questions/lib.sh
source "$script_dir/lib.sh"
oq_init

question_id=""
dry_run=false
while (($# > 0)); do
  case "$1" in
    --question-id) question_id="${2:?}"; shift 2 ;;
    --dry-run) dry_run=true; shift ;;
    -h | --help)
      echo "Usage: ai/tools/operator-questions/resume-approved-action.sh --question-id <id> --dry-run"
      exit 0
      ;;
    *) echo "resume approved action error: unknown argument: $1" >&2; exit 2 ;;
  esac
done

[[ -n "$question_id" ]] || { echo "resume approved action error: --question-id is required" >&2; exit 2; }
[[ "$dry_run" == "true" ]] || { echo "resume approved action error: execution requires a future explicit --execute implementation; dry-run only for now" >&2; exit 2; }

json="$("$script_dir/list-approved-actions.sh" --json --all)"
node - "$json" "$question_id" <<'NODE'
const data = JSON.parse(process.argv[2]);
const id = process.argv[3];
const item = data.actions.find((action) => action.question_id === id);
if (!item) {
  console.error(`approved action not found: ${id}`);
  process.exit(1);
}
console.log(`Approved action: ${item.question_id}`);
console.log(`Action: ${item.action}`);
console.log(`Run id: ${item.run_id}`);
console.log(`Target chunks: ${item.target_chunks}`);
console.log(`Approved: ${item.approved}`);
console.log(`Answer source: ${item.answer_source}`);
console.log(`Execution status: ${item.execution_status}`);
console.log(`Stale: ${item.stale}`);
if (item.stale_reasons.length > 0) console.log(`Stale reasons: ${item.stale_reasons.join(',')}`);
if (item.stale || !item.approved) {
  console.log('Result: blocked; request a fresh approval before executing.');
  process.exit(1);
}
console.log('Result: resumable; explicit execution command may proceed after operator confirms resume intent.');
NODE
