@google/gemini-cli-core 0.55.0-preview.0 → 0.55.0-preview.1
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 +10 -0
- package/dist/src/core/geminiChat.js +53 -1
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +219 -0
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/services/chatRecordingService.d.ts +6 -0
- package/dist/src/services/chatRecordingService.js +70 -1
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +93 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/utils/errorParsing.test.js +8 -0
- package/dist/src/utils/errorParsing.test.js.map +1 -1
- package/dist/src/utils/googleErrors.js +68 -1
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/googleErrors.test.js +90 -0
- package/dist/src/utils/googleErrors.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +6 -4
- package/dist/src/utils/googleQuotaErrors.js +15 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.js +3 -1
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -36,6 +36,11 @@ export type StreamEvent = {
|
|
|
36
36
|
reason: string;
|
|
37
37
|
};
|
|
38
38
|
export declare const SYNTHETIC_THOUGHT_SIGNATURE = "skip_thought_signature_validator";
|
|
39
|
+
/**
|
|
40
|
+
* Stands in for a model turn that never arrived because the stream failed
|
|
41
|
+
* after a tool response was already committed to history.
|
|
42
|
+
*/
|
|
43
|
+
export declare const INTERRUPTED_RESPONSE_PLACEHOLDER = "[The previous response was interrupted before it completed.]";
|
|
39
44
|
export declare function isValidNonThoughtTextPart(part: Part): boolean;
|
|
40
45
|
/**
|
|
41
46
|
* Custom error to signal that a stream completed with invalid content,
|
|
@@ -109,6 +114,11 @@ export declare class GeminiChat {
|
|
|
109
114
|
* ```
|
|
110
115
|
*/
|
|
111
116
|
sendMessageStream(modelConfigKey: ModelConfigKey, message: PartListUnion, prompt_id: string, signal: AbortSignal, role: LlmRole, displayContent?: PartListUnion, apiHistoryOverride?: Content[]): Promise<AsyncGenerator<StreamEvent>>;
|
|
117
|
+
/**
|
|
118
|
+
* Appends a closing model turn when history ends with an unanswered tool
|
|
119
|
+
* response, so the next user message stays a turn of its own.
|
|
120
|
+
*/
|
|
121
|
+
private closeUnansweredToolResponseTurn;
|
|
112
122
|
private extractBinaryInjections;
|
|
113
123
|
private makeApiCallAndProcessStream;
|
|
114
124
|
/**
|
|
@@ -42,6 +42,11 @@ const MID_STREAM_RETRY_OPTIONS = {
|
|
|
42
42
|
useExponentialBackoff: true,
|
|
43
43
|
};
|
|
44
44
|
export const SYNTHETIC_THOUGHT_SIGNATURE = 'skip_thought_signature_validator';
|
|
45
|
+
/**
|
|
46
|
+
* Stands in for a model turn that never arrived because the stream failed
|
|
47
|
+
* after a tool response was already committed to history.
|
|
48
|
+
*/
|
|
49
|
+
export const INTERRUPTED_RESPONSE_PLACEHOLDER = '[The previous response was interrupted before it completed.]';
|
|
45
50
|
function isIndexedPart(part) {
|
|
46
51
|
return 'callIndex' in part;
|
|
47
52
|
}
|
|
@@ -278,6 +283,14 @@ export class GeminiChat {
|
|
|
278
283
|
this.sendPromise = streamDonePromise;
|
|
279
284
|
let userContent = createUserContent(message);
|
|
280
285
|
const isOriginalFunctionResponse = isFunctionResponse(userContent);
|
|
286
|
+
// A turn can end leaving history on an unanswered tool response: a stream
|
|
287
|
+
// error after the response was committed, or a cancelled tool call. Close
|
|
288
|
+
// it before recording a genuinely new user message, otherwise the two user
|
|
289
|
+
// turns are coalesced into one and the model continues the trailing text
|
|
290
|
+
// instead of answering it.
|
|
291
|
+
if (!isOriginalFunctionResponse) {
|
|
292
|
+
this.closeUnansweredToolResponseTurn();
|
|
293
|
+
}
|
|
281
294
|
const { model } = this.context.config.modelConfigService.getResolvedConfig(modelConfigKey);
|
|
282
295
|
const isContextManagementEnabled = this.context.config.isContextManagementEnabled();
|
|
283
296
|
// Record user input - capture complete message with all parts (text, files, images, etc.)
|
|
@@ -486,6 +499,25 @@ export class GeminiChat {
|
|
|
486
499
|
};
|
|
487
500
|
return streamWithRetries.call(this);
|
|
488
501
|
}
|
|
502
|
+
/**
|
|
503
|
+
* Appends a closing model turn when history ends with an unanswered tool
|
|
504
|
+
* response, so the next user message stays a turn of its own.
|
|
505
|
+
*/
|
|
506
|
+
closeUnansweredToolResponseTurn() {
|
|
507
|
+
const turns = this.agentHistory.get();
|
|
508
|
+
const last = turns[turns.length - 1];
|
|
509
|
+
if (last?.content.role !== 'user' ||
|
|
510
|
+
!last.content.parts?.some((part) => !!part.functionResponse)) {
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
this.agentHistory.push({
|
|
514
|
+
id: randomUUID(),
|
|
515
|
+
content: {
|
|
516
|
+
role: 'model',
|
|
517
|
+
parts: [{ text: INTERRUPTED_RESPONSE_PLACEHOLDER }],
|
|
518
|
+
},
|
|
519
|
+
});
|
|
520
|
+
}
|
|
489
521
|
extractBinaryInjections(parts) {
|
|
490
522
|
const binaryParts = [];
|
|
491
523
|
if (parts) {
|
|
@@ -1218,11 +1250,31 @@ export function stripThoughts(history) {
|
|
|
1218
1250
|
if (!hasThought)
|
|
1219
1251
|
return turn;
|
|
1220
1252
|
const nonThoughtParts = turn.content.parts.filter((p) => p && !p.thought);
|
|
1253
|
+
// The thoughtSignature the API requires on the first functionCall of a
|
|
1254
|
+
// model turn is sometimes only carried by the thought part we just
|
|
1255
|
+
// removed, not by the functionCall part itself. Without it, replaying
|
|
1256
|
+
// this turn in a later request gets rejected with a 400 "missing
|
|
1257
|
+
// thought_signature" error, so inject a synthetic one if needed.
|
|
1258
|
+
let patchedFirstCall = false;
|
|
1259
|
+
const finalParts = turn.content.role === 'model'
|
|
1260
|
+
? nonThoughtParts.map((p) => {
|
|
1261
|
+
if (!patchedFirstCall && p.functionCall) {
|
|
1262
|
+
patchedFirstCall = true;
|
|
1263
|
+
if (!p.thoughtSignature) {
|
|
1264
|
+
return {
|
|
1265
|
+
...p,
|
|
1266
|
+
thoughtSignature: SYNTHETIC_THOUGHT_SIGNATURE,
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
return p;
|
|
1271
|
+
})
|
|
1272
|
+
: nonThoughtParts;
|
|
1221
1273
|
return {
|
|
1222
1274
|
...turn,
|
|
1223
1275
|
content: {
|
|
1224
1276
|
...turn.content,
|
|
1225
|
-
parts:
|
|
1277
|
+
parts: finalParts,
|
|
1226
1278
|
},
|
|
1227
1279
|
};
|
|
1228
1280
|
})
|
|
@@ -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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"}
|
|
@@ -183,6 +183,14 @@ describe('GeminiChat', () => {
|
|
|
183
183
|
mockConfig.getMessageBus = vi.fn().mockReturnValue(mockMessageBus);
|
|
184
184
|
// Disable 429 simulation for tests
|
|
185
185
|
setSimulate429(false);
|
|
186
|
+
// The mid-stream retry loop sleeps on a real timer (1s + 2s + 4s) between
|
|
187
|
+
// attempts, which exceeds the default 5s test timeout and silently killed
|
|
188
|
+
// every InvalidStreamError test before it reached its assertions. Run those
|
|
189
|
+
// delays instantly.
|
|
190
|
+
vi.spyOn(globalThis, 'setTimeout').mockImplementation(((fn) => {
|
|
191
|
+
fn();
|
|
192
|
+
return 0;
|
|
193
|
+
}));
|
|
186
194
|
// Reset history for each test by creating a new instance
|
|
187
195
|
chat = new GeminiChat(mockConfig);
|
|
188
196
|
mockConfig.getHookSystem = vi.fn().mockReturnValue(undefined);
|
|
@@ -756,6 +764,162 @@ describe('GeminiChat', () => {
|
|
|
756
764
|
const lastTurn = chat.agentHistory.get()[chat.agentHistory.length - 1];
|
|
757
765
|
expect(lastTurn.content.parts?.[0]?.functionResponse).toBeDefined();
|
|
758
766
|
});
|
|
767
|
+
it('should not fuse the next user message into a preserved tool-response turn', async () => {
|
|
768
|
+
// Regression: when a stream fails mid tool-loop the tool response is
|
|
769
|
+
// deliberately preserved (see the test above), which leaves history
|
|
770
|
+
// ending on a user turn. The user's next message was then coalesced into
|
|
771
|
+
// that same turn as [functionResponse, text]. The model reads the
|
|
772
|
+
// trailing text as a continuation of the tool result and completes the
|
|
773
|
+
// sentence instead of answering it.
|
|
774
|
+
chat.agentHistory.push({
|
|
775
|
+
id: 'model-turn-1',
|
|
776
|
+
content: {
|
|
777
|
+
role: 'model',
|
|
778
|
+
parts: [{ functionCall: { name: 'test_tool', args: {} } }],
|
|
779
|
+
},
|
|
780
|
+
});
|
|
781
|
+
// 1. Tool response goes back, model returns nothing -> InvalidStreamError.
|
|
782
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue((async function* () {
|
|
783
|
+
yield {
|
|
784
|
+
candidates: [
|
|
785
|
+
{ content: { role: 'model', parts: [] }, finishReason: 'STOP' },
|
|
786
|
+
],
|
|
787
|
+
};
|
|
788
|
+
})());
|
|
789
|
+
const failingStream = await chat.sendMessageStream({ model: 'gemini-2.0-flash' }, [
|
|
790
|
+
{
|
|
791
|
+
functionResponse: {
|
|
792
|
+
name: 'test_tool',
|
|
793
|
+
response: { success: true },
|
|
794
|
+
},
|
|
795
|
+
},
|
|
796
|
+
], 'prompt-id-fusion-setup', new AbortController().signal, LlmRole.MAIN);
|
|
797
|
+
await expect((async () => {
|
|
798
|
+
for await (const _ of failingStream) {
|
|
799
|
+
// consume
|
|
800
|
+
}
|
|
801
|
+
})()).rejects.toThrow(InvalidStreamError);
|
|
802
|
+
// 2. The user types a brand new instruction.
|
|
803
|
+
let capturedContents = [];
|
|
804
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockImplementation(async (req) => {
|
|
805
|
+
capturedContents = req.contents;
|
|
806
|
+
return (async function* () {
|
|
807
|
+
yield {
|
|
808
|
+
candidates: [
|
|
809
|
+
{
|
|
810
|
+
content: { role: 'model', parts: [{ text: 'ok' }] },
|
|
811
|
+
finishReason: 'STOP',
|
|
812
|
+
},
|
|
813
|
+
],
|
|
814
|
+
};
|
|
815
|
+
})();
|
|
816
|
+
});
|
|
817
|
+
const stream = await chat.sendMessageStream({ model: 'gemini-2.0-flash' }, 'are you done?', 'prompt-id-fusion-check', new AbortController().signal, LlmRole.MAIN);
|
|
818
|
+
for await (const _ of stream) {
|
|
819
|
+
// consume
|
|
820
|
+
}
|
|
821
|
+
const fusedTurn = capturedContents.find((c) => c.role === 'user' &&
|
|
822
|
+
!!c.parts?.some((p) => !!p.functionResponse) &&
|
|
823
|
+
!!c.parts?.some((p) => p.text?.includes('are you done?')));
|
|
824
|
+
expect(fusedTurn).toBeUndefined();
|
|
825
|
+
});
|
|
826
|
+
it('should not fuse the next user message into a cancelled tool response', async () => {
|
|
827
|
+
// Same defect reached by a different trigger: cancelling a tool call
|
|
828
|
+
// records its response via addHistory then returns without submitting,
|
|
829
|
+
// leaving history on an unanswered user turn just like a stream failure.
|
|
830
|
+
chat.agentHistory.push({
|
|
831
|
+
id: 'model-turn-cancel',
|
|
832
|
+
content: {
|
|
833
|
+
role: 'model',
|
|
834
|
+
parts: [
|
|
835
|
+
{ functionCall: { id: 'c1', name: 'run_shell_command', args: {} } },
|
|
836
|
+
],
|
|
837
|
+
},
|
|
838
|
+
});
|
|
839
|
+
chat.addHistory({
|
|
840
|
+
role: 'user',
|
|
841
|
+
parts: [
|
|
842
|
+
{
|
|
843
|
+
functionResponse: {
|
|
844
|
+
id: 'c1',
|
|
845
|
+
name: 'run_shell_command',
|
|
846
|
+
response: { error: '[Operation Cancelled]' },
|
|
847
|
+
},
|
|
848
|
+
},
|
|
849
|
+
],
|
|
850
|
+
});
|
|
851
|
+
let capturedContents = [];
|
|
852
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockImplementation(async (req) => {
|
|
853
|
+
capturedContents = req.contents;
|
|
854
|
+
return (async function* () {
|
|
855
|
+
yield {
|
|
856
|
+
candidates: [
|
|
857
|
+
{
|
|
858
|
+
content: { role: 'model', parts: [{ text: 'ok' }] },
|
|
859
|
+
finishReason: 'STOP',
|
|
860
|
+
},
|
|
861
|
+
],
|
|
862
|
+
};
|
|
863
|
+
})();
|
|
864
|
+
});
|
|
865
|
+
const stream = await chat.sendMessageStream({ model: 'gemini-2.0-flash' }, "you're querying local database, I meant nprd", 'prompt-id-cancel-fusion', new AbortController().signal, LlmRole.MAIN);
|
|
866
|
+
for await (const _ of stream) {
|
|
867
|
+
// consume
|
|
868
|
+
}
|
|
869
|
+
const fusedCancelTurn = capturedContents.find((c) => c.role === 'user' &&
|
|
870
|
+
!!c.parts?.some((p) => !!p.functionResponse) &&
|
|
871
|
+
!!c.parts?.some((p) => p.text?.includes('I meant nprd')));
|
|
872
|
+
expect(fusedCancelTurn).toBeUndefined();
|
|
873
|
+
});
|
|
874
|
+
it('should close a dangling tool response restored from a resumed session', async () => {
|
|
875
|
+
// The guard runs when a new user message arrives rather than when the
|
|
876
|
+
// turn fails, so it does not depend on a placeholder having been
|
|
877
|
+
// persisted. A session resumed from disk that ends on an unanswered tool
|
|
878
|
+
// response is repaired on the next message just the same.
|
|
879
|
+
chat.setHistory([
|
|
880
|
+
{ role: 'user', parts: [{ text: 'run the tests' }] },
|
|
881
|
+
{
|
|
882
|
+
role: 'model',
|
|
883
|
+
parts: [
|
|
884
|
+
{ functionCall: { id: 'c1', name: 'run_shell_command', args: {} } },
|
|
885
|
+
],
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
role: 'user',
|
|
889
|
+
parts: [
|
|
890
|
+
{
|
|
891
|
+
functionResponse: {
|
|
892
|
+
id: 'c1',
|
|
893
|
+
name: 'run_shell_command',
|
|
894
|
+
response: { output: 'ok' },
|
|
895
|
+
},
|
|
896
|
+
},
|
|
897
|
+
],
|
|
898
|
+
},
|
|
899
|
+
]);
|
|
900
|
+
let capturedContents = [];
|
|
901
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockImplementation(async (req) => {
|
|
902
|
+
capturedContents = req.contents;
|
|
903
|
+
return (async function* () {
|
|
904
|
+
yield {
|
|
905
|
+
candidates: [
|
|
906
|
+
{
|
|
907
|
+
content: { role: 'model', parts: [{ text: 'ok' }] },
|
|
908
|
+
finishReason: 'STOP',
|
|
909
|
+
},
|
|
910
|
+
],
|
|
911
|
+
};
|
|
912
|
+
})();
|
|
913
|
+
});
|
|
914
|
+
const stream = await chat.sendMessageStream({ model: 'gemini-2.0-flash' }, 'are you done?', 'prompt-id-resumed-fusion', new AbortController().signal, LlmRole.MAIN);
|
|
915
|
+
for await (const _ of stream) {
|
|
916
|
+
// consume
|
|
917
|
+
}
|
|
918
|
+
const fusedResumedTurn = capturedContents.find((c) => c.role === 'user' &&
|
|
919
|
+
!!c.parts?.some((p) => !!p.functionResponse) &&
|
|
920
|
+
!!c.parts?.some((p) => p.text?.includes('are you done?')));
|
|
921
|
+
expect(fusedResumedTurn).toBeUndefined();
|
|
922
|
+
});
|
|
759
923
|
it('should preserve mixed multimodal function responses during rollback when InvalidStreamError is thrown (regression)', async () => {
|
|
760
924
|
// 1. Setup history ending with a model turn containing functionCall
|
|
761
925
|
chat.agentHistory.push({
|
|
@@ -2285,6 +2449,61 @@ describe('GeminiChat', () => {
|
|
|
2285
2449
|
expect(turns[0].content.parts[0].text).toBe('Question 1');
|
|
2286
2450
|
expect(turns[0].content.parts[1].text).toBe('Question 2');
|
|
2287
2451
|
});
|
|
2452
|
+
it('should inject a synthetic thoughtSignature onto a functionCall left signature-less after stripping a thought part that carried it (regression test for #28604)', () => {
|
|
2453
|
+
vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
|
|
2454
|
+
vi.mocked(mockConfig.getModel).mockReturnValue('gemini-2.5-pro');
|
|
2455
|
+
chat.setHistory([
|
|
2456
|
+
{ role: 'user', parts: [{ text: 'activate the skill' }] },
|
|
2457
|
+
{
|
|
2458
|
+
role: 'model',
|
|
2459
|
+
parts: [
|
|
2460
|
+
{
|
|
2461
|
+
text: 'internal monologue',
|
|
2462
|
+
thought: true,
|
|
2463
|
+
thoughtSignature: 'real-sig-from-api',
|
|
2464
|
+
},
|
|
2465
|
+
{
|
|
2466
|
+
functionCall: { name: 'activate_skill', args: {} },
|
|
2467
|
+
},
|
|
2468
|
+
],
|
|
2469
|
+
},
|
|
2470
|
+
{
|
|
2471
|
+
role: 'user',
|
|
2472
|
+
parts: [
|
|
2473
|
+
{ functionResponse: { name: 'activate_skill', response: {} } },
|
|
2474
|
+
],
|
|
2475
|
+
},
|
|
2476
|
+
]);
|
|
2477
|
+
const turns = chat.getHistoryTurns(true);
|
|
2478
|
+
const modelTurn = turns[1];
|
|
2479
|
+
expect(modelTurn.content.parts).toHaveLength(1);
|
|
2480
|
+
expect(modelTurn.content.parts[0].functionCall?.name).toBe('activate_skill');
|
|
2481
|
+
expect(modelTurn.content.parts[0].thoughtSignature).toBe(SYNTHETIC_THOUGHT_SIGNATURE);
|
|
2482
|
+
});
|
|
2483
|
+
it('should leave an existing thoughtSignature on a functionCall untouched when stripping thoughts', () => {
|
|
2484
|
+
vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
|
|
2485
|
+
vi.mocked(mockConfig.getModel).mockReturnValue('gemini-2.5-pro');
|
|
2486
|
+
chat.setHistory([
|
|
2487
|
+
{ role: 'user', parts: [{ text: 'activate the skill' }] },
|
|
2488
|
+
{
|
|
2489
|
+
role: 'model',
|
|
2490
|
+
parts: [
|
|
2491
|
+
{
|
|
2492
|
+
text: 'internal monologue',
|
|
2493
|
+
thought: true,
|
|
2494
|
+
thoughtSignature: 'real-sig-from-api',
|
|
2495
|
+
},
|
|
2496
|
+
{
|
|
2497
|
+
functionCall: { name: 'activate_skill', args: {} },
|
|
2498
|
+
thoughtSignature: 'existing-sig-on-call',
|
|
2499
|
+
},
|
|
2500
|
+
],
|
|
2501
|
+
},
|
|
2502
|
+
]);
|
|
2503
|
+
const turns = chat.getHistoryTurns(true);
|
|
2504
|
+
const modelTurn = turns[1];
|
|
2505
|
+
expect(modelTurn.content.parts[0].thoughtSignature).toBe('existing-sig-on-call');
|
|
2506
|
+
});
|
|
2288
2507
|
});
|
|
2289
2508
|
describe('ensureActiveLoopHasThoughtSignatures', () => {
|
|
2290
2509
|
it('should add thoughtSignature to the first functionCall in each model turn of the active loop', () => {
|