/**
 * SDD Verification Plugin
 *
 * Hook opt-in para OpenCode: sugere verificação SDD depois de mudanças relevantes.
 * Não executa formatador nem altera arquivos automaticamente.
 */

const editedFiles = new Set<string>()
let lastSuggestion = 0

export const SddVerificationPlugin = async () => {
  return {
    event: async ({ event }: any) => {
      if (event.type !== "file.edited") return

      const filePath = event.path || ""
      if (filePath && !filePath.includes("node_modules")) {
        editedFiles.add(filePath)
      }

      const now = Date.now()
      if (editedFiles.size >= 3 && now - lastSuggestion > 60000) {
        lastSuggestion = now
        console.log(
          `[sdd-verification] ${editedFiles.size} arquivos editados. Rode /verify-changes ou sdd ci antes do handoff.`
        )
        editedFiles.clear()
      }
    },
  }
}

export default SddVerificationPlugin
