@vybestack/llxprt-code-core 0.1.23-nightly.250826.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.
@@ -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 isTextContent;
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
- // Debug: Check if this is a function response submission
369
- if (Array.isArray(params.message)) {
370
- let functionResponseCount = 0;
371
- params.message.forEach((part) => {
372
- if (part && typeof part === 'object' && 'functionResponse' in part) {
373
- functionResponseCount++;
374
- }
375
- });
376
- if (functionResponseCount > 0) {
377
- if (process.env.DEBUG) {
378
- console.log(`[DEBUG geminiChat] Sending ${functionResponseCount} function response(s) in array`);
379
- }
380
- }
381
- }
382
- if (process.env.DEBUG) {
383
- console.log('DEBUG [geminiChat]: Created userContent:', JSON.stringify(userContent, null, 2));
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
- else if ('text' in part && part.text) {
448
- summary += ` [text: ${part.text.substring(0, 50)}...]`;
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 (process.env.DEBUG) {
470
- console.log('DEBUG [geminiChat]: About to call generateContentStream with:');
471
- console.log('DEBUG [geminiChat]: - Model:', modelToUse);
472
- console.log('DEBUG [geminiChat]: - Contents:', JSON.stringify(requestContents, null, 2));
473
- console.log('DEBUG [geminiChat]: - Config:', JSON.stringify({ ...this.generationConfig, ...params.config }, null, 2));
474
- console.log('DEBUG [geminiChat]: - Tools in generationConfig:', JSON.stringify(this.generationConfig.tools, null, 2));
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
- // Extract systemInstruction from generationConfig if it exists
483
- const { systemInstruction, ...restGenerationConfig } = this.generationConfig;
484
- // Create properly typed request parameters
485
- const mergedConfig = {
486
- ...restGenerationConfig,
487
- ...params.config,
488
- };
489
- // Add systemInstruction to the config if it exists
490
- if (systemInstruction) {
491
- mergedConfig.systemInstruction = systemInstruction;
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
- const requestParams = {
494
- model: modelToUse,
495
- contents: requestContents,
496
- config: mergedConfig,
497
- };
498
- return this.contentGenerator.generateContentStream(requestParams, prompt_id);
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, inputContent, startTime, prompt_id) {
596
- const outputContent = [];
597
- const chunks = [];
598
- let errorOccurred = false;
599
- try {
600
- for await (const chunk of streamResponse) {
601
- if (isValidResponse(chunk)) {
602
- chunks.push(chunk);
603
- const content = chunk.candidates?.[0]?.content;
604
- if (content !== undefined) {
605
- if (this.isThoughtContent(content)) {
606
- yield chunk;
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
- catch (error) {
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
- await this._logApiResponse(durationMs, prompt_id, this.getFinalUsageMetadata(chunks), JSON.stringify(chunks));
534
+ yield chunk; // Yield every chunk to the UI immediately.
630
535
  }
631
- this.recordHistory(inputContent, outputContent);
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 nonThoughtModelOutput = modelOutput.filter((content) => !this.isThoughtContent(content));
635
- let outputContents = [];
636
- if (nonThoughtModelOutput.length > 0 &&
637
- nonThoughtModelOutput.every((content) => content.role !== undefined)) {
638
- outputContents = nonThoughtModelOutput;
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
- // When not a function response appends an empty content when model returns empty response, so that the
646
- // history is always alternating between user and model.
647
- // Workaround for: https://b.corp.google.com/issues/420354090
648
- if (!isFunctionResponse(userInput)) {
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
- if (automaticFunctionCallingHistory &&
656
- automaticFunctionCallingHistory.length > 0) {
657
- this.history.push(...extractCuratedHistory(automaticFunctionCallingHistory));
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
- this.history.push(userInput);
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 adjacent model roles in outputContents
573
+ // Part 3: Consolidate the parts of this turn's model response.
663
574
  const consolidatedOutputContents = [];
664
- for (const content of outputContents) {
665
- if (this.isThoughtContent(content)) {
666
- continue;
667
- }
668
- const lastContent = consolidatedOutputContents[consolidatedOutputContents.length - 1];
669
- if (this.isTextContent(lastContent) && this.isTextContent(content)) {
670
- // If both current and last are text, combine their text into the lastContent's first part
671
- // and append any other parts from the current content.
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
- else {
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
- isTextContent(content) {
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
- trimPromptContents(contents, maxTokens) {
721
- if (contents.length === 0)
722
- return contents;
723
- // Always keep the last message (current user input)
724
- const lastMessage = contents[contents.length - 1];
725
- const result = [];
726
- // Reserve tokens for the last message and warning
727
- const lastMessageTokens = estimateTokens(JSON.stringify(lastMessage));
728
- const warningTokens = 200; // Reserve for warning message
729
- let remainingTokens = maxTokens - lastMessageTokens - warningTokens;
730
- if (remainingTokens <= 0) {
731
- // Even the last message is too big, truncate it
732
- return [this.truncateContent(lastMessage, maxTokens - warningTokens)];
733
- }
734
- // Add messages from most recent to oldest, stopping when we hit the limit
735
- for (let i = contents.length - 2; i >= 0; i--) {
736
- const content = contents[i];
737
- const contentTokens = estimateTokens(JSON.stringify(content));
738
- if (contentTokens <= remainingTokens) {
739
- result.unshift(content);
740
- remainingTokens -= contentTokens;
741
- }
742
- else if (remainingTokens > 100) {
743
- // Try to truncate this content to fit
744
- const truncated = this.truncateContent(content, remainingTokens);
745
- // Only add if we actually got some content back
746
- if (truncated.parts && truncated.parts.length > 0) {
747
- result.unshift(truncated);
748
- }
749
- break;
750
- }
751
- else {
752
- // No room left, stop
753
- break;
754
- }
755
- }
756
- // Add the last message
757
- result.push(lastMessage);
758
- return result;
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
- truncateContent(content, maxTokens) {
764
- if (!content.parts || content.parts.length === 0) {
765
- return content;
766
- }
767
- const truncatedParts = [];
768
- let currentTokens = 0;
769
- for (const part of content.parts) {
770
- if ('text' in part && part.text) {
771
- const partTokens = estimateTokens(part.text);
772
- if (currentTokens + partTokens <= maxTokens) {
773
- truncatedParts.push(part);
774
- currentTokens += partTokens;
775
- }
776
- else {
777
- // Truncate this part
778
- const remainingTokens = maxTokens - currentTokens;
779
- if (remainingTokens > 10) {
780
- const remainingChars = remainingTokens * 4;
781
- truncatedParts.push({
782
- text: part.text.substring(0, remainingChars) +
783
- '\n[...content truncated due to token limit...]',
784
- });
785
- }
786
- break;
787
- }
788
- }
789
- else {
790
- // Non-text parts (function calls, responses, etc) - NEVER truncate these
791
- // Either include them fully or skip them entirely to avoid breaking JSON
792
- const partTokens = estimateTokens(JSON.stringify(part));
793
- if (currentTokens + partTokens <= maxTokens) {
794
- truncatedParts.push(part);
795
- currentTokens += partTokens;
796
- }
797
- else {
798
- // Skip this part entirely - DO NOT truncate function calls/responses
799
- // Log what we're skipping for debugging
800
- if (process.env.DEBUG || process.env.VERBOSE) {
801
- let skipInfo = 'unknown part';
802
- if ('functionCall' in part) {
803
- const funcPart = part;
804
- skipInfo = `functionCall: ${funcPart.functionCall?.name || 'unnamed'}`;
805
- }
806
- else if ('functionResponse' in part) {
807
- const respPart = part;
808
- skipInfo = `functionResponse: ${respPart.functionResponse?.name || 'unnamed'}`;
809
- }
810
- console.warn(`INFO: Skipping ${skipInfo} due to token limit (needs ${partTokens} tokens, only ${maxTokens - currentTokens} available)`);
811
- }
812
- // Add a marker that content was omitted
813
- if (truncatedParts.length > 0 &&
814
- !truncatedParts.some((p) => 'text' in p &&
815
- p.text?.includes('[...function calls omitted due to token limit...]'))) {
816
- truncatedParts.push({
817
- text: '[...function calls omitted due to token limit...]',
818
- });
819
- }
820
- break;
821
- }
822
- }
823
- }
824
- return {
825
- role: content.role,
826
- parts: truncatedParts,
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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"}
@@ -58,7 +58,7 @@ export declare class IdeClient {
58
58
  error?: string;
59
59
  };
60
60
  private getPortFromEnv;
61
- private getPortFromFile;
61
+ private getIdeInfoFromFile;
62
62
  private createProxyAwareFetch;
63
63
  private registerClientHandlers;
64
64
  private establishConnection;
@@ -78,12 +78,15 @@ export class IdeClient {
78
78
  return;
79
79
  }
80
80
  this.setState(IDEConnectionStatus.Connecting);
81
- const { isValid, error } = IdeClient.validateWorkspacePath(process.env['LLXPRT_CODE_IDE_WORKSPACE_PATH'], this.currentIdeDisplayName, process.cwd());
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 = await this.getPortFromFile();
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 getPortFromFile() {
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 port = JSON.parse(portFileContents).port;
251
- return port.toString();
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 undefined;
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vybestack/llxprt-code-core",
3
- "version": "0.1.23-nightly.250826.6cba9007",
3
+ "version": "0.1.23-nightly.250828.9dff311e",
4
4
  "description": "LLxprt Code Core",
5
5
  "repository": {
6
6
  "type": "git",