@steipete/summarize 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/CHANGELOG.md +80 -28
  2. package/README.md +115 -30
  3. package/dist/cli.js +1 -1
  4. package/dist/esm/cache.js +67 -65
  5. package/dist/esm/cache.js.map +1 -1
  6. package/dist/esm/cli-main.js +27 -27
  7. package/dist/esm/cli-main.js.map +1 -1
  8. package/dist/esm/cli.js +2 -2
  9. package/dist/esm/cli.js.map +1 -1
  10. package/dist/esm/config.js +310 -166
  11. package/dist/esm/config.js.map +1 -1
  12. package/dist/esm/content/asset.js +53 -50
  13. package/dist/esm/content/asset.js.map +1 -1
  14. package/dist/esm/content/index.js +1 -1
  15. package/dist/esm/content/index.js.map +1 -1
  16. package/dist/esm/costs.js +1 -1
  17. package/dist/esm/costs.js.map +1 -1
  18. package/dist/esm/daemon/agent.js +165 -164
  19. package/dist/esm/daemon/agent.js.map +1 -1
  20. package/dist/esm/daemon/auto-mode.js +3 -3
  21. package/dist/esm/daemon/auto-mode.js.map +1 -1
  22. package/dist/esm/daemon/chat.js +16 -14
  23. package/dist/esm/daemon/chat.js.map +1 -1
  24. package/dist/esm/daemon/cli-entrypoint.js +72 -0
  25. package/dist/esm/daemon/cli-entrypoint.js.map +1 -0
  26. package/dist/esm/daemon/cli.js +63 -87
  27. package/dist/esm/daemon/cli.js.map +1 -1
  28. package/dist/esm/daemon/config.js +15 -15
  29. package/dist/esm/daemon/config.js.map +1 -1
  30. package/dist/esm/daemon/constants.js +6 -6
  31. package/dist/esm/daemon/constants.js.map +1 -1
  32. package/dist/esm/daemon/env-merge.js.map +1 -1
  33. package/dist/esm/daemon/env-snapshot.js +36 -31
  34. package/dist/esm/daemon/env-snapshot.js.map +1 -1
  35. package/dist/esm/daemon/flow-context.js +59 -28
  36. package/dist/esm/daemon/flow-context.js.map +1 -1
  37. package/dist/esm/daemon/launchd.js +100 -55
  38. package/dist/esm/daemon/launchd.js.map +1 -1
  39. package/dist/esm/daemon/meta.js +5 -5
  40. package/dist/esm/daemon/meta.js.map +1 -1
  41. package/dist/esm/daemon/models.js +54 -31
  42. package/dist/esm/daemon/models.js.map +1 -1
  43. package/dist/esm/daemon/process-registry.js +15 -15
  44. package/dist/esm/daemon/process-registry.js.map +1 -1
  45. package/dist/esm/daemon/schtasks.js +42 -42
  46. package/dist/esm/daemon/schtasks.js.map +1 -1
  47. package/dist/esm/daemon/server.js +248 -244
  48. package/dist/esm/daemon/server.js.map +1 -1
  49. package/dist/esm/daemon/summarize-progress.js +11 -11
  50. package/dist/esm/daemon/summarize-progress.js.map +1 -1
  51. package/dist/esm/daemon/summarize.js +29 -29
  52. package/dist/esm/daemon/summarize.js.map +1 -1
  53. package/dist/esm/daemon/systemd.js +47 -47
  54. package/dist/esm/daemon/systemd.js.map +1 -1
  55. package/dist/esm/firecrawl.js +12 -12
  56. package/dist/esm/firecrawl.js.map +1 -1
  57. package/dist/esm/flags.js +32 -32
  58. package/dist/esm/flags.js.map +1 -1
  59. package/dist/esm/index.js +3 -3
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/language.js +1 -1
  62. package/dist/esm/language.js.map +1 -1
  63. package/dist/esm/llm/cli.js +128 -64
  64. package/dist/esm/llm/cli.js.map +1 -1
  65. package/dist/esm/llm/errors.js +1 -1
  66. package/dist/esm/llm/errors.js.map +1 -1
  67. package/dist/esm/llm/generate-text.js +107 -98
  68. package/dist/esm/llm/generate-text.js.map +1 -1
  69. package/dist/esm/llm/google-models.js +17 -17
  70. package/dist/esm/llm/google-models.js.map +1 -1
  71. package/dist/esm/llm/html-to-markdown.js +3 -3
  72. package/dist/esm/llm/html-to-markdown.js.map +1 -1
  73. package/dist/esm/llm/model-id.js +38 -16
  74. package/dist/esm/llm/model-id.js.map +1 -1
  75. package/dist/esm/llm/prompt.js +5 -5
  76. package/dist/esm/llm/prompt.js.map +1 -1
  77. package/dist/esm/llm/providers/anthropic.js +33 -33
  78. package/dist/esm/llm/providers/anthropic.js.map +1 -1
  79. package/dist/esm/llm/providers/google.js +19 -19
  80. package/dist/esm/llm/providers/google.js.map +1 -1
  81. package/dist/esm/llm/providers/models.js +30 -30
  82. package/dist/esm/llm/providers/models.js.map +1 -1
  83. package/dist/esm/llm/providers/openai.js +35 -34
  84. package/dist/esm/llm/providers/openai.js.map +1 -1
  85. package/dist/esm/llm/providers/shared.js +8 -8
  86. package/dist/esm/llm/providers/shared.js.map +1 -1
  87. package/dist/esm/llm/transcript-to-markdown.js +9 -5
  88. package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
  89. package/dist/esm/llm/usage.js +18 -18
  90. package/dist/esm/llm/usage.js.map +1 -1
  91. package/dist/esm/logging/daemon.js +21 -21
  92. package/dist/esm/logging/daemon.js.map +1 -1
  93. package/dist/esm/logging/ring-file.js +5 -5
  94. package/dist/esm/logging/ring-file.js.map +1 -1
  95. package/dist/esm/markitdown.js +21 -19
  96. package/dist/esm/markitdown.js.map +1 -1
  97. package/dist/esm/media-cache.js +39 -39
  98. package/dist/esm/media-cache.js.map +1 -1
  99. package/dist/esm/model-auto.js +175 -106
  100. package/dist/esm/model-auto.js.map +1 -1
  101. package/dist/esm/model-spec.js +52 -42
  102. package/dist/esm/model-spec.js.map +1 -1
  103. package/dist/esm/pricing/litellm.js +4 -4
  104. package/dist/esm/pricing/litellm.js.map +1 -1
  105. package/dist/esm/processes.js +1 -1
  106. package/dist/esm/processes.js.map +1 -1
  107. package/dist/esm/prompts/index.js +1 -1
  108. package/dist/esm/prompts/index.js.map +1 -1
  109. package/dist/esm/refresh-free.js +81 -81
  110. package/dist/esm/refresh-free.js.map +1 -1
  111. package/dist/esm/run/attachments.js +47 -44
  112. package/dist/esm/run/attachments.js.map +1 -1
  113. package/dist/esm/run/bird.js +26 -26
  114. package/dist/esm/run/bird.js.map +1 -1
  115. package/dist/esm/run/cache-state.js +7 -7
  116. package/dist/esm/run/cache-state.js.map +1 -1
  117. package/dist/esm/run/cli-fallback-state.js +45 -0
  118. package/dist/esm/run/cli-fallback-state.js.map +1 -0
  119. package/dist/esm/run/cli-preflight.js +24 -24
  120. package/dist/esm/run/cli-preflight.js.map +1 -1
  121. package/dist/esm/run/constants.js +12 -12
  122. package/dist/esm/run/constants.js.map +1 -1
  123. package/dist/esm/run/cookies/twitter.js +47 -47
  124. package/dist/esm/run/cookies/twitter.js.map +1 -1
  125. package/dist/esm/run/env.js +21 -15
  126. package/dist/esm/run/env.js.map +1 -1
  127. package/dist/esm/run/fetch-with-timeout.js +4 -4
  128. package/dist/esm/run/fetch-with-timeout.js.map +1 -1
  129. package/dist/esm/run/finish-line.js +68 -68
  130. package/dist/esm/run/finish-line.js.map +1 -1
  131. package/dist/esm/run/flows/asset/extract.js +15 -15
  132. package/dist/esm/run/flows/asset/extract.js.map +1 -1
  133. package/dist/esm/run/flows/asset/input.js +47 -66
  134. package/dist/esm/run/flows/asset/input.js.map +1 -1
  135. package/dist/esm/run/flows/asset/media-policy.js +1 -1
  136. package/dist/esm/run/flows/asset/media-policy.js.map +1 -1
  137. package/dist/esm/run/flows/asset/media.js +49 -40
  138. package/dist/esm/run/flows/asset/media.js.map +1 -1
  139. package/dist/esm/run/flows/asset/output.js +12 -12
  140. package/dist/esm/run/flows/asset/output.js.map +1 -1
  141. package/dist/esm/run/flows/asset/preprocess.js +79 -44
  142. package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
  143. package/dist/esm/run/flows/asset/summary.js +173 -106
  144. package/dist/esm/run/flows/asset/summary.js.map +1 -1
  145. package/dist/esm/run/flows/url/extract.js +26 -26
  146. package/dist/esm/run/flows/url/extract.js.map +1 -1
  147. package/dist/esm/run/flows/url/flow.js +104 -98
  148. package/dist/esm/run/flows/url/flow.js.map +1 -1
  149. package/dist/esm/run/flows/url/markdown.js +57 -57
  150. package/dist/esm/run/flows/url/markdown.js.map +1 -1
  151. package/dist/esm/run/flows/url/slides-output.js +61 -59
  152. package/dist/esm/run/flows/url/slides-output.js.map +1 -1
  153. package/dist/esm/run/flows/url/slides-text.js +85 -85
  154. package/dist/esm/run/flows/url/slides-text.js.map +1 -1
  155. package/dist/esm/run/flows/url/summary.js +174 -107
  156. package/dist/esm/run/flows/url/summary.js.map +1 -1
  157. package/dist/esm/run/format.js +10 -10
  158. package/dist/esm/run/format.js.map +1 -1
  159. package/dist/esm/run/help.js +141 -135
  160. package/dist/esm/run/help.js.map +1 -1
  161. package/dist/esm/run/logging.js +10 -10
  162. package/dist/esm/run/logging.js.map +1 -1
  163. package/dist/esm/run/markdown.js +12 -12
  164. package/dist/esm/run/markdown.js.map +1 -1
  165. package/dist/esm/run/media-cache-state.js +5 -5
  166. package/dist/esm/run/media-cache-state.js.map +1 -1
  167. package/dist/esm/run/model-attempts.js.map +1 -1
  168. package/dist/esm/run/openrouter.js +11 -11
  169. package/dist/esm/run/openrouter.js.map +1 -1
  170. package/dist/esm/run/progress.js +1 -1
  171. package/dist/esm/run/progress.js.map +1 -1
  172. package/dist/esm/run/run-config.js +16 -16
  173. package/dist/esm/run/run-config.js.map +1 -1
  174. package/dist/esm/run/run-context.js +2 -2
  175. package/dist/esm/run/run-context.js.map +1 -1
  176. package/dist/esm/run/run-env.js +55 -54
  177. package/dist/esm/run/run-env.js.map +1 -1
  178. package/dist/esm/run/run-input.js +3 -3
  179. package/dist/esm/run/run-input.js.map +1 -1
  180. package/dist/esm/run/run-metrics.js +16 -16
  181. package/dist/esm/run/run-metrics.js.map +1 -1
  182. package/dist/esm/run/run-models.js +28 -23
  183. package/dist/esm/run/run-models.js.map +1 -1
  184. package/dist/esm/run/run-output.js +3 -3
  185. package/dist/esm/run/run-output.js.map +1 -1
  186. package/dist/esm/run/run-settings.js +83 -34
  187. package/dist/esm/run/run-settings.js.map +1 -1
  188. package/dist/esm/run/run-stream.js +4 -4
  189. package/dist/esm/run/run-stream.js.map +1 -1
  190. package/dist/esm/run/runner.js +166 -127
  191. package/dist/esm/run/runner.js.map +1 -1
  192. package/dist/esm/run/slides-cli.js +43 -42
  193. package/dist/esm/run/slides-cli.js.map +1 -1
  194. package/dist/esm/run/slides-render.js +36 -36
  195. package/dist/esm/run/slides-render.js.map +1 -1
  196. package/dist/esm/run/stdin-temp-file.js +77 -0
  197. package/dist/esm/run/stdin-temp-file.js.map +1 -0
  198. package/dist/esm/run/stream-output.js +7 -7
  199. package/dist/esm/run/stream-output.js.map +1 -1
  200. package/dist/esm/run/streaming.js +16 -16
  201. package/dist/esm/run/streaming.js.map +1 -1
  202. package/dist/esm/run/summary-engine.js +57 -51
  203. package/dist/esm/run/summary-engine.js.map +1 -1
  204. package/dist/esm/run/summary-llm.js +3 -3
  205. package/dist/esm/run/summary-llm.js.map +1 -1
  206. package/dist/esm/run/terminal.js +4 -4
  207. package/dist/esm/run/terminal.js.map +1 -1
  208. package/dist/esm/run/tips.js +2 -2
  209. package/dist/esm/run/tips.js.map +1 -1
  210. package/dist/esm/run/transcriber-cli.js +49 -49
  211. package/dist/esm/run/transcriber-cli.js.map +1 -1
  212. package/dist/esm/run.js +1 -1
  213. package/dist/esm/run.js.map +1 -1
  214. package/dist/esm/shared/contracts.js +1 -1
  215. package/dist/esm/shared/contracts.js.map +1 -1
  216. package/dist/esm/shared/sse-events.js +16 -16
  217. package/dist/esm/shared/sse-events.js.map +1 -1
  218. package/dist/esm/shared/streaming-merge.js +3 -3
  219. package/dist/esm/shared/streaming-merge.js.map +1 -1
  220. package/dist/esm/slides/extract.js +258 -249
  221. package/dist/esm/slides/extract.js.map +1 -1
  222. package/dist/esm/slides/index.js +3 -3
  223. package/dist/esm/slides/index.js.map +1 -1
  224. package/dist/esm/slides/settings.js +14 -14
  225. package/dist/esm/slides/settings.js.map +1 -1
  226. package/dist/esm/slides/store.js +9 -9
  227. package/dist/esm/slides/store.js.map +1 -1
  228. package/dist/esm/tty/format.js +13 -13
  229. package/dist/esm/tty/format.js.map +1 -1
  230. package/dist/esm/tty/osc-progress.js +1 -1
  231. package/dist/esm/tty/osc-progress.js.map +1 -1
  232. package/dist/esm/tty/progress/fetch-html.js +14 -14
  233. package/dist/esm/tty/progress/fetch-html.js.map +1 -1
  234. package/dist/esm/tty/progress/transcript.js +70 -62
  235. package/dist/esm/tty/progress/transcript.js.map +1 -1
  236. package/dist/esm/tty/spinner.js +20 -9
  237. package/dist/esm/tty/spinner.js.map +1 -1
  238. package/dist/esm/tty/theme.js +92 -92
  239. package/dist/esm/tty/theme.js.map +1 -1
  240. package/dist/esm/tty/website-progress.js +32 -32
  241. package/dist/esm/tty/website-progress.js.map +1 -1
  242. package/dist/esm/version.js +29 -29
  243. package/dist/esm/version.js.map +1 -1
  244. package/dist/types/cache.d.ts +6 -6
  245. package/dist/types/config.d.ts +49 -7
  246. package/dist/types/content/asset.d.ts +8 -6
  247. package/dist/types/content/index.d.ts +1 -1
  248. package/dist/types/costs.d.ts +3 -3
  249. package/dist/types/daemon/agent.d.ts +1 -1
  250. package/dist/types/daemon/auto-mode.d.ts +3 -3
  251. package/dist/types/daemon/chat.d.ts +2 -2
  252. package/dist/types/daemon/cli-entrypoint.d.ts +2 -0
  253. package/dist/types/daemon/config.d.ts +2 -2
  254. package/dist/types/daemon/env-merge.d.ts +1 -1
  255. package/dist/types/daemon/env-snapshot.d.ts +1 -1
  256. package/dist/types/daemon/flow-context.d.ts +7 -7
  257. package/dist/types/daemon/launchd.d.ts +8 -0
  258. package/dist/types/daemon/models.d.ts +6 -2
  259. package/dist/types/daemon/process-registry.d.ts +5 -5
  260. package/dist/types/daemon/server.d.ts +2 -2
  261. package/dist/types/daemon/summarize-progress.d.ts +1 -1
  262. package/dist/types/daemon/summarize.d.ts +7 -7
  263. package/dist/types/firecrawl.d.ts +1 -1
  264. package/dist/types/flags.d.ts +11 -11
  265. package/dist/types/index.d.ts +4 -4
  266. package/dist/types/language.d.ts +1 -1
  267. package/dist/types/llm/attachments.d.ts +1 -1
  268. package/dist/types/llm/cli.d.ts +3 -3
  269. package/dist/types/llm/generate-text.d.ts +7 -7
  270. package/dist/types/llm/html-to-markdown.d.ts +3 -3
  271. package/dist/types/llm/model-id.d.ts +1 -1
  272. package/dist/types/llm/prompt.d.ts +2 -2
  273. package/dist/types/llm/providers/anthropic.d.ts +3 -3
  274. package/dist/types/llm/providers/google.d.ts +3 -3
  275. package/dist/types/llm/providers/models.d.ts +2 -2
  276. package/dist/types/llm/providers/openai.d.ts +4 -4
  277. package/dist/types/llm/providers/shared.d.ts +2 -2
  278. package/dist/types/llm/transcript-to-markdown.d.ts +4 -2
  279. package/dist/types/llm/usage.d.ts +1 -1
  280. package/dist/types/logging/daemon.d.ts +4 -4
  281. package/dist/types/markitdown.d.ts +1 -1
  282. package/dist/types/media-cache.d.ts +2 -2
  283. package/dist/types/model-auto.d.ts +14 -4
  284. package/dist/types/model-spec.d.ts +10 -10
  285. package/dist/types/pricing/litellm.d.ts +1 -1
  286. package/dist/types/processes.d.ts +1 -1
  287. package/dist/types/prompts/index.d.ts +1 -1
  288. package/dist/types/run/attachments.d.ts +7 -7
  289. package/dist/types/run/bird.d.ts +2 -2
  290. package/dist/types/run/cache-state.d.ts +2 -2
  291. package/dist/types/run/cli-fallback-state.d.ts +6 -0
  292. package/dist/types/run/constants.d.ts +1 -1
  293. package/dist/types/run/cookies/twitter.d.ts +1 -1
  294. package/dist/types/run/env.d.ts +1 -1
  295. package/dist/types/run/finish-line.d.ts +5 -5
  296. package/dist/types/run/flows/asset/extract.d.ts +4 -4
  297. package/dist/types/run/flows/asset/input.d.ts +9 -3
  298. package/dist/types/run/flows/asset/media.d.ts +1 -1
  299. package/dist/types/run/flows/asset/output.d.ts +5 -5
  300. package/dist/types/run/flows/asset/preprocess.d.ts +23 -17
  301. package/dist/types/run/flows/asset/summary.d.ts +19 -17
  302. package/dist/types/run/flows/url/extract.d.ts +1 -1
  303. package/dist/types/run/flows/url/flow.d.ts +1 -1
  304. package/dist/types/run/flows/url/markdown.d.ts +6 -6
  305. package/dist/types/run/flows/url/slides-output.d.ts +7 -7
  306. package/dist/types/run/flows/url/slides-text.d.ts +9 -9
  307. package/dist/types/run/flows/url/summary.d.ts +11 -11
  308. package/dist/types/run/flows/url/types.d.ts +26 -22
  309. package/dist/types/run/format.d.ts +3 -3
  310. package/dist/types/run/help.d.ts +1 -1
  311. package/dist/types/run/media-cache-state.d.ts +2 -2
  312. package/dist/types/run/model-attempts.d.ts +1 -1
  313. package/dist/types/run/run-config.d.ts +4 -4
  314. package/dist/types/run/run-context.d.ts +3 -1
  315. package/dist/types/run/run-env.d.ts +3 -1
  316. package/dist/types/run/run-input.d.ts +2 -2
  317. package/dist/types/run/run-metrics.d.ts +3 -3
  318. package/dist/types/run/run-models.d.ts +3 -2
  319. package/dist/types/run/run-output.d.ts +1 -1
  320. package/dist/types/run/run-settings.d.ts +15 -6
  321. package/dist/types/run/run-stream.d.ts +2 -2
  322. package/dist/types/run/runner.d.ts +3 -2
  323. package/dist/types/run/slides-render.d.ts +4 -4
  324. package/dist/types/run/stdin-temp-file.d.ts +9 -0
  325. package/dist/types/run/stream-output.d.ts +1 -1
  326. package/dist/types/run/streaming.d.ts +4 -4
  327. package/dist/types/run/summary-engine.d.ts +11 -11
  328. package/dist/types/run/summary-llm.d.ts +5 -5
  329. package/dist/types/run/types.d.ts +4 -4
  330. package/dist/types/run.d.ts +1 -1
  331. package/dist/types/shared/contracts.d.ts +2 -2
  332. package/dist/types/shared/sse-events.d.ts +9 -9
  333. package/dist/types/slides/extract.d.ts +5 -4
  334. package/dist/types/slides/index.d.ts +5 -5
  335. package/dist/types/slides/store.d.ts +2 -2
  336. package/dist/types/slides/types.d.ts +2 -2
  337. package/dist/types/tty/osc-progress.d.ts +5 -5
  338. package/dist/types/tty/progress/fetch-html.d.ts +3 -3
  339. package/dist/types/tty/progress/transcript.d.ts +3 -3
  340. package/dist/types/tty/spinner.d.ts +2 -2
  341. package/dist/types/tty/theme.d.ts +2 -2
  342. package/dist/types/tty/website-progress.d.ts +3 -3
  343. package/dist/types/version.d.ts +1 -1
  344. package/docs/agent.md +38 -4
  345. package/docs/assets/site.js +46 -46
  346. package/docs/chrome-extension.md +11 -5
  347. package/docs/cli.md +59 -13
  348. package/docs/config.md +59 -10
  349. package/docs/extract-only.md +2 -0
  350. package/docs/index.html +33 -14
  351. package/docs/llm.md +7 -4
  352. package/docs/media.md +5 -4
  353. package/docs/model-auto.md +3 -2
  354. package/docs/nvidia-onnx-transcription.md +3 -3
  355. package/docs/openai.md +1 -1
  356. package/docs/releasing.md +3 -0
  357. package/docs/site/404.html +4 -1
  358. package/docs/site/assets/site.js +46 -46
  359. package/docs/site/docs/chrome-extension.html +18 -6
  360. package/docs/site/docs/config.html +29 -8
  361. package/docs/site/docs/extract-only.html +16 -4
  362. package/docs/site/docs/firecrawl.html +12 -3
  363. package/docs/site/docs/index.html +35 -6
  364. package/docs/site/docs/llm.html +19 -5
  365. package/docs/site/docs/openai.html +18 -5
  366. package/docs/site/docs/website.html +29 -9
  367. package/docs/site/docs/youtube.html +12 -3
  368. package/docs/site/index.html +33 -14
  369. package/docs/slides.md +13 -5
  370. package/docs/smoketest.md +29 -20
  371. package/docs/timestamps.md +21 -0
  372. package/docs/website.md +2 -1
  373. package/docs/youtube.md +4 -0
  374. package/package.json +36 -35
@@ -1,6 +1,6 @@
1
- import * as piAi from '@mariozechner/pi-ai';
2
- import { normalizeGatewayStyleModelId, parseGatewayStyleModelId } from './llm/model-id.js';
3
- import { resolveLiteLlmMaxInputTokensForModelId, resolveLiteLlmPricingForModelId, } from './pricing/litellm.js';
1
+ import * as piAi from "@mariozechner/pi-ai";
2
+ import { normalizeGatewayStyleModelId, parseGatewayStyleModelId } from "./llm/model-id.js";
3
+ import { resolveLiteLlmMaxInputTokensForModelId, resolveLiteLlmPricingForModelId, } from "./pricing/litellm.js";
4
4
  let cachedOpenRouterIndex = null;
5
5
  let cachedOpenRouterIndexReady = false;
6
6
  function buildOpenRouterModelIndex(modelIds) {
@@ -11,13 +11,13 @@ function buildOpenRouterModelIndex(modelIds) {
11
11
  const trimmed = raw.trim();
12
12
  if (trimmed.length === 0)
13
13
  continue;
14
- if (!trimmed.includes('/'))
14
+ if (!trimmed.includes("/"))
15
15
  continue;
16
16
  const normalized = trimmed.toLowerCase();
17
17
  // Preserve original casing for display while indexing by lowercase.
18
18
  if (!byId.has(normalized))
19
19
  byId.set(normalized, trimmed);
20
- const slash = normalized.indexOf('/');
20
+ const slash = normalized.indexOf("/");
21
21
  if (slash === -1 || slash === normalized.length - 1)
22
22
  continue;
23
23
  const slug = normalized.slice(slash + 1);
@@ -47,8 +47,8 @@ function getOpenRouterModelIndex(override) {
47
47
  if (cachedOpenRouterIndexReady)
48
48
  return cachedOpenRouterIndex;
49
49
  cachedOpenRouterIndexReady = true;
50
- const ids = typeof piAi.getModels === 'function'
51
- ? piAi.getModels('openrouter').map((model) => model.id)
50
+ const ids = typeof piAi.getModels === "function"
51
+ ? piAi.getModels("openrouter").map((model) => model.id)
52
52
  : [];
53
53
  cachedOpenRouterIndex = ids.length > 0 ? buildOpenRouterModelIndex(ids) : null;
54
54
  return cachedOpenRouterIndex;
@@ -62,7 +62,7 @@ function resolveOpenRouterModelIdForNative({ nativeModelId, index, }) {
62
62
  const direct = index.byId.get(canonicalLower);
63
63
  if (direct)
64
64
  return direct;
65
- const slash = canonicalLower.indexOf('/');
65
+ const slash = canonicalLower.indexOf("/");
66
66
  if (slash === -1 || slash === canonicalLower.length - 1)
67
67
  return null;
68
68
  // Fall back to a unique slug match (author differs, e.g. xai → x-ai).
@@ -85,72 +85,113 @@ function resolveOpenRouterModelIdForNative({ nativeModelId, index, }) {
85
85
  return normalizedOnly ? (index.byId.get(normalizedOnly) ?? null) : null;
86
86
  }
87
87
  function normalizeSlugForMatch(slug) {
88
- return slug.toLowerCase().replace(/[^a-z0-9]+/g, '');
88
+ return slug.toLowerCase().replace(/[^a-z0-9]+/g, "");
89
89
  }
90
90
  const DEFAULT_RULES = [
91
91
  {
92
- when: ['video'],
93
- candidates: ['google/gemini-3-flash-preview', 'google/gemini-2.5-flash-lite-preview-09-2025'],
92
+ when: ["video"],
93
+ candidates: ["google/gemini-3-flash-preview", "google/gemini-2.5-flash-lite-preview-09-2025"],
94
94
  },
95
95
  {
96
- when: ['image'],
96
+ when: ["image"],
97
97
  candidates: [
98
- 'google/gemini-3-flash-preview',
99
- 'openai/gpt-5-mini',
100
- 'anthropic/claude-sonnet-4-5',
98
+ "google/gemini-3-flash-preview",
99
+ "openai/gpt-5-mini",
100
+ "anthropic/claude-sonnet-4-5",
101
101
  ],
102
102
  },
103
103
  {
104
- when: ['website', 'youtube', 'text'],
104
+ when: ["website", "youtube", "text"],
105
105
  bands: [
106
106
  {
107
107
  token: { max: 50_000 },
108
108
  candidates: [
109
- 'google/gemini-3-flash-preview',
110
- 'openai/gpt-5-mini',
111
- 'anthropic/claude-sonnet-4-5',
109
+ "google/gemini-3-flash-preview",
110
+ "openai/gpt-5-mini",
111
+ "anthropic/claude-sonnet-4-5",
112
112
  ],
113
113
  },
114
114
  {
115
115
  token: { max: 200_000 },
116
116
  candidates: [
117
- 'google/gemini-3-flash-preview',
118
- 'openai/gpt-5-mini',
119
- 'anthropic/claude-sonnet-4-5',
117
+ "google/gemini-3-flash-preview",
118
+ "openai/gpt-5-mini",
119
+ "anthropic/claude-sonnet-4-5",
120
120
  ],
121
121
  },
122
122
  {
123
123
  candidates: [
124
- 'xai/grok-4-fast-non-reasoning',
125
- 'google/gemini-3-flash-preview',
126
- 'openai/gpt-5-mini',
127
- 'anthropic/claude-sonnet-4-5',
124
+ "xai/grok-4-fast-non-reasoning",
125
+ "google/gemini-3-flash-preview",
126
+ "openai/gpt-5-mini",
127
+ "anthropic/claude-sonnet-4-5",
128
128
  ],
129
129
  },
130
130
  ],
131
131
  },
132
132
  {
133
- when: ['file'],
133
+ when: ["file"],
134
134
  candidates: [
135
- 'google/gemini-3-flash-preview',
136
- 'openai/gpt-5-mini',
137
- 'anthropic/claude-sonnet-4-5',
135
+ "google/gemini-3-flash-preview",
136
+ "openai/gpt-5-mini",
137
+ "anthropic/claude-sonnet-4-5",
138
138
  ],
139
139
  },
140
140
  {
141
141
  candidates: [
142
- 'google/gemini-3-flash-preview',
143
- 'openai/gpt-5-mini',
144
- 'anthropic/claude-sonnet-4-5',
145
- 'xai/grok-4-fast-non-reasoning',
142
+ "google/gemini-3-flash-preview",
143
+ "openai/gpt-5-mini",
144
+ "anthropic/claude-sonnet-4-5",
145
+ "xai/grok-4-fast-non-reasoning",
146
146
  ],
147
147
  },
148
148
  ];
149
149
  const DEFAULT_CLI_MODELS = {
150
- claude: 'sonnet',
151
- codex: 'gpt-5.2',
152
- gemini: 'gemini-3-flash-preview',
150
+ claude: "sonnet",
151
+ codex: "gpt-5.2",
152
+ gemini: "gemini-3-flash-preview",
153
+ agent: "gpt-5.2",
153
154
  };
155
+ const DEFAULT_AUTO_CLI_ORDER = ["claude", "gemini", "codex", "agent"];
156
+ function dedupeCliProviderOrder(order) {
157
+ const out = [];
158
+ for (const provider of order) {
159
+ if (!out.includes(provider))
160
+ out.push(provider);
161
+ }
162
+ return out;
163
+ }
164
+ export function resolveCliAutoFallbackConfig(config) {
165
+ const raw = (config?.cli?.autoFallback ??
166
+ config?.cli?.magicAuto ??
167
+ null);
168
+ const order = Array.isArray(raw?.order) && raw.order.length > 0 ? raw.order : DEFAULT_AUTO_CLI_ORDER;
169
+ return {
170
+ enabled: typeof raw?.enabled === "boolean" ? raw.enabled : true,
171
+ onlyWhenNoApiKeys: typeof raw?.onlyWhenNoApiKeys === "boolean" ? raw.onlyWhenNoApiKeys : true,
172
+ order: dedupeCliProviderOrder(order),
173
+ };
174
+ }
175
+ function hasAnyApiKeysConfigured(env) {
176
+ const has = (value) => typeof value === "string" && value.trim().length > 0;
177
+ return Boolean(has(env.OPENAI_API_KEY) ||
178
+ has(env.GEMINI_API_KEY) ||
179
+ has(env.GOOGLE_GENERATIVE_AI_API_KEY) ||
180
+ has(env.GOOGLE_API_KEY) ||
181
+ has(env.ANTHROPIC_API_KEY) ||
182
+ has(env.XAI_API_KEY) ||
183
+ has(env.OPENROUTER_API_KEY) ||
184
+ has(env.Z_AI_API_KEY) ||
185
+ has(env.ZAI_API_KEY));
186
+ }
187
+ function prioritizeCliProvider(providers, preferred) {
188
+ if (!preferred)
189
+ return providers;
190
+ const idx = providers.indexOf(preferred);
191
+ if (idx <= 0)
192
+ return providers;
193
+ return [preferred, ...providers.slice(0, idx), ...providers.slice(idx + 1)];
194
+ }
154
195
  function isCliProviderEnabled(provider, config) {
155
196
  const cli = config?.cli;
156
197
  if (!Array.isArray(cli?.enabled) || cli.enabled.length === 0)
@@ -158,31 +199,34 @@ function isCliProviderEnabled(provider, config) {
158
199
  return cli.enabled.includes(provider);
159
200
  }
160
201
  function isCandidateOpenRouter(modelId) {
161
- return modelId.trim().toLowerCase().startsWith('openrouter/');
202
+ return modelId.trim().toLowerCase().startsWith("openrouter/");
162
203
  }
163
204
  function isCandidateCli(modelId) {
164
- return modelId.trim().toLowerCase().startsWith('cli/');
205
+ return modelId.trim().toLowerCase().startsWith("cli/");
165
206
  }
166
207
  function parseCliCandidate(modelId) {
167
208
  if (!isCandidateCli(modelId))
168
209
  return null;
169
210
  const parts = modelId
170
211
  .trim()
171
- .split('/')
212
+ .split("/")
172
213
  .map((entry) => entry.trim());
173
214
  if (parts.length < 2)
174
215
  return null;
175
216
  const provider = parts[1]?.toLowerCase();
176
- if (provider !== 'claude' && provider !== 'codex' && provider !== 'gemini')
217
+ if (provider !== "claude" &&
218
+ provider !== "codex" &&
219
+ provider !== "gemini" &&
220
+ provider !== "agent")
177
221
  return null;
178
- const model = parts.slice(2).join('/').trim();
222
+ const model = parts.slice(2).join("/").trim();
179
223
  return { provider, model: model.length > 0 ? model : null };
180
224
  }
181
225
  function normalizeOpenRouterModelId(raw) {
182
226
  const trimmed = raw.trim();
183
227
  if (trimmed.length === 0)
184
228
  return null;
185
- if (!trimmed.includes('/'))
229
+ if (!trimmed.includes("/"))
186
230
  return null;
187
231
  return trimmed.toLowerCase();
188
232
  }
@@ -190,33 +234,35 @@ function requiredEnvForCandidate(modelId) {
190
234
  if (isCandidateCli(modelId)) {
191
235
  const parsed = parseCliCandidate(modelId);
192
236
  if (!parsed)
193
- return 'CLI_CLAUDE';
194
- return parsed.provider === 'codex'
195
- ? 'CLI_CODEX'
196
- : parsed.provider === 'gemini'
197
- ? 'CLI_GEMINI'
198
- : 'CLI_CLAUDE';
237
+ return "CLI_CLAUDE";
238
+ return parsed.provider === "codex"
239
+ ? "CLI_CODEX"
240
+ : parsed.provider === "gemini"
241
+ ? "CLI_GEMINI"
242
+ : parsed.provider === "agent"
243
+ ? "CLI_AGENT"
244
+ : "CLI_CLAUDE";
199
245
  }
200
246
  if (isCandidateOpenRouter(modelId))
201
- return 'OPENROUTER_API_KEY';
247
+ return "OPENROUTER_API_KEY";
202
248
  const parsed = parseGatewayStyleModelId(normalizeGatewayStyleModelId(modelId));
203
- return parsed.provider === 'xai'
204
- ? 'XAI_API_KEY'
205
- : parsed.provider === 'google'
206
- ? 'GEMINI_API_KEY'
207
- : parsed.provider === 'anthropic'
208
- ? 'ANTHROPIC_API_KEY'
209
- : parsed.provider === 'zai'
210
- ? 'Z_AI_API_KEY'
211
- : 'OPENAI_API_KEY';
249
+ return parsed.provider === "xai"
250
+ ? "XAI_API_KEY"
251
+ : parsed.provider === "google"
252
+ ? "GEMINI_API_KEY"
253
+ : parsed.provider === "anthropic"
254
+ ? "ANTHROPIC_API_KEY"
255
+ : parsed.provider === "zai"
256
+ ? "Z_AI_API_KEY"
257
+ : "OPENAI_API_KEY";
212
258
  }
213
- function envHasKey(env, requiredEnv) {
214
- if (requiredEnv === 'GEMINI_API_KEY') {
259
+ export function envHasKey(env, requiredEnv) {
260
+ if (requiredEnv === "GEMINI_API_KEY") {
215
261
  return Boolean(env.GEMINI_API_KEY?.trim() ||
216
262
  env.GOOGLE_GENERATIVE_AI_API_KEY?.trim() ||
217
263
  env.GOOGLE_API_KEY?.trim());
218
264
  }
219
- if (requiredEnv === 'Z_AI_API_KEY') {
265
+ if (requiredEnv === "Z_AI_API_KEY") {
220
266
  return Boolean(env.Z_AI_API_KEY?.trim() || env.ZAI_API_KEY?.trim());
221
267
  }
222
268
  return Boolean(env[requiredEnv]?.trim());
@@ -225,19 +271,19 @@ function tokenMatchesBand({ promptTokens, band, }) {
225
271
  const token = band.token;
226
272
  if (!token)
227
273
  return true;
228
- if (typeof promptTokens !== 'number' || !Number.isFinite(promptTokens)) {
229
- return typeof token.min !== 'number' && typeof token.max !== 'number';
274
+ if (typeof promptTokens !== "number" || !Number.isFinite(promptTokens)) {
275
+ return typeof token.min !== "number" && typeof token.max !== "number";
230
276
  }
231
- const min = typeof token.min === 'number' ? token.min : 0;
232
- const max = typeof token.max === 'number' ? token.max : Number.POSITIVE_INFINITY;
277
+ const min = typeof token.min === "number" ? token.min : 0;
278
+ const max = typeof token.max === "number" ? token.max : Number.POSITIVE_INFINITY;
233
279
  return promptTokens >= min && promptTokens <= max;
234
280
  }
235
281
  function resolveRuleCandidates({ kind, promptTokens, config, }) {
236
282
  const rules = (() => {
237
283
  const model = config?.model;
238
284
  if (model &&
239
- 'mode' in model &&
240
- model.mode === 'auto' &&
285
+ "mode" in model &&
286
+ model.mode === "auto" &&
241
287
  Array.isArray(model.rules) &&
242
288
  model.rules.length > 0) {
243
289
  return model.rules;
@@ -264,13 +310,26 @@ function resolveRuleCandidates({ kind, promptTokens, config, }) {
264
310
  const fallback = rules[rules.length - 1];
265
311
  return fallback?.candidates ?? [];
266
312
  }
267
- function prependCliCandidates({ candidates, config, }) {
313
+ function prependCliCandidates({ candidates, config, env, isImplicitAutoSelection, allowAutoCliFallback, lastSuccessfulCliProvider, }) {
268
314
  const cli = config?.cli;
269
- if (!Array.isArray(cli?.enabled) || cli.enabled.length === 0)
315
+ const autoFallback = resolveCliAutoFallbackConfig(config);
316
+ const hasExplicitEnabledList = Array.isArray(cli?.enabled);
317
+ const enabledOrder = (() => {
318
+ if (hasExplicitEnabledList)
319
+ return cli?.enabled ?? [];
320
+ const shouldUseAutoFallback = autoFallback.enabled &&
321
+ (isImplicitAutoSelection || allowAutoCliFallback) &&
322
+ (!autoFallback.onlyWhenNoApiKeys || !hasAnyApiKeysConfigured(env));
323
+ if (!shouldUseAutoFallback)
324
+ return [];
325
+ return autoFallback.order;
326
+ })();
327
+ if (enabledOrder.length === 0)
270
328
  return candidates;
329
+ const providerOrder = prioritizeCliProvider(enabledOrder, lastSuccessfulCliProvider);
271
330
  const cliCandidates = [];
272
331
  const add = (provider, modelOverride) => {
273
- if (!isCliProviderEnabled(provider, config))
332
+ if (hasExplicitEnabledList && !isCliProviderEnabled(provider, config))
274
333
  return;
275
334
  const model = modelOverride?.trim() || DEFAULT_CLI_MODELS[provider];
276
335
  if (!model)
@@ -279,13 +338,14 @@ function prependCliCandidates({ candidates, config, }) {
279
338
  if (!cliCandidates.includes(id))
280
339
  cliCandidates.push(id);
281
340
  };
282
- const enabledOrder = cli.enabled;
283
- for (const provider of enabledOrder) {
284
- const modelOverride = provider === 'gemini'
341
+ for (const provider of providerOrder) {
342
+ const modelOverride = provider === "gemini"
285
343
  ? cli?.gemini?.model
286
- : provider === 'codex'
344
+ : provider === "codex"
287
345
  ? cli?.codex?.model
288
- : cli?.claude?.model;
346
+ : provider === "agent"
347
+ ? cli?.agent?.model
348
+ : cli?.claude?.model;
289
349
  add(provider, modelOverride);
290
350
  }
291
351
  if (cliCandidates.length === 0)
@@ -295,12 +355,12 @@ function prependCliCandidates({ candidates, config, }) {
295
355
  function estimateCostUsd({ pricing, promptTokens, outputTokens, }) {
296
356
  if (!pricing)
297
357
  return null;
298
- if (typeof pricing.inputUsdPerToken !== 'number' || typeof pricing.outputUsdPerToken !== 'number')
358
+ if (typeof pricing.inputUsdPerToken !== "number" || typeof pricing.outputUsdPerToken !== "number")
299
359
  return null;
300
- const inTok = typeof promptTokens === 'number' && Number.isFinite(promptTokens) && promptTokens > 0
360
+ const inTok = typeof promptTokens === "number" && Number.isFinite(promptTokens) && promptTokens > 0
301
361
  ? promptTokens
302
362
  : 0;
303
- const outTok = typeof outputTokens === 'number' && Number.isFinite(outputTokens) && outputTokens > 0
363
+ const outTok = typeof outputTokens === "number" && Number.isFinite(outputTokens) && outputTokens > 0
304
364
  ? outputTokens
305
365
  : 0;
306
366
  const cost = inTok * pricing.inputUsdPerToken + outTok * pricing.outputUsdPerToken;
@@ -309,7 +369,7 @@ function estimateCostUsd({ pricing, promptTokens, outputTokens, }) {
309
369
  function isVideoUnderstandingCapable(modelId) {
310
370
  try {
311
371
  const parsed = parseGatewayStyleModelId(normalizeGatewayStyleModelId(modelId));
312
- return parsed.provider === 'google';
372
+ return parsed.provider === "google";
313
373
  }
314
374
  catch {
315
375
  return false;
@@ -321,8 +381,15 @@ export function buildAutoModelAttempts(input) {
321
381
  promptTokens: input.promptTokens,
322
382
  config: input.config,
323
383
  });
324
- const candidates = prependCliCandidates({ candidates: baseCandidates, config: input.config });
325
- const shouldResolveOpenRouterIndex = !input.requiresVideoUnderstanding && envHasKey(input.env, 'OPENROUTER_API_KEY');
384
+ const candidates = prependCliCandidates({
385
+ candidates: baseCandidates,
386
+ config: input.config,
387
+ env: input.env,
388
+ isImplicitAutoSelection: input.isImplicitAutoSelection ?? false,
389
+ allowAutoCliFallback: input.allowAutoCliFallback ?? false,
390
+ lastSuccessfulCliProvider: input.lastSuccessfulCliProvider ?? null,
391
+ });
392
+ const shouldResolveOpenRouterIndex = !input.requiresVideoUnderstanding && envHasKey(input.env, "OPENROUTER_API_KEY");
326
393
  // Resolve OpenRouter ids once per run (or use injected test list).
327
394
  const openrouterIndex = shouldResolveOpenRouterIndex
328
395
  ? getOpenRouterModelIndex(input.openrouterModelIds)
@@ -341,20 +408,22 @@ export function buildAutoModelAttempts(input) {
341
408
  }
342
409
  const addAttempt = (modelId, options) => {
343
410
  const required = requiredEnvForCandidate(modelId);
344
- const hasKey = options.transport === 'cli'
345
- ? Boolean(input.cliAvailability?.[parseCliCandidate(modelId)?.provider ?? 'claude'] ?? false)
411
+ const hasKey = options.transport === "cli"
412
+ ? Boolean(input.cliAvailability?.[parseCliCandidate(modelId)?.provider ?? "claude"] ?? false)
346
413
  : envHasKey(input.env, required);
347
- if (options.transport === 'cli' && !hasKey) {
414
+ if (options.transport === "cli" && !hasKey) {
348
415
  return;
349
416
  }
350
- const catalog = options.transport === 'cli' ? null : input.catalog;
351
- const catalogModelId = options.openrouter ? modelId.slice('openrouter/'.length) : modelId;
352
- const maxIn = catalog ? resolveLiteLlmMaxInputTokensForModelId(catalog, catalogModelId) : null;
417
+ const catalog = options.transport === "cli" ? null : input.catalog;
418
+ const catalogModelId = options.openrouter ? modelId.slice("openrouter/".length) : modelId;
419
+ const maxIn = catalog
420
+ ? resolveLiteLlmMaxInputTokensForModelId(catalog, catalogModelId)
421
+ : null;
353
422
  const promptTokens = input.promptTokens;
354
- if (options.transport !== 'cli' &&
355
- typeof promptTokens === 'number' &&
423
+ if (options.transport !== "cli" &&
424
+ typeof promptTokens === "number" &&
356
425
  Number.isFinite(promptTokens) &&
357
- typeof maxIn === 'number' &&
426
+ typeof maxIn === "number" &&
358
427
  Number.isFinite(maxIn) &&
359
428
  maxIn > 0 &&
360
429
  promptTokens > maxIn) {
@@ -366,34 +435,34 @@ export function buildAutoModelAttempts(input) {
366
435
  promptTokens: input.promptTokens,
367
436
  outputTokens: input.desiredOutputTokens,
368
437
  });
369
- const userModelId = options.transport === 'cli'
438
+ const userModelId = options.transport === "cli"
370
439
  ? modelId
371
440
  : options.openrouter
372
441
  ? modelId
373
442
  : normalizeGatewayStyleModelId(modelId);
374
443
  const openrouterModelId = options.openrouter
375
- ? normalizeOpenRouterModelId(modelId.slice('openrouter/'.length))
444
+ ? normalizeOpenRouterModelId(modelId.slice("openrouter/".length))
376
445
  : null;
377
446
  if (options.openrouter && !openrouterModelId) {
378
447
  return;
379
448
  }
380
- const llmModelId = options.transport === 'cli'
449
+ const llmModelId = options.transport === "cli"
381
450
  ? null
382
451
  : options.openrouter
383
452
  ? `openai/${openrouterModelId}`
384
453
  : normalizeGatewayStyleModelId(modelId);
385
454
  const debugParts = [
386
- `model=${options.transport === 'cli'
455
+ `model=${options.transport === "cli"
387
456
  ? userModelId
388
457
  : options.openrouter
389
458
  ? `openrouter/${openrouterModelId}`
390
459
  : userModelId}`,
391
460
  `transport=${options.transport}`,
392
461
  `order=${attempts.length + 1}`,
393
- `key=${hasKey ? 'yes' : 'no'}(${required})`,
394
- `promptTok=${typeof input.promptTokens === 'number' ? input.promptTokens : 'unknown'}`,
395
- `maxIn=${typeof maxIn === 'number' ? maxIn : 'unknown'}`,
396
- `estUsd=${typeof estimated === 'number' ? estimated.toExponential(2) : 'unknown'}`,
462
+ `key=${hasKey ? "yes" : "no"}(${required})`,
463
+ `promptTok=${typeof input.promptTokens === "number" ? input.promptTokens : "unknown"}`,
464
+ `maxIn=${typeof maxIn === "number" ? maxIn : "unknown"}`,
465
+ `estUsd=${typeof estimated === "number" ? estimated.toExponential(2) : "unknown"}`,
397
466
  ];
398
467
  attempts.push({
399
468
  transport: options.transport,
@@ -402,14 +471,14 @@ export function buildAutoModelAttempts(input) {
402
471
  openrouterProviders: options.openrouterProviders,
403
472
  forceOpenRouter: options.openrouter,
404
473
  requiredEnv: required,
405
- debug: debugParts.join(' '),
474
+ debug: debugParts.join(" "),
406
475
  });
407
476
  };
408
477
  if (explicitCli) {
409
478
  addAttempt(modelRaw, {
410
479
  openrouter: false,
411
480
  openrouterProviders: null,
412
- transport: 'cli',
481
+ transport: "cli",
413
482
  });
414
483
  continue;
415
484
  }
@@ -417,16 +486,16 @@ export function buildAutoModelAttempts(input) {
417
486
  addAttempt(modelRaw, {
418
487
  openrouter: true,
419
488
  openrouterProviders: input.openrouterProvidersFromEnv,
420
- transport: 'openrouter',
489
+ transport: "openrouter",
421
490
  });
422
491
  continue;
423
492
  }
424
493
  addAttempt(modelRaw, {
425
494
  openrouter: false,
426
495
  openrouterProviders: input.openrouterProvidersFromEnv,
427
- transport: 'native',
496
+ transport: "native",
428
497
  });
429
- const canAddOpenRouterFallback = !input.requiresVideoUnderstanding && envHasKey(input.env, 'OPENROUTER_API_KEY');
498
+ const canAddOpenRouterFallback = !input.requiresVideoUnderstanding && envHasKey(input.env, "OPENROUTER_API_KEY");
430
499
  if (canAddOpenRouterFallback) {
431
500
  // Map native provider/model to OpenRouter author/slug; skip when ambiguous.
432
501
  const openrouterModelId = resolveOpenRouterModelIdForNative({
@@ -437,7 +506,7 @@ export function buildAutoModelAttempts(input) {
437
506
  addAttempt(`openrouter/${openrouterModelId}`, {
438
507
  openrouter: true,
439
508
  openrouterProviders: input.openrouterProvidersFromEnv,
440
- transport: 'openrouter',
509
+ transport: "openrouter",
441
510
  });
442
511
  }
443
512
  }
@@ -445,7 +514,7 @@ export function buildAutoModelAttempts(input) {
445
514
  const seen = new Set();
446
515
  const unique = [];
447
516
  for (const a of attempts) {
448
- const key = `${a.transport}:${a.forceOpenRouter ? 'or' : 'native'}:${a.userModelId}:${a.openrouterProviders?.join(',') ?? ''}`;
517
+ const key = `${a.transport}:${a.forceOpenRouter ? "or" : "native"}:${a.userModelId}:${a.openrouterProviders?.join(",") ?? ""}`;
449
518
  if (seen.has(key))
450
519
  continue;
451
520
  seen.add(key);
@@ -1 +1 @@
1
- {"version":3,"file":"model-auto.js","sourceRoot":"","sources":["../../src/model-auto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-auto.js","sourceRoot":"","sources":["../../src/model-auto.ts"],"names":[],"mappings":"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"}