@framers/agentos 0.10.22 → 0.10.24

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 (204) hide show
  1. package/README.md +1 -1
  2. package/dist/api/AgentOS.d.ts.map +1 -1
  3. package/dist/api/AgentOS.js +3 -2
  4. package/dist/api/AgentOS.js.map +1 -1
  5. package/dist/api/agent.d.ts.map +1 -1
  6. package/dist/api/agent.js +25 -10
  7. package/dist/api/agent.js.map +1 -1
  8. package/dist/api/embedText.d.ts.map +1 -1
  9. package/dist/api/embedText.js +53 -17
  10. package/dist/api/embedText.js.map +1 -1
  11. package/dist/api/generateImage.d.ts.map +1 -1
  12. package/dist/api/generateImage.js +51 -7
  13. package/dist/api/generateImage.js.map +1 -1
  14. package/dist/api/generateText.d.ts +50 -7
  15. package/dist/api/generateText.d.ts.map +1 -1
  16. package/dist/api/generateText.js +265 -35
  17. package/dist/api/generateText.js.map +1 -1
  18. package/dist/api/model.d.ts +25 -1
  19. package/dist/api/model.d.ts.map +1 -1
  20. package/dist/api/model.js +108 -3
  21. package/dist/api/model.js.map +1 -1
  22. package/dist/api/runtime/SelfImprovementSessionManager.d.ts +34 -2
  23. package/dist/api/runtime/SelfImprovementSessionManager.d.ts.map +1 -1
  24. package/dist/api/runtime/SelfImprovementSessionManager.js +119 -33
  25. package/dist/api/runtime/SelfImprovementSessionManager.js.map +1 -1
  26. package/dist/api/runtime/global-default.d.ts +9 -1
  27. package/dist/api/runtime/global-default.d.ts.map +1 -1
  28. package/dist/api/runtime/global-default.js.map +1 -1
  29. package/dist/api/runtime/provider-defaults.d.ts.map +1 -1
  30. package/dist/api/runtime/provider-defaults.js +10 -4
  31. package/dist/api/runtime/provider-defaults.js.map +1 -1
  32. package/dist/api/runtime/tool-emulation/history.d.ts +16 -0
  33. package/dist/api/runtime/tool-emulation/history.d.ts.map +1 -0
  34. package/dist/api/runtime/tool-emulation/history.js +89 -0
  35. package/dist/api/runtime/tool-emulation/history.js.map +1 -0
  36. package/dist/api/runtime/tool-emulation/index.d.ts +1 -0
  37. package/dist/api/runtime/tool-emulation/index.d.ts.map +1 -1
  38. package/dist/api/runtime/tool-emulation/index.js +1 -0
  39. package/dist/api/runtime/tool-emulation/index.js.map +1 -1
  40. package/dist/api/runtime/tool-emulation/loop.d.ts +6 -0
  41. package/dist/api/runtime/tool-emulation/loop.d.ts.map +1 -1
  42. package/dist/api/runtime/tool-emulation/loop.js +1 -0
  43. package/dist/api/runtime/tool-emulation/loop.js.map +1 -1
  44. package/dist/api/sessionTranscript.d.ts +34 -0
  45. package/dist/api/sessionTranscript.d.ts.map +1 -1
  46. package/dist/api/sessionTranscript.js +61 -1
  47. package/dist/api/sessionTranscript.js.map +1 -1
  48. package/dist/api/streamText.d.ts.map +1 -1
  49. package/dist/api/streamText.js +120 -24
  50. package/dist/api/streamText.js.map +1 -1
  51. package/dist/api/types/AgentOSInput.d.ts +11 -0
  52. package/dist/api/types/AgentOSInput.d.ts.map +1 -1
  53. package/dist/api/types.d.ts +14 -6
  54. package/dist/api/types.d.ts.map +1 -1
  55. package/dist/api/types.js.map +1 -1
  56. package/dist/cognition/emergent/AdaptPersonalityTool.d.ts +13 -4
  57. package/dist/cognition/emergent/AdaptPersonalityTool.d.ts.map +1 -1
  58. package/dist/cognition/emergent/AdaptPersonalityTool.js +32 -23
  59. package/dist/cognition/emergent/AdaptPersonalityTool.js.map +1 -1
  60. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +18 -6
  61. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  62. package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
  63. package/dist/cognition/emergent/SelfEvaluateTool.d.ts +10 -3
  64. package/dist/cognition/emergent/SelfEvaluateTool.d.ts.map +1 -1
  65. package/dist/cognition/emergent/SelfEvaluateTool.js +3 -2
  66. package/dist/cognition/emergent/SelfEvaluateTool.js.map +1 -1
  67. package/dist/cognition/substrate/CognitiveMemoryBridge.d.ts +51 -2
  68. package/dist/cognition/substrate/CognitiveMemoryBridge.d.ts.map +1 -1
  69. package/dist/cognition/substrate/CognitiveMemoryBridge.js +84 -2
  70. package/dist/cognition/substrate/CognitiveMemoryBridge.js.map +1 -1
  71. package/dist/cognition/substrate/ConversationHistoryManager.d.ts +8 -4
  72. package/dist/cognition/substrate/ConversationHistoryManager.d.ts.map +1 -1
  73. package/dist/cognition/substrate/ConversationHistoryManager.js +17 -5
  74. package/dist/cognition/substrate/ConversationHistoryManager.js.map +1 -1
  75. package/dist/cognition/substrate/GMI.d.ts +92 -5
  76. package/dist/cognition/substrate/GMI.d.ts.map +1 -1
  77. package/dist/cognition/substrate/GMI.js +291 -65
  78. package/dist/cognition/substrate/GMI.js.map +1 -1
  79. package/dist/cognition/substrate/GMIManager.d.ts +12 -0
  80. package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
  81. package/dist/cognition/substrate/GMIManager.js +22 -16
  82. package/dist/cognition/substrate/GMIManager.js.map +1 -1
  83. package/dist/cognition/substrate/IGMI.d.ts +23 -0
  84. package/dist/cognition/substrate/IGMI.d.ts.map +1 -1
  85. package/dist/cognition/substrate/IGMI.js.map +1 -1
  86. package/dist/cognition/substrate/MetapromptExecutor.d.ts +183 -28
  87. package/dist/cognition/substrate/MetapromptExecutor.d.ts.map +1 -1
  88. package/dist/cognition/substrate/MetapromptExecutor.js +431 -108
  89. package/dist/cognition/substrate/MetapromptExecutor.js.map +1 -1
  90. package/dist/cognition/substrate/personas/IPersonaDefinition.d.ts +5 -0
  91. package/dist/cognition/substrate/personas/IPersonaDefinition.d.ts.map +1 -1
  92. package/dist/cognition/substrate/personas/PersonaValidation.d.ts.map +1 -1
  93. package/dist/cognition/substrate/personas/PersonaValidation.js +30 -0
  94. package/dist/cognition/substrate/personas/PersonaValidation.js.map +1 -1
  95. package/dist/cognition/substrate/personas/SoulLoader.d.ts +14 -1
  96. package/dist/cognition/substrate/personas/SoulLoader.d.ts.map +1 -1
  97. package/dist/cognition/substrate/personas/SoulLoader.js +45 -12
  98. package/dist/cognition/substrate/personas/SoulLoader.js.map +1 -1
  99. package/dist/cognition/substrate/personas/definitions/default_assistant_persona.json +3 -35
  100. package/dist/cognition/substrate/personas/hexaco.d.ts +34 -0
  101. package/dist/cognition/substrate/personas/hexaco.d.ts.map +1 -0
  102. package/dist/cognition/substrate/personas/hexaco.js +66 -0
  103. package/dist/cognition/substrate/personas/hexaco.js.map +1 -0
  104. package/dist/cognition/substrate/userFeedback.d.ts +69 -0
  105. package/dist/cognition/substrate/userFeedback.d.ts.map +1 -0
  106. package/dist/cognition/substrate/userFeedback.js +107 -0
  107. package/dist/cognition/substrate/userFeedback.js.map +1 -0
  108. package/dist/core/conversation/ConversationMessage.d.ts +9 -0
  109. package/dist/core/conversation/ConversationMessage.d.ts.map +1 -1
  110. package/dist/core/conversation/ConversationMessage.js.map +1 -1
  111. package/dist/core/llm/IPromptEngine.d.ts +9 -0
  112. package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
  113. package/dist/core/llm/IPromptEngine.js.map +1 -1
  114. package/dist/core/llm/PromptEngine.d.ts +30 -1
  115. package/dist/core/llm/PromptEngine.d.ts.map +1 -1
  116. package/dist/core/llm/PromptEngine.js +229 -92
  117. package/dist/core/llm/PromptEngine.js.map +1 -1
  118. package/dist/core/llm/providers/AIModelProviderManager.d.ts +20 -0
  119. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  120. package/dist/core/llm/providers/AIModelProviderManager.js +35 -5
  121. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  122. package/dist/core/llm/providers/IProvider.d.ts +28 -8
  123. package/dist/core/llm/providers/IProvider.d.ts.map +1 -1
  124. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +135 -49
  125. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -1
  126. package/dist/core/llm/providers/implementations/AnthropicProvider.js +323 -114
  127. package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -1
  128. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts.map +1 -1
  129. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js +15 -1
  130. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js.map +1 -1
  131. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts +1 -1
  132. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts.map +1 -1
  133. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js +51 -24
  134. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js.map +1 -1
  135. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +25 -6
  136. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -1
  137. package/dist/core/llm/providers/implementations/GeminiProvider.js +108 -90
  138. package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -1
  139. package/dist/core/llm/providers/implementations/MistralProvider.d.ts +11 -0
  140. package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -1
  141. package/dist/core/llm/providers/implementations/MistralProvider.js +32 -2
  142. package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -1
  143. package/dist/core/llm/providers/implementations/OllamaProvider.js +7 -7
  144. package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -1
  145. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts +53 -2
  146. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -1
  147. package/dist/core/llm/providers/implementations/OpenAIProvider.js +84 -17
  148. package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -1
  149. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
  150. package/dist/core/llm/providers/implementations/OpenRouterProvider.js +8 -3
  151. package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
  152. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +3 -3
  153. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -1
  154. package/dist/core/llm/providers/implementations/TogetherProvider.js +25 -13
  155. package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -1
  156. package/dist/core/llm/providers/implementations/cacheLeakDetector.d.ts +15 -7
  157. package/dist/core/llm/providers/implementations/cacheLeakDetector.d.ts.map +1 -1
  158. package/dist/core/llm/providers/implementations/cacheLeakDetector.js +12 -7
  159. package/dist/core/llm/providers/implementations/cacheLeakDetector.js.map +1 -1
  160. package/dist/core/llm/providers/model-cache-capabilities.d.ts +24 -9
  161. package/dist/core/llm/providers/model-cache-capabilities.d.ts.map +1 -1
  162. package/dist/core/llm/providers/model-cache-capabilities.js +59 -44
  163. package/dist/core/llm/providers/model-cache-capabilities.js.map +1 -1
  164. package/dist/core/llm/providers/model-effort.d.ts +14 -0
  165. package/dist/core/llm/providers/model-effort.d.ts.map +1 -1
  166. package/dist/core/llm/providers/model-effort.js +22 -0
  167. package/dist/core/llm/providers/model-effort.js.map +1 -1
  168. package/dist/core/llm/providers/model-forced-tool-choice.d.ts +13 -6
  169. package/dist/core/llm/providers/model-forced-tool-choice.d.ts.map +1 -1
  170. package/dist/core/llm/providers/model-forced-tool-choice.js +14 -7
  171. package/dist/core/llm/providers/model-forced-tool-choice.js.map +1 -1
  172. package/dist/core/llm/providers/model-thinking.d.ts +64 -13
  173. package/dist/core/llm/providers/model-thinking.d.ts.map +1 -1
  174. package/dist/core/llm/providers/model-thinking.js +52 -12
  175. package/dist/core/llm/providers/model-thinking.js.map +1 -1
  176. package/dist/core/llm/providers/openrouter-only-params.d.ts +26 -7
  177. package/dist/core/llm/providers/openrouter-only-params.d.ts.map +1 -1
  178. package/dist/core/llm/providers/openrouter-only-params.js +58 -9
  179. package/dist/core/llm/providers/openrouter-only-params.js.map +1 -1
  180. package/dist/core/llm/providers/url-secrets.d.ts +42 -0
  181. package/dist/core/llm/providers/url-secrets.d.ts.map +1 -0
  182. package/dist/core/llm/providers/url-secrets.js +64 -0
  183. package/dist/core/llm/providers/url-secrets.js.map +1 -0
  184. package/dist/core/llm/streaming/StreamingBatcher.d.ts +4 -3
  185. package/dist/core/llm/streaming/StreamingBatcher.d.ts.map +1 -1
  186. package/dist/core/llm/streaming/StreamingBatcher.js +8 -3
  187. package/dist/core/llm/streaming/StreamingBatcher.js.map +1 -1
  188. package/dist/core/safety/LLMProviderHealthRegistry.d.ts +4 -0
  189. package/dist/core/safety/LLMProviderHealthRegistry.d.ts.map +1 -1
  190. package/dist/core/safety/LLMProviderHealthRegistry.js +26 -0
  191. package/dist/core/safety/LLMProviderHealthRegistry.js.map +1 -1
  192. package/dist/core/utils/sha256.d.ts +19 -0
  193. package/dist/core/utils/sha256.d.ts.map +1 -0
  194. package/dist/core/utils/sha256.js +101 -0
  195. package/dist/core/utils/sha256.js.map +1 -0
  196. package/dist/index.d.ts +1 -1
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +1 -1
  199. package/dist/index.js.map +1 -1
  200. package/dist/orchestration/pipeline/query/types.js +3 -3
  201. package/dist/orchestration/pipeline/query/types.js.map +1 -1
  202. package/dist/orchestration/planning/ProviderAssignmentEngine.js +2 -2
  203. package/dist/orchestration/planning/ProviderAssignmentEngine.js.map +1 -1
  204. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiCLIProvider.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/GeminiCLIProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiCLIProvider.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/GeminiCLIProvider.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * conventions used by IProvider:
7
7
  *
8
8
  * Key API differences from OpenAI:
9
- * - Auth: API key passed as `?key=` query parameter, NOT as a Bearer header.
9
+ * - Auth: API key in the `x-goog-api-key` header, never in the URL.
10
10
  * - Roles: Gemini uses `user` / `model` (not `assistant`).
11
11
  * - System instruction: Separate `systemInstruction` field, not a role.
12
12
  * - Tool calling: Uses `functionDeclarations` under `tools[]`, response uses `functionCall`.
@@ -32,7 +32,8 @@ export interface GeminiProviderConfig {
32
32
  /**
33
33
  * Google Gemini API key.
34
34
  * Typically sourced from the `GEMINI_API_KEY` environment variable.
35
- * Passed as a query parameter (`?key=...`), not as a header.
35
+ * Sent in the `x-goog-api-key` header, never in the request URL, so it
36
+ * stays out of proxy and access logs.
36
37
  */
37
38
  apiKey: string;
38
39
  /**
@@ -228,6 +229,12 @@ export declare class GeminiProvider implements IProvider {
228
229
  * - `assistant` -> `model` (Gemini uses "model" instead of "assistant")
229
230
  * - `tool` -> `user` with `functionResponse` parts
230
231
  *
232
+ * Consecutive tool results share one `user` turn, because Gemini requires
233
+ * the responses to a turn of parallel function calls in a single content
234
+ * (one functionResponse part per call). A tool result without `name`, as
235
+ * `generateText` records them, takes the function name of the call with the
236
+ * same id.
237
+ *
231
238
  * @param {ChatMessage[]} messages - IProvider-format messages.
232
239
  * @returns {GeminiContent[]} Gemini-format content array.
233
240
  * @private
@@ -308,11 +315,23 @@ export declare class GeminiProvider implements IProvider {
308
315
  * @private
309
316
  */
310
317
  private buildAbortChunk;
318
+ /**
319
+ * The next API key to send: the pool rotates between configured keys and
320
+ * skips one in cooldown after a 429. Falls back to the configured key when
321
+ * the provider was configured without initialization (tests).
322
+ */
323
+ private nextApiKey;
324
+ /**
325
+ * Request headers for one call. The key travels in `x-goog-api-key`, which
326
+ * Gemini accepts on every endpoint this provider calls.
327
+ */
328
+ private requestHeaders;
311
329
  /**
312
330
  * Makes a non-streaming API request to the Gemini API with retry logic.
313
331
  *
314
- * Authentication uses a `?key=` query parameter (Gemini's auth mechanism),
315
- * NOT a header-based approach like OpenAI or Anthropic.
332
+ * The API key goes in the `x-goog-api-key` header. Each attempt draws a key
333
+ * from the pool, so a retry after a 429 uses another key when one is
334
+ * configured.
316
335
  *
317
336
  * @template T The expected response type.
318
337
  * @param {string} endpoint - API endpoint path (e.g., "/models/gemini-2.5-flash:generateContent").
@@ -325,8 +344,8 @@ export declare class GeminiProvider implements IProvider {
325
344
  /**
326
345
  * Makes a streaming API request and returns the raw ReadableStream.
327
346
  *
328
- * Uses the `?alt=sse` query parameter to enable SSE streaming,
329
- * combined with the `?key=` query parameter for authentication.
347
+ * Uses the `?alt=sse` query parameter to enable SSE streaming; the API key
348
+ * goes in the `x-goog-api-key` header.
330
349
  *
331
350
  * @param {string} endpoint - API endpoint (e.g., "/models/gemini-2.5-flash:streamGenerateContent").
332
351
  * @param {Record<string, unknown>} body - Request body.
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/GeminiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/GeminiProvider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  // File: backend/agentos/core/llm/providers/implementations/GeminiProvider.ts
2
2
  import { stripOpenRouterOnlyParams } from '../openrouter-only-params.js';
3
+ import { redactUrlSecrets } from '../url-secrets.js';
3
4
  import { GeminiProviderError } from '../errors/GeminiProviderError.js';
4
5
  import { ApiKeyPool } from '../../../providers/ApiKeyPool.js';
5
6
  import { computeRetryBackoffMs } from './retry-backoff.js';
@@ -18,53 +19,6 @@ const GEMINI_EMBED_BATCH_LIMIT = 100;
18
19
  * 2026-09-29).
19
20
  */
20
21
  const GEMINI_SKIP_THOUGHT_SIGNATURE = 'skip_thought_signature_validator';
21
- /**
22
- * The credentials part of a base URL, read from the raw string: the text
23
- * between the authority start (after a leading `scheme://` or `//`, else the
24
- * start of a scheme-less URL) and the last `@`. The last `@` is used because an email-style username
25
- * carries its own `@`, and the raw string because a URL that fails to parse
26
- * (for example with a `/` in the password) still appears verbatim in fetch's
27
- * error.
28
- *
29
- * @param baseURL Configured base URL.
30
- * @returns The credentials substring, or undefined when there is none.
31
- */
32
- function baseUrlCredentials(baseURL) {
33
- if (!baseURL)
34
- return undefined;
35
- // Only a leading scheme or `//` opens the authority; a `//` later in the
36
- // path must not move the start past the credentials.
37
- const scheme = /^[a-z][a-z\d+.-]*:\/\//i.exec(baseURL);
38
- const start = scheme ? scheme[0].length : baseURL.startsWith('//') ? 2 : 0;
39
- const at = baseURL.lastIndexOf('@');
40
- return at > start ? baseURL.slice(start, at) : undefined;
41
- }
42
- /**
43
- * Masks the secrets a request URL carries out of an error message: the API
44
- * key the request sent as `key=` and any credentials in the base URL. The
45
- * known values are replaced literally, since a pattern cannot tell where
46
- * arbitrary credentials end. A fetch that rejects its URL (relative,
47
- * scheme-less or credential-bearing) names the whole URL in its error.
48
- *
49
- * @param message Error message that may contain the request URL.
50
- * @param apiKey The key the request carried.
51
- * @param baseURL Configured base URL.
52
- * @returns The message with those secrets replaced by `[redacted]`.
53
- */
54
- function redactUrlSecrets(message, apiKey, baseURL) {
55
- // Longest first, so a key that also appears inside the credentials cannot
56
- // split them before the whole credentials string is replaced.
57
- const secrets = [baseUrlCredentials(baseURL), apiKey]
58
- .filter((secret) => Boolean(secret))
59
- .sort((a, b) => b.length - a.length);
60
- let out = message;
61
- for (const secret of secrets)
62
- out = out.split(secret).join('[redacted]');
63
- // Backstops for any other key= value or //user:password@ credentials.
64
- return out
65
- .replace(/([?&]key=)[^&\s"')]+/g, '$1[redacted]')
66
- .replace(/(\/\/)[^/\s@"')]+@/g, '$1[redacted]@');
67
- }
68
22
  /**
69
23
  * Thinking levels each model accepts, keyed by exact model id and limited to
70
24
  * what was verified against the live API (2026-09-30). The set differs per
@@ -148,9 +102,9 @@ const GEMINI_MODELS = [
148
102
  status: 'active',
149
103
  },
150
104
  // --- Flash. 3.6, 3.7 and 3.8 list at $0.75 / $3.75 through 2026-12-31 and
151
- // $1.50 / $7.50 from 2027-01-01. They meter at $1.50 / $7.50, as
152
- // claude-sonnet-5 meters at its sticker rate in the Anthropic catalog, so
153
- // cost rollups stay conservative and stay right after the promotion. ---
105
+ // $1.50 / $7.50 from 2027-01-01. They meter at $1.50 / $7.50 because the
106
+ // promotion has a published end date: cost rollups stay conservative until
107
+ // then and stay right after it. ---
154
108
  {
155
109
  modelId: 'gemini-3.8-flash',
156
110
  providerId: 'gemini',
@@ -560,6 +514,7 @@ export class GeminiProvider {
560
514
  }
561
515
  // Accumulators for building the complete response
562
516
  let accumulatedContent = '';
517
+ let accumulatedReasoning = '';
563
518
  let lastFinishReason = null;
564
519
  let lastUsage;
565
520
  /** Map from part index -> tool call accumulator */
@@ -611,9 +566,22 @@ export class GeminiProvider {
611
566
  }
612
567
  const parts = candidate.content?.parts ?? [];
613
568
  for (const part of parts) {
614
- // A thought summary is the model's reasoning; it stays out of the answer.
615
- if (part.thought)
569
+ // A thought summary is the model's reasoning: it streams as
570
+ // reasoning text, apart from the answer.
571
+ if (part.thought) {
572
+ if (typeof part.text === 'string' && part.text) {
573
+ accumulatedReasoning += part.text;
574
+ yield {
575
+ id: responseId,
576
+ object: 'chat.completion.chunk',
577
+ created: Math.floor(Date.now() / 1000),
578
+ modelId,
579
+ choices: [{ index: 0, message: { role: 'assistant', content: null }, finishReason: null }],
580
+ reasoningTextDelta: part.text,
581
+ };
582
+ }
616
583
  continue;
584
+ }
617
585
  if (part.text !== undefined) {
618
586
  // Text delta
619
587
  accumulatedContent += part.text;
@@ -686,6 +654,7 @@ export class GeminiProvider {
686
654
  role: 'assistant',
687
655
  content: accumulatedContent || null,
688
656
  ...(hasToolCalls && { tool_calls: toolCalls }),
657
+ ...(accumulatedReasoning && { reasoningText: accumulatedReasoning }),
689
658
  },
690
659
  finishReason: this.mapFinishReason(lastFinishReason),
691
660
  }],
@@ -990,12 +959,19 @@ export class GeminiProvider {
990
959
  * - `assistant` -> `model` (Gemini uses "model" instead of "assistant")
991
960
  * - `tool` -> `user` with `functionResponse` parts
992
961
  *
962
+ * Consecutive tool results share one `user` turn, because Gemini requires
963
+ * the responses to a turn of parallel function calls in a single content
964
+ * (one functionResponse part per call). A tool result without `name`, as
965
+ * `generateText` records them, takes the function name of the call with the
966
+ * same id.
967
+ *
993
968
  * @param {ChatMessage[]} messages - IProvider-format messages.
994
969
  * @returns {GeminiContent[]} Gemini-format content array.
995
970
  * @private
996
971
  */
997
972
  convertMessages(messages) {
998
973
  const contents = [];
974
+ const toolNameByCallId = new Map();
999
975
  for (const msg of messages) {
1000
976
  if (msg.role === 'assistant') {
1001
977
  // --- Assistant messages map to "model" role ---
@@ -1012,6 +988,8 @@ export class GeminiProvider {
1012
988
  if (msg.tool_calls?.length) {
1013
989
  const turnHasSignature = msg.tool_calls.some(tc => tc.thoughtSignature);
1014
990
  msg.tool_calls.forEach((tc, i) => {
991
+ if (tc.id)
992
+ toolNameByCallId.set(tc.id, tc.function.name);
1015
993
  let parsedArgs;
1016
994
  try {
1017
995
  parsedArgs = typeof tc.function.arguments === 'string'
@@ -1043,25 +1021,42 @@ export class GeminiProvider {
1043
1021
  // --- Tool result messages become user-role functionResponse ---
1044
1022
  // Gemini expects tool results as functionResponse parts in a user turn.
1045
1023
  let responseData;
1046
- try {
1047
- const raw = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content ?? '');
1048
- responseData = typeof msg.content === 'string'
1049
- ? JSON.parse(raw)
1050
- : { result: raw };
1024
+ if (typeof msg.content === 'string') {
1025
+ let parsed;
1026
+ try {
1027
+ parsed = JSON.parse(msg.content);
1028
+ }
1029
+ catch {
1030
+ // If the tool result isn't valid JSON, wrap it
1031
+ parsed = msg.content;
1032
+ }
1033
+ // functionResponse.response is a JSON object (a protobuf Struct);
1034
+ // Gemini rejects a string, number, array or null there with HTTP
1035
+ // 400, so such a result is wrapped.
1036
+ responseData = parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
1037
+ ? parsed
1038
+ : { result: parsed };
1051
1039
  }
1052
- catch {
1053
- // If the tool result isn't valid JSON, wrap it
1054
- responseData = { result: typeof msg.content === 'string' ? msg.content : String(msg.content) };
1040
+ else {
1041
+ responseData = { result: JSON.stringify(msg.content ?? '') };
1042
+ }
1043
+ const responsePart = {
1044
+ functionResponse: {
1045
+ name: msg.name
1046
+ || (msg.tool_call_id ? toolNameByCallId.get(msg.tool_call_id) : undefined)
1047
+ || 'unknown',
1048
+ response: responseData,
1049
+ },
1050
+ };
1051
+ const previous = contents[contents.length - 1];
1052
+ if (previous?.role === 'user'
1053
+ && previous.parts.length > 0
1054
+ && previous.parts.every(part => part.functionResponse)) {
1055
+ previous.parts.push(responsePart);
1056
+ }
1057
+ else {
1058
+ contents.push({ role: 'user', parts: [responsePart] });
1055
1059
  }
1056
- contents.push({
1057
- role: 'user',
1058
- parts: [{
1059
- functionResponse: {
1060
- name: msg.name || 'unknown',
1061
- response: responseData,
1062
- },
1063
- }],
1064
- });
1065
1060
  }
1066
1061
  else {
1067
1062
  // --- User messages ---
@@ -1142,6 +1137,11 @@ export class GeminiProvider {
1142
1137
  .filter(p => p.text !== undefined && !p.thought)
1143
1138
  .map(p => p.text);
1144
1139
  const fullText = textParts.join('');
1140
+ // They are returned apart, as the turn's reasoning summary.
1141
+ const reasoningText = parts
1142
+ .filter(p => p.thought && typeof p.text === 'string' && p.text)
1143
+ .map(p => p.text)
1144
+ .join('');
1145
1145
  // Collect function calls and convert to OpenAI-style tool_calls
1146
1146
  const toolCalls = parts
1147
1147
  .filter(p => p.functionCall)
@@ -1171,6 +1171,7 @@ export class GeminiProvider {
1171
1171
  role: 'assistant',
1172
1172
  content: fullText || null,
1173
1173
  ...(hasToolCalls && { tool_calls: toolCalls }),
1174
+ ...(reasoningText && { reasoningText }),
1174
1175
  },
1175
1176
  finishReason,
1176
1177
  };
@@ -1305,11 +1306,31 @@ export class GeminiProvider {
1305
1306
  // -------------------------------------------------------------------------
1306
1307
  // HTTP transport
1307
1308
  // -------------------------------------------------------------------------
1309
+ /**
1310
+ * The next API key to send: the pool rotates between configured keys and
1311
+ * skips one in cooldown after a 429. Falls back to the configured key when
1312
+ * the provider was configured without initialization (tests).
1313
+ */
1314
+ nextApiKey() {
1315
+ return this.keyPool?.hasKeys ? this.keyPool.next() : this.config.apiKey;
1316
+ }
1317
+ /**
1318
+ * Request headers for one call. The key travels in `x-goog-api-key`, which
1319
+ * Gemini accepts on every endpoint this provider calls.
1320
+ */
1321
+ requestHeaders(apiKey) {
1322
+ return {
1323
+ 'Content-Type': 'application/json',
1324
+ 'User-Agent': 'AgentOS/1.0 (GeminiProvider)',
1325
+ 'x-goog-api-key': apiKey,
1326
+ };
1327
+ }
1308
1328
  /**
1309
1329
  * Makes a non-streaming API request to the Gemini API with retry logic.
1310
1330
  *
1311
- * Authentication uses a `?key=` query parameter (Gemini's auth mechanism),
1312
- * NOT a header-based approach like OpenAI or Anthropic.
1331
+ * The API key goes in the `x-goog-api-key` header. Each attempt draws a key
1332
+ * from the pool, so a retry after a 429 uses another key when one is
1333
+ * configured.
1313
1334
  *
1314
1335
  * @template T The expected response type.
1315
1336
  * @param {string} endpoint - API endpoint path (e.g., "/models/gemini-2.5-flash:generateContent").
@@ -1319,13 +1340,7 @@ export class GeminiProvider {
1319
1340
  * @private
1320
1341
  */
1321
1342
  async makeApiRequest(endpoint, body, requestTimeoutOverride) {
1322
- // API key is passed as query parameter — Gemini's auth convention
1323
- const apiKey = this.keyPool?.hasKeys ? this.keyPool.next() : this.config.apiKey;
1324
- const url = `${this.config.baseURL}${endpoint}?key=${apiKey}`;
1325
- const headers = {
1326
- 'Content-Type': 'application/json',
1327
- 'User-Agent': 'AgentOS/1.0 (GeminiProvider)',
1328
- };
1343
+ const url = `${this.config.baseURL}${endpoint}`;
1329
1344
  let lastError = new GeminiProviderError('Request failed after all retries.', 'MAX_RETRIES_REACHED');
1330
1345
  // CR8: honor a per-call requestTimeout override (e.g. long codegen) over
1331
1346
  // the provider default; only Anthropic read this before.
@@ -1333,12 +1348,13 @@ export class GeminiProvider {
1333
1348
  ? requestTimeoutOverride
1334
1349
  : this.config.requestTimeout;
1335
1350
  for (let attempt = 0; attempt < this.config.maxRetries; attempt++) {
1351
+ const apiKey = this.nextApiKey();
1336
1352
  const controller = new AbortController();
1337
1353
  const timeoutId = setTimeout(() => controller.abort(), effectiveTimeout);
1338
1354
  try {
1339
1355
  const response = await fetch(url, {
1340
1356
  method: 'POST',
1341
- headers,
1357
+ headers: this.requestHeaders(apiKey),
1342
1358
  body: JSON.stringify(body),
1343
1359
  signal: controller.signal,
1344
1360
  });
@@ -1354,6 +1370,9 @@ export class GeminiProvider {
1354
1370
  // Rate limit — respect Retry-After header
1355
1371
  if (response.status === 429) {
1356
1372
  lastError = new GeminiProviderError(errorMessage, 'RATE_LIMIT_EXCEEDED', 429, errorStatus, errorData);
1373
+ // The key's quota is spent: the pool rests it, and the next
1374
+ // attempt draws another key when one is configured.
1375
+ this.keyPool?.markExhausted(apiKey);
1357
1376
  const retryAfter = response.headers.get('retry-after');
1358
1377
  // Retry-After is authoritative when present; otherwise jittered backoff.
1359
1378
  const retryAfterMs = retryAfter ? parseInt(retryAfter, 10) * 1000 : computeRetryBackoffMs(attempt);
@@ -1382,7 +1401,7 @@ export class GeminiProvider {
1382
1401
  }
1383
1402
  else {
1384
1403
  lastError = new GeminiProviderError(error instanceof Error
1385
- ? redactUrlSecrets(error.message, apiKey, this.config.baseURL)
1404
+ ? redactUrlSecrets(error.message, this.config.baseURL, [apiKey])
1386
1405
  : 'Network or unknown error', 'NETWORK_ERROR');
1387
1406
  }
1388
1407
  if (attempt === this.config.maxRetries - 1)
@@ -1397,8 +1416,8 @@ export class GeminiProvider {
1397
1416
  /**
1398
1417
  * Makes a streaming API request and returns the raw ReadableStream.
1399
1418
  *
1400
- * Uses the `?alt=sse` query parameter to enable SSE streaming,
1401
- * combined with the `?key=` query parameter for authentication.
1419
+ * Uses the `?alt=sse` query parameter to enable SSE streaming; the API key
1420
+ * goes in the `x-goog-api-key` header.
1402
1421
  *
1403
1422
  * @param {string} endpoint - API endpoint (e.g., "/models/gemini-2.5-flash:streamGenerateContent").
1404
1423
  * @param {Record<string, unknown>} body - Request body.
@@ -1407,13 +1426,9 @@ export class GeminiProvider {
1407
1426
  * @private
1408
1427
  */
1409
1428
  async makeStreamRequest(endpoint, body, requestTimeoutOverride) {
1410
- // Both alt=sse and key= are query params
1411
- const apiKey = this.keyPool?.hasKeys ? this.keyPool.next() : this.config.apiKey;
1412
- const url = `${this.config.baseURL}${endpoint}?alt=sse&key=${apiKey}`;
1413
- const headers = {
1414
- 'Content-Type': 'application/json',
1415
- 'User-Agent': 'AgentOS/1.0 (GeminiProvider)',
1416
- };
1429
+ const apiKey = this.nextApiKey();
1430
+ const url = `${this.config.baseURL}${endpoint}?alt=sse`;
1431
+ const headers = this.requestHeaders(apiKey);
1417
1432
  const controller = new AbortController();
1418
1433
  // CR8: honor a per-call requestTimeout override over the provider default.
1419
1434
  const effectiveTimeout = typeof requestTimeoutOverride === 'number' && requestTimeoutOverride > 0
@@ -1431,6 +1446,9 @@ export class GeminiProvider {
1431
1446
  if (!response.ok) {
1432
1447
  const errorData = await response.json().catch(() => ({}));
1433
1448
  const errorMessage = errorData.error?.message || `HTTP ${response.status}: ${response.statusText}`;
1449
+ // A key whose quota is spent rests, so the next request draws another.
1450
+ if (response.status === 429)
1451
+ this.keyPool?.markExhausted(apiKey);
1434
1452
  throw new GeminiProviderError(errorMessage, 'STREAM_CONNECTION_FAILED', response.status, errorData.error?.status, errorData);
1435
1453
  }
1436
1454
  if (!response.body) {
@@ -1443,7 +1461,7 @@ export class GeminiProvider {
1443
1461
  if (error instanceof GeminiProviderError)
1444
1462
  throw error;
1445
1463
  throw new GeminiProviderError(error instanceof Error
1446
- ? redactUrlSecrets(error.message, apiKey, this.config.baseURL)
1464
+ ? redactUrlSecrets(error.message, this.config.baseURL, [apiKey])
1447
1465
  : 'Failed to connect to Gemini stream.', 'STREAM_CONNECTION_FAILED');
1448
1466
  }
1449
1467
  }