#!/usr/bin/env node
/** snapshot-decide (М6, Блок 2) — чистое ядро авто-снимка. */
import { bashIsFloor } from './floor-decide.mjs';

/** Нужен ли снимок: только Bash-floor (reset --hard / rm -rf и т.п.). */
export function snapshotNeeded(toolName, toolInput) {
  if (toolName !== 'Bash') return false;
  return bashIsFloor((toolInput && toolInput.command) || '');
}

/**
 * Разобрать результат git-захвата. Чистое дерево (stash пуст) → ref=HEAD = УСПЕХ.
 * Реальная ошибка git → ok:false (fail-close). Различение F-S2.
 */
export function resolveGitState({ stashOut, headOut, error }) {
  if (error) return { ok: false, ref: null };
  const stash = String(stashOut || '').trim();
  if (stash) return { ok: true, ref: stash };
  const head = String(headOut || '').trim();
  if (head) return { ok: true, ref: head };
  return { ok: false, ref: null };
}
