@nanocollective/nanocoder
Version:
A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter
33 lines • 1.6 kB
TypeScript
import type React from 'react';
import type { CustomCommandLoader } from '../../custom-commands/loader.js';
import type { ToolManager } from '../../tools/tool-manager.js';
import type { LLMClient, Message, ToolCall } from '../../types/core.js';
export interface UseChatHandlerProps {
client: LLMClient | null;
toolManager: ToolManager | null;
customCommandLoader: CustomCommandLoader | null;
messages: Message[];
setMessages: (messages: Message[]) => void;
currentProvider: string;
currentModel: string;
setIsCancelling: (cancelling: boolean) => void;
addToChatQueue: (component: React.ReactNode) => void;
getNextComponentKey: () => number;
abortController: AbortController | null;
setAbortController: (controller: AbortController | null) => void;
developmentMode?: 'normal' | 'auto-accept' | 'plan' | 'scheduler';
nonInteractiveMode?: boolean;
onStartToolConfirmationFlow: (toolCalls: ToolCall[], updatedMessages: Message[], assistantMsg: Message, systemMessage: Message) => void;
onConversationComplete?: () => void;
compactToolDisplayRef?: React.RefObject<boolean>;
onSetCompactToolCounts?: (counts: Record<string, number> | null) => void;
compactToolCountsRef?: React.MutableRefObject<Record<string, number>>;
}
export interface ChatHandlerReturn {
handleChatMessage: (message: string) => Promise<void>;
processAssistantResponse: (systemMessage: Message, messages: Message[]) => Promise<void>;
isGenerating: boolean;
streamingContent: string;
tokenCount: number;
}
//# sourceMappingURL=types.d.ts.map