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

RUN_ID="${PENTEST_RUN_ID:-manual}"
ARTIFACT_DIR="${PENTEST_ARTIFACT_DIR:-.paqad/pentest/runs/${RUN_ID}/artifacts}"
RETEST_DIR="${ARTIFACT_DIR}/retest"
SOURCE_REPORT="${PENTEST_SOURCE_REPORT:-}"

mkdir -p "${RETEST_DIR}"

if [ -z "${SOURCE_REPORT}" ] || [ ! -f "${SOURCE_REPORT}" ]; then
  node - <<'NODE' > "${RETEST_DIR}/requested-findings.json"
console.log(JSON.stringify({
  source_report: process.env.PENTEST_SOURCE_REPORT || null,
  finding_ids: [],
  detail: 'No valid source report sidecar was provided.',
}, null, 2));
NODE
  exit 0
fi

node - <<'NODE' > "${RETEST_DIR}/requested-findings.json"
const fs = require('fs');
const source = JSON.parse(fs.readFileSync(process.env.PENTEST_SOURCE_REPORT, 'utf8'));
console.log(JSON.stringify({
  source_report: process.env.PENTEST_SOURCE_REPORT,
  finding_ids: (source.findings ?? []).map((finding) => finding.id),
  detail: 'Source findings loaded for retest.',
}, null, 2));
NODE

echo "retest manifest complete"
