@vybestack/llxprt-code-core 0.3.4-nightly.250913.eab05a51 → 0.3.4-nightly.250915.a114b9d3

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.
Files changed (45) hide show
  1. package/dist/src/config/config.js +65 -12
  2. package/dist/src/config/config.js.map +1 -1
  3. package/dist/src/core/client.d.ts +6 -0
  4. package/dist/src/core/client.js +49 -6
  5. package/dist/src/core/client.js.map +1 -1
  6. package/dist/src/core/geminiChat.js +17 -3
  7. package/dist/src/core/geminiChat.js.map +1 -1
  8. package/dist/src/index.d.ts +1 -0
  9. package/dist/src/index.js +2 -0
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/providers/BaseProvider.d.ts +5 -0
  12. package/dist/src/providers/BaseProvider.js +12 -0
  13. package/dist/src/providers/BaseProvider.js.map +1 -1
  14. package/dist/src/providers/IProviderManager.d.ts +32 -0
  15. package/dist/src/providers/LoggingProviderWrapper.d.ts +31 -0
  16. package/dist/src/providers/LoggingProviderWrapper.js +203 -8
  17. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  18. package/dist/src/providers/ProviderManager.d.ts +32 -2
  19. package/dist/src/providers/ProviderManager.js +82 -13
  20. package/dist/src/providers/ProviderManager.js.map +1 -1
  21. package/dist/src/providers/gemini/GeminiProvider.js +48 -4
  22. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  23. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +14 -2
  24. package/dist/src/providers/logging/ProviderPerformanceTracker.js +81 -4
  25. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -1
  26. package/dist/src/providers/openai/OpenAIProvider.js +114 -9
  27. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  28. package/dist/src/providers/types.d.ts +14 -0
  29. package/dist/src/providers/types.js +1 -0
  30. package/dist/src/providers/types.js.map +1 -1
  31. package/dist/src/telemetry/loggers.d.ts +13 -1
  32. package/dist/src/telemetry/loggers.js +38 -0
  33. package/dist/src/telemetry/loggers.js.map +1 -1
  34. package/dist/src/telemetry/types.d.ts +28 -1
  35. package/dist/src/telemetry/types.js +58 -0
  36. package/dist/src/telemetry/types.js.map +1 -1
  37. package/dist/src/telemetry/uiTelemetry.d.ts +24 -0
  38. package/dist/src/telemetry/uiTelemetry.js +21 -0
  39. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  40. package/dist/src/tools/glob.js +19 -5
  41. package/dist/src/tools/glob.js.map +1 -1
  42. package/dist/src/utils/retry.d.ts +2 -0
  43. package/dist/src/utils/retry.js +25 -10
  44. package/dist/src/utils/retry.js.map +1 -1
  45. package/package.json +2 -1
@@ -91,7 +91,7 @@ export class GeminiProvider extends BaseProvider {
91
91
  }
92
92
  else {
93
93
  // OAuth is disabled and no other auth method available
94
- throw new AuthenticationRequiredError('Web search requires Gemini authentication, but no API key is set and OAuth is disabled', 'none', ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
94
+ throw new AuthenticationRequiredError('Web search requires Gemini authentication, but no API key is set and OAuth is disabled. Hint: call /auth gemini enable', 'none', ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
95
95
  }
96
96
  }
97
97
  this.authMode = 'none';
@@ -124,7 +124,7 @@ export class GeminiProvider extends BaseProvider {
124
124
  }
125
125
  else {
126
126
  // OAuth is disabled and no other auth method available
127
- throw new AuthenticationRequiredError('Web search requires Gemini authentication, but no API key is set and OAuth is disabled', 'none', ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
127
+ throw new AuthenticationRequiredError('Web search requires Gemini authentication, but no API key is set and OAuth is disabled. Hint: call /auth gemini enable', 'none', ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
128
128
  }
129
129
  }
130
130
  throw error;
@@ -807,12 +807,27 @@ export class GeminiProvider extends BaseProvider {
807
807
  const functionCalls = response.candidates?.[0]?.content?.parts
808
808
  ?.filter((part) => 'functionCall' in part)
809
809
  ?.map((part) => part.functionCall) || [];
810
+ // Extract usage metadata from response
811
+ const usageMetadata = response.usageMetadata;
810
812
  // Yield text if present
811
813
  if (text) {
812
- yield {
814
+ const textContent = {
813
815
  speaker: 'ai',
814
816
  blocks: [{ type: 'text', text }],
815
817
  };
818
+ // Add usage metadata if present
819
+ if (usageMetadata) {
820
+ textContent.metadata = {
821
+ usage: {
822
+ promptTokens: usageMetadata.promptTokenCount || 0,
823
+ completionTokens: usageMetadata.candidatesTokenCount || 0,
824
+ totalTokens: usageMetadata.totalTokenCount ||
825
+ (usageMetadata.promptTokenCount || 0) +
826
+ (usageMetadata.candidatesTokenCount || 0),
827
+ },
828
+ };
829
+ }
830
+ yield textContent;
816
831
  }
817
832
  // Yield tool calls if present
818
833
  if (functionCalls.length > 0) {
@@ -823,10 +838,39 @@ export class GeminiProvider extends BaseProvider {
823
838
  name: call.name || 'unknown_function',
824
839
  parameters: call.args || {},
825
840
  }));
826
- yield {
841
+ const toolCallContent = {
827
842
  speaker: 'ai',
828
843
  blocks,
829
844
  };
845
+ // Add usage metadata if present
846
+ if (usageMetadata) {
847
+ toolCallContent.metadata = {
848
+ usage: {
849
+ promptTokens: usageMetadata.promptTokenCount || 0,
850
+ completionTokens: usageMetadata.candidatesTokenCount || 0,
851
+ totalTokens: usageMetadata.totalTokenCount ||
852
+ (usageMetadata.promptTokenCount || 0) +
853
+ (usageMetadata.candidatesTokenCount || 0),
854
+ },
855
+ };
856
+ }
857
+ yield toolCallContent;
858
+ }
859
+ // If we have usage metadata but no content blocks, emit a metadata-only response
860
+ if (usageMetadata && !text && functionCalls.length === 0) {
861
+ yield {
862
+ speaker: 'ai',
863
+ blocks: [],
864
+ metadata: {
865
+ usage: {
866
+ promptTokens: usageMetadata.promptTokenCount || 0,
867
+ completionTokens: usageMetadata.candidatesTokenCount || 0,
868
+ totalTokens: usageMetadata.totalTokenCount ||
869
+ (usageMetadata.promptTokenCount || 0) +
870
+ (usageMetadata.candidatesTokenCount || 0),
871
+ },
872
+ },
873
+ };
830
874
  }
831
875
  }
832
876
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  * @license
3
3
  * Copyright 2025 Vybestack LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
+ * @plan PLAN-20250909-TOKTRACK.P06a
6
+ * @plan PLAN-20250909-TOKTRACK.P08
5
7
  */
6
8
  import type { ProviderPerformanceMetrics } from '../types.js';
7
9
  /**
@@ -10,6 +12,8 @@ import type { ProviderPerformanceMetrics } from '../types.js';
10
12
  export declare class ProviderPerformanceTracker {
11
13
  private providerName;
12
14
  private metrics;
15
+ private tokenTimestamps;
16
+ private logger;
13
17
  constructor(providerName: string);
14
18
  private initializeMetrics;
15
19
  /**
@@ -24,6 +28,10 @@ export declare class ProviderPerformanceTracker {
24
28
  * Record an error that occurred during request
25
29
  */
26
30
  recordError(duration: number, error: string): void;
31
+ /**
32
+ * Track throttle wait time from 429 retries
33
+ */
34
+ trackThrottleWaitTime(waitTimeMs: number): void;
27
35
  /**
28
36
  * Get current performance metrics
29
37
  */
@@ -33,9 +41,13 @@ export declare class ProviderPerformanceTracker {
33
41
  */
34
42
  reset(): void;
35
43
  /**
36
- * Estimate token count from text content (rough approximation)
44
+ * Calculate tokens per minute based on recent token usage
45
+ */
46
+ private calculateTokensPerMinute;
47
+ /**
48
+ * Add throttle wait time to metrics
37
49
  */
38
- estimateTokenCount(text: string): number;
50
+ addThrottleWaitTime(waitTimeMs: number): void;
39
51
  /**
40
52
  * Get performance summary as human-readable string
41
53
  */
@@ -2,16 +2,23 @@
2
2
  * @license
3
3
  * Copyright 2025 Vybestack LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
+ * @plan PLAN-20250909-TOKTRACK.P06a
6
+ * @plan PLAN-20250909-TOKTRACK.P08
5
7
  */
8
+ import { DebugLogger } from '../../debug/index.js';
6
9
  /**
7
10
  * Performance tracking utility for provider operations
8
11
  */
9
12
  export class ProviderPerformanceTracker {
10
13
  providerName;
11
14
  metrics;
15
+ tokenTimestamps;
16
+ logger;
12
17
  constructor(providerName) {
13
18
  this.providerName = providerName;
14
19
  this.metrics = this.initializeMetrics();
20
+ this.tokenTimestamps = [];
21
+ this.logger = new DebugLogger('llxprt:performance:tracker');
15
22
  }
16
23
  initializeMetrics() {
17
24
  return {
@@ -21,9 +28,19 @@ export class ProviderPerformanceTracker {
21
28
  averageLatency: 0,
22
29
  timeToFirstToken: null,
23
30
  tokensPerSecond: 0,
31
+ tokensPerMinute: 0,
32
+ throttleWaitTimeMs: 0,
24
33
  chunksReceived: 0,
25
34
  errorRate: 0,
26
35
  errors: [],
36
+ sessionTokenUsage: {
37
+ input: 0,
38
+ output: 0,
39
+ cache: 0,
40
+ tool: 0,
41
+ thought: 0,
42
+ total: 0,
43
+ },
27
44
  };
28
45
  }
29
46
  /**
@@ -50,6 +67,9 @@ export class ProviderPerformanceTracker {
50
67
  this.metrics.tokensPerSecond = tokenCount / (totalTime / 1000);
51
68
  }
52
69
  this.metrics.chunksReceived = chunkCount;
70
+ // Track token timestamps for calculating TPM
71
+ this.tokenTimestamps.push({ timestamp: Date.now(), tokenCount });
72
+ this.calculateTokensPerMinute();
53
73
  }
54
74
  /**
55
75
  * Record an error that occurred during request
@@ -64,6 +84,13 @@ export class ProviderPerformanceTracker {
64
84
  const totalAttempts = this.metrics.totalRequests + 1;
65
85
  this.metrics.errorRate = this.metrics.errors.length / totalAttempts;
66
86
  }
87
+ /**
88
+ * Track throttle wait time from 429 retries
89
+ */
90
+ trackThrottleWaitTime(waitTimeMs) {
91
+ this.metrics.throttleWaitTimeMs += waitTimeMs;
92
+ this.logger.debug(() => `Tracked ${waitTimeMs}ms throttle wait. Total: ${this.metrics.throttleWaitTimeMs}ms for ${this.providerName}`);
93
+ }
67
94
  /**
68
95
  * Get current performance metrics
69
96
  */
@@ -75,13 +102,63 @@ export class ProviderPerformanceTracker {
75
102
  */
76
103
  reset() {
77
104
  this.metrics = this.initializeMetrics();
105
+ this.tokenTimestamps = [];
106
+ }
107
+ /**
108
+ * Calculate tokens per minute based on recent token usage
109
+ */
110
+ calculateTokensPerMinute() {
111
+ const now = Date.now();
112
+ // Filter to keep only entries within last 60 seconds
113
+ this.tokenTimestamps = this.tokenTimestamps.filter((entry) => now - entry.timestamp <= 60000);
114
+ // Sum token counts from filtered entries
115
+ const totalRecentTokens = this.tokenTimestamps.reduce((sum, entry) => sum + entry.tokenCount, 0);
116
+ // Calculate actual time span in minutes
117
+ let timeSpanInMinutes = 1; // Default to 1 minute
118
+ if (this.tokenTimestamps.length > 1) {
119
+ const timestamps = this.tokenTimestamps
120
+ .map((entry) => entry.timestamp)
121
+ .sort((a, b) => a - b);
122
+ const oldestTimestamp = timestamps[0];
123
+ const newestTimestamp = timestamps[timestamps.length - 1];
124
+ timeSpanInMinutes = (newestTimestamp - oldestTimestamp) / 60000;
125
+ // When timeSpanInMinutes is 0 (because all timestamps are identical),
126
+ // but we have multiple token counts, calculate rate as if tokens were
127
+ // processed over a minimal time period to show activity
128
+ if (timeSpanInMinutes <= 0) {
129
+ // For identical timestamps with multiple entries, assume minimum processing time
130
+ // This represents the theoretical maximum rate for the tokens processed
131
+ timeSpanInMinutes = 0.001; // 60ms minimum observable time unit
132
+ }
133
+ }
134
+ else if (this.tokenTimestamps.length === 0) {
135
+ // Handle case when there are no timestamp entries
136
+ this.metrics.tokensPerMinute = 0;
137
+ return;
138
+ }
139
+ else if (this.tokenTimestamps.length === 1) {
140
+ // For a single token record, use a minimum time span to ensure non-zero TPM
141
+ timeSpanInMinutes = 0.001; // 60ms minimum observable time unit
142
+ }
143
+ // Update metrics with calculated tokens per minute as a rate
144
+ // Ensure that we never divide by zero or get NaN
145
+ if (timeSpanInMinutes > 0 &&
146
+ !isNaN(totalRecentTokens) &&
147
+ isFinite(totalRecentTokens / timeSpanInMinutes)) {
148
+ this.metrics.tokensPerMinute = totalRecentTokens / timeSpanInMinutes;
149
+ }
150
+ else {
151
+ this.metrics.tokensPerMinute = 0;
152
+ }
78
153
  }
79
154
  /**
80
- * Estimate token count from text content (rough approximation)
155
+ * Add throttle wait time to metrics
81
156
  */
82
- estimateTokenCount(text) {
83
- // Rough token estimation (actual tokenization would be provider-specific)
84
- return Math.ceil(text.length / 4); // Approximate tokens per character
157
+ addThrottleWaitTime(waitTimeMs) {
158
+ // Only add positive wait times
159
+ if (waitTimeMs > 0) {
160
+ this.metrics.throttleWaitTimeMs += waitTimeMs;
161
+ }
85
162
  }
86
163
  /**
87
164
  * Get performance summary as human-readable string
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderPerformanceTracker.js","sourceRoot":"","sources":["../../../../src/providers/logging/ProviderPerformanceTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProviderPerformanceTracker.js","sourceRoot":"","sources":["../../../../src/providers/logging/ProviderPerformanceTracker.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,9 @@ export class OpenAIProvider extends BaseProvider {
135
135
  const baseOptions = {
136
136
  apiKey: resolvedKey || '',
137
137
  baseURL,
138
+ // CRITICAL: Disable OpenAI SDK's built-in retries so our retry logic can handle them
139
+ // This allows us to track throttle wait times properly
140
+ maxRetries: 0,
138
141
  };
139
142
  // Add socket configuration if available
140
143
  const clientOptions = agents
@@ -470,6 +473,12 @@ export class OpenAIProvider extends BaseProvider {
470
473
  const ephemeralSettings = this.providerConfig?.getEphemeralSettings?.() || {};
471
474
  const maxRetries = ephemeralSettings['retries'] ?? 6; // Default for OpenAI
472
475
  const initialDelayMs = ephemeralSettings['retrywait'] ?? 4000; // Default for OpenAI
476
+ // Get stream options from ephemeral settings (default: include usage for token tracking)
477
+ const streamOptions = ephemeralSettings['stream-options'] || { include_usage: true };
478
+ // Add stream options to request if streaming is enabled
479
+ if (streamingEnabled && streamOptions) {
480
+ Object.assign(requestBody, { stream_options: streamOptions });
481
+ }
473
482
  // Log the exact tools being sent for debugging
474
483
  if (this.logger.enabled && 'tools' in requestBody) {
475
484
  this.logger.debug(() => `[OpenAIProvider] Exact tools being sent to API:`, {
@@ -480,12 +489,19 @@ export class OpenAIProvider extends BaseProvider {
480
489
  }
481
490
  // Wrap the API call with retry logic using centralized retry utility
482
491
  let response;
492
+ // Debug log throttle tracker status
493
+ this.logger.debug(() => `Retry configuration:`, {
494
+ hasThrottleTracker: !!this.throttleTracker,
495
+ throttleTrackerType: typeof this.throttleTracker,
496
+ maxRetries,
497
+ initialDelayMs,
498
+ });
483
499
  try {
484
500
  response = await retryWithBackoff(() => client.chat.completions.create(requestBody, { signal: abortSignal }), {
485
501
  maxAttempts: maxRetries,
486
502
  initialDelayMs,
487
- maxDelayMs: 30000, // 30 seconds
488
503
  shouldRetry: this.shouldRetryResponse.bind(this),
504
+ trackThrottleWaitTime: this.throttleTracker,
489
505
  });
490
506
  }
491
507
  catch (error) {
@@ -520,12 +536,18 @@ export class OpenAIProvider extends BaseProvider {
520
536
  // Use the same detected format from earlier for consistency
521
537
  // Buffer text for Qwen format providers to avoid stanza formatting
522
538
  const shouldBufferText = detectedFormat === 'qwen';
539
+ // Track token usage from streaming chunks
540
+ let streamingUsage = null;
523
541
  try {
524
542
  // Handle streaming response
525
543
  for await (const chunk of response) {
526
544
  if (abortSignal?.aborted) {
527
545
  break;
528
546
  }
547
+ // Extract usage information if present (typically in final chunk)
548
+ if (chunk.usage) {
549
+ streamingUsage = chunk.usage;
550
+ }
529
551
  const choice = chunk.choices?.[0];
530
552
  if (!choice)
531
553
  continue;
@@ -689,12 +711,41 @@ export class OpenAIProvider extends BaseProvider {
689
711
  });
690
712
  }
691
713
  if (blocks.length > 0) {
692
- yield {
714
+ const toolCallsContent = {
693
715
  speaker: 'ai',
694
716
  blocks,
695
717
  };
718
+ // Add usage metadata if we captured it from streaming
719
+ if (streamingUsage) {
720
+ toolCallsContent.metadata = {
721
+ usage: {
722
+ promptTokens: streamingUsage.prompt_tokens || 0,
723
+ completionTokens: streamingUsage.completion_tokens || 0,
724
+ totalTokens: streamingUsage.total_tokens ||
725
+ (streamingUsage.prompt_tokens || 0) +
726
+ (streamingUsage.completion_tokens || 0),
727
+ },
728
+ };
729
+ }
730
+ yield toolCallsContent;
696
731
  }
697
732
  }
733
+ // If we have usage information but no tool calls, emit a metadata-only response
734
+ if (streamingUsage && accumulatedToolCalls.length === 0) {
735
+ yield {
736
+ speaker: 'ai',
737
+ blocks: [],
738
+ metadata: {
739
+ usage: {
740
+ promptTokens: streamingUsage.prompt_tokens || 0,
741
+ completionTokens: streamingUsage.completion_tokens || 0,
742
+ totalTokens: streamingUsage.total_tokens ||
743
+ (streamingUsage.prompt_tokens || 0) +
744
+ (streamingUsage.completion_tokens || 0),
745
+ },
746
+ },
747
+ };
748
+ }
698
749
  }
699
750
  else {
700
751
  // Handle non-streaming response
@@ -745,10 +796,39 @@ export class OpenAIProvider extends BaseProvider {
745
796
  }
746
797
  // Emit the complete response as a single IContent
747
798
  if (blocks.length > 0) {
748
- yield {
799
+ const responseContent = {
749
800
  speaker: 'ai',
750
801
  blocks,
751
802
  };
803
+ // Add usage metadata from non-streaming response
804
+ if (completion.usage) {
805
+ responseContent.metadata = {
806
+ usage: {
807
+ promptTokens: completion.usage.prompt_tokens || 0,
808
+ completionTokens: completion.usage.completion_tokens || 0,
809
+ totalTokens: completion.usage.total_tokens ||
810
+ (completion.usage.prompt_tokens || 0) +
811
+ (completion.usage.completion_tokens || 0),
812
+ },
813
+ };
814
+ }
815
+ yield responseContent;
816
+ }
817
+ else if (completion.usage) {
818
+ // Emit metadata-only response if no content blocks but have usage info
819
+ yield {
820
+ speaker: 'ai',
821
+ blocks: [],
822
+ metadata: {
823
+ usage: {
824
+ promptTokens: completion.usage.prompt_tokens || 0,
825
+ completionTokens: completion.usage.completion_tokens || 0,
826
+ totalTokens: completion.usage.total_tokens ||
827
+ (completion.usage.prompt_tokens || 0) +
828
+ (completion.usage.completion_tokens || 0),
829
+ },
830
+ },
831
+ };
752
832
  }
753
833
  }
754
834
  }
@@ -842,13 +922,38 @@ export class OpenAIProvider extends BaseProvider {
842
922
  error.status === 200) {
843
923
  return false;
844
924
  }
925
+ // Check OpenAI SDK v5 error structure
926
+ let status;
927
+ // OpenAI SDK v5 error structure
928
+ if (error && typeof error === 'object' && 'status' in error) {
929
+ status = error.status;
930
+ }
931
+ // Also check error.response?.status for axios-style errors
932
+ if (!status && error && typeof error === 'object' && 'response' in error) {
933
+ const response = error.response;
934
+ if (response && typeof response === 'object' && 'status' in response) {
935
+ status = response.status;
936
+ }
937
+ }
938
+ // Also check error message for 429
939
+ if (!status && error instanceof Error) {
940
+ if (error.message.includes('429')) {
941
+ status = 429;
942
+ }
943
+ }
944
+ // Log what we're seeing
945
+ this.logger.debug(() => `shouldRetryResponse checking error:`, {
946
+ hasError: !!error,
947
+ errorType: error?.constructor?.name,
948
+ status,
949
+ errorMessage: error instanceof Error ? error.message : String(error),
950
+ errorKeys: error && typeof error === 'object' ? Object.keys(error) : [],
951
+ });
845
952
  // Retry on 429 rate limit errors or 5xx server errors
846
- const shouldRetry = Boolean(error &&
847
- typeof error === 'object' &&
848
- 'status' in error &&
849
- (error.status === 429 ||
850
- (error.status >= 500 &&
851
- error.status < 600)));
953
+ const shouldRetry = Boolean(status === 429 || (status && status >= 500 && status < 600));
954
+ if (shouldRetry) {
955
+ this.logger.debug(() => `Will retry request due to status ${status}`);
956
+ }
852
957
  return shouldRetry;
853
958
  }
854
959
  }