UNPKG

@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

143 lines 7.45 kB
import React from 'react'; import type { TitleShape } from '../components/ui/styled-title.js'; import { CustomCommandExecutor } from '../custom-commands/executor.js'; import { CustomCommandLoader } from '../custom-commands/loader.js'; import { ToolManager } from '../tools/tool-manager.js'; import type { CheckpointListItem } from '../types/checkpoint.js'; import type { CustomCommand } from '../types/commands.js'; import { DevelopmentMode, LLMClient, LSPConnectionStatus, MCPConnectionStatus, Message, ToolCall } from '../types/core.js'; import type { ToolResult, UpdateInfo } from '../types/index.js'; import type { Tokenizer } from '../types/tokenization.js'; import type { ThemePreset } from '../types/ui.js'; import { BoundedMap } from '../utils/bounded-map.js'; import type { PendingQuestion } from '../utils/question-queue.js'; export type ActiveMode = 'model' | 'provider' | 'modelDatabase' | 'configWizard' | 'mcpWizard' | 'explorer' | 'ideSelection' | 'scheduler' | 'checkpointLoad' | 'sessionSelector' | null; export interface ConversationContext { /** * All messages up to (but not including) tool execution. * Includes user message, auto-executed messages, and assistant message with tool_calls. */ messagesBeforeToolExecution: Message[]; /** * The assistant message that triggered tool execution. * Included in messagesBeforeToolExecution for reference. */ assistantMsg: Message; /** * System message for the next turn after tool execution. */ systemMessage: Message; } export declare function useAppState(): { client: LLMClient | null; messages: Message[]; displayMessages: Message[]; messageTokenCache: BoundedMap<string, number>; currentModel: string; currentProvider: string; currentTheme: ThemePreset; currentTitleShape: TitleShape; toolManager: ToolManager | null; customCommandLoader: CustomCommandLoader | null; customCommandExecutor: CustomCommandExecutor | null; customCommandCache: Map<string, CustomCommand>; startChat: boolean; mcpInitialized: boolean; updateInfo: UpdateInfo | null; mcpServersStatus: MCPConnectionStatus[]; lspServersStatus: LSPConnectionStatus[]; preferencesLoaded: boolean; customCommandsCount: number; isCancelling: boolean; isConversationComplete: boolean; isSettingsMode: boolean; abortController: AbortController | null; activeMode: ActiveMode; setActiveMode: React.Dispatch<React.SetStateAction<ActiveMode>>; isModelSelectionMode: boolean; isProviderSelectionMode: boolean; isModelDatabaseMode: boolean; isConfigWizardMode: boolean; isMcpWizardMode: boolean; isCheckpointLoadMode: boolean; isExplorerMode: boolean; isIdeSelectionMode: boolean; isSchedulerMode: boolean; isSessionSelectorMode: boolean; isVscodeEnabled: boolean; checkpointLoadData: { checkpoints: CheckpointListItem[]; currentMessageCount: number; } | null; showAllSessions: boolean; currentSessionId: string | null; isToolConfirmationMode: boolean; isToolExecuting: boolean; compactToolDisplay: boolean; compactToolDisplayRef: React.RefObject<boolean>; compactToolCounts: Record<string, number> | null; compactToolCountsRef: React.RefObject<Record<string, number>>; isQuestionMode: boolean; pendingQuestion: PendingQuestion | null; developmentMode: DevelopmentMode; contextPercentUsed: number | null; contextLimit: number | null; pendingToolCalls: ToolCall[]; currentToolIndex: number; completedToolResults: ToolResult[]; currentConversationContext: ConversationContext | null; chatComponents: React.ReactNode[]; getNextComponentKey: () => number; tokenizer: Tokenizer; setClient: React.Dispatch<React.SetStateAction<LLMClient | null>>; setMessages: React.Dispatch<React.SetStateAction<Message[]>>; setDisplayMessages: React.Dispatch<React.SetStateAction<Message[]>>; setMessageTokenCache: React.Dispatch<React.SetStateAction<BoundedMap<string, number>>>; setCurrentModel: React.Dispatch<React.SetStateAction<string>>; setCurrentProvider: React.Dispatch<React.SetStateAction<string>>; setCurrentTheme: React.Dispatch<React.SetStateAction<ThemePreset>>; setCurrentTitleShape: React.Dispatch<React.SetStateAction<TitleShape>>; setToolManager: React.Dispatch<React.SetStateAction<ToolManager | null>>; setCustomCommandLoader: React.Dispatch<React.SetStateAction<CustomCommandLoader | null>>; setCustomCommandExecutor: React.Dispatch<React.SetStateAction<CustomCommandExecutor | null>>; setCustomCommandCache: React.Dispatch<React.SetStateAction<Map<string, CustomCommand>>>; setStartChat: React.Dispatch<React.SetStateAction<boolean>>; setMcpInitialized: React.Dispatch<React.SetStateAction<boolean>>; setUpdateInfo: React.Dispatch<React.SetStateAction<UpdateInfo | null>>; setMcpServersStatus: React.Dispatch<React.SetStateAction<MCPConnectionStatus[]>>; setLspServersStatus: React.Dispatch<React.SetStateAction<LSPConnectionStatus[]>>; setPreferencesLoaded: React.Dispatch<React.SetStateAction<boolean>>; setCustomCommandsCount: React.Dispatch<React.SetStateAction<number>>; setIsCancelling: React.Dispatch<React.SetStateAction<boolean>>; setIsConversationComplete: React.Dispatch<React.SetStateAction<boolean>>; setIsSettingsMode: React.Dispatch<React.SetStateAction<boolean>>; setAbortController: React.Dispatch<React.SetStateAction<AbortController | null>>; setIsVscodeEnabled: React.Dispatch<React.SetStateAction<boolean>>; setCheckpointLoadData: React.Dispatch<React.SetStateAction<{ checkpoints: CheckpointListItem[]; currentMessageCount: number; } | null>>; setShowAllSessions: React.Dispatch<React.SetStateAction<boolean>>; setCurrentSessionId: React.Dispatch<React.SetStateAction<string | null>>; setIsToolConfirmationMode: React.Dispatch<React.SetStateAction<boolean>>; setIsToolExecuting: React.Dispatch<React.SetStateAction<boolean>>; setCompactToolDisplay: React.Dispatch<React.SetStateAction<boolean>>; setCompactToolCounts: React.Dispatch<React.SetStateAction<Record<string, number> | null>>; setIsQuestionMode: React.Dispatch<React.SetStateAction<boolean>>; setPendingQuestion: React.Dispatch<React.SetStateAction<PendingQuestion | null>>; setDevelopmentMode: React.Dispatch<React.SetStateAction<DevelopmentMode>>; setContextPercentUsed: React.Dispatch<React.SetStateAction<number | null>>; setContextLimit: React.Dispatch<React.SetStateAction<number | null>>; setPendingToolCalls: React.Dispatch<React.SetStateAction<ToolCall[]>>; setCurrentToolIndex: React.Dispatch<React.SetStateAction<number>>; setCompletedToolResults: React.Dispatch<React.SetStateAction<ToolResult[]>>; setCurrentConversationContext: React.Dispatch<React.SetStateAction<ConversationContext | null>>; setChatComponents: React.Dispatch<React.SetStateAction<React.ReactNode[]>>; liveComponent: React.ReactNode; setLiveComponent: React.Dispatch<React.SetStateAction<React.ReactNode>>; addToChatQueue: (component: React.ReactNode) => void; getMessageTokens: (message: Message) => number; updateMessages: (newMessages: Message[]) => void; resetToolConfirmationState: () => void; }; //# sourceMappingURL=useAppState.d.ts.map