import type { Plugin } from "@opencode-ai/plugin"

const DIRECTIVE_PREFIX_EN = "[SYSTEM DIRECTIVE: OH-MY-OPENCODE"
const DIRECTIVE_PREFIX_CN = "[重要提示:OH-MY-OPENCODE"

function translateSystemDirectives(text: string): string {
  return text.replaceAll(DIRECTIVE_PREFIX_EN, DIRECTIVE_PREFIX_CN)
}

export const SystemDirectiveI18nPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
  return {
    "experimental.chat.messages.transform": async (input, output) => {
      if (!output.messages) return
      
      for (const message of output.messages) {
        if (message.content && typeof message.content === "string") {
          message.content = translateSystemDirectives(message.content)
        } else if (Array.isArray(message.content)) {
          for (const part of message.content) {
            if (part.type === "text" && part.text) {
              part.text = translateSystemDirectives(part.text)
            }
          }
        }
      }
    },
  }
}