wave-code 0.11.7 → 0.12.1
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/README.md +9 -51
- package/dist/acp/agent.js +1 -1
- package/dist/components/ChatInterface.d.ts.map +1 -1
- package/dist/components/ChatInterface.js +2 -3
- package/dist/components/DiffDisplay.d.ts.map +1 -1
- package/dist/components/DiffDisplay.js +2 -23
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +6 -2
- package/dist/components/MessageBlockItem.d.ts.map +1 -1
- package/dist/components/MessageBlockItem.js +2 -1
- package/dist/components/MessageList.d.ts +1 -2
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js +10 -4
- package/dist/components/ModelSelector.d.ts +9 -0
- package/dist/components/ModelSelector.d.ts.map +1 -0
- package/dist/components/ModelSelector.js +34 -0
- package/dist/components/SlashDisplay.d.ts +9 -0
- package/dist/components/SlashDisplay.d.ts.map +1 -0
- package/dist/components/SlashDisplay.js +20 -0
- package/dist/components/StatusCommand.d.ts.map +1 -1
- package/dist/components/StatusCommand.js +1 -1
- package/dist/components/ToolDisplay.js +1 -1
- package/dist/constants/commands.d.ts.map +1 -1
- package/dist/constants/commands.js +6 -0
- package/dist/contexts/useChat.d.ts +4 -2
- package/dist/contexts/useChat.d.ts.map +1 -1
- package/dist/contexts/useChat.js +27 -33
- package/dist/hooks/useInputManager.d.ts +2 -0
- package/dist/hooks/useInputManager.d.ts.map +1 -1
- package/dist/hooks/useInputManager.js +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/managers/inputHandlers.d.ts.map +1 -1
- package/dist/managers/inputHandlers.js +6 -0
- package/dist/managers/inputReducer.d.ts +5 -0
- package/dist/managers/inputReducer.d.ts.map +1 -1
- package/dist/managers/inputReducer.js +7 -0
- package/dist/utils/highlightUtils.d.ts.map +1 -1
- package/dist/utils/highlightUtils.js +0 -8
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +10 -5
- package/dist/utils/toolParameterTransforms.d.ts +5 -1
- package/dist/utils/toolParameterTransforms.d.ts.map +1 -1
- package/dist/utils/toolParameterTransforms.js +14 -0
- package/dist/utils/worktree.d.ts +0 -1
- package/dist/utils/worktree.d.ts.map +1 -1
- package/dist/utils/worktree.js +2 -2
- package/package.json +3 -3
- package/src/acp/agent.ts +1 -1
- package/src/components/ChatInterface.tsx +0 -4
- package/src/components/DiffDisplay.tsx +2 -27
- package/src/components/InputBox.tsx +17 -0
- package/src/components/MessageBlockItem.tsx +5 -5
- package/src/components/MessageList.tsx +15 -9
- package/src/components/ModelSelector.tsx +109 -0
- package/src/components/SlashDisplay.tsx +70 -0
- package/src/components/StatusCommand.tsx +7 -0
- package/src/components/ToolDisplay.tsx +1 -1
- package/src/constants/commands.ts +6 -0
- package/src/contexts/useChat.tsx +34 -49
- package/src/hooks/useInputManager.ts +10 -0
- package/src/index.ts +13 -0
- package/src/managers/inputHandlers.ts +5 -0
- package/src/managers/inputReducer.ts +10 -0
- package/src/utils/highlightUtils.ts +0 -8
- package/src/utils/logger.ts +9 -7
- package/src/utils/toolParameterTransforms.ts +23 -1
- package/src/utils/worktree.ts +7 -3
|
@@ -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,EAGL,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EACd,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,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,EAGL,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,cAAc,EACd,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,eAAe,GAC1B,YAAW,OAAO,CAAC,qBAAqB,CAAM;;;;;;;;;;;;;;;;;;;;;;;;+BA0LA,MAAM;;;;;qCAoBA,MAAM;iCAIV,MAAM;;;;;mCAaJ,MAAM;oCAIL,MAAM;wCAIF,MAAM;mCAIX,MAAM;;;;mCASN,MAAM;;;;;sCAkCH,MAAM;uCAIL,MAAM;uCAQN,WAAW;;iCAQjB,MAAM;yCAYE,OAAO;8BAIlB,OAAO;iCAIJ,OAAO;wBAIhB,OAAO;iCAIE,OAAO;iCAIP,OAAO;iCAIP,OAAO;8BAIV,cAAc;mCAKT,OAAO;2BAK7C,OAAO,CAAC,OAAO,6BAA6B,EAAE,QAAQ,CAAC;0BAU1B,MAAM,YAAY,MAAM;2BAIvB,MAAM;;;8BAYH,MAAM;mCAW/B,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;uCAYnB,MAAM;;yBAajD,MAAM,OACR,GAAG,kBACQ,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,gBACvD,MAAM,IAAI;yBA/GY,MAAM;kCAIG,MAAM;;CAkNxD,CAAC"}
|
|
@@ -100,6 +100,9 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
100
100
|
useEffect(() => {
|
|
101
101
|
callbacksRef.current.onPluginManagerStateChange?.(state.showPluginManager);
|
|
102
102
|
}, [state.showPluginManager]);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
callbacksRef.current.onModelSelectorStateChange?.(state.showModelSelector);
|
|
105
|
+
}, [state.showModelSelector]);
|
|
103
106
|
useEffect(() => {
|
|
104
107
|
callbacksRef.current.onImagesStateChange?.(state.attachedImages);
|
|
105
108
|
}, [state.attachedImages]);
|
|
@@ -238,6 +241,9 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
238
241
|
const setShowPluginManager = useCallback((show) => {
|
|
239
242
|
dispatch({ type: "SET_SHOW_PLUGIN_MANAGER", payload: show });
|
|
240
243
|
}, []);
|
|
244
|
+
const setShowModelSelector = useCallback((show) => {
|
|
245
|
+
dispatch({ type: "SET_SHOW_MODEL_SELECTOR", payload: show });
|
|
246
|
+
}, []);
|
|
241
247
|
const setPermissionMode = useCallback((mode) => {
|
|
242
248
|
dispatch({ type: "SET_PERMISSION_MODE", payload: mode });
|
|
243
249
|
callbacksRef.current.onPermissionModeChange?.(mode);
|
|
@@ -300,6 +306,7 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
300
306
|
showHelp: state.showHelp,
|
|
301
307
|
showStatusCommand: state.showStatusCommand,
|
|
302
308
|
showPluginManager: state.showPluginManager,
|
|
309
|
+
showModelSelector: state.showModelSelector,
|
|
303
310
|
permissionMode: state.permissionMode,
|
|
304
311
|
attachedImages: state.attachedImages,
|
|
305
312
|
btwState: state.btwState,
|
|
@@ -335,6 +342,7 @@ export const useInputManager = (callbacks = {}) => {
|
|
|
335
342
|
setShowHelp,
|
|
336
343
|
setShowStatusCommand,
|
|
337
344
|
setShowPluginManager,
|
|
345
|
+
setShowModelSelector,
|
|
338
346
|
setPermissionMode,
|
|
339
347
|
setAllowBypassInCycle,
|
|
340
348
|
setBtwState,
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,wBAAsB,IAAI,kBAgYzB;AAGD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import yargs from "yargs";
|
|
2
2
|
import { hideBin } from "yargs/helpers";
|
|
3
3
|
import { startCli } from "./cli.js";
|
|
4
|
+
import { logger } from "./utils/logger.js";
|
|
4
5
|
import { generateRandomName } from "wave-agent-sdk";
|
|
5
6
|
import { createWorktree } from "./utils/worktree.js";
|
|
6
7
|
import path from "path";
|
|
@@ -12,6 +13,15 @@ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
|
12
13
|
const version = packageJson.version;
|
|
13
14
|
// Export main function for external use
|
|
14
15
|
export async function main() {
|
|
16
|
+
// Start memory monitoring in debug mode
|
|
17
|
+
if (process.env.LOG_LEVEL === "DEBUG") {
|
|
18
|
+
setInterval(() => {
|
|
19
|
+
const usage = process.memoryUsage();
|
|
20
|
+
logger.debug(`[Memory] RSS: ${Math.round(usage.rss / 1024 / 1024)}MB, ` +
|
|
21
|
+
`Heap: ${Math.round(usage.heapUsed / 1024 / 1024)}/${Math.round(usage.heapTotal / 1024 / 1024)}MB, ` +
|
|
22
|
+
`External: ${Math.round(usage.external / 1024 / 1024)}MB`);
|
|
23
|
+
}, 10000).unref();
|
|
24
|
+
}
|
|
15
25
|
try {
|
|
16
26
|
const originalCwd = process.cwd();
|
|
17
27
|
const argv = await yargs(hideBin(process.argv))
|
|
@@ -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,CA8Dd,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,EACzC,qBAAoB,OAAe,SAiBpC,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;;;
|
|
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,CA8Dd,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,EACzC,qBAAoB,OAAe,SAiBpC,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;;;CA2DhB,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,OA8EF,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,CAyIjB,CAAC"}
|
|
@@ -268,6 +268,9 @@ export const handleCommandSelect = (state, dispatch, callbacks, command) => {
|
|
|
268
268
|
else if (command === "plugin") {
|
|
269
269
|
dispatch({ type: "SET_SHOW_PLUGIN_MANAGER", payload: true });
|
|
270
270
|
}
|
|
271
|
+
else if (command === "model") {
|
|
272
|
+
dispatch({ type: "SET_SHOW_MODEL_SELECTOR", payload: true });
|
|
273
|
+
}
|
|
271
274
|
else if (command === "btw") {
|
|
272
275
|
dispatch({
|
|
273
276
|
type: "SET_BTW_STATE",
|
|
@@ -545,6 +548,7 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
|
|
|
545
548
|
state.showHelp ||
|
|
546
549
|
state.showStatusCommand ||
|
|
547
550
|
state.showPluginManager ||
|
|
551
|
+
state.showModelSelector ||
|
|
548
552
|
state.btwState.isActive)) {
|
|
549
553
|
callbacks.onAbortMessage?.();
|
|
550
554
|
return true;
|
|
@@ -563,6 +567,7 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
|
|
|
563
567
|
state.showHelp ||
|
|
564
568
|
state.showStatusCommand ||
|
|
565
569
|
state.showPluginManager ||
|
|
570
|
+
state.showModelSelector ||
|
|
566
571
|
state.btwState.isActive) {
|
|
567
572
|
if (state.showBackgroundTaskManager ||
|
|
568
573
|
state.showMcpManager ||
|
|
@@ -570,6 +575,7 @@ export const handleInput = async (state, dispatch, callbacks, input, key, clearI
|
|
|
570
575
|
state.showHelp ||
|
|
571
576
|
state.showStatusCommand ||
|
|
572
577
|
state.showPluginManager ||
|
|
578
|
+
state.showModelSelector ||
|
|
573
579
|
state.btwState.isActive) {
|
|
574
580
|
return true;
|
|
575
581
|
}
|
|
@@ -22,6 +22,7 @@ export interface InputManagerCallbacks {
|
|
|
22
22
|
onHelpStateChange?: (show: boolean) => void;
|
|
23
23
|
onStatusCommandStateChange?: (show: boolean) => void;
|
|
24
24
|
onPluginManagerStateChange?: (show: boolean) => void;
|
|
25
|
+
onModelSelectorStateChange?: (show: boolean) => void;
|
|
25
26
|
onImagesStateChange?: (images: AttachedImage[]) => void;
|
|
26
27
|
onSendMessage?: (content: string, images?: Array<{
|
|
27
28
|
path: string;
|
|
@@ -64,6 +65,7 @@ export interface InputState {
|
|
|
64
65
|
showHelp: boolean;
|
|
65
66
|
showStatusCommand: boolean;
|
|
66
67
|
showPluginManager: boolean;
|
|
68
|
+
showModelSelector: boolean;
|
|
67
69
|
permissionMode: PermissionMode;
|
|
68
70
|
allowBypassInCycle: boolean;
|
|
69
71
|
selectorJustUsed: boolean;
|
|
@@ -147,6 +149,9 @@ export type InputAction = {
|
|
|
147
149
|
} | {
|
|
148
150
|
type: "SET_SHOW_PLUGIN_MANAGER";
|
|
149
151
|
payload: boolean;
|
|
152
|
+
} | {
|
|
153
|
+
type: "SET_SHOW_MODEL_SELECTOR";
|
|
154
|
+
payload: boolean;
|
|
150
155
|
} | {
|
|
151
156
|
type: "SET_PERMISSION_MODE";
|
|
152
157
|
payload: PermissionMode;
|
|
@@ -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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"}
|
|
@@ -20,6 +20,7 @@ export const initialState = {
|
|
|
20
20
|
showHelp: false,
|
|
21
21
|
showStatusCommand: false,
|
|
22
22
|
showPluginManager: false,
|
|
23
|
+
showModelSelector: false,
|
|
23
24
|
permissionMode: "default",
|
|
24
25
|
allowBypassInCycle: false,
|
|
25
26
|
selectorJustUsed: false,
|
|
@@ -199,6 +200,12 @@ export function inputReducer(state, action) {
|
|
|
199
200
|
showPluginManager: action.payload,
|
|
200
201
|
selectorJustUsed: !action.payload ? true : state.selectorJustUsed,
|
|
201
202
|
};
|
|
203
|
+
case "SET_SHOW_MODEL_SELECTOR":
|
|
204
|
+
return {
|
|
205
|
+
...state,
|
|
206
|
+
showModelSelector: action.payload,
|
|
207
|
+
selectorJustUsed: !action.payload ? true : state.selectorJustUsed,
|
|
208
|
+
};
|
|
202
209
|
case "SET_PERMISSION_MODE":
|
|
203
210
|
return { ...state, permissionMode: action.payload };
|
|
204
211
|
case "SET_ALLOW_BYPASS_IN_CYCLE":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlightUtils.d.ts","sourceRoot":"","sources":["../../src/utils/highlightUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"highlightUtils.d.ts","sourceRoot":"","sources":["../../src/utils/highlightUtils.ts"],"names":[],"mappings":"AA6DA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAsCvE"}
|
|
@@ -45,14 +45,6 @@ function nodeToAnsi(node) {
|
|
|
45
45
|
const classes = node.getAttribute("class")?.split(/\s+/) || [];
|
|
46
46
|
for (const className of classes) {
|
|
47
47
|
if (theme[className]) {
|
|
48
|
-
// If content has newlines, split it and apply style to each line
|
|
49
|
-
// to ensure ANSI codes are correctly applied when splitting the final string by lines.
|
|
50
|
-
if (content.includes("\n")) {
|
|
51
|
-
return content
|
|
52
|
-
.split("\n")
|
|
53
|
-
.map((line) => theme[className](line))
|
|
54
|
-
.join("\n");
|
|
55
|
-
}
|
|
56
48
|
return theme[className](content);
|
|
57
49
|
}
|
|
58
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAsBD;;GAEG;AACH,UAAU,SAAS;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAsBD;;GAEG;AACH,UAAU,SAAS;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;AAiID;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;qBACc,OAAO,EAAE,KAAG,IAAI;IAIjC;;OAEG;oBACa,OAAO,EAAE,KAAG,IAAI;IAIhC;;OAEG;oBACa,OAAO,EAAE,KAAG,IAAI;IAIhC;;OAEG;qBACc,OAAO,EAAE,KAAG,IAAI;CAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,SAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,MAE7B,CAAC;AAEF;;GAEG;AACH,UAAU,gBAAgB;IACxB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,eAAe,OAAO,CAAC,gBAAgB,CAAC,KACvC,OAAO,CAAC,IAAI,CAiBd,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -106,20 +106,25 @@ const formatArg = (arg) => {
|
|
|
106
106
|
return "null";
|
|
107
107
|
if (arg === undefined)
|
|
108
108
|
return "undefined";
|
|
109
|
+
let result;
|
|
109
110
|
if (arg instanceof Error) {
|
|
110
111
|
// Special handling for Error objects, display stack or message
|
|
111
|
-
|
|
112
|
+
result = arg.stack || arg.message || String(arg);
|
|
112
113
|
}
|
|
113
|
-
if (typeof arg === "object") {
|
|
114
|
+
else if (typeof arg === "object") {
|
|
114
115
|
try {
|
|
115
|
-
|
|
116
|
+
result = JSON.stringify(arg);
|
|
116
117
|
}
|
|
117
118
|
catch {
|
|
118
119
|
// If JSON.stringify fails, fallback to String()
|
|
119
|
-
|
|
120
|
+
result = String(arg);
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
+
else {
|
|
124
|
+
result = String(arg);
|
|
125
|
+
}
|
|
126
|
+
// Ensure no newlines in the result to keep log entries single-line
|
|
127
|
+
return result.replace(/[\n\r]+/g, " ");
|
|
123
128
|
};
|
|
124
129
|
/**
|
|
125
130
|
* Generic log output function
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* Tool parameter transformation utilities for UI rendering
|
|
3
3
|
* Forces type judgment based on tool name using type assertions
|
|
4
4
|
*/
|
|
5
|
-
import { type Change, type EditToolParameters } from "wave-agent-sdk";
|
|
5
|
+
import { type Change, type WriteToolParameters, type EditToolParameters } from "wave-agent-sdk";
|
|
6
|
+
/**
|
|
7
|
+
* Transform Write tool parameters to changes
|
|
8
|
+
*/
|
|
9
|
+
export declare function transformWriteParameters(parameters: WriteToolParameters): Change[];
|
|
6
10
|
/**
|
|
7
11
|
* Transform Edit tool parameters to changes
|
|
8
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolParameterTransforms.d.ts","sourceRoot":"","sources":["../../src/utils/toolParameterTransforms.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"toolParameterTransforms.d.ts","sourceRoot":"","sources":["../../src/utils/toolParameterTransforms.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,MAAM,EACX,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAmBxB;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,mBAAmB,GAC9B,MAAM,EAAE,CAOV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,kBAAkB,GAC7B,MAAM,EAAE,CAOV;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,EAAE,CA8BV"}
|
|
@@ -18,6 +18,17 @@ function parseToolParameters(parameters) {
|
|
|
18
18
|
return {};
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Transform Write tool parameters to changes
|
|
23
|
+
*/
|
|
24
|
+
export function transformWriteParameters(parameters) {
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
oldContent: "", // No previous content for write operations
|
|
28
|
+
newContent: parameters.content,
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
}
|
|
21
32
|
/**
|
|
22
33
|
* Transform Edit tool parameters to changes
|
|
23
34
|
*/
|
|
@@ -41,6 +52,9 @@ export function transformToolBlockToChanges(toolName, parameters, startLineNumbe
|
|
|
41
52
|
const parsedParams = parseToolParameters(parameters);
|
|
42
53
|
let changes = [];
|
|
43
54
|
switch (toolName) {
|
|
55
|
+
case "Write":
|
|
56
|
+
changes = transformWriteParameters(parsedParams);
|
|
57
|
+
break;
|
|
44
58
|
case "Edit":
|
|
45
59
|
changes = transformEditParameters(parsedParams);
|
|
46
60
|
break;
|
package/dist/utils/worktree.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/utils/worktree.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/utils/worktree.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CA+EzE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA6D7D"}
|
package/dist/utils/worktree.js
CHANGED
|
@@ -2,7 +2,6 @@ import { execSync } from "node:child_process";
|
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { getDefaultRemoteBranch, getGitMainRepoRoot } from "wave-agent-sdk";
|
|
5
|
-
export const WORKTREE_DIR = ".wave/worktrees";
|
|
6
5
|
/**
|
|
7
6
|
* Create a new git worktree
|
|
8
7
|
* @param name Worktree name
|
|
@@ -11,7 +10,8 @@ export const WORKTREE_DIR = ".wave/worktrees";
|
|
|
11
10
|
*/
|
|
12
11
|
export function createWorktree(name, cwd) {
|
|
13
12
|
const repoRoot = getGitMainRepoRoot(cwd);
|
|
14
|
-
const
|
|
13
|
+
const projectName = path.basename(repoRoot);
|
|
14
|
+
const worktreePath = path.join(repoRoot, "..", `${projectName}.worktrees`, name);
|
|
15
15
|
const branchName = `worktree-${name}`;
|
|
16
16
|
const baseBranch = getDefaultRemoteBranch(cwd);
|
|
17
17
|
// Ensure parent directory exists
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wave-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "CLI-based code assistant powered by AI, built with React and Ink",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"semver": "^7.7.4",
|
|
43
43
|
"yargs": "^17.7.2",
|
|
44
44
|
"zod": "^3.23.8",
|
|
45
|
-
"wave-agent-sdk": "0.
|
|
45
|
+
"wave-agent-sdk": "0.12.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/react": "^19.1.8",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
},
|
|
66
66
|
"license": "MIT",
|
|
67
67
|
"scripts": {
|
|
68
|
-
"wave": "tsx --tsconfig tsconfig.dev.json src/index.ts",
|
|
68
|
+
"wave": "NODE_OPTIONS='--heapsnapshot-near-heap-limit=1' tsx --tsconfig tsconfig.dev.json src/index.ts",
|
|
69
69
|
"build": "rimraf dist && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
70
70
|
"type-check": "tsc --noEmit --incremental",
|
|
71
71
|
"watch": "tsc -p tsconfig.build.json --watch & tsc-alias -p tsconfig.build.json --watch",
|
package/src/acp/agent.ts
CHANGED
|
@@ -41,12 +41,9 @@ export const ChatInterface: React.FC = () => {
|
|
|
41
41
|
setWasLastDetailsTooTall,
|
|
42
42
|
version,
|
|
43
43
|
workdir,
|
|
44
|
-
getModelConfig,
|
|
45
44
|
btwState,
|
|
46
45
|
} = useChat();
|
|
47
46
|
|
|
48
|
-
const model = getModelConfig().model;
|
|
49
|
-
|
|
50
47
|
const displayMessages = messages;
|
|
51
48
|
|
|
52
49
|
const handleDetailsHeightMeasured = useCallback((height: number) => {
|
|
@@ -125,7 +122,6 @@ export const ChatInterface: React.FC = () => {
|
|
|
125
122
|
forceStatic={isConfirmationVisible && isConfirmationTooTall}
|
|
126
123
|
version={version}
|
|
127
124
|
workdir={workdir}
|
|
128
|
-
model={model}
|
|
129
125
|
onDynamicBlocksHeightMeasured={handleDynamicBlocksHeightMeasured}
|
|
130
126
|
/>
|
|
131
127
|
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import React, { useMemo } from "react";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
|
-
import {
|
|
4
|
-
WRITE_TOOL_NAME,
|
|
5
|
-
EDIT_TOOL_NAME,
|
|
6
|
-
type WriteToolParameters,
|
|
7
|
-
} from "wave-agent-sdk";
|
|
3
|
+
import { WRITE_TOOL_NAME, EDIT_TOOL_NAME } from "wave-agent-sdk";
|
|
8
4
|
import { transformToolBlockToChanges } from "../utils/toolParameterTransforms.js";
|
|
9
5
|
import { diffLines, diffWords } from "diff";
|
|
10
|
-
import path from "path";
|
|
11
|
-
import { Markdown } from "./Markdown.js";
|
|
12
6
|
|
|
13
7
|
interface DiffDisplayProps {
|
|
14
8
|
toolName?: string;
|
|
@@ -103,23 +97,6 @@ export const DiffDisplay: React.FC<DiffDisplayProps> = ({
|
|
|
103
97
|
}
|
|
104
98
|
};
|
|
105
99
|
|
|
106
|
-
// Render highlighted code for Write tool
|
|
107
|
-
const renderWriteContent = () => {
|
|
108
|
-
if (!parameters) return null;
|
|
109
|
-
try {
|
|
110
|
-
const parsed = JSON.parse(parameters) as WriteToolParameters;
|
|
111
|
-
const content = parsed.content || "";
|
|
112
|
-
const filePath = parsed.file_path || "";
|
|
113
|
-
const ext = path.extname(filePath).slice(1);
|
|
114
|
-
|
|
115
|
-
const markdown = `\`\`\`${ext}\n${content}\n\`\`\``;
|
|
116
|
-
return <Markdown>{markdown}</Markdown>;
|
|
117
|
-
} catch (error) {
|
|
118
|
-
console.warn("Error rendering write content:", error);
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
|
|
123
100
|
// Render expanded diff display
|
|
124
101
|
const renderExpandedDiff = () => {
|
|
125
102
|
try {
|
|
@@ -375,9 +352,7 @@ export const DiffDisplay: React.FC<DiffDisplayProps> = ({
|
|
|
375
352
|
return (
|
|
376
353
|
<Box flexDirection="column">
|
|
377
354
|
<Box paddingLeft={2} borderLeft borderColor="cyan" flexDirection="column">
|
|
378
|
-
{
|
|
379
|
-
? renderWriteContent()
|
|
380
|
-
: renderExpandedDiff()}
|
|
355
|
+
{renderExpandedDiff()}
|
|
381
356
|
</Box>
|
|
382
357
|
</Box>
|
|
383
358
|
);
|
|
@@ -10,6 +10,7 @@ import { RewindCommand } from "./RewindCommand.js";
|
|
|
10
10
|
import { HelpView } from "./HelpView.js";
|
|
11
11
|
import { StatusCommand } from "./StatusCommand.js";
|
|
12
12
|
import { PluginManagerShell } from "./PluginManagerShell.js";
|
|
13
|
+
import { ModelSelector } from "./ModelSelector.js";
|
|
13
14
|
import { StatusLine } from "./StatusLine.js";
|
|
14
15
|
import { useInputManager } from "../hooks/useInputManager.js";
|
|
15
16
|
import { useChat } from "../contexts/useChat.js";
|
|
@@ -65,6 +66,9 @@ export const InputBox: React.FC<InputBoxProps> = ({
|
|
|
65
66
|
askBtw,
|
|
66
67
|
btwState: chatBtwState,
|
|
67
68
|
setBtwState: setChatBtwState,
|
|
69
|
+
currentModel,
|
|
70
|
+
configuredModels,
|
|
71
|
+
setModel,
|
|
68
72
|
} = useChat();
|
|
69
73
|
|
|
70
74
|
// Input manager with all input state and functionality (including images)
|
|
@@ -99,12 +103,14 @@ export const InputBox: React.FC<InputBoxProps> = ({
|
|
|
99
103
|
showHelp,
|
|
100
104
|
showStatusCommand,
|
|
101
105
|
showPluginManager,
|
|
106
|
+
showModelSelector,
|
|
102
107
|
setShowBackgroundTaskManager,
|
|
103
108
|
setShowMcpManager,
|
|
104
109
|
setShowRewindManager,
|
|
105
110
|
setShowHelp,
|
|
106
111
|
setShowStatusCommand,
|
|
107
112
|
setShowPluginManager,
|
|
113
|
+
setShowModelSelector,
|
|
108
114
|
// Permission mode
|
|
109
115
|
permissionMode,
|
|
110
116
|
setPermissionMode,
|
|
@@ -205,6 +211,17 @@ export const InputBox: React.FC<InputBoxProps> = ({
|
|
|
205
211
|
return <PluginManagerShell onCancel={() => setShowPluginManager(false)} />;
|
|
206
212
|
}
|
|
207
213
|
|
|
214
|
+
if (showModelSelector) {
|
|
215
|
+
return (
|
|
216
|
+
<ModelSelector
|
|
217
|
+
onCancel={() => setShowModelSelector(false)}
|
|
218
|
+
currentModel={currentModel}
|
|
219
|
+
configuredModels={configuredModels}
|
|
220
|
+
onSelectModel={setModel}
|
|
221
|
+
/>
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
|
|
208
225
|
return (
|
|
209
226
|
<Box flexDirection="column">
|
|
210
227
|
{showFileSelector && (
|
|
@@ -3,6 +3,7 @@ import { Box, Text } from "ink";
|
|
|
3
3
|
import type { Message, MessageBlock } from "wave-agent-sdk";
|
|
4
4
|
import { MessageSource } from "wave-agent-sdk";
|
|
5
5
|
import { BangDisplay } from "./BangDisplay.js";
|
|
6
|
+
import { SlashDisplay } from "./SlashDisplay.js";
|
|
6
7
|
import { ToolDisplay } from "./ToolDisplay.js";
|
|
7
8
|
import { CompressDisplay } from "./CompressDisplay.js";
|
|
8
9
|
import { ReasoningDisplay } from "./ReasoningDisplay.js";
|
|
@@ -25,11 +26,6 @@ export const MessageBlockItem = ({
|
|
|
25
26
|
<Box flexDirection="column" paddingTop={paddingTop}>
|
|
26
27
|
{block.type === "text" && block.content.trim() && (
|
|
27
28
|
<Box>
|
|
28
|
-
{block.customCommandContent && (
|
|
29
|
-
<Text color="cyan" bold>
|
|
30
|
-
${" "}
|
|
31
|
-
</Text>
|
|
32
|
-
)}
|
|
33
29
|
{block.source === MessageSource.HOOK && (
|
|
34
30
|
<Text color="magenta" bold>
|
|
35
31
|
~{" "}
|
|
@@ -48,6 +44,10 @@ export const MessageBlockItem = ({
|
|
|
48
44
|
</Box>
|
|
49
45
|
)}
|
|
50
46
|
|
|
47
|
+
{block.type === "slash" && (
|
|
48
|
+
<SlashDisplay block={block} isExpanded={isExpanded} />
|
|
49
|
+
)}
|
|
50
|
+
|
|
51
51
|
{block.type === "error" && (
|
|
52
52
|
<Box>
|
|
53
53
|
<Text color="red">Error: {block.content}</Text>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useLayoutEffect, useRef } from "react";
|
|
2
2
|
import os from "os";
|
|
3
3
|
import { Box, Text, Static, measureElement } from "ink";
|
|
4
|
-
import type { Message } from "wave-agent-sdk";
|
|
4
|
+
import type { Message, MessageBlock } from "wave-agent-sdk";
|
|
5
5
|
import { MessageBlockItem } from "./MessageBlockItem.js";
|
|
6
6
|
|
|
7
7
|
export interface MessageListProps {
|
|
@@ -10,7 +10,6 @@ export interface MessageListProps {
|
|
|
10
10
|
forceStatic?: boolean;
|
|
11
11
|
version?: string;
|
|
12
12
|
workdir?: string;
|
|
13
|
-
model?: string;
|
|
14
13
|
onDynamicBlocksHeightMeasured?: (height: number) => void;
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -21,15 +20,11 @@ export const MessageList = React.memo(
|
|
|
21
20
|
forceStatic = false,
|
|
22
21
|
version,
|
|
23
22
|
workdir,
|
|
24
|
-
model,
|
|
25
23
|
onDynamicBlocksHeightMeasured,
|
|
26
24
|
}: MessageListProps) => {
|
|
27
25
|
const welcomeMessage = (
|
|
28
26
|
<Box flexDirection="column" paddingTop={1}>
|
|
29
|
-
<Text color="gray">
|
|
30
|
-
WAVE{version ? ` v${version}` : ""}
|
|
31
|
-
{model ? ` • ${model}` : ""}
|
|
32
|
-
</Text>
|
|
27
|
+
<Text color="gray">WAVE{version ? ` v${version}` : ""}</Text>
|
|
33
28
|
{workdir && (
|
|
34
29
|
<Text color="gray" wrap="truncate-middle">
|
|
35
30
|
{workdir.replace(os.homedir(), "~")}
|
|
@@ -44,6 +39,18 @@ export const MessageList = React.memo(
|
|
|
44
39
|
// Filter out meta messages
|
|
45
40
|
const visibleMessages = messages.filter((m) => !m.isMeta);
|
|
46
41
|
|
|
42
|
+
const isRunning = (b: MessageBlock) =>
|
|
43
|
+
(b.type === "tool" && b.stage === "running") ||
|
|
44
|
+
(b.type === "bang" && b.isRunning) ||
|
|
45
|
+
(b.type === "slash" && b.stage === "running");
|
|
46
|
+
|
|
47
|
+
const messagesWithRunningBlocks = new Set(
|
|
48
|
+
visibleMessages
|
|
49
|
+
.map((m, i) => ({ m, i }))
|
|
50
|
+
.filter(({ m }) => m.blocks.some(isRunning))
|
|
51
|
+
.map(({ i }) => i),
|
|
52
|
+
);
|
|
53
|
+
|
|
47
54
|
// Flatten messages into blocks with metadata
|
|
48
55
|
const allBlocks = visibleMessages.flatMap((message, messageIndex) => {
|
|
49
56
|
return message.blocks.map((block, blockIndex) => ({
|
|
@@ -60,8 +67,7 @@ export const MessageList = React.memo(
|
|
|
60
67
|
const { block } = item;
|
|
61
68
|
const isDynamic =
|
|
62
69
|
!forceStatic &&
|
|
63
|
-
((
|
|
64
|
-
(block.type === "bang" && block.isRunning));
|
|
70
|
+
(messagesWithRunningBlocks.has(item.messageIndex) || isRunning(block));
|
|
65
71
|
return { ...item, isDynamic };
|
|
66
72
|
});
|
|
67
73
|
|