@steipete/summarize 0.9.0 → 0.10.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 (203) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/LICENSE +1 -1
  3. package/README.md +307 -184
  4. package/dist/cli.js +1 -1
  5. package/dist/esm/cache.js +72 -4
  6. package/dist/esm/cache.js.map +1 -1
  7. package/dist/esm/config.js +127 -1
  8. package/dist/esm/config.js.map +1 -1
  9. package/dist/esm/daemon/agent.js +547 -0
  10. package/dist/esm/daemon/agent.js.map +1 -0
  11. package/dist/esm/daemon/chat.js +83 -175
  12. package/dist/esm/daemon/chat.js.map +1 -1
  13. package/dist/esm/daemon/cli.js +35 -3
  14. package/dist/esm/daemon/cli.js.map +1 -1
  15. package/dist/esm/daemon/env-snapshot.js +3 -0
  16. package/dist/esm/daemon/env-snapshot.js.map +1 -1
  17. package/dist/esm/daemon/flow-context.js +31 -8
  18. package/dist/esm/daemon/flow-context.js.map +1 -1
  19. package/dist/esm/daemon/launchd.js +27 -0
  20. package/dist/esm/daemon/launchd.js.map +1 -1
  21. package/dist/esm/daemon/process-registry.js +206 -0
  22. package/dist/esm/daemon/process-registry.js.map +1 -0
  23. package/dist/esm/daemon/schtasks.js +64 -0
  24. package/dist/esm/daemon/schtasks.js.map +1 -1
  25. package/dist/esm/daemon/server.js +712 -42
  26. package/dist/esm/daemon/server.js.map +1 -1
  27. package/dist/esm/daemon/summarize.js +33 -4
  28. package/dist/esm/daemon/summarize.js.map +1 -1
  29. package/dist/esm/daemon/systemd.js +61 -0
  30. package/dist/esm/daemon/systemd.js.map +1 -1
  31. package/dist/esm/flags.js +24 -0
  32. package/dist/esm/flags.js.map +1 -1
  33. package/dist/esm/llm/providers/openai.js +1 -1
  34. package/dist/esm/llm/providers/openai.js.map +1 -1
  35. package/dist/esm/media-cache.js +251 -0
  36. package/dist/esm/media-cache.js.map +1 -0
  37. package/dist/esm/processes.js +2 -0
  38. package/dist/esm/processes.js.map +1 -0
  39. package/dist/esm/run/bird.js +118 -5
  40. package/dist/esm/run/bird.js.map +1 -1
  41. package/dist/esm/run/cli-preflight.js +19 -1
  42. package/dist/esm/run/cli-preflight.js.map +1 -1
  43. package/dist/esm/run/finish-line.js +11 -4
  44. package/dist/esm/run/finish-line.js.map +1 -1
  45. package/dist/esm/run/flows/asset/extract.js +70 -0
  46. package/dist/esm/run/flows/asset/extract.js.map +1 -0
  47. package/dist/esm/run/flows/asset/input.js +208 -24
  48. package/dist/esm/run/flows/asset/input.js.map +1 -1
  49. package/dist/esm/run/flows/asset/media-policy.js +3 -0
  50. package/dist/esm/run/flows/asset/media-policy.js.map +1 -0
  51. package/dist/esm/run/flows/asset/media.js +224 -0
  52. package/dist/esm/run/flows/asset/media.js.map +1 -0
  53. package/dist/esm/run/flows/asset/output.js +98 -0
  54. package/dist/esm/run/flows/asset/output.js.map +1 -0
  55. package/dist/esm/run/flows/asset/summary.js +157 -7
  56. package/dist/esm/run/flows/asset/summary.js.map +1 -1
  57. package/dist/esm/run/flows/url/extract.js +6 -6
  58. package/dist/esm/run/flows/url/extract.js.map +1 -1
  59. package/dist/esm/run/flows/url/flow.js +336 -36
  60. package/dist/esm/run/flows/url/flow.js.map +1 -1
  61. package/dist/esm/run/flows/url/markdown.js +6 -1
  62. package/dist/esm/run/flows/url/markdown.js.map +1 -1
  63. package/dist/esm/run/flows/url/slides-output.js +485 -0
  64. package/dist/esm/run/flows/url/slides-output.js.map +1 -0
  65. package/dist/esm/run/flows/url/slides-text.js +628 -0
  66. package/dist/esm/run/flows/url/slides-text.js.map +1 -0
  67. package/dist/esm/run/flows/url/summary.js +356 -82
  68. package/dist/esm/run/flows/url/summary.js.map +1 -1
  69. package/dist/esm/run/help.js +94 -5
  70. package/dist/esm/run/help.js.map +1 -1
  71. package/dist/esm/run/logging.js +12 -4
  72. package/dist/esm/run/logging.js.map +1 -1
  73. package/dist/esm/run/media-cache-state.js +33 -0
  74. package/dist/esm/run/media-cache-state.js.map +1 -0
  75. package/dist/esm/run/progress.js +19 -1
  76. package/dist/esm/run/progress.js.map +1 -1
  77. package/dist/esm/run/run-settings.js +39 -1
  78. package/dist/esm/run/run-settings.js.map +1 -1
  79. package/dist/esm/run/runner.js +196 -8
  80. package/dist/esm/run/runner.js.map +1 -1
  81. package/dist/esm/run/slides-cli.js +225 -0
  82. package/dist/esm/run/slides-cli.js.map +1 -0
  83. package/dist/esm/run/slides-render.js +163 -0
  84. package/dist/esm/run/slides-render.js.map +1 -0
  85. package/dist/esm/run/stream-output.js +10 -3
  86. package/dist/esm/run/stream-output.js.map +1 -1
  87. package/dist/esm/run/summary-engine.js +33 -7
  88. package/dist/esm/run/summary-engine.js.map +1 -1
  89. package/dist/esm/run/transcriber-cli.js +148 -0
  90. package/dist/esm/run/transcriber-cli.js.map +1 -0
  91. package/dist/esm/shared/sse-events.js +4 -0
  92. package/dist/esm/shared/sse-events.js.map +1 -1
  93. package/dist/esm/slides/extract.js +1942 -0
  94. package/dist/esm/slides/extract.js.map +1 -0
  95. package/dist/esm/slides/index.js +4 -0
  96. package/dist/esm/slides/index.js.map +1 -0
  97. package/dist/esm/slides/settings.js +73 -0
  98. package/dist/esm/slides/settings.js.map +1 -0
  99. package/dist/esm/slides/store.js +111 -0
  100. package/dist/esm/slides/store.js.map +1 -0
  101. package/dist/esm/slides/types.js +2 -0
  102. package/dist/esm/slides/types.js.map +1 -0
  103. package/dist/esm/tty/osc-progress.js +21 -1
  104. package/dist/esm/tty/osc-progress.js.map +1 -1
  105. package/dist/esm/tty/progress/fetch-html.js +8 -4
  106. package/dist/esm/tty/progress/fetch-html.js.map +1 -1
  107. package/dist/esm/tty/progress/transcript.js +82 -31
  108. package/dist/esm/tty/progress/transcript.js.map +1 -1
  109. package/dist/esm/tty/spinner.js +2 -2
  110. package/dist/esm/tty/spinner.js.map +1 -1
  111. package/dist/esm/tty/theme.js +189 -0
  112. package/dist/esm/tty/theme.js.map +1 -0
  113. package/dist/esm/tty/website-progress.js +17 -13
  114. package/dist/esm/tty/website-progress.js.map +1 -1
  115. package/dist/esm/version.js +1 -1
  116. package/dist/esm/version.js.map +1 -1
  117. package/dist/types/cache.d.ts +14 -2
  118. package/dist/types/config.d.ts +23 -0
  119. package/dist/types/daemon/agent.d.ts +25 -0
  120. package/dist/types/daemon/chat.d.ts +10 -18
  121. package/dist/types/daemon/env-snapshot.d.ts +1 -1
  122. package/dist/types/daemon/flow-context.d.ts +21 -1
  123. package/dist/types/daemon/launchd.d.ts +4 -0
  124. package/dist/types/daemon/process-registry.d.ts +73 -0
  125. package/dist/types/daemon/schtasks.d.ts +4 -0
  126. package/dist/types/daemon/summarize.d.ts +36 -5
  127. package/dist/types/daemon/systemd.d.ts +4 -0
  128. package/dist/types/flags.d.ts +1 -0
  129. package/dist/types/media-cache.d.ts +22 -0
  130. package/dist/types/processes.d.ts +1 -0
  131. package/dist/types/run/bird.d.ts +7 -0
  132. package/dist/types/run/finish-line.d.ts +2 -1
  133. package/dist/types/run/flows/asset/extract.d.ts +18 -0
  134. package/dist/types/run/flows/asset/input.d.ts +12 -2
  135. package/dist/types/run/flows/asset/media-policy.d.ts +2 -0
  136. package/dist/types/run/flows/asset/media.d.ts +21 -0
  137. package/dist/types/run/flows/asset/output.d.ts +42 -0
  138. package/dist/types/run/flows/asset/summary.d.ts +6 -0
  139. package/dist/types/run/flows/url/extract.d.ts +2 -1
  140. package/dist/types/run/flows/url/slides-output.d.ts +66 -0
  141. package/dist/types/run/flows/url/slides-text.d.ts +87 -0
  142. package/dist/types/run/flows/url/summary.d.ts +11 -3
  143. package/dist/types/run/flows/url/types.d.ts +29 -2
  144. package/dist/types/run/help.d.ts +3 -0
  145. package/dist/types/run/logging.d.ts +3 -2
  146. package/dist/types/run/media-cache-state.d.ts +7 -0
  147. package/dist/types/run/progress.d.ts +2 -1
  148. package/dist/types/run/run-settings.d.ts +7 -1
  149. package/dist/types/run/slides-cli.d.ts +9 -0
  150. package/dist/types/run/slides-render.d.ts +30 -0
  151. package/dist/types/run/stream-output.d.ts +2 -1
  152. package/dist/types/run/summary-engine.d.ts +11 -1
  153. package/dist/types/run/transcriber-cli.d.ts +8 -0
  154. package/dist/types/shared/sse-events.d.ts +20 -0
  155. package/dist/types/slides/extract.d.ts +42 -0
  156. package/dist/types/slides/index.d.ts +5 -0
  157. package/dist/types/slides/settings.d.ts +20 -0
  158. package/dist/types/slides/store.d.ts +15 -0
  159. package/dist/types/slides/types.d.ts +40 -0
  160. package/dist/types/tty/osc-progress.d.ts +2 -2
  161. package/dist/types/tty/progress/fetch-html.d.ts +3 -1
  162. package/dist/types/tty/progress/transcript.d.ts +3 -1
  163. package/dist/types/tty/spinner.d.ts +3 -1
  164. package/dist/types/tty/theme.d.ts +44 -0
  165. package/dist/types/tty/website-progress.d.ts +3 -1
  166. package/dist/types/version.d.ts +1 -1
  167. package/docs/README.md +1 -1
  168. package/docs/_config.yml +26 -0
  169. package/docs/_layouts/default.html +60 -0
  170. package/docs/agent.md +333 -0
  171. package/docs/assets/site.css +748 -0
  172. package/docs/assets/site.js +72 -0
  173. package/docs/assets/summarize-cli.png +0 -0
  174. package/docs/assets/summarize-extension.png +0 -0
  175. package/docs/assets/youtube-slides.png +0 -0
  176. package/docs/cache.md +29 -3
  177. package/docs/chrome-extension.md +61 -11
  178. package/docs/config.md +50 -2
  179. package/docs/extract-only.md +8 -0
  180. package/docs/index.html +205 -0
  181. package/docs/index.md +25 -0
  182. package/docs/llm.md +11 -1
  183. package/docs/manual-tests.md +2 -0
  184. package/docs/media.md +3 -0
  185. package/docs/nvidia-onnx-transcription.md +55 -0
  186. package/docs/site/assets/site.css +399 -228
  187. package/docs/site/assets/summarize-cli.png +0 -0
  188. package/docs/site/assets/summarize-extension.png +0 -0
  189. package/docs/site/docs/chrome-extension.html +89 -0
  190. package/docs/site/docs/config.html +1 -0
  191. package/docs/site/docs/extract-only.html +1 -0
  192. package/docs/site/docs/firecrawl.html +1 -0
  193. package/docs/site/docs/index.html +5 -0
  194. package/docs/site/docs/llm.html +1 -0
  195. package/docs/site/docs/openai.html +1 -0
  196. package/docs/site/docs/website.html +1 -0
  197. package/docs/site/docs/youtube.html +1 -0
  198. package/docs/site/index.html +148 -84
  199. package/docs/slides.md +74 -0
  200. package/docs/timestamps.md +103 -0
  201. package/docs/website.md +12 -0
  202. package/docs/youtube.md +16 -0
  203. package/package.json +16 -15
package/CHANGELOG.md CHANGED
@@ -1,5 +1,80 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.0 - Unreleased
4
+
5
+ ### Highlights
6
+
7
+ - Chrome Side Panel: **Chat mode** with metrics bar, message queue, and improved context (full transcript + summary metadata, jump-to-latest).
8
+ - Slides: **YouTube slide screenshots + OCR + transcript-aligned cards**, timestamped seek, and an OCR/Transcript toggle.
9
+ - Media-aware summarization in the Side Panel: Page vs Video/Audio dropdown, automatic media preference on video sites, plus visible word count/duration.
10
+ - CLI: robust URL + media extraction with transcript-first workflows and cache-aware streaming.
11
+
12
+ ### Features
13
+
14
+ - Slides: extract slide screenshots + OCR for YouTube/direct video URLs in the CLI + extension (#41, thanks @philippb).
15
+ - Slides: top-of-summary slide strip with expand/collapse full-width cards, timestamps, and click-to-seek.
16
+ - Slides: slide descriptions without model calls (transcript windowing, OCR fallback) + OCR/Transcript toggle.
17
+ - Slides: stream slide extraction status/progress and show a single header progress bar (no duplicate spinners).
18
+ - Chrome Side Panel chat: stream agent replies over SSE and restore chat history from daemon cache (#33, thanks @dougvk).
19
+ - Chrome Side Panel chat: timestamped transcript context plus clickable `[mm:ss]` links that seek the current media.
20
+ - Summaries: when transcript timestamps are available, prompts require timestamped bullet summaries; side panel auto-links `[mm:ss]` in summaries for media.
21
+ - Transcripts: `--timestamps` adds segment-level timings (`transcriptSegments` + `transcriptTimedText`) for YouTube, podcasts, and embedded captions.
22
+ - Media-aware summarization in the Side Panel: Page vs Video/Audio dropdown, automatic media preference on video sites, plus visible word count/duration.
23
+ - CLI: transcribe local audio/video files with mtime-aware transcript cache invalidation (thanks @mvance!).
24
+ - Browser extension: add Firefox sidebar build + multi-browser config (#31, thanks @vlnd0).
25
+ - Chrome automation: add artifacts tool + REPL helpers for persistent session files (notes/JSON/CSV) and downloads.
26
+ - Chrome automation: expand navigate tool with list/switch tab support and return matching skills after navigation.
27
+
28
+ ### Fixes
29
+
30
+ - Prompts: ignore sponsor/ads segments in video and podcast summaries.
31
+ - Prompts: enforce no-ads/no-skipped language and italicized standout excerpts (no quotation marks).
32
+ - Media: route direct media URLs to the transcription pipeline and raise the local media limit to 2GB (#47, thanks @n0an).
33
+ - Slides: render Slide X/Y labels and parse slide markers more robustly in streaming output.
34
+ - Slides: ensure slide summary segments start with a title line when missing.
35
+ - Slides: progress updates during yt-dlp downloads and OSC progress mirrors slide extraction.
36
+ - Slides: reuse the media cache for downloaded videos (even with `--no-cache`).
37
+ - Slides: clear slide progress line before the finish summary to avoid stray `Slides x/y` output.
38
+ - Slides: parse `Slide N/Total` labels and stabilize title/body extraction.
39
+ - CLI: `--no-cache` now bypasses summary caching only; transcript/media caches still apply.
40
+ - Chrome Side Panel chat: keep auto-scroll pinned while streaming when you’re already at the bottom.
41
+ - Chrome Side Panel: scope streams/state per window so other windows don’t wipe active summaries.
42
+ - Chrome Side Panel chat: support JSON agent replies with explicit SSE/JSON negotiation to avoid “stream ended” errors.
43
+ - Chrome Side Panel chat: clear streaming placeholders on errors/aborts.
44
+ - Chrome Side Panel: add inline error toast above chat composer; errors stay visible when scrolled.
45
+ - Chrome Side Panel: clear/hide the inline error toast when no message is present to avoid empty red boxes.
46
+ - Cache: include transcript timestamp requests in extract cache keys so timed summaries don’t reuse plain transcript content.
47
+ - Extract-only: remove implicit 8k cap; new `--max-extract-characters`/daemon `maxExtractCharacters` allow opt-in limits; resolves transcript truncation.
48
+ - Automation: require userScripts (no isolated-world fallback), with improved guidance and in-panel permission notice.
49
+ - Daemon: avoid URL flow crashes when url-preference helpers are missing (ReferenceError guard).
50
+ - CLI: clear OSC progress on SIGINT/SIGTERM to avoid stuck indicators.
51
+ - Slides: detect headline-style first lines and render them as slide titles (no required `Title:` markers).
52
+ - YouTube: prefer English caption variants (`en-*`) when selecting caption tracks.
53
+
54
+ ### Improvements
55
+
56
+ - Daemon: emit slides start/progress/done metadata in extended logging for easier debugging.
57
+ - Media: refactor routing helpers and size policy (#48, thanks @steipete).
58
+ - CLI: show determinate transcription progress percent when duration is known.
59
+ - CLI: theme transcription progress lines and mirror part-based progress to OSC when duration is unknown.
60
+ - CLI: show determinate OSC progress for transcription/download when totals are known.
61
+ - CLI: keep OSC progress determinate when recent percent updates are available.
62
+ - CLI: theme tweet/extraction progress lines for consistent loading indicators.
63
+ - CLI: theme file/slide spinner labels so all progress lines share the same styling.
64
+ - CLI: simplify media download labels (avoid “media, video” duplication).
65
+ - Transcription: add auto transcriber selection (default) with ONNX-first when configured + `summarize transcriber setup`.
66
+ - Slides: cap auto slide targets at 6 by default for long videos.
67
+ - CLI: add themed output (24-bit ANSI), `--theme`, and config/env defaults for a consistent color scheme.
68
+ - Cache: add media download caching with TTL/size caps + optional verification, plus `--no-media-cache`.
69
+ - Slides: render headline-style first lines as slide titles above the slide marker.
70
+ - Prompts: allow straight quotes and encourage 1-2 short exact quotes when relevant.
71
+
72
+ ### Docs
73
+
74
+ - README: 0.10.0 preview layout with clearer install flow, daemon rationale, and prominent Chrome Web Store link.
75
+ - README: document ONNX transcriber setup + auto selection.
76
+ - README/docs: add UI theme config + ONNX install hints.
77
+
3
78
  ## 0.9.0 - 2025-12-31
4
79
 
5
80
  ### Highlights
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Peter Steinberger
3
+ \g<1>2026 Peter Steinberger
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal