import { z } from 'zod';

// =============================================================
// Agent — 流式调用事件(SSE)
// =============================================================

/// PlanScript / inclusionReason 等支持流式生成的 agent 调用流事件。
/// 跟 agent_invocations.outputText 配合 — 流式增量更新 + 完成时落最终结果。
export const AgentScriptStreamEventSchema = z.discriminatedUnion('type', [
  z.object({
    type: z.literal('token'),
    data: z.string(),
  }),
  z.object({
    type: z.literal('done'),
    data: z.object({
      /// 最终 content(PlanScript 是 Markdown 含多子段;其他 agent 是各自 final text)
      content: z.string(),
      invocationId: z.string().uuid(),
    }),
  }),
  z.object({
    type: z.literal('error'),
    data: z.object({ message: z.string() }),
  }),
]);
export type AgentScriptStreamEvent = z.infer<typeof AgentScriptStreamEventSchema>;
