/**
 * Tasks Conductor 专用类型。
 *
 * SessionCompletionEvent 上游定义于 SessionManager 内；TWork 侧放在 tasks 目录，
 * 由 SessionManager 的完成 seam（T3）import 使用，避免 TaskRunner 反向依赖巨型
 * SessionManager 文件。
 *
 * 移植自 craft-agents-oss SessionManager.SessionCompletionEvent（2026-08-12，方案 B B1）。
 */

/**
 * 会话回合完成事件（进程内 seam，非 renderer 事件、不面向 agent）。
 * Tasks Conductor 通过 host.onSessionComplete 订阅此事件驱动 DAG 推进。
 *
 * tokenUsage 为结构化子集：TWork managed session 的 tokenUsage 含
 * { inputTokens, outputTokens, totalTokens, contextTokens, costUsd }，
 * 结构兼容本类型（Conductor 只消费 input/output）。
 */
export interface SessionCompletionEvent {
  sessionId: string;
  workspaceId: string;
  reason: 'complete' | 'interrupted' | 'error' | 'timeout';
  /** The final (non-intermediate) assistant message id for this turn, if any. */
  finalMessageId?: string;
  /** Convenience copy of the final assistant message text (same as getSessionFinalText). */
  finalText?: string;
  /** The session's cumulative token usage, so the Conductor can meter token_budget without re-fetching. */
  tokenUsage?: {
    inputTokens?: number;
    outputTokens?: number;
  };
}
