feat: Implement AskUserQuestionTool for interactive user queries

- Added AskUserQuestionDialog component for handling user questions in CLI.
- Integrated AskUserQuestionTool into the core toolset, allowing for dynamic user input during execution.
- Enhanced ToolConfirmationMessage to utilize the new AskUserQuestionDialog for 'ask_user_question' type confirmations.
- Updated core configuration to register the AskUserQuestionTool.
- Implemented validation and execution logic for user questions, including multi-select options.
- Added comprehensive tests for AskUserQuestionTool to ensure functionality and validation rules.
- Updated tool names and display names to include AskUserQuestion.
This commit is contained in:
DragonnZhang 2026-02-13 11:03:03 +08:00
parent 12b669d7c6
commit 35b5bc8a1e
11 changed files with 2165 additions and 4 deletions

View file

@ -26,6 +26,7 @@ export interface TextInputProps {
isActive?: boolean; // when false, ignore keypresses
validationErrors?: string[];
inputWidth?: number;
initialCursorOffset?: number;
}
export function TextInput({
@ -37,6 +38,7 @@ export function TextInput({
isActive = true,
validationErrors = [],
inputWidth = 80,
initialCursorOffset,
}: TextInputProps) {
const allowMultiline = height > 1;
@ -51,6 +53,7 @@ export function TextInput({
const buffer = useTextBuffer({
initialText: value || '',
initialCursorOffset,
viewport: { height, width: inputWidth },
isValidPath: () => false,
onChange: stableOnChange,