#!/usr/bin/env bash
# Migration: flat v1.2 .wp/ layout → v1.3 instances/default/
# Idempotent — exits 0 if nothing to migrate.
set -euo pipefail

PROJECT_ROOT="${1:-.}"
cd "$PROJECT_ROOT"

MID=default
INST=".wp/instances/$MID"
LEGACY_PROFILE=".wp/mission_profile.md"

[[ -f "$LEGACY_PROFILE" && ! -d "$INST" ]] || exit 0

mkdir -p "$INST/handoffs"
for f in mission_profile validation_contract active_plan mission_control; do
  [[ -f ".wp/${f}.md" ]] && mv ".wp/${f}.md" "$INST/"
done
[[ -d .wp/handoffs ]] && mv .wp/handoffs/* "$INST/handoffs/" 2>/dev/null || true
rmdir .wp/handoffs 2>/dev/null || true

PROJECT_ROOT_ABS="$(pwd)"
ISO="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
cat >"$INST/instance_meta.md" <<EOF
# Instance Meta

**mid:** default
**framework_version:** 1.3.0
**project_root:** ${PROJECT_ROOT_ABS}
**worktree_root:** ${PROJECT_ROOT_ABS}
**branch:** —
**worktree_parent:** —
**provisioned_at:** ${ISO}
EOF

if [[ -f "$INST/mission_control.md" ]]; then
  if sed --version >/dev/null 2>&1; then
    sed -i 's/framework_version:.*/framework_version:** 1.3.0/' "$INST/mission_control.md"
  else
    sed -i '' 's/framework_version:.*/framework_version:** 1.3.0/' "$INST/mission_control.md"
  fi
fi

printf '%s\n' "1.3.0" > .wp/VERSION
echo "migrated: v1.2 flat layout → instances/default (v1.3.0)"
