@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 { formatCompactCount, formatDurationSecondsSmart, formatElapsedMs, formatMinutesSmart, } from '../tty/format.js';
2
- import { createThemeRenderer, resolveThemeNameFromSources, resolveTrueColor } from '../tty/theme.js';
3
- import { formatUSD, sumNumbersOrNull } from './format.js';
1
+ import { formatCompactCount, formatDurationSecondsSmart, formatElapsedMs, formatMinutesSmart, } from "../tty/format.js";
2
+ import { createThemeRenderer, resolveThemeNameFromSources, resolveTrueColor, } from "../tty/theme.js";
3
+ import { formatUSD, sumNumbersOrNull } from "./format.js";
4
4
  export function formatModelLabelForDisplay(model) {
5
5
  const trimmed = model.trim();
6
6
  if (!trimmed)
@@ -8,36 +8,36 @@ export function formatModelLabelForDisplay(model) {
8
8
  // Tricky UX: OpenRouter models routed via the OpenAI-compatible API often appear as
9
9
  // `openai/<publisher>/<model>` in the "model" field, which reads like we're using OpenAI.
10
10
  // Collapse that to `<publisher>/<model>` for display.
11
- const parts = trimmed.split('/').filter(Boolean);
12
- if (parts.length >= 3 && parts[0] === 'openai') {
13
- return `${parts[1]}/${parts.slice(2).join('/')}`;
11
+ const parts = trimmed.split("/").filter(Boolean);
12
+ if (parts.length >= 3 && parts[0] === "openai") {
13
+ return `${parts[1]}/${parts.slice(2).join("/")}`;
14
14
  }
15
15
  return trimmed;
16
16
  }
17
17
  function inferMediaKindLabelForFinishLine(extracted) {
18
- if (extracted.siteName === 'YouTube' || /youtube\.com|youtu\.be/i.test(extracted.url)) {
19
- return 'video';
18
+ if (extracted.siteName === "YouTube" || /youtube\.com|youtu\.be/i.test(extracted.url)) {
19
+ return "video";
20
20
  }
21
21
  if (extracted.isVideoOnly || extracted.video) {
22
- return 'video';
22
+ return "video";
23
23
  }
24
24
  // For everything else with a transcript, default to audio. This covers podcasts and direct audio files.
25
- const hasTranscript = typeof extracted.transcriptCharacters === 'number' && extracted.transcriptCharacters > 0;
25
+ const hasTranscript = typeof extracted.transcriptCharacters === "number" && extracted.transcriptCharacters > 0;
26
26
  if (!hasTranscript)
27
27
  return null;
28
- return 'audio';
28
+ return "audio";
29
29
  }
30
30
  function buildCompactTranscriptPart(extracted) {
31
- const isYouTube = extracted.siteName === 'YouTube' || /youtube\.com|youtu\.be/i.test(extracted.url);
31
+ const isYouTube = extracted.siteName === "YouTube" || /youtube\.com|youtu\.be/i.test(extracted.url);
32
32
  if (!isYouTube && !extracted.transcriptCharacters)
33
33
  return null;
34
34
  const transcriptChars = extracted.transcriptCharacters;
35
- if (typeof transcriptChars !== 'number' || transcriptChars <= 0)
35
+ if (typeof transcriptChars !== "number" || transcriptChars <= 0)
36
36
  return null;
37
37
  const wordEstimate = Math.max(0, Math.round(transcriptChars / 6));
38
38
  const transcriptWords = extracted.transcriptWordCount ?? wordEstimate;
39
39
  const minutesEstimate = Math.max(0.1, transcriptWords / 160);
40
- const exactDurationSeconds = typeof extracted.mediaDurationSeconds === 'number' && extracted.mediaDurationSeconds > 0
40
+ const exactDurationSeconds = typeof extracted.mediaDurationSeconds === "number" && extracted.mediaDurationSeconds > 0
41
41
  ? extracted.mediaDurationSeconds
42
42
  : null;
43
43
  const duration = exactDurationSeconds != null
@@ -47,29 +47,29 @@ function buildCompactTranscriptPart(extracted) {
47
47
  const mediaKind = inferMediaKindLabelForFinishLine(extracted);
48
48
  const kindLabel = (() => {
49
49
  if (isYouTube)
50
- return 'YouTube';
51
- if (mediaKind === 'audio')
52
- return 'podcast';
53
- if (mediaKind === 'video')
54
- return 'video';
50
+ return "YouTube";
51
+ if (mediaKind === "audio")
52
+ return "podcast";
53
+ if (mediaKind === "video")
54
+ return "video";
55
55
  return null;
56
56
  })();
57
57
  return kindLabel ? `${duration} ${kindLabel} · ${wordLabel}` : `${duration} · ${wordLabel}`;
58
58
  }
59
59
  function buildDetailedLengthPartsForExtracted(extracted) {
60
60
  const parts = [];
61
- const isYouTube = extracted.siteName === 'YouTube' || /youtube\.com|youtu\.be/i.test(extracted.url);
61
+ const isYouTube = extracted.siteName === "YouTube" || /youtube\.com|youtu\.be/i.test(extracted.url);
62
62
  if (!isYouTube && !extracted.transcriptCharacters)
63
63
  return parts;
64
64
  const transcriptChars = extracted.transcriptCharacters;
65
- const shouldOmitInput = typeof transcriptChars === 'number' &&
65
+ const shouldOmitInput = typeof transcriptChars === "number" &&
66
66
  transcriptChars > 0 &&
67
67
  extracted.totalCharacters > 0 &&
68
68
  transcriptChars / extracted.totalCharacters >= 0.95;
69
69
  if (!shouldOmitInput) {
70
70
  parts.push(`input=${formatCompactCount(extracted.totalCharacters)} chars (~${formatCompactCount(extracted.wordCount)} words)`);
71
71
  }
72
- if (typeof extracted.transcriptCharacters === 'number' && extracted.transcriptCharacters > 0) {
72
+ if (typeof extracted.transcriptCharacters === "number" && extracted.transcriptCharacters > 0) {
73
73
  // Transcript stats:
74
74
  // - `transcriptWordCount`: exact-ish (derived from transcript text after truncation budgeting)
75
75
  // - `mediaDurationSeconds`: best-effort, sourced from provider metadata (e.g. RSS itunes:duration)
@@ -80,24 +80,24 @@ function buildDetailedLengthPartsForExtracted(extracted) {
80
80
  `~${formatCompactCount(transcriptWords)} words`,
81
81
  `${formatCompactCount(extracted.transcriptCharacters)} chars`,
82
82
  ];
83
- const durationPart = typeof extracted.mediaDurationSeconds === 'number' && extracted.mediaDurationSeconds > 0
83
+ const durationPart = typeof extracted.mediaDurationSeconds === "number" && extracted.mediaDurationSeconds > 0
84
84
  ? formatDurationSecondsSmart(extracted.mediaDurationSeconds)
85
85
  : formatMinutesSmart(minutesEstimate);
86
- parts.push(`transcript=${durationPart} (${details.join(' · ')})`);
86
+ parts.push(`transcript=${durationPart} (${details.join(" · ")})`);
87
87
  }
88
- const hasTranscript = typeof extracted.transcriptCharacters === 'number' && extracted.transcriptCharacters > 0;
88
+ const hasTranscript = typeof extracted.transcriptCharacters === "number" && extracted.transcriptCharacters > 0;
89
89
  if (hasTranscript && extracted.transcriptSource) {
90
- const providerSuffix = extracted.transcriptSource === 'whisper' &&
90
+ const providerSuffix = extracted.transcriptSource === "whisper" &&
91
91
  extracted.transcriptionProvider &&
92
92
  extracted.transcriptionProvider.trim().length > 0
93
93
  ? `/${extracted.transcriptionProvider.trim()}`
94
- : '';
94
+ : "";
95
95
  const cacheStatus = extracted.diagnostics?.transcript?.cacheStatus;
96
- const cachePart = typeof cacheStatus === 'string' && cacheStatus !== 'unknown' ? cacheStatus : null;
96
+ const cachePart = typeof cacheStatus === "string" && cacheStatus !== "unknown" ? cacheStatus : null;
97
97
  const txParts = [`tx=${extracted.transcriptSource}${providerSuffix}`];
98
98
  if (cachePart)
99
99
  txParts.push(`cache=${cachePart}`);
100
- parts.push(txParts.join(' '));
100
+ parts.push(txParts.join(" "));
101
101
  }
102
102
  return parts;
103
103
  }
@@ -131,7 +131,7 @@ export function writeFinishLine({ stderr, elapsedMs, elapsedLabel, label, model,
131
131
  detailedExtraParts: extraParts,
132
132
  });
133
133
  const text = detailed ? detailedText : compact;
134
- stderr.write('\n');
134
+ stderr.write("\n");
135
135
  stderr.write(`${theme ? theme.success(text.line) : text.line}\n`);
136
136
  if (detailed && text.details) {
137
137
  stderr.write(`${theme ? theme.dim(text.details) : text.details}\n`);
@@ -173,13 +173,13 @@ export function buildFinishLineVariants({ elapsedMs, elapsedLabel, label, model,
173
173
  return { compact, detailed };
174
174
  }
175
175
  export function formatFinishLineText(model, detailed) {
176
- const line = model.lineParts.join(' · ');
176
+ const line = model.lineParts.join(" · ");
177
177
  if (!detailed || model.detailParts.length === 0)
178
178
  return { line, details: null };
179
- return { line, details: model.detailParts.join(' | ') };
179
+ return { line, details: model.detailParts.join(" | ") };
180
180
  }
181
181
  export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, report, costUsd, extraParts, }) {
182
- const resolvedElapsedLabel = typeof elapsedLabel === 'string' && elapsedLabel.trim().length > 0
182
+ const resolvedElapsedLabel = typeof elapsedLabel === "string" && elapsedLabel.trim().length > 0
183
183
  ? elapsedLabel
184
184
  : formatElapsedMs(elapsedMs);
185
185
  const promptTokens = sumNumbersOrNull(report.llm.map((row) => row.promptTokens));
@@ -187,13 +187,13 @@ export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, re
187
187
  const totalTokens = sumNumbersOrNull(report.llm.map((row) => row.totalTokens));
188
188
  const hasAnyTokens = promptTokens !== null || completionTokens !== null || totalTokens !== null;
189
189
  const tokensPart = hasAnyTokens
190
- ? `↑${promptTokens != null ? formatCompactCount(promptTokens) : 'unknown'} ↓${completionTokens != null ? formatCompactCount(completionTokens) : 'unknown'} Δ${totalTokens != null ? formatCompactCount(totalTokens) : 'unknown'}`
190
+ ? `↑${promptTokens != null ? formatCompactCount(promptTokens) : "unknown"} ↓${completionTokens != null ? formatCompactCount(completionTokens) : "unknown"} Δ${totalTokens != null ? formatCompactCount(totalTokens) : "unknown"}`
191
191
  : null;
192
192
  const compactTranscript = extraParts
193
- ? (extraParts.find((part) => part.startsWith('txc=')) ?? null)
193
+ ? (extraParts.find((part) => part.startsWith("txc=")) ?? null)
194
194
  : null;
195
- const compactTranscriptLabel = compactTranscript?.startsWith('txc=')
196
- ? compactTranscript.slice('txc='.length)
195
+ const compactTranscriptLabel = compactTranscript?.startsWith("txc=")
196
+ ? compactTranscript.slice("txc=".length)
197
197
  : null;
198
198
  const stripWordPrefix = (input) => {
199
199
  // Examples:
@@ -208,12 +208,12 @@ export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, re
208
208
  const effectiveLabel = (() => {
209
209
  if (!label)
210
210
  return null;
211
- if (!compactTranscriptLabel?.toLowerCase().includes('words'))
211
+ if (!compactTranscriptLabel?.toLowerCase().includes("words"))
212
212
  return label;
213
213
  const txLower = compactTranscriptLabel.toLowerCase();
214
- if (txLower.includes('podcast'))
214
+ if (txLower.includes("podcast"))
215
215
  return null;
216
- if (txLower.includes('youtube') && /youtube|youtu\.be/i.test(label))
216
+ if (txLower.includes("youtube") && /youtube|youtu\.be/i.test(label))
217
217
  return null;
218
218
  const stripped = stripWordPrefix(label);
219
219
  if (stripped === null)
@@ -236,13 +236,13 @@ export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, re
236
236
  model ? formatModelLabelForDisplay(model) : null,
237
237
  tokensPart,
238
238
  ];
239
- const lineParts = summaryParts.filter((part) => typeof part === 'string');
239
+ const lineParts = summaryParts.filter((part) => typeof part === "string");
240
240
  const totalCalls = report.llm.reduce((sum, row) => sum + row.calls, 0);
241
- const lenParts = filteredExtraParts?.filter((part) => part.startsWith('input=') || part.startsWith('transcript=')) ?? [];
242
- const miscParts = filteredExtraParts?.filter((part) => !part.startsWith('input=') && !part.startsWith('transcript=')) ?? [];
241
+ const lenParts = filteredExtraParts?.filter((part) => part.startsWith("input=") || part.startsWith("transcript=")) ?? [];
242
+ const miscParts = filteredExtraParts?.filter((part) => !part.startsWith("input=") && !part.startsWith("transcript=")) ?? [];
243
243
  const line2Segments = [];
244
244
  if (lenParts.length > 0) {
245
- line2Segments.push(`len ${lenParts.join(' ')}`);
245
+ line2Segments.push(`len ${lenParts.join(" ")}`);
246
246
  }
247
247
  if (totalCalls > 1)
248
248
  line2Segments.push(`calls=${formatCompactCount(totalCalls)}`);
@@ -254,7 +254,7 @@ export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, re
254
254
  if (report.services.apify.requests > 0) {
255
255
  svcParts.push(`apify=${formatCompactCount(report.services.apify.requests)}`);
256
256
  }
257
- line2Segments.push(`svc ${svcParts.join(' ')}`);
257
+ line2Segments.push(`svc ${svcParts.join(" ")}`);
258
258
  }
259
259
  if (miscParts.length > 0) {
260
260
  line2Segments.push(...miscParts);
@@ -262,73 +262,73 @@ export function buildFinishLineModel({ elapsedMs, elapsedLabel, label, model, re
262
262
  return { lineParts, detailParts: line2Segments };
263
263
  }
264
264
  export function buildExtractFinishLabel(args) {
265
- const base = args.format === 'markdown' ? 'markdown' : 'text';
265
+ const base = args.format === "markdown" ? "markdown" : "text";
266
266
  const transcriptProvided = Boolean(args.extracted.diagnostics.transcript?.textProvided);
267
267
  if (transcriptProvided) {
268
268
  const provider = args.extracted.diagnostics.transcript?.provider;
269
269
  return provider ? `${base} via transcript/${provider}` : `${base} via transcript`;
270
270
  }
271
- if (args.format === 'markdown') {
272
- const strategy = String(args.extracted.diagnostics.strategy ?? '');
273
- const firecrawlUsed = strategy === 'firecrawl' || Boolean(args.extracted.diagnostics.firecrawl?.used);
271
+ if (args.format === "markdown") {
272
+ const strategy = String(args.extracted.diagnostics.strategy ?? "");
273
+ const firecrawlUsed = strategy === "firecrawl" || Boolean(args.extracted.diagnostics.firecrawl?.used);
274
274
  if (firecrawlUsed)
275
275
  return `${base} via firecrawl`;
276
- if (strategy === 'html' && args.markdownMode === 'readability')
276
+ if (strategy === "html" && args.markdownMode === "readability")
277
277
  return `${base} via readability`;
278
278
  const mdUsed = Boolean(args.extracted.diagnostics.markdown?.used);
279
279
  const mdProvider = args.extracted.diagnostics.markdown.provider;
280
280
  const mdNotes = args.extracted.diagnostics.markdown.notes ?? null;
281
- if (mdUsed && mdProvider === 'firecrawl') {
281
+ if (mdUsed && mdProvider === "firecrawl") {
282
282
  return `${base} via firecrawl`;
283
283
  }
284
- if (mdUsed && mdNotes && mdNotes.toLowerCase().includes('readability html used')) {
284
+ if (mdUsed && mdNotes && mdNotes.toLowerCase().includes("readability html used")) {
285
285
  return `${base} via readability`;
286
286
  }
287
287
  if (mdUsed) {
288
- if (args.markdownMode === 'readability')
288
+ if (args.markdownMode === "readability")
289
289
  return `${base} via readability`;
290
290
  if (args.hasMarkdownLlmCall)
291
291
  return `${base} via llm`;
292
292
  return `${base} via markitdown`;
293
293
  }
294
294
  }
295
- const strategy = String(args.extracted.diagnostics.strategy ?? '');
296
- if (strategy === 'firecrawl' || args.extracted.diagnostics.firecrawl?.used) {
295
+ const strategy = String(args.extracted.diagnostics.strategy ?? "");
296
+ if (strategy === "firecrawl" || args.extracted.diagnostics.firecrawl?.used) {
297
297
  return `${base} via firecrawl`;
298
298
  }
299
- if (strategy === 'bird')
299
+ if (strategy === "bird")
300
300
  return `${base} via bird`;
301
- if (strategy === 'nitter')
301
+ if (strategy === "nitter")
302
302
  return `${base} via nitter`;
303
303
  // Default: avoid noisy "via html"
304
304
  return base;
305
305
  }
306
306
  export function buildSummaryFinishLabel(args) {
307
- const strategy = String(args.extracted.diagnostics.strategy ?? '');
307
+ const strategy = String(args.extracted.diagnostics.strategy ?? "");
308
308
  const sources = [];
309
- if (strategy === 'bird')
310
- sources.push('bird');
311
- if (strategy === 'nitter')
312
- sources.push('nitter');
313
- if (strategy === 'firecrawl' || args.extracted.diagnostics.firecrawl?.used) {
314
- sources.push('firecrawl');
309
+ if (strategy === "bird")
310
+ sources.push("bird");
311
+ if (strategy === "nitter")
312
+ sources.push("nitter");
313
+ if (strategy === "firecrawl" || args.extracted.diagnostics.firecrawl?.used) {
314
+ sources.push("firecrawl");
315
315
  }
316
316
  const transcriptProvided = Boolean(args.extracted.diagnostics.transcript?.textProvided);
317
- const words = typeof args.extracted.wordCount === 'number' && Number.isFinite(args.extracted.wordCount)
317
+ const words = typeof args.extracted.wordCount === "number" && Number.isFinite(args.extracted.wordCount)
318
318
  ? args.extracted.wordCount
319
319
  : 0;
320
320
  const wordLabel = words > 0 ? `${formatCompactCount(words)} words` : null;
321
321
  if (transcriptProvided) {
322
322
  if (sources.length === 0)
323
323
  return null;
324
- return `via ${sources.join('+')}`;
324
+ return `via ${sources.join("+")}`;
325
325
  }
326
326
  if (sources.length === 0 && !wordLabel)
327
327
  return null;
328
328
  if (wordLabel && sources.length > 0)
329
- return `${wordLabel} via ${sources.join('+')}`;
329
+ return `${wordLabel} via ${sources.join("+")}`;
330
330
  if (wordLabel)
331
331
  return wordLabel;
332
- return `via ${sources.join('+')}`;
332
+ return `via ${sources.join("+")}`;
333
333
  }
334
334
  //# sourceMappingURL=finish-line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"finish-line.js","sourceRoot":"","sources":["../../../src/run/finish-line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finish-line.js","sourceRoot":"","sources":["../../../src/run/finish-line.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { convertToMarkdownWithMarkitdown } from '../../../markitdown.js';
2
- import { formatBytes } from '../../../tty/format.js';
3
- import { getFileBytesFromAttachment, getTextContentFromAttachment, shouldMarkitdownConvertMediaType, } from '../../attachments.js';
4
- import { MAX_TEXT_BYTES_DEFAULT } from '../../constants.js';
5
- import { hasUvxCli } from '../../env.js';
6
- import { withUvxTip } from '../../tips.js';
1
+ import { convertToMarkdownWithMarkitdown } from "../../../markitdown.js";
2
+ import { formatBytes } from "../../../tty/format.js";
3
+ import { getFileBytesFromAttachment, getTextContentFromAttachment, shouldMarkitdownConvertMediaType, } from "../../attachments.js";
4
+ import { MAX_TEXT_BYTES_DEFAULT } from "../../constants.js";
5
+ import { hasUvxCli } from "../../env.js";
6
+ import { withUvxTip } from "../../tips.js";
7
7
  const baseDiagnostics = {
8
- strategy: 'html',
8
+ strategy: "html",
9
9
  firecrawl: { used: false },
10
10
  markdown: { used: false, provider: null },
11
11
  transcript: { textProvided: false, provider: null },
@@ -21,19 +21,19 @@ export async function extractAssetContent({ ctx, attachment, }) {
21
21
  diagnostics: baseDiagnostics,
22
22
  };
23
23
  }
24
- if (attachment.kind === 'image') {
25
- const name = attachment.filename ?? 'image';
24
+ if (attachment.kind === "image") {
25
+ const name = attachment.filename ?? "image";
26
26
  throw new Error(`No extractable text found in ${name} (${attachment.mediaType}).`);
27
27
  }
28
28
  const fileBytes = getFileBytesFromAttachment(attachment);
29
29
  if (!fileBytes) {
30
- throw new Error('Internal error: missing file bytes for extraction');
30
+ throw new Error("Internal error: missing file bytes for extraction");
31
31
  }
32
- if (ctx.preprocessMode === 'off') {
32
+ if (ctx.preprocessMode === "off") {
33
33
  throw new Error(`This build does not support extracting binary files (${attachment.mediaType}). Enable preprocessing (e.g. --preprocess auto) and install uvx/markitdown.`);
34
34
  }
35
35
  if (!shouldMarkitdownConvertMediaType(attachment.mediaType)) {
36
- const name = attachment.filename ?? 'file';
36
+ const name = attachment.filename ?? "file";
37
37
  throw new Error(`Unsupported file type: ${name} (${attachment.mediaType})\n` +
38
38
  `This build can only extract text-like files. Convert this file to text first.`);
39
39
  }
@@ -56,14 +56,14 @@ export async function extractAssetContent({ ctx, attachment, }) {
56
56
  const message = error instanceof Error ? error.message : String(error);
57
57
  throw new Error(`Failed to preprocess ${attachment.mediaType} with markitdown: ${message}.`);
58
58
  }
59
- if (Buffer.byteLength(markdown, 'utf8') > MAX_TEXT_BYTES_DEFAULT) {
60
- throw new Error(`Preprocessed Markdown too large (${formatBytes(Buffer.byteLength(markdown, 'utf8'))}). Limit is ${formatBytes(MAX_TEXT_BYTES_DEFAULT)}.`);
59
+ if (Buffer.byteLength(markdown, "utf8") > MAX_TEXT_BYTES_DEFAULT) {
60
+ throw new Error(`Preprocessed Markdown too large (${formatBytes(Buffer.byteLength(markdown, "utf8"))}). Limit is ${formatBytes(MAX_TEXT_BYTES_DEFAULT)}.`);
61
61
  }
62
62
  return {
63
63
  content: markdown,
64
64
  diagnostics: {
65
65
  ...baseDiagnostics,
66
- markdown: { used: true, provider: null, notes: 'markitdown' },
66
+ markdown: { used: true, provider: null, notes: "markitdown" },
67
67
  },
68
68
  };
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/extract.ts"],"names":[],"mappings":"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"}