@pentoshi/clai 4.11.9 → 4.11.12

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 (434) hide show
  1. package/README.md +31 -3
  2. package/dist/agent/compaction/summary-execution.d.ts +1 -0
  3. package/dist/agent/compaction/summary-execution.js +101 -27
  4. package/dist/agent/compaction/summary-execution.js.map +1 -1
  5. package/dist/agent/compaction-executor.js +3 -3
  6. package/dist/agent/compaction-executor.js.map +1 -1
  7. package/dist/agent/compaction-summary.d.ts +2 -0
  8. package/dist/agent/compaction-summary.js +8 -0
  9. package/dist/agent/compaction-summary.js.map +1 -1
  10. package/dist/agent/context/compact-with-summary.d.ts +1 -0
  11. package/dist/agent/context/compact-with-summary.js +60 -30
  12. package/dist/agent/context/compact-with-summary.js.map +1 -1
  13. package/dist/agent/events.d.ts +1 -0
  14. package/dist/agent/evidence/task-classification.js +0 -1
  15. package/dist/agent/evidence/task-classification.js.map +1 -1
  16. package/dist/agent/evidence/tool-budgets.js +0 -9
  17. package/dist/agent/evidence/tool-budgets.js.map +1 -1
  18. package/dist/agent/injected-blocks.d.ts +6 -0
  19. package/dist/agent/injected-blocks.js +29 -13
  20. package/dist/agent/injected-blocks.js.map +1 -1
  21. package/dist/agent/loop-guard.js +0 -4
  22. package/dist/agent/loop-guard.js.map +1 -1
  23. package/dist/agent/outcomes.js +1 -1
  24. package/dist/agent/outcomes.js.map +1 -1
  25. package/dist/agent/parser/arg-formatting.js +0 -8
  26. package/dist/agent/parser/arg-formatting.js.map +1 -1
  27. package/dist/agent/parser/bare-recognition.js +0 -4
  28. package/dist/agent/parser/bare-recognition.js.map +1 -1
  29. package/dist/agent/plan-tool.js +5 -1
  30. package/dist/agent/plan-tool.js.map +1 -1
  31. package/dist/agent/progress.js +0 -26
  32. package/dist/agent/progress.js.map +1 -1
  33. package/dist/agent/request-accounting.d.ts +1 -0
  34. package/dist/agent/request-accounting.js +24 -8
  35. package/dist/agent/request-accounting.js.map +1 -1
  36. package/dist/agent/request-budget.d.ts +3 -0
  37. package/dist/agent/request-budget.js +22 -8
  38. package/dist/agent/request-budget.js.map +1 -1
  39. package/dist/agent/responder-context.js +8 -12
  40. package/dist/agent/responder-context.js.map +1 -1
  41. package/dist/agent/runner.js +1 -2
  42. package/dist/agent/runner.js.map +1 -1
  43. package/dist/agent/session-policy.js +0 -5
  44. package/dist/agent/session-policy.js.map +1 -1
  45. package/dist/agent/stream-recovery.d.ts +4 -0
  46. package/dist/agent/stream-recovery.js +14 -1
  47. package/dist/agent/stream-recovery.js.map +1 -1
  48. package/dist/agent/task-evidence.js +3 -12
  49. package/dist/agent/task-evidence.js.map +1 -1
  50. package/dist/agent/tool-call-parser.js +2 -2
  51. package/dist/agent/tool-call-parser.js.map +1 -1
  52. package/dist/agent/tool-history.js +3 -3
  53. package/dist/agent/tool-history.js.map +1 -1
  54. package/dist/agent/turn/automatic-compaction-execution.d.ts +1 -0
  55. package/dist/agent/turn/automatic-compaction-execution.js +4 -2
  56. package/dist/agent/turn/automatic-compaction-execution.js.map +1 -1
  57. package/dist/agent/turn/compaction-admission.d.ts +5 -1
  58. package/dist/agent/turn/compaction-admission.js +7 -5
  59. package/dist/agent/turn/compaction-admission.js.map +1 -1
  60. package/dist/agent/turn/compaction-coordinator.d.ts +2 -1
  61. package/dist/agent/turn/compaction-coordinator.js +24 -7
  62. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  63. package/dist/agent/turn/compaction-final-fit.d.ts +1 -1
  64. package/dist/agent/turn/compaction-final-fit.js +5 -4
  65. package/dist/agent/turn/compaction-final-fit.js.map +1 -1
  66. package/dist/agent/turn/compaction-summarizer.js +1 -1
  67. package/dist/agent/turn/compaction-summarizer.js.map +1 -1
  68. package/dist/agent/turn/event-emitter.js +3 -0
  69. package/dist/agent/turn/event-emitter.js.map +1 -1
  70. package/dist/agent/turn/history-writer.d.ts +1 -1
  71. package/dist/agent/turn/history-writer.js +8 -6
  72. package/dist/agent/turn/history-writer.js.map +1 -1
  73. package/dist/agent/turn/loop/completion-interpretation.js +4 -4
  74. package/dist/agent/turn/loop/completion-interpretation.js.map +1 -1
  75. package/dist/agent/turn/loop/deps.d.ts +3 -2
  76. package/dist/agent/turn/loop/round-request.d.ts +2 -0
  77. package/dist/agent/turn/loop/round-request.js +19 -3
  78. package/dist/agent/turn/loop/round-request.js.map +1 -1
  79. package/dist/agent/turn/loop/run-rounds.js +2 -4
  80. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  81. package/dist/agent/turn/loop/stream-failure.d.ts +1 -0
  82. package/dist/agent/turn/loop/stream-failure.js +5 -1
  83. package/dist/agent/turn/loop/stream-failure.js.map +1 -1
  84. package/dist/agent/turn/mcp-agent-tools.js +6 -0
  85. package/dist/agent/turn/mcp-agent-tools.js.map +1 -1
  86. package/dist/agent/turn/tool-evidence-signals.js +0 -2
  87. package/dist/agent/turn/tool-evidence-signals.js.map +1 -1
  88. package/dist/agent/turn/tool-execution/engagement-checkpoint.js +2 -1
  89. package/dist/agent/turn/tool-execution/engagement-checkpoint.js.map +1 -1
  90. package/dist/agent/turn/tool-execution/guards.js +8 -3
  91. package/dist/agent/turn/tool-execution/guards.js.map +1 -1
  92. package/dist/agent/turn/tool-routing.d.ts +0 -1
  93. package/dist/agent/turn/tool-routing.js +0 -2
  94. package/dist/agent/turn/tool-routing.js.map +1 -1
  95. package/dist/app/adapters/agent-event-adapter.js +3 -0
  96. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  97. package/dist/app/commands/catalog.js +15 -1
  98. package/dist/app/commands/catalog.js.map +1 -1
  99. package/dist/app/controllers/session-compact-helper.js +59 -45
  100. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  101. package/dist/app/controllers/session-context-usage.js +16 -5
  102. package/dist/app/controllers/session-context-usage.js.map +1 -1
  103. package/dist/app/events/app-event.d.ts +1 -0
  104. package/dist/app/events/app-event.js.map +1 -1
  105. package/dist/classic/panels/confirm-panel.js +1 -0
  106. package/dist/classic/panels/confirm-panel.js.map +1 -1
  107. package/dist/commands/providers.js +2 -0
  108. package/dist/commands/providers.js.map +1 -1
  109. package/dist/llm/adapters/anthropic-tools.d.ts +1 -0
  110. package/dist/llm/adapters/anthropic-tools.js +8 -4
  111. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  112. package/dist/llm/adapters/openai-tools.js +3 -1
  113. package/dist/llm/adapters/openai-tools.js.map +1 -1
  114. package/dist/llm/anthropic.d.ts +2 -2
  115. package/dist/llm/anthropic.js +28 -18
  116. package/dist/llm/anthropic.js.map +1 -1
  117. package/dist/llm/capabilities.d.ts +5 -3
  118. package/dist/llm/capabilities.js +49 -17
  119. package/dist/llm/capabilities.js.map +1 -1
  120. package/dist/llm/capability/state.d.ts +1 -1
  121. package/dist/llm/capability/state.js +4 -8
  122. package/dist/llm/capability/state.js.map +1 -1
  123. package/dist/llm/capability/tool-dialect.js +1 -0
  124. package/dist/llm/capability/tool-dialect.js.map +1 -1
  125. package/dist/llm/capability/vision-patterns.js +12 -0
  126. package/dist/llm/capability/vision-patterns.js.map +1 -1
  127. package/dist/llm/custom-providers.d.ts +2 -0
  128. package/dist/llm/custom-providers.js +69 -7
  129. package/dist/llm/custom-providers.js.map +1 -1
  130. package/dist/llm/explabs.d.ts +12 -0
  131. package/dist/llm/explabs.js +348 -0
  132. package/dist/llm/explabs.js.map +1 -0
  133. package/dist/llm/free.d.ts +2 -0
  134. package/dist/llm/free.js +32 -2
  135. package/dist/llm/free.js.map +1 -1
  136. package/dist/llm/key-rotation.d.ts +4 -0
  137. package/dist/llm/key-rotation.js +32 -5
  138. package/dist/llm/key-rotation.js.map +1 -1
  139. package/dist/llm/learned-capabilities.d.ts +2 -0
  140. package/dist/llm/learned-capabilities.js +31 -7
  141. package/dist/llm/learned-capabilities.js.map +1 -1
  142. package/dist/llm/model-families.js +9 -0
  143. package/dist/llm/model-families.js.map +1 -1
  144. package/dist/llm/model-layers/model-rules.js +7 -0
  145. package/dist/llm/model-layers/model-rules.js.map +1 -1
  146. package/dist/llm/provider-identity.js +7 -0
  147. package/dist/llm/provider-identity.js.map +1 -1
  148. package/dist/llm/provider-info-text.js +65 -0
  149. package/dist/llm/provider-info-text.js.map +1 -1
  150. package/dist/llm/provider-profile-layers.js +41 -3
  151. package/dist/llm/provider-profile-layers.js.map +1 -1
  152. package/dist/llm/provider-profiles.js +3 -1
  153. package/dist/llm/provider-profiles.js.map +1 -1
  154. package/dist/llm/quota-signals.d.ts +4 -0
  155. package/dist/llm/quota-signals.js +22 -0
  156. package/dist/llm/quota-signals.js.map +1 -0
  157. package/dist/llm/reasoning-capability.js +19 -1
  158. package/dist/llm/reasoning-capability.js.map +1 -1
  159. package/dist/llm/reasoning-controls.d.ts +1 -0
  160. package/dist/llm/reasoning-controls.js +4 -0
  161. package/dist/llm/reasoning-controls.js.map +1 -1
  162. package/dist/llm/reasoning-errors.js +2 -2
  163. package/dist/llm/reasoning-errors.js.map +1 -1
  164. package/dist/llm/request-plan.js +15 -5
  165. package/dist/llm/request-plan.js.map +1 -1
  166. package/dist/llm/responses/item-events.js +1 -1
  167. package/dist/llm/responses/item-events.js.map +1 -1
  168. package/dist/llm/responses-complete.js +2 -1
  169. package/dist/llm/responses-complete.js.map +1 -1
  170. package/dist/llm/responses-config.d.ts +1 -0
  171. package/dist/llm/responses-config.js.map +1 -1
  172. package/dist/llm/responses-empty-output.d.ts +2 -0
  173. package/dist/llm/responses-empty-output.js +22 -0
  174. package/dist/llm/responses-empty-output.js.map +1 -0
  175. package/dist/llm/responses-parse.js +8 -2
  176. package/dist/llm/responses-parse.js.map +1 -1
  177. package/dist/llm/responses-request.d.ts +1 -0
  178. package/dist/llm/responses-request.js +22 -7
  179. package/dist/llm/responses-request.js.map +1 -1
  180. package/dist/llm/responses-stream-accumulator.js +7 -1
  181. package/dist/llm/responses-stream-accumulator.js.map +1 -1
  182. package/dist/llm/router.d.ts +1 -0
  183. package/dist/llm/router.js +6 -0
  184. package/dist/llm/router.js.map +1 -1
  185. package/dist/llm/routing/attempt-complete.js +16 -5
  186. package/dist/llm/routing/attempt-complete.js.map +1 -1
  187. package/dist/llm/routing/attempt-request.js +9 -1
  188. package/dist/llm/routing/attempt-request.js.map +1 -1
  189. package/dist/llm/routing/attempt-stream.js +16 -5
  190. package/dist/llm/routing/attempt-stream.js.map +1 -1
  191. package/dist/llm/routing/error-classification.d.ts +5 -0
  192. package/dist/llm/routing/error-classification.js +74 -6
  193. package/dist/llm/routing/error-classification.js.map +1 -1
  194. package/dist/llm/routing/failure-report.js +17 -2
  195. package/dist/llm/routing/failure-report.js.map +1 -1
  196. package/dist/llm/routing/key-rotation.d.ts +1 -0
  197. package/dist/llm/routing/key-rotation.js +18 -2
  198. package/dist/llm/routing/key-rotation.js.map +1 -1
  199. package/dist/llm/routing/provider-selection.js +3 -0
  200. package/dist/llm/routing/provider-selection.js.map +1 -1
  201. package/dist/llm/token-estimate-calibration.js +20 -3
  202. package/dist/llm/token-estimate-calibration.js.map +1 -1
  203. package/dist/llm/token-usage.d.ts +1 -0
  204. package/dist/llm/token-usage.js +10 -3
  205. package/dist/llm/token-usage.js.map +1 -1
  206. package/dist/llm/tokenrouter.d.ts +11 -0
  207. package/dist/llm/tokenrouter.js +27 -1
  208. package/dist/llm/tokenrouter.js.map +1 -1
  209. package/dist/llm/wire/chat-body.js +10 -1
  210. package/dist/llm/wire/chat-body.js.map +1 -1
  211. package/dist/llm/wire/response-errors.d.ts +1 -0
  212. package/dist/llm/wire/response-errors.js +67 -0
  213. package/dist/llm/wire/response-errors.js.map +1 -1
  214. package/dist/llm/wire/responses-failure.d.ts +7 -0
  215. package/dist/llm/wire/responses-failure.js +49 -0
  216. package/dist/llm/wire/responses-failure.js.map +1 -0
  217. package/dist/llm/wire/responses-first.js +30 -83
  218. package/dist/llm/wire/responses-first.js.map +1 -1
  219. package/dist/mcp/auth/device.d.ts +29 -0
  220. package/dist/mcp/auth/device.js +125 -0
  221. package/dist/mcp/auth/device.js.map +1 -0
  222. package/dist/mcp/auth/loopback.d.ts +1 -0
  223. package/dist/mcp/auth/loopback.js +22 -2
  224. package/dist/mcp/auth/loopback.js.map +1 -1
  225. package/dist/mcp/auth/metadata.js +3 -0
  226. package/dist/mcp/auth/metadata.js.map +1 -1
  227. package/dist/mcp/auth/provider.d.ts +7 -1
  228. package/dist/mcp/auth/provider.js +111 -7
  229. package/dist/mcp/auth/provider.js.map +1 -1
  230. package/dist/mcp/auth/registration.d.ts +1 -0
  231. package/dist/mcp/auth/registration.js +4 -2
  232. package/dist/mcp/auth/registration.js.map +1 -1
  233. package/dist/mcp/auth/types.d.ts +8 -0
  234. package/dist/mcp/coerce.d.ts +5 -0
  235. package/dist/mcp/coerce.js +104 -0
  236. package/dist/mcp/coerce.js.map +1 -0
  237. package/dist/mcp/config-file.d.ts +6 -0
  238. package/dist/mcp/config-file.js +18 -2
  239. package/dist/mcp/config-file.js.map +1 -1
  240. package/dist/mcp/format.js +2 -0
  241. package/dist/mcp/format.js.map +1 -1
  242. package/dist/mcp/index.d.ts +3 -1
  243. package/dist/mcp/index.js +3 -1
  244. package/dist/mcp/index.js.map +1 -1
  245. package/dist/mcp/known-servers.d.ts +36 -0
  246. package/dist/mcp/known-servers.js +265 -0
  247. package/dist/mcp/known-servers.js.map +1 -0
  248. package/dist/mcp/manager.d.ts +10 -1
  249. package/dist/mcp/manager.js +88 -20
  250. package/dist/mcp/manager.js.map +1 -1
  251. package/dist/mcp/runtime.d.ts +9 -0
  252. package/dist/mcp/runtime.js +157 -29
  253. package/dist/mcp/runtime.js.map +1 -1
  254. package/dist/mcp/schema-compact.d.ts +5 -0
  255. package/dist/mcp/schema-compact.js +157 -0
  256. package/dist/mcp/schema-compact.js.map +1 -0
  257. package/dist/mcp/transport-http.js +4 -4
  258. package/dist/mcp/transport-http.js.map +1 -1
  259. package/dist/mcp/transport.d.ts +3 -2
  260. package/dist/mcp/transport.js +3 -1
  261. package/dist/mcp/transport.js.map +1 -1
  262. package/dist/mcp/types.d.ts +1 -1
  263. package/dist/mcp/validation.js +4 -1
  264. package/dist/mcp/validation.js.map +1 -1
  265. package/dist/noninteractive/blocks/tool-blocks.js +10 -5
  266. package/dist/noninteractive/blocks/tool-blocks.js.map +1 -1
  267. package/dist/noninteractive/start-noninteractive.js +6 -1
  268. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  269. package/dist/prompts/embedded.js +1 -1
  270. package/dist/prompts/embedded.js.map +1 -1
  271. package/dist/prompts/system.agent.md +4 -6
  272. package/dist/safety/classifier.js +0 -8
  273. package/dist/safety/classifier.js.map +1 -1
  274. package/dist/safety/engagement-policy.js +0 -23
  275. package/dist/safety/engagement-policy.js.map +1 -1
  276. package/dist/safety/tool-classification.js +2 -16
  277. package/dist/safety/tool-classification.js.map +1 -1
  278. package/dist/session-runtime/attach-output.d.ts +12 -0
  279. package/dist/session-runtime/attach-output.js +52 -0
  280. package/dist/session-runtime/attach-output.js.map +1 -0
  281. package/dist/session-runtime/binding.d.ts +1 -0
  282. package/dist/session-runtime/binding.js +7 -0
  283. package/dist/session-runtime/binding.js.map +1 -1
  284. package/dist/session-runtime/child-bridge.d.ts +1 -0
  285. package/dist/session-runtime/child-bridge.js +3 -0
  286. package/dist/session-runtime/child-bridge.js.map +1 -1
  287. package/dist/session-runtime/client.js +144 -69
  288. package/dist/session-runtime/client.js.map +1 -1
  289. package/dist/session-runtime/discovery.js +1 -0
  290. package/dist/session-runtime/discovery.js.map +1 -1
  291. package/dist/session-runtime/host.d.ts +1 -0
  292. package/dist/session-runtime/host.js +19 -14
  293. package/dist/session-runtime/host.js.map +1 -1
  294. package/dist/session-runtime/reaper.d.ts +1 -0
  295. package/dist/session-runtime/reaper.js +7 -2
  296. package/dist/session-runtime/reaper.js.map +1 -1
  297. package/dist/session-runtime/store.js +1 -0
  298. package/dist/session-runtime/store.js.map +1 -1
  299. package/dist/session-runtime/types.d.ts +3 -0
  300. package/dist/store/config.js +1 -0
  301. package/dist/store/config.js.map +1 -1
  302. package/dist/store/session-model.js +9 -7
  303. package/dist/store/session-model.js.map +1 -1
  304. package/dist/tools/capabilities.js +4 -16
  305. package/dist/tools/capabilities.js.map +1 -1
  306. package/dist/tools/definitions/aggregate.js +16 -6
  307. package/dist/tools/definitions/aggregate.js.map +1 -1
  308. package/dist/tools/definitions/define.js +0 -8
  309. package/dist/tools/definitions/define.js.map +1 -1
  310. package/dist/tools/definitions/files.js +6 -1
  311. package/dist/tools/definitions/files.js.map +1 -1
  312. package/dist/tools/definitions/network.d.ts +2 -0
  313. package/dist/tools/definitions/network.js +17 -0
  314. package/dist/tools/definitions/network.js.map +1 -0
  315. package/dist/tools/definitions/orchestration.js +1 -1
  316. package/dist/tools/definitions/selection.js +1 -4
  317. package/dist/tools/definitions/selection.js.map +1 -1
  318. package/dist/tools/definitions.js +2 -1
  319. package/dist/tools/definitions.js.map +1 -1
  320. package/dist/tools/fs/search.d.ts +21 -2
  321. package/dist/tools/fs/search.js +394 -93
  322. package/dist/tools/fs/search.js.map +1 -1
  323. package/dist/tools/handlers/files-1.js.map +1 -1
  324. package/dist/tools/handlers/network-3.js +0 -4
  325. package/dist/tools/handlers/network-3.js.map +1 -1
  326. package/dist/tools/handlers/shell-2.js +0 -18
  327. package/dist/tools/handlers/shell-2.js.map +1 -1
  328. package/dist/tools/net-ping-sweep.js +1 -1
  329. package/dist/tools/net-ping-sweep.js.map +1 -1
  330. package/dist/tools/policies/output-policy.js +0 -3
  331. package/dist/tools/policies/output-policy.js.map +1 -1
  332. package/dist/tools/registry.d.ts +0 -9
  333. package/dist/tools/registry.js +0 -24
  334. package/dist/tools/registry.js.map +1 -1
  335. package/dist/tools/shell/exec-attempt.js +15 -2
  336. package/dist/tools/shell/exec-attempt.js.map +1 -1
  337. package/dist/tui-v2/bootstrap/resize-repaint.d.ts +1 -37
  338. package/dist/tui-v2/bootstrap/resize-repaint.js +9 -77
  339. package/dist/tui-v2/bootstrap/resize-repaint.js.map +1 -1
  340. package/dist/tui-v2/bootstrap/start-tui-v2.js +13 -27
  341. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  342. package/dist/tui-v2/components/jobs/jobs-panel.d.ts +2 -5
  343. package/dist/tui-v2/components/jobs/jobs-panel.js +4 -6
  344. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  345. package/dist/tui-v2/components/modal/confirm-modal.js +1 -0
  346. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  347. package/dist/tui-v2/components/status/status-line.d.ts +1 -3
  348. package/dist/tui-v2/components/status/status-line.js +2 -3
  349. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  350. package/dist/tui-v2/components/transcript/file-diff-card.d.ts +1 -0
  351. package/dist/tui-v2/components/transcript/file-diff-card.js +30 -10
  352. package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
  353. package/dist/tui-v2/components/transcript/thinking-presentation.js +2 -6
  354. package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -1
  355. package/dist/tui-v2/components/transcript/tool-card.d.ts +1 -0
  356. package/dist/tui-v2/components/transcript/tool-card.js +4 -2
  357. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  358. package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
  359. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  360. package/dist/tui-v2/components/transcript/transcript-scrollbar.d.ts +2 -4
  361. package/dist/tui-v2/components/transcript/transcript-scrollbar.js +2 -3
  362. package/dist/tui-v2/components/transcript/transcript-scrollbar.js.map +1 -1
  363. package/dist/tui-v2/composer/composer-editor.d.ts +1 -3
  364. package/dist/tui-v2/composer/composer-editor.js +2 -3
  365. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  366. package/dist/types.d.ts +2 -1
  367. package/dist/types.js +1 -0
  368. package/dist/types.js.map +1 -1
  369. package/dist/ui-core/bootstrap/composition-root.js +44 -3
  370. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  371. package/dist/ui-core/commands/mcp-commands.js +121 -41
  372. package/dist/ui-core/commands/mcp-commands.js.map +1 -1
  373. package/dist/ui-core/commands/picker-commands.js +1 -1
  374. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  375. package/dist/ui-core/commands/pickers/custom-provider.js +25 -7
  376. package/dist/ui-core/commands/pickers/custom-provider.js.map +1 -1
  377. package/dist/ui-core/controllers/overlay-controller.d.ts +1 -1
  378. package/dist/ui-core/plan/plan-lifecycle.js +1 -1
  379. package/dist/ui-core/plan/plan-lifecycle.js.map +1 -1
  380. package/dist/ui-core/rendering/file-diff-view.d.ts +9 -0
  381. package/dist/ui-core/rendering/file-diff-view.js +20 -1
  382. package/dist/ui-core/rendering/file-diff-view.js.map +1 -1
  383. package/dist/ui-core/rendering/syntax/clike.d.ts +1 -0
  384. package/dist/ui-core/rendering/syntax/clike.js.map +1 -1
  385. package/dist/ui-core/rendering/syntax/language-highlighters.d.ts +1 -0
  386. package/dist/ui-core/rendering/syntax/language-highlighters.js +256 -0
  387. package/dist/ui-core/rendering/syntax/language-highlighters.js.map +1 -1
  388. package/dist/ui-core/rendering/syntax-highlight.js +2 -2
  389. package/dist/ui-core/rendering/syntax-highlight.js.map +1 -1
  390. package/dist/ui-core/state/transcript/apply-app-event.js +3 -1
  391. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
  392. package/dist/version.generated.d.ts +2 -2
  393. package/dist/version.generated.js +2 -2
  394. package/dist/version.generated.js.map +1 -1
  395. package/package.json +1 -14
  396. package/dist/tools/definitions/network-1.d.ts +0 -2
  397. package/dist/tools/definitions/network-1.js +0 -72
  398. package/dist/tools/definitions/network-1.js.map +0 -1
  399. package/dist/tools/definitions/network-2.d.ts +0 -2
  400. package/dist/tools/definitions/network-2.js +0 -22
  401. package/dist/tools/definitions/network-2.js.map +0 -1
  402. package/dist/tools/definitions/pentest.d.ts +0 -2
  403. package/dist/tools/definitions/pentest.js +0 -91
  404. package/dist/tools/definitions/pentest.js.map +0 -1
  405. package/dist/tools/dns-native.d.ts +0 -3
  406. package/dist/tools/dns-native.js +0 -165
  407. package/dist/tools/dns-native.js.map +0 -1
  408. package/dist/tools/handlers/network-1.d.ts +0 -2
  409. package/dist/tools/handlers/network-1.js +0 -52
  410. package/dist/tools/handlers/network-1.js.map +0 -1
  411. package/dist/tools/handlers/network-2.d.ts +0 -2
  412. package/dist/tools/handlers/network-2.js +0 -32
  413. package/dist/tools/handlers/network-2.js.map +0 -1
  414. package/dist/tools/handlers/nmap-preparation.d.ts +0 -13
  415. package/dist/tools/handlers/nmap-preparation.js +0 -66
  416. package/dist/tools/handlers/nmap-preparation.js.map +0 -1
  417. package/dist/tools/handlers/pentest.d.ts +0 -2
  418. package/dist/tools/handlers/pentest.js +0 -208
  419. package/dist/tools/handlers/pentest.js.map +0 -1
  420. package/dist/tools/network-context.d.ts +0 -22
  421. package/dist/tools/network-context.js +0 -130
  422. package/dist/tools/network-context.js.map +0 -1
  423. package/dist/tools/nmap-runner.d.ts +0 -10
  424. package/dist/tools/nmap-runner.js +0 -240
  425. package/dist/tools/nmap-runner.js.map +0 -1
  426. package/dist/tools/pentest-workflows.d.ts +0 -8
  427. package/dist/tools/pentest-workflows.js +0 -175
  428. package/dist/tools/pentest-workflows.js.map +0 -1
  429. package/dist/tools/validate.d.ts +0 -26
  430. package/dist/tools/validate.js +0 -373
  431. package/dist/tools/validate.js.map +0 -1
  432. package/dist/tools/whois-native.d.ts +0 -2
  433. package/dist/tools/whois-native.js +0 -78
  434. package/dist/tools/whois-native.js.map +0 -1
@@ -1,8 +1,12 @@
1
1
  import { normalizeEndpointUrl } from "./provider.js";
2
2
  import { openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream, toCompletionResult, readJson, ingestOpenAiModelCatalog, isStreamOptionsUnsupportedError, } from "./http.js";
3
+ import { responsesComplete } from "./responses-complete.js";
4
+ import { responsesStream } from "./responses-stream.js";
5
+ import { mapResponsesEffort, responsesReasoningSummary, } from "./responses-config.js";
6
+ import { CHAT_COMPLETIONS_STREAM_TERMINAL } from "./stream-terminal.js";
7
+ import { anthropicProvider } from "./anthropic.js";
3
8
  import { customReasoningStyle, endpointPrivacyHash, resolveCustomHeaders, validateCustomProviderProfile, } from "./custom-provider-profile.js";
4
9
  import { recordControlRejection } from "./provider-profile.js";
5
- import { CHAT_COMPLETIONS_STREAM_TERMINAL } from "./stream-terminal.js";
6
10
  export function customProviderProfileErrors(def) {
7
11
  if (!def.profile)
8
12
  return [];
@@ -23,6 +27,36 @@ function authHeaders(def, apiKey) {
23
27
  }
24
28
  return undefined;
25
29
  }
30
+ function responsesConfig(def, baseUrl) {
31
+ return {
32
+ baseUrl,
33
+ providerId: def.id,
34
+ displayName: def.displayName,
35
+ artifactDialect: "openai-compatible",
36
+ terminalPolicy: {
37
+ proofs: ["response-completed", "response-incomplete"],
38
+ naturalEofAccepted: false,
39
+ },
40
+ buildHeaders(auth, accept) {
41
+ const apiKey = auth.apiKey;
42
+ return {
43
+ "content-type": "application/json",
44
+ accept,
45
+ ...(apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
46
+ ...authHeaders(def, apiKey),
47
+ };
48
+ },
49
+ reasoningPayload(reasoning) {
50
+ if (!reasoning?.enabled)
51
+ return undefined;
52
+ const effort = mapResponsesEffort(reasoning.effort);
53
+ return { effort, summary: responsesReasoningSummary(effort) };
54
+ },
55
+ bodyExtras(_context) {
56
+ return { store: false, include: ["reasoning.encrypted_content"] };
57
+ },
58
+ };
59
+ }
26
60
  export function buildCustomProvider(def) {
27
61
  const providerId = def.id;
28
62
  const modelCache = new Map();
@@ -56,9 +90,12 @@ export function buildCustomProvider(def) {
56
90
  if (cached && now - cached.fetchedAt < CACHE_TTL_MS)
57
91
  return cached.models;
58
92
  try {
59
- const headers = {};
60
- if (auth.apiKey)
61
- headers["authorization"] = `Bearer ${auth.apiKey}`;
93
+ const headers = def.api === "anthropic-messages"
94
+ ? {
95
+ ...(auth.apiKey ? { "x-api-key": auth.apiKey } : {}),
96
+ "anthropic-version": "2023-06-01",
97
+ }
98
+ : authHeaders(def, auth.apiKey) ?? {};
62
99
  const response = await fetch(`${baseUrl}/models`, { headers });
63
100
  const data = await readJson(response);
64
101
  const models = ingestOpenAiModelCatalog(providerId, data);
@@ -72,15 +109,33 @@ export function buildCustomProvider(def) {
72
109
  },
73
110
  async ping(auth) {
74
111
  const apiKey = requireKey(auth);
112
+ if (def.api === "anthropic-messages") {
113
+ const response = await fetch(`${resolveBaseUrl(def, auth)}/models`, {
114
+ headers: {
115
+ ...(apiKey ? { "x-api-key": apiKey } : {}),
116
+ "anthropic-version": "2023-06-01",
117
+ },
118
+ });
119
+ await readJson(response);
120
+ return;
121
+ }
75
122
  await openAiCompatiblePing(resolveBaseUrl(def, auth), apiKey ?? "", authHeaders(def, apiKey));
76
123
  },
77
124
  async complete(request, auth) {
78
125
  const apiKey = requireKey(auth);
79
126
  const model = request.model ?? def.defaultModel;
127
+ const baseUrl = resolveBaseUrl(def, auth);
128
+ if (def.api === "responses") {
129
+ return responsesComplete(responsesConfig(def, baseUrl), request, { ...auth, apiKey }, model);
130
+ }
131
+ if (def.api === "anthropic-messages") {
132
+ const result = await anthropicProvider.complete({ ...request, provider: providerId, model }, { ...auth, apiKey, baseUrl });
133
+ return { ...result, provider: providerId, model };
134
+ }
80
135
  const payload = await openAiCompatibleComplete({
81
- responsesFirst: true,
136
+ responsesFirst: def.api === undefined,
82
137
  provider: def.displayName, providerId,
83
- baseUrl: resolveBaseUrl(def, auth), apiKey: apiKey ?? "",
138
+ baseUrl, apiKey: apiKey ?? "",
84
139
  headers: authHeaders(def, apiKey), model,
85
140
  messages: request.messages, maxTokens: request.maxTokens,
86
141
  temperature: request.temperature, signal: request.signal,
@@ -98,8 +153,15 @@ export function buildCustomProvider(def) {
98
153
  const model = request.model ?? def.defaultModel;
99
154
  const baseUrl = resolveBaseUrl(def, auth);
100
155
  const headers = authHeaders(def, apiKey);
156
+ if (def.api === "responses") {
157
+ return responsesStream(responsesConfig(def, baseUrl), request, { ...auth, apiKey }, onToken, model);
158
+ }
159
+ if (def.api === "anthropic-messages") {
160
+ const result = await anthropicProvider.stream({ ...request, provider: providerId, model }, { ...auth, apiKey, baseUrl }, onToken);
161
+ return { ...result, provider: providerId, model };
162
+ }
101
163
  const stream = (withUsage) => openAiCompatibleStream({
102
- responsesFirst: true,
164
+ responsesFirst: def.api === undefined,
103
165
  provider: def.displayName, providerId, baseUrl,
104
166
  apiKey: apiKey ?? "", headers, model,
105
167
  messages: request.messages, maxTokens: request.maxTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../src/llm/custom-providers.ts"],"names":[],"mappings":"AAEA,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;AAEnB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAcxE,MAAM,UAAU,2BAA2B,CACzC,GAAsB;IAEtB,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CAAC,GAAsB,EAAE,IAAkB;IAChE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAClB,GAAsB,EACtB,MAA0B;IAE1B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IAC9D,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,gBAAgB;QAAE,OAAO,QAAQ,CAAC;IAChE,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAsB;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,EAAgB,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmD,CAAC;IAC9E,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,cAAc;QACxC,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,gBAAgB,CAAC;IAC7C,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC;IACzD,IAAI,kBAAkB,GAAG,qBAAqB,KAAK,aAAa,CAAC;IACjE,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,CAAC,IAAkB,EAAsB,EAAE;QAC5D,IAAI,OAAO;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,sBAAsB,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,cAAc;QACd,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;YAC1B,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;QACP,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;QACpD,KAAK,CAAC,UAAU,CAAC,IAAkB;YACjC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,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,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,oBAAoB,CACxB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EACzB,MAAM,IAAI,EAAE,EACZ,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CACzB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAA0B,EAAE,IAAkB;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;gBAC7C,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU;gBACrC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;gBACxD,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK;gBACxC,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;gBAC3C,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;gBACpD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,+BAA+B,EAAE,OAAO,CAAC,iCAAiC;gBAC1E,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,YAAY,EAAE,GAAG,CAAC,YAAY;aAC/B,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,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;YAChD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,sBAAsB,CAAC;gBAC5D,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO;gBAC9C,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK;gBACpC,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,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3G,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;gBACpE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,+BAA+B,EAAE,OAAO,CAAC,iCAAiC;gBAC1E,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,kBAAkB,EAAE,SAAS;gBAC7B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,cAAc,EACZ,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,KAAK,IAAI;oBAChD,CAAC,CAAC,EAAE,GAAG,gCAAgC,EAAE,kBAAkB,EAAE,IAAI,EAAE;oBACnE,CAAC,CAAC,SAAS;aAChB,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,IAAI,qBAAqB,KAAK,WAAW,EAAE,CAAC;oBAC1C,sBAAsB,CAAC;wBACrB,QAAQ,EAAE,GAAG,CAAC,EAAE;wBAChB,KAAK;wBACL,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC;wBAC1C,KAAK,EAAE,gBAAgB;qBACxB,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,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;AAGD,KAAK,UAAU,cAAc;IAC3B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClE,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,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,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,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;AAErD,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,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,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,MAAM,UAAU,yBAAyB,CAAC,GAAsB;IAC9D,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,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,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,12 @@
1
+ import { type LlmProvider } from "./provider.js";
2
+ export declare const explabsBaseUrl = "https://api.experientiallabs.ai/v1";
3
+ export declare const explabsCatalogUrl = "https://api.experientiallabs.ai/api/models";
4
+ export declare const explabsFallbackModels: string[];
5
+ export interface ExplabsCatalogIndex {
6
+ readonly entries: Map<string, Record<string, unknown>>;
7
+ readonly excluded: Set<string>;
8
+ }
9
+ export declare function explabsCatalogIndex(rows: readonly unknown[]): ExplabsCatalogIndex;
10
+ export declare function resetExplabsCatalogCache(): void;
11
+ export declare function explabsAuthHeaders(apiKey: string): Record<string, string>;
12
+ export declare const explabsProvider: LlmProvider;
@@ -0,0 +1,348 @@
1
+ import { defaultModels, } from "./provider.js";
2
+ import { bareModelId } from "./model-families.js";
3
+ import { singleLeadingSystemMessages } from "./system-messages.js";
4
+ import { ingestOpenAiModelCatalog, openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream, ProviderError, readJson, toCompletionResult, } from "./http.js";
5
+ import { sleep } from "./routing/error-classification.js";
6
+ import { streamAlreadyEmitted } from "./stream-progress.js";
7
+ const API_ROOT = "https://api.experientiallabs.ai";
8
+ export const explabsBaseUrl = `${API_ROOT}/v1`;
9
+ export const explabsCatalogUrl = `${API_ROOT}/api/models`;
10
+ const RESPONSES_NATIVE_MODEL = /(?:^|[-./])(?:gpt-5|gpt-6|o[1-4])(?![a-z])/;
11
+ function responsesFirstForModel(model) {
12
+ return RESPONSES_NATIVE_MODEL.test(bareModelId(model));
13
+ }
14
+ export const explabsFallbackModels = [
15
+ "claude-fable-5.1",
16
+ "claude-fable-5",
17
+ "claude-opus-5",
18
+ "claude-sonnet-5",
19
+ "gpt-5.6-sol",
20
+ "gpt-5.6-luna",
21
+ "gemini-3.7-flash",
22
+ "kimi-k3",
23
+ "glm-5.3",
24
+ "glm-5.3-flash",
25
+ "deepseek-v4-flash",
26
+ "qwen3.8-27b",
27
+ ];
28
+ const NON_CHAT_MODEL = /embed|image|imagen|dall-e|tts|whisper|video|moderation|rerank|transcribe|-batch$/i;
29
+ const CATALOG_PAGE_LIMIT = 500;
30
+ const CATALOG_MAX_PAGES = 10;
31
+ const EFFORT_ORDER = [
32
+ "none",
33
+ "minimal",
34
+ "low",
35
+ "medium",
36
+ "high",
37
+ "xhigh",
38
+ "max",
39
+ ];
40
+ function asRecord(value) {
41
+ return value && typeof value === "object" && !Array.isArray(value)
42
+ ? value
43
+ : undefined;
44
+ }
45
+ function stringList(value) {
46
+ return Array.isArray(value)
47
+ ? value.filter((item) => typeof item === "string")
48
+ : [];
49
+ }
50
+ function positiveInteger(value) {
51
+ return typeof value === "number" && Number.isFinite(value) && value > 0
52
+ ? Math.floor(value)
53
+ : undefined;
54
+ }
55
+ function providerCapabilities(row) {
56
+ const providers = Array.isArray(row.providers) ? row.providers : [];
57
+ return providers
58
+ .map((provider) => asRecord(asRecord(provider)?.capabilities))
59
+ .filter((caps) => caps !== undefined);
60
+ }
61
+ function orderedEfforts(caps) {
62
+ const seen = new Set();
63
+ for (const capsEntry of caps) {
64
+ for (const effort of stringList(capsEntry.supported_reasoning_efforts)) {
65
+ seen.add(effort.trim().toLowerCase());
66
+ }
67
+ }
68
+ const ordered = EFFORT_ORDER.filter((effort) => seen.has(effort));
69
+ const extra = [...seen].filter((effort) => !EFFORT_ORDER.includes(effort));
70
+ return [...ordered, ...extra];
71
+ }
72
+ function reasoningFacts(model, caps) {
73
+ const reasoningCaps = caps.filter((capsEntry) => capsEntry.supports_reasoning === true);
74
+ const declared = reasoningCaps.length > 0 || asRecord(model.supported_params)?.reasoning === true;
75
+ if (!declared)
76
+ return false;
77
+ const efforts = orderedEfforts(reasoningCaps);
78
+ const defaultEffort = reasoningCaps
79
+ .map((capsEntry) => capsEntry.reasoning_default_effort)
80
+ .find((effort) => typeof effort === "string" && effort.trim().length > 0);
81
+ return {
82
+ supported_efforts: efforts.length > 0 ? efforts : null,
83
+ mandatory: reasoningCaps.length > 0 &&
84
+ reasoningCaps.every((capsEntry) => capsEntry.reasoning_effort_required === true),
85
+ ...(defaultEffort !== undefined
86
+ ? {
87
+ default_effort: defaultEffort,
88
+ default_enabled: defaultEffort !== "none",
89
+ }
90
+ : {}),
91
+ };
92
+ }
93
+ function samplingFacts(model, caps) {
94
+ const params = asRecord(model.supported_params);
95
+ const pinnedTemperature = caps.some((capsEntry) => typeof capsEntry.minimum_temperature === "number" &&
96
+ typeof capsEntry.maximum_temperature === "number" &&
97
+ capsEntry.minimum_temperature === capsEntry.maximum_temperature);
98
+ const omit = {};
99
+ if (params?.temperature === false ||
100
+ pinnedTemperature ||
101
+ caps.some((capsEntry) => capsEntry.supports_temperature === false)) {
102
+ omit.temperature = null;
103
+ }
104
+ if (params?.top_p === false ||
105
+ caps.some((capsEntry) => capsEntry.supports_top_p === false)) {
106
+ omit.top_p = null;
107
+ }
108
+ return Object.keys(omit).length > 0 ? omit : undefined;
109
+ }
110
+ function catalogFactsEntry(row) {
111
+ const model = asRecord(row.model);
112
+ if (!model)
113
+ return undefined;
114
+ const slug = typeof model.slug === "string" ? model.slug.trim() : "";
115
+ if (!slug || NON_CHAT_MODEL.test(slug))
116
+ return undefined;
117
+ const outputModalities = stringList(model.output_modalities);
118
+ if (outputModalities.length > 0 &&
119
+ !outputModalities.some((modality) => modality.toLowerCase() === "text")) {
120
+ return undefined;
121
+ }
122
+ const caps = providerCapabilities(row);
123
+ const reasoning = reasoningFacts(model, caps);
124
+ const sampling = samplingFacts(model, caps);
125
+ const contextWindow = positiveInteger(model.context_window);
126
+ const maxOutput = positiveInteger(model.max_output_tokens);
127
+ const inputModalities = stringList(model.input_modalities);
128
+ const entry = {
129
+ id: slug,
130
+ reasoning,
131
+ ...(reasoning !== false
132
+ ? { supported_parameters: ["reasoning_effort", "reasoning"] }
133
+ : {}),
134
+ ...(contextWindow !== undefined ? { context_window: contextWindow } : {}),
135
+ ...(maxOutput !== undefined ? { max_completion_tokens: maxOutput } : {}),
136
+ ...(inputModalities.length > 0
137
+ ? { input_modalities: inputModalities }
138
+ : {}),
139
+ ...(sampling !== undefined ? { default_parameters: sampling } : {}),
140
+ };
141
+ return { id: slug, entry };
142
+ }
143
+ export function explabsCatalogIndex(rows) {
144
+ const entries = new Map();
145
+ const excluded = new Set();
146
+ for (const raw of rows) {
147
+ const row = asRecord(raw) ?? {};
148
+ const slug = typeof asRecord(row.model)?.slug === "string"
149
+ ? asRecord(row.model).slug.trim()
150
+ : "";
151
+ const parsed = catalogFactsEntry(row);
152
+ if (parsed)
153
+ entries.set(parsed.id, parsed.entry);
154
+ else if (slug)
155
+ excluded.add(slug);
156
+ }
157
+ return { entries, excluded };
158
+ }
159
+ let cachedModels = null;
160
+ let lastFetchTime = 0;
161
+ const CACHE_TTL_MS = 60 * 60 * 1000;
162
+ export function resetExplabsCatalogCache() {
163
+ cachedModels = null;
164
+ lastFetchTime = 0;
165
+ }
166
+ export function explabsAuthHeaders(apiKey) {
167
+ return { authorization: `Bearer ${apiKey}` };
168
+ }
169
+ function requireKey(auth) {
170
+ if (!auth.apiKey)
171
+ throw new Error("Experiential Labs API key is required");
172
+ return auth.apiKey;
173
+ }
174
+ async function getJson(url, apiKey, signal) {
175
+ const response = await fetch(url, {
176
+ headers: apiKey ? explabsAuthHeaders(apiKey) : {},
177
+ ...(signal ? { signal } : {}),
178
+ });
179
+ if (!response.ok)
180
+ throw new Error(`HTTP ${response.status}`);
181
+ return readJson(response);
182
+ }
183
+ async function fetchCatalogFacts(apiKey, signal) {
184
+ const rows = [];
185
+ for (let page = 0; page < CATALOG_MAX_PAGES; page += 1) {
186
+ const query = `?limit=${CATALOG_PAGE_LIMIT}&offset=${rows.length}`;
187
+ const data = await getJson(`${explabsCatalogUrl}${query}`, apiKey, signal);
188
+ const batch = Array.isArray(data.models) ? data.models : [];
189
+ rows.push(...batch);
190
+ const total = positiveInteger(data.total);
191
+ if (batch.length === 0 || (total !== undefined && rows.length >= total)) {
192
+ break;
193
+ }
194
+ if (batch.length < CATALOG_PAGE_LIMIT && total === undefined)
195
+ break;
196
+ }
197
+ return explabsCatalogIndex(rows);
198
+ }
199
+ async function fetchCallableIds(apiKey, signal) {
200
+ const data = await getJson(`${explabsBaseUrl}/models`, apiKey, signal);
201
+ const entries = Array.isArray(data.data) ? data.data : [];
202
+ return entries
203
+ .map((entry) => {
204
+ if (typeof entry === "string")
205
+ return entry.trim();
206
+ const id = asRecord(entry)?.id;
207
+ return typeof id === "string" ? id.trim() : "";
208
+ })
209
+ .filter((id) => id.length > 0 && !NON_CHAT_MODEL.test(id));
210
+ }
211
+ async function fetchModels(apiKey, signal) {
212
+ if (!apiKey) {
213
+ const catalog = await fetchCatalogFacts(undefined, signal);
214
+ return ingestOpenAiModelCatalog("explabs", [...catalog.entries.values()]);
215
+ }
216
+ const callable = await fetchCallableIds(apiKey, signal);
217
+ let catalog;
218
+ try {
219
+ catalog = await fetchCatalogFacts(apiKey, signal);
220
+ }
221
+ catch {
222
+ catalog = { entries: new Map(), excluded: new Set() };
223
+ }
224
+ const entries = [];
225
+ const seen = new Set();
226
+ for (const id of callable) {
227
+ if (seen.has(id) || catalog.excluded.has(id))
228
+ continue;
229
+ seen.add(id);
230
+ entries.push(catalog.entries.get(id) ?? { id });
231
+ }
232
+ return ingestOpenAiModelCatalog("explabs", entries);
233
+ }
234
+ const THROTTLE_MAX_RETRIES = 2;
235
+ const THROTTLE_MAX_WAIT_MS = 20_000;
236
+ const THROTTLE_DEFAULT_WAIT_MS = [5_000, 10_000];
237
+ const THROTTLE_SIGNATURE = /unavailable_route|provider throttled/i;
238
+ function isGatewayThrottle(error) {
239
+ if (!(error instanceof ProviderError) || error.status !== 429)
240
+ return false;
241
+ if (streamAlreadyEmitted(error))
242
+ return false;
243
+ return (error.retryAfterSeconds !== undefined ||
244
+ THROTTLE_SIGNATURE.test(`${error.message}\n${error.body ?? ""}`));
245
+ }
246
+ function throttleRetryWaitMs(error, attempt) {
247
+ const seconds = error.retryAfterSeconds;
248
+ const advertised = seconds !== undefined && Number.isFinite(seconds) && seconds >= 0
249
+ ? Math.ceil(seconds * 1000)
250
+ : undefined;
251
+ if (advertised === undefined) {
252
+ return THROTTLE_DEFAULT_WAIT_MS[Math.min(attempt, THROTTLE_DEFAULT_WAIT_MS.length - 1)];
253
+ }
254
+ return Math.min(advertised, THROTTLE_MAX_WAIT_MS);
255
+ }
256
+ async function dispatchWithThrottleRetry(dispatch, signal) {
257
+ for (let attempt = 0;; attempt += 1) {
258
+ try {
259
+ return await dispatch();
260
+ }
261
+ catch (error) {
262
+ if (attempt >= THROTTLE_MAX_RETRIES || !isGatewayThrottle(error)) {
263
+ throw error;
264
+ }
265
+ await sleep(throttleRetryWaitMs(error, attempt), signal);
266
+ }
267
+ }
268
+ }
269
+ export const explabsProvider = {
270
+ id: "explabs",
271
+ reasoningStyle: "openai",
272
+ displayName: "Experiential Labs",
273
+ defaultModel: defaultModels.explabs,
274
+ envVar: "EXPLABS_API_KEY",
275
+ validateKey: (key) => /^xpl_[0-9a-f]{40,}$/i.test(key),
276
+ async listModels(auth) {
277
+ const now = Date.now();
278
+ if (cachedModels && now - lastFetchTime < CACHE_TTL_MS)
279
+ return cachedModels;
280
+ try {
281
+ const models = await fetchModels(auth.apiKey);
282
+ if (models.length > 0) {
283
+ cachedModels = models;
284
+ lastFetchTime = now;
285
+ return models;
286
+ }
287
+ return cachedModels ?? explabsFallbackModels;
288
+ }
289
+ catch {
290
+ return cachedModels ?? explabsFallbackModels;
291
+ }
292
+ },
293
+ async ping(auth) {
294
+ await openAiCompatiblePing(explabsBaseUrl, requireKey(auth));
295
+ },
296
+ async complete(request, auth) {
297
+ const apiKey = requireKey(auth);
298
+ const model = request.model ?? defaultModels.explabs;
299
+ const payload = await dispatchWithThrottleRetry(() => openAiCompatibleComplete({
300
+ responsesFirst: responsesFirstForModel(model),
301
+ provider: "Experiential Labs",
302
+ providerId: "explabs",
303
+ baseUrl: explabsBaseUrl,
304
+ apiKey,
305
+ model,
306
+ messages: singleLeadingSystemMessages(request.messages),
307
+ maxTokens: request.maxTokens,
308
+ temperature: request.temperature,
309
+ signal: request.signal,
310
+ reasoning: request.thinking,
311
+ reasoningStyle: "openai",
312
+ tools: request.tools,
313
+ toolChoice: request.toolChoice,
314
+ parallelToolCalls: request.parallelToolCalls,
315
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
316
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
317
+ }), request.signal);
318
+ return toCompletionResult("explabs", model, payload);
319
+ },
320
+ async stream(request, auth, onToken) {
321
+ const apiKey = requireKey(auth);
322
+ const model = request.model ?? defaultModels.explabs;
323
+ const payload = await dispatchWithThrottleRetry(() => openAiCompatibleStream({
324
+ responsesFirst: responsesFirstForModel(model),
325
+ provider: "Experiential Labs",
326
+ providerId: "explabs",
327
+ baseUrl: explabsBaseUrl,
328
+ apiKey,
329
+ model,
330
+ messages: singleLeadingSystemMessages(request.messages),
331
+ maxTokens: request.maxTokens,
332
+ temperature: request.temperature,
333
+ signal: request.signal,
334
+ onToken,
335
+ onToolCallDelta: request.onToolCallDelta,
336
+ onStreamEvent: request.onStreamEvent,
337
+ reasoning: request.thinking,
338
+ reasoningStyle: "openai",
339
+ tools: request.tools,
340
+ toolChoice: request.toolChoice,
341
+ parallelToolCalls: request.parallelToolCalls,
342
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
343
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
344
+ }), request.signal);
345
+ return toCompletionResult("explabs", model, payload);
346
+ },
347
+ };
348
+ //# sourceMappingURL=explabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explabs.js","sourceRoot":"","sources":["../../src/llm/explabs.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ interface FreeSource {
4
4
  name: string;
5
5
  baseUrl: string;
6
6
  curated: readonly string[];
7
+ responsesApi: boolean;
8
+ requestHeaders(): Record<string, string>;
7
9
  catalogFreeIds(payload: unknown): string[];
8
10
  keylessId(id: string): boolean;
9
11
  fallbackModels(): string[];
package/dist/llm/free.js CHANGED
@@ -1,7 +1,9 @@
1
+ import { randomUUID } from "node:crypto";
1
2
  import { defaultModels, } from "./provider.js";
2
3
  import { openAiCompatibleComplete, openAiCompatiblePing, openAiCompatibleStream, toCompletionResult, readJson, ingestModelCatalogEntries, streamIdleBudgets, THINKING_STREAM_INITIAL_IDLE_TIMEOUT_MS, ProviderError, } from "./http.js";
3
4
  import { META_STREAM_TERMINAL } from "./stream-terminal.js";
4
5
  import { mapResponsesEffort, responsesComplete, responsesReasoningSummary, responsesStream, } from "./responses-dialect.js";
6
+ import { currentSessionAffinity } from "./session-affinity.js";
5
7
  const ZEN_BASE_URL = "https://opencode.ai/zen/v1";
6
8
  const KILO_BASE_URL = "https://api.kilo.ai/api/gateway";
7
9
  const FREE_REASONING_STYLE = "openai";
@@ -38,11 +40,34 @@ function catalogEntries(payload) {
38
40
  return [];
39
41
  }
40
42
  let kiloDynamicFreeIds = new Set();
43
+ const OPENCODE_USER_AGENT = "opencode/1.18.27";
44
+ const gatewayIdentity = {
45
+ session: randomUUID(),
46
+ request: randomUUID(),
47
+ project: randomUUID(),
48
+ };
49
+ function zenClientHeaders() {
50
+ return {
51
+ "user-agent": OPENCODE_USER_AGENT,
52
+ "x-opencode-session": currentSessionAffinity() ?? gatewayIdentity.session,
53
+ "x-opencode-request": gatewayIdentity.request,
54
+ "x-opencode-client": "cli",
55
+ "x-opencode-project": gatewayIdentity.project,
56
+ };
57
+ }
58
+ function kiloClientHeaders() {
59
+ return {
60
+ "user-agent": "opencode-kilo-provider",
61
+ "x-kilocode-editorname": "Kilo CLI",
62
+ };
63
+ }
41
64
  const zenSource = {
42
65
  id: "free-1",
43
66
  name: "opencode zen",
44
67
  baseUrl: ZEN_BASE_URL,
45
68
  curated: CURATED_ZEN_MODELS,
69
+ responsesApi: false,
70
+ requestHeaders: zenClientHeaders,
46
71
  catalogFreeIds(payload) {
47
72
  return ingestModelCatalogEntries("free", catalogEntries(payload)).filter((id) => /free/i.test(id));
48
73
  },
@@ -58,6 +83,8 @@ const kiloSource = {
58
83
  name: "kilo gateway",
59
84
  baseUrl: KILO_BASE_URL,
60
85
  curated: CURATED_KILO_MODELS,
86
+ responsesApi: true,
87
+ requestHeaders: kiloClientHeaders,
61
88
  catalogFreeIds(payload) {
62
89
  const freeEntries = catalogEntries(payload).filter((entry) => {
63
90
  const raw = entry;
@@ -110,6 +137,7 @@ function zenResponsesHeaders(auth, accept) {
110
137
  const headers = {
111
138
  "content-type": "application/json",
112
139
  accept,
140
+ ...zenClientHeaders(),
113
141
  };
114
142
  return auth.apiKey
115
143
  ? { ...headers, authorization: `Bearer ${auth.apiKey}` }
@@ -193,7 +221,8 @@ export const freeProvider = {
193
221
  return { ...result, model: requested };
194
222
  }
195
223
  const payload = await openAiCompatibleComplete({
196
- responsesFirst: true,
224
+ responsesFirst: source.responsesApi,
225
+ headers: source.requestHeaders(),
197
226
  provider: "Free",
198
227
  providerId: "free",
199
228
  baseUrl: source.baseUrl,
@@ -224,7 +253,8 @@ export const freeProvider = {
224
253
  }
225
254
  const budgets = streamIdleBudgets(Boolean(request.thinking?.enabled));
226
255
  const payload = await openAiCompatibleStream({
227
- responsesFirst: true,
256
+ responsesFirst: source.responsesApi,
257
+ headers: source.requestHeaders(),
228
258
  provider: "Free",
229
259
  providerId: "free",
230
260
  baseUrl: source.baseUrl,