@vybestack/llxprt-code-core 0.1.23-nightly.250827.6cba9007 → 0.1.23-nightly.250828.9dff311e
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/dist/src/core/geminiChat.d.ts +9 -5
- package/dist/src/core/geminiChat.js +272 -363
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +1 -1
- package/dist/src/ide/ide-client.js +12 -6
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/prompt-config/defaults/providers/gemini/core.md +84 -0
- package/package.json +1 -1
@@ -6,6 +6,13 @@
|
|
6
6
|
import { GenerateContentResponse, Content, GenerateContentConfig, SendMessageParameters, GenerateContentResponseUsageMetadata, Tool } from '@google/genai';
|
7
7
|
import { ContentGenerator } from './contentGenerator.js';
|
8
8
|
import { Config } from '../config/config.js';
|
9
|
+
/**
|
10
|
+
* Custom error to signal that a stream completed without valid content,
|
11
|
+
* which should trigger a retry.
|
12
|
+
*/
|
13
|
+
export declare class EmptyStreamError extends Error {
|
14
|
+
constructor(message: string);
|
15
|
+
}
|
9
16
|
/**
|
10
17
|
* Chat session that enables sending messages to the model with previous
|
11
18
|
* conversation context.
|
@@ -74,6 +81,7 @@ export declare class GeminiChat {
|
|
74
81
|
* ```
|
75
82
|
*/
|
76
83
|
sendMessageStream(params: SendMessageParameters, prompt_id: string): Promise<AsyncGenerator<GenerateContentResponse>>;
|
84
|
+
private makeApiCallAndProcessStream;
|
77
85
|
/**
|
78
86
|
* Returns the chat history.
|
79
87
|
*
|
@@ -104,8 +112,6 @@ export declare class GeminiChat {
|
|
104
112
|
clearHistory(): void;
|
105
113
|
/**
|
106
114
|
* Adds a new entry to the chat history.
|
107
|
-
*
|
108
|
-
* @param content - The content to add to the history.
|
109
115
|
*/
|
110
116
|
addHistory(content: Content): void;
|
111
117
|
setHistory(history: Content[]): void;
|
@@ -113,17 +119,15 @@ export declare class GeminiChat {
|
|
113
119
|
getFinalUsageMetadata(chunks: GenerateContentResponse[]): GenerateContentResponseUsageMetadata | undefined;
|
114
120
|
private processStreamResponse;
|
115
121
|
private recordHistory;
|
116
|
-
private
|
122
|
+
private hasTextContent;
|
117
123
|
private isThoughtContent;
|
118
124
|
/**
|
119
125
|
* Trim prompt contents to fit within token limit
|
120
126
|
* Strategy: Keep the most recent user message, trim older history and tool outputs
|
121
127
|
*/
|
122
|
-
private trimPromptContents;
|
123
128
|
/**
|
124
129
|
* Truncate a single content to fit within token limit
|
125
130
|
*/
|
126
|
-
private truncateContent;
|
127
131
|
private maybeIncludeSchemaDepthContext;
|
128
132
|
}
|
129
133
|
/** Visible for Testing */
|
@@ -9,7 +9,7 @@ import { createUserContent, } from '@google/genai';
|
|
9
9
|
import { retryWithBackoff } from '../utils/retry.js';
|
10
10
|
import { isFunctionResponse } from '../utils/messageInspectors.js';
|
11
11
|
import { AuthType } from './contentGenerator.js';
|
12
|
-
import { estimateTokens } from '../utils/toolOutputLimiter.js';
|
12
|
+
// import { estimateTokens } from '../utils/toolOutputLimiter.js'; // Unused after retry stream refactor
|
13
13
|
import { logApiRequest, logApiResponse, logApiError, } from '../telemetry/loggers.js';
|
14
14
|
import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, } from '../telemetry/types.js';
|
15
15
|
import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
|
@@ -82,6 +82,10 @@ function createUserContentWithFunctionResponseFix(message) {
|
|
82
82
|
}
|
83
83
|
return result;
|
84
84
|
}
|
85
|
+
const INVALID_CONTENT_RETRY_OPTIONS = {
|
86
|
+
maxAttempts: 3, // 1 initial call + 2 retries
|
87
|
+
initialDelayMs: 500,
|
88
|
+
};
|
85
89
|
/**
|
86
90
|
* Returns true if the response is valid, false otherwise.
|
87
91
|
*/
|
@@ -155,14 +159,20 @@ function extractCuratedHistory(comprehensiveHistory) {
|
|
155
159
|
if (isValid) {
|
156
160
|
curatedHistory.push(...modelOutput);
|
157
161
|
}
|
158
|
-
else {
|
159
|
-
// Remove the last user input when model content is invalid.
|
160
|
-
curatedHistory.pop();
|
161
|
-
}
|
162
162
|
}
|
163
163
|
}
|
164
164
|
return curatedHistory;
|
165
165
|
}
|
166
|
+
/**
|
167
|
+
* Custom error to signal that a stream completed without valid content,
|
168
|
+
* which should trigger a retry.
|
169
|
+
*/
|
170
|
+
export class EmptyStreamError extends Error {
|
171
|
+
constructor(message) {
|
172
|
+
super(message);
|
173
|
+
this.name = 'EmptyStreamError';
|
174
|
+
}
|
175
|
+
}
|
166
176
|
/**
|
167
177
|
* Chat session that enables sending messages to the model with previous
|
168
178
|
* conversation context.
|
@@ -364,175 +374,88 @@ export class GeminiChat {
|
|
364
374
|
console.log('DEBUG: GeminiChat.sendMessageStream params.message:', JSON.stringify(params.message, null, 2));
|
365
375
|
}
|
366
376
|
await this.sendPromise;
|
377
|
+
let streamDoneResolver;
|
378
|
+
const streamDonePromise = new Promise((resolve) => {
|
379
|
+
streamDoneResolver = resolve;
|
380
|
+
});
|
381
|
+
this.sendPromise = streamDonePromise;
|
367
382
|
const userContent = createUserContentWithFunctionResponseFix(params.message);
|
368
|
-
//
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
}
|
385
|
-
if (process.env.DEBUG) {
|
386
|
-
console.log('DEBUG: GeminiChat.sendMessageStream userContent:', JSON.stringify(userContent, null, 2));
|
387
|
-
}
|
388
|
-
const requestContents = this.getHistory(true).concat(userContent);
|
389
|
-
// Apply max-prompt-tokens limit if configured
|
390
|
-
const ephemeralSettings = this.config.getEphemeralSettings();
|
391
|
-
const maxPromptTokens = ephemeralSettings['max-prompt-tokens'];
|
392
|
-
if (maxPromptTokens) {
|
393
|
-
// Estimate tokens in the full request
|
394
|
-
const fullPromptText = JSON.stringify(requestContents);
|
395
|
-
const estimatedTokens = estimateTokens(fullPromptText);
|
396
|
-
if (estimatedTokens > maxPromptTokens) {
|
397
|
-
console.warn(`WARNING: Prompt size (${estimatedTokens} tokens) exceeds max-prompt-tokens limit (${maxPromptTokens}). Trimming...`);
|
398
|
-
// Add a warning message to the request that will be visible to the LLM
|
399
|
-
const warningMessage = {
|
400
|
-
role: 'user',
|
401
|
-
parts: [
|
402
|
-
{
|
403
|
-
text: `WARNING: SYSTEM WARNING: The original prompt exceeded the ${maxPromptTokens} token limit (estimated ${estimatedTokens} tokens). Some conversation history and tool outputs have been truncated to fit. This may affect context continuity. Please be aware that some information from earlier in the conversation or from tool outputs may be missing.`,
|
404
|
-
},
|
405
|
-
],
|
406
|
-
};
|
407
|
-
// Strategy: Keep the most recent messages and the current user message
|
408
|
-
// Remove older messages and truncate tool outputs in the middle
|
409
|
-
const trimmedContents = this.trimPromptContents(requestContents, maxPromptTokens);
|
410
|
-
// Add the warning as the first message so LLM knows about the truncation
|
411
|
-
trimmedContents.unshift(warningMessage);
|
412
|
-
// Log the trimming action with more detail
|
413
|
-
const trimmedTokens = estimateTokens(JSON.stringify(trimmedContents));
|
414
|
-
console.log(`INFO: TRIMMED: Trimmed prompt from ${estimatedTokens} to ~${trimmedTokens} tokens`);
|
415
|
-
// Count function calls in original vs trimmed
|
416
|
-
let originalFunctionCalls = 0;
|
417
|
-
let trimmedFunctionCalls = 0;
|
418
|
-
requestContents.forEach((c) => c.parts?.forEach((p) => {
|
419
|
-
if ('functionCall' in p)
|
420
|
-
originalFunctionCalls++;
|
421
|
-
}));
|
422
|
-
trimmedContents.forEach((c) => c.parts?.forEach((p) => {
|
423
|
-
if ('functionCall' in p)
|
424
|
-
trimmedFunctionCalls++;
|
425
|
-
}));
|
426
|
-
if (originalFunctionCalls !== trimmedFunctionCalls) {
|
427
|
-
console.warn(`WARNING: Trimming removed ${originalFunctionCalls - trimmedFunctionCalls} function calls (${originalFunctionCalls} -> ${trimmedFunctionCalls})`);
|
428
|
-
}
|
429
|
-
// Use trimmed contents instead
|
430
|
-
requestContents.length = 0;
|
431
|
-
requestContents.push(...trimmedContents);
|
432
|
-
}
|
433
|
-
}
|
434
|
-
// Debug: Log the last few messages to see the function call/response pattern
|
435
|
-
if (process.env.DEBUG && requestContents.length > 2) {
|
436
|
-
const recentContents = requestContents.slice(-3);
|
437
|
-
console.log('[DEBUG geminiChat] Recent conversation turns:');
|
438
|
-
recentContents.forEach((content, idx) => {
|
439
|
-
let summary = ` ${idx}: role=${content.role}, parts=${content.parts?.length || 0}`;
|
440
|
-
content.parts?.forEach((part) => {
|
441
|
-
if ('functionCall' in part && part.functionCall) {
|
442
|
-
summary += ` [functionCall: ${part.functionCall.name}]`;
|
443
|
-
}
|
444
|
-
else if ('functionResponse' in part && part.functionResponse) {
|
445
|
-
summary += ` [functionResponse: ${part.functionResponse.name}]`;
|
383
|
+
// Add user content to history ONCE before any attempts.
|
384
|
+
this.history.push(userContent);
|
385
|
+
const requestContents = this.getHistory(true);
|
386
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
387
|
+
const self = this;
|
388
|
+
return (async function* () {
|
389
|
+
try {
|
390
|
+
let lastError = new Error('Request failed after all retries.');
|
391
|
+
for (let attempt = 0; attempt <= INVALID_CONTENT_RETRY_OPTIONS.maxAttempts; attempt++) {
|
392
|
+
try {
|
393
|
+
const stream = await self.makeApiCallAndProcessStream(requestContents, params, prompt_id, userContent);
|
394
|
+
for await (const chunk of stream) {
|
395
|
+
yield chunk;
|
396
|
+
}
|
397
|
+
lastError = null;
|
398
|
+
break;
|
446
399
|
}
|
447
|
-
|
448
|
-
|
400
|
+
catch (error) {
|
401
|
+
lastError = error;
|
402
|
+
const isContentError = error instanceof EmptyStreamError;
|
403
|
+
if (isContentError) {
|
404
|
+
// Check if we have more attempts left.
|
405
|
+
if (attempt < INVALID_CONTENT_RETRY_OPTIONS.maxAttempts - 1) {
|
406
|
+
await new Promise((res) => setTimeout(res, INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs *
|
407
|
+
(attempt + 1)));
|
408
|
+
continue;
|
409
|
+
}
|
410
|
+
}
|
411
|
+
break;
|
449
412
|
}
|
450
|
-
});
|
451
|
-
console.log(summary);
|
452
|
-
});
|
453
|
-
}
|
454
|
-
if (process.env.DEBUG) {
|
455
|
-
console.log('DEBUG: GeminiChat.sendMessageStream requestContents:', JSON.stringify(requestContents, null, 2));
|
456
|
-
}
|
457
|
-
this._logApiRequest(requestContents, this.config.getModel(), prompt_id);
|
458
|
-
const startTime = Date.now();
|
459
|
-
try {
|
460
|
-
const apiCall = () => {
|
461
|
-
const modelToUse = this.config.getModel();
|
462
|
-
const authType = this.config.getContentGeneratorConfig()?.authType;
|
463
|
-
// Prevent Flash model calls immediately after quota error (only for Gemini providers)
|
464
|
-
if (authType !== AuthType.USE_PROVIDER &&
|
465
|
-
this.config.getQuotaErrorOccurred() &&
|
466
|
-
modelToUse === DEFAULT_GEMINI_FLASH_MODEL) {
|
467
|
-
throw new Error('Please submit a new query to continue with the Flash model.');
|
468
413
|
}
|
469
|
-
if (
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
console.log('DEBUG [geminiChat]: - Tools in params.config:', JSON.stringify(params.config?.tools, null, 2));
|
476
|
-
}
|
477
|
-
// Check if this is a model-specific issue
|
478
|
-
const isFlashModel = modelToUse && modelToUse.includes('flash');
|
479
|
-
if (process.env.DEBUG) {
|
480
|
-
console.log('DEBUG [geminiChat]: - Is Flash model:', isFlashModel);
|
414
|
+
if (lastError) {
|
415
|
+
// If the stream fails, remove the user message that was added.
|
416
|
+
if (self.history[self.history.length - 1] === userContent) {
|
417
|
+
self.history.pop();
|
418
|
+
}
|
419
|
+
throw lastError;
|
481
420
|
}
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
421
|
+
}
|
422
|
+
finally {
|
423
|
+
streamDoneResolver();
|
424
|
+
}
|
425
|
+
})();
|
426
|
+
}
|
427
|
+
async makeApiCallAndProcessStream(requestContents, params, prompt_id, userContent) {
|
428
|
+
const apiCall = () => {
|
429
|
+
const modelToUse = this.config.getModel();
|
430
|
+
const authType = this.config.getContentGeneratorConfig()?.authType;
|
431
|
+
// Prevent Flash model calls immediately after quota error (only for Gemini providers)
|
432
|
+
if (authType !== AuthType.USE_PROVIDER &&
|
433
|
+
this.config.getQuotaErrorOccurred() &&
|
434
|
+
modelToUse === DEFAULT_GEMINI_FLASH_MODEL) {
|
435
|
+
throw new Error('Please submit a new query to continue with the Flash model.');
|
436
|
+
}
|
437
|
+
return this.contentGenerator.generateContentStream({
|
438
|
+
model: modelToUse,
|
439
|
+
contents: requestContents,
|
440
|
+
config: { ...this.generationConfig, ...params.config },
|
441
|
+
}, prompt_id);
|
442
|
+
};
|
443
|
+
const streamResponse = await retryWithBackoff(apiCall, {
|
444
|
+
shouldRetry: (error) => {
|
445
|
+
if (error instanceof Error && error.message) {
|
446
|
+
if (isSchemaDepthError(error.message))
|
447
|
+
return false;
|
448
|
+
if (error.message.includes('429'))
|
449
|
+
return true;
|
450
|
+
if (error.message.match(/5\d{2}/))
|
451
|
+
return true;
|
492
452
|
}
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
};
|
500
|
-
// Note: Retrying streams can be complex. If generateContentStream itself doesn't handle retries
|
501
|
-
// for transient issues internally before yielding the async generator, this retry will re-initiate
|
502
|
-
// the stream. For simple 429/500 errors on initial call, this is fine.
|
503
|
-
// If errors occur mid-stream, this setup won't resume the stream; it will restart it.
|
504
|
-
const streamResponse = await retryWithBackoff(apiCall, {
|
505
|
-
shouldRetry: (error) => {
|
506
|
-
// Check for known error messages and codes.
|
507
|
-
if (error instanceof Error && error.message) {
|
508
|
-
if (isSchemaDepthError(error.message))
|
509
|
-
return false;
|
510
|
-
if (error.message.includes('429'))
|
511
|
-
return true;
|
512
|
-
if (error.message.match(/5\d{2}/))
|
513
|
-
return true;
|
514
|
-
}
|
515
|
-
return false; // Don't retry other errors by default
|
516
|
-
},
|
517
|
-
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
518
|
-
authType: this.config.getContentGeneratorConfig()?.authType,
|
519
|
-
});
|
520
|
-
// Resolve the internal tracking of send completion promise - `sendPromise`
|
521
|
-
// for both success and failure response. The actual failure is still
|
522
|
-
// propagated by the `await streamResponse`.
|
523
|
-
this.sendPromise = Promise.resolve(streamResponse)
|
524
|
-
.then(() => undefined)
|
525
|
-
.catch(() => undefined);
|
526
|
-
const result = this.processStreamResponse(streamResponse, userContent, startTime, prompt_id);
|
527
|
-
return result;
|
528
|
-
}
|
529
|
-
catch (error) {
|
530
|
-
const durationMs = Date.now() - startTime;
|
531
|
-
this._logApiError(durationMs, error, prompt_id);
|
532
|
-
this.sendPromise = Promise.resolve();
|
533
|
-
await this.maybeIncludeSchemaDepthContext(error);
|
534
|
-
throw error;
|
535
|
-
}
|
453
|
+
return false;
|
454
|
+
},
|
455
|
+
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
456
|
+
authType: this.config.getContentGeneratorConfig()?.authType,
|
457
|
+
});
|
458
|
+
return this.processStreamResponse(streamResponse, userContent);
|
536
459
|
}
|
537
460
|
/**
|
538
461
|
* Returns the chat history.
|
@@ -573,8 +496,6 @@ export class GeminiChat {
|
|
573
496
|
}
|
574
497
|
/**
|
575
498
|
* Adds a new entry to the chat history.
|
576
|
-
*
|
577
|
-
* @param content - The content to add to the history.
|
578
499
|
*/
|
579
500
|
addHistory(content) {
|
580
501
|
this.history.push(content);
|
@@ -592,112 +513,83 @@ export class GeminiChat {
|
|
592
513
|
.find((chunk) => chunk.usageMetadata);
|
593
514
|
return lastChunkWithMetadata?.usageMetadata;
|
594
515
|
}
|
595
|
-
async *processStreamResponse(streamResponse,
|
596
|
-
const
|
597
|
-
|
598
|
-
let
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
continue;
|
608
|
-
}
|
609
|
-
outputContent.push(content);
|
516
|
+
async *processStreamResponse(streamResponse, userInput) {
|
517
|
+
const modelResponseParts = [];
|
518
|
+
let isStreamInvalid = false;
|
519
|
+
let hasReceivedAnyChunk = false;
|
520
|
+
for await (const chunk of streamResponse) {
|
521
|
+
hasReceivedAnyChunk = true;
|
522
|
+
if (isValidResponse(chunk)) {
|
523
|
+
const content = chunk.candidates?.[0]?.content;
|
524
|
+
if (content) {
|
525
|
+
// Filter out thought parts from being added to history.
|
526
|
+
if (!this.isThoughtContent(content) && content.parts) {
|
527
|
+
modelResponseParts.push(...content.parts);
|
610
528
|
}
|
611
529
|
}
|
612
|
-
yield chunk;
|
613
530
|
}
|
614
|
-
|
615
|
-
|
616
|
-
errorOccurred = true;
|
617
|
-
const durationMs = Date.now() - startTime;
|
618
|
-
this._logApiError(durationMs, error, prompt_id);
|
619
|
-
throw error;
|
620
|
-
}
|
621
|
-
if (!errorOccurred) {
|
622
|
-
const durationMs = Date.now() - startTime;
|
623
|
-
const allParts = [];
|
624
|
-
for (const content of outputContent) {
|
625
|
-
if (content.parts) {
|
626
|
-
allParts.push(...content.parts);
|
627
|
-
}
|
531
|
+
else {
|
532
|
+
isStreamInvalid = true;
|
628
533
|
}
|
629
|
-
|
534
|
+
yield chunk; // Yield every chunk to the UI immediately.
|
630
535
|
}
|
631
|
-
|
536
|
+
// Now that the stream is finished, make a decision.
|
537
|
+
// Throw an error if the stream was invalid OR if it was completely empty.
|
538
|
+
if (isStreamInvalid || !hasReceivedAnyChunk) {
|
539
|
+
throw new EmptyStreamError('Model stream was invalid or completed without valid content.');
|
540
|
+
}
|
541
|
+
// Use recordHistory to correctly save the conversation turn.
|
542
|
+
const modelOutput = [
|
543
|
+
{ role: 'model', parts: modelResponseParts },
|
544
|
+
];
|
545
|
+
this.recordHistory(userInput, modelOutput);
|
632
546
|
}
|
633
547
|
recordHistory(userInput, modelOutput, automaticFunctionCallingHistory) {
|
634
|
-
const
|
635
|
-
|
636
|
-
if (
|
637
|
-
|
638
|
-
|
639
|
-
}
|
640
|
-
else if (nonThoughtModelOutput.length === 0 && modelOutput.length > 0) {
|
641
|
-
// This case handles when the model returns only a thought.
|
642
|
-
// We don't want to add an empty model response in this case.
|
548
|
+
const newHistoryEntries = [];
|
549
|
+
// Part 1: Handle the user's part of the turn.
|
550
|
+
if (automaticFunctionCallingHistory &&
|
551
|
+
automaticFunctionCallingHistory.length > 0) {
|
552
|
+
newHistoryEntries.push(...extractCuratedHistory(automaticFunctionCallingHistory));
|
643
553
|
}
|
644
554
|
else {
|
645
|
-
//
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
outputContents.push({
|
650
|
-
role: 'model',
|
651
|
-
parts: [],
|
652
|
-
});
|
555
|
+
// Guard for streaming calls where the user input might already be in the history.
|
556
|
+
if (this.history.length === 0 ||
|
557
|
+
this.history[this.history.length - 1] !== userInput) {
|
558
|
+
newHistoryEntries.push(userInput);
|
653
559
|
}
|
654
560
|
}
|
655
|
-
|
656
|
-
|
657
|
-
|
561
|
+
// Part 2: Handle the model's part of the turn, filtering out thoughts.
|
562
|
+
const nonThoughtModelOutput = modelOutput.filter((content) => !this.isThoughtContent(content));
|
563
|
+
let outputContents = [];
|
564
|
+
if (nonThoughtModelOutput.length > 0) {
|
565
|
+
outputContents = nonThoughtModelOutput;
|
658
566
|
}
|
659
|
-
else
|
660
|
-
|
567
|
+
else if (modelOutput.length === 0 &&
|
568
|
+
!isFunctionResponse(userInput) &&
|
569
|
+
!automaticFunctionCallingHistory) {
|
570
|
+
// Add an empty model response if the model truly returned nothing.
|
571
|
+
outputContents.push({ role: 'model', parts: [] });
|
661
572
|
}
|
662
|
-
// Consolidate
|
573
|
+
// Part 3: Consolidate the parts of this turn's model response.
|
663
574
|
const consolidatedOutputContents = [];
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
lastContent.parts[0].text += content.parts[0].text || '';
|
673
|
-
if (content.parts.length > 1) {
|
674
|
-
lastContent.parts.push(...content.parts.slice(1));
|
575
|
+
if (outputContents.length > 0) {
|
576
|
+
for (const content of outputContents) {
|
577
|
+
const lastContent = consolidatedOutputContents[consolidatedOutputContents.length - 1];
|
578
|
+
if (this.hasTextContent(lastContent) && this.hasTextContent(content)) {
|
579
|
+
lastContent.parts[0].text += content.parts[0].text || '';
|
580
|
+
if (content.parts.length > 1) {
|
581
|
+
lastContent.parts.push(...content.parts.slice(1));
|
582
|
+
}
|
675
583
|
}
|
676
|
-
|
677
|
-
|
678
|
-
consolidatedOutputContents.push(content);
|
679
|
-
}
|
680
|
-
}
|
681
|
-
if (consolidatedOutputContents.length > 0) {
|
682
|
-
const lastHistoryEntry = this.history[this.history.length - 1];
|
683
|
-
const canMergeWithLastHistory = !automaticFunctionCallingHistory ||
|
684
|
-
automaticFunctionCallingHistory.length === 0;
|
685
|
-
if (canMergeWithLastHistory &&
|
686
|
-
this.isTextContent(lastHistoryEntry) &&
|
687
|
-
this.isTextContent(consolidatedOutputContents[0])) {
|
688
|
-
// If both current and last are text, combine their text into the lastHistoryEntry's first part
|
689
|
-
// and append any other parts from the current content.
|
690
|
-
lastHistoryEntry.parts[0].text +=
|
691
|
-
consolidatedOutputContents[0].parts[0].text || '';
|
692
|
-
if (consolidatedOutputContents[0].parts.length > 1) {
|
693
|
-
lastHistoryEntry.parts.push(...consolidatedOutputContents[0].parts.slice(1));
|
584
|
+
else {
|
585
|
+
consolidatedOutputContents.push(content);
|
694
586
|
}
|
695
|
-
consolidatedOutputContents.shift(); // Remove the first element as it's merged
|
696
587
|
}
|
697
|
-
this.history.push(...consolidatedOutputContents);
|
698
588
|
}
|
589
|
+
// Part 4: Add the new turn (user and model parts) to the main history.
|
590
|
+
this.history.push(...newHistoryEntries, ...consolidatedOutputContents);
|
699
591
|
}
|
700
|
-
|
592
|
+
hasTextContent(content) {
|
701
593
|
return !!(content &&
|
702
594
|
content.role === 'model' &&
|
703
595
|
content.parts &&
|
@@ -717,115 +609,132 @@ export class GeminiChat {
|
|
717
609
|
* Trim prompt contents to fit within token limit
|
718
610
|
* Strategy: Keep the most recent user message, trim older history and tool outputs
|
719
611
|
*/
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
}
|
612
|
+
// private _trimPromptContents(
|
613
|
+
// contents: Content[],
|
614
|
+
// maxTokens: number,
|
615
|
+
// ): Content[] {
|
616
|
+
// if (contents.length === 0) return contents;
|
617
|
+
//
|
618
|
+
// // Always keep the last message (current user input)
|
619
|
+
// const lastMessage = contents[contents.length - 1];
|
620
|
+
// const result: Content[] = [];
|
621
|
+
//
|
622
|
+
// // Reserve tokens for the last message and warning
|
623
|
+
// const lastMessageTokens = estimateTokens(JSON.stringify(lastMessage));
|
624
|
+
// const warningTokens = 200; // Reserve for warning message
|
625
|
+
// let remainingTokens = maxTokens - lastMessageTokens - warningTokens;
|
626
|
+
//
|
627
|
+
// if (remainingTokens <= 0) {
|
628
|
+
// // Even the last message is too big, truncate it
|
629
|
+
// return [this._truncateContent(lastMessage, maxTokens - warningTokens)];
|
630
|
+
// }
|
631
|
+
//
|
632
|
+
// // Add messages from most recent to oldest, stopping when we hit the limit
|
633
|
+
// for (let i = contents.length - 2; i >= 0; i--) {
|
634
|
+
// const content = contents[i];
|
635
|
+
// const contentTokens = estimateTokens(JSON.stringify(content));
|
636
|
+
//
|
637
|
+
// if (contentTokens <= remainingTokens) {
|
638
|
+
// result.unshift(content);
|
639
|
+
// remainingTokens -= contentTokens;
|
640
|
+
// } else if (remainingTokens > 100) {
|
641
|
+
// // Try to truncate this content to fit
|
642
|
+
// const truncated = this._truncateContent(content, remainingTokens);
|
643
|
+
// // Only add if we actually got some content back
|
644
|
+
// if (truncated.parts && truncated.parts.length > 0) {
|
645
|
+
// result.unshift(truncated);
|
646
|
+
// }
|
647
|
+
// break;
|
648
|
+
// } else {
|
649
|
+
// // No room left, stop
|
650
|
+
// break;
|
651
|
+
// }
|
652
|
+
// }
|
653
|
+
//
|
654
|
+
// // Add the last message
|
655
|
+
// result.push(lastMessage);
|
656
|
+
//
|
657
|
+
// return result;
|
658
|
+
// }
|
659
|
+
//
|
760
660
|
/**
|
761
661
|
* Truncate a single content to fit within token limit
|
762
662
|
*/
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
663
|
+
// private _truncateContent(content: Content, maxTokens: number): Content {
|
664
|
+
// if (!content.parts || content.parts.length === 0) {
|
665
|
+
// return content;
|
666
|
+
// }
|
667
|
+
//
|
668
|
+
// const truncatedParts: Part[] = [];
|
669
|
+
// let currentTokens = 0;
|
670
|
+
//
|
671
|
+
// for (const part of content.parts) {
|
672
|
+
// if ('text' in part && part.text) {
|
673
|
+
// const partTokens = estimateTokens(part.text);
|
674
|
+
// if (currentTokens + partTokens <= maxTokens) {
|
675
|
+
// truncatedParts.push(part);
|
676
|
+
// currentTokens += partTokens;
|
677
|
+
// } else {
|
678
|
+
// // Truncate this part
|
679
|
+
// const remainingTokens = maxTokens - currentTokens;
|
680
|
+
// if (remainingTokens > 10) {
|
681
|
+
// const remainingChars = remainingTokens * 4;
|
682
|
+
// truncatedParts.push({
|
683
|
+
// text:
|
684
|
+
// part.text.substring(0, remainingChars) +
|
685
|
+
// '\n[...content truncated due to token limit...]',
|
686
|
+
// });
|
687
|
+
// }
|
688
|
+
// break;
|
689
|
+
// }
|
690
|
+
// } else {
|
691
|
+
// // Non-text parts (function calls, responses, etc) - NEVER truncate these
|
692
|
+
// // Either include them fully or skip them entirely to avoid breaking JSON
|
693
|
+
// const partTokens = estimateTokens(JSON.stringify(part));
|
694
|
+
// if (currentTokens + partTokens <= maxTokens) {
|
695
|
+
// truncatedParts.push(part);
|
696
|
+
// currentTokens += partTokens;
|
697
|
+
// } else {
|
698
|
+
// // Skip this part entirely - DO NOT truncate function calls/responses
|
699
|
+
// // Log what we're skipping for debugging
|
700
|
+
// if (process.env.DEBUG || process.env.VERBOSE) {
|
701
|
+
// let skipInfo = 'unknown part';
|
702
|
+
// if ('functionCall' in part) {
|
703
|
+
// const funcPart = part as { functionCall?: { name?: string } };
|
704
|
+
// skipInfo = `functionCall: ${funcPart.functionCall?.name || 'unnamed'}`;
|
705
|
+
// } else if ('functionResponse' in part) {
|
706
|
+
// const respPart = part as { functionResponse?: { name?: string } };
|
707
|
+
// skipInfo = `functionResponse: ${respPart.functionResponse?.name || 'unnamed'}`;
|
708
|
+
// }
|
709
|
+
// console.warn(
|
710
|
+
// `INFO: Skipping ${skipInfo} due to token limit (needs ${partTokens} tokens, only ${maxTokens - currentTokens} available)`,
|
711
|
+
// );
|
712
|
+
// }
|
713
|
+
// // Add a marker that content was omitted
|
714
|
+
// if (
|
715
|
+
// truncatedParts.length > 0 &&
|
716
|
+
// !truncatedParts.some(
|
717
|
+
// (p) =>
|
718
|
+
// 'text' in p &&
|
719
|
+
// p.text?.includes(
|
720
|
+
// '[...function calls omitted due to token limit...]',
|
721
|
+
// ),
|
722
|
+
// )
|
723
|
+
// ) {
|
724
|
+
// truncatedParts.push({
|
725
|
+
// text: '[...function calls omitted due to token limit...]',
|
726
|
+
// });
|
727
|
+
// }
|
728
|
+
// break;
|
729
|
+
// }
|
730
|
+
// }
|
731
|
+
// }
|
732
|
+
//
|
733
|
+
// return {
|
734
|
+
// role: content.role,
|
735
|
+
// parts: truncatedParts,
|
736
|
+
// };
|
737
|
+
// }
|
829
738
|
async maybeIncludeSchemaDepthContext(error) {
|
830
739
|
// Check for potentially problematic cyclic tools with cyclic schemas
|
831
740
|
// and include a recommendation to remove potentially problematic tools.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
|
@@ -78,12 +78,15 @@ export class IdeClient {
|
|
78
78
|
return;
|
79
79
|
}
|
80
80
|
this.setState(IDEConnectionStatus.Connecting);
|
81
|
-
const
|
81
|
+
const ideInfoFromFile = await this.getIdeInfoFromFile();
|
82
|
+
const workspacePath = ideInfoFromFile.workspacePath ??
|
83
|
+
process.env['LLXPRT_CODE_IDE_WORKSPACE_PATH'];
|
84
|
+
const { isValid, error } = IdeClient.validateWorkspacePath(workspacePath, this.currentIdeDisplayName, process.cwd());
|
82
85
|
if (!isValid) {
|
83
86
|
this.setState(IDEConnectionStatus.Disconnected, error, true);
|
84
87
|
return;
|
85
88
|
}
|
86
|
-
const portFromFile =
|
89
|
+
const portFromFile = ideInfoFromFile.port;
|
87
90
|
if (portFromFile) {
|
88
91
|
const connected = await this.establishConnection(portFromFile);
|
89
92
|
if (connected) {
|
@@ -242,16 +245,19 @@ export class IdeClient {
|
|
242
245
|
}
|
243
246
|
return port;
|
244
247
|
}
|
245
|
-
async
|
248
|
+
async getIdeInfoFromFile() {
|
246
249
|
try {
|
247
250
|
const ideProcessId = await getIdeProcessId();
|
248
251
|
const portFile = path.join(os.tmpdir(), `llxprt-ide-server-${ideProcessId}.json`);
|
249
252
|
const portFileContents = await fs.promises.readFile(portFile, 'utf8');
|
250
|
-
const
|
251
|
-
return
|
253
|
+
const ideInfo = JSON.parse(portFileContents);
|
254
|
+
return {
|
255
|
+
port: ideInfo?.port?.toString(),
|
256
|
+
workspacePath: ideInfo?.workspacePath,
|
257
|
+
};
|
252
258
|
}
|
253
259
|
catch (_) {
|
254
|
-
return
|
260
|
+
return {};
|
255
261
|
}
|
256
262
|
}
|
257
263
|
createProxyAwareFetch() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ide-client.js","sourceRoot":"","sources":["../../../src/ide/ide-client.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ide-client.js","sourceRoot":"","sources":["../../../src/ide/ide-client.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
You are an interactive CLI agent specializing in software engineering tasks. Your primary goal is to help users safely and efficiently, adhering strictly to the following instructions and utilizing your available tools.
|
2
|
+
|
3
|
+
# Core Mandates
|
4
|
+
|
5
|
+
- **Conventions:** Rigorously adhere to existing project conventions when reading or modifying code. Analyze surrounding code, tests, and configuration first.
|
6
|
+
- **Libraries/Frameworks:** NEVER assume a library/framework is available or appropriate. Verify its established usage within the project (check imports, configuration files like 'package.json', 'Cargo.toml', 'requirements.txt', 'build.gradle', etc., or observe neighboring files) before employing it.
|
7
|
+
- **Style & Structure:** Mimic the style (formatting, naming), structure, framework choices, typing, and architectural patterns of existing code in the project.
|
8
|
+
- **Idiomatic Changes:** When editing, understand the local context (imports, functions/classes) to ensure your changes integrate naturally and idiomatically.
|
9
|
+
- **Comments:** Add code comments sparingly. Focus on _why_ something is done, especially for complex logic, rather than _what_ is done. Only add high-value comments if necessary for clarity or if requested by the user. Do not edit comments that are separate from the code you are changing. _NEVER_ talk to the user or describe your changes through comments.
|
10
|
+
- **Proactiveness:** Fulfill the user's request thoroughly, including reasonable, directly implied follow-up actions.
|
11
|
+
- **Confirm Ambiguity/Expansion:** Do not take significant actions beyond the clear scope of the request without confirming with the user. If asked _how_ to do something, explain first, don't just do it.
|
12
|
+
- **Path Construction:** Before using any file system tool, you must construct the full absolute path. Combine the project root with the file's path relative to the root. For example, if project root is /path/to/project/ and file is foo/bar/baz.txt, the final path is /path/to/project/foo/bar/baz.txt.
|
13
|
+
- **Do Not revert changes:** Do not revert changes to the codebase unless asked to do so by the user. Only revert changes made by you if they have resulted in an error or if the user has explicitly asked you to revert the changes.
|
14
|
+
|
15
|
+
# Primary Workflows
|
16
|
+
|
17
|
+
## Software Engineering Tasks
|
18
|
+
|
19
|
+
When requested to perform tasks like fixing bugs, adding features, refactoring, or explaining code, follow this sequence:
|
20
|
+
|
21
|
+
1. **Understand:** Use '${GrepTool.Name}' and '${GlobTool.Name}' to understand file structures and conventions. Use '${ReadFileTool.Name}' and '${ReadManyFilesTool.Name}' to understand context.
|
22
|
+
2. **Plan:** Build a grounded plan based on the understanding. Share a concise plan with the user when appropriate.
|
23
|
+
3. **Implement:** Use tools to act on the plan, strictly adhering to project conventions.
|
24
|
+
4. **Verify:** Run tests and linting if available.
|
25
|
+
|
26
|
+
## New Applications
|
27
|
+
|
28
|
+
Technology preferences when unspecified:
|
29
|
+
|
30
|
+
- Web frontend: React with TypeScript
|
31
|
+
- Backend API: Node.js/Express or Python/FastAPI
|
32
|
+
- CLI tools: Python or Go
|
33
|
+
- Mobile: Flutter or React Native
|
34
|
+
|
35
|
+
# Tool Usage Patterns
|
36
|
+
|
37
|
+
- **Parallel Operations:** Execute independent searches simultaneously when exploring.
|
38
|
+
- **File Operations:** Always construct absolute paths by combining project root with relative paths.
|
39
|
+
- **Shell Commands:** Explain destructive operations before executing. Use `&` for background processes.
|
40
|
+
- **Task Management:** Use todo tools for complex tasks. Update status in real-time.
|
41
|
+
- **Tool Call Formatting:** All tool calls must be formatted as JSON. Do not use Python syntax for tool calls, especially for arrays and objects. For example, use `{"files": ["file1.txt", "file2.txt"]}` instead of `list_files(files=["file1.txt", "file2.txt"])`.
|
42
|
+
|
43
|
+
# Examples
|
44
|
+
|
45
|
+
<example>
|
46
|
+
user: find all typescript files
|
47
|
+
assistant: <use glob with pattern "**/*.ts">
|
48
|
+
</example>
|
49
|
+
|
50
|
+
<example>
|
51
|
+
user: read the config file
|
52
|
+
assistant: I'll read the configuration file.
|
53
|
+
<use read_file with absolute_path "/path/to/project/config.json">
|
54
|
+
</example>
|
55
|
+
|
56
|
+
<example>
|
57
|
+
user: update the database connection string
|
58
|
+
assistant: I'll search for the database configuration first.
|
59
|
+
<use grep with pattern "database|connection|db_url">
|
60
|
+
[After finding the file]
|
61
|
+
<use read_file to examine the current configuration>
|
62
|
+
<use replace to update the connection string>
|
63
|
+
</example>
|
64
|
+
|
65
|
+
# Response Guidelines
|
66
|
+
|
67
|
+
- Take action immediately without announcing intentions
|
68
|
+
- Chain related operations efficiently
|
69
|
+
- Validate changes match project standards
|
70
|
+
- Complete the entire request before stopping
|
71
|
+
- When blocked, state the specific issue concisely
|
72
|
+
|
73
|
+
# Mandate: Evidence-First Protocol
|
74
|
+
|
75
|
+
You are forbidden from making any analytical statement or conclusion without first presenting the specific code that serves as direct, verifiable evidence.
|
76
|
+
|
77
|
+
Your workflow for any code analysis or explanation task is as follows:
|
78
|
+
|
79
|
+
1. **Find Evidence:** Use tools (`glob`, `search_file_content`) to locate the exact code that can answer the user's question.
|
80
|
+
2. **Cite Evidence:** Use `read_file` to display the relevant function, class, or code block.
|
81
|
+
3. **Analyze Evidence:** Immediately following the code block, provide your analysis of that specific evidence.
|
82
|
+
4. **Synthesize:** After all evidence has been presented and analyzed, provide a final, summary answer to the user.
|
83
|
+
|
84
|
+
**DO NOT** state what a file does before you have used `read_file` to show its contents. **DO NOT** describe a function's behavior before displaying its definition. All claims must be preceded by proof.
|