wave-code 0.5.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +40 -2
- package/dist/components/BackgroundTaskManager.d.ts +6 -0
- package/dist/components/BackgroundTaskManager.d.ts.map +1 -0
- package/dist/components/{TaskManager.js → BackgroundTaskManager.js} +1 -1
- package/dist/components/ChatInterface.d.ts.map +1 -1
- package/dist/components/ChatInterface.js +40 -5
- package/dist/components/CommandOutputDisplay.d.ts.map +1 -1
- package/dist/components/CommandOutputDisplay.js +6 -17
- package/dist/components/CommandSelector.d.ts.map +1 -1
- package/dist/components/CommandSelector.js +16 -2
- package/dist/components/CompressDisplay.d.ts.map +1 -1
- package/dist/components/CompressDisplay.js +6 -10
- package/dist/components/ConfirmationDetails.d.ts +9 -0
- package/dist/components/ConfirmationDetails.d.ts.map +1 -0
- package/dist/components/ConfirmationDetails.js +53 -0
- package/dist/components/{Confirmation.d.ts → ConfirmationSelector.d.ts} +3 -3
- package/dist/components/ConfirmationSelector.d.ts.map +1 -0
- package/dist/components/{Confirmation.js → ConfirmationSelector.js} +34 -96
- package/dist/components/DiffDisplay.d.ts.map +1 -1
- package/dist/components/DiffDisplay.js +48 -1
- package/dist/components/FileSelector.d.ts.map +1 -1
- package/dist/components/FileSelector.js +2 -2
- package/dist/components/HelpView.d.ts +6 -0
- package/dist/components/HelpView.d.ts.map +1 -0
- package/dist/components/HelpView.js +24 -0
- package/dist/components/HistorySearch.d.ts.map +1 -1
- package/dist/components/HistorySearch.js +12 -4
- package/dist/components/InputBox.d.ts +1 -3
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +14 -17
- package/dist/components/LoadingIndicator.d.ts +11 -0
- package/dist/components/LoadingIndicator.d.ts.map +1 -0
- package/dist/components/LoadingIndicator.js +6 -0
- package/dist/components/Markdown.d.ts.map +1 -1
- package/dist/components/Markdown.js +114 -121
- package/dist/components/MessageItem.d.ts +1 -1
- package/dist/components/MessageItem.d.ts.map +1 -1
- package/dist/components/MessageItem.js +3 -5
- package/dist/components/MessageList.d.ts +2 -3
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js +29 -12
- package/dist/components/PlanDisplay.d.ts.map +1 -1
- package/dist/components/PlanDisplay.js +4 -12
- package/dist/components/RewindCommand.d.ts +4 -0
- package/dist/components/RewindCommand.d.ts.map +1 -1
- package/dist/components/RewindCommand.js +20 -3
- package/dist/components/TaskList.d.ts +3 -0
- package/dist/components/TaskList.d.ts.map +1 -0
- package/dist/components/TaskList.js +40 -0
- package/dist/components/ToolDisplay.d.ts +9 -0
- package/dist/components/ToolDisplay.d.ts.map +1 -0
- package/dist/components/ToolDisplay.js +44 -0
- package/dist/contexts/useChat.d.ts +11 -3
- package/dist/contexts/useChat.d.ts.map +1 -1
- package/dist/contexts/useChat.js +51 -32
- package/dist/hooks/useInputManager.d.ts +4 -15
- package/dist/hooks/useInputManager.d.ts.map +1 -1
- package/dist/hooks/useInputManager.js +20 -65
- package/dist/hooks/useTasks.d.ts +2 -0
- package/dist/hooks/useTasks.d.ts.map +1 -0
- package/dist/hooks/useTasks.js +5 -0
- package/dist/managers/InputManager.d.ts +8 -30
- package/dist/managers/InputManager.d.ts.map +1 -1
- package/dist/managers/InputManager.js +38 -144
- package/dist/print-cli.d.ts.map +1 -1
- package/dist/print-cli.js +11 -30
- package/package.json +5 -6
- package/src/components/App.tsx +51 -3
- package/src/components/{TaskManager.tsx → BackgroundTaskManager.tsx} +4 -2
- package/src/components/ChatInterface.tsx +80 -23
- package/src/components/CommandOutputDisplay.tsx +16 -38
- package/src/components/CommandSelector.tsx +41 -17
- package/src/components/CompressDisplay.tsx +5 -22
- package/src/components/ConfirmationDetails.tsx +108 -0
- package/src/components/{Confirmation.tsx → ConfirmationSelector.tsx} +74 -193
- package/src/components/DiffDisplay.tsx +71 -1
- package/src/components/FileSelector.tsx +0 -2
- package/src/components/HelpView.tsx +59 -0
- package/src/components/HistorySearch.tsx +45 -21
- package/src/components/InputBox.tsx +51 -63
- package/src/components/LoadingIndicator.tsx +56 -0
- package/src/components/Markdown.tsx +126 -323
- package/src/components/MessageItem.tsx +13 -24
- package/src/components/MessageList.tsx +48 -82
- package/src/components/PlanDisplay.tsx +4 -27
- package/src/components/RewindCommand.tsx +39 -2
- package/src/components/TaskList.tsx +58 -0
- package/src/components/{ToolResultDisplay.tsx → ToolDisplay.tsx} +8 -18
- package/src/contexts/useChat.tsx +73 -41
- package/src/hooks/useInputManager.ts +21 -83
- package/src/hooks/useTasks.ts +6 -0
- package/src/managers/InputManager.ts +43 -179
- package/src/print-cli.ts +17 -35
- package/dist/components/Confirmation.d.ts.map +0 -1
- package/dist/components/MemoryDisplay.d.ts +0 -8
- package/dist/components/MemoryDisplay.d.ts.map +0 -1
- package/dist/components/MemoryDisplay.js +0 -25
- package/dist/components/MemoryTypeSelector.d.ts +0 -8
- package/dist/components/MemoryTypeSelector.d.ts.map +0 -1
- package/dist/components/MemoryTypeSelector.js +0 -38
- package/dist/components/SubagentBlock.d.ts +0 -8
- package/dist/components/SubagentBlock.d.ts.map +0 -1
- package/dist/components/SubagentBlock.js +0 -70
- package/dist/components/TaskManager.d.ts +0 -6
- package/dist/components/TaskManager.d.ts.map +0 -1
- package/dist/components/ToolResultDisplay.d.ts +0 -9
- package/dist/components/ToolResultDisplay.d.ts.map +0 -1
- package/dist/components/ToolResultDisplay.js +0 -54
- package/src/components/MemoryDisplay.tsx +0 -62
- package/src/components/MemoryTypeSelector.tsx +0 -98
- package/src/components/SubagentBlock.tsx +0 -143
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { Message, McpServerStatus, BackgroundTask, SlashCommand, PermissionDecision, PermissionMode } from "wave-agent-sdk";
|
|
2
|
+
import type { Message, McpServerStatus, BackgroundTask, Task, SlashCommand, PermissionDecision, PermissionMode } from "wave-agent-sdk";
|
|
3
3
|
export interface ChatContextType {
|
|
4
4
|
messages: Message[];
|
|
5
5
|
isLoading: boolean;
|
|
6
6
|
isCommandRunning: boolean;
|
|
7
7
|
isCompressing: boolean;
|
|
8
|
-
userInputHistory: string[];
|
|
9
8
|
isExpanded: boolean;
|
|
9
|
+
isTaskListVisible: boolean;
|
|
10
|
+
setIsTaskListVisible: (visible: boolean) => void;
|
|
10
11
|
sessionId: string;
|
|
11
12
|
sendMessage: (content: string, images?: Array<{
|
|
12
13
|
path: string;
|
|
@@ -14,11 +15,11 @@ export interface ChatContextType {
|
|
|
14
15
|
}>) => Promise<void>;
|
|
15
16
|
abortMessage: () => void;
|
|
16
17
|
latestTotalTokens: number;
|
|
17
|
-
saveMemory: (message: string, type: "project" | "user") => Promise<void>;
|
|
18
18
|
mcpServers: McpServerStatus[];
|
|
19
19
|
connectMcpServer: (serverName: string) => Promise<boolean>;
|
|
20
20
|
disconnectMcpServer: (serverName: string) => Promise<boolean>;
|
|
21
21
|
backgroundTasks: BackgroundTask[];
|
|
22
|
+
sessionTasks: Task[];
|
|
22
23
|
getBackgroundTaskOutput: (taskId: string) => {
|
|
23
24
|
stdout: string;
|
|
24
25
|
stderr: string;
|
|
@@ -28,6 +29,7 @@ export interface ChatContextType {
|
|
|
28
29
|
slashCommands: SlashCommand[];
|
|
29
30
|
hasSlashCommand: (commandId: string) => boolean;
|
|
30
31
|
subagentMessages: Record<string, Message[]>;
|
|
32
|
+
subagentLatestTokens: Record<string, number>;
|
|
31
33
|
permissionMode: PermissionMode;
|
|
32
34
|
setPermissionMode: (mode: PermissionMode) => void;
|
|
33
35
|
isConfirmationVisible: boolean;
|
|
@@ -44,6 +46,12 @@ export interface ChatContextType {
|
|
|
44
46
|
backgroundCurrentTask: () => void;
|
|
45
47
|
rewindId: number;
|
|
46
48
|
handleRewindSelect: (index: number) => Promise<void>;
|
|
49
|
+
getFullMessageThread: () => Promise<{
|
|
50
|
+
messages: Message[];
|
|
51
|
+
sessionIds: string[];
|
|
52
|
+
}>;
|
|
53
|
+
wasLastDetailsTooTall: number;
|
|
54
|
+
setWasLastDetailsTooTall: React.Dispatch<React.SetStateAction<number>>;
|
|
47
55
|
}
|
|
48
56
|
export declare const useChat: () => ChatContextType;
|
|
49
57
|
export interface ChatProviderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/contexts/useChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAUxB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/contexts/useChat.tsx"],"names":[],"mappings":"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"}
|
package/dist/contexts/useChat.js
CHANGED
|
@@ -17,6 +17,12 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
17
17
|
const { restoreSessionId, continueLastSession } = useAppConfig();
|
|
18
18
|
// Message Display State
|
|
19
19
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
20
|
+
const isExpandedRef = useRef(isExpanded);
|
|
21
|
+
const frozenMessagesRef = useRef(null);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
isExpandedRef.current = isExpanded;
|
|
24
|
+
}, [isExpanded]);
|
|
25
|
+
const [isTaskListVisible, setIsTaskListVisible] = useState(true);
|
|
20
26
|
// AI State
|
|
21
27
|
const [messages, setMessages] = useState([]);
|
|
22
28
|
const [isLoading, setIsLoading] = useState(false);
|
|
@@ -24,15 +30,17 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
24
30
|
const [sessionId, setSessionId] = useState("");
|
|
25
31
|
const [isCommandRunning, setIsCommandRunning] = useState(false);
|
|
26
32
|
const [isCompressing, setIsCompressing] = useState(false);
|
|
27
|
-
const [userInputHistory, setUserInputHistory] = useState([]);
|
|
28
33
|
// MCP State
|
|
29
34
|
const [mcpServers, setMcpServers] = useState([]);
|
|
30
35
|
// Background tasks state
|
|
31
36
|
const [backgroundTasks, setBackgroundTasks] = useState([]);
|
|
37
|
+
// Session tasks state
|
|
38
|
+
const [sessionTasks, setSessionTasks] = useState([]);
|
|
32
39
|
// Command state
|
|
33
40
|
const [slashCommands, setSlashCommands] = useState([]);
|
|
34
41
|
// Subagent messages state
|
|
35
42
|
const [subagentMessages, setSubagentMessages] = useState({});
|
|
43
|
+
const [subagentLatestTokens, setSubagentLatestTokens] = useState({});
|
|
36
44
|
// Permission state
|
|
37
45
|
const [permissionMode, setPermissionModeState] = useState("default");
|
|
38
46
|
// Confirmation state with queue-based architecture
|
|
@@ -42,6 +50,8 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
42
50
|
const [currentConfirmation, setCurrentConfirmation] = useState(null);
|
|
43
51
|
// Rewind state
|
|
44
52
|
const [rewindId, setRewindId] = useState(0);
|
|
53
|
+
// Confirmation too tall state
|
|
54
|
+
const [wasLastDetailsTooTall, setWasLastDetailsTooTall] = useState(0);
|
|
45
55
|
const agentRef = useRef(null);
|
|
46
56
|
// Permission confirmation methods with queue support
|
|
47
57
|
const showConfirmation = useCallback(async (toolName, toolInput, suggestedPrefix, hidePersistentOption) => {
|
|
@@ -63,28 +73,31 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
63
73
|
const initializeAgent = async () => {
|
|
64
74
|
const callbacks = {
|
|
65
75
|
onMessagesChange: (newMessages) => {
|
|
66
|
-
|
|
76
|
+
if (isExpandedRef.current) {
|
|
77
|
+
frozenMessagesRef.current = [...newMessages];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
setMessages([...newMessages]);
|
|
81
|
+
}
|
|
67
82
|
},
|
|
68
83
|
onServersChange: (servers) => {
|
|
69
84
|
setMcpServers([...servers]);
|
|
70
85
|
},
|
|
71
86
|
onSessionIdChange: (sessionId) => {
|
|
72
|
-
|
|
73
|
-
setSessionId(sessionId);
|
|
74
|
-
});
|
|
87
|
+
setSessionId(sessionId);
|
|
75
88
|
},
|
|
76
89
|
onLatestTotalTokensChange: (tokens) => {
|
|
77
90
|
setlatestTotalTokens(tokens);
|
|
78
91
|
},
|
|
79
|
-
onUserInputHistoryChange: (history) => {
|
|
80
|
-
setUserInputHistory([...history]);
|
|
81
|
-
},
|
|
82
92
|
onCompressionStateChange: (isCompressingState) => {
|
|
83
93
|
setIsCompressing(isCompressingState);
|
|
84
94
|
},
|
|
85
95
|
onTasksChange: (tasks) => {
|
|
86
96
|
setBackgroundTasks([...tasks]);
|
|
87
97
|
},
|
|
98
|
+
onSessionTasksChange: (tasks) => {
|
|
99
|
+
setSessionTasks([...tasks]);
|
|
100
|
+
},
|
|
88
101
|
onSubagentMessagesChange: (subagentId, messages) => {
|
|
89
102
|
logger.debug("onSubagentMessagesChange", subagentId, messages.length);
|
|
90
103
|
setSubagentMessages((prev) => ({
|
|
@@ -92,6 +105,12 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
92
105
|
[subagentId]: [...messages],
|
|
93
106
|
}));
|
|
94
107
|
},
|
|
108
|
+
onSubagentLatestTotalTokensChange: (subagentId, tokens) => {
|
|
109
|
+
setSubagentLatestTokens((prev) => ({
|
|
110
|
+
...prev,
|
|
111
|
+
[subagentId]: tokens,
|
|
112
|
+
}));
|
|
113
|
+
},
|
|
95
114
|
onPermissionModeChange: (mode) => {
|
|
96
115
|
setPermissionModeState(mode);
|
|
97
116
|
},
|
|
@@ -133,7 +152,6 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
133
152
|
setlatestTotalTokens(agent.latestTotalTokens);
|
|
134
153
|
setIsCommandRunning(agent.isCommandRunning);
|
|
135
154
|
setIsCompressing(agent.isCompressing);
|
|
136
|
-
setUserInputHistory(agent.userInputHistory);
|
|
137
155
|
setPermissionModeState(agent.getPermissionMode());
|
|
138
156
|
// Get initial MCP servers state
|
|
139
157
|
const mcpServers = agent.getMcpServers?.() || [];
|
|
@@ -179,15 +197,6 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
179
197
|
if (!hasTextContent && !hasImageAttachments)
|
|
180
198
|
return;
|
|
181
199
|
try {
|
|
182
|
-
// Handle memory mode - check if it's a memory message (starts with # and only one line)
|
|
183
|
-
if (content.startsWith("#") && !content.includes("\n")) {
|
|
184
|
-
const memoryText = content.substring(1).trim();
|
|
185
|
-
if (!memoryText)
|
|
186
|
-
return;
|
|
187
|
-
// In memory mode, don't add user message, only wait for user to choose memory type then add assistant message
|
|
188
|
-
// Don't auto-save, wait for user to choose memory type
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
200
|
// Handle bash mode - check if it's a bash command (starts with ! and only one line)
|
|
192
201
|
if (content.startsWith("!") && !content.includes("\n")) {
|
|
193
202
|
const command = content.substring(1).trim();
|
|
@@ -227,10 +236,6 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
227
236
|
const abortMessage = useCallback(() => {
|
|
228
237
|
agentRef.current?.abortMessage();
|
|
229
238
|
}, []);
|
|
230
|
-
// Memory save function - delegate to Agent
|
|
231
|
-
const saveMemory = useCallback(async (message, type) => {
|
|
232
|
-
await agentRef.current?.saveMemory(message, type);
|
|
233
|
-
}, []);
|
|
234
239
|
// Permission management methods
|
|
235
240
|
const setPermissionMode = useCallback((mode) => {
|
|
236
241
|
setPermissionModeState((prev) => {
|
|
@@ -309,26 +314,35 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
309
314
|
try {
|
|
310
315
|
await agentRef.current.truncateHistory(index);
|
|
311
316
|
// Clear terminal screen after rewind
|
|
312
|
-
|
|
313
|
-
setRewindId((prev) => prev + 1);
|
|
314
|
-
});
|
|
317
|
+
setRewindId((prev) => prev + 1);
|
|
315
318
|
}
|
|
316
319
|
catch (error) {
|
|
317
320
|
logger.error("Failed to rewind:", error);
|
|
318
321
|
}
|
|
319
322
|
}
|
|
320
323
|
}, []);
|
|
324
|
+
const getFullMessageThread = useCallback(async () => {
|
|
325
|
+
if (agentRef.current) {
|
|
326
|
+
return await agentRef.current.getFullMessageThread();
|
|
327
|
+
}
|
|
328
|
+
return { messages: [], sessionIds: [] };
|
|
329
|
+
}, []);
|
|
321
330
|
// Listen for Ctrl+O hotkey to toggle collapse/expand state and ESC to cancel confirmation
|
|
322
331
|
useInput((input, key) => {
|
|
323
332
|
if (key.ctrl && input === "o") {
|
|
324
333
|
// Clear terminal screen when expanded state changes
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
334
|
+
setIsExpanded((prev) => {
|
|
335
|
+
const newExpanded = !prev;
|
|
336
|
+
if (!newExpanded && frozenMessagesRef.current) {
|
|
337
|
+
setMessages(frozenMessagesRef.current);
|
|
338
|
+
frozenMessagesRef.current = null;
|
|
339
|
+
}
|
|
340
|
+
return newExpanded;
|
|
330
341
|
});
|
|
331
342
|
}
|
|
343
|
+
if (key.ctrl && input === "t") {
|
|
344
|
+
setIsTaskListVisible((prev) => !prev);
|
|
345
|
+
}
|
|
332
346
|
// Handle ESC key to cancel confirmation
|
|
333
347
|
if (key.escape && isConfirmationVisible) {
|
|
334
348
|
handleConfirmationCancel();
|
|
@@ -338,23 +352,25 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
338
352
|
messages,
|
|
339
353
|
isLoading,
|
|
340
354
|
isCommandRunning,
|
|
341
|
-
userInputHistory,
|
|
342
355
|
isExpanded,
|
|
356
|
+
isTaskListVisible,
|
|
357
|
+
setIsTaskListVisible,
|
|
343
358
|
sessionId,
|
|
344
359
|
sendMessage,
|
|
345
360
|
abortMessage,
|
|
346
361
|
latestTotalTokens,
|
|
347
362
|
isCompressing,
|
|
348
|
-
saveMemory,
|
|
349
363
|
mcpServers,
|
|
350
364
|
connectMcpServer,
|
|
351
365
|
disconnectMcpServer,
|
|
352
366
|
backgroundTasks,
|
|
367
|
+
sessionTasks,
|
|
353
368
|
getBackgroundTaskOutput,
|
|
354
369
|
stopBackgroundTask,
|
|
355
370
|
slashCommands,
|
|
356
371
|
hasSlashCommand,
|
|
357
372
|
subagentMessages,
|
|
373
|
+
subagentLatestTokens,
|
|
358
374
|
permissionMode,
|
|
359
375
|
setPermissionMode,
|
|
360
376
|
isConfirmationVisible,
|
|
@@ -366,6 +382,9 @@ export const ChatProvider = ({ children, bypassPermissions, pluginDirs, }) => {
|
|
|
366
382
|
backgroundCurrentTask,
|
|
367
383
|
rewindId,
|
|
368
384
|
handleRewindSelect,
|
|
385
|
+
getFullMessageThread,
|
|
386
|
+
wasLastDetailsTooTall,
|
|
387
|
+
setWasLastDetailsTooTall,
|
|
369
388
|
};
|
|
370
389
|
return (_jsx(ChatContext.Provider, { value: contextValue, children: children }));
|
|
371
390
|
};
|
|
@@ -14,11 +14,10 @@ export declare const useInputManager: (callbacks?: Partial<InputManagerCallbacks
|
|
|
14
14
|
slashPosition: number;
|
|
15
15
|
showHistorySearch: boolean;
|
|
16
16
|
historySearchQuery: string;
|
|
17
|
-
|
|
18
|
-
memoryMessage: string;
|
|
19
|
-
showTaskManager: boolean;
|
|
17
|
+
showBackgroundTaskManager: boolean;
|
|
20
18
|
showMcpManager: boolean;
|
|
21
19
|
showRewindManager: boolean;
|
|
20
|
+
showHelp: boolean;
|
|
22
21
|
permissionMode: PermissionMode;
|
|
23
22
|
attachedImages: AttachedImage[];
|
|
24
23
|
isManagerReady: boolean;
|
|
@@ -27,8 +26,6 @@ export declare const useInputManager: (callbacks?: Partial<InputManagerCallbacks
|
|
|
27
26
|
clearInput: () => void;
|
|
28
27
|
moveCursorLeft: () => void;
|
|
29
28
|
moveCursorRight: () => void;
|
|
30
|
-
moveCursorToStart: () => void;
|
|
31
|
-
moveCursorToEnd: () => void;
|
|
32
29
|
activateFileSelector: (position: number) => void;
|
|
33
30
|
handleFileSelect: (filePath: string) => {
|
|
34
31
|
newInput: string;
|
|
@@ -51,19 +48,11 @@ export declare const useInputManager: (callbacks?: Partial<InputManagerCallbacks
|
|
|
51
48
|
checkForSlashDeletion: (cursorPos: number) => boolean;
|
|
52
49
|
handleHistorySearchSelect: (prompt: string) => void;
|
|
53
50
|
handleCancelHistorySearch: () => void;
|
|
54
|
-
activateMemoryTypeSelector: (message: string) => void;
|
|
55
|
-
handleMemoryTypeSelect: (type: "project" | "user") => Promise<void>;
|
|
56
|
-
handleCancelMemoryTypeSelect: () => void;
|
|
57
|
-
setUserInputHistory: (history: string[]) => void;
|
|
58
|
-
navigateHistory: (direction: "up" | "down", currentInput: string) => {
|
|
59
|
-
newInput: string;
|
|
60
|
-
newCursorPosition: number;
|
|
61
|
-
};
|
|
62
|
-
resetHistoryNavigation: () => void;
|
|
63
51
|
handleSpecialCharInput: (char: string) => void;
|
|
64
|
-
|
|
52
|
+
setShowBackgroundTaskManager: (show: boolean) => void;
|
|
65
53
|
setShowMcpManager: (show: boolean) => void;
|
|
66
54
|
setShowRewindManager: (show: boolean) => void;
|
|
55
|
+
setShowHelp: (show: boolean) => void;
|
|
67
56
|
setPermissionMode: (mode: PermissionMode) => void;
|
|
68
57
|
addImage: (imagePath: string, mimeType: string) => AttachedImage | undefined;
|
|
69
58
|
removeImage: (imageId: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,eAAO,MAAM,eAAe,GAC1B,YAAW,OAAO,CAAC,qBAAqB,CAAM
|
|
1
|
+
{"version":3,"file":"useInputManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,eAAO,MAAM,eAAe,GAC1B,YAAW,OAAO,CAAC,qBAAqB,CAAM;;;;;;;;;;;;;;;;;;;+BAwHpC,MAAM,aACD,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI;oCAQrD,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI;;;;qCAmBd,MAAM;iCAK7C,MAAM;;;;;mCAe+B,MAAM;oCAIL,MAAM;wCAKF,MAAM;mCAKjD,MAAM;;;;mCAYN,MAAM;;;;;sCAemC,MAAM;uCAIL,MAAM;wCAKL,MAAM;;mCASX,MAAM;yCAiEL,OAAO;8BAGlB,OAAO;iCAGJ,OAAO;wBAIhB,OAAO;8BAID,cAAc;0BAMlB,MAAM,YAAY,MAAM;2BAGvB,MAAM;;;8BAWH,MAAM;mCAKxB,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,cAC1D,OAAO,qBACA,OAAO;uCAUkB,MAAM;;yBAU1C,MAAM,OACR,GAAG,kBACQ,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,cAC1D,OAAO,qBACA,OAAO,gBACX,MAAM,IAAI;yBA9HgB,MAAM;kCAIG,MAAM;;CAiJ9D,CAAC"}
|
|
@@ -22,13 +22,10 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
22
22
|
show: false,
|
|
23
23
|
query: "",
|
|
24
24
|
});
|
|
25
|
-
const [
|
|
26
|
-
show: false,
|
|
27
|
-
message: "",
|
|
28
|
-
});
|
|
29
|
-
const [showTaskManager, setShowTaskManager] = useState(false);
|
|
25
|
+
const [showBackgroundTaskManager, setShowBackgroundTaskManager] = useState(false);
|
|
30
26
|
const [showMcpManager, setShowMcpManager] = useState(false);
|
|
31
27
|
const [showRewindManager, setShowRewindManager] = useState(false);
|
|
28
|
+
const [showHelp, setShowHelp] = useState(false);
|
|
32
29
|
const [permissionMode, setPermissionModeState] = useState("default");
|
|
33
30
|
const [attachedImages, setAttachedImages] = useState([]);
|
|
34
31
|
// Create InputManager on mount and update callbacks when they change
|
|
@@ -48,11 +45,8 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
48
45
|
onHistorySearchStateChange: (show, query) => {
|
|
49
46
|
setHistorySearchState({ show, query });
|
|
50
47
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
onTaskManagerStateChange: (show) => {
|
|
55
|
-
setShowTaskManager(show);
|
|
48
|
+
onBackgroundTaskManagerStateChange: (show) => {
|
|
49
|
+
setShowBackgroundTaskManager(show);
|
|
56
50
|
},
|
|
57
51
|
onMcpManagerStateChange: (show) => {
|
|
58
52
|
setShowMcpManager(show);
|
|
@@ -60,14 +54,14 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
60
54
|
onRewindManagerStateChange: (show) => {
|
|
61
55
|
setShowRewindManager(show);
|
|
62
56
|
},
|
|
57
|
+
onHelpStateChange: (show) => {
|
|
58
|
+
setShowHelp(show);
|
|
59
|
+
},
|
|
63
60
|
onPermissionModeChange: (mode) => {
|
|
64
61
|
setPermissionModeState(mode);
|
|
65
62
|
callbacks.onPermissionModeChange?.(mode);
|
|
66
63
|
},
|
|
67
64
|
onImagesStateChange: setAttachedImages,
|
|
68
|
-
onShowTaskManager: () => setShowTaskManager(true),
|
|
69
|
-
onShowMcpManager: () => setShowMcpManager(true),
|
|
70
|
-
onShowRewindManager: () => setShowRewindManager(true),
|
|
71
65
|
...callbacks,
|
|
72
66
|
});
|
|
73
67
|
managerRef.current = manager;
|
|
@@ -88,11 +82,8 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
88
82
|
onHistorySearchStateChange: (show, query) => {
|
|
89
83
|
setHistorySearchState({ show, query });
|
|
90
84
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
onTaskManagerStateChange: (show) => {
|
|
95
|
-
setShowTaskManager(show);
|
|
85
|
+
onBackgroundTaskManagerStateChange: (show) => {
|
|
86
|
+
setShowBackgroundTaskManager(show);
|
|
96
87
|
},
|
|
97
88
|
onMcpManagerStateChange: (show) => {
|
|
98
89
|
setShowMcpManager(show);
|
|
@@ -100,14 +91,14 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
100
91
|
onRewindManagerStateChange: (show) => {
|
|
101
92
|
setShowRewindManager(show);
|
|
102
93
|
},
|
|
94
|
+
onHelpStateChange: (show) => {
|
|
95
|
+
setShowHelp(show);
|
|
96
|
+
},
|
|
103
97
|
onPermissionModeChange: (mode) => {
|
|
104
98
|
setPermissionModeState(mode);
|
|
105
99
|
callbacks.onPermissionModeChange?.(mode);
|
|
106
100
|
},
|
|
107
101
|
onImagesStateChange: setAttachedImages,
|
|
108
|
-
onShowTaskManager: () => setShowTaskManager(true),
|
|
109
|
-
onShowMcpManager: () => setShowMcpManager(true),
|
|
110
|
-
onShowRewindManager: () => setShowRewindManager(true),
|
|
111
102
|
...callbacks,
|
|
112
103
|
});
|
|
113
104
|
}
|
|
@@ -136,12 +127,6 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
136
127
|
const moveCursorRight = useCallback(() => {
|
|
137
128
|
managerRef.current?.moveCursorRight();
|
|
138
129
|
}, []);
|
|
139
|
-
const moveCursorToStart = useCallback(() => {
|
|
140
|
-
managerRef.current?.moveCursorToStart();
|
|
141
|
-
}, []);
|
|
142
|
-
const moveCursorToEnd = useCallback(() => {
|
|
143
|
-
managerRef.current?.moveCursorToEnd();
|
|
144
|
-
}, []);
|
|
145
130
|
// File selector methods
|
|
146
131
|
const activateFileSelector = useCallback((position) => {
|
|
147
132
|
managerRef.current?.activateFileSelector(position);
|
|
@@ -193,29 +178,6 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
193
178
|
const handleCancelHistorySearch = useCallback(() => {
|
|
194
179
|
managerRef.current?.handleCancelHistorySearch();
|
|
195
180
|
}, []);
|
|
196
|
-
// Memory type selector methods
|
|
197
|
-
const activateMemoryTypeSelector = useCallback((message) => {
|
|
198
|
-
managerRef.current?.activateMemoryTypeSelector(message);
|
|
199
|
-
}, []);
|
|
200
|
-
const handleMemoryTypeSelect = useCallback(async (type) => {
|
|
201
|
-
await managerRef.current?.handleMemoryTypeSelect(type);
|
|
202
|
-
}, []);
|
|
203
|
-
const handleCancelMemoryTypeSelect = useCallback(() => {
|
|
204
|
-
managerRef.current?.handleCancelMemoryTypeSelect();
|
|
205
|
-
}, []);
|
|
206
|
-
// Input history methods
|
|
207
|
-
const setUserInputHistory = useCallback((history) => {
|
|
208
|
-
managerRef.current?.setUserInputHistory(history);
|
|
209
|
-
}, []);
|
|
210
|
-
const navigateHistory = useCallback((direction, currentInput) => {
|
|
211
|
-
return (managerRef.current?.navigateHistory(direction, currentInput) || {
|
|
212
|
-
newInput: currentInput,
|
|
213
|
-
newCursorPosition: currentInput.length,
|
|
214
|
-
});
|
|
215
|
-
}, []);
|
|
216
|
-
const resetHistoryNavigation = useCallback(() => {
|
|
217
|
-
managerRef.current?.resetHistoryNavigation();
|
|
218
|
-
}, []);
|
|
219
181
|
// Special character handling
|
|
220
182
|
const handleSpecialCharInput = useCallback((char) => {
|
|
221
183
|
managerRef.current?.handleSpecialCharInput(char);
|
|
@@ -241,11 +203,10 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
241
203
|
slashPosition: commandSelectorState.position,
|
|
242
204
|
showHistorySearch: historySearchState.show,
|
|
243
205
|
historySearchQuery: historySearchState.query,
|
|
244
|
-
|
|
245
|
-
memoryMessage: memoryTypeSelectorState.message,
|
|
246
|
-
showTaskManager,
|
|
206
|
+
showBackgroundTaskManager,
|
|
247
207
|
showMcpManager,
|
|
248
208
|
showRewindManager,
|
|
209
|
+
showHelp,
|
|
249
210
|
permissionMode,
|
|
250
211
|
attachedImages,
|
|
251
212
|
isManagerReady,
|
|
@@ -255,8 +216,6 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
255
216
|
clearInput,
|
|
256
217
|
moveCursorLeft,
|
|
257
218
|
moveCursorRight,
|
|
258
|
-
moveCursorToStart,
|
|
259
|
-
moveCursorToEnd,
|
|
260
219
|
// File selector
|
|
261
220
|
activateFileSelector,
|
|
262
221
|
handleFileSelect,
|
|
@@ -273,19 +232,11 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
273
232
|
// History search
|
|
274
233
|
handleHistorySearchSelect,
|
|
275
234
|
handleCancelHistorySearch,
|
|
276
|
-
// Memory type selector
|
|
277
|
-
activateMemoryTypeSelector,
|
|
278
|
-
handleMemoryTypeSelect,
|
|
279
|
-
handleCancelMemoryTypeSelect,
|
|
280
|
-
// Input history
|
|
281
|
-
setUserInputHistory,
|
|
282
|
-
navigateHistory,
|
|
283
|
-
resetHistoryNavigation,
|
|
284
235
|
// Special handling
|
|
285
236
|
handleSpecialCharInput,
|
|
286
237
|
// Bash/MCP Manager
|
|
287
|
-
|
|
288
|
-
managerRef.current?.
|
|
238
|
+
setShowBackgroundTaskManager: useCallback((show) => {
|
|
239
|
+
managerRef.current?.setShowBackgroundTaskManager(show);
|
|
289
240
|
}, []),
|
|
290
241
|
setShowMcpManager: useCallback((show) => {
|
|
291
242
|
managerRef.current?.setShowMcpManager(show);
|
|
@@ -294,6 +245,10 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
294
245
|
managerRef.current?.setShowRewindManager(show);
|
|
295
246
|
setShowRewindManager(show);
|
|
296
247
|
}, []),
|
|
248
|
+
setShowHelp: useCallback((show) => {
|
|
249
|
+
managerRef.current?.setShowHelp(show);
|
|
250
|
+
setShowHelp(show);
|
|
251
|
+
}, []),
|
|
297
252
|
setPermissionMode: useCallback((mode) => {
|
|
298
253
|
setPermissionModeState(mode);
|
|
299
254
|
managerRef.current?.setPermissionMode(mode);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTasks.d.ts","sourceRoot":"","sources":["../../src/hooks/useTasks.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,uCAGpB,CAAC"}
|
|
@@ -12,20 +12,16 @@ export interface InputManagerCallbacks {
|
|
|
12
12
|
onFileSelectorStateChange?: (show: boolean, files: FileItem[], query: string, position: number) => void;
|
|
13
13
|
onCommandSelectorStateChange?: (show: boolean, query: string, position: number) => void;
|
|
14
14
|
onHistorySearchStateChange?: (show: boolean, query: string) => void;
|
|
15
|
-
|
|
16
|
-
onShowTaskManager?: () => void;
|
|
17
|
-
onTaskManagerStateChange?: (show: boolean) => void;
|
|
18
|
-
onShowMcpManager?: () => void;
|
|
15
|
+
onBackgroundTaskManagerStateChange?: (show: boolean) => void;
|
|
19
16
|
onMcpManagerStateChange?: (show: boolean) => void;
|
|
20
|
-
onShowRewindManager?: () => void;
|
|
21
17
|
onRewindManagerStateChange?: (show: boolean) => void;
|
|
18
|
+
onHelpStateChange?: (show: boolean) => void;
|
|
22
19
|
onImagesStateChange?: (images: AttachedImage[]) => void;
|
|
23
20
|
onSendMessage?: (content: string, images?: Array<{
|
|
24
21
|
path: string;
|
|
25
22
|
mimeType: string;
|
|
26
23
|
}>) => void | Promise<void>;
|
|
27
24
|
onHasSlashCommand?: (commandId: string) => boolean;
|
|
28
|
-
onSaveMemory?: (message: string, type: "project" | "user") => Promise<void>;
|
|
29
25
|
onAbortMessage?: () => void;
|
|
30
26
|
onBackgroundCurrentTask?: () => void;
|
|
31
27
|
onResetHistoryNavigation?: () => void;
|
|
@@ -45,11 +41,6 @@ export declare class InputManager {
|
|
|
45
41
|
private commandSearchQuery;
|
|
46
42
|
private showHistorySearch;
|
|
47
43
|
private historySearchQuery;
|
|
48
|
-
private showMemoryTypeSelector;
|
|
49
|
-
private memoryMessage;
|
|
50
|
-
private userInputHistory;
|
|
51
|
-
private historyIndex;
|
|
52
|
-
private historyBuffer;
|
|
53
44
|
private pasteDebounceTimer;
|
|
54
45
|
private pasteBuffer;
|
|
55
46
|
private initialPasteCursorPosition;
|
|
@@ -58,9 +49,10 @@ export declare class InputManager {
|
|
|
58
49
|
private longTextMap;
|
|
59
50
|
private attachedImages;
|
|
60
51
|
private imageIdCounter;
|
|
61
|
-
private
|
|
52
|
+
private showBackgroundTaskManager;
|
|
62
53
|
private showMcpManager;
|
|
63
54
|
private showRewindManager;
|
|
55
|
+
private showHelp;
|
|
64
56
|
private permissionMode;
|
|
65
57
|
private selectorJustUsed;
|
|
66
58
|
private callbacks;
|
|
@@ -76,8 +68,6 @@ export declare class InputManager {
|
|
|
76
68
|
clearInput(): void;
|
|
77
69
|
moveCursorLeft(): void;
|
|
78
70
|
moveCursorRight(): void;
|
|
79
|
-
moveCursorToStart(): void;
|
|
80
|
-
moveCursorToEnd(): void;
|
|
81
71
|
private searchFiles;
|
|
82
72
|
private debouncedSearchFiles;
|
|
83
73
|
activateFileSelector(position: number): void;
|
|
@@ -100,18 +90,8 @@ export declare class InputManager {
|
|
|
100
90
|
};
|
|
101
91
|
handleCancelCommandSelect(): void;
|
|
102
92
|
checkForSlashDeletion(cursorPosition: number): boolean;
|
|
103
|
-
activateMemoryTypeSelector(message: string): void;
|
|
104
|
-
handleMemoryTypeSelect(type: "project" | "user"): Promise<void>;
|
|
105
|
-
handleCancelMemoryTypeSelect(): void;
|
|
106
|
-
setUserInputHistory(history: string[]): void;
|
|
107
|
-
navigateHistory(direction: "up" | "down", currentInput: string): {
|
|
108
|
-
newInput: string;
|
|
109
|
-
newCursorPosition: number;
|
|
110
|
-
};
|
|
111
|
-
resetHistoryNavigation(): void;
|
|
112
93
|
isFileSelectorActive(): boolean;
|
|
113
94
|
isCommandSelectorActive(): boolean;
|
|
114
|
-
isMemoryTypeSelectorActive(): boolean;
|
|
115
95
|
getFileSelectorState(): {
|
|
116
96
|
show: boolean;
|
|
117
97
|
files: FileItem[];
|
|
@@ -123,10 +103,6 @@ export declare class InputManager {
|
|
|
123
103
|
query: string;
|
|
124
104
|
position: number;
|
|
125
105
|
};
|
|
126
|
-
getMemoryTypeSelectorState(): {
|
|
127
|
-
show: boolean;
|
|
128
|
-
message: string;
|
|
129
|
-
};
|
|
130
106
|
private updateSearchQueriesForActiveSelectors;
|
|
131
107
|
handleSpecialCharInput(char: string): void;
|
|
132
108
|
generateCompressedText(originalText: string): string;
|
|
@@ -138,12 +114,14 @@ export declare class InputManager {
|
|
|
138
114
|
clearImages(): void;
|
|
139
115
|
getAttachedImages(): AttachedImage[];
|
|
140
116
|
handlePasteImage(): Promise<boolean>;
|
|
141
|
-
|
|
142
|
-
|
|
117
|
+
getShowBackgroundTaskManager(): boolean;
|
|
118
|
+
setShowBackgroundTaskManager(show: boolean): void;
|
|
143
119
|
getShowMcpManager(): boolean;
|
|
144
120
|
setShowMcpManager(show: boolean): void;
|
|
145
121
|
getShowRewindManager(): boolean;
|
|
146
122
|
setShowRewindManager(show: boolean): void;
|
|
123
|
+
getShowHelp(): boolean;
|
|
124
|
+
setShowHelp(show: boolean): void;
|
|
147
125
|
getPermissionMode(): PermissionMode;
|
|
148
126
|
setPermissionMode(mode: PermissionMode): void;
|
|
149
127
|
cyclePermissionMode(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../src/managers/InputManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAEL,cAAc,EACd,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,yBAAyB,CAAC,EAAE,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,4BAA4B,CAAC,EAAE,CAC7B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE
|
|
1
|
+
{"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../src/managers/InputManager.ts"],"names":[],"mappings":"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"}
|