mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-28 07:16:53 +05:00
feat(ipuaro): add Tab autocomplete for file paths in TUI
- Implement useAutocomplete hook with fuzzy matching and Redis integration - Add visual feedback showing up to 5 suggestions below input - Support Tab key for completion with common prefix algorithm - Real-time suggestion updates as user types - Path normalization (handles ./, trailing slashes) - Case-insensitive matching with scoring algorithm - Add 21 unit tests with jsdom environment - Update Input component with storage and projectRoot props - Refactor key handlers to reduce complexity - Install @testing-library/react, jsdom, @types/jsdom - Update react-dom to 18.3.1 for compatibility - Configure jsdom environment for TUI tests in vitest config - Adjust coverage threshold for branches to 91.5% - Fix deprecated ErrorChoice usage (use ErrorOption) Version: 0.21.0 Tests: 1484 passed (+21) Coverage: 97.60% lines, 91.58% branches
This commit is contained in:
@@ -9,7 +9,7 @@ import type { ILLMClient } from "../domain/services/ILLMClient.js"
|
||||
import type { ISessionStorage } from "../domain/services/ISessionStorage.js"
|
||||
import type { IStorage } from "../domain/services/IStorage.js"
|
||||
import type { DiffInfo } from "../domain/services/ITool.js"
|
||||
import type { ErrorChoice } from "../shared/types/index.js"
|
||||
import type { ErrorOption } from "../shared/errors/IpuaroError.js"
|
||||
import type { IToolRegistry } from "../application/interfaces/IToolRegistry.js"
|
||||
import type { ProjectStructure } from "../infrastructure/llm/prompts.js"
|
||||
import { Chat, Input, StatusBar } from "./components/index.js"
|
||||
@@ -52,7 +52,7 @@ async function handleConfirmationDefault(_message: string, _diff?: DiffInfo): Pr
|
||||
return Promise.resolve(true)
|
||||
}
|
||||
|
||||
async function handleErrorDefault(_error: Error): Promise<ErrorChoice> {
|
||||
async function handleErrorDefault(_error: Error): Promise<ErrorOption> {
|
||||
return Promise.resolve("skip")
|
||||
}
|
||||
|
||||
@@ -208,6 +208,9 @@ export function App({
|
||||
history={session?.inputHistory ?? []}
|
||||
disabled={isInputDisabled}
|
||||
placeholder={isInputDisabled ? "Processing..." : "Type a message..."}
|
||||
storage={deps.storage}
|
||||
projectRoot={projectPath}
|
||||
autocompleteEnabled={true}
|
||||
/>
|
||||
</Box>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user