@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.
Files changed (210) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/README.md +41 -17
  3. package/dist/cli.js +1 -1
  4. package/dist/esm/cache-keys.js +10 -2
  5. package/dist/esm/cache-keys.js.map +1 -1
  6. package/dist/esm/cache.js +1 -1
  7. package/dist/esm/config/parse-helpers.js +6 -1
  8. package/dist/esm/config/parse-helpers.js.map +1 -1
  9. package/dist/esm/config/sections.js +35 -1
  10. package/dist/esm/config/sections.js.map +1 -1
  11. package/dist/esm/costs.js.map +1 -1
  12. package/dist/esm/daemon/agent-model.js +56 -8
  13. package/dist/esm/daemon/agent-model.js.map +1 -1
  14. package/dist/esm/daemon/chat.js +52 -4
  15. package/dist/esm/daemon/chat.js.map +1 -1
  16. package/dist/esm/daemon/cli.js +100 -5
  17. package/dist/esm/daemon/cli.js.map +1 -1
  18. package/dist/esm/daemon/env-snapshot.js +2 -0
  19. package/dist/esm/daemon/env-snapshot.js.map +1 -1
  20. package/dist/esm/daemon/flow-context.js +76 -73
  21. package/dist/esm/daemon/flow-context.js.map +1 -1
  22. package/dist/esm/daemon/models.js +10 -0
  23. package/dist/esm/daemon/models.js.map +1 -1
  24. package/dist/esm/daemon/schtasks.js +101 -5
  25. package/dist/esm/daemon/schtasks.js.map +1 -1
  26. package/dist/esm/daemon/server.js +8 -1
  27. package/dist/esm/daemon/server.js.map +1 -1
  28. package/dist/esm/daemon/windows-container.js +21 -0
  29. package/dist/esm/daemon/windows-container.js.map +1 -0
  30. package/dist/esm/llm/cli-provider-output.js +225 -1
  31. package/dist/esm/llm/cli-provider-output.js.map +1 -1
  32. package/dist/esm/llm/cli.js +95 -7
  33. package/dist/esm/llm/cli.js.map +1 -1
  34. package/dist/esm/llm/generate-text-document.js.map +1 -1
  35. package/dist/esm/llm/generate-text-shared.js +22 -3
  36. package/dist/esm/llm/generate-text-shared.js.map +1 -1
  37. package/dist/esm/llm/generate-text-stream.js +34 -1
  38. package/dist/esm/llm/generate-text-stream.js.map +1 -1
  39. package/dist/esm/llm/generate-text.js +33 -6
  40. package/dist/esm/llm/generate-text.js.map +1 -1
  41. package/dist/esm/llm/github-models.js +45 -0
  42. package/dist/esm/llm/github-models.js.map +1 -0
  43. package/dist/esm/llm/html-to-markdown.js.map +1 -1
  44. package/dist/esm/llm/model-id.js +18 -2
  45. package/dist/esm/llm/model-id.js.map +1 -1
  46. package/dist/esm/llm/provider-profile.js +44 -2
  47. package/dist/esm/llm/provider-profile.js.map +1 -1
  48. package/dist/esm/llm/providers/models.js +6 -1
  49. package/dist/esm/llm/providers/models.js.map +1 -1
  50. package/dist/esm/llm/providers/openai.js +243 -5
  51. package/dist/esm/llm/providers/openai.js.map +1 -1
  52. package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
  53. package/dist/esm/media-cache.js +3 -0
  54. package/dist/esm/media-cache.js.map +1 -1
  55. package/dist/esm/model-auto-cli.js +7 -5
  56. package/dist/esm/model-auto-cli.js.map +1 -1
  57. package/dist/esm/model-spec.js +39 -2
  58. package/dist/esm/model-spec.js.map +1 -1
  59. package/dist/esm/run/attachments.js.map +1 -1
  60. package/dist/esm/run/cli-fallback-state.js +6 -1
  61. package/dist/esm/run/cli-fallback-state.js.map +1 -1
  62. package/dist/esm/run/env.js +21 -3
  63. package/dist/esm/run/env.js.map +1 -1
  64. package/dist/esm/run/flows/asset/summary-attempts.js +9 -1
  65. package/dist/esm/run/flows/asset/summary-attempts.js.map +1 -1
  66. package/dist/esm/run/flows/asset/summary.js +11 -0
  67. package/dist/esm/run/flows/asset/summary.js.map +1 -1
  68. package/dist/esm/run/flows/url/extraction-session.js +174 -0
  69. package/dist/esm/run/flows/url/extraction-session.js.map +1 -0
  70. package/dist/esm/run/flows/url/fetch-options.js +32 -0
  71. package/dist/esm/run/flows/url/fetch-options.js.map +1 -0
  72. package/dist/esm/run/flows/url/flow-progress.js +11 -7
  73. package/dist/esm/run/flows/url/flow-progress.js.map +1 -1
  74. package/dist/esm/run/flows/url/flow.js +64 -385
  75. package/dist/esm/run/flows/url/flow.js.map +1 -1
  76. package/dist/esm/run/flows/url/markdown.js +18 -1
  77. package/dist/esm/run/flows/url/markdown.js.map +1 -1
  78. package/dist/esm/run/flows/url/progress-status-state.js +28 -0
  79. package/dist/esm/run/flows/url/progress-status-state.js.map +1 -0
  80. package/dist/esm/run/flows/url/progress-status.js +18 -23
  81. package/dist/esm/run/flows/url/progress-status.js.map +1 -1
  82. package/dist/esm/run/flows/url/slides-session.js +159 -0
  83. package/dist/esm/run/flows/url/slides-session.js.map +1 -0
  84. package/dist/esm/run/flows/url/summary-finish.js +10 -4
  85. package/dist/esm/run/flows/url/summary-finish.js.map +1 -1
  86. package/dist/esm/run/flows/url/summary-resolution.js +8 -1
  87. package/dist/esm/run/flows/url/summary-resolution.js.map +1 -1
  88. package/dist/esm/run/flows/url/summary.js +115 -149
  89. package/dist/esm/run/flows/url/summary.js.map +1 -1
  90. package/dist/esm/run/flows/url/types.js +31 -1
  91. package/dist/esm/run/flows/url/types.js.map +1 -1
  92. package/dist/esm/run/flows/url/video-only.js +68 -0
  93. package/dist/esm/run/flows/url/video-only.js.map +1 -0
  94. package/dist/esm/run/help.js +6 -2
  95. package/dist/esm/run/help.js.map +1 -1
  96. package/dist/esm/run/run-config.js +1 -1
  97. package/dist/esm/run/run-config.js.map +1 -1
  98. package/dist/esm/run/run-models.js +35 -5
  99. package/dist/esm/run/run-models.js.map +1 -1
  100. package/dist/esm/run/run-settings-parse.js +4 -0
  101. package/dist/esm/run/run-settings-parse.js.map +1 -1
  102. package/dist/esm/run/run-settings.js +6 -0
  103. package/dist/esm/run/run-settings.js.map +1 -1
  104. package/dist/esm/run/runner-contexts.js +70 -64
  105. package/dist/esm/run/runner-contexts.js.map +1 -1
  106. package/dist/esm/run/runner-execution.js +22 -2
  107. package/dist/esm/run/runner-execution.js.map +1 -1
  108. package/dist/esm/run/runner-plan.js +369 -0
  109. package/dist/esm/run/runner-plan.js.map +1 -0
  110. package/dist/esm/run/runner-slides.js +14 -3
  111. package/dist/esm/run/runner-slides.js.map +1 -1
  112. package/dist/esm/run/runner.js +50 -398
  113. package/dist/esm/run/runner.js.map +1 -1
  114. package/dist/esm/run/slides-cli.js +3 -2
  115. package/dist/esm/run/slides-cli.js.map +1 -1
  116. package/dist/esm/run/streaming.js +1 -0
  117. package/dist/esm/run/streaming.js.map +1 -1
  118. package/dist/esm/run/summary-engine.js +24 -0
  119. package/dist/esm/run/summary-engine.js.map +1 -1
  120. package/dist/esm/run/summary-llm.js.map +1 -1
  121. package/dist/esm/shared/slides-text.js +2 -0
  122. package/dist/esm/shared/slides-text.js.map +1 -0
  123. package/dist/esm/slides/extract.js +43 -66
  124. package/dist/esm/slides/extract.js.map +1 -1
  125. package/dist/esm/slides/index.js +2 -1
  126. package/dist/esm/slides/index.js.map +1 -1
  127. package/dist/esm/slides/ingest.js +27 -0
  128. package/dist/esm/slides/ingest.js.map +1 -1
  129. package/dist/esm/slides/source.js +80 -0
  130. package/dist/esm/slides/source.js.map +1 -0
  131. package/dist/esm/tty/progress/fetch-html.js +6 -0
  132. package/dist/esm/tty/progress/fetch-html.js.map +1 -1
  133. package/dist/esm/tty/progress/transcript-state.js +202 -0
  134. package/dist/esm/tty/progress/transcript-state.js.map +1 -0
  135. package/dist/esm/tty/progress/transcript.js +43 -207
  136. package/dist/esm/tty/progress/transcript.js.map +1 -1
  137. package/dist/esm/tty/spinner.js +14 -6
  138. package/dist/esm/tty/spinner.js.map +1 -1
  139. package/dist/esm/tty/website-progress.js +11 -0
  140. package/dist/esm/tty/website-progress.js.map +1 -1
  141. package/dist/esm/version.js +1 -1
  142. package/dist/types/cache-keys.d.ts +1 -1
  143. package/dist/types/cache.d.ts +1 -1
  144. package/dist/types/config/sections.d.ts +2 -1
  145. package/dist/types/config/types.d.ts +9 -1
  146. package/dist/types/costs.d.ts +1 -1
  147. package/dist/types/daemon/env-snapshot.d.ts +1 -1
  148. package/dist/types/daemon/flow-context.d.ts +1 -1
  149. package/dist/types/daemon/models.d.ts +2 -0
  150. package/dist/types/daemon/schtasks.d.ts +2 -1
  151. package/dist/types/daemon/server.d.ts +1 -0
  152. package/dist/types/daemon/windows-container.d.ts +1 -0
  153. package/dist/types/llm/cli-provider-output.d.ts +10 -1
  154. package/dist/types/llm/generate-text-document.d.ts +2 -1
  155. package/dist/types/llm/generate-text-shared.d.ts +7 -0
  156. package/dist/types/llm/generate-text-stream.d.ts +2 -1
  157. package/dist/types/llm/generate-text.d.ts +3 -2
  158. package/dist/types/llm/github-models.d.ts +5 -0
  159. package/dist/types/llm/html-to-markdown.d.ts +2 -1
  160. package/dist/types/llm/model-id.d.ts +1 -1
  161. package/dist/types/llm/provider-profile.d.ts +4 -4
  162. package/dist/types/llm/providers/openai.d.ts +9 -5
  163. package/dist/types/llm/providers/types.d.ts +1 -0
  164. package/dist/types/llm/transcript-to-markdown.d.ts +2 -1
  165. package/dist/types/model-spec.d.ts +4 -3
  166. package/dist/types/run/attachments.d.ts +3 -2
  167. package/dist/types/run/env.d.ts +5 -0
  168. package/dist/types/run/flows/asset/summary.d.ts +10 -0
  169. package/dist/types/run/flows/url/extraction-session.d.ts +22 -0
  170. package/dist/types/run/flows/url/fetch-options.d.ts +29 -0
  171. package/dist/types/run/flows/url/flow-progress.d.ts +3 -1
  172. package/dist/types/run/flows/url/markdown.d.ts +1 -1
  173. package/dist/types/run/flows/url/progress-status-state.d.ts +17 -0
  174. package/dist/types/run/flows/url/progress-status.d.ts +1 -0
  175. package/dist/types/run/flows/url/slides-session.d.ts +26 -0
  176. package/dist/types/run/flows/url/types.d.ts +16 -0
  177. package/dist/types/run/flows/url/video-only.d.ts +27 -0
  178. package/dist/types/run/run-settings.d.ts +2 -1
  179. package/dist/types/run/runner-contexts.d.ts +3 -28
  180. package/dist/types/run/runner-execution.d.ts +1 -0
  181. package/dist/types/run/runner-plan.d.ts +19 -0
  182. package/dist/types/run/runner-slides.d.ts +2 -1
  183. package/dist/types/run/streaming.d.ts +2 -1
  184. package/dist/types/run/summary-engine.d.ts +1 -1
  185. package/dist/types/run/summary-llm.d.ts +2 -1
  186. package/dist/types/run/types.d.ts +3 -2
  187. package/dist/types/shared/slides-text.d.ts +1 -0
  188. package/dist/types/slides/extract.d.ts +1 -6
  189. package/dist/types/slides/index.d.ts +2 -1
  190. package/dist/types/slides/source.d.ts +8 -0
  191. package/dist/types/tty/progress/fetch-html.d.ts +1 -0
  192. package/dist/types/tty/progress/transcript-state.d.ts +27 -0
  193. package/dist/types/tty/progress/transcript.d.ts +1 -0
  194. package/dist/types/tty/spinner.d.ts +1 -0
  195. package/dist/types/version.d.ts +1 -1
  196. package/docs/README.md +1 -1
  197. package/docs/agent.md +1 -1
  198. package/docs/assets/site.css +11 -0
  199. package/docs/chrome-extension.md +7 -1
  200. package/docs/cli.md +24 -6
  201. package/docs/config.md +19 -5
  202. package/docs/extract-only.md +2 -2
  203. package/docs/firecrawl.md +2 -1
  204. package/docs/llm.md +29 -3
  205. package/docs/media.md +6 -0
  206. package/docs/releasing.md +9 -12
  207. package/docs/site/docs/chrome-extension.html +1 -1
  208. package/docs/transcript-provider-flow.md +7 -0
  209. package/docs/website.md +2 -1
  210. package/package.json +15 -14
package/CHANGELOG.md CHANGED
@@ -1,6 +1,41 @@
1
1
  # Changelog
2
2
 
3
- ## 0.12.0 - Unreleased
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
- - **YouTube slides**: screenshots + OCR + transcript cards, timestamped seek, OCR/Transcript toggle.
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/direct media) with OCR + timestamped cards.
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** (macOS arm64): `brew install steipete/tap/summarize`
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 (custom tap):
118
+ - Homebrew:
116
119
 
117
120
  ```bash
118
- brew install steipete/tap/summarize
121
+ brew install summarize
119
122
  ```
120
123
 
121
- Homebrew availability depends on the current tap formula for your architecture.
122
- If Homebrew install fails on Intel/x64, use the npm global install above.
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/direct video URLs and render them inline in the summary narrative (auto-renders inline in supported terminals)
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
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- if (!process.env.SUMMARIZE_GIT_SHA) process.env.SUMMARIZE_GIT_SHA = "20517699"
2
+ if (!process.env.SUMMARIZE_GIT_SHA) process.env.SUMMARIZE_GIT_SHA = "70006c3e"
3
3
  await import('./esm/cli.js')
@@ -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 instructions = extractTaggedBlock(prompt, "instructions") ?? prompt;
24
- return hashString(instructions.trim());
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":"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"}
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 = 1;
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" || trimmed === "codex" || trimmed === "gemini" || trimmed === "agent") {
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,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/F,OAAO,OAAsB,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,2BAA2B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,IAAY,EAAE,KAAa;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,KAAK,gCAAgC,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,KAAK,gCAAgC,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAY;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,qCAAqC,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC3F,OAAO,OAAuB,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,oEAAoE,CAChG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY,EAAE,IAAY;IAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,sCAAsC,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,OAAwB,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,uDAAuD,CACnF,CAAC;AACJ,CAAC"}
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
- return typeof language === "string" ? { language } : undefined;
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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAe5B,MAAM,UAAU,0BAA0B,CACxC,GAAY,EACZ,IAAY,EACZ,YAAoB;IAEpB,IAAI,OAAO,GAAG,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,YAAY,sBAAsB,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAY,EACZ,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,KAAK,qBAAqB,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY,EAAE,IAAY,EAAE,KAAa;IACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,UAAU,KAAK,sBAAsB,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,UAAU,KAAK,wDAAwD,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,SAAS,KAAK,WAAW;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC;IACtE,OAAO;QACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,GAAY,EACZ,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,UAAU,KAAK,sBAAsB,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAC9B,CAAC,CAAC,GAAG,CAAC,OAAO;QACb,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW;YAClC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,UAAU,KAAK,8BAA8B,CACzE,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,iBAAiB,GACrB,OAAO,GAAG,CAAC,iBAAiB,KAAK,SAAS;QACxC,CAAC,CAAC,GAAG,CAAC,iBAAiB;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,iBAAiB,KAAK,WAAW;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,UAAU,KAAK,wCAAwC,CACnF,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,KAAK,GACT,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW;QAC9B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC;IAClE,OAAO;QACL,GAAG,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY,EAAE,IAAY;IACvD,IAAI,OAAO,GAAG,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,oCAAoC,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;IAC9B,MAAM,UAAU,GACd,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;QAChF,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW;YAClC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,yCAAyC,CAAC,CAAC;YACxF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;IAChC,MAAM,YAAY,GAChB,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;QAChF,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW;YAClC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,2CAA2C,CAAC,CAAC;YAC1F,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACxD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACjB,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,wCAAwC,CAAC,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,MAAM,GACV,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM;QAClE,CAAC,CAAE,SAAkC;QACrC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,+DAA+D,CAC3F,CAAC;YACJ,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,SAAS,CAAC;IAElB,OAAO,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1F,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA6B,EAAE,IAAY;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,8BAA8B,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,KAAK,GACT,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QACvE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,mCAAmC,CAAC,CAAC;YAClF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,MAAM,OAAO,GACX,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC;QAC7E,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,OAAO,UAAU,KAAK,WAAW;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,qCAAqC,CAAC,CAAC;YACpF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,SAAS,GACb,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC5D,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACnB,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,kCAAkC,CAAC,CAAC;YACjF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEvD,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,SAAS,IAAI,KAAK;QACtD,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,KAAK,MAAM;QAC1B,KAAK,CAAC,SAAS,KAAK,YAAY;QAChC,KAAK,CAAC,SAAS,KAAK,YAAY;QAC9B,CAAC,CAAE,KAAK,CAAC,SAAuB;QAChC,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,IAAY;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,+BAA+B,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,MAAM,GAAG,GACP,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;QAClB,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,kCAAkC,CAAC,CAAC;YACjF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;IACtC,MAAM,cAAc,GAClB,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,CAAC;QAC3F,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,iEAAiE,CAC7F,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;IACzB,MAAM,GAAG,GACP,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAC7F,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,oCAAoC,CAAC,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;IACjC,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAClE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,0CAA0C,CAAC,CAAC;YACzF,CAAC,CAAC,EAAE,CAAC;IACb,OAAO,OAAO;QACZ,OAAO,GAAG,KAAK,SAAS;QACxB,GAAG;QACH,OAAO,cAAc,KAAK,QAAQ;QAClC,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAO,WAAW,KAAK,QAAQ;QAC/B,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,IAAY;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;IACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,+DAA+D,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,WAAW;QAClC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;QAC7B,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;QAC7B,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,iEAAiE,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YAC9C,OAAO,0BAA0B,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YAC3C,OAAO,0BAA0B,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,cAAc,GAClB,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAChF,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE;QAC7B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,GAAG,GACP,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,SAAS,GACb,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAE/D,OAAO,OAAO;QACZ,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,cAAc;QACd,OAAO,UAAU,KAAK,SAAS;QAC/B,GAAG;QACH,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,IAAY;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,+BAA+B,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACpE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QACvB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QAC1D,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,qCAAqC,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,sCAAsC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC;YACH,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,iCAAkC,KAAe,CAAC,OAAO,EAAE,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC/D,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,IAAY;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,2BAA2B,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,IAAI,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,+BAA+B,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAA6B,EAC7B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3F,MAAM,IAAI,GACR,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC5D,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACnB,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,oCAAoC,CAAC,CAAC;YACnF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,KAAK,GACT,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QACvE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,qCAAqC,CAAC,CAAC;YACpF,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;IACnC,MAAM,QAAQ,GACZ,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;QAChF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzB,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW;YAClC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,wCAAwC,CAAC,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC;IACb,OAAO,OAAO;QACZ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAA6B,EAC7B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,+BAA+B,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,kBAAkB,GACtB,OAAO,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,sBAAsB,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACzD,MAAM,mBAAmB,GACvB,OAAO,sBAAsB,KAAK,QAAQ;QAC1C,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvC,sBAAsB,GAAG,CAAC;QACxB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,OAAO,OAAO,KAAK,QAAQ;QAChC,OAAO,kBAAkB,KAAK,SAAS;QACvC,OAAO,mBAAmB,KAAK,QAAQ;QACvC,CAAC,CAAC;YACE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,IAAY;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;IACvB,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,4BAA4B,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,UAAU,MAAM,qBAAqB,CAAC,CAAC;QACpF,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAA6B,EAC7B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG;QACd,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,KAAK;QACL,YAAY;QACZ,KAAK;QACL,OAAO;QACP,WAAW;QACX,KAAK;QACL,MAAM;QACN,YAAY;KACb,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,+BAA+B,GAAG,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,cAAc,GAAG,+BAA+B,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,IAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/costs.ts"],"names":[],"mappings":"AA2BA,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
+ {"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 overrideModelBaseUrl(model, baseUrl) {
29
+ function isCustomOpenAiBaseUrl(baseUrl) {
29
30
  if (!baseUrl)
30
- return model;
31
- return { ...model, baseUrl };
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
- return overrideModelBaseUrl(getModel(provider, modelId), baseUrl);
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
- return "agent";
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({ provider: providerForPiAi, modelId, baseUrl }),
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") {