summaryrefslogtreecommitdiff
path: root/packages/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/core/client.ts49
1 files changed, 19 insertions, 30 deletions
diff --git a/packages/server/src/core/client.ts b/packages/server/src/core/client.ts
index 29712db5..904e944c 100644
--- a/packages/server/src/core/client.ts
+++ b/packages/server/src/core/client.ts
@@ -133,39 +133,28 @@ export class GeminiClient {
): AsyncGenerator<ServerGeminiStreamEvent> {
let turns = 0;
const availableTools = this.config.getToolRegistry().getAllTools();
- try {
- while (turns < this.MAX_TURNS) {
- turns++;
- const turn = new Turn(chat, availableTools);
- const resultStream = turn.run(request, signal);
- for await (const event of resultStream) {
- yield event;
- }
-
- const confirmations = turn.getConfirmationDetails();
- if (confirmations.length > 0) {
- break;
- }
-
- // What do we do when we have both function responses and confirmations?
- const fnResponses = turn.getFunctionResponses();
- if (fnResponses.length === 0) {
- break; // user's turn to respond
- }
- request = fnResponses;
+ while (turns < this.MAX_TURNS) {
+ turns++;
+ const turn = new Turn(chat, availableTools);
+ const resultStream = turn.run(request, signal);
+ for await (const event of resultStream) {
+ yield event;
}
- if (turns >= this.MAX_TURNS) {
- console.warn(
- 'sendMessageStream: Reached maximum tool call turns limit.',
- );
+
+ const confirmations = turn.getConfirmationDetails();
+ if (confirmations.length > 0) {
+ break;
}
- } catch (error: unknown) {
- if (error instanceof Error && error.name === 'AbortError') {
- console.log('Gemini stream request aborted by user.');
- throw error;
+
+ // What do we do when we have both function responses and confirmations?
+ const fnResponses = turn.getFunctionResponses();
+ if (fnResponses.length === 0) {
+ break; // user's turn to respond
}
- console.error(`Error during Gemini stream or tool interaction:`, error);
- throw error;
+ request = fnResponses;
+ }
+ if (turns >= this.MAX_TURNS) {
+ console.warn('sendMessageStream: Reached maximum tool call turns limit.');
}
}