/**
 * VLM 输出解析器通用接口
 * 不同供应商（volcengine / uitars 等）实现此接口
 */
import type { ActionStep, DesktopTask, AdapterContext } from '../types.js';

export interface Parser {
  /** 构建系统提示词，告知模型输出 JSON 动作格式 */
  buildSystemPrompt(task: DesktopTask, ctx?: AdapterContext): string;

  /** 解析 VLM 原始输出为 ActionStep；永不抛出，失败返回 failed */
  parseAction(raw: string): ActionStep;

  /** 构建验证提示词，请模型确认某个屏幕状态 */
  buildVerifyPrompt(question: string): string;

  /** 解析验证回答为布尔值；失败保守返回 false */
  parseVerify(raw: string): boolean;
}
