@pentoshi/clai 4.11.20 → 4.11.22

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 (243) hide show
  1. package/dist/agent/evidence/task-selection.d.ts +0 -15
  2. package/dist/agent/evidence/task-selection.js +1 -33
  3. package/dist/agent/evidence/task-selection.js.map +1 -1
  4. package/dist/agent/parser/parse-entry.js +30 -2
  5. package/dist/agent/parser/parse-entry.js.map +1 -1
  6. package/dist/agent/parser/vendor-protocols.d.ts +12 -0
  7. package/dist/agent/parser/vendor-protocols.js +105 -0
  8. package/dist/agent/parser/vendor-protocols.js.map +1 -1
  9. package/dist/agent/plan/actions/plan-clear.js.map +1 -1
  10. package/dist/agent/plan/actions/plan-create.js.map +1 -1
  11. package/dist/agent/plan/actions/task-add.js.map +1 -1
  12. package/dist/agent/plan/actions/task-move.js.map +1 -1
  13. package/dist/agent/plan/handle-plan-tool.js +5 -154
  14. package/dist/agent/plan/handle-plan-tool.js.map +1 -1
  15. package/dist/agent/runner.js +1 -13
  16. package/dist/agent/runner.js.map +1 -1
  17. package/dist/agent/session-policy.d.ts +0 -6
  18. package/dist/agent/session-policy.js +0 -2
  19. package/dist/agent/session-policy.js.map +1 -1
  20. package/dist/agent/subagents/read-only-tools.d.ts +2 -0
  21. package/dist/agent/subagents/read-only-tools.js +61 -457
  22. package/dist/agent/subagents/read-only-tools.js.map +1 -1
  23. package/dist/agent/subagents/tools.js +1 -1
  24. package/dist/agent/subagents/tools.js.map +1 -1
  25. package/dist/agent/subagents/worker.js +2 -2
  26. package/dist/agent/task-evidence.d.ts +2 -2
  27. package/dist/agent/task-evidence.js +1 -1
  28. package/dist/agent/task-evidence.js.map +1 -1
  29. package/dist/agent/tool-call-parser.js +6 -0
  30. package/dist/agent/tool-call-parser.js.map +1 -1
  31. package/dist/agent/tool-history.js +30 -16
  32. package/dist/agent/tool-history.js.map +1 -1
  33. package/dist/agent/turn/compaction-admission.d.ts +5 -0
  34. package/dist/agent/turn/compaction-admission.js +24 -0
  35. package/dist/agent/turn/compaction-admission.js.map +1 -1
  36. package/dist/agent/turn/compaction-coordinator.d.ts +1 -0
  37. package/dist/agent/turn/compaction-coordinator.js +2 -0
  38. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  39. package/dist/agent/turn/loop/run-rounds.js +19 -25
  40. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  41. package/dist/agent/turn/loop/state.d.ts +1 -2
  42. package/dist/agent/turn/loop/state.js +1 -2
  43. package/dist/agent/turn/loop/state.js.map +1 -1
  44. package/dist/agent/turn/setup/compaction-services.d.ts +1 -0
  45. package/dist/agent/turn/setup/compaction-services.js +1 -0
  46. package/dist/agent/turn/setup/compaction-services.js.map +1 -1
  47. package/dist/agent/turn/setup/task-gate-setup.d.ts +1 -11
  48. package/dist/agent/turn/setup/task-gate-setup.js +4 -19
  49. package/dist/agent/turn/setup/task-gate-setup.js.map +1 -1
  50. package/dist/agent/turn/tool-execution/deps.d.ts +1 -5
  51. package/dist/agent/turn/tool-execution/guards.d.ts +0 -4
  52. package/dist/agent/turn/tool-execution/guards.js +3 -12
  53. package/dist/agent/turn/tool-execution/guards.js.map +1 -1
  54. package/dist/agent/turn/tool-execution/meta-tools.d.ts +0 -2
  55. package/dist/agent/turn/tool-execution/meta-tools.js +0 -17
  56. package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -1
  57. package/dist/agent/turn/tool-execution/single-tool.js +0 -14
  58. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  59. package/dist/app/commands/catalog.js +32 -1
  60. package/dist/app/commands/catalog.js.map +1 -1
  61. package/dist/classic/panels/keys-panel.js +8 -1
  62. package/dist/classic/panels/keys-panel.js.map +1 -1
  63. package/dist/commands/providers.d.ts +17 -0
  64. package/dist/commands/providers.js +317 -28
  65. package/dist/commands/providers.js.map +1 -1
  66. package/dist/index.js +31 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/llm/adapters/openai-tools.js +19 -10
  69. package/dist/llm/adapters/openai-tools.js.map +1 -1
  70. package/dist/llm/agentrouter.js +1 -1
  71. package/dist/llm/anthropic.d.ts +4 -2
  72. package/dist/llm/anthropic.js +186 -178
  73. package/dist/llm/anthropic.js.map +1 -1
  74. package/dist/llm/artifacts/replay-selection.js +11 -5
  75. package/dist/llm/artifacts/replay-selection.js.map +1 -1
  76. package/dist/llm/bynara.js +1 -1
  77. package/dist/llm/capability/state.d.ts +1 -1
  78. package/dist/llm/capability/tool-dialect.js +5 -1
  79. package/dist/llm/capability/tool-dialect.js.map +1 -1
  80. package/dist/llm/capability/vision-patterns.js +3 -0
  81. package/dist/llm/capability/vision-patterns.js.map +1 -1
  82. package/dist/llm/catalog-facts.js +50 -2
  83. package/dist/llm/catalog-facts.js.map +1 -1
  84. package/dist/llm/catalog-prefetch.js +1 -1
  85. package/dist/llm/cline-auth.d.ts +34 -0
  86. package/dist/llm/cline-auth.js +248 -0
  87. package/dist/llm/cline-auth.js.map +1 -0
  88. package/dist/llm/cline.d.ts +2 -0
  89. package/dist/llm/cline.js +147 -0
  90. package/dist/llm/cline.js.map +1 -0
  91. package/dist/llm/codex-auth.d.ts +53 -0
  92. package/dist/llm/codex-auth.js +512 -0
  93. package/dist/llm/codex-auth.js.map +1 -0
  94. package/dist/llm/codex.d.ts +4 -0
  95. package/dist/llm/codex.js +239 -0
  96. package/dist/llm/codex.js.map +1 -0
  97. package/dist/llm/copilot-auth.d.ts +38 -0
  98. package/dist/llm/copilot-auth.js +258 -0
  99. package/dist/llm/copilot-auth.js.map +1 -0
  100. package/dist/llm/copilot.d.ts +4 -0
  101. package/dist/llm/copilot.js +226 -0
  102. package/dist/llm/copilot.js.map +1 -0
  103. package/dist/llm/custom-providers.js +1 -1
  104. package/dist/llm/deepseek.js +1 -1
  105. package/dist/llm/explabs.js +1 -4
  106. package/dist/llm/explabs.js.map +1 -1
  107. package/dist/llm/fireworks.js +1 -1
  108. package/dist/llm/free-default-model.js +9 -4
  109. package/dist/llm/free-default-model.js.map +1 -1
  110. package/dist/llm/free.d.ts +1 -1
  111. package/dist/llm/free.js +109 -25
  112. package/dist/llm/free.js.map +1 -1
  113. package/dist/llm/glm.js +1 -1
  114. package/dist/llm/hetzner.js +1 -1
  115. package/dist/llm/kimi.js +1 -1
  116. package/dist/llm/lightning.js +1 -1
  117. package/dist/llm/merge-gateway.js +1 -1
  118. package/dist/llm/meta.js +1 -1
  119. package/dist/llm/minimax.js +1 -1
  120. package/dist/llm/model-families.js +1 -1
  121. package/dist/llm/model-families.js.map +1 -1
  122. package/dist/llm/model-layers/model-rules.js +6 -0
  123. package/dist/llm/model-layers/model-rules.js.map +1 -1
  124. package/dist/llm/nvidia.js +1 -1
  125. package/dist/llm/openrouter.js +1 -1
  126. package/dist/llm/orcarouter.js +1 -1
  127. package/dist/llm/provider-identity.d.ts +2 -0
  128. package/dist/llm/provider-identity.js +35 -0
  129. package/dist/llm/provider-identity.js.map +1 -1
  130. package/dist/llm/provider-info-text.js +110 -8
  131. package/dist/llm/provider-info-text.js.map +1 -1
  132. package/dist/llm/provider-model-layers.js +4 -0
  133. package/dist/llm/provider-model-layers.js.map +1 -1
  134. package/dist/llm/provider-profile-layers.js +143 -0
  135. package/dist/llm/provider-profile-layers.js.map +1 -1
  136. package/dist/llm/provider-profiles.js +2 -1
  137. package/dist/llm/provider-profiles.js.map +1 -1
  138. package/dist/llm/provider.d.ts +6 -4
  139. package/dist/llm/provider.js +2 -2
  140. package/dist/llm/provider.js.map +1 -1
  141. package/dist/llm/qwen-cloud.js +1 -1
  142. package/dist/llm/reasoning-capability.js +14 -0
  143. package/dist/llm/reasoning-capability.js.map +1 -1
  144. package/dist/llm/responses/item-events.js +10 -0
  145. package/dist/llm/responses/item-events.js.map +1 -1
  146. package/dist/llm/responses-config.d.ts +4 -0
  147. package/dist/llm/responses-config.js.map +1 -1
  148. package/dist/llm/responses-parse.js +23 -11
  149. package/dist/llm/responses-parse.js.map +1 -1
  150. package/dist/llm/responses-request.js +31 -8
  151. package/dist/llm/responses-request.js.map +1 -1
  152. package/dist/llm/responses-stream-events.js +21 -5
  153. package/dist/llm/responses-stream-events.js.map +1 -1
  154. package/dist/llm/routing/attempt-complete.js +1 -1
  155. package/dist/llm/routing/attempt-complete.js.map +1 -1
  156. package/dist/llm/routing/attempt-request.js +1 -1
  157. package/dist/llm/routing/attempt-request.js.map +1 -1
  158. package/dist/llm/routing/attempt-stream.js +2 -2
  159. package/dist/llm/routing/attempt-stream.js.map +1 -1
  160. package/dist/llm/routing/error-classification.js +3 -1
  161. package/dist/llm/routing/error-classification.js.map +1 -1
  162. package/dist/llm/routing/key-rotation.js +9 -4
  163. package/dist/llm/routing/key-rotation.js.map +1 -1
  164. package/dist/llm/routing/provider-selection.d.ts +2 -1
  165. package/dist/llm/routing/provider-selection.js +18 -4
  166. package/dist/llm/routing/provider-selection.js.map +1 -1
  167. package/dist/llm/tokenrouter.js +1 -1
  168. package/dist/llm/tool-protocol.js +4 -14
  169. package/dist/llm/tool-protocol.js.map +1 -1
  170. package/dist/llm/vercel.js +1 -1
  171. package/dist/llm/wire/capability-errors.js +6 -3
  172. package/dist/llm/wire/capability-errors.js.map +1 -1
  173. package/dist/llm/wire/chat-body.js +13 -16
  174. package/dist/llm/wire/chat-body.js.map +1 -1
  175. package/dist/llm/wire/openai-complete.d.ts +1 -0
  176. package/dist/llm/wire/openai-complete.js +9 -0
  177. package/dist/llm/wire/openai-complete.js.map +1 -1
  178. package/dist/prompts/embedded.js +1 -1
  179. package/dist/prompts/embedded.js.map +1 -1
  180. package/dist/prompts/system.agent.md +7 -1
  181. package/dist/store/config.js +3 -0
  182. package/dist/store/config.js.map +1 -1
  183. package/dist/store/keys/search-providers.d.ts +2 -0
  184. package/dist/store/keys/search-providers.js +6 -0
  185. package/dist/store/keys/search-providers.js.map +1 -1
  186. package/dist/store/keys.d.ts +6 -1
  187. package/dist/store/keys.js +46 -17
  188. package/dist/store/keys.js.map +1 -1
  189. package/dist/store/plan/mutation.d.ts +0 -1
  190. package/dist/store/plan/mutation.js +1 -22
  191. package/dist/store/plan/mutation.js.map +1 -1
  192. package/dist/store/plan.d.ts +1 -1
  193. package/dist/store/plan.js +1 -4
  194. package/dist/store/plan.js.map +1 -1
  195. package/dist/tools/definitions/subagents.js +2 -2
  196. package/dist/tools/definitions/subagents.js.map +1 -1
  197. package/dist/tui-v2/components/modal/keys-modal-pick.d.ts +5 -0
  198. package/dist/tui-v2/components/modal/keys-modal-pick.js +13 -0
  199. package/dist/tui-v2/components/modal/keys-modal-pick.js.map +1 -1
  200. package/dist/tui-v2/components/modal/keys-modal.js +15 -13
  201. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  202. package/dist/types.d.ts +1 -1
  203. package/dist/types.js +3 -0
  204. package/dist/types.js.map +1 -1
  205. package/dist/ui-core/commands/key-commands.d.ts +6 -3
  206. package/dist/ui-core/commands/key-commands.js +506 -15
  207. package/dist/ui-core/commands/key-commands.js.map +1 -1
  208. package/dist/ui-core/commands/keys/editors.js +10 -4
  209. package/dist/ui-core/commands/keys/editors.js.map +1 -1
  210. package/dist/ui-core/commands/picker-commands.js +86 -32
  211. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  212. package/dist/ui-core/commands/subagent-models-editor.js +12 -4
  213. package/dist/ui-core/commands/subagent-models-editor.js.map +1 -1
  214. package/dist/ui-core/controllers/overlay-controller.d.ts +4 -0
  215. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  216. package/dist/ui-core/rendering/format-keys.js +4 -2
  217. package/dist/ui-core/rendering/format-keys.js.map +1 -1
  218. package/dist/ui-core/rendering/format-usage.js +3 -1
  219. package/dist/ui-core/rendering/format-usage.js.map +1 -1
  220. package/dist/ui-core/rendering/incremental-strip.js +2 -2
  221. package/dist/ui-core/rendering/incremental-strip.js.map +1 -1
  222. package/dist/ui-core/rendering/intro-header.js +4 -1
  223. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  224. package/dist/ui-core/rendering/strip-tool-surfaces.js +76 -0
  225. package/dist/ui-core/rendering/strip-tool-surfaces.js.map +1 -1
  226. package/dist/version.generated.d.ts +2 -2
  227. package/dist/version.generated.js +2 -2
  228. package/package.json +1 -1
  229. package/dist/agent/task-sync.d.ts +0 -40
  230. package/dist/agent/task-sync.js +0 -105
  231. package/dist/agent/task-sync.js.map +0 -1
  232. package/dist/agent/turn/task-batch-guard.d.ts +0 -18
  233. package/dist/agent/turn/task-batch-guard.js +0 -83
  234. package/dist/agent/turn/task-batch-guard.js.map +0 -1
  235. package/dist/agent/turn/task-gate.d.ts +0 -13
  236. package/dist/agent/turn/task-gate.js +0 -34
  237. package/dist/agent/turn/task-gate.js.map +0 -1
  238. package/dist/agent/turn/task-update-gate.d.ts +0 -13
  239. package/dist/agent/turn/task-update-gate.js +0 -40
  240. package/dist/agent/turn/task-update-gate.js.map +0 -1
  241. package/dist/store/task-transitions.d.ts +0 -12
  242. package/dist/store/task-transitions.js +0 -40
  243. package/dist/store/task-transitions.js.map +0 -1
@@ -0,0 +1,226 @@
1
+ import { GITHUB_COPILOT_DISPLAY_NAME, defaultModels, } from "./provider.js";
2
+ import { openAiCompatibleComplete, openAiCompatibleStream, toCompletionResult, readJson, ingestModelCatalogEntries, ProviderError, } from "./http.js";
3
+ import { COPILOT_REQUEST_HEADERS, copilotRequestHeaders, copilotInitiator, invalidateCopilotApiToken, isCopilotOAuthToken, resolveCopilotApiToken, } from "./copilot-auth.js";
4
+ import { currentRequestPurpose } from "./request-purpose.js";
5
+ import { executeAnthropicComplete, executeAnthropicStream } from "./anthropic.js";
6
+ export const copilotFallbackModels = [
7
+ "gpt-4o",
8
+ "gpt-4o-mini",
9
+ "claude-sonnet-4.5",
10
+ "claude-3.5-sonnet",
11
+ "o1",
12
+ "o3-mini",
13
+ ];
14
+ let cachedModels = null;
15
+ let lastFetchTime = 0;
16
+ const CACHE_TTL_MS = 30 * 60 * 1000;
17
+ export function resetCopilotModelCache() {
18
+ cachedModels = null;
19
+ lastFetchTime = 0;
20
+ }
21
+ function requireKey(auth) {
22
+ if (!auth.apiKey) {
23
+ throw new Error(`${GITHUB_COPILOT_DISPLAY_NAME} authentication required. Run \`clai auth copilot\` (device sign-in) or add a key with \`clai set copilot <github-token>\`.`);
24
+ }
25
+ return auth.apiKey;
26
+ }
27
+ async function withCopilotApiToken(auth, run) {
28
+ const githubToken = requireKey(auth);
29
+ const api = await resolveCopilotApiToken(githubToken);
30
+ try {
31
+ return await run(api.token, api.baseUrl);
32
+ }
33
+ catch (error) {
34
+ const status = error instanceof ProviderError ? error.status : undefined;
35
+ const renewable = status === 401 && currentRequestPurpose() === undefined;
36
+ if (!renewable)
37
+ throw error;
38
+ invalidateCopilotApiToken(githubToken);
39
+ const renewed = await resolveCopilotApiToken(githubToken);
40
+ if (!renewed.token || renewed.token === api.token)
41
+ throw error;
42
+ return run(renewed.token, renewed.baseUrl);
43
+ }
44
+ }
45
+ function copilotHeaders(messages) {
46
+ return copilotRequestHeaders({
47
+ "X-Initiator": copilotInitiator(messages),
48
+ });
49
+ }
50
+ function isAnthropicModel(model) {
51
+ return /(?:^|[./-])(?:anthropic|claude)(?:[./-]|$)/i.test(model);
52
+ }
53
+ function filterCopilotEntries(entries) {
54
+ const usable = entries.filter((raw) => {
55
+ if (!raw || typeof raw !== "object")
56
+ return false;
57
+ const item = raw;
58
+ const policy = item.policy;
59
+ return policy?.state !== "disabled";
60
+ });
61
+ const pickerEnabled = usable.filter((raw) => {
62
+ const item = raw;
63
+ return item.model_picker_enabled === true;
64
+ });
65
+ return pickerEnabled.length > 0 ? pickerEnabled : usable;
66
+ }
67
+ export const copilotProvider = {
68
+ id: "copilot",
69
+ displayName: GITHUB_COPILOT_DISPLAY_NAME,
70
+ reasoningStyle: "openai",
71
+ defaultModel: defaultModels.copilot,
72
+ envVar: "COPILOT_API_KEY",
73
+ validateKey: (key) => isCopilotOAuthToken(key.trim()),
74
+ async listModels(auth) {
75
+ const now = Date.now();
76
+ if (cachedModels && now - lastFetchTime < CACHE_TTL_MS) {
77
+ return cachedModels;
78
+ }
79
+ const githubToken = requireKey(auth);
80
+ const api = await resolveCopilotApiToken(githubToken);
81
+ const response = await fetch(`${api.baseUrl}/models`, {
82
+ headers: {
83
+ authorization: `Bearer ${api.token}`,
84
+ accept: "application/json",
85
+ ...COPILOT_REQUEST_HEADERS,
86
+ },
87
+ });
88
+ const payload = await readJson(response);
89
+ const entries = Array.isArray(payload.data) ? payload.data : [];
90
+ const filtered = filterCopilotEntries(entries);
91
+ const models = ingestModelCatalogEntries("copilot", filtered);
92
+ const result = models.length > 0 ? models : [...copilotFallbackModels];
93
+ if (result.length > 0) {
94
+ cachedModels = result;
95
+ lastFetchTime = now;
96
+ }
97
+ return result;
98
+ },
99
+ async ping(auth) {
100
+ const githubToken = requireKey(auth);
101
+ const api = await resolveCopilotApiToken(githubToken);
102
+ const response = await fetch(`${api.baseUrl}/models`, {
103
+ headers: {
104
+ authorization: `Bearer ${api.token}`,
105
+ accept: "application/json",
106
+ ...COPILOT_REQUEST_HEADERS,
107
+ },
108
+ });
109
+ if (!response.ok) {
110
+ throw new ProviderError(`${GITHUB_COPILOT_DISPLAY_NAME} authentication failed (HTTP ${response.status}). Run \`clai auth copilot\` to sign in.`, response.status);
111
+ }
112
+ },
113
+ async complete(request, auth) {
114
+ const model = await resolveCopilotModel(auth, request.model);
115
+ if (isAnthropicModel(model)) {
116
+ return withCopilotApiToken(auth, async (token, baseUrl) => {
117
+ const headers = {
118
+ "content-type": "application/json",
119
+ authorization: `Bearer ${token}`,
120
+ "anthropic-version": "2023-06-01",
121
+ ...copilotHeaders(request.messages),
122
+ };
123
+ return executeAnthropicComplete({ ...request, provider: "copilot", model }, { apiKey: token, baseUrl: `${baseUrl}/v1` }, headers);
124
+ });
125
+ }
126
+ return withCopilotApiToken(auth, async (token, baseUrl) => {
127
+ const isGpt = /(?:^|[./-])(?:gpt|o\d)(?:[./-]|$)/i.test(model);
128
+ const payload = await openAiCompatibleComplete({
129
+ provider: GITHUB_COPILOT_DISPLAY_NAME,
130
+ providerId: "copilot",
131
+ baseUrl,
132
+ apiKey: token,
133
+ model,
134
+ messages: request.messages,
135
+ maxTokens: isGpt ? undefined : request.maxTokens,
136
+ temperature: request.temperature,
137
+ headers: copilotHeaders(request.messages),
138
+ signal: request.signal,
139
+ reasoning: request.thinking,
140
+ reasoningStyle: "openai",
141
+ tools: request.tools,
142
+ toolChoice: request.toolChoice,
143
+ parallelToolCalls: request.parallelToolCalls,
144
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
145
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
146
+ });
147
+ return toCompletionResult("copilot", model, payload);
148
+ });
149
+ },
150
+ async stream(request, auth, onToken) {
151
+ const model = await resolveCopilotModel(auth, request.model);
152
+ if (isAnthropicModel(model)) {
153
+ return withCopilotApiToken(auth, async (token, baseUrl) => {
154
+ const headers = {
155
+ "content-type": "application/json",
156
+ authorization: `Bearer ${token}`,
157
+ "anthropic-version": "2023-06-01",
158
+ ...copilotHeaders(request.messages),
159
+ };
160
+ return executeAnthropicStream({ ...request, provider: "copilot", model }, { apiKey: token, baseUrl: `${baseUrl}/v1` }, onToken, headers);
161
+ });
162
+ }
163
+ return withCopilotApiToken(auth, async (token, baseUrl) => {
164
+ const isGpt = /(?:^|[./-])(?:gpt|o\d)(?:[./-]|$)/i.test(model);
165
+ const payload = await openAiCompatibleStream({
166
+ provider: GITHUB_COPILOT_DISPLAY_NAME,
167
+ providerId: "copilot",
168
+ baseUrl,
169
+ apiKey: token,
170
+ model,
171
+ messages: request.messages,
172
+ maxTokens: isGpt ? undefined : request.maxTokens,
173
+ temperature: request.temperature,
174
+ headers: copilotHeaders(request.messages),
175
+ signal: request.signal,
176
+ onToken,
177
+ onToolCallDelta: request.onToolCallDelta,
178
+ onStreamEvent: request.onStreamEvent,
179
+ reasoning: request.thinking,
180
+ reasoningStyle: "openai",
181
+ tools: request.tools,
182
+ toolChoice: request.toolChoice,
183
+ parallelToolCalls: request.parallelToolCalls,
184
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
185
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
186
+ });
187
+ return toCompletionResult("copilot", model, payload);
188
+ });
189
+ },
190
+ };
191
+ async function resolveCopilotModel(auth, requestedModel) {
192
+ let available = [];
193
+ try {
194
+ available = await copilotProvider.listModels(auth);
195
+ }
196
+ catch {
197
+ available = cachedModels ?? [...copilotFallbackModels];
198
+ }
199
+ if (!available.length) {
200
+ return requestedModel ?? defaultModels.copilot;
201
+ }
202
+ if (requestedModel && available.includes(requestedModel)) {
203
+ return requestedModel;
204
+ }
205
+ if (requestedModel) {
206
+ const normalized = requestedModel.trim().toLowerCase();
207
+ const match = available.find((m) => m.trim().toLowerCase() === normalized);
208
+ if (match)
209
+ return match;
210
+ }
211
+ const preferred = [
212
+ "gpt-4o-mini",
213
+ "gpt-4.1-mini",
214
+ "gpt-4o",
215
+ "gpt-4.1",
216
+ "claude-3.5-sonnet",
217
+ "claude-sonnet-4.5",
218
+ ];
219
+ for (const candidate of preferred) {
220
+ if (available.includes(candidate)) {
221
+ return candidate;
222
+ }
223
+ }
224
+ return available[0] ?? defaultModels.copilot;
225
+ }
226
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/llm/copilot.ts"],"names":[],"mappings":"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"}
@@ -73,7 +73,7 @@ function responsesConfig(def, baseUrl) {
73
73
  export function buildCustomProvider(def) {
74
74
  const providerId = def.id;
75
75
  const modelCache = new Map();
76
- const CACHE_TTL_MS = 60 * 60 * 1000;
76
+ const CACHE_TTL_MS = 30 * 60 * 1000;
77
77
  const keyless = def.profile?.authType === "none-keyless" ||
78
78
  def.profile?.authType === "custom-headers";
79
79
  const declaredStreamOptions = def.profile?.streamOptions;
@@ -3,7 +3,7 @@ import { openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream,
3
3
  const baseUrl = "https://api.deepseek.com";
4
4
  let cachedModels = null;
5
5
  let lastFetchTime = 0;
6
- const CACHE_TTL_MS = 60 * 60 * 1000;
6
+ const CACHE_TTL_MS = 30 * 60 * 1000;
7
7
  export const deepseekProvider = {
8
8
  id: "deepseek",
9
9
  reasoningStyle: "openai",
@@ -128,9 +128,6 @@ function catalogFactsEntry(row) {
128
128
  const entry = {
129
129
  id: slug,
130
130
  reasoning,
131
- ...(reasoning !== false
132
- ? { supported_parameters: ["reasoning_effort", "reasoning"] }
133
- : {}),
134
131
  ...(contextWindow !== undefined ? { context_window: contextWindow } : {}),
135
132
  ...(maxOutput !== undefined ? { max_completion_tokens: maxOutput } : {}),
136
133
  ...(inputModalities.length > 0
@@ -158,7 +155,7 @@ export function explabsCatalogIndex(rows) {
158
155
  }
159
156
  let cachedModels = null;
160
157
  let lastFetchTime = 0;
161
- const CACHE_TTL_MS = 60 * 60 * 1000;
158
+ const CACHE_TTL_MS = 30 * 60 * 1000;
162
159
  export function resetExplabsCatalogCache() {
163
160
  cachedModels = null;
164
161
  lastFetchTime = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"explabs.js","sourceRoot":"","sources":["../../src/llm/explabs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explabs.js","sourceRoot":"","sources":["../../src/llm/explabs.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export const fireworksFallbackModels = [
12
12
  ];
13
13
  let cachedModels = null;
14
14
  let lastFetchTime = 0;
15
- const CACHE_TTL_MS = 60 * 60 * 1000;
15
+ const CACHE_TTL_MS = 30 * 60 * 1000;
16
16
  export const fireworksProvider = {
17
17
  id: "fireworks",
18
18
  reasoningStyle: "openai",
@@ -1,6 +1,7 @@
1
1
  import { defaultModels } from "./provider.js";
2
2
  import { freeProvider } from "./free.js";
3
3
  const CATALOG_TIMEOUT_MS = 2_500;
4
+ const DEFAULT_PICK_TTL_MS = 30 * 60 * 1000;
4
5
  function withTimeout(work, timeoutMs) {
5
6
  return new Promise((resolve) => {
6
7
  const timer = setTimeout(() => resolve(undefined), timeoutMs);
@@ -28,14 +29,18 @@ export function resetFreeDefaultModelCache() {
28
29
  cachedPick = undefined;
29
30
  }
30
31
  export async function resolveFreeDefaultModel(deps = {}) {
31
- if (cachedPick !== undefined && deps.listModels === undefined)
32
- return cachedPick;
32
+ if (cachedPick !== undefined &&
33
+ deps.listModels === undefined &&
34
+ Date.now() - cachedPick.pickedAt < DEFAULT_PICK_TTL_MS) {
35
+ return cachedPick.value;
36
+ }
33
37
  const list = deps.listModels ??
34
38
  (() => freeProvider.listModels?.({ apiKey: undefined }) ?? Promise.resolve([]));
35
39
  const catalog = await withTimeout(Promise.resolve().then(() => list()), deps.timeoutMs ?? CATALOG_TIMEOUT_MS);
36
40
  const picked = pickFreeModel(catalog ?? []);
37
- if (deps.listModels === undefined)
38
- cachedPick = picked;
41
+ if (deps.listModels === undefined) {
42
+ cachedPick = { value: picked, pickedAt: Date.now() };
43
+ }
39
44
  return picked;
40
45
  }
41
46
  //# sourceMappingURL=free-default-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"free-default-model.js","sourceRoot":"","sources":["../../src/llm/free-default-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAOjC,SAAS,WAAW,CAClB,IAAuB,EACvB,SAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CACP,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,GAAG,EAAE;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACnE,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,aAAa,CAAC,IAAI,CACnB,CAAC;AACJ,CAAC;AAED,IAAI,UAA8B,CAAC;AAEnC,MAAM,UAAU,0BAA0B;IACxC,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAA6B,EAAE;IAE/B,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IACjF,MAAM,IAAI,GACR,IAAI,CAAC,UAAU;QACf,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EACpC,IAAI,CAAC,SAAS,IAAI,kBAAkB,CACrC,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,UAAU,GAAG,MAAM,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"free-default-model.js","sourceRoot":"","sources":["../../src/llm/free-default-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAO3C,SAAS,WAAW,CAClB,IAAuB,EACvB,SAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CACP,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,GAAG,EAAE;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACnE,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,aAAa,CAAC,IAAI,CACnB,CAAC;AACJ,CAAC;AAED,IAAI,UAA2D,CAAC;AAEhE,MAAM,UAAU,0BAA0B;IACxC,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAA6B,EAAE;IAE/B,IACE,UAAU,KAAK,SAAS;QACxB,IAAI,CAAC,UAAU,KAAK,SAAS;QAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,GAAG,mBAAmB,EACtD,CAAC;QACD,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,GACR,IAAI,CAAC,UAAU;QACf,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EACpC,IAAI,CAAC,SAAS,IAAI,kBAAkB,CACrC,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -5,7 +5,7 @@ interface FreeSource {
5
5
  baseUrl: string;
6
6
  curated: readonly string[];
7
7
  responsesApi: boolean;
8
- requestHeaders(): Record<string, string>;
8
+ requestHeaders(apiKey?: string): Record<string, string>;
9
9
  catalogFreeIds(payload: unknown): string[];
10
10
  keylessId(id: string): boolean;
11
11
  fallbackModels(): string[];
package/dist/llm/free.js CHANGED
@@ -2,25 +2,23 @@ import { randomUUID } from "node:crypto";
2
2
  import { defaultModels, } from "./provider.js";
3
3
  import { openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream, toCompletionResult, readJson, ingestModelCatalogEntries, streamIdleBudgets, THINKING_STREAM_INITIAL_IDLE_TIMEOUT_MS, ProviderError, } from "./http.js";
4
4
  import { META_STREAM_TERMINAL } from "./stream-terminal.js";
5
- import { mapResponsesEffort, responsesComplete, responsesReasoningSummary, responsesStream, } from "./responses-dialect.js";
5
+ import { mapResponsesEffort, responsesReasoningSummary, responsesStream, } from "./responses-dialect.js";
6
6
  import { currentSessionAffinity } from "./session-affinity.js";
7
7
  const ZEN_BASE_URL = "https://opencode.ai/zen/v1";
8
8
  const KILO_BASE_URL = "https://api.kilo.ai/api/gateway";
9
9
  const FREE_REASONING_STYLE = "openai";
10
10
  const CURATED_ZEN_MODELS = [
11
+ "muse-spark-1.3-contributor-free",
12
+ "muse-spark-1.2-contributor-free",
11
13
  "deepseek-v4-flash-free",
12
14
  "big-pickle",
13
15
  "mimo-v2.5-free",
14
- "hy3-free",
15
16
  "nemotron-3-ultra-free",
16
- "north-mini-code-free",
17
17
  ];
18
18
  const CURATED_KILO_MODELS = [
19
19
  "kilo-auto/free",
20
20
  "stepfun/step-3.7-flash:free",
21
21
  "poolside/laguna-s-2.1:free",
22
- "tencent/hy3:free",
23
- "inclusionai/ling-3.0-tiny:free",
24
22
  "poolside/laguna-xs-2.1:free",
25
23
  "cohere/north-mini-code:free",
26
24
  "nvidia/nemotron-3.5-content-safety:free",
@@ -40,26 +38,62 @@ function catalogEntries(payload) {
40
38
  return [];
41
39
  }
42
40
  let kiloDynamicFreeIds = new Set();
43
- const OPENCODE_USER_AGENT = "opencode/1.18.27";
41
+ const OPENCODE_USER_AGENT = "opencode/latest/2.0.8/cli";
42
+ const ID_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
43
+ let idLastTimestamp = 0;
44
+ let idCounter = 0;
45
+ function createSessionId(descending = true, timestamp = Date.now()) {
46
+ if (timestamp !== idLastTimestamp) {
47
+ idLastTimestamp = timestamp;
48
+ idCounter = 0;
49
+ }
50
+ idCounter++;
51
+ const current = BigInt(timestamp) * 0x1000n + BigInt(idCounter);
52
+ const value = descending ? ~current : current;
53
+ const time = Array.from({ length: 6 }, (_, index) => Number((value >> BigInt(40 - 8 * index)) & 0xffn)
54
+ .toString(16)
55
+ .padStart(2, "0")).join("");
56
+ const bytes = crypto.getRandomValues(new Uint8Array(14));
57
+ return "ses_" + time + Array.from(bytes, (byte) => ID_CHARS[byte % 62]).join("");
58
+ }
44
59
  const gatewayIdentity = {
45
- session: randomUUID(),
60
+ session: createSessionId(),
46
61
  request: randomUUID(),
47
62
  project: randomUUID(),
48
63
  };
49
- function zenClientHeaders() {
64
+ const zenSessionMap = new Map();
65
+ function resolveZenSession() {
66
+ const affinity = currentSessionAffinity();
67
+ if (!affinity)
68
+ return gatewayIdentity.session;
69
+ if (affinity.startsWith("ses_"))
70
+ return affinity;
71
+ let session = zenSessionMap.get(affinity);
72
+ if (!session) {
73
+ session = createSessionId();
74
+ zenSessionMap.set(affinity, session);
75
+ }
76
+ return session;
77
+ }
78
+ function zenClientHeaders(apiKey = "") {
79
+ const session = resolveZenSession();
50
80
  return {
51
81
  "user-agent": OPENCODE_USER_AGENT,
52
- "x-opencode-session": currentSessionAffinity() ?? gatewayIdentity.session,
82
+ "x-opencode-session": session,
53
83
  "x-opencode-request": gatewayIdentity.request,
84
+ "x-session-affinity": session,
85
+ "x-session-id": session,
54
86
  "x-opencode-client": "cli",
55
87
  "x-opencode-project": gatewayIdentity.project,
88
+ authorization: `Bearer ${apiKey || "public"}`,
56
89
  };
57
90
  }
58
- function kiloClientHeaders() {
59
- return {
91
+ function kiloClientHeaders(apiKey = "") {
92
+ const headers = {
60
93
  "user-agent": "opencode-kilo-provider",
61
94
  "x-kilocode-editorname": "Kilo CLI",
62
95
  };
96
+ return apiKey ? { ...headers, authorization: `Bearer ${apiKey}` } : headers;
63
97
  }
64
98
  const zenSource = {
65
99
  id: "free-1",
@@ -134,14 +168,44 @@ function usesResponsesDialect(source, model) {
134
168
  return source.id === "free-1" && RESPONSES_DIALECT_PATTERN.test(model);
135
169
  }
136
170
  function zenResponsesHeaders(auth, accept) {
137
- const headers = {
171
+ return {
138
172
  "content-type": "application/json",
139
173
  accept,
140
- ...zenClientHeaders(),
174
+ ...zenClientHeaders(auth.apiKey),
175
+ };
176
+ }
177
+ function ensureZenRequiredTools(request) {
178
+ const existingTools = request.tools ?? [];
179
+ const hasRead = existingTools.some((t) => t.name === "read" || t.wireName === "read");
180
+ const hasShell = existingTools.some((t) => t.name === "shell" || t.wireName === "shell");
181
+ let tools = existingTools;
182
+ if (!hasRead || !hasShell) {
183
+ tools = [...existingTools];
184
+ if (!hasRead) {
185
+ tools.push({
186
+ name: "read",
187
+ wireName: "read",
188
+ description: "Read file",
189
+ parameters: { type: "object", properties: {} },
190
+ });
191
+ }
192
+ if (!hasShell) {
193
+ tools.push({
194
+ name: "shell",
195
+ wireName: "shell",
196
+ description: "Run shell",
197
+ parameters: { type: "object", properties: {} },
198
+ });
199
+ }
200
+ }
201
+ const toolChoice = request.toolChoice === "auto" ? "auto" : undefined;
202
+ const suppressTools = !request.tools?.length || request.toolChoice === "none";
203
+ return {
204
+ ...request,
205
+ tools,
206
+ toolChoice,
207
+ ...(suppressTools ? { onToolCallDelta: undefined } : {}),
141
208
  };
142
- return auth.apiKey
143
- ? { ...headers, authorization: `Bearer ${auth.apiKey}` }
144
- : headers;
145
209
  }
146
210
  function zenReasoningPayload(reasoning) {
147
211
  if (!reasoning?.enabled)
@@ -163,7 +227,7 @@ const ZEN_RESPONSES_CONFIG = {
163
227
  }),
164
228
  };
165
229
  const modelCache = new Map();
166
- const CACHE_TTL_MS = 60 * 60 * 1000;
230
+ const CACHE_TTL_MS = 30 * 60 * 1000;
167
231
  async function listSourceModels(source, key) {
168
232
  const cacheKey = `${source.id}:${key}`;
169
233
  const now = Date.now();
@@ -217,12 +281,15 @@ export const freeProvider = {
217
281
  assertModelAllowed(requested, apiKey);
218
282
  const { source, model } = resolveFreeSource(requested);
219
283
  if (usesResponsesDialect(source, model)) {
220
- const result = await responsesComplete(ZEN_RESPONSES_CONFIG, request, auth, model);
221
- return { ...result, model: requested };
284
+ const zenRequest = ensureZenRequiredTools(request);
285
+ const result = await responsesStream(ZEN_RESPONSES_CONFIG, zenRequest, auth, () => undefined, model);
286
+ const suppressTools = !request.tools?.length || request.toolChoice === "none";
287
+ const toolCalls = suppressTools ? undefined : result.toolCalls;
288
+ return { ...result, model: requested, toolCalls };
222
289
  }
223
290
  const payload = await openAiCompatibleComplete({
224
291
  responsesFirst: source.responsesApi,
225
- headers: source.requestHeaders(),
292
+ headers: source.requestHeaders(apiKey),
226
293
  provider: "Free",
227
294
  providerId: "free",
228
295
  baseUrl: source.baseUrl,
@@ -240,7 +307,14 @@ export const freeProvider = {
240
307
  reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
241
308
  ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
242
309
  });
243
- return toCompletionResult("free", requested, payload);
310
+ const result = toCompletionResult("free", requested, payload);
311
+ if (result.reasoningArtifacts?.length) {
312
+ result.reasoningArtifacts = result.reasoningArtifacts.map((art) => ({
313
+ ...art,
314
+ provenance: { ...art.provenance, model: requested },
315
+ }));
316
+ }
317
+ return result;
244
318
  },
245
319
  async stream(request, auth, onToken) {
246
320
  const apiKey = auth.apiKey ?? "";
@@ -248,13 +322,16 @@ export const freeProvider = {
248
322
  assertModelAllowed(requested, apiKey);
249
323
  const { source, model } = resolveFreeSource(requested);
250
324
  if (usesResponsesDialect(source, model)) {
251
- const result = await responsesStream(ZEN_RESPONSES_CONFIG, request, auth, onToken, model);
252
- return { ...result, model: requested };
325
+ const zenRequest = ensureZenRequiredTools(request);
326
+ const result = await responsesStream(ZEN_RESPONSES_CONFIG, zenRequest, auth, onToken, model);
327
+ const suppressTools = !request.tools?.length || request.toolChoice === "none";
328
+ const toolCalls = suppressTools ? undefined : result.toolCalls;
329
+ return { ...result, model: requested, toolCalls };
253
330
  }
254
331
  const budgets = streamIdleBudgets(Boolean(request.thinking?.enabled));
255
332
  const payload = await openAiCompatibleStream({
256
333
  responsesFirst: source.responsesApi,
257
- headers: source.requestHeaders(),
334
+ headers: source.requestHeaders(apiKey),
258
335
  provider: "Free",
259
336
  providerId: "free",
260
337
  baseUrl: source.baseUrl,
@@ -280,7 +357,14 @@ export const freeProvider = {
280
357
  reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
281
358
  ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
282
359
  });
283
- return toCompletionResult("free", requested, payload);
360
+ const result = toCompletionResult("free", requested, payload);
361
+ if (result.reasoningArtifacts?.length) {
362
+ result.reasoningArtifacts = result.reasoningArtifacts.map((art) => ({
363
+ ...art,
364
+ provenance: { ...art.provenance, model: requested },
365
+ }));
366
+ }
367
+ return result;
284
368
  },
285
369
  };
286
370
  //# sourceMappingURL=free.js.map