@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.
- package/CHANGELOG.md +80 -28
- package/README.md +115 -30
- package/dist/cli.js +1 -1
- package/dist/esm/cache.js +67 -65
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/cli-main.js +27 -27
- package/dist/esm/cli-main.js.map +1 -1
- package/dist/esm/cli.js +2 -2
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/config.js +310 -166
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/content/asset.js +53 -50
- package/dist/esm/content/asset.js.map +1 -1
- package/dist/esm/content/index.js +1 -1
- package/dist/esm/content/index.js.map +1 -1
- package/dist/esm/costs.js +1 -1
- package/dist/esm/costs.js.map +1 -1
- package/dist/esm/daemon/agent.js +165 -164
- package/dist/esm/daemon/agent.js.map +1 -1
- package/dist/esm/daemon/auto-mode.js +3 -3
- package/dist/esm/daemon/auto-mode.js.map +1 -1
- package/dist/esm/daemon/chat.js +16 -14
- package/dist/esm/daemon/chat.js.map +1 -1
- package/dist/esm/daemon/cli-entrypoint.js +72 -0
- package/dist/esm/daemon/cli-entrypoint.js.map +1 -0
- package/dist/esm/daemon/cli.js +63 -87
- package/dist/esm/daemon/cli.js.map +1 -1
- package/dist/esm/daemon/config.js +15 -15
- package/dist/esm/daemon/config.js.map +1 -1
- package/dist/esm/daemon/constants.js +6 -6
- package/dist/esm/daemon/constants.js.map +1 -1
- package/dist/esm/daemon/env-merge.js.map +1 -1
- package/dist/esm/daemon/env-snapshot.js +36 -31
- package/dist/esm/daemon/env-snapshot.js.map +1 -1
- package/dist/esm/daemon/flow-context.js +59 -28
- package/dist/esm/daemon/flow-context.js.map +1 -1
- package/dist/esm/daemon/launchd.js +100 -55
- package/dist/esm/daemon/launchd.js.map +1 -1
- package/dist/esm/daemon/meta.js +5 -5
- package/dist/esm/daemon/meta.js.map +1 -1
- package/dist/esm/daemon/models.js +54 -31
- package/dist/esm/daemon/models.js.map +1 -1
- package/dist/esm/daemon/process-registry.js +15 -15
- package/dist/esm/daemon/process-registry.js.map +1 -1
- package/dist/esm/daemon/schtasks.js +42 -42
- package/dist/esm/daemon/schtasks.js.map +1 -1
- package/dist/esm/daemon/server.js +248 -244
- package/dist/esm/daemon/server.js.map +1 -1
- package/dist/esm/daemon/summarize-progress.js +11 -11
- package/dist/esm/daemon/summarize-progress.js.map +1 -1
- package/dist/esm/daemon/summarize.js +29 -29
- package/dist/esm/daemon/summarize.js.map +1 -1
- package/dist/esm/daemon/systemd.js +47 -47
- package/dist/esm/daemon/systemd.js.map +1 -1
- package/dist/esm/firecrawl.js +12 -12
- package/dist/esm/firecrawl.js.map +1 -1
- package/dist/esm/flags.js +32 -32
- package/dist/esm/flags.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/language.js +1 -1
- package/dist/esm/language.js.map +1 -1
- package/dist/esm/llm/cli.js +128 -64
- package/dist/esm/llm/cli.js.map +1 -1
- package/dist/esm/llm/errors.js +1 -1
- package/dist/esm/llm/errors.js.map +1 -1
- package/dist/esm/llm/generate-text.js +107 -98
- package/dist/esm/llm/generate-text.js.map +1 -1
- package/dist/esm/llm/google-models.js +17 -17
- package/dist/esm/llm/google-models.js.map +1 -1
- package/dist/esm/llm/html-to-markdown.js +3 -3
- package/dist/esm/llm/html-to-markdown.js.map +1 -1
- package/dist/esm/llm/model-id.js +38 -16
- package/dist/esm/llm/model-id.js.map +1 -1
- package/dist/esm/llm/prompt.js +5 -5
- package/dist/esm/llm/prompt.js.map +1 -1
- package/dist/esm/llm/providers/anthropic.js +33 -33
- package/dist/esm/llm/providers/anthropic.js.map +1 -1
- package/dist/esm/llm/providers/google.js +19 -19
- package/dist/esm/llm/providers/google.js.map +1 -1
- package/dist/esm/llm/providers/models.js +30 -30
- package/dist/esm/llm/providers/models.js.map +1 -1
- package/dist/esm/llm/providers/openai.js +35 -34
- package/dist/esm/llm/providers/openai.js.map +1 -1
- package/dist/esm/llm/providers/shared.js +8 -8
- package/dist/esm/llm/providers/shared.js.map +1 -1
- package/dist/esm/llm/transcript-to-markdown.js +9 -5
- package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
- package/dist/esm/llm/usage.js +18 -18
- package/dist/esm/llm/usage.js.map +1 -1
- package/dist/esm/logging/daemon.js +21 -21
- package/dist/esm/logging/daemon.js.map +1 -1
- package/dist/esm/logging/ring-file.js +5 -5
- package/dist/esm/logging/ring-file.js.map +1 -1
- package/dist/esm/markitdown.js +21 -19
- package/dist/esm/markitdown.js.map +1 -1
- package/dist/esm/media-cache.js +39 -39
- package/dist/esm/media-cache.js.map +1 -1
- package/dist/esm/model-auto.js +175 -106
- package/dist/esm/model-auto.js.map +1 -1
- package/dist/esm/model-spec.js +52 -42
- package/dist/esm/model-spec.js.map +1 -1
- package/dist/esm/pricing/litellm.js +4 -4
- package/dist/esm/pricing/litellm.js.map +1 -1
- package/dist/esm/processes.js +1 -1
- package/dist/esm/processes.js.map +1 -1
- package/dist/esm/prompts/index.js +1 -1
- package/dist/esm/prompts/index.js.map +1 -1
- package/dist/esm/refresh-free.js +81 -81
- package/dist/esm/refresh-free.js.map +1 -1
- package/dist/esm/run/attachments.js +47 -44
- package/dist/esm/run/attachments.js.map +1 -1
- package/dist/esm/run/bird.js +26 -26
- package/dist/esm/run/bird.js.map +1 -1
- package/dist/esm/run/cache-state.js +7 -7
- package/dist/esm/run/cache-state.js.map +1 -1
- package/dist/esm/run/cli-fallback-state.js +45 -0
- package/dist/esm/run/cli-fallback-state.js.map +1 -0
- package/dist/esm/run/cli-preflight.js +24 -24
- package/dist/esm/run/cli-preflight.js.map +1 -1
- package/dist/esm/run/constants.js +12 -12
- package/dist/esm/run/constants.js.map +1 -1
- package/dist/esm/run/cookies/twitter.js +47 -47
- package/dist/esm/run/cookies/twitter.js.map +1 -1
- package/dist/esm/run/env.js +21 -15
- package/dist/esm/run/env.js.map +1 -1
- package/dist/esm/run/fetch-with-timeout.js +4 -4
- package/dist/esm/run/fetch-with-timeout.js.map +1 -1
- package/dist/esm/run/finish-line.js +68 -68
- package/dist/esm/run/finish-line.js.map +1 -1
- package/dist/esm/run/flows/asset/extract.js +15 -15
- package/dist/esm/run/flows/asset/extract.js.map +1 -1
- package/dist/esm/run/flows/asset/input.js +47 -66
- package/dist/esm/run/flows/asset/input.js.map +1 -1
- package/dist/esm/run/flows/asset/media-policy.js +1 -1
- package/dist/esm/run/flows/asset/media-policy.js.map +1 -1
- package/dist/esm/run/flows/asset/media.js +49 -40
- package/dist/esm/run/flows/asset/media.js.map +1 -1
- package/dist/esm/run/flows/asset/output.js +12 -12
- package/dist/esm/run/flows/asset/output.js.map +1 -1
- package/dist/esm/run/flows/asset/preprocess.js +79 -44
- package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
- package/dist/esm/run/flows/asset/summary.js +173 -106
- package/dist/esm/run/flows/asset/summary.js.map +1 -1
- package/dist/esm/run/flows/url/extract.js +26 -26
- package/dist/esm/run/flows/url/extract.js.map +1 -1
- package/dist/esm/run/flows/url/flow.js +104 -98
- package/dist/esm/run/flows/url/flow.js.map +1 -1
- package/dist/esm/run/flows/url/markdown.js +57 -57
- package/dist/esm/run/flows/url/markdown.js.map +1 -1
- package/dist/esm/run/flows/url/slides-output.js +61 -59
- package/dist/esm/run/flows/url/slides-output.js.map +1 -1
- package/dist/esm/run/flows/url/slides-text.js +85 -85
- package/dist/esm/run/flows/url/slides-text.js.map +1 -1
- package/dist/esm/run/flows/url/summary.js +174 -107
- package/dist/esm/run/flows/url/summary.js.map +1 -1
- package/dist/esm/run/format.js +10 -10
- package/dist/esm/run/format.js.map +1 -1
- package/dist/esm/run/help.js +141 -135
- package/dist/esm/run/help.js.map +1 -1
- package/dist/esm/run/logging.js +10 -10
- package/dist/esm/run/logging.js.map +1 -1
- package/dist/esm/run/markdown.js +12 -12
- package/dist/esm/run/markdown.js.map +1 -1
- package/dist/esm/run/media-cache-state.js +5 -5
- package/dist/esm/run/media-cache-state.js.map +1 -1
- package/dist/esm/run/model-attempts.js.map +1 -1
- package/dist/esm/run/openrouter.js +11 -11
- package/dist/esm/run/openrouter.js.map +1 -1
- package/dist/esm/run/progress.js +1 -1
- package/dist/esm/run/progress.js.map +1 -1
- package/dist/esm/run/run-config.js +16 -16
- package/dist/esm/run/run-config.js.map +1 -1
- package/dist/esm/run/run-context.js +2 -2
- package/dist/esm/run/run-context.js.map +1 -1
- package/dist/esm/run/run-env.js +55 -54
- package/dist/esm/run/run-env.js.map +1 -1
- package/dist/esm/run/run-input.js +3 -3
- package/dist/esm/run/run-input.js.map +1 -1
- package/dist/esm/run/run-metrics.js +16 -16
- package/dist/esm/run/run-metrics.js.map +1 -1
- package/dist/esm/run/run-models.js +28 -23
- package/dist/esm/run/run-models.js.map +1 -1
- package/dist/esm/run/run-output.js +3 -3
- package/dist/esm/run/run-output.js.map +1 -1
- package/dist/esm/run/run-settings.js +83 -34
- package/dist/esm/run/run-settings.js.map +1 -1
- package/dist/esm/run/run-stream.js +4 -4
- package/dist/esm/run/run-stream.js.map +1 -1
- package/dist/esm/run/runner.js +166 -127
- package/dist/esm/run/runner.js.map +1 -1
- package/dist/esm/run/slides-cli.js +43 -42
- package/dist/esm/run/slides-cli.js.map +1 -1
- package/dist/esm/run/slides-render.js +36 -36
- package/dist/esm/run/slides-render.js.map +1 -1
- package/dist/esm/run/stdin-temp-file.js +77 -0
- package/dist/esm/run/stdin-temp-file.js.map +1 -0
- package/dist/esm/run/stream-output.js +7 -7
- package/dist/esm/run/stream-output.js.map +1 -1
- package/dist/esm/run/streaming.js +16 -16
- package/dist/esm/run/streaming.js.map +1 -1
- package/dist/esm/run/summary-engine.js +57 -51
- package/dist/esm/run/summary-engine.js.map +1 -1
- package/dist/esm/run/summary-llm.js +3 -3
- package/dist/esm/run/summary-llm.js.map +1 -1
- package/dist/esm/run/terminal.js +4 -4
- package/dist/esm/run/terminal.js.map +1 -1
- package/dist/esm/run/tips.js +2 -2
- package/dist/esm/run/tips.js.map +1 -1
- package/dist/esm/run/transcriber-cli.js +49 -49
- package/dist/esm/run/transcriber-cli.js.map +1 -1
- package/dist/esm/run.js +1 -1
- package/dist/esm/run.js.map +1 -1
- package/dist/esm/shared/contracts.js +1 -1
- package/dist/esm/shared/contracts.js.map +1 -1
- package/dist/esm/shared/sse-events.js +16 -16
- package/dist/esm/shared/sse-events.js.map +1 -1
- package/dist/esm/shared/streaming-merge.js +3 -3
- package/dist/esm/shared/streaming-merge.js.map +1 -1
- package/dist/esm/slides/extract.js +258 -249
- package/dist/esm/slides/extract.js.map +1 -1
- package/dist/esm/slides/index.js +3 -3
- package/dist/esm/slides/index.js.map +1 -1
- package/dist/esm/slides/settings.js +14 -14
- package/dist/esm/slides/settings.js.map +1 -1
- package/dist/esm/slides/store.js +9 -9
- package/dist/esm/slides/store.js.map +1 -1
- package/dist/esm/tty/format.js +13 -13
- package/dist/esm/tty/format.js.map +1 -1
- package/dist/esm/tty/osc-progress.js +1 -1
- package/dist/esm/tty/osc-progress.js.map +1 -1
- package/dist/esm/tty/progress/fetch-html.js +14 -14
- package/dist/esm/tty/progress/fetch-html.js.map +1 -1
- package/dist/esm/tty/progress/transcript.js +70 -62
- package/dist/esm/tty/progress/transcript.js.map +1 -1
- package/dist/esm/tty/spinner.js +20 -9
- package/dist/esm/tty/spinner.js.map +1 -1
- package/dist/esm/tty/theme.js +92 -92
- package/dist/esm/tty/theme.js.map +1 -1
- package/dist/esm/tty/website-progress.js +32 -32
- package/dist/esm/tty/website-progress.js.map +1 -1
- package/dist/esm/version.js +29 -29
- package/dist/esm/version.js.map +1 -1
- package/dist/types/cache.d.ts +6 -6
- package/dist/types/config.d.ts +49 -7
- package/dist/types/content/asset.d.ts +8 -6
- package/dist/types/content/index.d.ts +1 -1
- package/dist/types/costs.d.ts +3 -3
- package/dist/types/daemon/agent.d.ts +1 -1
- package/dist/types/daemon/auto-mode.d.ts +3 -3
- package/dist/types/daemon/chat.d.ts +2 -2
- package/dist/types/daemon/cli-entrypoint.d.ts +2 -0
- package/dist/types/daemon/config.d.ts +2 -2
- package/dist/types/daemon/env-merge.d.ts +1 -1
- package/dist/types/daemon/env-snapshot.d.ts +1 -1
- package/dist/types/daemon/flow-context.d.ts +7 -7
- package/dist/types/daemon/launchd.d.ts +8 -0
- package/dist/types/daemon/models.d.ts +6 -2
- package/dist/types/daemon/process-registry.d.ts +5 -5
- package/dist/types/daemon/server.d.ts +2 -2
- package/dist/types/daemon/summarize-progress.d.ts +1 -1
- package/dist/types/daemon/summarize.d.ts +7 -7
- package/dist/types/firecrawl.d.ts +1 -1
- package/dist/types/flags.d.ts +11 -11
- package/dist/types/index.d.ts +4 -4
- package/dist/types/language.d.ts +1 -1
- package/dist/types/llm/attachments.d.ts +1 -1
- package/dist/types/llm/cli.d.ts +3 -3
- package/dist/types/llm/generate-text.d.ts +7 -7
- package/dist/types/llm/html-to-markdown.d.ts +3 -3
- package/dist/types/llm/model-id.d.ts +1 -1
- package/dist/types/llm/prompt.d.ts +2 -2
- package/dist/types/llm/providers/anthropic.d.ts +3 -3
- package/dist/types/llm/providers/google.d.ts +3 -3
- package/dist/types/llm/providers/models.d.ts +2 -2
- package/dist/types/llm/providers/openai.d.ts +4 -4
- package/dist/types/llm/providers/shared.d.ts +2 -2
- package/dist/types/llm/transcript-to-markdown.d.ts +4 -2
- package/dist/types/llm/usage.d.ts +1 -1
- package/dist/types/logging/daemon.d.ts +4 -4
- package/dist/types/markitdown.d.ts +1 -1
- package/dist/types/media-cache.d.ts +2 -2
- package/dist/types/model-auto.d.ts +14 -4
- package/dist/types/model-spec.d.ts +10 -10
- package/dist/types/pricing/litellm.d.ts +1 -1
- package/dist/types/processes.d.ts +1 -1
- package/dist/types/prompts/index.d.ts +1 -1
- package/dist/types/run/attachments.d.ts +7 -7
- package/dist/types/run/bird.d.ts +2 -2
- package/dist/types/run/cache-state.d.ts +2 -2
- package/dist/types/run/cli-fallback-state.d.ts +6 -0
- package/dist/types/run/constants.d.ts +1 -1
- package/dist/types/run/cookies/twitter.d.ts +1 -1
- package/dist/types/run/env.d.ts +1 -1
- package/dist/types/run/finish-line.d.ts +5 -5
- package/dist/types/run/flows/asset/extract.d.ts +4 -4
- package/dist/types/run/flows/asset/input.d.ts +9 -3
- package/dist/types/run/flows/asset/media.d.ts +1 -1
- package/dist/types/run/flows/asset/output.d.ts +5 -5
- package/dist/types/run/flows/asset/preprocess.d.ts +23 -17
- package/dist/types/run/flows/asset/summary.d.ts +19 -17
- package/dist/types/run/flows/url/extract.d.ts +1 -1
- package/dist/types/run/flows/url/flow.d.ts +1 -1
- package/dist/types/run/flows/url/markdown.d.ts +6 -6
- package/dist/types/run/flows/url/slides-output.d.ts +7 -7
- package/dist/types/run/flows/url/slides-text.d.ts +9 -9
- package/dist/types/run/flows/url/summary.d.ts +11 -11
- package/dist/types/run/flows/url/types.d.ts +26 -22
- package/dist/types/run/format.d.ts +3 -3
- package/dist/types/run/help.d.ts +1 -1
- package/dist/types/run/media-cache-state.d.ts +2 -2
- package/dist/types/run/model-attempts.d.ts +1 -1
- package/dist/types/run/run-config.d.ts +4 -4
- package/dist/types/run/run-context.d.ts +3 -1
- package/dist/types/run/run-env.d.ts +3 -1
- package/dist/types/run/run-input.d.ts +2 -2
- package/dist/types/run/run-metrics.d.ts +3 -3
- package/dist/types/run/run-models.d.ts +3 -2
- package/dist/types/run/run-output.d.ts +1 -1
- package/dist/types/run/run-settings.d.ts +15 -6
- package/dist/types/run/run-stream.d.ts +2 -2
- package/dist/types/run/runner.d.ts +3 -2
- package/dist/types/run/slides-render.d.ts +4 -4
- package/dist/types/run/stdin-temp-file.d.ts +9 -0
- package/dist/types/run/stream-output.d.ts +1 -1
- package/dist/types/run/streaming.d.ts +4 -4
- package/dist/types/run/summary-engine.d.ts +11 -11
- package/dist/types/run/summary-llm.d.ts +5 -5
- package/dist/types/run/types.d.ts +4 -4
- package/dist/types/run.d.ts +1 -1
- package/dist/types/shared/contracts.d.ts +2 -2
- package/dist/types/shared/sse-events.d.ts +9 -9
- package/dist/types/slides/extract.d.ts +5 -4
- package/dist/types/slides/index.d.ts +5 -5
- package/dist/types/slides/store.d.ts +2 -2
- package/dist/types/slides/types.d.ts +2 -2
- package/dist/types/tty/osc-progress.d.ts +5 -5
- package/dist/types/tty/progress/fetch-html.d.ts +3 -3
- package/dist/types/tty/progress/transcript.d.ts +3 -3
- package/dist/types/tty/spinner.d.ts +2 -2
- package/dist/types/tty/theme.d.ts +2 -2
- package/dist/types/tty/website-progress.d.ts +3 -3
- package/dist/types/version.d.ts +1 -1
- package/docs/agent.md +38 -4
- package/docs/assets/site.js +46 -46
- package/docs/chrome-extension.md +11 -5
- package/docs/cli.md +59 -13
- package/docs/config.md +59 -10
- package/docs/extract-only.md +2 -0
- package/docs/index.html +33 -14
- package/docs/llm.md +7 -4
- package/docs/media.md +5 -4
- package/docs/model-auto.md +3 -2
- package/docs/nvidia-onnx-transcription.md +3 -3
- package/docs/openai.md +1 -1
- package/docs/releasing.md +3 -0
- package/docs/site/404.html +4 -1
- package/docs/site/assets/site.js +46 -46
- package/docs/site/docs/chrome-extension.html +18 -6
- package/docs/site/docs/config.html +29 -8
- package/docs/site/docs/extract-only.html +16 -4
- package/docs/site/docs/firecrawl.html +12 -3
- package/docs/site/docs/index.html +35 -6
- package/docs/site/docs/llm.html +19 -5
- package/docs/site/docs/openai.html +18 -5
- package/docs/site/docs/website.html +29 -9
- package/docs/site/docs/youtube.html +12 -3
- package/docs/site/index.html +33 -14
- package/docs/slides.md +13 -5
- package/docs/smoketest.md +29 -20
- package/docs/timestamps.md +21 -0
- package/docs/website.md +2 -1
- package/docs/youtube.md +4 -0
- package/package.json +36 -35
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { formatCompactCount, formatDurationSecondsSmart, formatElapsedMs, formatMinutesSmart, } from
|
|
2
|
-
import { createThemeRenderer, resolveThemeNameFromSources, resolveTrueColor } from
|
|
3
|
-
import { formatUSD, sumNumbersOrNull } from
|
|
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(
|
|
12
|
-
if (parts.length >= 3 && parts[0] ===
|
|
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 ===
|
|
19
|
-
return
|
|
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
|
|
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 ===
|
|
25
|
+
const hasTranscript = typeof extracted.transcriptCharacters === "number" && extracted.transcriptCharacters > 0;
|
|
26
26
|
if (!hasTranscript)
|
|
27
27
|
return null;
|
|
28
|
-
return
|
|
28
|
+
return "audio";
|
|
29
29
|
}
|
|
30
30
|
function buildCompactTranscriptPart(extracted) {
|
|
31
|
-
const isYouTube = extracted.siteName ===
|
|
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 !==
|
|
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 ===
|
|
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
|
|
51
|
-
if (mediaKind ===
|
|
52
|
-
return
|
|
53
|
-
if (mediaKind ===
|
|
54
|
-
return
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
88
|
+
const hasTranscript = typeof extracted.transcriptCharacters === "number" && extracted.transcriptCharacters > 0;
|
|
89
89
|
if (hasTranscript && extracted.transcriptSource) {
|
|
90
|
-
const providerSuffix = extracted.transcriptSource ===
|
|
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 ===
|
|
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(
|
|
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 ===
|
|
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) :
|
|
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(
|
|
193
|
+
? (extraParts.find((part) => part.startsWith("txc=")) ?? null)
|
|
194
194
|
: null;
|
|
195
|
-
const compactTranscriptLabel = compactTranscript?.startsWith(
|
|
196
|
-
? compactTranscript.slice(
|
|
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(
|
|
211
|
+
if (!compactTranscriptLabel?.toLowerCase().includes("words"))
|
|
212
212
|
return label;
|
|
213
213
|
const txLower = compactTranscriptLabel.toLowerCase();
|
|
214
|
-
if (txLower.includes(
|
|
214
|
+
if (txLower.includes("podcast"))
|
|
215
215
|
return null;
|
|
216
|
-
if (txLower.includes(
|
|
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 ===
|
|
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(
|
|
242
|
-
const miscParts = filteredExtraParts?.filter((part) => !part.startsWith(
|
|
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 ===
|
|
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 ===
|
|
272
|
-
const strategy = String(args.extracted.diagnostics.strategy ??
|
|
273
|
-
const firecrawlUsed = strategy ===
|
|
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 ===
|
|
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 ===
|
|
281
|
+
if (mdUsed && mdProvider === "firecrawl") {
|
|
282
282
|
return `${base} via firecrawl`;
|
|
283
283
|
}
|
|
284
|
-
if (mdUsed && mdNotes && mdNotes.toLowerCase().includes(
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
299
|
+
if (strategy === "bird")
|
|
300
300
|
return `${base} via bird`;
|
|
301
|
-
if (strategy ===
|
|
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 ===
|
|
310
|
-
sources.push(
|
|
311
|
-
if (strategy ===
|
|
312
|
-
sources.push(
|
|
313
|
-
if (strategy ===
|
|
314
|
-
sources.push(
|
|
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 ===
|
|
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
|
|
2
|
-
import { formatBytes } from
|
|
3
|
-
import { getFileBytesFromAttachment, getTextContentFromAttachment, shouldMarkitdownConvertMediaType, } from
|
|
4
|
-
import { MAX_TEXT_BYTES_DEFAULT } from
|
|
5
|
-
import { hasUvxCli } from
|
|
6
|
-
import { withUvxTip } from
|
|
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:
|
|
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 ===
|
|
25
|
-
const name = attachment.filename ??
|
|
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(
|
|
30
|
+
throw new Error("Internal error: missing file bytes for extraction");
|
|
31
31
|
}
|
|
32
|
-
if (ctx.preprocessMode ===
|
|
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 ??
|
|
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,
|
|
60
|
-
throw new Error(`Preprocessed Markdown too large (${formatBytes(Buffer.byteLength(markdown,
|
|
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:
|
|
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":"
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../../src/run/flows/asset/extract.ts"],"names":[],"mappings":"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"}
|