@steipete/summarize 0.9.0 → 0.11.0

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 (398) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/LICENSE +1 -1
  3. package/README.md +391 -183
  4. package/dist/cli.js +1 -1
  5. package/dist/esm/cache.js +134 -64
  6. package/dist/esm/cache.js.map +1 -1
  7. package/dist/esm/cli-main.js +27 -27
  8. package/dist/esm/cli-main.js.map +1 -1
  9. package/dist/esm/cli.js +2 -2
  10. package/dist/esm/cli.js.map +1 -1
  11. package/dist/esm/config.js +396 -126
  12. package/dist/esm/config.js.map +1 -1
  13. package/dist/esm/content/asset.js +53 -50
  14. package/dist/esm/content/asset.js.map +1 -1
  15. package/dist/esm/content/index.js +1 -1
  16. package/dist/esm/content/index.js.map +1 -1
  17. package/dist/esm/costs.js +1 -1
  18. package/dist/esm/costs.js.map +1 -1
  19. package/dist/esm/daemon/agent.js +548 -0
  20. package/dist/esm/daemon/agent.js.map +1 -0
  21. package/dist/esm/daemon/auto-mode.js +3 -3
  22. package/dist/esm/daemon/auto-mode.js.map +1 -1
  23. package/dist/esm/daemon/chat.js +88 -178
  24. package/dist/esm/daemon/chat.js.map +1 -1
  25. package/dist/esm/daemon/cli-entrypoint.js +72 -0
  26. package/dist/esm/daemon/cli-entrypoint.js.map +1 -0
  27. package/dist/esm/daemon/cli.js +91 -83
  28. package/dist/esm/daemon/cli.js.map +1 -1
  29. package/dist/esm/daemon/config.js +15 -15
  30. package/dist/esm/daemon/config.js.map +1 -1
  31. package/dist/esm/daemon/constants.js +6 -6
  32. package/dist/esm/daemon/constants.js.map +1 -1
  33. package/dist/esm/daemon/env-merge.js.map +1 -1
  34. package/dist/esm/daemon/env-snapshot.js +36 -28
  35. package/dist/esm/daemon/env-snapshot.js.map +1 -1
  36. package/dist/esm/daemon/flow-context.js +86 -32
  37. package/dist/esm/daemon/flow-context.js.map +1 -1
  38. package/dist/esm/daemon/launchd.js +119 -47
  39. package/dist/esm/daemon/launchd.js.map +1 -1
  40. package/dist/esm/daemon/meta.js +5 -5
  41. package/dist/esm/daemon/meta.js.map +1 -1
  42. package/dist/esm/daemon/models.js +54 -31
  43. package/dist/esm/daemon/models.js.map +1 -1
  44. package/dist/esm/daemon/process-registry.js +206 -0
  45. package/dist/esm/daemon/process-registry.js.map +1 -0
  46. package/dist/esm/daemon/schtasks.js +96 -32
  47. package/dist/esm/daemon/schtasks.js.map +1 -1
  48. package/dist/esm/daemon/server.js +832 -158
  49. package/dist/esm/daemon/server.js.map +1 -1
  50. package/dist/esm/daemon/summarize-progress.js +11 -11
  51. package/dist/esm/daemon/summarize-progress.js.map +1 -1
  52. package/dist/esm/daemon/summarize.js +61 -32
  53. package/dist/esm/daemon/summarize.js.map +1 -1
  54. package/dist/esm/daemon/systemd.js +96 -35
  55. package/dist/esm/daemon/systemd.js.map +1 -1
  56. package/dist/esm/firecrawl.js +12 -12
  57. package/dist/esm/firecrawl.js.map +1 -1
  58. package/dist/esm/flags.js +55 -31
  59. package/dist/esm/flags.js.map +1 -1
  60. package/dist/esm/index.js +3 -3
  61. package/dist/esm/index.js.map +1 -1
  62. package/dist/esm/language.js +1 -1
  63. package/dist/esm/language.js.map +1 -1
  64. package/dist/esm/llm/cli.js +128 -64
  65. package/dist/esm/llm/cli.js.map +1 -1
  66. package/dist/esm/llm/errors.js +1 -1
  67. package/dist/esm/llm/errors.js.map +1 -1
  68. package/dist/esm/llm/generate-text.js +107 -98
  69. package/dist/esm/llm/generate-text.js.map +1 -1
  70. package/dist/esm/llm/google-models.js +17 -17
  71. package/dist/esm/llm/google-models.js.map +1 -1
  72. package/dist/esm/llm/html-to-markdown.js +3 -3
  73. package/dist/esm/llm/html-to-markdown.js.map +1 -1
  74. package/dist/esm/llm/model-id.js +38 -16
  75. package/dist/esm/llm/model-id.js.map +1 -1
  76. package/dist/esm/llm/prompt.js +5 -5
  77. package/dist/esm/llm/prompt.js.map +1 -1
  78. package/dist/esm/llm/providers/anthropic.js +33 -33
  79. package/dist/esm/llm/providers/anthropic.js.map +1 -1
  80. package/dist/esm/llm/providers/google.js +19 -19
  81. package/dist/esm/llm/providers/google.js.map +1 -1
  82. package/dist/esm/llm/providers/models.js +30 -30
  83. package/dist/esm/llm/providers/models.js.map +1 -1
  84. package/dist/esm/llm/providers/openai.js +36 -35
  85. package/dist/esm/llm/providers/openai.js.map +1 -1
  86. package/dist/esm/llm/providers/shared.js +8 -8
  87. package/dist/esm/llm/providers/shared.js.map +1 -1
  88. package/dist/esm/llm/transcript-to-markdown.js +9 -5
  89. package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
  90. package/dist/esm/llm/usage.js +18 -18
  91. package/dist/esm/llm/usage.js.map +1 -1
  92. package/dist/esm/logging/daemon.js +21 -21
  93. package/dist/esm/logging/daemon.js.map +1 -1
  94. package/dist/esm/logging/ring-file.js +5 -5
  95. package/dist/esm/logging/ring-file.js.map +1 -1
  96. package/dist/esm/markitdown.js +21 -19
  97. package/dist/esm/markitdown.js.map +1 -1
  98. package/dist/esm/media-cache.js +251 -0
  99. package/dist/esm/media-cache.js.map +1 -0
  100. package/dist/esm/model-auto.js +175 -106
  101. package/dist/esm/model-auto.js.map +1 -1
  102. package/dist/esm/model-spec.js +52 -42
  103. package/dist/esm/model-spec.js.map +1 -1
  104. package/dist/esm/pricing/litellm.js +4 -4
  105. package/dist/esm/pricing/litellm.js.map +1 -1
  106. package/dist/esm/processes.js +2 -0
  107. package/dist/esm/processes.js.map +1 -0
  108. package/dist/esm/prompts/index.js +1 -1
  109. package/dist/esm/prompts/index.js.map +1 -1
  110. package/dist/esm/refresh-free.js +81 -81
  111. package/dist/esm/refresh-free.js.map +1 -1
  112. package/dist/esm/run/attachments.js +47 -44
  113. package/dist/esm/run/attachments.js.map +1 -1
  114. package/dist/esm/run/bird.js +125 -12
  115. package/dist/esm/run/bird.js.map +1 -1
  116. package/dist/esm/run/cache-state.js +7 -7
  117. package/dist/esm/run/cache-state.js.map +1 -1
  118. package/dist/esm/run/cli-fallback-state.js +45 -0
  119. package/dist/esm/run/cli-fallback-state.js.map +1 -0
  120. package/dist/esm/run/cli-preflight.js +40 -22
  121. package/dist/esm/run/cli-preflight.js.map +1 -1
  122. package/dist/esm/run/constants.js +12 -12
  123. package/dist/esm/run/constants.js.map +1 -1
  124. package/dist/esm/run/cookies/twitter.js +47 -47
  125. package/dist/esm/run/cookies/twitter.js.map +1 -1
  126. package/dist/esm/run/env.js +21 -15
  127. package/dist/esm/run/env.js.map +1 -1
  128. package/dist/esm/run/fetch-with-timeout.js +4 -4
  129. package/dist/esm/run/fetch-with-timeout.js.map +1 -1
  130. package/dist/esm/run/finish-line.js +78 -71
  131. package/dist/esm/run/finish-line.js.map +1 -1
  132. package/dist/esm/run/flows/asset/extract.js +70 -0
  133. package/dist/esm/run/flows/asset/extract.js.map +1 -0
  134. package/dist/esm/run/flows/asset/input.js +202 -37
  135. package/dist/esm/run/flows/asset/input.js.map +1 -1
  136. package/dist/esm/run/flows/asset/media-policy.js +3 -0
  137. package/dist/esm/run/flows/asset/media-policy.js.map +1 -0
  138. package/dist/esm/run/flows/asset/media.js +233 -0
  139. package/dist/esm/run/flows/asset/media.js.map +1 -0
  140. package/dist/esm/run/flows/asset/output.js +98 -0
  141. package/dist/esm/run/flows/asset/output.js.map +1 -0
  142. package/dist/esm/run/flows/asset/preprocess.js +79 -44
  143. package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
  144. package/dist/esm/run/flows/asset/summary.js +306 -89
  145. package/dist/esm/run/flows/asset/summary.js.map +1 -1
  146. package/dist/esm/run/flows/url/extract.js +31 -31
  147. package/dist/esm/run/flows/url/extract.js.map +1 -1
  148. package/dist/esm/run/flows/url/flow.js +388 -82
  149. package/dist/esm/run/flows/url/flow.js.map +1 -1
  150. package/dist/esm/run/flows/url/markdown.js +61 -56
  151. package/dist/esm/run/flows/url/markdown.js.map +1 -1
  152. package/dist/esm/run/flows/url/slides-output.js +487 -0
  153. package/dist/esm/run/flows/url/slides-output.js.map +1 -0
  154. package/dist/esm/run/flows/url/slides-text.js +628 -0
  155. package/dist/esm/run/flows/url/slides-text.js.map +1 -0
  156. package/dist/esm/run/flows/url/summary.js +493 -152
  157. package/dist/esm/run/flows/url/summary.js.map +1 -1
  158. package/dist/esm/run/format.js +10 -10
  159. package/dist/esm/run/format.js.map +1 -1
  160. package/dist/esm/run/help.js +179 -84
  161. package/dist/esm/run/help.js.map +1 -1
  162. package/dist/esm/run/logging.js +20 -12
  163. package/dist/esm/run/logging.js.map +1 -1
  164. package/dist/esm/run/markdown.js +12 -12
  165. package/dist/esm/run/markdown.js.map +1 -1
  166. package/dist/esm/run/media-cache-state.js +33 -0
  167. package/dist/esm/run/media-cache-state.js.map +1 -0
  168. package/dist/esm/run/model-attempts.js.map +1 -1
  169. package/dist/esm/run/openrouter.js +11 -11
  170. package/dist/esm/run/openrouter.js.map +1 -1
  171. package/dist/esm/run/progress.js +19 -1
  172. package/dist/esm/run/progress.js.map +1 -1
  173. package/dist/esm/run/run-config.js +16 -16
  174. package/dist/esm/run/run-config.js.map +1 -1
  175. package/dist/esm/run/run-context.js +2 -2
  176. package/dist/esm/run/run-context.js.map +1 -1
  177. package/dist/esm/run/run-env.js +55 -54
  178. package/dist/esm/run/run-env.js.map +1 -1
  179. package/dist/esm/run/run-input.js +3 -3
  180. package/dist/esm/run/run-input.js.map +1 -1
  181. package/dist/esm/run/run-metrics.js +16 -16
  182. package/dist/esm/run/run-metrics.js.map +1 -1
  183. package/dist/esm/run/run-models.js +28 -23
  184. package/dist/esm/run/run-models.js.map +1 -1
  185. package/dist/esm/run/run-output.js +3 -3
  186. package/dist/esm/run/run-output.js.map +1 -1
  187. package/dist/esm/run/run-settings.js +108 -21
  188. package/dist/esm/run/run-settings.js.map +1 -1
  189. package/dist/esm/run/run-stream.js +4 -4
  190. package/dist/esm/run/run-stream.js.map +1 -1
  191. package/dist/esm/run/runner.js +327 -100
  192. package/dist/esm/run/runner.js.map +1 -1
  193. package/dist/esm/run/slides-cli.js +226 -0
  194. package/dist/esm/run/slides-cli.js.map +1 -0
  195. package/dist/esm/run/slides-render.js +163 -0
  196. package/dist/esm/run/slides-render.js.map +1 -0
  197. package/dist/esm/run/stdin-temp-file.js +77 -0
  198. package/dist/esm/run/stdin-temp-file.js.map +1 -0
  199. package/dist/esm/run/stream-output.js +17 -10
  200. package/dist/esm/run/stream-output.js.map +1 -1
  201. package/dist/esm/run/streaming.js +16 -16
  202. package/dist/esm/run/streaming.js.map +1 -1
  203. package/dist/esm/run/summary-engine.js +89 -57
  204. package/dist/esm/run/summary-engine.js.map +1 -1
  205. package/dist/esm/run/summary-llm.js +3 -3
  206. package/dist/esm/run/summary-llm.js.map +1 -1
  207. package/dist/esm/run/terminal.js +4 -4
  208. package/dist/esm/run/terminal.js.map +1 -1
  209. package/dist/esm/run/tips.js +2 -2
  210. package/dist/esm/run/tips.js.map +1 -1
  211. package/dist/esm/run/transcriber-cli.js +148 -0
  212. package/dist/esm/run/transcriber-cli.js.map +1 -0
  213. package/dist/esm/run.js +1 -1
  214. package/dist/esm/run.js.map +1 -1
  215. package/dist/esm/shared/contracts.js +1 -1
  216. package/dist/esm/shared/contracts.js.map +1 -1
  217. package/dist/esm/shared/sse-events.js +16 -12
  218. package/dist/esm/shared/sse-events.js.map +1 -1
  219. package/dist/esm/shared/streaming-merge.js +3 -3
  220. package/dist/esm/shared/streaming-merge.js.map +1 -1
  221. package/dist/esm/slides/extract.js +1951 -0
  222. package/dist/esm/slides/extract.js.map +1 -0
  223. package/dist/esm/slides/index.js +4 -0
  224. package/dist/esm/slides/index.js.map +1 -0
  225. package/dist/esm/slides/settings.js +73 -0
  226. package/dist/esm/slides/settings.js.map +1 -0
  227. package/dist/esm/slides/store.js +111 -0
  228. package/dist/esm/slides/store.js.map +1 -0
  229. package/dist/esm/slides/types.js +2 -0
  230. package/dist/esm/slides/types.js.map +1 -0
  231. package/dist/esm/tty/format.js +13 -13
  232. package/dist/esm/tty/format.js.map +1 -1
  233. package/dist/esm/tty/osc-progress.js +22 -2
  234. package/dist/esm/tty/osc-progress.js.map +1 -1
  235. package/dist/esm/tty/progress/fetch-html.js +20 -16
  236. package/dist/esm/tty/progress/fetch-html.js.map +1 -1
  237. package/dist/esm/tty/progress/transcript.js +127 -68
  238. package/dist/esm/tty/progress/transcript.js.map +1 -1
  239. package/dist/esm/tty/spinner.js +21 -10
  240. package/dist/esm/tty/spinner.js.map +1 -1
  241. package/dist/esm/tty/theme.js +189 -0
  242. package/dist/esm/tty/theme.js.map +1 -0
  243. package/dist/esm/tty/website-progress.js +38 -34
  244. package/dist/esm/tty/website-progress.js.map +1 -1
  245. package/dist/esm/version.js +29 -29
  246. package/dist/esm/version.js.map +1 -1
  247. package/dist/types/cache.d.ts +19 -7
  248. package/dist/types/config.d.ts +71 -6
  249. package/dist/types/content/asset.d.ts +8 -6
  250. package/dist/types/content/index.d.ts +1 -1
  251. package/dist/types/costs.d.ts +3 -3
  252. package/dist/types/daemon/agent.d.ts +25 -0
  253. package/dist/types/daemon/auto-mode.d.ts +3 -3
  254. package/dist/types/daemon/chat.d.ts +10 -18
  255. package/dist/types/daemon/cli-entrypoint.d.ts +2 -0
  256. package/dist/types/daemon/config.d.ts +2 -2
  257. package/dist/types/daemon/env-merge.d.ts +1 -1
  258. package/dist/types/daemon/env-snapshot.d.ts +1 -1
  259. package/dist/types/daemon/flow-context.d.ts +24 -4
  260. package/dist/types/daemon/launchd.d.ts +12 -0
  261. package/dist/types/daemon/models.d.ts +6 -2
  262. package/dist/types/daemon/process-registry.d.ts +73 -0
  263. package/dist/types/daemon/schtasks.d.ts +4 -0
  264. package/dist/types/daemon/server.d.ts +2 -2
  265. package/dist/types/daemon/summarize-progress.d.ts +1 -1
  266. package/dist/types/daemon/summarize.d.ts +38 -7
  267. package/dist/types/daemon/systemd.d.ts +4 -0
  268. package/dist/types/firecrawl.d.ts +1 -1
  269. package/dist/types/flags.d.ts +12 -11
  270. package/dist/types/index.d.ts +4 -4
  271. package/dist/types/language.d.ts +1 -1
  272. package/dist/types/llm/attachments.d.ts +1 -1
  273. package/dist/types/llm/cli.d.ts +3 -3
  274. package/dist/types/llm/generate-text.d.ts +7 -7
  275. package/dist/types/llm/html-to-markdown.d.ts +3 -3
  276. package/dist/types/llm/model-id.d.ts +1 -1
  277. package/dist/types/llm/prompt.d.ts +2 -2
  278. package/dist/types/llm/providers/anthropic.d.ts +3 -3
  279. package/dist/types/llm/providers/google.d.ts +3 -3
  280. package/dist/types/llm/providers/models.d.ts +2 -2
  281. package/dist/types/llm/providers/openai.d.ts +4 -4
  282. package/dist/types/llm/providers/shared.d.ts +2 -2
  283. package/dist/types/llm/transcript-to-markdown.d.ts +4 -2
  284. package/dist/types/llm/usage.d.ts +1 -1
  285. package/dist/types/logging/daemon.d.ts +4 -4
  286. package/dist/types/markitdown.d.ts +1 -1
  287. package/dist/types/media-cache.d.ts +22 -0
  288. package/dist/types/model-auto.d.ts +14 -4
  289. package/dist/types/model-spec.d.ts +10 -10
  290. package/dist/types/pricing/litellm.d.ts +1 -1
  291. package/dist/types/processes.d.ts +1 -0
  292. package/dist/types/prompts/index.d.ts +1 -1
  293. package/dist/types/run/attachments.d.ts +7 -7
  294. package/dist/types/run/bird.d.ts +7 -0
  295. package/dist/types/run/cache-state.d.ts +2 -2
  296. package/dist/types/run/cli-fallback-state.d.ts +6 -0
  297. package/dist/types/run/constants.d.ts +1 -1
  298. package/dist/types/run/cookies/twitter.d.ts +1 -1
  299. package/dist/types/run/env.d.ts +1 -1
  300. package/dist/types/run/finish-line.d.ts +7 -6
  301. package/dist/types/run/flows/asset/extract.d.ts +18 -0
  302. package/dist/types/run/flows/asset/input.d.ts +19 -3
  303. package/dist/types/run/flows/asset/media-policy.d.ts +2 -0
  304. package/dist/types/run/flows/asset/media.d.ts +21 -0
  305. package/dist/types/run/flows/asset/output.d.ts +42 -0
  306. package/dist/types/run/flows/asset/preprocess.d.ts +23 -17
  307. package/dist/types/run/flows/asset/summary.d.ts +24 -16
  308. package/dist/types/run/flows/url/extract.d.ts +3 -2
  309. package/dist/types/run/flows/url/flow.d.ts +1 -1
  310. package/dist/types/run/flows/url/markdown.d.ts +6 -6
  311. package/dist/types/run/flows/url/slides-output.d.ts +66 -0
  312. package/dist/types/run/flows/url/slides-text.d.ts +87 -0
  313. package/dist/types/run/flows/url/summary.d.ts +18 -10
  314. package/dist/types/run/flows/url/types.d.ts +52 -21
  315. package/dist/types/run/format.d.ts +3 -3
  316. package/dist/types/run/help.d.ts +4 -1
  317. package/dist/types/run/logging.d.ts +3 -2
  318. package/dist/types/run/media-cache-state.d.ts +7 -0
  319. package/dist/types/run/model-attempts.d.ts +1 -1
  320. package/dist/types/run/progress.d.ts +2 -1
  321. package/dist/types/run/run-config.d.ts +4 -4
  322. package/dist/types/run/run-context.d.ts +3 -1
  323. package/dist/types/run/run-env.d.ts +3 -1
  324. package/dist/types/run/run-input.d.ts +2 -2
  325. package/dist/types/run/run-metrics.d.ts +3 -3
  326. package/dist/types/run/run-models.d.ts +3 -2
  327. package/dist/types/run/run-output.d.ts +1 -1
  328. package/dist/types/run/run-settings.d.ts +20 -5
  329. package/dist/types/run/run-stream.d.ts +2 -2
  330. package/dist/types/run/runner.d.ts +3 -2
  331. package/dist/types/run/slides-cli.d.ts +9 -0
  332. package/dist/types/run/slides-render.d.ts +30 -0
  333. package/dist/types/run/stdin-temp-file.d.ts +9 -0
  334. package/dist/types/run/stream-output.d.ts +3 -2
  335. package/dist/types/run/streaming.d.ts +4 -4
  336. package/dist/types/run/summary-engine.d.ts +22 -12
  337. package/dist/types/run/summary-llm.d.ts +5 -5
  338. package/dist/types/run/transcriber-cli.d.ts +8 -0
  339. package/dist/types/run/types.d.ts +4 -4
  340. package/dist/types/run.d.ts +1 -1
  341. package/dist/types/shared/contracts.d.ts +2 -2
  342. package/dist/types/shared/sse-events.d.ts +26 -6
  343. package/dist/types/slides/extract.d.ts +43 -0
  344. package/dist/types/slides/index.d.ts +5 -0
  345. package/dist/types/slides/settings.d.ts +20 -0
  346. package/dist/types/slides/store.d.ts +15 -0
  347. package/dist/types/slides/types.d.ts +40 -0
  348. package/dist/types/tty/osc-progress.d.ts +5 -5
  349. package/dist/types/tty/progress/fetch-html.d.ts +5 -3
  350. package/dist/types/tty/progress/transcript.d.ts +5 -3
  351. package/dist/types/tty/spinner.d.ts +3 -1
  352. package/dist/types/tty/theme.d.ts +44 -0
  353. package/dist/types/tty/website-progress.d.ts +5 -3
  354. package/dist/types/version.d.ts +1 -1
  355. package/docs/README.md +1 -1
  356. package/docs/_config.yml +26 -0
  357. package/docs/_layouts/default.html +60 -0
  358. package/docs/agent.md +367 -0
  359. package/docs/assets/site.css +748 -0
  360. package/docs/assets/site.js +72 -0
  361. package/docs/assets/summarize-cli.png +0 -0
  362. package/docs/assets/summarize-extension.png +0 -0
  363. package/docs/assets/youtube-slides.png +0 -0
  364. package/docs/cache.md +29 -3
  365. package/docs/chrome-extension.md +72 -16
  366. package/docs/cli.md +59 -13
  367. package/docs/config.md +109 -12
  368. package/docs/extract-only.md +10 -0
  369. package/docs/index.html +224 -0
  370. package/docs/index.md +25 -0
  371. package/docs/llm.md +18 -5
  372. package/docs/manual-tests.md +2 -0
  373. package/docs/media.md +6 -2
  374. package/docs/model-auto.md +3 -2
  375. package/docs/nvidia-onnx-transcription.md +55 -0
  376. package/docs/openai.md +1 -1
  377. package/docs/releasing.md +3 -0
  378. package/docs/site/404.html +4 -1
  379. package/docs/site/assets/site.css +399 -228
  380. package/docs/site/assets/site.js +46 -46
  381. package/docs/site/assets/summarize-cli.png +0 -0
  382. package/docs/site/assets/summarize-extension.png +0 -0
  383. package/docs/site/docs/chrome-extension.html +101 -0
  384. package/docs/site/docs/config.html +30 -8
  385. package/docs/site/docs/extract-only.html +17 -4
  386. package/docs/site/docs/firecrawl.html +13 -3
  387. package/docs/site/docs/index.html +40 -6
  388. package/docs/site/docs/llm.html +20 -5
  389. package/docs/site/docs/openai.html +19 -5
  390. package/docs/site/docs/website.html +30 -9
  391. package/docs/site/docs/youtube.html +13 -3
  392. package/docs/site/index.html +168 -85
  393. package/docs/slides.md +82 -0
  394. package/docs/smoketest.md +29 -20
  395. package/docs/timestamps.md +124 -0
  396. package/docs/website.md +13 -0
  397. package/docs/youtube.md +20 -0
  398. package/package.json +57 -48
@@ -1,23 +1,26 @@
1
- import { formatBytes } from './format.js';
2
- import { createFetchHtmlProgressRenderer } from './progress/fetch-html.js';
3
- import { createTranscriptProgressRenderer } from './progress/transcript.js';
4
- export function createWebsiteProgress({ enabled, spinner, oscProgress, }) {
1
+ import { formatBytes } from "./format.js";
2
+ import { createFetchHtmlProgressRenderer } from "./progress/fetch-html.js";
3
+ import { createTranscriptProgressRenderer } from "./progress/transcript.js";
4
+ export function createWebsiteProgress({ enabled, spinner, oscProgress, theme, }) {
5
5
  if (!enabled)
6
6
  return null;
7
- const fetchRenderer = createFetchHtmlProgressRenderer({ spinner, oscProgress });
8
- const transcriptRenderer = createTranscriptProgressRenderer({ spinner, oscProgress });
7
+ const fetchRenderer = createFetchHtmlProgressRenderer({ spinner, oscProgress, theme });
8
+ const transcriptRenderer = createTranscriptProgressRenderer({ spinner, oscProgress, theme });
9
+ const styleLabel = (text) => (theme ? theme.label(text) : text);
10
+ const styleDim = (text) => (theme ? theme.dim(text) : text);
11
+ const renderStatus = (label, detail) => theme ? `${styleLabel(label)}${styleDim(detail)}` : `${label}${detail}`;
9
12
  const stopAll = () => {
10
13
  fetchRenderer.stop();
11
14
  transcriptRenderer.stop();
12
15
  };
13
16
  const formatFirecrawlReason = (reason) => {
14
17
  const lower = reason.toLowerCase();
15
- if (lower.includes('forced'))
16
- return 'forced';
17
- if (lower.includes('html fetch failed'))
18
- return 'fallback: HTML fetch failed';
19
- if (lower.includes('blocked') || lower.includes('thin'))
20
- return 'fallback: blocked/thin HTML';
18
+ if (lower.includes("forced"))
19
+ return "forced";
20
+ if (lower.includes("html fetch failed"))
21
+ return "fallback: HTML fetch failed";
22
+ if (lower.includes("blocked") || lower.includes("thin"))
23
+ return "fallback: blocked/thin HTML";
21
24
  return reason;
22
25
  };
23
26
  return {
@@ -25,54 +28,55 @@ export function createWebsiteProgress({ enabled, spinner, oscProgress, }) {
25
28
  onProgress: (event) => {
26
29
  fetchRenderer.onProgress(event);
27
30
  transcriptRenderer.onProgress(event);
28
- if (event.kind === 'bird-start') {
31
+ if (event.kind === "bird-start") {
29
32
  stopAll();
30
- spinner.setText('Bird: reading tweet…');
33
+ spinner.setText(renderStatus("Bird", ": reading tweet…"));
31
34
  return;
32
35
  }
33
- if (event.kind === 'bird-done') {
36
+ if (event.kind === "bird-done") {
34
37
  stopAll();
35
- if (event.ok && typeof event.textBytes === 'number') {
36
- spinner.setText(`Bird: got ${formatBytes(event.textBytes)}…`);
38
+ if (event.ok && typeof event.textBytes === "number") {
39
+ spinner.setText(renderStatus("Bird", `: got ${formatBytes(event.textBytes)}…`));
37
40
  return;
38
41
  }
39
- spinner.setText('Bird: failed; fallback…');
42
+ spinner.setText(renderStatus("Bird", ": failed; fallback…"));
40
43
  return;
41
44
  }
42
- if (event.kind === 'nitter-start') {
45
+ if (event.kind === "nitter-start") {
43
46
  stopAll();
44
- spinner.setText('Nitter: fetching…');
47
+ spinner.setText(renderStatus("Nitter", ": fetching…"));
45
48
  return;
46
49
  }
47
- if (event.kind === 'nitter-done') {
50
+ if (event.kind === "nitter-done") {
48
51
  stopAll();
49
- if (event.ok && typeof event.textBytes === 'number') {
50
- spinner.setText(`Nitter: got ${formatBytes(event.textBytes)}…`);
52
+ if (event.ok && typeof event.textBytes === "number") {
53
+ spinner.setText(renderStatus("Nitter", `: got ${formatBytes(event.textBytes)}…`));
51
54
  return;
52
55
  }
53
- spinner.setText('Nitter: failed; fallback…');
56
+ spinner.setText(renderStatus("Nitter", ": failed; fallback…"));
54
57
  return;
55
58
  }
56
- if (event.kind === 'firecrawl-start') {
59
+ if (event.kind === "firecrawl-start") {
57
60
  stopAll();
58
- const reason = event.reason ? formatFirecrawlReason(event.reason) : '';
59
- const suffix = reason ? ` (${reason})` : '';
60
- spinner.setText(`Firecrawl: scraping${suffix}…`);
61
+ const reason = event.reason ? formatFirecrawlReason(event.reason) : "";
62
+ const suffix = reason ? ` (${reason})` : "";
63
+ spinner.setText(renderStatus("Firecrawl", `: scraping${suffix}…`));
61
64
  return;
62
65
  }
63
- if (event.kind === 'firecrawl-done') {
66
+ if (event.kind === "firecrawl-done") {
64
67
  stopAll();
65
- if (event.ok && typeof event.markdownBytes === 'number') {
66
- spinner.setText(`Firecrawl: got ${formatBytes(event.markdownBytes)}…`);
68
+ if (event.ok && typeof event.markdownBytes === "number") {
69
+ spinner.setText(renderStatus("Firecrawl", `: got ${formatBytes(event.markdownBytes)}…`));
67
70
  return;
68
71
  }
69
- spinner.setText('Firecrawl: no content; fallback…');
72
+ spinner.setText(renderStatus("Firecrawl", ": no content; fallback…"));
70
73
  return;
71
74
  }
72
- if (event.kind === 'transcript-start') {
75
+ if (event.kind === "transcript-start") {
73
76
  stopAll();
74
77
  const label = event.hint?.trim();
75
- spinner.setText(`${label && label.length > 0 ? label : 'Transcribing'}…`);
78
+ const text = label && label.length > 0 ? label : "Transcribing";
79
+ spinner.setText(theme ? `${styleLabel(text)}${styleDim("…")}` : `${text}…`);
76
80
  }
77
81
  },
78
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"website-progress.js","sourceRoot":"","sources":["../../../src/tty/website-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-progress.js","sourceRoot":"","sources":["../../../src/tty/website-progress.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- export const FALLBACK_VERSION = '0.9.0';
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ export const FALLBACK_VERSION = "0.11.0";
5
5
  export function resolvePackageVersion(importMetaUrl) {
6
- const injected = typeof process !== 'undefined' && typeof process.env.SUMMARIZE_VERSION === 'string'
6
+ const injected = typeof process !== "undefined" && typeof process.env.SUMMARIZE_VERSION === "string"
7
7
  ? process.env.SUMMARIZE_VERSION.trim()
8
- : '';
8
+ : "";
9
9
  if (injected.length > 0)
10
10
  return injected;
11
11
  const startDir = (() => {
12
- if (typeof importMetaUrl === 'string' && importMetaUrl.trim().length > 0) {
12
+ if (typeof importMetaUrl === "string" && importMetaUrl.trim().length > 0) {
13
13
  try {
14
14
  return path.dirname(fileURLToPath(importMetaUrl));
15
15
  }
@@ -17,17 +17,17 @@ export function resolvePackageVersion(importMetaUrl) {
17
17
  // ignore
18
18
  }
19
19
  }
20
- if (typeof __dirname === 'string' && __dirname.length > 0)
20
+ if (typeof __dirname === "string" && __dirname.length > 0)
21
21
  return __dirname;
22
22
  return process.cwd();
23
23
  })();
24
24
  let dir = startDir;
25
25
  for (let i = 0; i < 10; i += 1) {
26
- const candidate = path.join(dir, 'package.json');
26
+ const candidate = path.join(dir, "package.json");
27
27
  try {
28
- const raw = fs.readFileSync(candidate, 'utf8');
28
+ const raw = fs.readFileSync(candidate, "utf8");
29
29
  const json = JSON.parse(raw);
30
- if (json && typeof json.version === 'string' && json.version.trim().length > 0) {
30
+ if (json && typeof json.version === "string" && json.version.trim().length > 0) {
31
31
  return json.version.trim();
32
32
  }
33
33
  }
@@ -44,47 +44,47 @@ export function resolvePackageVersion(importMetaUrl) {
44
44
  function truncateSha(sha, length = 8) {
45
45
  const trimmed = sha.trim();
46
46
  if (!trimmed)
47
- return '';
47
+ return "";
48
48
  if (trimmed.length <= length)
49
49
  return trimmed;
50
50
  return trimmed.slice(0, length);
51
51
  }
52
52
  function resolveGitShaFromGitDir(gitDir) {
53
- const headPath = path.join(gitDir, 'HEAD');
54
- let head = '';
53
+ const headPath = path.join(gitDir, "HEAD");
54
+ let head = "";
55
55
  try {
56
- head = fs.readFileSync(headPath, 'utf8').trim();
56
+ head = fs.readFileSync(headPath, "utf8").trim();
57
57
  }
58
58
  catch {
59
59
  return null;
60
60
  }
61
61
  if (!head)
62
62
  return null;
63
- if (!head.startsWith('ref:')) {
63
+ if (!head.startsWith("ref:")) {
64
64
  const sha = truncateSha(head);
65
65
  return sha.length > 0 ? sha : null;
66
66
  }
67
- const ref = head.replace(/^ref:\s*/i, '').trim();
67
+ const ref = head.replace(/^ref:\s*/i, "").trim();
68
68
  if (!ref)
69
69
  return null;
70
70
  const refPath = path.join(gitDir, ref);
71
71
  try {
72
- const sha = truncateSha(fs.readFileSync(refPath, 'utf8'));
72
+ const sha = truncateSha(fs.readFileSync(refPath, "utf8"));
73
73
  return sha.length > 0 ? sha : null;
74
74
  }
75
75
  catch {
76
76
  // fall through to packed-refs
77
77
  }
78
- const packedRefsPath = path.join(gitDir, 'packed-refs');
78
+ const packedRefsPath = path.join(gitDir, "packed-refs");
79
79
  try {
80
- const packed = fs.readFileSync(packedRefsPath, 'utf8');
80
+ const packed = fs.readFileSync(packedRefsPath, "utf8");
81
81
  const lines = packed.split(/\r?\n/);
82
82
  for (const line of lines) {
83
- if (!line || line.startsWith('#') || line.startsWith('^'))
83
+ if (!line || line.startsWith("#") || line.startsWith("^"))
84
84
  continue;
85
- const [shaRaw, refName] = line.split(' ');
85
+ const [shaRaw, refName] = line.split(" ");
86
86
  if (refName?.trim() === ref) {
87
- const sha = truncateSha(shaRaw ?? '');
87
+ const sha = truncateSha(shaRaw ?? "");
88
88
  return sha.length > 0 ? sha : null;
89
89
  }
90
90
  }
@@ -95,13 +95,13 @@ function resolveGitShaFromGitDir(gitDir) {
95
95
  return null;
96
96
  }
97
97
  export function resolveGitSha(importMetaUrl) {
98
- const injected = typeof process !== 'undefined' && typeof process.env.SUMMARIZE_GIT_SHA === 'string'
98
+ const injected = typeof process !== "undefined" && typeof process.env.SUMMARIZE_GIT_SHA === "string"
99
99
  ? process.env.SUMMARIZE_GIT_SHA.trim()
100
- : '';
100
+ : "";
101
101
  if (injected.length > 0)
102
102
  return truncateSha(injected);
103
103
  const startDir = (() => {
104
- if (typeof importMetaUrl === 'string' && importMetaUrl.trim().length > 0) {
104
+ if (typeof importMetaUrl === "string" && importMetaUrl.trim().length > 0) {
105
105
  try {
106
106
  return path.dirname(fileURLToPath(importMetaUrl));
107
107
  }
@@ -109,13 +109,13 @@ export function resolveGitSha(importMetaUrl) {
109
109
  // ignore
110
110
  }
111
111
  }
112
- if (typeof __dirname === 'string' && __dirname.length > 0)
112
+ if (typeof __dirname === "string" && __dirname.length > 0)
113
113
  return __dirname;
114
114
  return process.cwd();
115
115
  })();
116
116
  let dir = startDir;
117
117
  for (let i = 0; i < 10; i += 1) {
118
- const dotGit = path.join(dir, '.git');
118
+ const dotGit = path.join(dir, ".git");
119
119
  try {
120
120
  const stat = fs.statSync(dotGit);
121
121
  if (stat.isDirectory()) {
@@ -125,7 +125,7 @@ export function resolveGitSha(importMetaUrl) {
125
125
  }
126
126
  else if (stat.isFile()) {
127
127
  // Worktrees/submodules can have a file with: `gitdir: /path/to/actual/dir`
128
- const txt = fs.readFileSync(dotGit, 'utf8');
128
+ const txt = fs.readFileSync(dotGit, "utf8");
129
129
  const match = txt.match(/gitdir:\s*(.+)\s*$/i);
130
130
  const gitDir = match?.[1]?.trim();
131
131
  if (gitDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAM,UAAU,qBAAqB,CAAC,aAAsB;IAC1D,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,QAAQ;QACjF,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACtC,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5E,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC;IACL,IAAI,GAAG,GAAG,QAAQ,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiC,CAAC;YAC7D,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,MAAM,GAAG,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAsB;IAClD,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,QAAQ;QACjF,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACtC,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5E,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzB,2EAA2E;gBAC3E,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC9E,MAAM,GAAG,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;oBAC9C,IAAI,GAAG;wBAAE,OAAO,GAAG,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAsB;IACtD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { TranscriptCache } from './content/index.js';
2
- import type { LengthArg } from './flags.js';
3
- import type { OutputLanguage } from './language.js';
4
- export type CacheKind = 'extract' | 'summary' | 'transcript';
1
+ import type { TranscriptCache } from "./content/index.js";
2
+ import type { LengthArg } from "./flags.js";
3
+ import type { OutputLanguage } from "./language.js";
4
+ export type CacheKind = "extract" | "summary" | "transcript" | "chat" | "slides";
5
5
  export type CacheConfig = {
6
6
  enabled?: boolean;
7
7
  maxMb?: number;
@@ -21,7 +21,7 @@ export type CacheStore = {
21
21
  transcriptCache: TranscriptCache;
22
22
  };
23
23
  export type CacheState = {
24
- mode: 'default' | 'bypass';
24
+ mode: "default" | "bypass";
25
25
  store: CacheStore | null;
26
26
  ttlMs: number;
27
27
  maxBytes: number;
@@ -46,7 +46,7 @@ export declare function clearCacheFiles(path: string): void;
46
46
  export declare function hashString(value: string): string;
47
47
  export declare function hashJson(value: unknown): string;
48
48
  export declare function normalizeContentForHash(content: string): string;
49
- export declare function extractTaggedBlock(prompt: string, tag: 'instructions' | 'content'): string | null;
49
+ export declare function extractTaggedBlock(prompt: string, tag: "instructions" | "content"): string | null;
50
50
  export declare function buildPromptHash(prompt: string): string;
51
51
  export declare function buildLengthKey(lengthArg: LengthArg): string;
52
52
  export declare function buildLanguageKey(outputLanguage: OutputLanguage): string;
@@ -61,10 +61,22 @@ export declare function buildSummaryCacheKey({ contentHash, promptHash, model, l
61
61
  lengthKey: string;
62
62
  languageKey: string;
63
63
  }): string;
64
- export declare function buildTranscriptCacheKey({ url, namespace, formatVersion, }: {
64
+ export declare function buildSlidesCacheKey({ url, settings, }: {
65
+ url: string;
66
+ settings: {
67
+ ocr: boolean;
68
+ outputDir: string;
69
+ sceneThreshold: number;
70
+ autoTuneThreshold: boolean;
71
+ maxSlides: number;
72
+ minDurationSeconds: number;
73
+ };
74
+ }): string;
75
+ export declare function buildTranscriptCacheKey({ url, namespace, formatVersion, fileMtime, }: {
65
76
  url: string;
66
77
  namespace: string | null;
67
78
  formatVersion?: number;
79
+ fileMtime?: number | null;
68
80
  }): string;
69
81
  export declare function readCacheStats(path: string): Promise<CacheStats | null>;
70
82
  export declare function getSqliteFileSizeBytes(path: string): number;
@@ -1,16 +1,29 @@
1
- export type AutoRuleKind = 'text' | 'website' | 'youtube' | 'image' | 'video' | 'file';
2
- export type VideoMode = 'auto' | 'transcript' | 'understand';
3
- export type CliProvider = 'claude' | 'codex' | 'gemini';
1
+ export type AutoRuleKind = "text" | "website" | "youtube" | "image" | "video" | "file";
2
+ export type VideoMode = "auto" | "transcript" | "understand";
3
+ export type CliProvider = "claude" | "codex" | "gemini" | "agent";
4
4
  export type CliProviderConfig = {
5
5
  binary?: string;
6
6
  extraArgs?: string[];
7
7
  model?: string;
8
8
  };
9
+ export type CliAutoFallbackConfig = {
10
+ enabled?: boolean;
11
+ onlyWhenNoApiKeys?: boolean;
12
+ order?: CliProvider[];
13
+ };
14
+ export type CliMagicAutoConfig = CliAutoFallbackConfig;
9
15
  export type CliConfig = {
10
16
  enabled?: CliProvider[];
11
17
  claude?: CliProviderConfig;
12
18
  codex?: CliProviderConfig;
13
19
  gemini?: CliProviderConfig;
20
+ agent?: CliProviderConfig;
21
+ autoFallback?: CliAutoFallbackConfig;
22
+ magicAuto?: CliAutoFallbackConfig;
23
+ promptOverride?: string;
24
+ allowTools?: boolean;
25
+ cwd?: string;
26
+ extraArgs?: string[];
14
27
  };
15
28
  export type OpenAiConfig = {
16
29
  /**
@@ -27,6 +40,14 @@ export type OpenAiConfig = {
27
40
  */
28
41
  whisperUsdPerMinute?: number;
29
42
  };
43
+ export type MediaCacheVerifyMode = "none" | "size" | "hash";
44
+ export type MediaCacheConfig = {
45
+ enabled?: boolean;
46
+ maxMb?: number;
47
+ ttlDays?: number;
48
+ path?: string;
49
+ verify?: MediaCacheVerifyMode;
50
+ };
30
51
  export type AnthropicConfig = {
31
52
  /**
32
53
  * Override the Anthropic API base URL (e.g. a proxy).
@@ -43,8 +64,20 @@ export type GoogleConfig = {
43
64
  */
44
65
  baseUrl?: string;
45
66
  };
46
- export type LoggingLevel = 'debug' | 'info' | 'warn' | 'error';
47
- export type LoggingFormat = 'json' | 'pretty';
67
+ export type ApiKeysConfig = {
68
+ openai?: string;
69
+ anthropic?: string;
70
+ google?: string;
71
+ xai?: string;
72
+ openrouter?: string;
73
+ zai?: string;
74
+ apify?: string;
75
+ firecrawl?: string;
76
+ fal?: string;
77
+ };
78
+ export type EnvConfig = Record<string, string>;
79
+ export type LoggingLevel = "debug" | "info" | "warn" | "error";
80
+ export type LoggingFormat = "json" | "pretty";
48
81
  export type LoggingConfig = {
49
82
  enabled?: boolean;
50
83
  level?: LoggingLevel;
@@ -91,7 +124,7 @@ export type AutoRule = {
91
124
  export type ModelConfig = {
92
125
  id: string;
93
126
  } | {
94
- mode: 'auto';
127
+ mode: "auto";
95
128
  rules?: AutoRule[];
96
129
  } | {
97
130
  name: string;
@@ -116,6 +149,7 @@ export type SummarizeConfig = {
116
149
  maxMb?: number;
117
150
  ttlDays?: number;
118
151
  path?: string;
152
+ media?: MediaCacheConfig;
119
153
  };
120
154
  /**
121
155
  * Named model presets selectable via `--model <name>`.
@@ -126,6 +160,14 @@ export type SummarizeConfig = {
126
160
  media?: {
127
161
  videoMode?: VideoMode;
128
162
  };
163
+ slides?: {
164
+ enabled?: boolean;
165
+ ocr?: boolean;
166
+ dir?: string;
167
+ sceneThreshold?: number;
168
+ max?: number;
169
+ minDuration?: number;
170
+ };
129
171
  output?: {
130
172
  /**
131
173
  * Output language for the summary (e.g. "auto", "en", "de", "English").
@@ -135,13 +177,36 @@ export type SummarizeConfig = {
135
177
  */
136
178
  language?: string;
137
179
  };
180
+ ui?: {
181
+ /**
182
+ * CLI theme name (e.g. "aurora", "ember", "moss", "mono").
183
+ */
184
+ theme?: string;
185
+ };
138
186
  cli?: CliConfig;
139
187
  openai?: OpenAiConfig;
140
188
  anthropic?: AnthropicConfig;
141
189
  google?: GoogleConfig;
142
190
  xai?: XaiConfig;
143
191
  logging?: LoggingConfig;
192
+ /**
193
+ * Generic environment variable defaults.
194
+ *
195
+ * Precedence: process env > config file env.
196
+ */
197
+ env?: EnvConfig;
198
+ /**
199
+ * Legacy API key shortcuts. Prefer `env` for new configs.
200
+ *
201
+ * Precedence: environment variables > config file apiKeys.
202
+ */
203
+ apiKeys?: ApiKeysConfig;
144
204
  };
205
+ export declare function resolveConfigEnv(config: SummarizeConfig | null | undefined): EnvConfig;
206
+ export declare function mergeConfigEnv({ env, config, }: {
207
+ env: Record<string, string | undefined>;
208
+ config: SummarizeConfig | null | undefined;
209
+ }): Record<string, string | undefined>;
145
210
  export declare function loadSummarizeConfig({ env }: {
146
211
  env: Record<string, string | undefined>;
147
212
  }): {
@@ -1,20 +1,22 @@
1
- import type { Message } from '@mariozechner/pi-ai';
1
+ import type { Message } from "@mariozechner/pi-ai";
2
2
  export type InputTarget = {
3
- kind: 'url';
3
+ kind: "url";
4
4
  url: string;
5
5
  } | {
6
- kind: 'file';
6
+ kind: "file";
7
7
  filePath: string;
8
+ } | {
9
+ kind: "stdin";
8
10
  };
9
11
  export type UrlKind = {
10
- kind: 'website';
12
+ kind: "website";
11
13
  } | {
12
- kind: 'asset';
14
+ kind: "asset";
13
15
  };
14
16
  export type AssetAttachment = {
15
17
  mediaType: string;
16
18
  filename: string | null;
17
- kind: 'image' | 'file';
19
+ kind: "image" | "file";
18
20
  bytes: Uint8Array;
19
21
  };
20
22
  export declare function resolveInputTarget(raw: string): InputTarget;
@@ -1 +1 @@
1
- export * from '@steipete/summarize-core/content';
1
+ export * from "@steipete/summarize-core/content";
@@ -1,11 +1,11 @@
1
- import type { LlmTokenUsage } from './llm/generate-text.js';
2
- export type LlmProvider = 'xai' | 'openai' | 'google' | 'anthropic' | 'zai' | 'cli';
1
+ import type { LlmTokenUsage } from "./llm/generate-text.js";
2
+ export type LlmProvider = "xai" | "openai" | "google" | "anthropic" | "zai" | "cli";
3
3
  export type LlmCall = {
4
4
  provider: LlmProvider;
5
5
  model: string;
6
6
  usage: LlmTokenUsage | null;
7
7
  costUsd?: number | null;
8
- purpose: 'summary' | 'markdown';
8
+ purpose: "summary" | "markdown";
9
9
  };
10
10
  export type RunMetricsReport = {
11
11
  llm: Array<{
@@ -0,0 +1,25 @@
1
+ import type { AssistantMessage } from "@mariozechner/pi-ai";
2
+ export declare function buildAgentPromptHash(automationEnabled: boolean): string;
3
+ export declare function streamAgentResponse({ env, pageUrl, pageTitle, pageContent, messages, modelOverride, tools, automationEnabled, onChunk, onAssistant, signal, }: {
4
+ env: Record<string, string | undefined>;
5
+ pageUrl: string;
6
+ pageTitle: string | null;
7
+ pageContent: string;
8
+ messages: unknown;
9
+ modelOverride: string | null;
10
+ tools: string[];
11
+ automationEnabled: boolean;
12
+ onChunk: (text: string) => void;
13
+ onAssistant: (assistant: AssistantMessage) => void;
14
+ signal?: AbortSignal;
15
+ }): Promise<void>;
16
+ export declare function completeAgentResponse({ env, pageUrl, pageTitle, pageContent, messages, modelOverride, tools, automationEnabled, }: {
17
+ env: Record<string, string | undefined>;
18
+ pageUrl: string;
19
+ pageTitle: string | null;
20
+ pageContent: string;
21
+ messages: unknown;
22
+ modelOverride: string | null;
23
+ tools: string[];
24
+ automationEnabled: boolean;
25
+ }): Promise<AssistantMessage>;
@@ -1,8 +1,8 @@
1
- export type DaemonRequestedMode = 'auto' | 'page' | 'url';
1
+ export type DaemonRequestedMode = "auto" | "page" | "url";
2
2
  export declare function resolveAutoDaemonMode({ url, hasText }: {
3
3
  url: string;
4
4
  hasText: boolean;
5
5
  }): {
6
- primary: 'page' | 'url';
7
- fallback: 'page' | 'url' | null;
6
+ primary: "page" | "url";
7
+ fallback: "page" | "url" | null;
8
8
  };
@@ -1,12 +1,5 @@
1
- /**
2
- * Chat module for conversational Q&A about page content.
3
- */
4
- import type { SseEvent } from '../shared/sse-events.js';
5
- type ChatMessage = {
6
- role: 'user' | 'assistant';
7
- content: string;
8
- };
9
- type Session = {
1
+ import type { Message } from "@mariozechner/pi-ai";
2
+ type ChatSession = {
10
3
  id: string;
11
4
  lastMeta: {
12
5
  model: string | null;
@@ -15,21 +8,20 @@ type Session = {
15
8
  summaryFromCache: boolean | null;
16
9
  };
17
10
  };
11
+ type ChatEvent = {
12
+ event: string;
13
+ data?: unknown;
14
+ };
18
15
  export declare function streamChatResponse({ env, fetchImpl, session: _session, pageUrl, pageTitle, pageContent, messages, modelOverride, pushToSession, emitMeta, }: {
19
16
  env: Record<string, string | undefined>;
20
17
  fetchImpl: typeof fetch;
21
- session: Session;
18
+ session: ChatSession;
22
19
  pageUrl: string;
23
20
  pageTitle: string | null;
24
21
  pageContent: string;
25
- messages: ChatMessage[];
22
+ messages: Message[];
26
23
  modelOverride: string | null;
27
- pushToSession: (evt: SseEvent) => void;
28
- emitMeta: (patch: Partial<{
29
- model: string | null;
30
- modelLabel: string | null;
31
- inputSummary: string | null;
32
- summaryFromCache: boolean | null;
33
- }>) => void;
24
+ pushToSession: (event: ChatEvent) => void;
25
+ emitMeta: (patch: Partial<ChatSession["lastMeta"]>) => void;
34
26
  }): Promise<void>;
35
27
  export {};