@vybestack/llxprt-code-core 0.1.23-nightly.250904.97906524 → 0.1.23-nightly.250905.67589d14
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/adapters/IStreamAdapter.d.ts +3 -3
- package/dist/src/auth/types.d.ts +4 -4
- package/dist/src/config/index.d.ts +7 -0
- package/dist/src/config/index.js +8 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/core/client.d.ts +9 -21
- package/dist/src/core/client.js +46 -144
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/compression-config.d.ts +1 -1
- package/dist/src/core/compression-config.js +4 -5
- package/dist/src/core/compression-config.js.map +1 -1
- package/dist/src/core/coreToolScheduler.js +50 -15
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +51 -2
- package/dist/src/core/geminiChat.js +592 -93
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +70 -19
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/providers/BaseProvider.d.ts +8 -3
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/IProvider.d.ts +9 -3
- package/dist/src/providers/LoggingProviderWrapper.d.ts +10 -3
- package/dist/src/providers/LoggingProviderWrapper.js +33 -27
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
- package/dist/src/providers/ProviderContentGenerator.js +9 -6
- package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +12 -17
- package/dist/src/providers/anthropic/AnthropicProvider.js +238 -447
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +12 -6
- package/dist/src/providers/gemini/GeminiProvider.js +184 -458
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/ConversationCache.d.ts +3 -3
- package/dist/src/providers/openai/IChatGenerateParams.d.ts +9 -4
- package/dist/src/providers/openai/OpenAIProvider.d.ts +14 -61
- package/dist/src/providers/openai/OpenAIProvider.js +270 -575
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/buildResponsesRequest.d.ts +3 -3
- package/dist/src/providers/openai/buildResponsesRequest.js +67 -37
- package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -1
- package/dist/src/providers/openai/estimateRemoteTokens.d.ts +2 -2
- package/dist/src/providers/openai/estimateRemoteTokens.js +21 -8
- package/dist/src/providers/openai/estimateRemoteTokens.js.map +1 -1
- package/dist/src/providers/openai/parseResponsesStream.d.ts +6 -2
- package/dist/src/providers/openai/parseResponsesStream.js +99 -391
- package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
- package/dist/src/providers/openai/syntheticToolResponses.d.ts +5 -5
- package/dist/src/providers/openai/syntheticToolResponses.js +102 -91
- package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -1
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +16 -17
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +222 -224
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
- package/dist/src/providers/types.d.ts +1 -1
- package/dist/src/services/history/ContentConverters.d.ts +6 -1
- package/dist/src/services/history/ContentConverters.js +155 -18
- package/dist/src/services/history/ContentConverters.js.map +1 -1
- package/dist/src/services/history/HistoryService.d.ts +52 -0
- package/dist/src/services/history/HistoryService.js +245 -93
- package/dist/src/services/history/HistoryService.js.map +1 -1
- package/dist/src/services/history/IContent.d.ts +4 -0
- package/dist/src/services/history/IContent.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +16 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/IToolFormatter.d.ts +2 -2
- package/dist/src/tools/ToolFormatter.d.ts +3 -3
- package/dist/src/tools/ToolFormatter.js +80 -37
- package/dist/src/tools/ToolFormatter.js.map +1 -1
- package/dist/src/tools/todo-schemas.d.ts +4 -4
- package/package.json +8 -7
- package/dist/src/core/ContentGeneratorAdapter.d.ts +0 -37
- package/dist/src/core/ContentGeneratorAdapter.js +0 -58
- package/dist/src/core/ContentGeneratorAdapter.js.map +0 -1
- package/dist/src/providers/IMessage.d.ts +0 -38
- package/dist/src/providers/IMessage.js +0 -17
- package/dist/src/providers/IMessage.js.map +0 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.d.ts +0 -69
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +0 -577
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +0 -1
@@ -13,14 +13,39 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
+
import { DebugLogger } from '../../debug/index.js';
|
16
17
|
/**
|
17
18
|
* Converts between Gemini Content format and IContent format
|
18
19
|
*/
|
19
20
|
export class ContentConverters {
|
21
|
+
static logger = new DebugLogger('llxprt:content:converters');
|
22
|
+
static normalizeToHistoryId(id) {
|
23
|
+
if (!id)
|
24
|
+
return undefined;
|
25
|
+
if (id.startsWith('hist_tool_'))
|
26
|
+
return id;
|
27
|
+
if (id.startsWith('call_'))
|
28
|
+
return `hist_tool_${id.substring('call_'.length)}`;
|
29
|
+
if (id.startsWith('toolu_'))
|
30
|
+
return `hist_tool_${id.substring('toolu_'.length)}`;
|
31
|
+
// Unknown provider format: preserve suffix, add history prefix
|
32
|
+
return `hist_tool_${id}`;
|
33
|
+
}
|
20
34
|
/**
|
21
35
|
* Convert IContent to Gemini Content format
|
22
36
|
*/
|
23
37
|
static toGeminiContent(iContent) {
|
38
|
+
this.logger.debug('Converting IContent to Gemini Content:', {
|
39
|
+
speaker: iContent.speaker,
|
40
|
+
blockCount: iContent.blocks?.length || 0,
|
41
|
+
blockTypes: iContent.blocks?.map((b) => b.type) || [],
|
42
|
+
toolCallIds: iContent.blocks
|
43
|
+
?.filter((b) => b.type === 'tool_call')
|
44
|
+
.map((b) => b.id) || [],
|
45
|
+
toolResponseCallIds: iContent.blocks
|
46
|
+
?.filter((b) => b.type === 'tool_response')
|
47
|
+
.map((b) => b.callId) || [],
|
48
|
+
});
|
24
49
|
// Tool responses should have 'user' role in Gemini format
|
25
50
|
let role;
|
26
51
|
if (iContent.speaker === 'tool') {
|
@@ -42,6 +67,11 @@ export class ContentConverters {
|
|
42
67
|
}
|
43
68
|
case 'tool_call': {
|
44
69
|
const toolCall = block;
|
70
|
+
this.logger.debug('Converting tool_call block to functionCall:', {
|
71
|
+
id: toolCall.id,
|
72
|
+
name: toolCall.name,
|
73
|
+
hasParameters: !!toolCall.parameters,
|
74
|
+
});
|
45
75
|
parts.push({
|
46
76
|
functionCall: {
|
47
77
|
name: toolCall.name,
|
@@ -53,6 +83,12 @@ export class ContentConverters {
|
|
53
83
|
}
|
54
84
|
case 'tool_response': {
|
55
85
|
const toolResponse = block;
|
86
|
+
this.logger.debug('Converting tool_response block to functionResponse:', {
|
87
|
+
callId: toolResponse.callId,
|
88
|
+
toolName: toolResponse.toolName,
|
89
|
+
hasResult: !!toolResponse.result,
|
90
|
+
hasError: !!toolResponse.error,
|
91
|
+
});
|
56
92
|
parts.push({
|
57
93
|
functionResponse: {
|
58
94
|
name: toolResponse.toolName,
|
@@ -91,12 +127,56 @@ export class ContentConverters {
|
|
91
127
|
}
|
92
128
|
// Keep empty parts array for empty model responses
|
93
129
|
// This is valid in Gemini Content format
|
94
|
-
|
130
|
+
const result = { role, parts };
|
131
|
+
this.logger.debug('Converted to Gemini Content:', {
|
132
|
+
role,
|
133
|
+
partCount: parts.length,
|
134
|
+
partTypes: parts.map((p) => {
|
135
|
+
if ('text' in p)
|
136
|
+
return 'text';
|
137
|
+
if ('functionCall' in p)
|
138
|
+
return 'functionCall';
|
139
|
+
if ('functionResponse' in p)
|
140
|
+
return 'functionResponse';
|
141
|
+
if ('thought' in p)
|
142
|
+
return 'thought';
|
143
|
+
return 'other';
|
144
|
+
}),
|
145
|
+
functionCallIds: parts
|
146
|
+
.filter((p) => 'functionCall' in p)
|
147
|
+
.map((p) => p.functionCall?.id),
|
148
|
+
functionResponseIds: parts
|
149
|
+
.filter((p) => 'functionResponse' in p)
|
150
|
+
.map((p) => p.functionResponse?.id),
|
151
|
+
});
|
152
|
+
return result;
|
95
153
|
}
|
96
154
|
/**
|
97
155
|
* Convert Gemini Content to IContent format
|
98
156
|
*/
|
99
|
-
static toIContent(content) {
|
157
|
+
static toIContent(content, generateIdCb, getNextUnmatchedToolCall) {
|
158
|
+
this.logger.debug('Converting Gemini Content to IContent:', {
|
159
|
+
role: content.role,
|
160
|
+
partCount: content.parts?.length || 0,
|
161
|
+
partTypes: content.parts?.map((p) => {
|
162
|
+
if ('text' in p)
|
163
|
+
return 'text';
|
164
|
+
if ('functionCall' in p)
|
165
|
+
return 'functionCall';
|
166
|
+
if ('functionResponse' in p)
|
167
|
+
return 'functionResponse';
|
168
|
+
if ('thought' in p)
|
169
|
+
return 'thought';
|
170
|
+
return 'other';
|
171
|
+
}) || [],
|
172
|
+
functionCallIds: content.parts
|
173
|
+
?.filter((p) => 'functionCall' in p)
|
174
|
+
.map((p) => p.functionCall?.id) || [],
|
175
|
+
functionResponseIds: content.parts
|
176
|
+
?.filter((p) => 'functionResponse' in p)
|
177
|
+
.map((p) => p.functionResponse
|
178
|
+
?.id) || [],
|
179
|
+
});
|
100
180
|
const speaker = content.role === 'user' ? 'human' : 'ai';
|
101
181
|
const blocks = [];
|
102
182
|
// Handle empty parts array explicitly
|
@@ -123,18 +203,43 @@ export class ContentConverters {
|
|
123
203
|
}
|
124
204
|
}
|
125
205
|
else if ('functionCall' in part && part.functionCall) {
|
206
|
+
// Preserve original ID by normalizing prefix; generate only if missing.
|
207
|
+
const normalized = this.normalizeToHistoryId(part.functionCall.id);
|
208
|
+
const finalId = normalized ?? (generateIdCb ? generateIdCb() : generateId());
|
209
|
+
this.logger.debug('Converting functionCall to tool_call block:', {
|
210
|
+
originalId: part.functionCall.id,
|
211
|
+
finalId,
|
212
|
+
name: part.functionCall.name,
|
213
|
+
usedCallback: !!generateIdCb && !normalized,
|
214
|
+
});
|
126
215
|
blocks.push({
|
127
216
|
type: 'tool_call',
|
128
|
-
id:
|
217
|
+
id: finalId,
|
129
218
|
name: part.functionCall.name || '',
|
130
219
|
parameters: part.functionCall.args || {},
|
131
220
|
});
|
132
221
|
}
|
133
222
|
else if ('functionResponse' in part && part.functionResponse) {
|
223
|
+
// Prefer provided ID (normalized). If absent, use positional matcher; else generate.
|
224
|
+
const normalized = this.normalizeToHistoryId(part.functionResponse.id);
|
225
|
+
const matched = !normalized
|
226
|
+
? getNextUnmatchedToolCall?.()
|
227
|
+
: undefined;
|
228
|
+
const callId = normalized ??
|
229
|
+
matched?.historyId ??
|
230
|
+
(generateIdCb ? generateIdCb() : generateId());
|
231
|
+
this.logger.debug('Converting functionResponse to tool_response block:', {
|
232
|
+
originalId: part.functionResponse.id,
|
233
|
+
finalId: callId,
|
234
|
+
toolName: part.functionResponse.name,
|
235
|
+
matchedByPosition: !!matched,
|
236
|
+
});
|
134
237
|
blocks.push({
|
135
238
|
type: 'tool_response',
|
136
|
-
callId
|
137
|
-
toolName:
|
239
|
+
callId,
|
240
|
+
toolName: (matched?.toolName ||
|
241
|
+
part.functionResponse.name ||
|
242
|
+
''),
|
138
243
|
result: part.functionResponse.response || {},
|
139
244
|
});
|
140
245
|
}
|
@@ -151,38 +256,70 @@ export class ContentConverters {
|
|
151
256
|
}
|
152
257
|
// Handle tool responses specially - they should have 'tool' speaker
|
153
258
|
// Tool responses come from user role but are tool speaker in IContent
|
154
|
-
|
259
|
+
const finalSpeaker = content.role === 'user' &&
|
155
260
|
blocks.length > 0 &&
|
156
|
-
blocks.every((b) => b.type === 'tool_response')
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
};
|
162
|
-
}
|
163
|
-
return {
|
164
|
-
speaker,
|
261
|
+
blocks.every((b) => b.type === 'tool_response')
|
262
|
+
? 'tool'
|
263
|
+
: speaker;
|
264
|
+
const result = {
|
265
|
+
speaker: finalSpeaker,
|
165
266
|
blocks,
|
166
267
|
metadata: {},
|
167
268
|
};
|
269
|
+
this.logger.debug('Converted to IContent:', {
|
270
|
+
originalRole: content.role,
|
271
|
+
finalSpeaker,
|
272
|
+
blockCount: blocks.length,
|
273
|
+
blockTypes: blocks.map((b) => b.type),
|
274
|
+
toolCallIds: blocks
|
275
|
+
.filter((b) => b.type === 'tool_call')
|
276
|
+
.map((b) => b.id),
|
277
|
+
toolResponseCallIds: blocks
|
278
|
+
.filter((b) => b.type === 'tool_response')
|
279
|
+
.map((b) => b.callId),
|
280
|
+
});
|
281
|
+
return result;
|
168
282
|
}
|
169
283
|
/**
|
170
284
|
* Convert array of IContent to array of Gemini Content
|
171
285
|
*/
|
172
286
|
static toGeminiContents(iContents) {
|
173
|
-
|
287
|
+
this.logger.debug('Converting IContent array to Gemini Contents:', {
|
288
|
+
count: iContents.length,
|
289
|
+
speakers: iContents.map((ic) => ic.speaker),
|
290
|
+
totalToolCalls: iContents.reduce((acc, ic) => acc + ic.blocks.filter((b) => b.type === 'tool_call').length, 0),
|
291
|
+
totalToolResponses: iContents.reduce((acc, ic) => acc + ic.blocks.filter((b) => b.type === 'tool_response').length, 0),
|
292
|
+
});
|
293
|
+
const results = iContents.map((ic) => this.toGeminiContent(ic));
|
294
|
+
this.logger.debug('Conversion complete:', {
|
295
|
+
resultCount: results.length,
|
296
|
+
roles: results.map((r) => r.role),
|
297
|
+
});
|
298
|
+
return results;
|
174
299
|
}
|
175
300
|
/**
|
176
301
|
* Convert array of Gemini Content to array of IContent
|
177
302
|
*/
|
178
303
|
static toIContents(contents) {
|
179
|
-
|
304
|
+
this.logger.debug('Converting Gemini Contents array to IContent:', {
|
305
|
+
count: contents.length,
|
306
|
+
roles: contents.map((c) => c.role),
|
307
|
+
totalFunctionCalls: contents.reduce((acc, c) => acc + (c.parts?.filter((p) => 'functionCall' in p).length || 0), 0),
|
308
|
+
totalFunctionResponses: contents.reduce((acc, c) => acc + (c.parts?.filter((p) => 'functionResponse' in p).length || 0), 0),
|
309
|
+
});
|
310
|
+
const results = contents.map((c) => this.toIContent(c));
|
311
|
+
this.logger.debug('Conversion complete:', {
|
312
|
+
resultCount: results.length,
|
313
|
+
speakers: results.map((r) => r.speaker),
|
314
|
+
});
|
315
|
+
return results;
|
180
316
|
}
|
181
317
|
}
|
182
318
|
/**
|
183
319
|
* Generate a unique ID for tool calls
|
184
320
|
*/
|
185
321
|
function generateId() {
|
186
|
-
|
322
|
+
// Use normalized history ID prefix; providers convert prefixes as needed.
|
323
|
+
return `hist_tool_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
187
324
|
}
|
188
325
|
//# sourceMappingURL=ContentConverters.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ContentConverters.js","sourceRoot":"","sources":["../../../../src/services/history/ContentConverters.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ContentConverters.js","sourceRoot":"","sources":["../../../../src/services/history/ContentConverters.ts"],"names":[],"mappings":"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"}
|
@@ -24,6 +24,15 @@ interface HistoryServiceEventEmitter {
|
|
24
24
|
emit(event: 'tokensUpdated', eventData: TokensUpdatedEvent): boolean;
|
25
25
|
off(event: 'tokensUpdated', listener: (eventData: TokensUpdatedEvent) => void): this;
|
26
26
|
}
|
27
|
+
/**
|
28
|
+
* Configuration for compression behavior
|
29
|
+
*/
|
30
|
+
export interface CompressionConfig {
|
31
|
+
orphanTimeoutMs: number;
|
32
|
+
orphanMessageDistance: number;
|
33
|
+
pendingGracePeriodMs: number;
|
34
|
+
minMessagesForCompression: number;
|
35
|
+
}
|
27
36
|
/**
|
28
37
|
* Service for managing conversation history in a provider-agnostic way.
|
29
38
|
* All history is stored as IContent. Providers are responsible for converting
|
@@ -34,10 +43,23 @@ export declare class HistoryService extends EventEmitter implements HistoryServi
|
|
34
43
|
private totalTokens;
|
35
44
|
private tokenizerCache;
|
36
45
|
private tokenizerLock;
|
46
|
+
private logger;
|
47
|
+
private isCompressing;
|
48
|
+
private pendingOperations;
|
37
49
|
/**
|
38
50
|
* Get or create tokenizer for a specific model
|
39
51
|
*/
|
40
52
|
private getTokenizerForModel;
|
53
|
+
/**
|
54
|
+
* Generate a new normalized history tool ID.
|
55
|
+
* Format: hist_tool_<uuid-v4>
|
56
|
+
*/
|
57
|
+
generateHistoryId(): string;
|
58
|
+
/**
|
59
|
+
* Get a callback suitable for passing into converters
|
60
|
+
* which will generate normalized history IDs on demand.
|
61
|
+
*/
|
62
|
+
getIdGeneratorCallback(): () => string;
|
41
63
|
/**
|
42
64
|
* Get the current total token count
|
43
65
|
*/
|
@@ -48,6 +70,7 @@ export declare class HistoryService extends EventEmitter implements HistoryServi
|
|
48
70
|
* Filtering happens only when getting curated history.
|
49
71
|
*/
|
50
72
|
add(content: IContent, modelName?: string): void;
|
73
|
+
private addInternal;
|
51
74
|
/**
|
52
75
|
* Atomically update token count for new content
|
53
76
|
*/
|
@@ -72,6 +95,7 @@ export declare class HistoryService extends EventEmitter implements HistoryServi
|
|
72
95
|
* Clear all history
|
73
96
|
*/
|
74
97
|
clear(): void;
|
98
|
+
private clearInternal;
|
75
99
|
/**
|
76
100
|
* Get the last N messages from history
|
77
101
|
*/
|
@@ -133,6 +157,19 @@ export declare class HistoryService extends EventEmitter implements HistoryServi
|
|
133
157
|
* Validate and fix the history to ensure proper tool call/response pairing
|
134
158
|
*/
|
135
159
|
validateAndFix(): void;
|
160
|
+
/**
|
161
|
+
* Get curated history with circular references removed for providers.
|
162
|
+
* This ensures the history can be safely serialized and sent to providers.
|
163
|
+
*/
|
164
|
+
getCuratedForProvider(): IContent[];
|
165
|
+
/**
|
166
|
+
* Deep clone content array, removing circular references
|
167
|
+
*/
|
168
|
+
private deepCloneWithoutCircularRefs;
|
169
|
+
/**
|
170
|
+
* Sanitize parameters to remove circular references
|
171
|
+
*/
|
172
|
+
private sanitizeParams;
|
136
173
|
/**
|
137
174
|
* Merge two histories, handling duplicates and conflicts
|
138
175
|
*/
|
@@ -153,6 +190,21 @@ export declare class HistoryService extends EventEmitter implements HistoryServi
|
|
153
190
|
* Import history from JSON
|
154
191
|
*/
|
155
192
|
static fromJSON(json: string): HistoryService;
|
193
|
+
/**
|
194
|
+
* Mark compression as starting
|
195
|
+
* This will cause add() operations to queue until compression completes
|
196
|
+
*/
|
197
|
+
startCompression(): void;
|
198
|
+
/**
|
199
|
+
* Mark compression as complete
|
200
|
+
* This will flush all queued operations
|
201
|
+
*/
|
202
|
+
endCompression(): void;
|
203
|
+
/**
|
204
|
+
* Wait for all pending operations to complete
|
205
|
+
* For synchronous operations, this is now a no-op but kept for API compatibility
|
206
|
+
*/
|
207
|
+
waitForPendingOperations(): Promise<void>;
|
156
208
|
/**
|
157
209
|
* Get conversation statistics
|
158
210
|
*/
|