@steipete/summarize 0.12.0 → 0.13.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.
- package/CHANGELOG.md +36 -1
- package/README.md +41 -17
- package/dist/cli.js +1 -1
- package/dist/esm/cache-keys.js +10 -2
- package/dist/esm/cache-keys.js.map +1 -1
- package/dist/esm/cache.js +1 -1
- package/dist/esm/config/parse-helpers.js +6 -1
- package/dist/esm/config/parse-helpers.js.map +1 -1
- package/dist/esm/config/sections.js +35 -1
- package/dist/esm/config/sections.js.map +1 -1
- package/dist/esm/costs.js.map +1 -1
- package/dist/esm/daemon/agent-model.js +56 -8
- package/dist/esm/daemon/agent-model.js.map +1 -1
- package/dist/esm/daemon/chat.js +52 -4
- package/dist/esm/daemon/chat.js.map +1 -1
- package/dist/esm/daemon/cli.js +100 -5
- package/dist/esm/daemon/cli.js.map +1 -1
- package/dist/esm/daemon/env-snapshot.js +2 -0
- package/dist/esm/daemon/env-snapshot.js.map +1 -1
- package/dist/esm/daemon/flow-context.js +76 -73
- package/dist/esm/daemon/flow-context.js.map +1 -1
- package/dist/esm/daemon/models.js +10 -0
- package/dist/esm/daemon/models.js.map +1 -1
- package/dist/esm/daemon/schtasks.js +101 -5
- package/dist/esm/daemon/schtasks.js.map +1 -1
- package/dist/esm/daemon/server.js +8 -1
- package/dist/esm/daemon/server.js.map +1 -1
- package/dist/esm/daemon/windows-container.js +21 -0
- package/dist/esm/daemon/windows-container.js.map +1 -0
- package/dist/esm/llm/cli-provider-output.js +225 -1
- package/dist/esm/llm/cli-provider-output.js.map +1 -1
- package/dist/esm/llm/cli.js +95 -7
- package/dist/esm/llm/cli.js.map +1 -1
- package/dist/esm/llm/generate-text-document.js.map +1 -1
- package/dist/esm/llm/generate-text-shared.js +22 -3
- package/dist/esm/llm/generate-text-shared.js.map +1 -1
- package/dist/esm/llm/generate-text-stream.js +34 -1
- package/dist/esm/llm/generate-text-stream.js.map +1 -1
- package/dist/esm/llm/generate-text.js +33 -6
- package/dist/esm/llm/generate-text.js.map +1 -1
- package/dist/esm/llm/github-models.js +45 -0
- package/dist/esm/llm/github-models.js.map +1 -0
- package/dist/esm/llm/html-to-markdown.js.map +1 -1
- package/dist/esm/llm/model-id.js +18 -2
- package/dist/esm/llm/model-id.js.map +1 -1
- package/dist/esm/llm/provider-profile.js +44 -2
- package/dist/esm/llm/provider-profile.js.map +1 -1
- package/dist/esm/llm/providers/models.js +6 -1
- package/dist/esm/llm/providers/models.js.map +1 -1
- package/dist/esm/llm/providers/openai.js +243 -5
- package/dist/esm/llm/providers/openai.js.map +1 -1
- package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
- package/dist/esm/media-cache.js +3 -0
- package/dist/esm/media-cache.js.map +1 -1
- package/dist/esm/model-auto-cli.js +7 -5
- package/dist/esm/model-auto-cli.js.map +1 -1
- package/dist/esm/model-spec.js +39 -2
- package/dist/esm/model-spec.js.map +1 -1
- package/dist/esm/run/attachments.js.map +1 -1
- package/dist/esm/run/cli-fallback-state.js +6 -1
- package/dist/esm/run/cli-fallback-state.js.map +1 -1
- package/dist/esm/run/env.js +21 -3
- package/dist/esm/run/env.js.map +1 -1
- package/dist/esm/run/flows/asset/summary-attempts.js +9 -1
- package/dist/esm/run/flows/asset/summary-attempts.js.map +1 -1
- package/dist/esm/run/flows/asset/summary.js +11 -0
- package/dist/esm/run/flows/asset/summary.js.map +1 -1
- package/dist/esm/run/flows/url/extraction-session.js +174 -0
- package/dist/esm/run/flows/url/extraction-session.js.map +1 -0
- package/dist/esm/run/flows/url/fetch-options.js +32 -0
- package/dist/esm/run/flows/url/fetch-options.js.map +1 -0
- package/dist/esm/run/flows/url/flow-progress.js +11 -7
- package/dist/esm/run/flows/url/flow-progress.js.map +1 -1
- package/dist/esm/run/flows/url/flow.js +64 -385
- package/dist/esm/run/flows/url/flow.js.map +1 -1
- package/dist/esm/run/flows/url/markdown.js +18 -1
- package/dist/esm/run/flows/url/markdown.js.map +1 -1
- package/dist/esm/run/flows/url/progress-status-state.js +28 -0
- package/dist/esm/run/flows/url/progress-status-state.js.map +1 -0
- package/dist/esm/run/flows/url/progress-status.js +18 -23
- package/dist/esm/run/flows/url/progress-status.js.map +1 -1
- package/dist/esm/run/flows/url/slides-session.js +159 -0
- package/dist/esm/run/flows/url/slides-session.js.map +1 -0
- package/dist/esm/run/flows/url/summary-finish.js +10 -4
- package/dist/esm/run/flows/url/summary-finish.js.map +1 -1
- package/dist/esm/run/flows/url/summary-resolution.js +8 -1
- package/dist/esm/run/flows/url/summary-resolution.js.map +1 -1
- package/dist/esm/run/flows/url/summary.js +115 -149
- package/dist/esm/run/flows/url/summary.js.map +1 -1
- package/dist/esm/run/flows/url/types.js +31 -1
- package/dist/esm/run/flows/url/types.js.map +1 -1
- package/dist/esm/run/flows/url/video-only.js +68 -0
- package/dist/esm/run/flows/url/video-only.js.map +1 -0
- package/dist/esm/run/help.js +6 -2
- package/dist/esm/run/help.js.map +1 -1
- package/dist/esm/run/run-config.js +1 -1
- package/dist/esm/run/run-config.js.map +1 -1
- package/dist/esm/run/run-models.js +35 -5
- package/dist/esm/run/run-models.js.map +1 -1
- package/dist/esm/run/run-settings-parse.js +4 -0
- package/dist/esm/run/run-settings-parse.js.map +1 -1
- package/dist/esm/run/run-settings.js +6 -0
- package/dist/esm/run/run-settings.js.map +1 -1
- package/dist/esm/run/runner-contexts.js +70 -64
- package/dist/esm/run/runner-contexts.js.map +1 -1
- package/dist/esm/run/runner-execution.js +22 -2
- package/dist/esm/run/runner-execution.js.map +1 -1
- package/dist/esm/run/runner-plan.js +369 -0
- package/dist/esm/run/runner-plan.js.map +1 -0
- package/dist/esm/run/runner-slides.js +14 -3
- package/dist/esm/run/runner-slides.js.map +1 -1
- package/dist/esm/run/runner.js +50 -398
- package/dist/esm/run/runner.js.map +1 -1
- package/dist/esm/run/slides-cli.js +3 -2
- package/dist/esm/run/slides-cli.js.map +1 -1
- package/dist/esm/run/streaming.js +1 -0
- package/dist/esm/run/streaming.js.map +1 -1
- package/dist/esm/run/summary-engine.js +24 -0
- package/dist/esm/run/summary-engine.js.map +1 -1
- package/dist/esm/run/summary-llm.js.map +1 -1
- package/dist/esm/shared/slides-text.js +2 -0
- package/dist/esm/shared/slides-text.js.map +1 -0
- package/dist/esm/slides/extract.js +43 -66
- package/dist/esm/slides/extract.js.map +1 -1
- package/dist/esm/slides/index.js +2 -1
- package/dist/esm/slides/index.js.map +1 -1
- package/dist/esm/slides/ingest.js +27 -0
- package/dist/esm/slides/ingest.js.map +1 -1
- package/dist/esm/slides/source.js +80 -0
- package/dist/esm/slides/source.js.map +1 -0
- package/dist/esm/tty/progress/fetch-html.js +6 -0
- package/dist/esm/tty/progress/fetch-html.js.map +1 -1
- package/dist/esm/tty/progress/transcript-state.js +202 -0
- package/dist/esm/tty/progress/transcript-state.js.map +1 -0
- package/dist/esm/tty/progress/transcript.js +43 -207
- package/dist/esm/tty/progress/transcript.js.map +1 -1
- package/dist/esm/tty/spinner.js +14 -6
- package/dist/esm/tty/spinner.js.map +1 -1
- package/dist/esm/tty/website-progress.js +11 -0
- package/dist/esm/tty/website-progress.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/cache-keys.d.ts +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/config/sections.d.ts +2 -1
- package/dist/types/config/types.d.ts +9 -1
- package/dist/types/costs.d.ts +1 -1
- package/dist/types/daemon/env-snapshot.d.ts +1 -1
- package/dist/types/daemon/flow-context.d.ts +1 -1
- package/dist/types/daemon/models.d.ts +2 -0
- package/dist/types/daemon/schtasks.d.ts +2 -1
- package/dist/types/daemon/server.d.ts +1 -0
- package/dist/types/daemon/windows-container.d.ts +1 -0
- package/dist/types/llm/cli-provider-output.d.ts +10 -1
- package/dist/types/llm/generate-text-document.d.ts +2 -1
- package/dist/types/llm/generate-text-shared.d.ts +7 -0
- package/dist/types/llm/generate-text-stream.d.ts +2 -1
- package/dist/types/llm/generate-text.d.ts +3 -2
- package/dist/types/llm/github-models.d.ts +5 -0
- package/dist/types/llm/html-to-markdown.d.ts +2 -1
- package/dist/types/llm/model-id.d.ts +1 -1
- package/dist/types/llm/provider-profile.d.ts +4 -4
- package/dist/types/llm/providers/openai.d.ts +9 -5
- package/dist/types/llm/providers/types.d.ts +1 -0
- package/dist/types/llm/transcript-to-markdown.d.ts +2 -1
- package/dist/types/model-spec.d.ts +4 -3
- package/dist/types/run/attachments.d.ts +3 -2
- package/dist/types/run/env.d.ts +5 -0
- package/dist/types/run/flows/asset/summary.d.ts +10 -0
- package/dist/types/run/flows/url/extraction-session.d.ts +22 -0
- package/dist/types/run/flows/url/fetch-options.d.ts +29 -0
- package/dist/types/run/flows/url/flow-progress.d.ts +3 -1
- package/dist/types/run/flows/url/markdown.d.ts +1 -1
- package/dist/types/run/flows/url/progress-status-state.d.ts +17 -0
- package/dist/types/run/flows/url/progress-status.d.ts +1 -0
- package/dist/types/run/flows/url/slides-session.d.ts +26 -0
- package/dist/types/run/flows/url/types.d.ts +16 -0
- package/dist/types/run/flows/url/video-only.d.ts +27 -0
- package/dist/types/run/run-settings.d.ts +2 -1
- package/dist/types/run/runner-contexts.d.ts +3 -28
- package/dist/types/run/runner-execution.d.ts +1 -0
- package/dist/types/run/runner-plan.d.ts +19 -0
- package/dist/types/run/runner-slides.d.ts +2 -1
- package/dist/types/run/streaming.d.ts +2 -1
- package/dist/types/run/summary-engine.d.ts +1 -1
- package/dist/types/run/summary-llm.d.ts +2 -1
- package/dist/types/run/types.d.ts +3 -2
- package/dist/types/shared/slides-text.d.ts +1 -0
- package/dist/types/slides/extract.d.ts +1 -6
- package/dist/types/slides/index.d.ts +2 -1
- package/dist/types/slides/source.d.ts +8 -0
- package/dist/types/tty/progress/fetch-html.d.ts +1 -0
- package/dist/types/tty/progress/transcript-state.d.ts +27 -0
- package/dist/types/tty/progress/transcript.d.ts +1 -0
- package/dist/types/tty/spinner.d.ts +1 -0
- package/dist/types/version.d.ts +1 -1
- package/docs/README.md +1 -1
- package/docs/agent.md +1 -1
- package/docs/assets/site.css +11 -0
- package/docs/chrome-extension.md +7 -1
- package/docs/cli.md +24 -6
- package/docs/config.md +19 -5
- package/docs/extract-only.md +2 -2
- package/docs/firecrawl.md +2 -1
- package/docs/llm.md +29 -3
- package/docs/media.md +6 -0
- package/docs/releasing.md +9 -12
- package/docs/site/docs/chrome-extension.html +1 -1
- package/docs/transcript-provider-flow.md +7 -0
- package/docs/website.md +2 -1
- package/package.json +15 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.13.0 - UNRELEASED
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Slides: support `--slides` for local video files in the main CLI and `summarize slides`, route local videos through the shared slide-aware flow, and document the local-file workflow (#149, thanks @steipete).
|
|
8
|
+
- Models: add explicit `github-copilot/...` model support backed by GitHub Models, including shorthand ids like `github-copilot/gpt-5.4` and `GITHUB_TOKEN` / `GH_TOKEN` auth.
|
|
9
|
+
- Models: add OpenCode as a first-class CLI provider across CLI flags, config, auto fallback, daemon picker/chat flows, and Chrome extension settings, while preserving existing OpenClaw behavior (#169, thanks @maciej).
|
|
10
|
+
- CLI providers: add OpenClaw as a configurable CLI backend (`--cli openclaw`, `cli/openclaw/...`, `openclaw/...`) across config, daemon discovery, and docs (#165, thanks @yqf-ai).
|
|
11
|
+
- Config: allow setting a default summary length via `output.length`, and keep prompt-override runs aligned with the configured length/language defaults in both CLI and daemon flows (#178, thanks @maciej).
|
|
12
|
+
- Media detection/cache: recognize `.m3u8` HLS playlists as direct media inputs and preserve the playlist extension in the media cache (#159, thanks @mdsakalu).
|
|
13
|
+
|
|
14
|
+
### Fixes
|
|
15
|
+
|
|
16
|
+
- OpenAI models: route GPT-5.4 / GPT-5.4 mini / GPT-5.4 nano / GPT-5 mini / GPT-5 nano text requests through direct provider APIs instead of the stale generic parser, preserve the real `gpt-5.4-mini` / `gpt-5.4-nano` ids end-to-end, and fall GitHub Models OpenAI GPT-5-family requests back to `gpt-5-chat` when GitHub rejects the raw id.
|
|
17
|
+
- GitHub Models: make `github-copilot/...` shorthand inference family-based instead of pinning old exact prefixes, so newer ids like `gpt-5.4`, `o5`, and `claude-opus-4.6` normalize correctly when the backend exposes them.
|
|
18
|
+
- Slides/local video: transcribe direct videos for slide summaries, avoid fake local-file “Downloading audio” phases, and keep progress text visible while slide extraction runs.
|
|
19
|
+
- Chrome extension slides: restore slide text/session state more reliably so reruns and reloads do not leave stale or blank slide summaries.
|
|
20
|
+
- Transcription: retry Groq Whisper uploads via `curl` when Node multipart uploads get a 403, fixing local `.ogg` regressions on some environments.
|
|
21
|
+
- YouTube: detect obviously truncated caption-track transcripts on long videos and fall through to yt-dlp transcription instead of caching a broken partial result (#184, thanks @sportiz91).
|
|
22
|
+
- YouTube: treat yt-dlp “no audio stream” videos as a non-fatal unavailable transcript case so summarize can continue cleanly with an explanatory note (#161, thanks @mdsakalu).
|
|
23
|
+
- Cache: include the prompt `<context>` block in summary cache hashing and bump the cache format version so stale cross-page summary collisions cannot be reused (#171, thanks @mvance).
|
|
24
|
+
- CLI providers: stream OpenClaw prompts over stdin instead of `--message`, make daemon side-panel chat honor `openai.useChatCompletions`/custom OpenAI-compatible base URLs, and stop leaking raw Codex JSONL events like `thread.started` when no assistant text was produced.
|
|
25
|
+
- Chrome extension: add a copy button for rendered summaries so results can be copied without manual selection.
|
|
26
|
+
- Chrome extension chat: handle plain-string assistant replies in the side-panel agent loop instead of crashing on `.filter()` tool-call extraction (#186, thanks @Youpen-y).
|
|
27
|
+
- Windows containers: let `summarize daemon install` start the daemon for the current container session without Scheduled Task registration, keep `0.0.0.0` binding Windows-only, and probe slide tools by spawning commands when PATH lookup is unreliable (#152, thanks @mathicg).
|
|
28
|
+
- Windows daemon: keep Scheduled Task startup hidden without breaking `summarize daemon restart` or uninstall by tracking the hidden daemon PID and killing that process tree before reruns/removal (#146, thanks @mathicg).
|
|
29
|
+
- Whisper.cpp: honor config-resolved transcription env overrides for readiness checks, model display, and local transcription so custom binary/model paths work outside `process.env` (#160, thanks @mdsakalu).
|
|
30
|
+
- Daemon models: gracefully fall back for unrecognized custom models when using proxy base URLs instead of crashing on undefined API metadata (#175, thanks @douo).
|
|
31
|
+
- Docs/setup: switch Homebrew instructions from the old tap to the official `brew install summarize` formula, including the side-panel setup UI and release checklist (#172, thanks @zeldrisho).
|
|
32
|
+
- Chrome extension: detect blank `userAgentData.platform` browsers like Vivaldi by falling back to `navigator.platform` before choosing OS-specific setup instructions (#158, thanks @bytrangle).
|
|
33
|
+
- Firecrawl: reject `--firecrawl always` for YouTube URLs with an explicit guidance error instead of silently skipping Firecrawl on the transcript-first path (#145, thanks @steipete).
|
|
34
|
+
- YouTube: keep Gemini-only no-caption runs on the transcription path by forwarding the Google API key from the top-level URL flow into link-preview transcription config (#148, thanks @bytrangle).
|
|
35
|
+
- Homebrew: make the tap formula fail clearly on Linux instead of installing a macOS binary, and add generator/test coverage for the macOS-only guard (#147, thanks @steipete).
|
|
36
|
+
- Maintenance: update the GitHub Pages workflow to `actions/configure-pages@v6` and `actions/deploy-pages@v5` (#182, thanks @dependabot).
|
|
37
|
+
|
|
38
|
+
## 0.12.0 - 2026-03-11
|
|
4
39
|
|
|
5
40
|
### Features
|
|
6
41
|
|
package/README.md
CHANGED
|
@@ -5,16 +5,18 @@ Fast summaries from URLs, files, and media. Works in the terminal, a Chrome Side
|
|
|
5
5
|
## Highlights
|
|
6
6
|
|
|
7
7
|
- Chrome Side Panel **chat** (streaming agent + history) inside the sidebar.
|
|
8
|
-
- **
|
|
8
|
+
- **Video slides**: screenshots + OCR + transcript cards for YouTube, direct video URLs, and local video files.
|
|
9
9
|
- Media-aware summaries: auto‑detect video/audio vs page content.
|
|
10
|
+
- Coding CLI backends: Codex, Claude, Gemini, Cursor Agent, OpenClaw, OpenCode.
|
|
10
11
|
- Streaming Markdown + metrics + cache‑aware status.
|
|
11
12
|
- CLI supports URLs, files, podcasts, YouTube, audio/video, PDFs.
|
|
12
13
|
|
|
13
14
|
## Feature overview
|
|
14
15
|
|
|
15
16
|
- URLs, files, and media: web pages, PDFs, images, audio/video, YouTube, podcasts, RSS.
|
|
16
|
-
- Slide extraction for video sources (YouTube
|
|
17
|
+
- Slide extraction for video sources (YouTube, direct video URLs, local video files) with OCR + timestamped cards.
|
|
17
18
|
- Transcript-first media flow: published transcripts when available, then Groq/ONNX/whisper.cpp/AssemblyAI/Gemini/OpenAI/FAL transcription fallback when not.
|
|
19
|
+
- Coding CLI providers: Claude, Codex, Gemini, Cursor Agent, OpenClaw, OpenCode.
|
|
18
20
|
- Streaming output with Markdown rendering, metrics, and cache-aware status.
|
|
19
21
|
- Local, paid, and free models: OpenAI‑compatible local endpoints, paid providers, plus an OpenRouter free preset.
|
|
20
22
|
- Output modes: Markdown/text, JSON diagnostics, extract-only, metrics, timing, and cost estimates.
|
|
@@ -36,7 +38,7 @@ YouTube slide screenshots (from the browser):
|
|
|
36
38
|
|
|
37
39
|
1. Install the CLI (choose one):
|
|
38
40
|
- **npm** (cross‑platform): `npm i -g @steipete/summarize`
|
|
39
|
-
- **Homebrew** (
|
|
41
|
+
- **Homebrew** (Homebrew/core): `brew install summarize`
|
|
40
42
|
2. Install the extension (Chrome Web Store link above) and open the Side Panel.
|
|
41
43
|
3. The panel shows a token + install command. Run it in Terminal:
|
|
42
44
|
- `summarize daemon install --token <TOKEN>`
|
|
@@ -54,6 +56,7 @@ Notes:
|
|
|
54
56
|
- Auto mode summarizes on navigation (incl. SPAs); otherwise use the button.
|
|
55
57
|
- Daemon is localhost-only and requires a shared token; rerunning `summarize daemon install --token <TOKEN>` adds another paired browser token instead of invalidating the old one.
|
|
56
58
|
- Autostart: macOS (launchd), Linux (systemd user), Windows (Scheduled Task).
|
|
59
|
+
- Windows containers: `summarize daemon install` starts the daemon for the current container session but does not register a Scheduled Task. Run it each time the container starts or add that command to your container startup, and publish port `8787` so the host browser can reach the daemon.
|
|
57
60
|
- Tip: configure `free` via `summarize refresh-free` (needs `OPENROUTER_API_KEY`). Add `--set-default` to set model=`free`.
|
|
58
61
|
|
|
59
62
|
More:
|
|
@@ -112,14 +115,14 @@ npm i @steipete/summarize-core
|
|
|
112
115
|
import { createLinkPreviewClient } from "@steipete/summarize-core/content";
|
|
113
116
|
```
|
|
114
117
|
|
|
115
|
-
- Homebrew
|
|
118
|
+
- Homebrew:
|
|
116
119
|
|
|
117
120
|
```bash
|
|
118
|
-
brew install
|
|
121
|
+
brew install summarize
|
|
119
122
|
```
|
|
120
123
|
|
|
121
|
-
Homebrew
|
|
122
|
-
If Homebrew
|
|
124
|
+
Homebrew ships from `homebrew/core` via `brew install summarize`.
|
|
125
|
+
If Homebrew is unavailable in your environment, use the npm global install above.
|
|
123
126
|
|
|
124
127
|
### Optional local dependencies
|
|
125
128
|
|
|
@@ -207,10 +210,18 @@ Spotify episode page (best-effort; may fail for exclusives):
|
|
|
207
210
|
summarize "https://open.spotify.com/episode/5auotqWAXhhKyb9ymCuBJY"
|
|
208
211
|
```
|
|
209
212
|
|
|
213
|
+
HLS playlist:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
summarize "https://example.com/master.m3u8"
|
|
217
|
+
```
|
|
218
|
+
|
|
210
219
|
### Output length
|
|
211
220
|
|
|
212
221
|
`--length` controls how much output we ask for (guideline), not a hard cap.
|
|
213
222
|
|
|
223
|
+
Set a default in `~/.summarize/config.json` with `output.length`.
|
|
224
|
+
|
|
214
225
|
```bash
|
|
215
226
|
summarize "https://example.com" --length long
|
|
216
227
|
summarize "https://example.com" --length 20k
|
|
@@ -253,7 +264,12 @@ Use gateway-style ids: `<provider>/<model>`.
|
|
|
253
264
|
|
|
254
265
|
Examples:
|
|
255
266
|
|
|
267
|
+
- `openai/gpt-5.4`
|
|
268
|
+
- `openai/gpt-5.4-mini`
|
|
269
|
+
- `openai/gpt-5.4-nano`
|
|
256
270
|
- `openai/gpt-5-mini`
|
|
271
|
+
- `openai/gpt-5-nano`
|
|
272
|
+
- `github-copilot/gpt-5.4`
|
|
257
273
|
- `anthropic/claude-sonnet-4-5`
|
|
258
274
|
- `xai/grok-4-fast-non-reasoning`
|
|
259
275
|
- `google/gemini-3-flash`
|
|
@@ -261,6 +277,7 @@ Examples:
|
|
|
261
277
|
- `openrouter/openai/gpt-5-mini` (force OpenRouter)
|
|
262
278
|
|
|
263
279
|
Note: some models/providers do not support streaming or certain file media types. When that happens, the CLI prints a friendly error (or auto-disables streaming for that model when supported by the provider).
|
|
280
|
+
`gpt-5.4-mini` and `gpt-5.4-nano` are treated as real model ids; the same shorthand also works under `github-copilot/...`.
|
|
264
281
|
|
|
265
282
|
### Limits
|
|
266
283
|
|
|
@@ -283,7 +300,7 @@ Use `summarize --help` or `summarize help` for the full help text.
|
|
|
283
300
|
- `--length short|medium|long|xl|xxl|s|m|l|<chars>`
|
|
284
301
|
- `--language, --lang <language>`: output language (`auto` = match source)
|
|
285
302
|
- `--max-output-tokens <count>`: hard cap for LLM output tokens
|
|
286
|
-
- `--cli [provider]`: use a CLI provider (`--model cli/<provider>`). Supports `claude`, `gemini`, `codex`, `agent`. If omitted, uses auto selection with CLI enabled.
|
|
303
|
+
- `--cli [provider]`: use a CLI provider (`--model cli/<provider>`). Supports `claude`, `gemini`, `codex`, `agent`, `openclaw`, `opencode`. If omitted, uses auto selection with CLI enabled.
|
|
287
304
|
- `--stream auto|on|off`: stream LLM output (`auto` = TTY only; disabled in `--json` mode)
|
|
288
305
|
- `--plain`: keep raw output (no ANSI/OSC Markdown rendering)
|
|
289
306
|
- `--no-color`: disable ANSI colors
|
|
@@ -294,7 +311,7 @@ Use `summarize --help` or `summarize help` for the full help text.
|
|
|
294
311
|
- Install `uvx`: `brew install uv` (or https://astral.sh/uv/)
|
|
295
312
|
- `--extract`: print extracted content and exit (URLs only; stdin `-` is not supported)
|
|
296
313
|
- Deprecated alias: `--extract-only`
|
|
297
|
-
- `--slides`: extract slides for YouTube
|
|
314
|
+
- `--slides`: extract slides for YouTube, direct video URLs, or local video files and render them inline in the summary narrative (auto-renders inline in supported terminals)
|
|
298
315
|
- `--slides-ocr`: run OCR on extracted slides (requires `tesseract`)
|
|
299
316
|
- `--slides-dir <dir>`: base output dir for slide images (default `./slides`)
|
|
300
317
|
- `--slides-scene-threshold <value>`: scene detection threshold (0.1-1.0)
|
|
@@ -304,7 +321,7 @@ Use `summarize --help` or `summarize help` for the full help text.
|
|
|
304
321
|
- `--verbose`: debug/diagnostics on stderr
|
|
305
322
|
- `--metrics off|on|detailed`: metrics output (default `on`)
|
|
306
323
|
|
|
307
|
-
### Coding CLIs (Codex, Claude, Gemini, Agent)
|
|
324
|
+
### Coding CLIs (Codex, Claude, Gemini, Agent, OpenClaw, OpenCode)
|
|
308
325
|
|
|
309
326
|
Summarize can use common coding CLIs as local model backends:
|
|
310
327
|
|
|
@@ -312,11 +329,13 @@ Summarize can use common coding CLIs as local model backends:
|
|
|
312
329
|
- `claude` -> `--cli claude` / `--model cli/claude/<model>`
|
|
313
330
|
- `gemini` -> `--cli gemini` / `--model cli/gemini/<model>`
|
|
314
331
|
- `agent` (Cursor Agent CLI) -> `--cli agent` / `--model cli/agent/<model>`
|
|
332
|
+
- `openclaw` -> `--cli openclaw` / `--model cli/openclaw/<model>` or `--model openclaw/<model>`
|
|
333
|
+
- `opencode` -> `--cli opencode` / `--model cli/opencode/<model>` (`--model cli/opencode` uses the OpenCode runtime default)
|
|
315
334
|
|
|
316
335
|
Requirements:
|
|
317
336
|
|
|
318
|
-
- Binary installed and on `PATH` (or set `CODEX_PATH`, `CLAUDE_PATH`, `GEMINI_PATH`, `AGENT_PATH`)
|
|
319
|
-
- Provider authenticated (`codex login`, `claude auth`, `gemini` login flow, `agent login` or `CURSOR_API_KEY`)
|
|
337
|
+
- Binary installed and on `PATH` (or set `CODEX_PATH`, `CLAUDE_PATH`, `GEMINI_PATH`, `AGENT_PATH`, `OPENCLAW_PATH`, `OPENCODE_PATH`)
|
|
338
|
+
- Provider authenticated (`codex login`, `claude auth`, `gemini` login flow, `agent login` or `CURSOR_API_KEY`, `opencode auth login`)
|
|
320
339
|
|
|
321
340
|
Quick smoke test:
|
|
322
341
|
|
|
@@ -327,13 +346,15 @@ summarize --cli codex --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
|
327
346
|
summarize --cli claude --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
328
347
|
summarize --cli gemini --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
329
348
|
summarize --cli agent --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
349
|
+
summarize --cli openclaw --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
350
|
+
summarize --cli opencode --plain --timeout 2m /tmp/summarize-cli-smoke.txt
|
|
330
351
|
```
|
|
331
352
|
|
|
332
353
|
Set explicit CLI allowlist/order:
|
|
333
354
|
|
|
334
355
|
```json
|
|
335
356
|
{
|
|
336
|
-
"cli": { "enabled": ["codex", "claude", "gemini", "agent"] }
|
|
357
|
+
"cli": { "enabled": ["codex", "claude", "gemini", "agent", "openclaw", "opencode"] }
|
|
337
358
|
}
|
|
338
359
|
```
|
|
339
360
|
|
|
@@ -345,7 +366,7 @@ Configure implicit auto CLI fallback:
|
|
|
345
366
|
"autoFallback": {
|
|
346
367
|
"enabled": true,
|
|
347
368
|
"onlyWhenNoApiKeys": true,
|
|
348
|
-
"order": ["claude", "gemini", "codex", "agent"]
|
|
369
|
+
"order": ["claude", "gemini", "codex", "agent", "openclaw", "opencode"]
|
|
349
370
|
}
|
|
350
371
|
}
|
|
351
372
|
}
|
|
@@ -361,7 +382,7 @@ CLI attempts are prepended when:
|
|
|
361
382
|
- `cli.enabled` is set (explicit allowlist/order), or
|
|
362
383
|
- implicit auto selection is active and `cli.autoFallback` is enabled.
|
|
363
384
|
|
|
364
|
-
Default fallback behavior: only when no API keys are configured, order `claude, gemini, codex, agent`, and remember/prioritize last successful provider (`~/.summarize/cli-state.json`).
|
|
385
|
+
Default fallback behavior: only when no API keys are configured, order `claude, gemini, codex, agent, openclaw, opencode`, and remember/prioritize last successful provider (`~/.summarize/cli-state.json`).
|
|
365
386
|
|
|
366
387
|
Set explicit CLI attempts:
|
|
367
388
|
|
|
@@ -418,7 +439,7 @@ Environment variables for yt-dlp mode:
|
|
|
418
439
|
|
|
419
440
|
Apify costs money but tends to be more reliable when captions exist.
|
|
420
441
|
|
|
421
|
-
### Slide extraction (YouTube + direct video URLs)
|
|
442
|
+
### Slide extraction (YouTube + direct video URLs + local video files)
|
|
422
443
|
|
|
423
444
|
Extract slide screenshots (scene detection via `ffmpeg`) and optional OCR:
|
|
424
445
|
|
|
@@ -431,6 +452,7 @@ Requirements:
|
|
|
431
452
|
```bash
|
|
432
453
|
summarize "https://www.youtube.com/watch?v=..." --slides
|
|
433
454
|
summarize "https://www.youtube.com/watch?v=..." --slides --slides-ocr
|
|
455
|
+
summarize "/path/to/video.webm" --slides
|
|
434
456
|
```
|
|
435
457
|
|
|
436
458
|
Outputs are written under `./slides/<sourceId>/` (or `--slides-dir`). OCR results are included in JSON output
|
|
@@ -439,7 +461,7 @@ extractor also samples at a fixed interval to improve coverage.
|
|
|
439
461
|
When using `--slides`, supported terminals (kitty/iTerm/Konsole) render inline thumbnails automatically inside the
|
|
440
462
|
summary narrative (the model inserts `[slide:N]` markers). Timestamp links are clickable when the terminal supports
|
|
441
463
|
OSC-8 (YouTube/Vimeo/Loom/Dropbox). If inline images are unsupported, Summarize prints a note with the on-disk
|
|
442
|
-
slide directory.
|
|
464
|
+
slide directory. Local video files stay on the slide-aware path, transcribe in place, and avoid fake download labels.
|
|
443
465
|
|
|
444
466
|
Use `--slides --extract` to print the full timed transcript and insert slide images inline at matching timestamps.
|
|
445
467
|
|
|
@@ -511,6 +533,7 @@ Supported keys today:
|
|
|
511
533
|
{
|
|
512
534
|
"model": { "id": "openai/gpt-5-mini" },
|
|
513
535
|
"env": { "OPENAI_API_KEY": "sk-..." },
|
|
536
|
+
"output": { "length": "long" },
|
|
514
537
|
"ui": { "theme": "ember" }
|
|
515
538
|
}
|
|
516
539
|
```
|
|
@@ -530,6 +553,7 @@ Also supported:
|
|
|
530
553
|
- `models` (define presets selectable via `--model <preset>`)
|
|
531
554
|
- `env` (generic env var defaults; process env still wins)
|
|
532
555
|
- `apiKeys` (legacy shortcut, mapped to env names; prefer `env` for new configs)
|
|
556
|
+
- `output.length` (default `--length`: `short|medium|long|xl|xxl|20k`)
|
|
533
557
|
- `cache.media` (media download cache: TTL 7 days, 2048 MB cap by default; `--no-media-cache` disables)
|
|
534
558
|
- `media.videoMode: "auto"|"transcript"|"understand"`
|
|
535
559
|
- `slides.enabled` / `slides.max` / `slides.ocr` / `slides.dir` (defaults for `--slides`)
|
package/dist/cli.js
CHANGED
package/dist/esm/cache-keys.js
CHANGED
|
@@ -20,8 +20,16 @@ export function extractTaggedBlock(prompt, tag) {
|
|
|
20
20
|
return prompt.slice(start + open.length, end).trim();
|
|
21
21
|
}
|
|
22
22
|
export function buildPromptHash(prompt) {
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const instructionsContent = extractTaggedBlock(prompt, "instructions");
|
|
24
|
+
const contextContent = extractTaggedBlock(prompt, "context");
|
|
25
|
+
// If at least one of the tags is present (even if empty), hash their contents.
|
|
26
|
+
if (instructionsContent !== null || contextContent !== null) {
|
|
27
|
+
const instructions = instructionsContent ?? "";
|
|
28
|
+
const context = contextContent ?? "";
|
|
29
|
+
return hashString(`${instructions}\n${context}`.trim());
|
|
30
|
+
}
|
|
31
|
+
// Fallback for prompts without any tags.
|
|
32
|
+
return hashString(prompt.trim());
|
|
25
33
|
}
|
|
26
34
|
export function buildPromptContentHash({ prompt, fallbackContent, }) {
|
|
27
35
|
const content = extractTaggedBlock(prompt, "content") ?? fallbackContent ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-keys.js","sourceRoot":"","sources":["../../src/cache-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cache-keys.js","sourceRoot":"","sources":["../../src/cache-keys.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/cache.js
CHANGED
|
@@ -3,7 +3,7 @@ import { dirname, isAbsolute, join, resolve as resolvePath } from "node:path";
|
|
|
3
3
|
import { buildExtractCacheKeyValue, buildSlidesCacheKeyValue, buildSummaryCacheKeyValue, buildTranscriptCacheKeyValue, } from "./cache-keys.js";
|
|
4
4
|
export { buildExtractCacheKeyValue, buildLanguageKey, buildLengthKey, buildPromptContentHash, buildPromptHash, buildSlidesCacheKeyValue, buildSummaryCacheKeyValue, buildTranscriptCacheKeyValue, hashJson, hashString, normalizeContentForHash, extractTaggedBlock, } from "./cache-keys.js";
|
|
5
5
|
import { cleanupSlidesPayload } from "./cache-slides-cleanup.js";
|
|
6
|
-
export const CACHE_FORMAT_VERSION =
|
|
6
|
+
export const CACHE_FORMAT_VERSION = 2;
|
|
7
7
|
export const DEFAULT_CACHE_MAX_MB = 512;
|
|
8
8
|
export const DEFAULT_CACHE_TTL_DAYS = 30;
|
|
9
9
|
const TRANSCRIPT_SOURCES = [
|
|
@@ -6,7 +6,12 @@ export function parseOptionalBaseUrl(raw) {
|
|
|
6
6
|
}
|
|
7
7
|
export function parseCliProvider(value, path) {
|
|
8
8
|
const trimmed = typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
9
|
-
if (trimmed === "claude" ||
|
|
9
|
+
if (trimmed === "claude" ||
|
|
10
|
+
trimmed === "codex" ||
|
|
11
|
+
trimmed === "gemini" ||
|
|
12
|
+
trimmed === "agent" ||
|
|
13
|
+
trimmed === "openclaw" ||
|
|
14
|
+
trimmed === "opencode") {
|
|
10
15
|
return trimmed;
|
|
11
16
|
}
|
|
12
17
|
throw new Error(`Invalid config file ${path}: unknown CLI provider "${String(value)}".`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-helpers.js","sourceRoot":"","sources":["../../../src/config/parse-helpers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAC3D,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,
|
|
1
|
+
{"version":3,"file":"parse-helpers.js","sourceRoot":"","sources":["../../../src/config/parse-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseLengthArg } from "../flags.js";
|
|
1
2
|
import { isCliThemeName, listCliThemes } from "../tty/theme.js";
|
|
2
3
|
import { isRecord, parseCliProvider, parseLoggingFormat, parseLoggingLevel, parseOptionalBaseUrl, parseStringArray, } from "./parse-helpers.js";
|
|
3
4
|
export function parseProviderBaseUrlConfig(raw, path, providerName) {
|
|
@@ -237,6 +238,12 @@ export function parseCliConfig(root, path) {
|
|
|
237
238
|
const codex = value.codex ? parseCliProviderConfig(value.codex, path, "codex") : undefined;
|
|
238
239
|
const gemini = value.gemini ? parseCliProviderConfig(value.gemini, path, "gemini") : undefined;
|
|
239
240
|
const agent = value.agent ? parseCliProviderConfig(value.agent, path, "agent") : undefined;
|
|
241
|
+
const openclaw = value.openclaw
|
|
242
|
+
? parseCliProviderConfig(value.openclaw, path, "openclaw")
|
|
243
|
+
: undefined;
|
|
244
|
+
const opencode = value.opencode
|
|
245
|
+
? parseCliProviderConfig(value.opencode, path, "opencode")
|
|
246
|
+
: undefined;
|
|
240
247
|
if (typeof value.autoFallback !== "undefined" && typeof value.magicAuto !== "undefined") {
|
|
241
248
|
throw new Error(`Invalid config file ${path}: use only one of "cli.autoFallback" or legacy "cli.magicAuto".`);
|
|
242
249
|
}
|
|
@@ -262,6 +269,8 @@ export function parseCliConfig(root, path) {
|
|
|
262
269
|
codex ||
|
|
263
270
|
gemini ||
|
|
264
271
|
agent ||
|
|
272
|
+
openclaw ||
|
|
273
|
+
opencode ||
|
|
265
274
|
autoFallback ||
|
|
266
275
|
promptOverride ||
|
|
267
276
|
typeof allowTools === "boolean" ||
|
|
@@ -273,6 +282,8 @@ export function parseCliConfig(root, path) {
|
|
|
273
282
|
...(codex ? { codex } : {}),
|
|
274
283
|
...(gemini ? { gemini } : {}),
|
|
275
284
|
...(agent ? { agent } : {}),
|
|
285
|
+
...(openclaw ? { openclaw } : {}),
|
|
286
|
+
...(opencode ? { opencode } : {}),
|
|
276
287
|
...(autoFallback ? { autoFallback } : {}),
|
|
277
288
|
...(promptOverride ? { promptOverride } : {}),
|
|
278
289
|
...(typeof allowTools === "boolean" ? { allowTools } : {}),
|
|
@@ -291,7 +302,30 @@ export function parseOutputConfig(root, path) {
|
|
|
291
302
|
const language = typeof value.language === "string" && value.language.trim().length > 0
|
|
292
303
|
? value.language.trim()
|
|
293
304
|
: undefined;
|
|
294
|
-
|
|
305
|
+
const length = (() => {
|
|
306
|
+
if (typeof value.length === "undefined")
|
|
307
|
+
return undefined;
|
|
308
|
+
if (typeof value.length !== "string") {
|
|
309
|
+
throw new Error(`Invalid config file ${path}: "output.length" must be a string.`);
|
|
310
|
+
}
|
|
311
|
+
const trimmed = value.length.trim();
|
|
312
|
+
if (!trimmed) {
|
|
313
|
+
throw new Error(`Invalid config file ${path}: "output.length" must not be empty.`);
|
|
314
|
+
}
|
|
315
|
+
try {
|
|
316
|
+
parseLengthArg(trimmed);
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
throw new Error(`Invalid config file ${path}: "output.length" is invalid: ${error.message}`);
|
|
320
|
+
}
|
|
321
|
+
return trimmed;
|
|
322
|
+
})();
|
|
323
|
+
return typeof language === "string" || typeof length === "string"
|
|
324
|
+
? {
|
|
325
|
+
...(typeof language === "string" ? { language } : {}),
|
|
326
|
+
...(typeof length === "string" ? { length } : {}),
|
|
327
|
+
}
|
|
328
|
+
: undefined;
|
|
295
329
|
}
|
|
296
330
|
export function parseUiConfig(root, path) {
|
|
297
331
|
const value = root.ui;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../src/config/sections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../src/config/sections.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/costs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/costs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/costs.ts"],"names":[],"mappings":"AAmCA,SAAS,SAAS,CAAC,MAA4B;IAC7C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,GAAG,IAAI,KAAK,CAAC;YACb,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,iBAAiB,EACjB,aAAa,GAKd;IACC,MAAM,MAAM,GAAG,IAAI,GAAG,EAUnB,CAAC;IAEJ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC;QACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,EAAE,gBAAgB,IAAI,IAAI,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;gBACpC,WAAW,EAAE,CAAC,WAAW,CAAC;aAC3B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,YAAY;YACZ,gBAAgB;YAChB,WAAW;SACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;QACH,QAAQ,EAAE;YACR,SAAS,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE;YAC1C,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE;SACnC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getModel } from "@mariozechner/pi-ai";
|
|
2
|
+
import { isOpenRouterBaseUrl } from "@steipete/summarize-core";
|
|
2
3
|
import { createSyntheticModel } from "../llm/providers/shared.js";
|
|
3
4
|
import { buildAutoModelAttempts, envHasKey } from "../model-auto.js";
|
|
4
5
|
import { parseCliUserModelId } from "../run/env.js";
|
|
@@ -25,14 +26,52 @@ function parseProviderModelId(modelId) {
|
|
|
25
26
|
model: trimmed.slice(slash + 1),
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
|
-
function
|
|
29
|
+
function isCustomOpenAiBaseUrl(baseUrl) {
|
|
29
30
|
if (!baseUrl)
|
|
30
|
-
return
|
|
31
|
-
|
|
31
|
+
return false;
|
|
32
|
+
try {
|
|
33
|
+
return new URL(baseUrl).host !== "api.openai.com";
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function overrideModelGatewaySettings({ provider, model, baseUrl, forceOpenAiChatCompletions, }) {
|
|
40
|
+
const nextModel = baseUrl ? { ...model, baseUrl } : model;
|
|
41
|
+
if (provider !== "openai")
|
|
42
|
+
return nextModel;
|
|
43
|
+
const effectiveBaseUrl = typeof nextModel.baseUrl === "string" && nextModel.baseUrl.trim().length > 0
|
|
44
|
+
? nextModel.baseUrl.trim()
|
|
45
|
+
: null;
|
|
46
|
+
const shouldUseChatCompletions = forceOpenAiChatCompletions ||
|
|
47
|
+
isCustomOpenAiBaseUrl(effectiveBaseUrl) ||
|
|
48
|
+
(effectiveBaseUrl !== null && isOpenRouterBaseUrl(effectiveBaseUrl));
|
|
49
|
+
if (!shouldUseChatCompletions)
|
|
50
|
+
return nextModel;
|
|
51
|
+
const headers = effectiveBaseUrl !== null && isOpenRouterBaseUrl(effectiveBaseUrl)
|
|
52
|
+
? {
|
|
53
|
+
...(nextModel.headers ?? {}),
|
|
54
|
+
"HTTP-Referer": "https://github.com/steipete/summarize",
|
|
55
|
+
"X-Title": "summarize",
|
|
56
|
+
}
|
|
57
|
+
: nextModel.headers;
|
|
58
|
+
return {
|
|
59
|
+
...nextModel,
|
|
60
|
+
api: "openai-completions",
|
|
61
|
+
...(headers ? { headers } : {}),
|
|
62
|
+
};
|
|
32
63
|
}
|
|
33
|
-
function resolveModelWithFallback({ provider, modelId, baseUrl, }) {
|
|
64
|
+
function resolveModelWithFallback({ provider, modelId, baseUrl, forceOpenAiChatCompletions, }) {
|
|
34
65
|
try {
|
|
35
|
-
|
|
66
|
+
const model = getModel(provider, modelId);
|
|
67
|
+
if (!model)
|
|
68
|
+
throw new Error(`Model not found: ${provider}/${modelId}`);
|
|
69
|
+
return overrideModelGatewaySettings({
|
|
70
|
+
provider,
|
|
71
|
+
model: model,
|
|
72
|
+
baseUrl,
|
|
73
|
+
forceOpenAiChatCompletions,
|
|
74
|
+
});
|
|
36
75
|
}
|
|
37
76
|
catch (error) {
|
|
38
77
|
if (baseUrl) {
|
|
@@ -100,7 +139,11 @@ function buildNoAgentModelAvailableError({ attempts, envForAuto, cliAvailability
|
|
|
100
139
|
return "codex";
|
|
101
140
|
if (attempt.requiredEnv === "CLI_GEMINI")
|
|
102
141
|
return "gemini";
|
|
103
|
-
|
|
142
|
+
if (attempt.requiredEnv === "CLI_AGENT")
|
|
143
|
+
return "agent";
|
|
144
|
+
if (attempt.requiredEnv === "CLI_OPENCLAW")
|
|
145
|
+
return "openclaw";
|
|
146
|
+
return "opencode";
|
|
104
147
|
})
|
|
105
148
|
.filter((provider) => !cliAvailability[provider])));
|
|
106
149
|
const details = [
|
|
@@ -115,7 +158,7 @@ function buildNoAgentModelAvailableError({ attempts, envForAuto, cliAvailability
|
|
|
115
158
|
return new Error(details);
|
|
116
159
|
}
|
|
117
160
|
export async function resolveAgentModel({ env, pageContent, modelOverride, }) {
|
|
118
|
-
const { config, configPath, configForCli, apiKey, openrouterApiKey, anthropicApiKey, googleApiKey, xaiApiKey, zaiApiKey, providerBaseUrls, zaiBaseUrl, nvidiaApiKey, nvidiaBaseUrl, envForAuto, cliAvailability, } = resolveRunContextState({
|
|
161
|
+
const { config, configPath, configForCli, apiKey, openrouterApiKey, anthropicApiKey, googleApiKey, xaiApiKey, zaiApiKey, providerBaseUrls, zaiBaseUrl, nvidiaApiKey, nvidiaBaseUrl, envForAuto, cliAvailability, openaiUseChatCompletions, } = resolveRunContextState({
|
|
119
162
|
env,
|
|
120
163
|
envForRun: env,
|
|
121
164
|
programOpts: { videoMode: "auto" },
|
|
@@ -155,7 +198,12 @@ export async function resolveAgentModel({ env, pageContent, modelOverride, }) {
|
|
|
155
198
|
const providerForPiAi = provider === "nvidia" ? "openai" : provider;
|
|
156
199
|
return {
|
|
157
200
|
provider,
|
|
158
|
-
model: resolveModelWithFallback({
|
|
201
|
+
model: resolveModelWithFallback({
|
|
202
|
+
provider: providerForPiAi,
|
|
203
|
+
modelId,
|
|
204
|
+
baseUrl,
|
|
205
|
+
forceOpenAiChatCompletions: provider === "openai" && openaiUseChatCompletions,
|
|
206
|
+
}),
|
|
159
207
|
};
|
|
160
208
|
};
|
|
161
209
|
if (requestedModel.kind === "fixed") {
|