/** * ACE-TUI Chat Panel * * Interactive chat with provider-aware streaming. * Supports streaming responses, token counting, and conversation history. */ import { OllamaClient, type ChatMessage as OllamaChatMessage } from "./ollama.js"; import { OpenAICompatibleClient, type OpenAICompatibleChatMessage } from "./openai-compatible.js"; import { type TelemetryTracker } from "./telemetry.js"; import { EventEmitter } from "node:events"; import type { ChatMessage } from "./layout.js"; import { ModelBridge } from "../model-bridge.js"; import type { AceContextTier } from "../ace-context.js"; export interface ChatSessionOptions { provider: string; model: string; systemPrompt?: string; temperature?: number; topP?: number; numCtx?: number; workspaceRoot?: string; aceTools?: "auto" | "on" | "off"; aceRole?: string; aceTier?: AceContextTier; maxTurns?: number; bridge?: Pick; } export interface ChatSessionClients { ollama: Pick; openai: Pick; } type SessionMessage = OllamaChatMessage | OpenAICompatibleChatMessage; export declare class ChatSession extends EventEmitter { private clients; private telemetry; private messages; private displayMessages; private provider; private model; private streaming; private activeStreamProvider; private currentStreamText; private systemPrompt?; private temperature; private topP; private numCtx; private workspaceRoot?; private aceToolsMode; private aceRole; private aceTier?; private maxTurns; private aceBridge; private activeAceBridge; constructor(clients: ChatSessionClients, telemetry: TelemetryTracker, options: ChatSessionOptions); /** Get display messages for rendering */ getDisplayMessages(): ChatMessage[]; /** Is currently streaming a response? */ isStreaming(): boolean; /** Get current model */ getModel(): string; /** Get current provider */ getProvider(): string; /** Change provider */ setProvider(provider: string): void; /** Change model */ setModel(model: string): void; /** Send a user message and stream the response */ sendMessage(text: string): Promise; /** Interrupt current stream */ interrupt(): void; /** Clear conversation history */ clear(): void; /** Get conversation for export/save */ getConversation(): SessionMessage[]; private streamResponse; private shouldUseAceBridge; private buildBridgeTask; private pushSystemMessage; private runAceBridge; } export {}; //# sourceMappingURL=chat.d.ts.map