wave-code 0.11.6 → 0.12.0

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 (70) hide show
  1. package/dist/acp/agent.d.ts.map +1 -1
  2. package/dist/acp/agent.js +9 -0
  3. package/dist/commands/update.d.ts +2 -0
  4. package/dist/commands/update.d.ts.map +1 -0
  5. package/dist/commands/update.js +97 -0
  6. package/dist/components/App.js +1 -1
  7. package/dist/components/BtwDisplay.d.ts +8 -0
  8. package/dist/components/BtwDisplay.d.ts.map +1 -0
  9. package/dist/components/BtwDisplay.js +9 -0
  10. package/dist/components/ChatInterface.d.ts.map +1 -1
  11. package/dist/components/ChatInterface.js +3 -5
  12. package/dist/components/ConfirmationDetails.d.ts.map +1 -1
  13. package/dist/components/ConfirmationDetails.js +7 -1
  14. package/dist/components/InputBox.d.ts.map +1 -1
  15. package/dist/components/InputBox.js +18 -4
  16. package/dist/components/MessageBlockItem.d.ts.map +1 -1
  17. package/dist/components/MessageBlockItem.js +2 -1
  18. package/dist/components/MessageList.d.ts +1 -2
  19. package/dist/components/MessageList.d.ts.map +1 -1
  20. package/dist/components/MessageList.js +9 -6
  21. package/dist/components/ModelSelector.d.ts +9 -0
  22. package/dist/components/ModelSelector.d.ts.map +1 -0
  23. package/dist/components/ModelSelector.js +34 -0
  24. package/dist/components/RewindCommand.js +2 -2
  25. package/dist/components/SlashDisplay.d.ts +9 -0
  26. package/dist/components/SlashDisplay.d.ts.map +1 -0
  27. package/dist/components/SlashDisplay.js +20 -0
  28. package/dist/components/StatusLine.d.ts +8 -0
  29. package/dist/components/StatusLine.d.ts.map +1 -0
  30. package/dist/components/StatusLine.js +5 -0
  31. package/dist/constants/commands.d.ts.map +1 -1
  32. package/dist/constants/commands.js +12 -0
  33. package/dist/contexts/useChat.d.ts +8 -0
  34. package/dist/contexts/useChat.d.ts.map +1 -1
  35. package/dist/contexts/useChat.js +61 -1
  36. package/dist/hooks/useInputManager.d.ts +5 -0
  37. package/dist/hooks/useInputManager.d.ts.map +1 -1
  38. package/dist/hooks/useInputManager.js +58 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -0
  41. package/dist/managers/inputHandlers.d.ts +1 -1
  42. package/dist/managers/inputHandlers.d.ts.map +1 -1
  43. package/dist/managers/inputHandlers.js +74 -5
  44. package/dist/managers/inputReducer.d.ts +22 -0
  45. package/dist/managers/inputReducer.d.ts.map +1 -1
  46. package/dist/managers/inputReducer.js +23 -0
  47. package/dist/utils/version.d.ts +2 -0
  48. package/dist/utils/version.d.ts.map +1 -0
  49. package/dist/utils/version.js +4 -0
  50. package/package.json +4 -2
  51. package/src/acp/agent.ts +10 -0
  52. package/src/commands/update.ts +116 -0
  53. package/src/components/App.tsx +1 -1
  54. package/src/components/BtwDisplay.tsx +33 -0
  55. package/src/components/ChatInterface.tsx +25 -29
  56. package/src/components/ConfirmationDetails.tsx +14 -0
  57. package/src/components/InputBox.tsx +47 -17
  58. package/src/components/MessageBlockItem.tsx +5 -5
  59. package/src/components/MessageList.tsx +9 -10
  60. package/src/components/ModelSelector.tsx +109 -0
  61. package/src/components/RewindCommand.tsx +2 -2
  62. package/src/components/SlashDisplay.tsx +70 -0
  63. package/src/components/StatusLine.tsx +36 -0
  64. package/src/constants/commands.ts +12 -0
  65. package/src/contexts/useChat.tsx +82 -1
  66. package/src/hooks/useInputManager.ts +69 -0
  67. package/src/index.ts +9 -0
  68. package/src/managers/inputHandlers.ts +92 -4
  69. package/src/managers/inputReducer.ts +41 -1
  70. package/src/utils/version.ts +8 -0
@@ -12,6 +12,13 @@ export interface AttachedImage {
12
12
  mimeType: string;
13
13
  }
14
14
 
15
+ export interface BtwState {
16
+ isActive: boolean;
17
+ question: string;
18
+ answer?: string;
19
+ isLoading: boolean;
20
+ }
21
+
15
22
  export interface InputManagerCallbacks {
16
23
  onInputTextChange?: (text: string) => void;
17
24
  onCursorPositionChange?: (position: number) => void;
@@ -33,6 +40,7 @@ export interface InputManagerCallbacks {
33
40
  onHelpStateChange?: (show: boolean) => void;
34
41
  onStatusCommandStateChange?: (show: boolean) => void;
35
42
  onPluginManagerStateChange?: (show: boolean) => void;
43
+ onModelSelectorStateChange?: (show: boolean) => void;
36
44
  onImagesStateChange?: (images: AttachedImage[]) => void;
37
45
  onSendMessage?: (
38
46
  content: string,
@@ -43,6 +51,9 @@ export interface InputManagerCallbacks {
43
51
  onAbortMessage?: () => void;
44
52
  onBackgroundCurrentTask?: () => void;
45
53
  onPermissionModeChange?: (mode: PermissionMode) => void;
54
+ onAskBtw?: (question: string) => Promise<string>;
55
+ btwState?: BtwState;
56
+ onBtwStateChange?: (payload: Partial<BtwState>) => void;
46
57
  sessionId?: string;
47
58
  workdir?: string;
48
59
  getFullMessageThread?: () => Promise<{
@@ -74,7 +85,9 @@ export interface InputState {
74
85
  showHelp: boolean;
75
86
  showStatusCommand: boolean;
76
87
  showPluginManager: boolean;
88
+ showModelSelector: boolean;
77
89
  permissionMode: PermissionMode;
90
+ allowBypassInCycle: boolean;
78
91
  selectorJustUsed: boolean;
79
92
  isPasting: boolean;
80
93
  pasteBuffer: string;
@@ -84,6 +97,7 @@ export interface InputState {
84
97
  originalInputText: string;
85
98
  originalLongTextMap: Record<string, string>;
86
99
  isFileSearching: boolean;
100
+ btwState: BtwState;
87
101
  }
88
102
 
89
103
  export const initialState: InputState = {
@@ -108,7 +122,9 @@ export const initialState: InputState = {
108
122
  showHelp: false,
109
123
  showStatusCommand: false,
110
124
  showPluginManager: false,
125
+ showModelSelector: false,
111
126
  permissionMode: "default",
127
+ allowBypassInCycle: false,
112
128
  selectorJustUsed: false,
113
129
  isPasting: false,
114
130
  pasteBuffer: "",
@@ -118,6 +134,11 @@ export const initialState: InputState = {
118
134
  originalInputText: "",
119
135
  originalLongTextMap: {},
120
136
  isFileSearching: false,
137
+ btwState: {
138
+ isActive: false,
139
+ question: "",
140
+ isLoading: false,
141
+ },
121
142
  };
122
143
 
123
144
  export type InputAction =
@@ -145,7 +166,9 @@ export type InputAction =
145
166
  | { type: "SET_SHOW_HELP"; payload: boolean }
146
167
  | { type: "SET_SHOW_STATUS_COMMAND"; payload: boolean }
147
168
  | { type: "SET_SHOW_PLUGIN_MANAGER"; payload: boolean }
169
+ | { type: "SET_SHOW_MODEL_SELECTOR"; payload: boolean }
148
170
  | { type: "SET_PERMISSION_MODE"; payload: PermissionMode }
171
+ | { type: "SET_ALLOW_BYPASS_IN_CYCLE"; payload: boolean }
149
172
  | { type: "SET_SELECTOR_JUST_USED"; payload: boolean }
150
173
  | { type: "INSERT_TEXT_WITH_PLACEHOLDER"; payload: string }
151
174
  | { type: "CLEAR_LONG_TEXT_MAP" }
@@ -160,7 +183,8 @@ export type InputAction =
160
183
  | { type: "SET_HISTORY_ENTRIES"; payload: PromptEntry[] }
161
184
  | { type: "NAVIGATE_HISTORY"; payload: "up" | "down" }
162
185
  | { type: "RESET_HISTORY_NAVIGATION" }
163
- | { type: "SELECT_HISTORY_ENTRY"; payload: PromptEntry };
186
+ | { type: "SELECT_HISTORY_ENTRY"; payload: PromptEntry }
187
+ | { type: "SET_BTW_STATE"; payload: Partial<BtwState> };
164
188
 
165
189
  export function inputReducer(
166
190
  state: InputState,
@@ -338,8 +362,16 @@ export function inputReducer(
338
362
  showPluginManager: action.payload,
339
363
  selectorJustUsed: !action.payload ? true : state.selectorJustUsed,
340
364
  };
365
+ case "SET_SHOW_MODEL_SELECTOR":
366
+ return {
367
+ ...state,
368
+ showModelSelector: action.payload,
369
+ selectorJustUsed: !action.payload ? true : state.selectorJustUsed,
370
+ };
341
371
  case "SET_PERMISSION_MODE":
342
372
  return { ...state, permissionMode: action.payload };
373
+ case "SET_ALLOW_BYPASS_IN_CYCLE":
374
+ return { ...state, allowBypassInCycle: action.payload };
343
375
  case "SET_SELECTOR_JUST_USED":
344
376
  return { ...state, selectorJustUsed: action.payload };
345
377
  case "INSERT_TEXT_WITH_PLACEHOLDER": {
@@ -483,6 +515,14 @@ export function inputReducer(
483
515
  originalInputText: "",
484
516
  originalLongTextMap: {},
485
517
  };
518
+ case "SET_BTW_STATE":
519
+ return {
520
+ ...state,
521
+ btwState: {
522
+ ...state.btwState,
523
+ ...action.payload,
524
+ },
525
+ };
486
526
  default:
487
527
  return state;
488
528
  }
@@ -0,0 +1,8 @@
1
+ import semver from "semver";
2
+
3
+ export function isUpdateAvailable(
4
+ currentVersion: string,
5
+ latestVersion: string,
6
+ ): boolean {
7
+ return semver.gt(latestVersion, currentVersion);
8
+ }