wave-code 0.17.6 → 0.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"inputHandlers.d.ts","sourceRoot":"","sources":["../../src/managers/inputHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputHandlers.d.ts","sourceRoot":"","sources":["../../src/managers/inputHandlers.ts"],"names":[],"mappings":"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"}
@@ -273,6 +273,15 @@ export const handleCommandSelect = (state, dispatch, callbacks, command) => {
273
273
  else if (command === "workflows") {
274
274
  dispatch({ type: "SET_SHOW_WORKFLOW_MANAGER", payload: true });
275
275
  }
276
+ else if (command === "clear") {
277
+ await callbacks.onClearMessages?.();
278
+ }
279
+ else if (command === "compact") {
280
+ await callbacks.onCompact?.();
281
+ }
282
+ else if (command === "goal") {
283
+ await callbacks.onGoalCommand?.();
284
+ }
276
285
  }
277
286
  })();
278
287
  dispatch({ type: "CANCEL_COMMAND_SELECTOR" });
@@ -35,6 +35,7 @@ export type PendingEffect = {
35
35
  } | {
36
36
  type: "EXECUTE_COMMAND";
37
37
  command: string;
38
+ args?: string;
38
39
  } | {
39
40
  type: "RECALL_QUEUED_MESSAGE";
40
41
  };
@@ -62,6 +63,9 @@ export interface InputManagerCallbacks {
62
63
  onBackgroundCurrentTask?: () => void;
63
64
  onPermissionModeChange?: (mode: PermissionMode) => void;
64
65
  onAskBtw?: (question: string) => Promise<string>;
66
+ onClearMessages?: () => Promise<void>;
67
+ onCompact?: (instructions?: string) => Promise<void>;
68
+ onGoalCommand?: (args?: string) => Promise<void>;
65
69
  sessionId?: string;
66
70
  workdir?: string;
67
71
  getFullMessageThread?: () => Promise<{
@@ -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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"}
@@ -760,6 +760,10 @@ export function inputReducer(state, action) {
760
760
  : contentWithPlaceholders.substring(1, spaceIndex);
761
761
  const isInternalCommand = AVAILABLE_COMMANDS.some((cmd) => cmd.id === commandName);
762
762
  if (isInternalCommand) {
763
+ const argsText = spaceIndex === -1
764
+ ? undefined
765
+ : contentWithPlaceholders.substring(spaceIndex + 1).trim() ||
766
+ undefined;
763
767
  return {
764
768
  ...state,
765
769
  inputText: "",
@@ -769,6 +773,7 @@ export function inputReducer(state, action) {
769
773
  pendingEffect: {
770
774
  type: "EXECUTE_COMMAND",
771
775
  command: commandName,
776
+ args: argsText,
772
777
  },
773
778
  };
774
779
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wave-code",
3
- "version": "0.17.6",
3
+ "version": "0.17.7",
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.17.6"
45
+ "wave-agent-sdk": "0.17.7"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/react": "^19.1.8",
package/src/acp/agent.ts CHANGED
@@ -17,10 +17,10 @@ import {
17
17
  ASK_USER_QUESTION_TOOL_NAME,
18
18
  AskUserQuestion,
19
19
  AskUserQuestionOption,
20
- type Message,
21
20
  type TextBlock,
22
21
  type ReasoningBlock,
23
22
  type ToolBlock,
23
+ type CompactBlock,
24
24
  } from "wave-agent-sdk";
25
25
  import { logger } from "../utils/logger.js";
26
26
  import {
@@ -239,6 +239,8 @@ export class WaveAcpAgent implements AcpAgent {
239
239
  onUserMessageAdded: (params) => callbacks.onUserMessageAdded?.(params),
240
240
  onMcpServersChange: (servers) =>
241
241
  callbacks.onMcpServersChange?.(servers),
242
+ onSessionIdChange: (newSessionId: string) =>
243
+ callbacks.onSessionIdChange?.(newSessionId),
242
244
  },
243
245
  });
244
246
 
@@ -247,7 +249,8 @@ export class WaveAcpAgent implements AcpAgent {
247
249
  this.agents.set(actualSessionId, agent);
248
250
 
249
251
  // Update the callbacks object with the correct sessionId
250
- Object.assign(callbacks, this.createCallbacks(actualSessionId));
252
+ const { callbacks: cb } = this.createCallbacks(actualSessionId);
253
+ Object.assign(callbacks, cb);
251
254
 
252
255
  // Send initial available commands after agent creation
253
256
  // Use setImmediate to ensure the client receives the session response before the update
@@ -581,7 +584,16 @@ export class WaveAcpAgent implements AcpAgent {
581
584
 
582
585
  const outcome = (response as { outcome?: string }).outcome;
583
586
  if (outcome === "accepted") {
584
- return { behavior: "allow", newPermissionMode: "default" };
587
+ const mode = (response as { mode?: string }).mode;
588
+ return {
589
+ behavior: "allow",
590
+ newPermissionMode: (mode || "default") as
591
+ | "default"
592
+ | "acceptEdits"
593
+ | "plan"
594
+ | "bypassPermissions"
595
+ | "dontAsk",
596
+ };
585
597
  }
586
598
  if (outcome === "rejected") {
587
599
  const reason = (response as { reason?: string }).reason;
@@ -959,14 +971,7 @@ export class WaveAcpAgent implements AcpAgent {
959
971
  private async replayConversationHistory(agent: WaveAgent): Promise<void> {
960
972
  const sessionId = agent.sessionId as AcpSessionId;
961
973
 
962
- let history: Message[];
963
- try {
964
- const thread = await agent.getFullMessageThread();
965
- history = thread.messages;
966
- } catch {
967
- // Fallback to in-memory messages if full thread fails
968
- history = agent.messages;
969
- }
974
+ const history = agent.messages;
970
975
 
971
976
  for (const message of history) {
972
977
  if (message.isMeta) continue;
@@ -1079,14 +1084,28 @@ export class WaveAcpAgent implements AcpAgent {
1079
1084
  rawInput: parsedParameters,
1080
1085
  },
1081
1086
  });
1087
+ } else if (block.type === "compact") {
1088
+ const compactBlock = block as CompactBlock;
1089
+ this.connection.sessionUpdate({
1090
+ sessionId,
1091
+ update: {
1092
+ sessionUpdate: "agent_message_chunk",
1093
+ content: { type: "text", text: compactBlock.content },
1094
+ messageId,
1095
+ },
1096
+ });
1082
1097
  }
1083
- // Skip: image, bang, compact, error, file_history, task_notification blocks
1098
+ // Skip: image, bang, error, file_history, task_notification blocks
1084
1099
  }
1085
1100
  }
1086
1101
  }
1087
1102
 
1088
- private createCallbacks(sessionId: string): AgentOptions["callbacks"] {
1089
- const getAgent = () => this.agents.get(sessionId);
1103
+ private createCallbacks(sessionId: string): {
1104
+ callbacks: AgentOptions["callbacks"];
1105
+ sessionRef: { id: string };
1106
+ } {
1107
+ const sessionRef = { id: sessionId };
1108
+ const getAgent = () => this.agents.get(sessionRef.id);
1090
1109
  const toolStates = new Map<
1091
1110
  string,
1092
1111
  {
@@ -1097,228 +1116,262 @@ export class WaveAcpAgent implements AcpAgent {
1097
1116
  }
1098
1117
  >();
1099
1118
  return {
1100
- onAssistantContentUpdated: (chunk: string) => {
1101
- this.connection.sessionUpdate({
1102
- sessionId: sessionId as AcpSessionId,
1103
- update: {
1104
- sessionUpdate: "agent_message_chunk",
1105
- content: {
1106
- type: "text",
1107
- text: chunk,
1119
+ callbacks: {
1120
+ onAssistantContentUpdated: (chunk: string) => {
1121
+ this.connection.sessionUpdate({
1122
+ sessionId: sessionRef.id as AcpSessionId,
1123
+ update: {
1124
+ sessionUpdate: "agent_message_chunk",
1125
+ content: {
1126
+ type: "text",
1127
+ text: chunk,
1128
+ },
1108
1129
  },
1109
- },
1110
- });
1111
- },
1112
- onAssistantReasoningUpdated: (chunk: string) => {
1113
- this.connection.sessionUpdate({
1114
- sessionId: sessionId as AcpSessionId,
1115
- update: {
1116
- sessionUpdate: "agent_thought_chunk",
1117
- content: {
1118
- type: "text",
1119
- text: chunk,
1130
+ });
1131
+ },
1132
+ onAssistantReasoningUpdated: (chunk: string) => {
1133
+ this.connection.sessionUpdate({
1134
+ sessionId: sessionRef.id as AcpSessionId,
1135
+ update: {
1136
+ sessionUpdate: "agent_thought_chunk",
1137
+ content: {
1138
+ type: "text",
1139
+ text: chunk,
1140
+ },
1120
1141
  },
1121
- },
1122
- });
1123
- },
1124
- onToolBlockUpdated: (params: AgentToolBlockUpdateParams) => {
1125
- const {
1126
- id,
1127
- name,
1128
- stage,
1129
- success,
1130
- error,
1131
- result,
1132
- parameters,
1133
- compactParams,
1134
- shortResult,
1135
- startLineNumber,
1136
- } = params;
1137
-
1138
- let state = toolStates.get(id);
1139
- if (!state) {
1140
- state = {};
1141
- toolStates.set(id, state);
1142
- }
1143
- if (name) state.name = name;
1144
- if (compactParams) state.compactParams = compactParams;
1145
- if (shortResult) state.shortResult = shortResult;
1146
- if (startLineNumber !== undefined)
1147
- state.startLineNumber = startLineNumber;
1148
-
1149
- const effectiveName = state.name || name;
1150
- const effectiveCompactParams = state.compactParams || compactParams;
1151
- const effectiveShortResult = state.shortResult || shortResult;
1152
- const effectiveStartLineNumber =
1153
- state.startLineNumber !== undefined
1154
- ? state.startLineNumber
1155
- : startLineNumber;
1156
-
1157
- const displayTitle =
1158
- effectiveName && effectiveCompactParams
1159
- ? `${effectiveName}: ${effectiveCompactParams}`
1160
- : effectiveName || "Tool Call";
1161
-
1162
- let parsedParameters: Record<string, unknown> | undefined = undefined;
1163
- if (parameters) {
1164
- try {
1165
- const parsed = JSON.parse(parameters);
1166
- parsedParameters = Array.isArray(parsed)
1167
- ? { args: parsed }
1168
- : parsed;
1169
- } catch {
1170
- // Ignore parse errors during streaming
1142
+ });
1143
+ },
1144
+ onToolBlockUpdated: (params: AgentToolBlockUpdateParams) => {
1145
+ const {
1146
+ id,
1147
+ name,
1148
+ stage,
1149
+ success,
1150
+ error,
1151
+ result,
1152
+ parameters,
1153
+ compactParams,
1154
+ shortResult,
1155
+ startLineNumber,
1156
+ } = params;
1157
+
1158
+ let state = toolStates.get(id);
1159
+ if (!state) {
1160
+ state = {};
1161
+ toolStates.set(id, state);
1171
1162
  }
1172
- }
1163
+ if (name) state.name = name;
1164
+ if (compactParams) state.compactParams = compactParams;
1165
+ if (shortResult) state.shortResult = shortResult;
1166
+ if (startLineNumber !== undefined)
1167
+ state.startLineNumber = startLineNumber;
1168
+
1169
+ const effectiveName = state.name || name;
1170
+ const effectiveCompactParams = state.compactParams || compactParams;
1171
+ const effectiveShortResult = state.shortResult || shortResult;
1172
+ const effectiveStartLineNumber =
1173
+ state.startLineNumber !== undefined
1174
+ ? state.startLineNumber
1175
+ : startLineNumber;
1173
1176
 
1174
- const content =
1175
- effectiveName && (parsedParameters || effectiveShortResult)
1176
- ? this.getToolContent(
1177
- effectiveName,
1178
- parsedParameters,
1179
- effectiveShortResult,
1180
- )
1181
- : undefined;
1182
- const locations =
1183
- effectiveName && parsedParameters
1184
- ? this.getToolLocations(
1185
- effectiveName,
1186
- parsedParameters,
1187
- effectiveStartLineNumber,
1188
- )
1177
+ const displayTitle =
1178
+ effectiveName && effectiveCompactParams
1179
+ ? `${effectiveName}: ${effectiveCompactParams}`
1180
+ : effectiveName || "Tool Call";
1181
+
1182
+ let parsedParameters: Record<string, unknown> | undefined = undefined;
1183
+ if (parameters) {
1184
+ try {
1185
+ const parsed = JSON.parse(parameters);
1186
+ parsedParameters = Array.isArray(parsed)
1187
+ ? { args: parsed }
1188
+ : parsed;
1189
+ } catch {
1190
+ // Ignore parse errors during streaming
1191
+ }
1192
+ }
1193
+
1194
+ const content =
1195
+ effectiveName && (parsedParameters || effectiveShortResult)
1196
+ ? this.getToolContent(
1197
+ effectiveName,
1198
+ parsedParameters,
1199
+ effectiveShortResult,
1200
+ )
1201
+ : undefined;
1202
+ const locations =
1203
+ effectiveName && parsedParameters
1204
+ ? this.getToolLocations(
1205
+ effectiveName,
1206
+ parsedParameters,
1207
+ effectiveStartLineNumber,
1208
+ )
1209
+ : undefined;
1210
+ const kind = effectiveName
1211
+ ? this.getToolKind(effectiveName)
1189
1212
  : undefined;
1190
- const kind = effectiveName
1191
- ? this.getToolKind(effectiveName)
1192
- : undefined;
1193
1213
 
1194
- if (stage === "start") {
1214
+ if (stage === "start") {
1215
+ this.connection.sessionUpdate({
1216
+ sessionId: sessionRef.id as AcpSessionId,
1217
+ update: {
1218
+ sessionUpdate: "tool_call",
1219
+ toolCallId: id,
1220
+ title: displayTitle,
1221
+ status: "pending",
1222
+ content,
1223
+ locations,
1224
+ kind,
1225
+ rawInput: parsedParameters,
1226
+ },
1227
+ });
1228
+ return;
1229
+ }
1230
+
1231
+ if (stage === "streaming") {
1232
+ // We don't support streaming tool arguments in ACP yet
1233
+ return;
1234
+ }
1235
+
1236
+ const status: ToolCallStatus =
1237
+ stage === "end"
1238
+ ? success
1239
+ ? "completed"
1240
+ : "failed"
1241
+ : stage === "running"
1242
+ ? "in_progress"
1243
+ : "pending";
1244
+
1195
1245
  this.connection.sessionUpdate({
1196
- sessionId: sessionId as AcpSessionId,
1246
+ sessionId: sessionRef.id as AcpSessionId,
1197
1247
  update: {
1198
- sessionUpdate: "tool_call",
1248
+ sessionUpdate: "tool_call_update",
1199
1249
  toolCallId: id,
1250
+ status,
1200
1251
  title: displayTitle,
1201
- status: "pending",
1252
+ rawOutput: result || error,
1202
1253
  content,
1203
1254
  locations,
1204
1255
  kind,
1205
1256
  rawInput: parsedParameters,
1206
1257
  },
1207
1258
  });
1208
- return;
1209
- }
1210
1259
 
1211
- if (stage === "streaming") {
1212
- // We don't support streaming tool arguments in ACP yet
1213
- return;
1214
- }
1215
-
1216
- const status: ToolCallStatus =
1217
- stage === "end"
1218
- ? success
1219
- ? "completed"
1220
- : "failed"
1221
- : stage === "running"
1222
- ? "in_progress"
1223
- : "pending";
1224
-
1225
- this.connection.sessionUpdate({
1226
- sessionId: sessionId as AcpSessionId,
1227
- update: {
1228
- sessionUpdate: "tool_call_update",
1229
- toolCallId: id,
1230
- status,
1231
- title: displayTitle,
1232
- rawOutput: result || error,
1233
- content,
1234
- locations,
1235
- kind,
1236
- rawInput: parsedParameters,
1237
- },
1238
- });
1239
-
1240
- if (stage === "end") {
1241
- toolStates.delete(id);
1242
- }
1243
- },
1244
- onTasksChange: (tasks) => {
1245
- this.taskCache.set(sessionId, tasks);
1246
- this.connection.sessionUpdate({
1247
- sessionId: sessionId as AcpSessionId,
1248
- update: {
1249
- sessionUpdate: "plan",
1250
- entries: tasks
1251
- .filter((t) => t.status !== "deleted")
1252
- .map((task) => ({
1253
- content: task.subject,
1254
- status:
1255
- task.status === "completed"
1256
- ? "completed"
1257
- : task.status === "in_progress"
1258
- ? "in_progress"
1259
- : "pending",
1260
- priority: "medium" as const,
1261
- })),
1262
- },
1263
- });
1264
- },
1265
- onPermissionModeChange: (mode) => {
1266
- this.connection.sessionUpdate({
1267
- sessionId: sessionId as AcpSessionId,
1268
- update: {
1269
- sessionUpdate: "current_mode_update",
1270
- currentModeId: mode,
1271
- },
1272
- });
1273
- const agent = getAgent();
1274
- if (agent) {
1260
+ if (stage === "end") {
1261
+ toolStates.delete(id);
1262
+ }
1263
+ },
1264
+ onTasksChange: (tasks) => {
1265
+ this.taskCache.set(sessionRef.id, tasks);
1275
1266
  this.connection.sessionUpdate({
1276
- sessionId: sessionId as AcpSessionId,
1267
+ sessionId: sessionRef.id as AcpSessionId,
1277
1268
  update: {
1278
- sessionUpdate: "config_option_update",
1279
- configOptions: this.getSessionConfigOptions(agent),
1269
+ sessionUpdate: "plan",
1270
+ entries: tasks
1271
+ .filter((t) => t.status !== "deleted")
1272
+ .map((task) => ({
1273
+ content: task.subject,
1274
+ status:
1275
+ task.status === "completed"
1276
+ ? "completed"
1277
+ : task.status === "in_progress"
1278
+ ? "in_progress"
1279
+ : "pending",
1280
+ priority: "medium" as const,
1281
+ })),
1280
1282
  },
1281
1283
  });
1282
- }
1283
- },
1284
- onModelChange: () => {
1285
- const agent = getAgent();
1286
- if (agent) {
1284
+ },
1285
+ onPermissionModeChange: (mode) => {
1287
1286
  this.connection.sessionUpdate({
1288
- sessionId: sessionId as AcpSessionId,
1287
+ sessionId: sessionRef.id as AcpSessionId,
1289
1288
  update: {
1290
- sessionUpdate: "config_option_update",
1291
- configOptions: this.getSessionConfigOptions(agent),
1289
+ sessionUpdate: "current_mode_update",
1290
+ currentModeId: mode,
1292
1291
  },
1293
1292
  });
1294
- }
1295
- },
1296
- onUserMessageAdded: (params) => {
1297
- this.connection.sessionUpdate({
1298
- sessionId: sessionId as AcpSessionId,
1299
- update: {
1300
- sessionUpdate: "user_message_chunk",
1301
- content: { type: "text", text: params.content },
1302
- },
1303
- });
1304
- },
1305
- onMcpServersChange: (servers: McpServerStatus[]) => {
1306
- for (const server of servers) {
1293
+ const agent = getAgent();
1294
+ if (agent) {
1295
+ this.connection.sessionUpdate({
1296
+ sessionId: sessionRef.id as AcpSessionId,
1297
+ update: {
1298
+ sessionUpdate: "config_option_update",
1299
+ configOptions: this.getSessionConfigOptions(agent),
1300
+ },
1301
+ });
1302
+ }
1303
+ },
1304
+ onModelChange: () => {
1305
+ const agent = getAgent();
1306
+ if (agent) {
1307
+ this.connection.sessionUpdate({
1308
+ sessionId: sessionRef.id as AcpSessionId,
1309
+ update: {
1310
+ sessionUpdate: "config_option_update",
1311
+ configOptions: this.getSessionConfigOptions(agent),
1312
+ },
1313
+ });
1314
+ }
1315
+ },
1316
+ onUserMessageAdded: (params) => {
1307
1317
  this.connection.sessionUpdate({
1308
- sessionId: sessionId as AcpSessionId,
1318
+ sessionId: sessionRef.id as AcpSessionId,
1309
1319
  update: {
1310
- sessionUpdate: "ext_notification" as const,
1311
- method: "mcp_server_status",
1312
- params: {
1313
- name: server.name,
1314
- status: server.status,
1315
- toolCount: server.toolCount,
1316
- error: server.error,
1320
+ sessionUpdate: "user_message_chunk",
1321
+ content: { type: "text", text: params.content },
1322
+ },
1323
+ });
1324
+ },
1325
+ onMcpServersChange: (servers: McpServerStatus[]) => {
1326
+ for (const server of servers) {
1327
+ this.connection.sessionUpdate({
1328
+ sessionId: sessionRef.id as AcpSessionId,
1329
+ update: {
1330
+ sessionUpdate: "ext_notification" as const,
1331
+ method: "mcp_server_status",
1332
+ params: {
1333
+ name: server.name,
1334
+ status: server.status,
1335
+ toolCount: server.toolCount,
1336
+ error: server.error,
1337
+ },
1317
1338
  },
1339
+ });
1340
+ }
1341
+ },
1342
+ onSessionIdChange: (newSessionId: string) => {
1343
+ const oldSessionId = sessionRef.id;
1344
+ if (oldSessionId === newSessionId) return;
1345
+
1346
+ // Update agents Map key
1347
+ const agent = this.agents.get(oldSessionId);
1348
+ if (agent) {
1349
+ this.agents.delete(oldSessionId);
1350
+ this.agents.set(newSessionId, agent);
1351
+ }
1352
+
1353
+ // Update taskCache key
1354
+ const tasks = this.taskCache.get(oldSessionId);
1355
+ if (tasks) {
1356
+ this.taskCache.delete(oldSessionId);
1357
+ this.taskCache.set(newSessionId, tasks);
1358
+ }
1359
+
1360
+ // Update ref so all subsequent callbacks use new ID
1361
+ sessionRef.id = newSessionId;
1362
+
1363
+ // Notify ACP client
1364
+ this.connection.sessionUpdate({
1365
+ sessionId: oldSessionId as AcpSessionId,
1366
+ update: {
1367
+ sessionUpdate: "ext_notification" as const,
1368
+ method: "session_id_change",
1369
+ params: { oldSessionId, newSessionId },
1318
1370
  },
1319
1371
  });
1320
- }
1372
+ },
1321
1373
  },
1374
+ sessionRef,
1322
1375
  };
1323
1376
  }
1324
1377
  }