From f9d2b4db97438198630ad48092398016d157e2b0 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Thu, 20 Mar 2025 18:37:09 -0400 Subject: [PATCH] Make the question follow-up suggestions optional (#1857) Make the question follow-up optional --- .changeset/chilled-jobs-taste.md | 5 ++++ src/core/Cline.ts | 50 ++++++++++++++------------------ 2 files changed, 27 insertions(+), 28 deletions(-) create mode 100644 .changeset/chilled-jobs-taste.md diff --git a/.changeset/chilled-jobs-taste.md b/.changeset/chilled-jobs-taste.md new file mode 100644 index 0000000000..2007079db0 --- /dev/null +++ b/.changeset/chilled-jobs-taste.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Make the question follow-up optional diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 7f31b2e63c..b7bfc02118 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -2883,46 +2883,40 @@ export class Cline extends EventEmitter { break } - if (!follow_up) { - this.consecutiveMistakeCount++ - pushToolResult( - await this.sayAndCreateMissingParamError("ask_followup_question", "follow_up"), - ) - break - } - - let normalizedSuggest = null - type Suggest = { answer: string } - let parsedSuggest: { - suggest: Suggest[] | Suggest + let follow_up_json = { + question, + suggest: [] as Suggest[], } - try { - parsedSuggest = parseXml(follow_up, ["suggest"]) as { + if (follow_up) { + let parsedSuggest: { suggest: Suggest[] | Suggest } - } catch (error) { - this.consecutiveMistakeCount++ - await this.say("error", `Failed to parse operations: ${error.message}`) - pushToolResult(formatResponse.toolError("Invalid operations xml format")) - break + + try { + parsedSuggest = parseXml(follow_up, ["suggest"]) as { + suggest: Suggest[] | Suggest + } + } catch (error) { + this.consecutiveMistakeCount++ + await this.say("error", `Failed to parse operations: ${error.message}`) + pushToolResult(formatResponse.toolError("Invalid operations xml format")) + break + } + + const normalizedSuggest = Array.isArray(parsedSuggest?.suggest) + ? parsedSuggest.suggest + : [parsedSuggest?.suggest].filter((sug): sug is Suggest => sug !== undefined) + + follow_up_json.suggest = normalizedSuggest } this.consecutiveMistakeCount = 0 - normalizedSuggest = Array.isArray(parsedSuggest?.suggest) - ? parsedSuggest.suggest - : [parsedSuggest?.suggest].filter((sug): sug is Suggest => sug !== undefined) - - const follow_up_json = { - question, - suggest: normalizedSuggest, - } - const { text, images } = await this.ask( "followup", JSON.stringify(follow_up_json),