wave-code 0.11.5 → 0.11.7

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 (58) 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 -4
  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 +13 -3
  16. package/dist/components/MessageList.d.ts.map +1 -1
  17. package/dist/components/MessageList.js +5 -3
  18. package/dist/components/RewindCommand.js +2 -2
  19. package/dist/components/StatusLine.d.ts +8 -0
  20. package/dist/components/StatusLine.d.ts.map +1 -0
  21. package/dist/components/StatusLine.js +5 -0
  22. package/dist/constants/commands.d.ts.map +1 -1
  23. package/dist/constants/commands.js +6 -0
  24. package/dist/contexts/useChat.d.ts +4 -0
  25. package/dist/contexts/useChat.d.ts.map +1 -1
  26. package/dist/contexts/useChat.js +35 -1
  27. package/dist/hooks/useInputManager.d.ts +3 -0
  28. package/dist/hooks/useInputManager.d.ts.map +1 -1
  29. package/dist/hooks/useInputManager.js +50 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -0
  32. package/dist/managers/inputHandlers.d.ts +1 -1
  33. package/dist/managers/inputHandlers.d.ts.map +1 -1
  34. package/dist/managers/inputHandlers.js +68 -5
  35. package/dist/managers/inputReducer.d.ts +17 -0
  36. package/dist/managers/inputReducer.d.ts.map +1 -1
  37. package/dist/managers/inputReducer.js +16 -0
  38. package/dist/utils/version.d.ts +2 -0
  39. package/dist/utils/version.d.ts.map +1 -0
  40. package/dist/utils/version.js +4 -0
  41. package/package.json +4 -2
  42. package/src/acp/agent.ts +10 -0
  43. package/src/commands/update.ts +116 -0
  44. package/src/components/App.tsx +1 -1
  45. package/src/components/BtwDisplay.tsx +33 -0
  46. package/src/components/ChatInterface.tsx +25 -25
  47. package/src/components/ConfirmationDetails.tsx +14 -0
  48. package/src/components/InputBox.tsx +30 -17
  49. package/src/components/MessageList.tsx +6 -3
  50. package/src/components/RewindCommand.tsx +2 -2
  51. package/src/components/StatusLine.tsx +36 -0
  52. package/src/constants/commands.ts +6 -0
  53. package/src/contexts/useChat.tsx +49 -1
  54. package/src/hooks/useInputManager.ts +59 -0
  55. package/src/index.ts +9 -0
  56. package/src/managers/inputHandlers.ts +87 -4
  57. package/src/managers/inputReducer.ts +31 -1
  58. package/src/utils/version.ts +8 -0
@@ -8,7 +8,7 @@ export declare const handleSubmit: (state: InputState, dispatch: React.Dispatch<
8
8
  mimeType: string;
9
9
  }>) => Promise<void>;
10
10
  export declare const handlePasteImage: (dispatch: React.Dispatch<InputAction>) => Promise<boolean>;
11
- export declare const cyclePermissionMode: (currentMode: PermissionMode, dispatch: React.Dispatch<InputAction>, callbacks: Partial<InputManagerCallbacks>) => void;
11
+ export declare const cyclePermissionMode: (currentMode: PermissionMode, dispatch: React.Dispatch<InputAction>, callbacks: Partial<InputManagerCallbacks>, allowBypassInCycle?: boolean) => void;
12
12
  export declare const getAtSelectorPosition: (text: string, cursorPosition: number) => number;
13
13
  export declare const getSlashSelectorPosition: (text: string, cursorPosition: number) => number;
14
14
  export declare const updateSearchQueriesForActiveSelectors: (state: InputState, dispatch: React.Dispatch<InputAction>, inputText: string, cursorPosition: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"inputHandlers.d.ts","sourceRoot":"","sources":["../../src/managers/inputHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAwB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,WAAW,EACX,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAClC,MAcF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,yBAAyB,KAAK,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,OAAO,CAAC,IAAI,CAsCd,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KACpC,OAAO,CAAC,OAAO,CAiBjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,aAAa,cAAc,EAC3B,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,SAc1C,CAAC;AAgCF,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,gBAAgB,MAAM,KACrB,MAaF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,gBAAgB,MAAM,KACrB,MAaF,CAAC;AAEF,eAAO,MAAM,qCAAqC,GAChD,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,MAAM,EACjB,gBAAgB,MAAM,KACrB,IAYF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,MAAM,MAAM,KACX,IAkDF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,MAAM,KACZ,IA0BF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MAM3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,SAAS,MAAM;;;CAoDhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,UAAU,MAAM;;;CAmBjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,gBAAgB,MAAM,KACrB,OAMF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,gBAAgB,MAAM,KACrB,OAMF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,MAAM,EACb,KAAK,GAAG,KACP,OA4EF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,MAAM,EACb,KAAK,GAAG,EACR,cAAc,MAAM,IAAI,KACvB,OAAO,CAAC,OAAO,CA8JjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,OAAO,UAAU,EACjB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EACrC,WAAW,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,MAAM,EACb,KAAK,GAAG,EACR,cAAc,MAAM,IAAI,KACvB,OAAO,CAAC,OAAO,CAsFjB,CAAC"}
1
+ {"version":3,"file":"inputHandlers.d.ts","sourceRoot":"","sources":["../../src/managers/inputHandlers.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,25 @@ export const handleSubmit = async (state, dispatch, callbacks, attachedImagesOve
28
28
  const contentWithPlaceholders = state.inputText
29
29
  .replace(imageRegex, "")
30
30
  .trim();
31
+ if (contentWithPlaceholders === "/btw" ||
32
+ contentWithPlaceholders.startsWith("/btw ")) {
33
+ const question = contentWithPlaceholders.startsWith("/btw ")
34
+ ? contentWithPlaceholders.substring(5).trim()
35
+ : "";
36
+ const payload = {
37
+ isActive: true,
38
+ question,
39
+ isLoading: question !== "",
40
+ };
41
+ dispatch({
42
+ type: "SET_BTW_STATE",
43
+ payload,
44
+ });
45
+ dispatch({ type: "CLEAR_INPUT" });
46
+ dispatch({ type: "RESET_HISTORY_NAVIGATION" });
47
+ dispatch({ type: "CLEAR_LONG_TEXT_MAP" });
48
+ return;
49
+ }
31
50
  PromptHistoryManager.addEntry(contentWithPlaceholders, callbacks.sessionId, state.longTextMap, callbacks.workdir).catch((err) => {
32
51
  callbacks.logger?.error("Failed to save prompt history", err);
33
52
  });
@@ -54,8 +73,11 @@ export const handlePasteImage = async (dispatch) => {
54
73
  return false;
55
74
  }
56
75
  };
57
- export const cyclePermissionMode = (currentMode, dispatch, callbacks) => {
76
+ export const cyclePermissionMode = (currentMode, dispatch, callbacks, allowBypassInCycle = false) => {
58
77
  const modes = ["default", "acceptEdits", "plan"];
78
+ if (allowBypassInCycle) {
79
+ modes.push("bypassPermissions");
80
+ }
59
81
  const currentIndex = modes.indexOf(currentMode);
60
82
  const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % modes.length;
61
83
  const nextMode = modes[nextIndex];
@@ -246,6 +268,12 @@ export const handleCommandSelect = (state, dispatch, callbacks, command) => {
246
268
  else if (command === "plugin") {
247
269
  dispatch({ type: "SET_SHOW_PLUGIN_MANAGER", payload: true });
248
270
  }
271
+ else if (command === "btw") {
272
+ dispatch({
273
+ type: "SET_BTW_STATE",
274
+ payload: { isActive: true, question: "", isLoading: false },
275
+ });
276
+ }
249
277
  }
250
278
  })();
251
279
  dispatch({ type: "CANCEL_COMMAND_SELECTOR" });
@@ -321,9 +349,11 @@ export const handleSelectorInput = (state, dispatch, callbacks, input, key) => {
321
349
  if (input === " ") {
322
350
  if (state.showFileSelector) {
323
351
  dispatch({ type: "CANCEL_FILE_SELECTOR" });
352
+ return false;
324
353
  }
325
354
  else if (state.showCommandSelector) {
326
355
  dispatch({ type: "CANCEL_COMMAND_SELECTOR" });
356
+ return false;
327
357
  }
328
358
  }
329
359
  if (input &&
@@ -475,6 +505,36 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
475
505
  if (state.selectorJustUsed) {
476
506
  return true;
477
507
  }
508
+ if (state.btwState.isActive) {
509
+ if (key.escape) {
510
+ dispatch({
511
+ type: "SET_BTW_STATE",
512
+ payload: {
513
+ isActive: false,
514
+ question: "",
515
+ answer: undefined,
516
+ isLoading: false,
517
+ },
518
+ });
519
+ return true;
520
+ }
521
+ if (key.return) {
522
+ if (state.inputText.trim() && !state.btwState.isLoading) {
523
+ dispatch({
524
+ type: "SET_BTW_STATE",
525
+ payload: {
526
+ question: state.inputText.trim(),
527
+ isLoading: true,
528
+ answer: undefined,
529
+ },
530
+ });
531
+ dispatch({ type: "CLEAR_INPUT" });
532
+ }
533
+ return true;
534
+ }
535
+ // Handle normal input for the question
536
+ return await handleNormalInput(state, dispatch, callbacks, input, key, clearImages);
537
+ }
478
538
  if (key.escape) {
479
539
  if (!(state.showFileSelector ||
480
540
  state.showCommandSelector ||
@@ -484,13 +544,14 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
484
544
  state.showRewindManager ||
485
545
  state.showHelp ||
486
546
  state.showStatusCommand ||
487
- state.showPluginManager)) {
547
+ state.showPluginManager ||
548
+ state.btwState.isActive)) {
488
549
  callbacks.onAbortMessage?.();
489
550
  return true;
490
551
  }
491
552
  }
492
553
  if (key.tab && key.shift) {
493
- cyclePermissionMode(state.permissionMode, dispatch, callbacks);
554
+ cyclePermissionMode(state.permissionMode, dispatch, callbacks, state.allowBypassInCycle);
494
555
  return true;
495
556
  }
496
557
  if (state.showFileSelector ||
@@ -501,13 +562,15 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
501
562
  state.showRewindManager ||
502
563
  state.showHelp ||
503
564
  state.showStatusCommand ||
504
- state.showPluginManager) {
565
+ state.showPluginManager ||
566
+ state.btwState.isActive) {
505
567
  if (state.showBackgroundTaskManager ||
506
568
  state.showMcpManager ||
507
569
  state.showRewindManager ||
508
570
  state.showHelp ||
509
571
  state.showStatusCommand ||
510
- state.showPluginManager) {
572
+ state.showPluginManager ||
573
+ state.btwState.isActive) {
511
574
  return true;
512
575
  }
513
576
  if (state.showHistorySearch) {
@@ -4,6 +4,12 @@ export interface AttachedImage {
4
4
  path: string;
5
5
  mimeType: string;
6
6
  }
7
+ export interface BtwState {
8
+ isActive: boolean;
9
+ question: string;
10
+ answer?: string;
11
+ isLoading: boolean;
12
+ }
7
13
  export interface InputManagerCallbacks {
8
14
  onInputTextChange?: (text: string) => void;
9
15
  onCursorPositionChange?: (position: number) => void;
@@ -25,6 +31,9 @@ export interface InputManagerCallbacks {
25
31
  onAbortMessage?: () => void;
26
32
  onBackgroundCurrentTask?: () => void;
27
33
  onPermissionModeChange?: (mode: PermissionMode) => void;
34
+ onAskBtw?: (question: string) => Promise<string>;
35
+ btwState?: BtwState;
36
+ onBtwStateChange?: (payload: Partial<BtwState>) => void;
28
37
  sessionId?: string;
29
38
  workdir?: string;
30
39
  getFullMessageThread?: () => Promise<{
@@ -56,6 +65,7 @@ export interface InputState {
56
65
  showStatusCommand: boolean;
57
66
  showPluginManager: boolean;
58
67
  permissionMode: PermissionMode;
68
+ allowBypassInCycle: boolean;
59
69
  selectorJustUsed: boolean;
60
70
  isPasting: boolean;
61
71
  pasteBuffer: string;
@@ -65,6 +75,7 @@ export interface InputState {
65
75
  originalInputText: string;
66
76
  originalLongTextMap: Record<string, string>;
67
77
  isFileSearching: boolean;
78
+ btwState: BtwState;
68
79
  }
69
80
  export declare const initialState: InputState;
70
81
  export type InputAction = {
@@ -139,6 +150,9 @@ export type InputAction = {
139
150
  } | {
140
151
  type: "SET_PERMISSION_MODE";
141
152
  payload: PermissionMode;
153
+ } | {
154
+ type: "SET_ALLOW_BYPASS_IN_CYCLE";
155
+ payload: boolean;
142
156
  } | {
143
157
  type: "SET_SELECTOR_JUST_USED";
144
158
  payload: boolean;
@@ -177,6 +191,9 @@ export type InputAction = {
177
191
  } | {
178
192
  type: "SELECT_HISTORY_ENTRY";
179
193
  payload: PromptEntry;
194
+ } | {
195
+ type: "SET_BTW_STATE";
196
+ payload: Partial<BtwState>;
180
197
  };
181
198
  export declare function inputReducer(state: InputState, action: InputAction): InputState;
182
199
  //# sourceMappingURL=inputReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputReducer.d.ts","sourceRoot":"","sources":["../../src/managers/inputReducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputReducer.d.ts","sourceRoot":"","sources":["../../src/managers/inputReducer.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export const initialState = {
21
21
  showStatusCommand: false,
22
22
  showPluginManager: false,
23
23
  permissionMode: "default",
24
+ allowBypassInCycle: false,
24
25
  selectorJustUsed: false,
25
26
  isPasting: false,
26
27
  pasteBuffer: "",
@@ -30,6 +31,11 @@ export const initialState = {
30
31
  originalInputText: "",
31
32
  originalLongTextMap: {},
32
33
  isFileSearching: false,
34
+ btwState: {
35
+ isActive: false,
36
+ question: "",
37
+ isLoading: false,
38
+ },
33
39
  };
34
40
  export function inputReducer(state, action) {
35
41
  switch (action.type) {
@@ -195,6 +201,8 @@ export function inputReducer(state, action) {
195
201
  };
196
202
  case "SET_PERMISSION_MODE":
197
203
  return { ...state, permissionMode: action.payload };
204
+ case "SET_ALLOW_BYPASS_IN_CYCLE":
205
+ return { ...state, allowBypassInCycle: action.payload };
198
206
  case "SET_SELECTOR_JUST_USED":
199
207
  return { ...state, selectorJustUsed: action.payload };
200
208
  case "INSERT_TEXT_WITH_PLACEHOLDER": {
@@ -335,6 +343,14 @@ export function inputReducer(state, action) {
335
343
  originalInputText: "",
336
344
  originalLongTextMap: {},
337
345
  };
346
+ case "SET_BTW_STATE":
347
+ return {
348
+ ...state,
349
+ btwState: {
350
+ ...state.btwState,
351
+ ...action.payload,
352
+ },
353
+ };
338
354
  default:
339
355
  return state;
340
356
  }
@@ -0,0 +1,2 @@
1
+ export declare function isUpdateAvailable(currentVersion: string, latestVersion: string): boolean;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAET"}
@@ -0,0 +1,4 @@
1
+ import semver from "semver";
2
+ export function isUpdateAvailable(currentVersion, latestVersion) {
3
+ return semver.gt(latestVersion, currentVersion);
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wave-code",
3
- "version": "0.11.5",
3
+ "version": "0.11.7",
4
4
  "description": "CLI-based code assistant powered by AI, built with React and Ink",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,12 +39,14 @@
39
39
  "node-html-parser": "^7.0.2",
40
40
  "react": "^19.2.4",
41
41
  "react-dom": "19.2.4",
42
+ "semver": "^7.7.4",
42
43
  "yargs": "^17.7.2",
43
44
  "zod": "^3.23.8",
44
- "wave-agent-sdk": "0.11.5"
45
+ "wave-agent-sdk": "0.11.7"
45
46
  },
46
47
  "devDependencies": {
47
48
  "@types/react": "^19.1.8",
49
+ "@types/semver": "^7.7.1",
48
50
  "@types/yargs": "^17.0.0",
49
51
  "@vitest/coverage-v8": "^4.0.18",
50
52
  "eslint-plugin-react": "^7.37.5",
package/src/acp/agent.ts CHANGED
@@ -669,6 +669,16 @@ export class WaveAcpAgent implements AcpAgent {
669
669
  },
670
670
  });
671
671
  }
672
+
673
+ if (contents.length === 0) {
674
+ contents.push({
675
+ type: "content",
676
+ content: {
677
+ type: "text",
678
+ text: "```json\n" + JSON.stringify(parameters, null, 2) + "\n```",
679
+ },
680
+ });
681
+ }
672
682
  }
673
683
 
674
684
  if (shortResult) {
@@ -0,0 +1,116 @@
1
+ import { spawnSync } from "child_process";
2
+ import { readFileSync } from "fs";
3
+ import path from "path";
4
+ import { fileURLToPath } from "url";
5
+ import https from "https";
6
+ import chalk from "chalk";
7
+ import { isUpdateAvailable } from "../utils/version.js";
8
+
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ const packageJsonPath = path.resolve(__dirname, "../../package.json");
11
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
12
+ const currentVersion = packageJson.version;
13
+
14
+ async function getLatestVersion(): Promise<string> {
15
+ return new Promise((resolve, reject) => {
16
+ https
17
+ .get("https://registry.npmjs.org/wave-code/latest", (res) => {
18
+ let data = "";
19
+ res.on("data", (chunk) => {
20
+ data += chunk;
21
+ });
22
+ res.on("end", () => {
23
+ try {
24
+ const json = JSON.parse(data);
25
+ resolve(json.version);
26
+ } catch {
27
+ reject(new Error("Failed to parse npm registry response"));
28
+ }
29
+ });
30
+ })
31
+ .on("error", (err) => {
32
+ reject(err);
33
+ });
34
+ });
35
+ }
36
+
37
+ function detectPackageManager(): "npm" | "pnpm" | "yarn" {
38
+ // Check if wave-code is installed globally with pnpm
39
+ const pnpmList = spawnSync("pnpm", ["list", "-g", "wave-code"], {
40
+ encoding: "utf-8",
41
+ });
42
+ if (pnpmList.status === 0 && pnpmList.stdout?.includes("wave-code")) {
43
+ return "pnpm";
44
+ }
45
+
46
+ // Check if wave-code is installed globally with yarn
47
+ const yarnList = spawnSync("yarn", ["global", "list"], { encoding: "utf-8" });
48
+ if (yarnList.status === 0 && yarnList.stdout?.includes("wave-code")) {
49
+ return "yarn";
50
+ }
51
+
52
+ // Default to npm
53
+ return "npm";
54
+ }
55
+
56
+ export async function updateCommand() {
57
+ console.log(chalk.blue(`Checking for updates...`));
58
+ console.log(chalk.dim(`Current version: ${currentVersion}`));
59
+
60
+ try {
61
+ const latestVersion = await getLatestVersion();
62
+ console.log(chalk.dim(`Latest version: ${latestVersion}`));
63
+
64
+ if (!isUpdateAvailable(currentVersion, latestVersion)) {
65
+ console.log(chalk.green("WAVE Code is already up to date!"));
66
+ process.exit(0);
67
+ }
68
+
69
+ console.log(
70
+ chalk.yellow(`A new version of WAVE Code is available: ${latestVersion}`),
71
+ );
72
+
73
+ const packageManager = detectPackageManager();
74
+ let updateCmd: string;
75
+ let args: string[];
76
+
77
+ if (packageManager === "pnpm") {
78
+ updateCmd = "pnpm";
79
+ args = ["add", "-g", "wave-code@latest"];
80
+ } else if (packageManager === "yarn") {
81
+ updateCmd = "yarn";
82
+ args = ["global", "add", "wave-code@latest"];
83
+ } else {
84
+ updateCmd = "npm";
85
+ args = ["install", "-g", "wave-code@latest"];
86
+ }
87
+
88
+ console.log(chalk.blue(`Updating WAVE Code using ${packageManager}...`));
89
+ console.log(chalk.dim(`Running: ${updateCmd} ${args.join(" ")}`));
90
+
91
+ const result = spawnSync(updateCmd, args, { stdio: "inherit" });
92
+
93
+ if (result.status === 0) {
94
+ console.log(chalk.green("WAVE Code updated successfully!"));
95
+ process.exit(0);
96
+ } else {
97
+ console.log(chalk.red("Failed to update WAVE Code."));
98
+ console.log(
99
+ chalk.yellow(
100
+ `Please try running the update command manually: ${updateCmd} ${args.join(" ")}`,
101
+ ),
102
+ );
103
+ if (process.platform !== "win32") {
104
+ console.log(
105
+ chalk.yellow(
106
+ "You might need to run it with sudo if you encounter permission issues.",
107
+ ),
108
+ );
109
+ }
110
+ process.exit(1);
111
+ }
112
+ } catch (error) {
113
+ console.error(chalk.red("Error checking for updates:"), error);
114
+ process.exit(1);
115
+ }
116
+ }
@@ -133,7 +133,7 @@ const ChatInterfaceWithRemount: React.FC = () => {
133
133
 
134
134
  if (newKey !== remountKey) {
135
135
  const timeout = setTimeout(() => {
136
- stdout?.write("\u001b[2J\u001b[0;0H", (err?: Error | null) => {
136
+ stdout?.write("\u001b[2J\u001b[3J\u001b[0;0H", (err?: Error | null) => {
137
137
  if (err) {
138
138
  console.error("Failed to clear terminal:", err);
139
139
  }
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ import { Box, Text } from "ink";
3
+ import { Markdown } from "./Markdown.js";
4
+ import { BtwState } from "../managers/inputReducer.js";
5
+
6
+ interface BtwDisplayProps {
7
+ btwState: BtwState;
8
+ }
9
+
10
+ export const BtwDisplay: React.FC<BtwDisplayProps> = ({ btwState }) => {
11
+ if (!btwState.isActive) {
12
+ return null;
13
+ }
14
+
15
+ return (
16
+ <Box flexDirection="column" marginTop={0} marginBottom={1}>
17
+ {btwState.question && (
18
+ <Box>
19
+ <Text color={btwState.isLoading ? "yellow" : "green"}>● </Text>
20
+ <Text italic color="gray">
21
+ /btw {btwState.question}
22
+ </Text>
23
+ </Box>
24
+ )}
25
+
26
+ {btwState.answer && (
27
+ <Box flexDirection="column">
28
+ <Markdown>{btwState.answer}</Markdown>
29
+ </Box>
30
+ )}
31
+ </Box>
32
+ );
33
+ };
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useCallback, useLayoutEffect } from "react";
2
2
  import { Box, useStdout } from "ink";
3
3
  import { MessageList } from "./MessageList.js";
4
+ import { BtwDisplay } from "./BtwDisplay.js";
4
5
  import { InputBox } from "./InputBox.js";
5
6
  import { LoadingIndicator } from "./LoadingIndicator.js";
6
7
  import { TaskList } from "./TaskList.js";
@@ -41,6 +42,7 @@ export const ChatInterface: React.FC = () => {
41
42
  version,
42
43
  workdir,
43
44
  getModelConfig,
45
+ btwState,
44
46
  } = useChat();
45
47
 
46
48
  const model = getModelConfig().model;
@@ -127,17 +129,32 @@ export const ChatInterface: React.FC = () => {
127
129
  onDynamicBlocksHeightMeasured={handleDynamicBlocksHeightMeasured}
128
130
  />
129
131
 
130
- {(isLoading || isCommandRunning || isCompressing) &&
131
- !isConfirmationVisible &&
132
- !isExpanded && (
133
- <LoadingIndicator
132
+ {!isConfirmationVisible && !isExpanded && (
133
+ <>
134
+ <BtwDisplay btwState={btwState} />
135
+ {(isLoading || isCommandRunning || isCompressing) && (
136
+ <LoadingIndicator
137
+ isLoading={isLoading}
138
+ isCommandRunning={isCommandRunning}
139
+ isCompressing={isCompressing}
140
+ latestTotalTokens={latestTotalTokens}
141
+ />
142
+ )}
143
+ <TaskList />
144
+ <QueuedMessageList />
145
+ <InputBox
134
146
  isLoading={isLoading}
135
147
  isCommandRunning={isCommandRunning}
136
- isCompressing={isCompressing}
137
- latestTotalTokens={latestTotalTokens}
148
+ sendMessage={sendMessage}
149
+ abortMessage={abortMessage}
150
+ mcpServers={mcpServers}
151
+ connectMcpServer={connectMcpServer}
152
+ disconnectMcpServer={disconnectMcpServer}
153
+ slashCommands={slashCommands}
154
+ hasSlashCommand={hasSlashCommand}
138
155
  />
139
- )}
140
- {!isConfirmationVisible && !isExpanded && <TaskList />}
156
+ </>
157
+ )}
141
158
 
142
159
  {isConfirmationVisible && (
143
160
  <>
@@ -162,23 +179,6 @@ export const ChatInterface: React.FC = () => {
162
179
  />
163
180
  </>
164
181
  )}
165
-
166
- {!isConfirmationVisible && !isExpanded && (
167
- <>
168
- <QueuedMessageList />
169
- <InputBox
170
- isLoading={isLoading}
171
- isCommandRunning={isCommandRunning}
172
- sendMessage={sendMessage}
173
- abortMessage={abortMessage}
174
- mcpServers={mcpServers}
175
- connectMcpServer={connectMcpServer}
176
- disconnectMcpServer={disconnectMcpServer}
177
- slashCommands={slashCommands}
178
- hasSlashCommand={hasSlashCommand}
179
- />
180
- </>
181
- )}
182
182
  </Box>
183
183
  );
184
184
  };
@@ -9,6 +9,7 @@ import {
9
9
  } from "wave-agent-sdk";
10
10
  import { DiffDisplay } from "./DiffDisplay.js";
11
11
  import { PlanDisplay } from "./PlanDisplay.js";
12
+ import { highlightToAnsi } from "../utils/highlightUtils.js";
12
13
 
13
14
  // Helper function to generate descriptive action text
14
15
  const getActionDescription = (
@@ -87,6 +88,19 @@ export const ConfirmationDetails: React.FC<ConfirmationDetailsProps> = ({
87
88
  startLineNumber={startLineNumber}
88
89
  />
89
90
 
91
+ {toolName !== WRITE_TOOL_NAME &&
92
+ toolName !== EDIT_TOOL_NAME &&
93
+ toolName !== EXIT_PLAN_MODE_TOOL_NAME &&
94
+ toolName !== ASK_USER_QUESTION_TOOL_NAME &&
95
+ toolName !== BASH_TOOL_NAME &&
96
+ !!toolInput && (
97
+ <Box paddingLeft={2} borderLeft borderColor="cyan">
98
+ <Text>
99
+ {highlightToAnsi(JSON.stringify(toolInput, null, 2), "json")}
100
+ </Text>
101
+ </Box>
102
+ )}
103
+
90
104
  {toolName !== ASK_USER_QUESTION_TOOL_NAME &&
91
105
  toolName === EXIT_PLAN_MODE_TOOL_NAME &&
92
106
  !!planContent && (