@vybestack/llxprt-code-core 0.6.2 → 0.7.0-nightly.251206.43b97dbf4

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 (92) hide show
  1. package/dist/src/auth/precedence.js +9 -10
  2. package/dist/src/auth/precedence.js.map +1 -1
  3. package/dist/src/auth/types.d.ts +6 -6
  4. package/dist/src/core/geminiChat.d.ts +8 -0
  5. package/dist/src/core/geminiChat.js +63 -5
  6. package/dist/src/core/geminiChat.js.map +1 -1
  7. package/dist/src/core/turn.js +12 -8
  8. package/dist/src/core/turn.js.map +1 -1
  9. package/dist/src/ide/ide-client.js +4 -2
  10. package/dist/src/ide/ide-client.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -0
  12. package/dist/src/index.js +1 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/parsers/TextToolCallParser.d.ts +0 -15
  15. package/dist/src/parsers/TextToolCallParser.js +21 -5
  16. package/dist/src/parsers/TextToolCallParser.js.map +1 -1
  17. package/dist/src/providers/BaseProvider.d.ts +3 -0
  18. package/dist/src/providers/BaseProvider.js +11 -0
  19. package/dist/src/providers/BaseProvider.js.map +1 -1
  20. package/dist/src/providers/IProvider.d.ts +3 -0
  21. package/dist/src/providers/ProviderManager.js +6 -0
  22. package/dist/src/providers/ProviderManager.js.map +1 -1
  23. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +0 -1
  24. package/dist/src/providers/anthropic/AnthropicProvider.js +233 -22
  25. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  26. package/dist/src/providers/anthropic/schemaConverter.d.ts +63 -0
  27. package/dist/src/providers/anthropic/schemaConverter.js +189 -0
  28. package/dist/src/providers/anthropic/schemaConverter.js.map +1 -0
  29. package/dist/src/providers/gemini/GeminiProvider.js +108 -11
  30. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  31. package/dist/src/providers/gemini/thoughtSignatures.d.ts +51 -0
  32. package/dist/src/providers/gemini/thoughtSignatures.js +189 -0
  33. package/dist/src/providers/gemini/thoughtSignatures.js.map +1 -0
  34. package/dist/src/providers/openai/OpenAIProvider.d.ts +78 -1
  35. package/dist/src/providers/openai/OpenAIProvider.js +1159 -190
  36. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  37. package/dist/src/providers/openai/ToolCallNormalizer.d.ts +6 -0
  38. package/dist/src/providers/openai/ToolCallNormalizer.js +16 -2
  39. package/dist/src/providers/openai/ToolCallNormalizer.js.map +1 -1
  40. package/dist/src/providers/openai/schemaConverter.d.ts +67 -0
  41. package/dist/src/providers/openai/schemaConverter.js +191 -0
  42. package/dist/src/providers/openai/schemaConverter.js.map +1 -0
  43. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +0 -4
  44. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +3 -75
  45. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
  46. package/dist/src/providers/openai-responses/schemaConverter.d.ts +65 -0
  47. package/dist/src/providers/openai-responses/schemaConverter.js +195 -0
  48. package/dist/src/providers/openai-responses/schemaConverter.js.map +1 -0
  49. package/dist/src/providers/openai-vercel/OpenAIVercelProvider.d.ts +146 -0
  50. package/dist/src/providers/openai-vercel/OpenAIVercelProvider.js +1177 -0
  51. package/dist/src/providers/openai-vercel/OpenAIVercelProvider.js.map +1 -0
  52. package/dist/src/providers/openai-vercel/errors.d.ts +46 -0
  53. package/dist/src/providers/openai-vercel/errors.js +137 -0
  54. package/dist/src/providers/openai-vercel/errors.js.map +1 -0
  55. package/dist/src/providers/openai-vercel/index.d.ts +22 -0
  56. package/dist/src/providers/openai-vercel/index.js +23 -0
  57. package/dist/src/providers/openai-vercel/index.js.map +1 -0
  58. package/dist/src/providers/openai-vercel/messageConversion.d.ts +36 -0
  59. package/dist/src/providers/openai-vercel/messageConversion.js +410 -0
  60. package/dist/src/providers/openai-vercel/messageConversion.js.map +1 -0
  61. package/dist/src/providers/openai-vercel/schemaConverter.d.ts +66 -0
  62. package/dist/src/providers/openai-vercel/schemaConverter.js +191 -0
  63. package/dist/src/providers/openai-vercel/schemaConverter.js.map +1 -0
  64. package/dist/src/providers/openai-vercel/toolIdUtils.d.ts +33 -0
  65. package/dist/src/providers/openai-vercel/toolIdUtils.js +117 -0
  66. package/dist/src/providers/openai-vercel/toolIdUtils.js.map +1 -0
  67. package/dist/src/providers/reasoning/reasoningUtils.d.ts +43 -0
  68. package/dist/src/providers/reasoning/reasoningUtils.js +92 -0
  69. package/dist/src/providers/reasoning/reasoningUtils.js.map +1 -0
  70. package/dist/src/providers/utils/localEndpoint.js +6 -2
  71. package/dist/src/providers/utils/localEndpoint.js.map +1 -1
  72. package/dist/src/runtime/AgentRuntimeContext.d.ts +27 -0
  73. package/dist/src/runtime/AgentRuntimeContext.js.map +1 -1
  74. package/dist/src/runtime/createAgentRuntimeContext.js +27 -1
  75. package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
  76. package/dist/src/services/history/IContent.d.ts +6 -0
  77. package/dist/src/services/history/IContent.js.map +1 -1
  78. package/dist/src/settings/types.d.ts +1 -1
  79. package/dist/src/tools/IToolFormatter.d.ts +1 -1
  80. package/dist/src/tools/ToolFormatter.js +14 -2
  81. package/dist/src/tools/ToolFormatter.js.map +1 -1
  82. package/dist/src/tools/ToolIdStrategy.d.ts +72 -0
  83. package/dist/src/tools/ToolIdStrategy.js +107 -0
  84. package/dist/src/tools/ToolIdStrategy.js.map +1 -0
  85. package/dist/src/tools/todo-schemas.d.ts +4 -4
  86. package/dist/src/utils/filesearch/ignore.js +3 -2
  87. package/dist/src/utils/filesearch/ignore.js.map +1 -1
  88. package/dist/src/utils/gitIgnoreParser.js +2 -1
  89. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  90. package/dist/src/utils/schemaValidator.js +41 -6
  91. package/dist/src/utils/schemaValidator.js.map +1 -1
  92. package/package.json +3 -1
@@ -13,6 +13,7 @@ import { Type, } from '@google/genai';
13
13
  import { BaseProvider, } from '../BaseProvider.js';
14
14
  import { resolveUserMemory } from '../utils/userMemory.js';
15
15
  import { buildToolResponsePayload } from '../utils/toolResponsePayload.js';
16
+ import { ensureActiveLoopHasThoughtSignatures, stripThoughtsFromHistory, } from './thoughtSignatures.js';
16
17
  export class GeminiProvider extends BaseProvider {
17
18
  /**
18
19
  * @plan:PLAN-20251023-STATELESS-HARDENING.P08
@@ -830,6 +831,31 @@ export class GeminiProvider extends BaseProvider {
830
831
  });
831
832
  }
832
833
  }
834
+ // Extract reasoning ephemerals for Gemini 3.x thinking support
835
+ // @plan PLAN-20251202-THINKING.P03b @requirement REQ-THINK-006
836
+ const earlyEphemerals = options.invocation?.ephemerals ?? {};
837
+ // Ephemerals can be stored as flat keys ('reasoning.enabled') or nested objects ('reasoning': {enabled: true})
838
+ // Handle both formats for compatibility
839
+ const reasoningObj = earlyEphemerals['reasoning'];
840
+ const reasoningEnabled = earlyEphemerals['reasoning.enabled'] ===
841
+ true || reasoningObj?.enabled === true;
842
+ const reasoningIncludeInResponse = earlyEphemerals['reasoning.includeInResponse'] !== false && reasoningObj?.includeInResponse !== false;
843
+ const reasoningStripFromContext = earlyEphemerals['reasoning.stripFromContext'] ??
844
+ reasoningObj?.stripFromContext ??
845
+ 'all';
846
+ // Extract reasoning.effort for future use (could map to thinkingLevel in Gemini 3)
847
+ // Currently unused but extracted for completeness
848
+ const reasoningEffort = earlyEphemerals['reasoning.effort'] ??
849
+ reasoningObj?.effort;
850
+ void reasoningEffort; // Mark as intentionally unused (reserved for future effort-to-thinkingLevel mapping)
851
+ const reasoningMaxTokens = earlyEphemerals['reasoning.maxTokens'] ?? reasoningObj?.maxTokens;
852
+ // Strip thought content from history before sending to API
853
+ // This prevents sending previous thinking back which can cause issues
854
+ const contentsWithThoughtsStripped = stripThoughtsFromHistory(contents, reasoningStripFromContext);
855
+ // Gemini 3.x requires thoughtSignature on functionCall parts in the "active loop"
856
+ // (from the last user text message to end of history). Apply synthetic signatures
857
+ // where missing to bypass validation. See: https://ai.google.dev/gemini-api/docs/thought-signatures
858
+ const contentsWithSignatures = ensureActiveLoopHasThoughtSignatures(contentsWithThoughtsStripped);
833
859
  // Ensure tools have proper type: 'object' for Gemini
834
860
  const geminiTools = tools
835
861
  ? tools.map((toolGroup) => ({
@@ -897,25 +923,96 @@ export class GeminiProvider extends BaseProvider {
897
923
  if (toolConfigOverride) {
898
924
  requestConfig.toolConfig = toolConfigOverride;
899
925
  }
926
+ // Configure thinkingConfig for Gemini models when reasoning is enabled
927
+ // @plan PLAN-20251202-THINKING.P03b @requirement REQ-THINK-006
928
+ // ThinkingConfig uses:
929
+ // - includeThoughts: boolean - whether to include thoughts in response
930
+ // - thinkingBudget: number - token budget (0=DISABLED, -1=AUTOMATIC, or specific number)
931
+ if (reasoningEnabled) {
932
+ requestConfig.thinkingConfig = {
933
+ includeThoughts: true,
934
+ thinkingBudget: reasoningMaxTokens ?? -1, // -1 = AUTOMATIC
935
+ };
936
+ }
900
937
  const requestLogger = new DebugLogger('llxprt:provider:gemini:logging');
901
938
  requestLogger.log(() => '[GeminiProvider] request config overrides', {
902
939
  hasDirectOverrides: !!directOverrides,
903
940
  serverTools,
904
941
  toolConfigOverride: toolConfigOverride ? 'present' : 'absent',
905
942
  });
943
+ // Debug: Log thinking configuration
944
+ const thinkingConfigLogger = new DebugLogger('llxprt:provider:gemini:thinking');
945
+ thinkingConfigLogger.log(() => '[GeminiProvider] Thinking configuration', {
946
+ reasoningEnabled,
947
+ reasoningIncludeInResponse,
948
+ reasoningStripFromContext,
949
+ model: currentModel,
950
+ thinkingConfig: requestConfig.thinkingConfig,
951
+ });
906
952
  // Create appropriate client and generate content
907
953
  const baseURL = options.resolved.baseURL ?? this.getBaseURL();
908
954
  const httpOptions = this.createHttpOptions();
909
- const mapResponseToChunks = (response) => {
955
+ const thinkingLogger = new DebugLogger('llxprt:provider:gemini:thinking');
956
+ const mapResponseToChunks = (response, includeThoughts = true) => {
910
957
  const chunks = [];
911
- const text = response.candidates?.[0]?.content?.parts
912
- ?.filter((part) => 'text' in part)
913
- ?.map((part) => part.text)
914
- ?.join('') || '';
915
- const functionCalls = response.candidates?.[0]?.content?.parts
958
+ const parts = response.candidates?.[0]?.content?.parts || [];
959
+ // Debug: Log all parts with their thought property for debugging
960
+ thinkingLogger.log(() => '[GeminiProvider] Response parts received', parts.map((p) => ({
961
+ hasText: 'text' in p,
962
+ thought: p.thought,
963
+ hasThoughtSignature: !!p
964
+ .thoughtSignature,
965
+ hasFunctionCall: 'functionCall' in p,
966
+ textPreview: 'text' in p
967
+ ? p.text.substring(0, 100)
968
+ : undefined,
969
+ })));
970
+ // Separate thought parts from non-thought text parts
971
+ // Gemini returns thought content with `thought: true` on parts
972
+ const thoughtParts = parts.filter((part) => 'text' in part && part.thought);
973
+ const nonThoughtTextParts = parts.filter((part) => 'text' in part && !part.thought);
974
+ // Extract thoughtSignature from the first part that has one (for Gemini 3.x)
975
+ const firstPartWithSig = parts.find((part) => part.thoughtSignature);
976
+ const thoughtSignature = firstPartWithSig
977
+ ? firstPartWithSig
978
+ .thoughtSignature
979
+ : undefined;
980
+ const text = nonThoughtTextParts
981
+ .map((part) => part.text)
982
+ .join('');
983
+ const thoughtText = thoughtParts
984
+ .map((part) => part.text)
985
+ .join('');
986
+ // Debug: Log thought extraction results
987
+ thinkingLogger.log(() => '[GeminiProvider] Thought extraction results', {
988
+ thoughtPartsCount: thoughtParts.length,
989
+ nonThoughtTextPartsCount: nonThoughtTextParts.length,
990
+ thoughtTextLength: thoughtText.length,
991
+ thoughtTextPreview: thoughtText.substring(0, 200),
992
+ includeThoughts,
993
+ willYieldThinkingBlock: !!(thoughtText && includeThoughts),
994
+ });
995
+ const functionCalls = parts
916
996
  ?.filter((part) => 'functionCall' in part)
917
997
  ?.map((part) => part.functionCall) || [];
918
998
  const usageMetadata = response.usageMetadata;
999
+ // Yield ThinkingBlock first if there's thought content and includeThoughts is true
1000
+ if (thoughtText && includeThoughts) {
1001
+ const thinkingBlock = {
1002
+ type: 'thinking',
1003
+ thought: thoughtText,
1004
+ sourceField: 'thought', // Gemini uses `thought: true` on parts
1005
+ isHidden: false, // Not hidden since includeThoughts is true
1006
+ };
1007
+ if (thoughtSignature) {
1008
+ thinkingBlock.signature = thoughtSignature;
1009
+ }
1010
+ const thinkingContent = {
1011
+ speaker: 'ai',
1012
+ blocks: [thinkingBlock],
1013
+ };
1014
+ chunks.push(thinkingContent);
1015
+ }
919
1016
  if (text) {
920
1017
  const textContent = {
921
1018
  speaker: 'ai',
@@ -1007,7 +1104,7 @@ export class GeminiProvider extends BaseProvider {
1007
1104
  },
1008
1105
  ],
1009
1106
  },
1010
- ...contents,
1107
+ ...contentsWithSignatures,
1011
1108
  ];
1012
1109
  const oauthConfig = { ...requestConfig };
1013
1110
  const oauthRequest = {
@@ -1025,7 +1122,7 @@ export class GeminiProvider extends BaseProvider {
1025
1122
  if (!streamingEnabled && generatorWithStream.generateContent) {
1026
1123
  const response = await generatorWithStream.generateContent(oauthRequest, sessionId);
1027
1124
  let yielded = false;
1028
- for (const chunk of mapResponseToChunks(response)) {
1125
+ for (const chunk of mapResponseToChunks(response, reasoningIncludeInResponse)) {
1029
1126
  yielded = true;
1030
1127
  yield chunk;
1031
1128
  }
@@ -1066,7 +1163,7 @@ export class GeminiProvider extends BaseProvider {
1066
1163
  const systemInstruction = await getCoreSystemPromptAsync(userMemory, currentModel, toolNamesForPrompt);
1067
1164
  const apiRequest = {
1068
1165
  model: currentModel,
1069
- contents,
1166
+ contents: contentsWithSignatures,
1070
1167
  systemInstruction,
1071
1168
  config: { ...requestConfig },
1072
1169
  };
@@ -1076,7 +1173,7 @@ export class GeminiProvider extends BaseProvider {
1076
1173
  else {
1077
1174
  const response = await contentGenerator.generateContent(apiRequest);
1078
1175
  let yielded = false;
1079
- for (const chunk of mapResponseToChunks(response)) {
1176
+ for (const chunk of mapResponseToChunks(response, reasoningIncludeInResponse)) {
1080
1177
  yielded = true;
1081
1178
  yield chunk;
1082
1179
  }
@@ -1095,7 +1192,7 @@ export class GeminiProvider extends BaseProvider {
1095
1192
  if (done) {
1096
1193
  break;
1097
1194
  }
1098
- const mapped = mapResponseToChunks(value);
1195
+ const mapped = mapResponseToChunks(value, reasoningIncludeInResponse);
1099
1196
  if (mapped.length === 0) {
1100
1197
  continue;
1101
1198
  }
@@ -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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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Part } from '@google/genai';
7
+ /**
8
+ * Synthetic thought signature used when a functionCall part lacks one.
9
+ * This bypasses Gemini 3.x validation without containing actual reasoning.
10
+ *
11
+ * @see https://ai.google.dev/gemini-api/docs/thought-signatures
12
+ */
13
+ export declare const SYNTHETIC_THOUGHT_SIGNATURE = "skip_thought_signature_validator";
14
+ /**
15
+ * Content structure matching Gemini API format
16
+ */
17
+ interface Content {
18
+ role: string;
19
+ parts: Part[];
20
+ }
21
+ /**
22
+ * Ensures that all functionCall parts in the "active loop" have a thoughtSignature.
23
+ *
24
+ * The active loop is defined as all content from the last user message with text
25
+ * (not a functionResponse) to the end of the history. Gemini 3.x requires that
26
+ * the first functionCall part in each model turn within this active loop has
27
+ * a thoughtSignature property.
28
+ *
29
+ * This function:
30
+ * 1. Finds the start of the active loop by locating the last user turn with text
31
+ * 2. For each model turn in the active loop, ensures the first functionCall has a signature
32
+ * 3. Preserves existing signatures if present
33
+ * 4. Adds a synthetic signature if missing
34
+ *
35
+ * @param requestContents - The conversation history to process
36
+ * @returns A new array with thoughtSignatures ensured (shallow copy if modified)
37
+ */
38
+ export declare function ensureActiveLoopHasThoughtSignatures(requestContents: Content[]): Content[];
39
+ /**
40
+ * Strips thought content from history before sending to the API.
41
+ * Gemini returns parts with `thought: true` for reasoning content,
42
+ * and these should not be sent back in subsequent requests.
43
+ *
44
+ * Also removes thoughtSignature properties to clean up the history.
45
+ *
46
+ * @param contents - The conversation history
47
+ * @param policy - How to strip thoughts: 'all' removes all, 'allButLast' keeps last model turn, 'none' keeps all
48
+ * @returns A new array with thought content stripped according to policy
49
+ */
50
+ export declare function stripThoughtsFromHistory(contents: Content[], policy?: 'all' | 'allButLast' | 'none'): Content[];
51
+ export {};
@@ -0,0 +1,189 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Synthetic thought signature used when a functionCall part lacks one.
8
+ * This bypasses Gemini 3.x validation without containing actual reasoning.
9
+ *
10
+ * @see https://ai.google.dev/gemini-api/docs/thought-signatures
11
+ */
12
+ export const SYNTHETIC_THOUGHT_SIGNATURE = 'skip_thought_signature_validator';
13
+ /**
14
+ * Ensures that all functionCall parts in the "active loop" have a thoughtSignature.
15
+ *
16
+ * The active loop is defined as all content from the last user message with text
17
+ * (not a functionResponse) to the end of the history. Gemini 3.x requires that
18
+ * the first functionCall part in each model turn within this active loop has
19
+ * a thoughtSignature property.
20
+ *
21
+ * This function:
22
+ * 1. Finds the start of the active loop by locating the last user turn with text
23
+ * 2. For each model turn in the active loop, ensures the first functionCall has a signature
24
+ * 3. Preserves existing signatures if present
25
+ * 4. Adds a synthetic signature if missing
26
+ *
27
+ * @param requestContents - The conversation history to process
28
+ * @returns A new array with thoughtSignatures ensured (shallow copy if modified)
29
+ */
30
+ export function ensureActiveLoopHasThoughtSignatures(requestContents) {
31
+ // Find the start of the active loop by finding the last user turn
32
+ // with a text message, i.e. that is not just a functionResponse.
33
+ let activeLoopStartIndex = -1;
34
+ for (let i = requestContents.length - 1; i >= 0; i--) {
35
+ const content = requestContents[i];
36
+ if (content.role === 'user' &&
37
+ content.parts?.some((part) => 'text' in part && part.text)) {
38
+ activeLoopStartIndex = i;
39
+ break;
40
+ }
41
+ }
42
+ // No active loop found - return unchanged
43
+ if (activeLoopStartIndex === -1) {
44
+ return requestContents;
45
+ }
46
+ // Track if any modifications are needed
47
+ let needsModification = false;
48
+ // Check if we need to modify anything
49
+ for (let i = activeLoopStartIndex; i < requestContents.length; i++) {
50
+ const content = requestContents[i];
51
+ if (content.role === 'model' && content.parts) {
52
+ for (const part of content.parts) {
53
+ if ('functionCall' in part && part.functionCall) {
54
+ const partWithSig = part;
55
+ if (!partWithSig.thoughtSignature) {
56
+ needsModification = true;
57
+ break;
58
+ }
59
+ // Only the first functionCall matters, so break after checking it
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ if (needsModification)
65
+ break;
66
+ }
67
+ // No modifications needed - return unchanged
68
+ if (!needsModification) {
69
+ return requestContents;
70
+ }
71
+ // Create shallow copy and modify
72
+ const newContents = requestContents.slice();
73
+ for (let i = activeLoopStartIndex; i < newContents.length; i++) {
74
+ const content = newContents[i];
75
+ if (content.role === 'model' && content.parts) {
76
+ const newParts = content.parts.slice();
77
+ let modified = false;
78
+ for (let j = 0; j < newParts.length; j++) {
79
+ const part = newParts[j];
80
+ if ('functionCall' in part && part.functionCall) {
81
+ const partWithSig = part;
82
+ if (!partWithSig.thoughtSignature) {
83
+ // Create new part with signature
84
+ newParts[j] = {
85
+ ...part,
86
+ thoughtSignature: SYNTHETIC_THOUGHT_SIGNATURE,
87
+ };
88
+ modified = true;
89
+ }
90
+ // Only the first functionCall in the turn gets a signature
91
+ break;
92
+ }
93
+ }
94
+ if (modified) {
95
+ newContents[i] = {
96
+ ...content,
97
+ parts: newParts,
98
+ };
99
+ }
100
+ }
101
+ }
102
+ return newContents;
103
+ }
104
+ /**
105
+ * Strips thought content from history before sending to the API.
106
+ * Gemini returns parts with `thought: true` for reasoning content,
107
+ * and these should not be sent back in subsequent requests.
108
+ *
109
+ * Also removes thoughtSignature properties to clean up the history.
110
+ *
111
+ * @param contents - The conversation history
112
+ * @param policy - How to strip thoughts: 'all' removes all, 'allButLast' keeps last model turn, 'none' keeps all
113
+ * @returns A new array with thought content stripped according to policy
114
+ */
115
+ export function stripThoughtsFromHistory(contents, policy = 'all') {
116
+ if (policy === 'none') {
117
+ return contents;
118
+ }
119
+ // Find the last model turn index if needed
120
+ let lastModelTurnIndex = -1;
121
+ if (policy === 'allButLast') {
122
+ for (let i = contents.length - 1; i >= 0; i--) {
123
+ if (contents[i].role === 'model') {
124
+ lastModelTurnIndex = i;
125
+ break;
126
+ }
127
+ }
128
+ }
129
+ let needsModification = false;
130
+ // Check if we need to modify anything
131
+ for (let i = 0; i < contents.length; i++) {
132
+ const content = contents[i];
133
+ if (content.role !== 'model' || !content.parts)
134
+ continue;
135
+ // Skip last model turn if policy is 'allButLast'
136
+ if (policy === 'allButLast' && i === lastModelTurnIndex)
137
+ continue;
138
+ for (const part of content.parts) {
139
+ const partWithThought = part;
140
+ const partWithSig = part;
141
+ if (partWithThought.thought || partWithSig.thoughtSignature) {
142
+ needsModification = true;
143
+ break;
144
+ }
145
+ }
146
+ if (needsModification)
147
+ break;
148
+ }
149
+ if (!needsModification) {
150
+ return contents;
151
+ }
152
+ // Create new array with thoughts stripped
153
+ const newContents = [];
154
+ for (let i = 0; i < contents.length; i++) {
155
+ const content = contents[i];
156
+ if (content.role !== 'model' || !content.parts) {
157
+ newContents.push(content);
158
+ continue;
159
+ }
160
+ // Skip stripping for last model turn if policy is 'allButLast'
161
+ if (policy === 'allButLast' && i === lastModelTurnIndex) {
162
+ newContents.push(content);
163
+ continue;
164
+ }
165
+ // Filter out thought parts and remove thoughtSignature
166
+ const filteredParts = content.parts
167
+ .filter((part) => {
168
+ const partWithThought = part;
169
+ return !partWithThought.thought;
170
+ })
171
+ .map((part) => {
172
+ const partWithSig = part;
173
+ if (partWithSig.thoughtSignature) {
174
+ const { thoughtSignature: _, ...restPart } = partWithSig;
175
+ return restPart;
176
+ }
177
+ return part;
178
+ });
179
+ // Only add content if it has remaining parts
180
+ if (filteredParts.length > 0) {
181
+ newContents.push({
182
+ ...content,
183
+ parts: filteredParts,
184
+ });
185
+ }
186
+ }
187
+ return newContents;
188
+ }
189
+ //# sourceMappingURL=thoughtSignatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thoughtSignatures.js","sourceRoot":"","sources":["../../../../src/providers/gemini/thoughtSignatures.ts"],"names":[],"mappings":"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"}