import { type DownloadedFile } from '../session/media.js'; import type { AgentResult } from '../types.js'; export interface SessionTokenUsage { input: number; output: number; cacheRead: number; cacheWrite: number; total: number; } export interface SessionContextUsage { tokens: number | null; contextWindow: number | null; percent: number | null; } export interface ChannelSessionStatus { sessionFile?: string; createdAt?: string; tokens?: SessionTokenUsage; contextUsage?: SessionContextUsage; statsSource: 'rpc' | 'jsonl' | 'none'; } /** * Invoke pi agent as a subprocess. * * Each channel gets its own session directory so conversation history persists. * Uses `pi --session-dir