@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 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAIzD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,EAAE,EACF,KAAK,EACL,KAAK,EACL,GAAG,EACH,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,GAuCV;IACC,KAAK,CAAC,sBAAsB,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,uBAAuB,CAAC;QAC1C,SAAS,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE;QACjD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,MAAM,OAAO,GAAG;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,WAAoB;gBAC1B,GAAG;gBACH,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,cAAc;aACjC;YACD,GAAG,EAAE;gBACH,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;gBACvC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACrD,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC5C,eAAe,EAAE,SAAS,CAAC,mBAAmB;gBAC9C,YAAY,EAAE,SAAS,CAAC,gBAAgB;gBACxC,eAAe,EAAE,SAAS,CAAC,mBAAmB;aAC/C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,OAAgB;gBACtB,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;YACD,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;YACnD,OAAO,EAAE,IAAI;SACd,CAAC;QACF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,CAAC,0BAA0B,EAAE,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,cAAc,IAAI,YAAY,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;YAC9C,eAAe,CAAC;gBACd,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,GAAG,EAAE,EAAE,CAAC,SAAS;gBACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc;gBAC5C,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,YAAY;gBACpB,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,eAAe;gBAC/B,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,YAAY;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC;QACjE,CAAC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAChE,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;YAC7C,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;YAC7C,UAAU,EAAE,IAAI;SACjB,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAExB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,CAAC,0BAA0B,EAAE,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,KAAK,CAAC,cAAc,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;QAC9C,eAAe,CAAC;YACd,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,GAAG,EAAE,EAAE,CAAC,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc;YAC5C,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,IAAI;YACX,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,eAAe;YAC/B,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,YAAY;SAC1B,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,46 +1,78 @@
1
- import { convertToMarkdownWithMarkitdown } from '../../../markitdown.js';
2
- import { buildFileSummaryPrompt, buildFileTextSummaryPrompt } from '../../../prompts/index.js';
3
- import { formatBytes } from '../../../tty/format.js';
4
- import { getFileBytesFromAttachment, getTextContentFromAttachment, MAX_DOCUMENT_BYTES_DEFAULT, shouldMarkitdownConvertMediaType, supportsNativeFileAttachment, } from '../../attachments.js';
5
- import { MAX_TEXT_BYTES_DEFAULT } from '../../constants.js';
6
- import { hasUvxCli } from '../../env.js';
7
- import { withUvxTip } from '../../tips.js';
8
- export function resolveDocumentHandling({ attachment, textContent, fileBytes, preprocessMode, fixedModelSpec, }) {
9
- if (attachment.kind !== 'file')
10
- return { mode: 'inline' };
1
+ import { resolveOpenAiClientConfig } from "../../../llm/providers/openai.js";
2
+ import { convertToMarkdownWithMarkitdown } from "../../../markitdown.js";
3
+ import { buildFileSummaryPrompt, buildFileTextSummaryPrompt } from "../../../prompts/index.js";
4
+ import { formatBytes } from "../../../tty/format.js";
5
+ import { getFileBytesFromAttachment, getTextContentFromAttachment, MAX_DOCUMENT_BYTES_DEFAULT, shouldMarkitdownConvertMediaType, supportsNativeFileAttachment, } from "../../attachments.js";
6
+ import { MAX_TEXT_BYTES_DEFAULT } from "../../constants.js";
7
+ import { hasUvxCli } from "../../env.js";
8
+ import { withUvxTip } from "../../tips.js";
9
+ export function resolveDocumentHandling({ attachment, textContent, fileBytes, preprocessMode, fixedModelSpec, openaiApiKey, openrouterApiKey, openaiBaseUrl, }) {
10
+ if (attachment.kind !== "file")
11
+ return { mode: "inline" };
11
12
  if (textContent)
12
- return { mode: 'inline' };
13
+ return { mode: "inline" };
13
14
  if (!fileBytes) {
14
15
  return {
15
- mode: 'error',
16
- error: new Error('Internal error: missing file bytes for binary attachment'),
16
+ mode: "error",
17
+ error: new Error("Internal error: missing file bytes for binary attachment"),
17
18
  };
18
19
  }
19
- const canAttachDocument = preprocessMode !== 'always' &&
20
- fixedModelSpec?.transport === 'native' &&
21
- supportsNativeFileAttachment({
20
+ const canAttachDocument = (() => {
21
+ if (preprocessMode === "always")
22
+ return false;
23
+ if (fixedModelSpec?.transport !== "native")
24
+ return false;
25
+ if (!supportsNativeFileAttachment({
22
26
  provider: fixedModelSpec.provider,
23
27
  attachment: { kind: attachment.kind, mediaType: attachment.mediaType },
24
- });
28
+ })) {
29
+ return false;
30
+ }
31
+ if (fixedModelSpec.provider !== "openai")
32
+ return true;
33
+ const resolvedOpenAiBaseUrl = fixedModelSpec.openaiBaseUrlOverride ?? openaiBaseUrl ?? null;
34
+ try {
35
+ const openaiConfig = resolveOpenAiClientConfig({
36
+ apiKeys: { openaiApiKey: openaiApiKey ?? null, openrouterApiKey: openrouterApiKey ?? null },
37
+ forceOpenRouter: fixedModelSpec.forceOpenRouter,
38
+ openaiBaseUrlOverride: resolvedOpenAiBaseUrl,
39
+ forceChatCompletions: fixedModelSpec.forceChatCompletions,
40
+ });
41
+ if (openaiConfig.isOpenRouter)
42
+ return false;
43
+ const host = new URL(openaiConfig.baseURL ?? "https://api.openai.com/v1").host.toLowerCase();
44
+ return host === "api.openai.com";
45
+ }
46
+ catch {
47
+ if (!resolvedOpenAiBaseUrl)
48
+ return true;
49
+ try {
50
+ return new URL(resolvedOpenAiBaseUrl).host.toLowerCase() === "api.openai.com";
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ }
56
+ })();
25
57
  if (canAttachDocument && fileBytes.byteLength <= MAX_DOCUMENT_BYTES_DEFAULT) {
26
- return { mode: 'attach' };
58
+ return { mode: "attach" };
27
59
  }
28
60
  if (canAttachDocument && fileBytes.byteLength > MAX_DOCUMENT_BYTES_DEFAULT) {
29
- if (preprocessMode === 'off') {
61
+ if (preprocessMode === "off") {
30
62
  return {
31
- mode: 'error',
63
+ mode: "error",
32
64
  error: new Error(`PDF is too large to attach (${formatBytes(fileBytes.byteLength)}). Max is ${formatBytes(MAX_DOCUMENT_BYTES_DEFAULT)}. Enable preprocessing or use a smaller file.`),
33
65
  };
34
66
  }
35
- return { mode: 'preprocess' };
67
+ return { mode: "preprocess" };
36
68
  }
37
- if (preprocessMode === 'off') {
69
+ if (preprocessMode === "off") {
38
70
  return {
39
- mode: 'error',
71
+ mode: "error",
40
72
  error: new Error(`This build does not support attaching binary files (${attachment.mediaType}). Enable preprocessing (e.g. --preprocess auto) and install uvx/markitdown.`),
41
73
  };
42
74
  }
43
- return { mode: 'preprocess' };
75
+ return { mode: "preprocess" };
44
76
  }
45
77
  export async function prepareAssetPrompt({ ctx, attachment, }) {
46
78
  const textContent = getTextContentFromAttachment(attachment);
@@ -48,15 +80,15 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
48
80
  throw new Error(`Text file too large (${formatBytes(textContent.bytes)}). Limit is ${formatBytes(MAX_TEXT_BYTES_DEFAULT)}.`);
49
81
  }
50
82
  const fileBytes = getFileBytesFromAttachment(attachment);
51
- const summaryLengthTarget = ctx.lengthArg.kind === 'preset'
83
+ const summaryLengthTarget = ctx.lengthArg.kind === "preset"
52
84
  ? ctx.lengthArg.preset
53
85
  : { maxCharacters: ctx.lengthArg.maxCharacters };
54
- let promptText = '';
86
+ let promptText = "";
55
87
  let attachments = [];
56
88
  const assetFooterParts = [];
57
89
  const buildImageAttachment = () => {
58
- if (attachment.kind !== 'image') {
59
- throw new Error('Internal error: tried to attach non-image as image');
90
+ if (attachment.kind !== "image") {
91
+ throw new Error("Internal error: tried to attach non-image as image");
60
92
  }
61
93
  promptText = buildFileSummaryPrompt({
62
94
  filename: attachment.filename,
@@ -70,7 +102,7 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
70
102
  });
71
103
  attachments = [
72
104
  {
73
- kind: 'image',
105
+ kind: "image",
74
106
  mediaType: attachment.mediaType,
75
107
  bytes: attachment.bytes,
76
108
  filename: attachment.filename,
@@ -93,21 +125,24 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
93
125
  };
94
126
  let preprocessedMarkdown = null;
95
127
  let usingPreprocessedMarkdown = false;
96
- const documentHandling = attachment.kind === 'file'
128
+ const documentHandling = attachment.kind === "file"
97
129
  ? resolveDocumentHandling({
98
130
  attachment,
99
131
  textContent,
100
132
  fileBytes,
101
133
  preprocessMode: ctx.preprocessMode,
102
134
  fixedModelSpec: ctx.fixedModelSpec,
135
+ openaiApiKey: ctx.openaiApiKey ?? (ctx.envForRun.OPENAI_API_KEY?.trim() || null),
136
+ openrouterApiKey: ctx.openrouterApiKey ?? (ctx.envForRun.OPENROUTER_API_KEY?.trim() || null),
137
+ openaiBaseUrl: ctx.openaiBaseUrl ?? (ctx.envForRun.OPENAI_BASE_URL?.trim() || null),
103
138
  })
104
- : { mode: 'inline' };
105
- if (documentHandling.mode === 'error') {
139
+ : { mode: "inline" };
140
+ if (documentHandling.mode === "error") {
106
141
  throw documentHandling.error;
107
142
  }
108
- if (documentHandling.mode === 'attach') {
143
+ if (documentHandling.mode === "attach") {
109
144
  if (!fileBytes) {
110
- throw new Error('Internal error: missing file bytes for document attachment');
145
+ throw new Error("Internal error: missing file bytes for document attachment");
111
146
  }
112
147
  promptText = buildFileSummaryPrompt({
113
148
  filename: attachment.filename,
@@ -121,7 +156,7 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
121
156
  });
122
157
  attachments = [
123
158
  {
124
- kind: 'document',
159
+ kind: "document",
125
160
  mediaType: attachment.mediaType,
126
161
  bytes: fileBytes,
127
162
  filename: attachment.filename,
@@ -130,12 +165,12 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
130
165
  return { promptText, attachments, assetFooterParts, textContent };
131
166
  }
132
167
  // Non-text file attachments require preprocessing (pi-ai message format supports images, but not generic files).
133
- if (attachment.kind === 'file' && !textContent && documentHandling.mode === 'preprocess') {
168
+ if (attachment.kind === "file" && !textContent && documentHandling.mode === "preprocess") {
134
169
  if (!fileBytes) {
135
- throw new Error('Internal error: missing file bytes for markitdown preprocessing');
170
+ throw new Error("Internal error: missing file bytes for markitdown preprocessing");
136
171
  }
137
172
  if (!shouldMarkitdownConvertMediaType(attachment.mediaType)) {
138
- throw new Error(`Unsupported file type: ${attachment.filename ?? 'file'} (${attachment.mediaType})\n` +
173
+ throw new Error(`Unsupported file type: ${attachment.filename ?? "file"} (${attachment.mediaType})\n` +
139
174
  `This build can only send text or images to the model. Try a text-like file, an image, or convert this file to text first.`);
140
175
  }
141
176
  if (!hasUvxCli(ctx.env)) {
@@ -156,21 +191,21 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
156
191
  const message = error instanceof Error ? error.message : String(error);
157
192
  throw new Error(`Failed to preprocess ${attachment.mediaType} with markitdown: ${message}.`);
158
193
  }
159
- if (Buffer.byteLength(preprocessedMarkdown, 'utf8') > MAX_TEXT_BYTES_DEFAULT) {
160
- throw new Error(`Preprocessed Markdown too large (${formatBytes(Buffer.byteLength(preprocessedMarkdown, 'utf8'))}). Limit is ${formatBytes(MAX_TEXT_BYTES_DEFAULT)}.`);
194
+ if (Buffer.byteLength(preprocessedMarkdown, "utf8") > MAX_TEXT_BYTES_DEFAULT) {
195
+ throw new Error(`Preprocessed Markdown too large (${formatBytes(Buffer.byteLength(preprocessedMarkdown, "utf8"))}). Limit is ${formatBytes(MAX_TEXT_BYTES_DEFAULT)}.`);
161
196
  }
162
197
  usingPreprocessedMarkdown = true;
163
198
  assetFooterParts.push(`markitdown(${attachment.mediaType})`);
164
199
  }
165
- if (attachment.kind === 'image') {
200
+ if (attachment.kind === "image") {
166
201
  buildImageAttachment();
167
202
  }
168
203
  else if (usingPreprocessedMarkdown) {
169
204
  if (!preprocessedMarkdown)
170
- throw new Error('Internal error: missing markitdown content for preprocessing');
205
+ throw new Error("Internal error: missing markitdown content for preprocessing");
171
206
  buildInlinePromptText({
172
207
  content: preprocessedMarkdown,
173
- contentMediaType: 'text/markdown',
208
+ contentMediaType: "text/markdown",
174
209
  originalMediaType: attachment.mediaType,
175
210
  });
176
211
  }
@@ -182,7 +217,7 @@ export async function prepareAssetPrompt({ ctx, attachment, }) {
182
217
  });
183
218
  }
184
219
  else {
185
- throw new Error('Internal error: no prompt text could be built for asset');
220
+ throw new Error("Internal error: no prompt text could be built for asset");
186
221
  }
187
222
  void ctx.fixedModelSpec;
188
223
  return { promptText, attachments, assetFooterParts, textContent };
@@ -1 +1 @@
1
- {"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/preprocess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/preprocess.ts"],"names":[],"mappings":"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"}