@pentoshi/clai 4.1.0 → 4.2.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.
Files changed (266) hide show
  1. package/README.md +14 -0
  2. package/dist/agent/compaction-executor.d.ts +68 -0
  3. package/dist/agent/compaction-executor.js +343 -0
  4. package/dist/agent/compaction-executor.js.map +1 -0
  5. package/dist/agent/context-breakdown.js +2 -0
  6. package/dist/agent/context-breakdown.js.map +1 -1
  7. package/dist/agent/context-manager.d.ts +23 -9
  8. package/dist/agent/context-manager.js +72 -43
  9. package/dist/agent/context-manager.js.map +1 -1
  10. package/dist/agent/events.d.ts +3 -0
  11. package/dist/agent/loop-guard.d.ts +2 -0
  12. package/dist/agent/loop-guard.js +48 -3
  13. package/dist/agent/loop-guard.js.map +1 -1
  14. package/dist/agent/prompt-composer.js +6 -6
  15. package/dist/agent/prompt-composer.js.map +1 -1
  16. package/dist/agent/reliability-policy.d.ts +1 -0
  17. package/dist/agent/reliability-policy.js +6 -3
  18. package/dist/agent/reliability-policy.js.map +1 -1
  19. package/dist/agent/request-accounting.d.ts +97 -0
  20. package/dist/agent/request-accounting.js +207 -0
  21. package/dist/agent/request-accounting.js.map +1 -0
  22. package/dist/agent/request-budget.d.ts +2 -2
  23. package/dist/agent/request-budget.js +2 -4
  24. package/dist/agent/request-budget.js.map +1 -1
  25. package/dist/agent/runner.d.ts +8 -2
  26. package/dist/agent/runner.js +409 -178
  27. package/dist/agent/runner.js.map +1 -1
  28. package/dist/agent/session-title.d.ts +0 -26
  29. package/dist/agent/session-title.js +0 -80
  30. package/dist/agent/session-title.js.map +1 -1
  31. package/dist/agent/tool-history.d.ts +2 -2
  32. package/dist/agent/tool-history.js +19 -6
  33. package/dist/agent/tool-history.js.map +1 -1
  34. package/dist/app/adapters/agent-event-adapter.js +19 -0
  35. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  36. package/dist/app/adapters/current-agent-adapter.js +4 -0
  37. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  38. package/dist/app/commands/catalog.js +24 -0
  39. package/dist/app/commands/catalog.js.map +1 -1
  40. package/dist/app/controllers/cancel-coordinator.d.ts +51 -0
  41. package/dist/app/controllers/cancel-coordinator.js +48 -0
  42. package/dist/app/controllers/cancel-coordinator.js.map +1 -0
  43. package/dist/app/controllers/session-compact-helper.d.ts +19 -2
  44. package/dist/app/controllers/session-compact-helper.js +100 -127
  45. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  46. package/dist/app/controllers/session-context-usage.d.ts +32 -15
  47. package/dist/app/controllers/session-context-usage.js +186 -51
  48. package/dist/app/controllers/session-context-usage.js.map +1 -1
  49. package/dist/app/controllers/session-controller.d.ts +20 -11
  50. package/dist/app/controllers/session-controller.js +111 -90
  51. package/dist/app/controllers/session-controller.js.map +1 -1
  52. package/dist/app/controllers/session-naming.d.ts +31 -0
  53. package/dist/app/controllers/session-naming.js +173 -0
  54. package/dist/app/controllers/session-naming.js.map +1 -0
  55. package/dist/app/controllers/session-persistence.d.ts +2 -2
  56. package/dist/app/controllers/session-persistence.js +3 -6
  57. package/dist/app/controllers/session-persistence.js.map +1 -1
  58. package/dist/app/controllers/session-turn-request.d.ts +2 -1
  59. package/dist/app/controllers/session-turn-request.js +3 -0
  60. package/dist/app/controllers/session-turn-request.js.map +1 -1
  61. package/dist/app/controllers/turn-controller.d.ts +2 -1
  62. package/dist/app/controllers/turn-controller.js +1 -0
  63. package/dist/app/controllers/turn-controller.js.map +1 -1
  64. package/dist/app/events/app-event.d.ts +9 -0
  65. package/dist/app/events/app-event.js.map +1 -1
  66. package/dist/app/ports/agent-port.d.ts +8 -1
  67. package/dist/classic/app/ClassicApp.js +2 -1
  68. package/dist/classic/app/ClassicApp.js.map +1 -1
  69. package/dist/classic/app/app-wiring.js +1 -2
  70. package/dist/classic/app/app-wiring.js.map +1 -1
  71. package/dist/classic/app/wiring-interactions.js +2 -7
  72. package/dist/classic/app/wiring-interactions.js.map +1 -1
  73. package/dist/classic/blocks/tool-lines.js +2 -1
  74. package/dist/classic/blocks/tool-lines.js.map +1 -1
  75. package/dist/classic/input/cancel-ladder.d.ts +2 -19
  76. package/dist/classic/input/cancel-ladder.js +13 -20
  77. package/dist/classic/input/cancel-ladder.js.map +1 -1
  78. package/dist/commands/providers.js +2 -0
  79. package/dist/commands/providers.js.map +1 -1
  80. package/dist/llm/adapters/anthropic-tools.d.ts +31 -14
  81. package/dist/llm/adapters/anthropic-tools.js +124 -29
  82. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  83. package/dist/llm/adapters/gemini-tools.d.ts +16 -4
  84. package/dist/llm/adapters/gemini-tools.js +117 -16
  85. package/dist/llm/adapters/gemini-tools.js.map +1 -1
  86. package/dist/llm/adapters/openai-tools.d.ts +13 -2
  87. package/dist/llm/adapters/openai-tools.js +58 -11
  88. package/dist/llm/adapters/openai-tools.js.map +1 -1
  89. package/dist/llm/agentrouter.js +68 -45
  90. package/dist/llm/agentrouter.js.map +1 -1
  91. package/dist/llm/anthropic.js +69 -36
  92. package/dist/llm/anthropic.js.map +1 -1
  93. package/dist/llm/aws-mantle.js +70 -32
  94. package/dist/llm/aws-mantle.js.map +1 -1
  95. package/dist/llm/bynara.js +26 -69
  96. package/dist/llm/bynara.js.map +1 -1
  97. package/dist/llm/capabilities.d.ts +2 -1
  98. package/dist/llm/capabilities.js +47 -0
  99. package/dist/llm/capabilities.js.map +1 -1
  100. package/dist/llm/context-snapshot.d.ts +100 -0
  101. package/dist/llm/context-snapshot.js +277 -0
  102. package/dist/llm/context-snapshot.js.map +1 -0
  103. package/dist/llm/context-windows.d.ts +10 -0
  104. package/dist/llm/context-windows.js +129 -0
  105. package/dist/llm/context-windows.js.map +1 -0
  106. package/dist/llm/custom-provider-profile.d.ts +75 -0
  107. package/dist/llm/custom-provider-profile.js +558 -0
  108. package/dist/llm/custom-provider-profile.js.map +1 -0
  109. package/dist/llm/custom-providers.d.ts +13 -1
  110. package/dist/llm/custom-providers.js +77 -25
  111. package/dist/llm/custom-providers.js.map +1 -1
  112. package/dist/llm/effort-fallback.d.ts +44 -0
  113. package/dist/llm/effort-fallback.js +101 -0
  114. package/dist/llm/effort-fallback.js.map +1 -0
  115. package/dist/llm/fireworks.js +4 -0
  116. package/dist/llm/fireworks.js.map +1 -1
  117. package/dist/llm/free.js +4 -0
  118. package/dist/llm/free.js.map +1 -1
  119. package/dist/llm/gemini.d.ts +1 -1
  120. package/dist/llm/gemini.js +89 -51
  121. package/dist/llm/gemini.js.map +1 -1
  122. package/dist/llm/groq.js +4 -0
  123. package/dist/llm/groq.js.map +1 -1
  124. package/dist/llm/hetzner.js +4 -0
  125. package/dist/llm/hetzner.js.map +1 -1
  126. package/dist/llm/http.d.ts +49 -10
  127. package/dist/llm/http.js +417 -153
  128. package/dist/llm/http.js.map +1 -1
  129. package/dist/llm/kimchi.js +4 -0
  130. package/dist/llm/kimchi.js.map +1 -1
  131. package/dist/llm/lightning.js +4 -0
  132. package/dist/llm/lightning.js.map +1 -1
  133. package/dist/llm/meta.d.ts +2 -0
  134. package/dist/llm/meta.js +811 -655
  135. package/dist/llm/meta.js.map +1 -1
  136. package/dist/llm/modal.js +4 -0
  137. package/dist/llm/modal.js.map +1 -1
  138. package/dist/llm/model-families.d.ts +9 -0
  139. package/dist/llm/model-families.js +39 -0
  140. package/dist/llm/model-families.js.map +1 -0
  141. package/dist/llm/nvidia.js +4 -0
  142. package/dist/llm/nvidia.js.map +1 -1
  143. package/dist/llm/ollama.js +44 -40
  144. package/dist/llm/ollama.js.map +1 -1
  145. package/dist/llm/openai.js +4 -0
  146. package/dist/llm/openai.js.map +1 -1
  147. package/dist/llm/openrouter.js +4 -0
  148. package/dist/llm/openrouter.js.map +1 -1
  149. package/dist/llm/operation-ledger.d.ts +60 -0
  150. package/dist/llm/operation-ledger.js +136 -0
  151. package/dist/llm/operation-ledger.js.map +1 -0
  152. package/dist/llm/operation-usage.d.ts +32 -0
  153. package/dist/llm/operation-usage.js +172 -0
  154. package/dist/llm/operation-usage.js.map +1 -0
  155. package/dist/llm/orcarouter.d.ts +7 -0
  156. package/dist/llm/orcarouter.js +166 -0
  157. package/dist/llm/orcarouter.js.map +1 -0
  158. package/dist/llm/provider-profile-layers.d.ts +7 -0
  159. package/dist/llm/provider-profile-layers.js +961 -0
  160. package/dist/llm/provider-profile-layers.js.map +1 -0
  161. package/dist/llm/provider-profile.d.ts +181 -0
  162. package/dist/llm/provider-profile.js +329 -0
  163. package/dist/llm/provider-profile.js.map +1 -0
  164. package/dist/llm/provider-profiles.d.ts +13 -0
  165. package/dist/llm/provider-profiles.js +86 -0
  166. package/dist/llm/provider-profiles.js.map +1 -0
  167. package/dist/llm/provider.d.ts +2 -0
  168. package/dist/llm/provider.js +67 -0
  169. package/dist/llm/provider.js.map +1 -1
  170. package/dist/llm/qwen-cloud.js +4 -0
  171. package/dist/llm/qwen-cloud.js.map +1 -1
  172. package/dist/llm/reasoning-artifacts.d.ts +101 -0
  173. package/dist/llm/reasoning-artifacts.js +440 -0
  174. package/dist/llm/reasoning-artifacts.js.map +1 -0
  175. package/dist/llm/request-fingerprint.d.ts +10 -0
  176. package/dist/llm/request-fingerprint.js +313 -0
  177. package/dist/llm/request-fingerprint.js.map +1 -0
  178. package/dist/llm/request-plan.d.ts +119 -0
  179. package/dist/llm/request-plan.js +279 -0
  180. package/dist/llm/request-plan.js.map +1 -0
  181. package/dist/llm/router.d.ts +19 -1
  182. package/dist/llm/router.js +447 -75
  183. package/dist/llm/router.js.map +1 -1
  184. package/dist/llm/stream-events.d.ts +47 -0
  185. package/dist/llm/stream-events.js +55 -0
  186. package/dist/llm/stream-events.js.map +1 -0
  187. package/dist/llm/stream-terminal.d.ts +30 -0
  188. package/dist/llm/stream-terminal.js +51 -0
  189. package/dist/llm/stream-terminal.js.map +1 -0
  190. package/dist/llm/token-estimate-calibration.d.ts +23 -0
  191. package/dist/llm/token-estimate-calibration.js +140 -0
  192. package/dist/llm/token-estimate-calibration.js.map +1 -0
  193. package/dist/llm/token-usage.d.ts +35 -5
  194. package/dist/llm/token-usage.js +212 -162
  195. package/dist/llm/token-usage.js.map +1 -1
  196. package/dist/llm/tokenrouter.js +8 -2
  197. package/dist/llm/tokenrouter.js.map +1 -1
  198. package/dist/modes/ask.js +11 -5
  199. package/dist/modes/ask.js.map +1 -1
  200. package/dist/noninteractive/start-noninteractive.js +31 -2
  201. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  202. package/dist/noninteractive/stream-blocks.js +15 -4
  203. package/dist/noninteractive/stream-blocks.js.map +1 -1
  204. package/dist/prompts/embedded.js +1 -1
  205. package/dist/prompts/embedded.js.map +1 -1
  206. package/dist/prompts/system.agent.md +6 -0
  207. package/dist/store/config.js +5 -1
  208. package/dist/store/config.js.map +1 -1
  209. package/dist/store/history.d.ts +2 -0
  210. package/dist/store/history.js +19 -10
  211. package/dist/store/history.js.map +1 -1
  212. package/dist/store/keys.js +11 -1
  213. package/dist/store/keys.js.map +1 -1
  214. package/dist/store/plan.js +20 -14
  215. package/dist/store/plan.js.map +1 -1
  216. package/dist/tools/elevated-shell.d.ts +1 -1
  217. package/dist/tools/elevated-shell.js +24 -72
  218. package/dist/tools/elevated-shell.js.map +1 -1
  219. package/dist/tools/nmap-runner.js +30 -36
  220. package/dist/tools/nmap-runner.js.map +1 -1
  221. package/dist/tools/sudo-session.d.ts +83 -0
  222. package/dist/tools/sudo-session.js +124 -0
  223. package/dist/tools/sudo-session.js.map +1 -0
  224. package/dist/tui-v2/app/App.js +9 -24
  225. package/dist/tui-v2/app/App.js.map +1 -1
  226. package/dist/tui-v2/components/status/context-limit-chip.js +2 -2
  227. package/dist/tui-v2/components/status/context-limit-chip.js.map +1 -1
  228. package/dist/tui-v2/components/transcript/intro-card.js +2 -1
  229. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  230. package/dist/tui-v2/composer/composer-editor.js +2 -1
  231. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  232. package/dist/types.d.ts +156 -1
  233. package/dist/types.js +1 -0
  234. package/dist/types.js.map +1 -1
  235. package/dist/ui-core/bootstrap/composition-root.d.ts +2 -0
  236. package/dist/ui-core/bootstrap/composition-root.js +26 -3
  237. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  238. package/dist/ui-core/commands/picker-commands.js +11 -5
  239. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  240. package/dist/ui-core/commands/session-commands.js +41 -5
  241. package/dist/ui-core/commands/session-commands.js.map +1 -1
  242. package/dist/ui-core/plan/plan-lifecycle.js +3 -2
  243. package/dist/ui-core/plan/plan-lifecycle.js.map +1 -1
  244. package/dist/ui-core/rendering/context-limit.js +4 -1
  245. package/dist/ui-core/rendering/context-limit.js.map +1 -1
  246. package/dist/ui-core/rendering/duration.d.ts +2 -1
  247. package/dist/ui-core/rendering/duration.js +13 -5
  248. package/dist/ui-core/rendering/duration.js.map +1 -1
  249. package/dist/ui-core/rendering/intro-header.js +2 -2
  250. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  251. package/dist/ui-core/rendering/theme.d.ts +1 -0
  252. package/dist/ui-core/rendering/theme.js +2 -0
  253. package/dist/ui-core/rendering/theme.js.map +1 -1
  254. package/dist/ui-core/state/transcript-hydrate.js +3 -3
  255. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  256. package/dist/ui-core/state/transcript-reducer.d.ts +5 -0
  257. package/dist/ui-core/state/transcript-reducer.js +76 -3
  258. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  259. package/dist/ui-core/state/transcript-store.d.ts +10 -1
  260. package/dist/ui-core/state/transcript-store.js +22 -1
  261. package/dist/ui-core/state/transcript-store.js.map +1 -1
  262. package/dist/ui-core/state/transcript-types.d.ts +2 -0
  263. package/dist/ui-core/state/transcript-types.js.map +1 -1
  264. package/dist/version.generated.d.ts +2 -2
  265. package/dist/version.generated.js +2 -2
  266. package/package.json +6 -1
@@ -8,20 +8,61 @@
8
8
  */
9
9
  import { normalizeEndpointUrl } from "./provider.js";
10
10
  import { openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream, toCompletionResult, readJson, ingestOpenAiModelCatalog, isStreamOptionsUnsupportedError, } from "./http.js";
11
+ import { customReasoningStyle, endpointPrivacyHash, resolveCustomHeaders, validateCustomProviderProfile, } from "./custom-provider-profile.js";
12
+ import { recordControlRejection } from "./provider-profile.js";
13
+ import { CHAT_COMPLETIONS_STREAM_TERMINAL } from "./stream-terminal.js";
14
+ /** Validation errors for a definition's declared profile, if any. */
15
+ export function customProviderProfileErrors(def) {
16
+ if (!def.profile)
17
+ return [];
18
+ return validateCustomProviderProfile(def.profile).errors;
19
+ }
20
+ function resolveBaseUrl(def, auth) {
21
+ const override = normalizeEndpointUrl(auth.baseUrl ?? "");
22
+ return override || def.baseUrl;
23
+ }
24
+ function authHeaders(def, apiKey) {
25
+ const declared = resolveCustomHeaders(def.profile?.headers);
26
+ if (def.profile?.authType === "none-keyless")
27
+ return declared;
28
+ if (def.profile?.authType === "custom-headers")
29
+ return declared;
30
+ if (declared && apiKey) {
31
+ return { authorization: `Bearer ${apiKey}`, ...declared };
32
+ }
33
+ return undefined;
34
+ }
11
35
  /** Build an OpenAI-compatible `LlmProvider` for a custom definition. */
12
36
  export function buildCustomProvider(def) {
13
37
  const providerId = def.id;
14
- const baseUrl = def.baseUrl;
15
38
  const modelCache = new Map();
16
39
  const CACHE_TTL_MS = 60 * 60 * 1000;
17
- let includeStreamUsage = true;
40
+ const keyless = def.profile?.authType === "none-keyless" ||
41
+ def.profile?.authType === "custom-headers";
42
+ // Declared stream-option capability: "supported" suppresses the adaptive
43
+ // retry (a rejection becomes route evidence, not a second request);
44
+ // "unsupported" omits the field from the first request onward.
45
+ const declaredStreamOptions = def.profile?.streamOptions;
46
+ let includeStreamUsage = declaredStreamOptions !== "unsupported";
47
+ const reasoningStyle = customReasoningStyle(def.profile);
48
+ const requireKey = (auth) => {
49
+ if (keyless)
50
+ return undefined;
51
+ if (!auth.apiKey)
52
+ throw new Error(`${def.displayName} API key is required`);
53
+ return auth.apiKey;
54
+ };
18
55
  return {
19
56
  id: providerId,
20
57
  displayName: def.displayName,
21
58
  defaultModel: def.defaultModel,
22
- ...(def.envVar ? { envVar: def.envVar } : {}),
59
+ reasoningStyle,
60
+ ...(def.keyEnv ?? def.envVar
61
+ ? { envVar: def.keyEnv ?? def.envVar }
62
+ : {}),
23
63
  validateKey: (key) => key.trim().length >= 8,
24
64
  async listModels(auth) {
65
+ const baseUrl = resolveBaseUrl(def, auth);
25
66
  const cacheKey = `${baseUrl}|${auth.apiKey ?? ""}`;
26
67
  const now = Date.now();
27
68
  const cached = modelCache.get(cacheKey);
@@ -43,37 +84,45 @@ export function buildCustomProvider(def) {
43
84
  }
44
85
  },
45
86
  async ping(auth) {
46
- if (!auth.apiKey)
47
- throw new Error(`${def.displayName} API key is required`);
48
- await openAiCompatiblePing(baseUrl, auth.apiKey);
87
+ const apiKey = requireKey(auth);
88
+ await openAiCompatiblePing(resolveBaseUrl(def, auth), apiKey ?? "", authHeaders(def, apiKey));
49
89
  },
50
90
  async complete(request, auth) {
51
- if (!auth.apiKey)
52
- throw new Error(`${def.displayName} API key is required`);
91
+ const apiKey = requireKey(auth);
53
92
  const model = request.model ?? def.defaultModel;
54
93
  const payload = await openAiCompatibleComplete({
55
- provider: def.displayName, providerId, baseUrl, apiKey: auth.apiKey, model,
94
+ provider: def.displayName, providerId,
95
+ baseUrl: resolveBaseUrl(def, auth), apiKey: apiKey ?? "",
96
+ headers: authHeaders(def, apiKey), model,
56
97
  messages: request.messages, maxTokens: request.maxTokens,
57
98
  temperature: request.temperature, signal: request.signal,
58
- reasoning: request.thinking, reasoningStyle: "openai",
99
+ reasoning: request.thinking, reasoningStyle,
59
100
  tools: request.tools, toolChoice: request.toolChoice,
60
101
  parallelToolCalls: request.parallelToolCalls,
102
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
103
+ usageAliases: def.usageAliases,
61
104
  });
62
105
  return toCompletionResult(providerId, model, payload);
63
106
  },
64
107
  async stream(request, auth, onToken) {
65
- if (!auth.apiKey)
66
- throw new Error(`${def.displayName} API key is required`);
67
- const apiKey = auth.apiKey;
108
+ const apiKey = requireKey(auth);
68
109
  const model = request.model ?? def.defaultModel;
110
+ const baseUrl = resolveBaseUrl(def, auth);
111
+ const headers = authHeaders(def, apiKey);
69
112
  const stream = (withUsage) => openAiCompatibleStream({
70
- provider: def.displayName, providerId, baseUrl, apiKey, model,
113
+ provider: def.displayName, providerId, baseUrl,
114
+ apiKey: apiKey ?? "", headers, model,
71
115
  messages: request.messages, maxTokens: request.maxTokens,
72
116
  temperature: request.temperature, signal: request.signal, onToken,
73
- onToolCallDelta: request.onToolCallDelta, reasoning: request.thinking,
74
- reasoningStyle: "openai", tools: request.tools, toolChoice: request.toolChoice,
117
+ onToolCallDelta: request.onToolCallDelta, onStreamEvent: request.onStreamEvent, reasoning: request.thinking,
118
+ reasoningStyle, tools: request.tools, toolChoice: request.toolChoice,
75
119
  parallelToolCalls: request.parallelToolCalls,
120
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
76
121
  includeStreamUsage: withUsage,
122
+ usageAliases: def.usageAliases,
123
+ streamTerminal: def.profile?.terminal?.naturalEofAccepted === true
124
+ ? { ...CHAT_COMPLETIONS_STREAM_TERMINAL, naturalEofAccepted: true }
125
+ : undefined,
77
126
  });
78
127
  let payload;
79
128
  try {
@@ -82,6 +131,15 @@ export function buildCustomProvider(def) {
82
131
  catch (error) {
83
132
  if (!includeStreamUsage || !isStreamOptionsUnsupportedError(error))
84
133
  throw error;
134
+ if (declaredStreamOptions === "supported") {
135
+ recordControlRejection({
136
+ provider: def.id,
137
+ model,
138
+ endpointHash: endpointPrivacyHash(baseUrl),
139
+ field: "stream_options",
140
+ });
141
+ throw error;
142
+ }
85
143
  includeStreamUsage = false;
86
144
  payload = await stream(false);
87
145
  }
@@ -106,7 +164,7 @@ export function findCustomProviderDef(id, defs) {
106
164
  }
107
165
  /** In-memory cache of materialised `LlmProvider` instances keyed by id. */
108
166
  const providerCache = new Map();
109
- /** Resolve the `LlmProvider` for a custom provider id. */
167
+ /** Resolve a custom definition by id. */
110
168
  export async function getCustomProvider(id) {
111
169
  const cached = providerCache.get(id);
112
170
  if (cached)
@@ -120,14 +178,8 @@ export async function getCustomProvider(id) {
120
178
  return built;
121
179
  }
122
180
  /**
123
- * Sync variant: resolve the `LlmProvider` for a custom provider id by reading
124
- * the config directly. Used by the router's sync `getProvider` so the provider
125
- * map lookup works for custom ids without an `await`.
126
- *
127
- * The static import of `getCustomProviders` below does NOT create a runtime
128
- * cycle: `store/config.js` only imports the `CustomProviderDef` *type* from
129
- * this module (erased at compile time), so there is no runtime edge from
130
- * config → custom-providers to close the loop.
181
+ * Sync variant: resolve a custom definition by reading the config directly.
182
+ * This remains safe because config imports this module's type only.
131
183
  */
132
184
  import { getCustomProviders } from "../store/config.js";
133
185
  export function getCustomProviderSync(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../src/llm/custom-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAuC,MAAM,eAAe,CAAC;AAC1F,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,WAAW,CAAC;AAYnB,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,GAAsB;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,EAAgB,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmD,CAAC;IAC9E,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAE9B,OAAO;QACL,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;QACpD,KAAK,CAAC,UAAU,CAAC,IAAkB;YACjC,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,YAAY;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAoC,QAAQ,CAAC,CAAC;gBACzE,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC1D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5E,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAkB;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,sBAAsB,CAAC,CAAC;YAC5E,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAA0B,EAAE,IAAkB;YAC3D,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,sBAAsB,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;gBAC7C,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK;gBAC1E,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;gBACxD,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACxD,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ;gBACrD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;gBACpD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC7C,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,MAAM,CACV,OAA0B,EAAE,IAAkB,EAAE,OAAgC;YAEhF,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,sBAAsB,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,sBAAsB,CAAC;gBAC5D,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;gBAC7D,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;gBACxD,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO;gBACjE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ;gBACrE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9E,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,kBAAkB,EAAE,SAAS;aAC9B,CAAC,CAAC;YACH,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,kBAAkB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAChF,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,mFAAmF;AAEnF,gFAAgF;AAChF,KAAK,UAAU,cAAc;IAC3B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClE,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CACnC,EAAU,EACV,IAAkC;IAElC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,2EAA2E;AAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,6BAA6B,CAAC,EAAW;IACvD,IAAI,EAAE;QAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;;QAC5B,aAAa,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,yBAAyB,CAAC,GAAsB;IAC9D,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,QAA2B;IAChF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../src/llm/custom-providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { CompletionRequest, ReasoningEffort, ReasoningPreference } from "../types.js";
2
+ /**
3
+ * Gradual reasoning-effort fallback ladder.
4
+ *
5
+ * When a provider rejects a reasoning knob (e.g. `reasoning_effort`), we do
6
+ * not immediately strip reasoning. Instead we walk down the ladder to the
7
+ * nearest commonly-supported effort, and only strip reasoning entirely once
8
+ * every candidate has been rejected. This keeps reasoning quality when the
9
+ * model merely does not support the *highest* requested depth, while still
10
+ * degrading gracefully for models that reject the knob altogether.
11
+ *
12
+ * The ladder is expressed in clai's internal effort levels; the provider's
13
+ * `buildReasoningPayload` maps them onto the wire values it actually accepts.
14
+ */
15
+ /** Canonical descending ladder (highest → lowest commonly-supported). */
16
+ export declare const EFFORT_LADDER: readonly ReasoningEffort[];
17
+ /**
18
+ * Ordered fallback efforts for a rejected `requested` effort, nearest first.
19
+ *
20
+ * Only the extended efforts above "high" have a meaningful fallback: a gateway
21
+ * that rejects "max"/"xhigh" usually still accepts the classic low/medium/high
22
+ * set. Everything else strips reasoning immediately rather than walking a long
23
+ * ladder — a long ladder can loop against a gateway that 503s reasoning-enabled
24
+ * requests (each rung re-triggers the same server error instead of progressing).
25
+ */
26
+ export declare function fallbackEffortsFor(requested: ReasoningEffort): ReasoningEffort[];
27
+ /**
28
+ * Deduplicated candidate efforts to try, starting with the requested effort
29
+ * and followed by its fallback ladder.
30
+ */
31
+ export declare function effortCandidates(thinking: ReasoningPreference | undefined): ReasoningEffort[];
32
+ /**
33
+ * Detects a provider error that means the model rejected a reasoning *effort*
34
+ * value (as opposed to a transient/network error). Mirrors the stricter
35
+ * wording providers use for "value must be one of …" rejections.
36
+ */
37
+ export declare function isEffortRejectedError(error: unknown): boolean;
38
+ /**
39
+ * Runs `attempt` once per candidate effort, catching effort-value rejections
40
+ * and moving to the next candidate. Non-effort errors propagate immediately.
41
+ * When every candidate is rejected, the last error is rethrown (the caller's
42
+ * router then strips reasoning entirely).
43
+ */
44
+ export declare function withEffortFallback<T>(request: CompletionRequest, attempt: (thinking: CompletionRequest["thinking"]) => Promise<T>, onExhausted: () => never): Promise<T>;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Gradual reasoning-effort fallback ladder.
3
+ *
4
+ * When a provider rejects a reasoning knob (e.g. `reasoning_effort`), we do
5
+ * not immediately strip reasoning. Instead we walk down the ladder to the
6
+ * nearest commonly-supported effort, and only strip reasoning entirely once
7
+ * every candidate has been rejected. This keeps reasoning quality when the
8
+ * model merely does not support the *highest* requested depth, while still
9
+ * degrading gracefully for models that reject the knob altogether.
10
+ *
11
+ * The ladder is expressed in clai's internal effort levels; the provider's
12
+ * `buildReasoningPayload` maps them onto the wire values it actually accepts.
13
+ */
14
+ /** Canonical descending ladder (highest → lowest commonly-supported). */
15
+ export const EFFORT_LADDER = [
16
+ "xhigh",
17
+ "high",
18
+ ];
19
+ /**
20
+ * Ordered fallback efforts for a rejected `requested` effort, nearest first.
21
+ *
22
+ * Only the extended efforts above "high" have a meaningful fallback: a gateway
23
+ * that rejects "max"/"xhigh" usually still accepts the classic low/medium/high
24
+ * set. Everything else strips reasoning immediately rather than walking a long
25
+ * ladder — a long ladder can loop against a gateway that 503s reasoning-enabled
26
+ * requests (each rung re-triggers the same server error instead of progressing).
27
+ */
28
+ export function fallbackEffortsFor(requested) {
29
+ const normalized = requested.toLowerCase();
30
+ const nearest = {
31
+ max: ["xhigh", "high"],
32
+ xhigh: ["high"],
33
+ };
34
+ return nearest[normalized] ?? [];
35
+ }
36
+ /**
37
+ * Deduplicated candidate efforts to try, starting with the requested effort
38
+ * and followed by its fallback ladder.
39
+ */
40
+ export function effortCandidates(thinking) {
41
+ const requested = thinking?.effort ?? "medium";
42
+ const seen = new Set();
43
+ const candidates = [];
44
+ for (const effort of [requested, ...fallbackEffortsFor(requested)]) {
45
+ const key = effort.toLowerCase();
46
+ if (seen.has(key))
47
+ continue;
48
+ seen.add(key);
49
+ candidates.push(effort);
50
+ }
51
+ return candidates;
52
+ }
53
+ /**
54
+ * Detects a provider error that means the model rejected a reasoning *effort*
55
+ * value (as opposed to a transient/network error). Mirrors the stricter
56
+ * wording providers use for "value must be one of …" rejections.
57
+ */
58
+ export function isEffortRejectedError(error) {
59
+ const status = error && typeof error === "object" && "status" in error
60
+ ? Number(error.status)
61
+ : undefined;
62
+ if (status !== 400 && status !== 422)
63
+ return false;
64
+ const body = error && typeof error === "object" && "body" in error
65
+ ? String(error.body ?? "")
66
+ : "";
67
+ const message = error instanceof Error ? error.message : String(error);
68
+ const hay = `${message}\n${body}`.toLowerCase();
69
+ if (!/reasoning_effort|\beffort\b|chat_template_kwargs|\bthinking\b/.test(hay)) {
70
+ return false;
71
+ }
72
+ return /must be one of|invalid|unsupported|not support|unknown|unrecognized|not a valid|not allowed|expected one of/.test(hay);
73
+ }
74
+ /**
75
+ * Runs `attempt` once per candidate effort, catching effort-value rejections
76
+ * and moving to the next candidate. Non-effort errors propagate immediately.
77
+ * When every candidate is rejected, the last error is rethrown (the caller's
78
+ * router then strips reasoning entirely).
79
+ */
80
+ export async function withEffortFallback(request, attempt, onExhausted) {
81
+ if (!request.thinking?.enabled)
82
+ return await attempt(request.thinking);
83
+ const candidates = effortCandidates(request.thinking);
84
+ let lastError;
85
+ for (let index = 0; index < candidates.length; index += 1) {
86
+ try {
87
+ return await attempt({ ...request.thinking, effort: candidates[index] });
88
+ }
89
+ catch (error) {
90
+ if (!isEffortRejectedError(error))
91
+ throw error;
92
+ lastError = error;
93
+ if (index === candidates.length - 1)
94
+ throw error;
95
+ }
96
+ }
97
+ if (lastError)
98
+ throw lastError;
99
+ onExhausted();
100
+ }
101
+ //# sourceMappingURL=effort-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-fallback.js","sourceRoot":"","sources":["../../src/llm/effort-fallback.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ let lastFetchTime = 0;
15
15
  const CACHE_TTL_MS = 60 * 60 * 1000;
16
16
  export const fireworksProvider = {
17
17
  id: "fireworks",
18
+ reasoningStyle: "openai",
18
19
  displayName: "Fireworks",
19
20
  defaultModel: defaultModels.fireworks,
20
21
  envVar: "FIREWORKS_API_KEY",
@@ -68,6 +69,7 @@ export const fireworksProvider = {
68
69
  tools: request.tools,
69
70
  toolChoice: request.toolChoice,
70
71
  parallelToolCalls: request.parallelToolCalls,
72
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
71
73
  });
72
74
  return toCompletionResult("fireworks", model, payload);
73
75
  },
@@ -87,11 +89,13 @@ export const fireworksProvider = {
87
89
  signal: request.signal,
88
90
  onToken,
89
91
  onToolCallDelta: request.onToolCallDelta,
92
+ onStreamEvent: request.onStreamEvent,
90
93
  reasoning: request.thinking,
91
94
  reasoningStyle: "openai",
92
95
  tools: request.tools,
93
96
  toolChoice: request.toolChoice,
94
97
  parallelToolCalls: request.parallelToolCalls,
98
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
95
99
  });
96
100
  return toCompletionResult("fireworks", model, payload);
97
101
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fireworks.js","sourceRoot":"","sources":["../../src/llm/fireworks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fireworks.js","sourceRoot":"","sources":["../../src/llm/fireworks.ts"],"names":[],"mappings":"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"}
package/dist/llm/free.js CHANGED
@@ -126,6 +126,7 @@ async function listSourceModels(source, key) {
126
126
  }
127
127
  export const freeProvider = {
128
128
  id: "free",
129
+ reasoningStyle: "openai",
129
130
  displayName: "Free (zen + kilo)",
130
131
  defaultModel: defaultModels.free,
131
132
  envVar: "FREE_API_KEY",
@@ -168,6 +169,7 @@ export const freeProvider = {
168
169
  tools: request.tools,
169
170
  toolChoice: request.toolChoice,
170
171
  parallelToolCalls: request.parallelToolCalls,
172
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
171
173
  });
172
174
  return toCompletionResult("free", requested, payload);
173
175
  },
@@ -189,6 +191,7 @@ export const freeProvider = {
189
191
  signal: request.signal,
190
192
  onToken,
191
193
  onToolCallDelta: request.onToolCallDelta,
194
+ onStreamEvent: request.onStreamEvent,
192
195
  reasoning: request.thinking,
193
196
  reasoningStyle: FREE_REASONING_STYLE,
194
197
  idleTimeoutMs: budgets.idleTimeoutMs,
@@ -199,6 +202,7 @@ export const freeProvider = {
199
202
  tools: request.tools,
200
203
  toolChoice: request.toolChoice,
201
204
  parallelToolCalls: request.parallelToolCalls,
205
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
202
206
  });
203
207
  return toCompletionResult("free", requested, payload);
204
208
  },
@@ -1 +1 @@
1
- {"version":3,"file":"free.js","sourceRoot":"","sources":["../../src/llm/free.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"free.js","sourceRoot":"","sources":["../../src/llm/free.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import { type LlmProvider } from "./provider.js";
3
3
  /** Throws a named error for a finish reason that means "content was blocked". */
4
4
  export declare function assertGeminiFinishReasonAllowed(finishReason: string | undefined): void;
5
5
  export declare function clampGeminiThinkingBudget(thinkingConfig: Record<string, unknown> | undefined, maxOutputTokens: number): Record<string, unknown> | undefined;
6
- export declare function geminiBody(request: CompletionRequest): string;
6
+ export declare function geminiBody(request: CompletionRequest, stream?: boolean): string;
7
7
  export declare const geminiProvider: LlmProvider;