/**
 * 实时教练 WS 线协议(浏览器 ⇄ 网关)。
 * v1 不持久化,纯 interface(无装饰器 / 无 Zod 落库)。
 */

/** client → server */
export interface CoachStartMsg {
  planId: string;
  /** 选用哪个实时模型(默认 qwen) */
  provider?: 'qwen' | 'gemini';
}
export interface AudioFrameMsg {
  frame: string; // base64 PCM16 16kHz mono
}

/** server → client */
export interface CoachReadyMsg {
  skills: string[]; // 激活的 skill 名(面板展示用)
}
export interface TextDeltaMsg {
  text: string; // 流式增量
}
export interface TextDoneMsg {
  fullText: string; // 一句完成
}
export interface CoachErrorMsg {
  message: string;
}

/** 鉴权后挂到 socket.data 的租户隔离上下文 */
export interface CoachScope {
  tenantId: string;
  hostId: string;
  userId: string;
}
