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.
Files changed (112) hide show
  1. package/dist/components/App.d.ts.map +1 -1
  2. package/dist/components/App.js +40 -2
  3. package/dist/components/BackgroundTaskManager.d.ts +6 -0
  4. package/dist/components/BackgroundTaskManager.d.ts.map +1 -0
  5. package/dist/components/{TaskManager.js → BackgroundTaskManager.js} +1 -1
  6. package/dist/components/ChatInterface.d.ts.map +1 -1
  7. package/dist/components/ChatInterface.js +40 -5
  8. package/dist/components/CommandOutputDisplay.d.ts.map +1 -1
  9. package/dist/components/CommandOutputDisplay.js +6 -17
  10. package/dist/components/CommandSelector.d.ts.map +1 -1
  11. package/dist/components/CommandSelector.js +16 -2
  12. package/dist/components/CompressDisplay.d.ts.map +1 -1
  13. package/dist/components/CompressDisplay.js +6 -10
  14. package/dist/components/ConfirmationDetails.d.ts +9 -0
  15. package/dist/components/ConfirmationDetails.d.ts.map +1 -0
  16. package/dist/components/ConfirmationDetails.js +53 -0
  17. package/dist/components/{Confirmation.d.ts → ConfirmationSelector.d.ts} +3 -3
  18. package/dist/components/ConfirmationSelector.d.ts.map +1 -0
  19. package/dist/components/{Confirmation.js → ConfirmationSelector.js} +34 -96
  20. package/dist/components/DiffDisplay.d.ts.map +1 -1
  21. package/dist/components/DiffDisplay.js +48 -1
  22. package/dist/components/FileSelector.d.ts.map +1 -1
  23. package/dist/components/FileSelector.js +2 -2
  24. package/dist/components/HelpView.d.ts +6 -0
  25. package/dist/components/HelpView.d.ts.map +1 -0
  26. package/dist/components/HelpView.js +24 -0
  27. package/dist/components/HistorySearch.d.ts.map +1 -1
  28. package/dist/components/HistorySearch.js +12 -4
  29. package/dist/components/InputBox.d.ts +1 -3
  30. package/dist/components/InputBox.d.ts.map +1 -1
  31. package/dist/components/InputBox.js +14 -17
  32. package/dist/components/LoadingIndicator.d.ts +11 -0
  33. package/dist/components/LoadingIndicator.d.ts.map +1 -0
  34. package/dist/components/LoadingIndicator.js +6 -0
  35. package/dist/components/Markdown.d.ts.map +1 -1
  36. package/dist/components/Markdown.js +114 -121
  37. package/dist/components/MessageItem.d.ts +1 -1
  38. package/dist/components/MessageItem.d.ts.map +1 -1
  39. package/dist/components/MessageItem.js +3 -5
  40. package/dist/components/MessageList.d.ts +2 -3
  41. package/dist/components/MessageList.d.ts.map +1 -1
  42. package/dist/components/MessageList.js +29 -12
  43. package/dist/components/PlanDisplay.d.ts.map +1 -1
  44. package/dist/components/PlanDisplay.js +4 -12
  45. package/dist/components/RewindCommand.d.ts +4 -0
  46. package/dist/components/RewindCommand.d.ts.map +1 -1
  47. package/dist/components/RewindCommand.js +20 -3
  48. package/dist/components/TaskList.d.ts +3 -0
  49. package/dist/components/TaskList.d.ts.map +1 -0
  50. package/dist/components/TaskList.js +40 -0
  51. package/dist/components/ToolDisplay.d.ts +9 -0
  52. package/dist/components/ToolDisplay.d.ts.map +1 -0
  53. package/dist/components/ToolDisplay.js +44 -0
  54. package/dist/contexts/useChat.d.ts +11 -3
  55. package/dist/contexts/useChat.d.ts.map +1 -1
  56. package/dist/contexts/useChat.js +51 -32
  57. package/dist/hooks/useInputManager.d.ts +4 -15
  58. package/dist/hooks/useInputManager.d.ts.map +1 -1
  59. package/dist/hooks/useInputManager.js +20 -65
  60. package/dist/hooks/useTasks.d.ts +2 -0
  61. package/dist/hooks/useTasks.d.ts.map +1 -0
  62. package/dist/hooks/useTasks.js +5 -0
  63. package/dist/managers/InputManager.d.ts +8 -30
  64. package/dist/managers/InputManager.d.ts.map +1 -1
  65. package/dist/managers/InputManager.js +38 -144
  66. package/dist/print-cli.d.ts.map +1 -1
  67. package/dist/print-cli.js +11 -30
  68. package/package.json +5 -6
  69. package/src/components/App.tsx +51 -3
  70. package/src/components/{TaskManager.tsx → BackgroundTaskManager.tsx} +4 -2
  71. package/src/components/ChatInterface.tsx +80 -23
  72. package/src/components/CommandOutputDisplay.tsx +16 -38
  73. package/src/components/CommandSelector.tsx +41 -17
  74. package/src/components/CompressDisplay.tsx +5 -22
  75. package/src/components/ConfirmationDetails.tsx +108 -0
  76. package/src/components/{Confirmation.tsx → ConfirmationSelector.tsx} +74 -193
  77. package/src/components/DiffDisplay.tsx +71 -1
  78. package/src/components/FileSelector.tsx +0 -2
  79. package/src/components/HelpView.tsx +59 -0
  80. package/src/components/HistorySearch.tsx +45 -21
  81. package/src/components/InputBox.tsx +51 -63
  82. package/src/components/LoadingIndicator.tsx +56 -0
  83. package/src/components/Markdown.tsx +126 -323
  84. package/src/components/MessageItem.tsx +13 -24
  85. package/src/components/MessageList.tsx +48 -82
  86. package/src/components/PlanDisplay.tsx +4 -27
  87. package/src/components/RewindCommand.tsx +39 -2
  88. package/src/components/TaskList.tsx +58 -0
  89. package/src/components/{ToolResultDisplay.tsx → ToolDisplay.tsx} +8 -18
  90. package/src/contexts/useChat.tsx +73 -41
  91. package/src/hooks/useInputManager.ts +21 -83
  92. package/src/hooks/useTasks.ts +6 -0
  93. package/src/managers/InputManager.ts +43 -179
  94. package/src/print-cli.ts +17 -35
  95. package/dist/components/Confirmation.d.ts.map +0 -1
  96. package/dist/components/MemoryDisplay.d.ts +0 -8
  97. package/dist/components/MemoryDisplay.d.ts.map +0 -1
  98. package/dist/components/MemoryDisplay.js +0 -25
  99. package/dist/components/MemoryTypeSelector.d.ts +0 -8
  100. package/dist/components/MemoryTypeSelector.d.ts.map +0 -1
  101. package/dist/components/MemoryTypeSelector.js +0 -38
  102. package/dist/components/SubagentBlock.d.ts +0 -8
  103. package/dist/components/SubagentBlock.d.ts.map +0 -1
  104. package/dist/components/SubagentBlock.js +0 -70
  105. package/dist/components/TaskManager.d.ts +0 -6
  106. package/dist/components/TaskManager.d.ts.map +0 -1
  107. package/dist/components/ToolResultDisplay.d.ts +0 -9
  108. package/dist/components/ToolResultDisplay.d.ts.map +0 -1
  109. package/dist/components/ToolResultDisplay.js +0 -54
  110. package/src/components/MemoryDisplay.tsx +0 -62
  111. package/src/components/MemoryTypeSelector.tsx +0 -98
  112. 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;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,UAAU,EAAE,OAAO,CAAC;IAEpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,KAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uBAAuB,EAAE,CACvB,MAAM,EAAE,MAAM,KACX;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEhD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAEhD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAE5C,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAElD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,eAAe,CAAC,EAAE,MAAM,EACxB,oBAAoB,CAAC,EAAE,OAAO,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,0BAA0B,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnE,wBAAwB,EAAE,MAAM,IAAI,CAAC;IAErC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAID,eAAO,MAAM,OAAO,uBAMnB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAucpD,CAAC"}
1
+ {"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/contexts/useChat.tsx"],"names":[],"mappings":"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"}
@@ -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
- setMessages([...newMessages]);
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
- process.stdout.write("\x1Bc", () => {
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
- process.stdout.write("\x1Bc", () => {
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
- process.stdout.write("\x1Bc", () => {
326
- setIsExpanded((prev) => {
327
- const newExpanded = !prev;
328
- return newExpanded;
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
- showMemoryTypeSelector: boolean;
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
- setShowTaskManager: (show: boolean) => void;
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;;;;;;;;;;;;;;;;;;;;+BAgIpC,MAAM,aACD,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI;oCAQrD,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI;;;;;;qCA2Bd,MAAM;iCAK7C,MAAM;;;;;mCAe+B,MAAM;oCAIL,MAAM;wCAKF,MAAM;mCAKjD,MAAM;;;;mCAYN,MAAM;;;;;sCAemC,MAAM;uCAIL,MAAM;wCAKL,MAAM;;0CASJ,MAAM;mCAKhD,SAAS,GAAG,MAAM;;mCAWiB,MAAM,EAAE;iCAK5C,IAAI,GAAG,MAAM,gBAAgB,MAAM;;;;;mCAgBC,MAAM;+BA8Ef,OAAO;8BAGR,OAAO;iCAGJ,OAAO;8BAIV,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;yBAvIgB,MAAM;kCAIG,MAAM;;CA0J9D,CAAC"}
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 [memoryTypeSelectorState, setMemoryTypeSelectorState] = useState({
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
- onMemoryTypeSelectorStateChange: (show, message) => {
52
- setMemoryTypeSelectorState({ show, message });
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
- onMemoryTypeSelectorStateChange: (show, message) => {
92
- setMemoryTypeSelectorState({ show, message });
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
- showMemoryTypeSelector: memoryTypeSelectorState.show,
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
- setShowTaskManager: useCallback((show) => {
288
- managerRef.current?.setShowTaskManager(show);
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,2 @@
1
+ export declare const useTasks: () => import("wave-agent-sdk").Task[];
2
+ //# sourceMappingURL=useTasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTasks.d.ts","sourceRoot":"","sources":["../../src/hooks/useTasks.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,uCAGpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useChat } from "../contexts/useChat.js";
2
+ export const useTasks = () => {
3
+ const { sessionTasks } = useChat();
4
+ return sessionTasks;
5
+ };
@@ -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
- onMemoryTypeSelectorStateChange?: (show: boolean, message: string) => void;
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 showTaskManager;
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
- getShowTaskManager(): boolean;
142
- setShowTaskManager(show: boolean): void;
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":"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"}
1
+ {"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../src/managers/InputManager.ts"],"names":[],"mappings":"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"}