@steipete/summarize 0.11.0 → 0.12.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 +44 -1
- package/README.md +63 -17
- package/dist/cli.js +1 -1
- package/dist/esm/cache-keys.js +75 -0
- package/dist/esm/cache-keys.js.map +1 -0
- package/dist/esm/cache-slides-cleanup.js +47 -0
- package/dist/esm/cache-slides-cleanup.js.map +1 -0
- package/dist/esm/cache.js +14 -91
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/config/env.js +49 -0
- package/dist/esm/config/env.js.map +1 -0
- package/dist/esm/config/model.js +193 -0
- package/dist/esm/config/model.js.map +1 -0
- package/dist/esm/config/parse-helpers.js +50 -0
- package/dist/esm/config/parse-helpers.js.map +1 -0
- package/dist/esm/config/read.js +83 -0
- package/dist/esm/config/read.js.map +1 -0
- package/dist/esm/config/sections.js +438 -0
- package/dist/esm/config/sections.js.map +1 -0
- package/dist/esm/config/types.js +2 -0
- package/dist/esm/config/types.js.map +1 -0
- package/dist/esm/config.js +24 -807
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/content/asset.js +2 -2
- package/dist/esm/content/asset.js.map +1 -1
- package/dist/esm/daemon/agent-model.js +235 -0
- package/dist/esm/daemon/agent-model.js.map +1 -0
- package/dist/esm/daemon/agent-request.js +87 -0
- package/dist/esm/daemon/agent-request.js.map +1 -0
- package/dist/esm/daemon/agent.js +42 -243
- package/dist/esm/daemon/agent.js.map +1 -1
- package/dist/esm/daemon/chat.js +69 -8
- package/dist/esm/daemon/chat.js.map +1 -1
- package/dist/esm/daemon/cli.js +21 -4
- package/dist/esm/daemon/cli.js.map +1 -1
- package/dist/esm/daemon/config.js +65 -9
- package/dist/esm/daemon/config.js.map +1 -1
- package/dist/esm/daemon/env-snapshot.js +4 -0
- package/dist/esm/daemon/env-snapshot.js.map +1 -1
- package/dist/esm/daemon/flow-context.js +8 -1
- package/dist/esm/daemon/flow-context.js.map +1 -1
- package/dist/esm/daemon/models.js +16 -0
- package/dist/esm/daemon/models.js.map +1 -1
- package/dist/esm/daemon/process-registry.js.map +1 -1
- package/dist/esm/daemon/server-admin-routes.js +134 -0
- package/dist/esm/daemon/server-admin-routes.js.map +1 -0
- package/dist/esm/daemon/server-agent-route.js +104 -0
- package/dist/esm/daemon/server-agent-route.js.map +1 -0
- package/dist/esm/daemon/server-http.js +89 -0
- package/dist/esm/daemon/server-http.js.map +1 -0
- package/dist/esm/daemon/server-session-routes.js +209 -0
- package/dist/esm/daemon/server-session-routes.js.map +1 -0
- package/dist/esm/daemon/server-session.js +118 -0
- package/dist/esm/daemon/server-session.js.map +1 -0
- package/dist/esm/daemon/server-sse.js +28 -0
- package/dist/esm/daemon/server-sse.js.map +1 -0
- package/dist/esm/daemon/server-summarize-execution.js +357 -0
- package/dist/esm/daemon/server-summarize-execution.js.map +1 -0
- package/dist/esm/daemon/server-summarize-request.js +119 -0
- package/dist/esm/daemon/server-summarize-request.js.map +1 -0
- package/dist/esm/daemon/server.js +72 -1121
- package/dist/esm/daemon/server.js.map +1 -1
- package/dist/esm/daemon/summarize-progress.js +1 -1
- package/dist/esm/daemon/summarize-progress.js.map +1 -1
- package/dist/esm/daemon/summarize.js.map +1 -1
- package/dist/esm/llm/cli-exec.js +75 -0
- package/dist/esm/llm/cli-exec.js.map +1 -0
- package/dist/esm/llm/cli-provider-output.js +191 -0
- package/dist/esm/llm/cli-provider-output.js.map +1 -0
- package/dist/esm/llm/cli.js +3 -212
- package/dist/esm/llm/cli.js.map +1 -1
- package/dist/esm/llm/generate-text-document.js +109 -0
- package/dist/esm/llm/generate-text-document.js.map +1 -0
- package/dist/esm/llm/generate-text-shared.js +102 -0
- package/dist/esm/llm/generate-text-shared.js.map +1 -0
- package/dist/esm/llm/generate-text-stream.js +258 -0
- package/dist/esm/llm/generate-text-stream.js.map +1 -0
- package/dist/esm/llm/generate-text.js +145 -480
- package/dist/esm/llm/generate-text.js.map +1 -1
- package/dist/esm/llm/model-id.js +21 -20
- package/dist/esm/llm/model-id.js.map +1 -1
- package/dist/esm/llm/provider-capabilities.js +2 -0
- package/dist/esm/llm/provider-capabilities.js.map +1 -0
- package/dist/esm/llm/provider-profile.js +142 -0
- package/dist/esm/llm/provider-profile.js.map +1 -0
- package/dist/esm/llm/providers/google.js +42 -5
- package/dist/esm/llm/providers/google.js.map +1 -1
- package/dist/esm/llm/providers/models.js +13 -0
- package/dist/esm/llm/providers/models.js.map +1 -1
- package/dist/esm/llm/providers/openai.js.map +1 -1
- package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
- package/dist/esm/model-auto-cli.js +89 -0
- package/dist/esm/model-auto-cli.js.map +1 -0
- package/dist/esm/model-auto-rules.js +86 -0
- package/dist/esm/model-auto-rules.js.map +1 -0
- package/dist/esm/model-auto.js +10 -245
- package/dist/esm/model-auto.js.map +1 -1
- package/dist/esm/model-spec.js +23 -17
- package/dist/esm/model-spec.js.map +1 -1
- package/dist/esm/refresh-free.js +1 -1
- package/dist/esm/refresh-free.js.map +1 -1
- package/dist/esm/run/attachments.js +1 -1
- package/dist/esm/run/attachments.js.map +1 -1
- package/dist/esm/run/bird/exec.js +23 -0
- package/dist/esm/run/bird/exec.js.map +1 -0
- package/dist/esm/run/bird/media.js +171 -0
- package/dist/esm/run/bird/media.js.map +1 -0
- package/dist/esm/run/bird/parse.js +82 -0
- package/dist/esm/run/bird/parse.js.map +1 -0
- package/dist/esm/run/bird/types.js +2 -0
- package/dist/esm/run/bird/types.js.map +1 -0
- package/dist/esm/run/bird.js +86 -144
- package/dist/esm/run/bird.js.map +1 -1
- package/dist/esm/run/cache-state.js.map +1 -1
- package/dist/esm/run/constants.js +2 -1
- package/dist/esm/run/constants.js.map +1 -1
- package/dist/esm/run/env.js +3 -0
- package/dist/esm/run/env.js.map +1 -1
- package/dist/esm/run/finish-line-labels.js +76 -0
- package/dist/esm/run/finish-line-labels.js.map +1 -0
- package/dist/esm/run/finish-line-lengths.js +96 -0
- package/dist/esm/run/finish-line-lengths.js.map +1 -0
- package/dist/esm/run/finish-line.js +3 -169
- package/dist/esm/run/finish-line.js.map +1 -1
- package/dist/esm/run/flows/asset/extract.js.map +1 -1
- package/dist/esm/run/flows/asset/input.js +1 -1
- package/dist/esm/run/flows/asset/input.js.map +1 -1
- package/dist/esm/run/flows/asset/media.js +19 -10
- package/dist/esm/run/flows/asset/media.js.map +1 -1
- package/dist/esm/run/flows/asset/output.js.map +1 -1
- package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
- package/dist/esm/run/flows/asset/summary-attempts.js +109 -0
- package/dist/esm/run/flows/asset/summary-attempts.js.map +1 -0
- package/dist/esm/run/flows/asset/summary.js +19 -107
- package/dist/esm/run/flows/asset/summary.js.map +1 -1
- package/dist/esm/run/flows/url/extract.js +7 -4
- package/dist/esm/run/flows/url/extract.js.map +1 -1
- package/dist/esm/run/flows/url/flow-progress.js +119 -0
- package/dist/esm/run/flows/url/flow-progress.js.map +1 -0
- package/dist/esm/run/flows/url/flow.js +22 -93
- package/dist/esm/run/flows/url/flow.js.map +1 -1
- package/dist/esm/run/flows/url/markdown.js +21 -3
- package/dist/esm/run/flows/url/markdown.js.map +1 -1
- package/dist/esm/run/flows/url/progress-status.js +56 -0
- package/dist/esm/run/flows/url/progress-status.js.map +1 -0
- package/dist/esm/run/flows/url/slides-output-render.js +78 -0
- package/dist/esm/run/flows/url/slides-output-render.js.map +1 -0
- package/dist/esm/run/flows/url/slides-output-state.js +86 -0
- package/dist/esm/run/flows/url/slides-output-state.js.map +1 -0
- package/dist/esm/run/flows/url/slides-output-stream.js +271 -0
- package/dist/esm/run/flows/url/slides-output-stream.js.map +1 -0
- package/dist/esm/run/flows/url/slides-output.js +29 -422
- package/dist/esm/run/flows/url/slides-output.js.map +1 -1
- package/dist/esm/run/flows/url/slides-text-markdown.js +431 -0
- package/dist/esm/run/flows/url/slides-text-markdown.js.map +1 -0
- package/dist/esm/run/flows/url/slides-text-transcript.js +199 -0
- package/dist/esm/run/flows/url/slides-text-transcript.js.map +1 -0
- package/dist/esm/run/flows/url/slides-text-types.js +2 -0
- package/dist/esm/run/flows/url/slides-text-types.js.map +1 -0
- package/dist/esm/run/flows/url/slides-text.js +2 -627
- package/dist/esm/run/flows/url/slides-text.js.map +1 -1
- package/dist/esm/run/flows/url/summary-finish.js +34 -0
- package/dist/esm/run/flows/url/summary-finish.js.map +1 -0
- package/dist/esm/run/flows/url/summary-json.js +32 -0
- package/dist/esm/run/flows/url/summary-json.js.map +1 -0
- package/dist/esm/run/flows/url/summary-prompt.js +147 -0
- package/dist/esm/run/flows/url/summary-prompt.js.map +1 -0
- package/dist/esm/run/flows/url/summary-resolution.js +320 -0
- package/dist/esm/run/flows/url/summary-resolution.js.map +1 -0
- package/dist/esm/run/flows/url/summary-timestamps.js +136 -0
- package/dist/esm/run/flows/url/summary-timestamps.js.map +1 -0
- package/dist/esm/run/flows/url/summary.js +49 -543
- package/dist/esm/run/flows/url/summary.js.map +1 -1
- package/dist/esm/run/help.js +9 -3
- package/dist/esm/run/help.js.map +1 -1
- package/dist/esm/run/markdown-transforms.js +89 -0
- package/dist/esm/run/markdown-transforms.js.map +1 -0
- package/dist/esm/run/markdown.js +1 -96
- package/dist/esm/run/markdown.js.map +1 -1
- package/dist/esm/run/run-env.js +28 -7
- package/dist/esm/run/run-env.js.map +1 -1
- package/dist/esm/run/run-settings-parse.js +73 -0
- package/dist/esm/run/run-settings-parse.js.map +1 -0
- package/dist/esm/run/run-settings.js +1 -72
- package/dist/esm/run/run-settings.js.map +1 -1
- package/dist/esm/run/runner-contexts.js +116 -0
- package/dist/esm/run/runner-contexts.js.map +1 -0
- package/dist/esm/run/runner-execution.js +62 -0
- package/dist/esm/run/runner-execution.js.map +1 -0
- package/dist/esm/run/runner-flags.js +97 -0
- package/dist/esm/run/runner-flags.js.map +1 -0
- package/dist/esm/run/runner-setup.js +109 -0
- package/dist/esm/run/runner-setup.js.map +1 -0
- package/dist/esm/run/runner-slides.js +38 -0
- package/dist/esm/run/runner-slides.js.map +1 -0
- package/dist/esm/run/runner.js +99 -390
- package/dist/esm/run/runner.js.map +1 -1
- package/dist/esm/run/slides-render.js +5 -2
- package/dist/esm/run/slides-render.js.map +1 -1
- package/dist/esm/run/stdin-temp-file.js +1 -1
- package/dist/esm/run/stdin-temp-file.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 +26 -10
- package/dist/esm/run/summary-engine.js.map +1 -1
- package/dist/esm/run/summary-llm.js +2 -1
- package/dist/esm/run/summary-llm.js.map +1 -1
- package/dist/esm/run/terminal.js +4 -1
- package/dist/esm/run/terminal.js.map +1 -1
- package/dist/esm/run/transcriber-cli.js +1 -1
- package/dist/esm/run/transcriber-cli.js.map +1 -1
- package/dist/esm/slides/download.js +242 -0
- package/dist/esm/slides/download.js.map +1 -0
- package/dist/esm/slides/extract-finalize.js +98 -0
- package/dist/esm/slides/extract-finalize.js.map +1 -0
- package/dist/esm/slides/extract.js +64 -1621
- package/dist/esm/slides/extract.js.map +1 -1
- package/dist/esm/slides/frame-extraction.js +372 -0
- package/dist/esm/slides/frame-extraction.js.map +1 -0
- package/dist/esm/slides/ingest.js +167 -0
- package/dist/esm/slides/ingest.js.map +1 -0
- package/dist/esm/slides/ocr.js +91 -0
- package/dist/esm/slides/ocr.js.map +1 -0
- package/dist/esm/slides/process.js +218 -0
- package/dist/esm/slides/process.js.map +1 -0
- package/dist/esm/slides/scene-detection.js +387 -0
- package/dist/esm/slides/scene-detection.js.map +1 -0
- package/dist/esm/slides/source-id.js +42 -0
- package/dist/esm/slides/source-id.js.map +1 -0
- package/dist/esm/tty/progress/fetch-html.js.map +1 -1
- package/dist/esm/tty/progress/transcript.js +21 -8
- package/dist/esm/tty/progress/transcript.js.map +1 -1
- package/dist/esm/tty/spinner.js +8 -2
- package/dist/esm/tty/spinner.js.map +1 -1
- package/dist/esm/tty/website-progress.js +5 -3
- package/dist/esm/tty/website-progress.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/cache-keys.d.ts +44 -0
- package/dist/types/cache-slides-cleanup.d.ts +1 -0
- package/dist/types/cache.d.ts +1 -9
- package/dist/types/config/env.d.ts +6 -0
- package/dist/types/config/model.d.ts +3 -0
- package/dist/types/config/parse-helpers.d.ts +7 -0
- package/dist/types/config/read.d.ts +2 -0
- package/dist/types/config/sections.d.ts +33 -0
- package/dist/types/config/types.d.ts +230 -0
- package/dist/types/config.d.ts +3 -209
- package/dist/types/costs.d.ts +1 -1
- package/dist/types/daemon/agent-model.d.ts +40 -0
- package/dist/types/daemon/agent-request.d.ts +14 -0
- package/dist/types/daemon/chat.d.ts +3 -1
- package/dist/types/daemon/config.d.ts +13 -2
- 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 +1 -0
- package/dist/types/daemon/server-admin-routes.d.ts +22 -0
- package/dist/types/daemon/server-agent-route.d.ts +9 -0
- package/dist/types/daemon/server-http.d.ts +10 -0
- package/dist/types/daemon/server-session-routes.d.ts +11 -0
- package/dist/types/daemon/server-session.d.ts +52 -0
- package/dist/types/daemon/server-sse.d.ts +12 -0
- package/dist/types/daemon/server-summarize-execution.d.ts +70 -0
- package/dist/types/daemon/server-summarize-request.d.ts +36 -0
- package/dist/types/daemon/server.d.ts +3 -4
- package/dist/types/daemon/summarize.d.ts +1 -1
- package/dist/types/llm/cli-exec.d.ts +13 -0
- package/dist/types/llm/cli-provider-output.d.ts +16 -0
- package/dist/types/llm/generate-text-document.d.ts +34 -0
- package/dist/types/llm/generate-text-shared.d.ts +25 -0
- package/dist/types/llm/generate-text-stream.d.ts +26 -0
- package/dist/types/llm/generate-text.d.ts +6 -26
- package/dist/types/llm/html-to-markdown.d.ts +1 -1
- package/dist/types/llm/model-id.d.ts +1 -1
- package/dist/types/llm/provider-capabilities.d.ts +2 -0
- package/dist/types/llm/provider-profile.d.ts +31 -0
- package/dist/types/llm/providers/google.d.ts +6 -0
- package/dist/types/llm/providers/models.d.ts +5 -0
- package/dist/types/llm/transcript-to-markdown.d.ts +1 -1
- package/dist/types/model-auto-cli.d.ts +15 -0
- package/dist/types/model-auto-rules.d.ts +7 -0
- package/dist/types/model-auto.d.ts +5 -7
- package/dist/types/model-spec.d.ts +2 -2
- package/dist/types/run/attachments.d.ts +2 -2
- package/dist/types/run/bird/exec.d.ts +1 -0
- package/dist/types/run/bird/media.d.ts +3 -0
- package/dist/types/run/bird/parse.d.ts +3 -0
- package/dist/types/run/bird/types.d.ts +18 -0
- package/dist/types/run/bird.d.ts +12 -17
- package/dist/types/run/cache-state.d.ts +1 -1
- package/dist/types/run/constants.d.ts +2 -1
- package/dist/types/run/env.d.ts +1 -0
- package/dist/types/run/finish-line-labels.d.ts +29 -0
- package/dist/types/run/finish-line-lengths.d.ts +23 -0
- package/dist/types/run/finish-line.d.ts +2 -52
- package/dist/types/run/flows/asset/extract.d.ts +1 -1
- package/dist/types/run/flows/asset/input.d.ts +1 -1
- package/dist/types/run/flows/asset/preprocess.d.ts +1 -1
- package/dist/types/run/flows/asset/summary-attempts.d.ts +24 -0
- package/dist/types/run/flows/asset/summary.d.ts +6 -2
- package/dist/types/run/flows/url/flow-progress.d.ts +41 -0
- package/dist/types/run/flows/url/markdown.d.ts +2 -2
- package/dist/types/run/flows/url/progress-status.d.ts +16 -0
- package/dist/types/run/flows/url/slides-output-render.d.ts +43 -0
- package/dist/types/run/flows/url/slides-output-state.d.ts +21 -0
- package/dist/types/run/flows/url/slides-output-stream.d.ts +18 -0
- package/dist/types/run/flows/url/slides-output.d.ts +2 -17
- package/dist/types/run/flows/url/slides-text-markdown.d.ts +46 -0
- package/dist/types/run/flows/url/slides-text-transcript.d.ts +36 -0
- package/dist/types/run/flows/url/slides-text-types.d.ts +8 -0
- package/dist/types/run/flows/url/slides-text.d.ts +3 -87
- package/dist/types/run/flows/url/summary-finish.d.ts +16 -0
- package/dist/types/run/flows/url/summary-json.d.ts +51 -0
- package/dist/types/run/flows/url/summary-prompt.d.ts +22 -0
- package/dist/types/run/flows/url/summary-resolution.d.ts +31 -0
- package/dist/types/run/flows/url/summary-timestamps.d.ts +11 -0
- package/dist/types/run/flows/url/types.d.ts +4 -0
- package/dist/types/run/markdown-transforms.d.ts +3 -0
- package/dist/types/run/run-context.d.ts +4 -0
- package/dist/types/run/run-env.d.ts +4 -0
- package/dist/types/run/run-settings-parse.d.ts +5 -0
- package/dist/types/run/runner-contexts.d.ts +62 -0
- package/dist/types/run/runner-execution.d.ts +57 -0
- package/dist/types/run/runner-flags.d.ts +41 -0
- package/dist/types/run/runner-setup.d.ts +21 -0
- package/dist/types/run/runner-slides.d.ts +8 -0
- package/dist/types/run/streaming.d.ts +1 -1
- package/dist/types/run/summary-engine.d.ts +8 -4
- package/dist/types/run/summary-llm.d.ts +4 -3
- package/dist/types/run/terminal.d.ts +2 -0
- package/dist/types/run/types.d.ts +2 -2
- package/dist/types/slides/download.d.ts +29 -0
- package/dist/types/slides/extract-finalize.d.ts +57 -0
- package/dist/types/slides/extract.d.ts +1 -7
- package/dist/types/slides/frame-extraction.d.ts +38 -0
- package/dist/types/slides/ingest.d.ts +47 -0
- package/dist/types/slides/ocr.d.ts +5 -0
- package/dist/types/slides/process.d.ts +22 -0
- package/dist/types/slides/scene-detection.d.ts +75 -0
- package/dist/types/slides/source-id.d.ts +2 -0
- package/dist/types/version.d.ts +1 -1
- package/docs/_config.yml +1 -0
- package/docs/agent.md +3 -2
- package/docs/assets/site.css +134 -2
- package/docs/cache.md +2 -1
- package/docs/chrome-extension.md +12 -4
- package/docs/cli.md +2 -2
- package/docs/config.md +11 -4
- package/docs/index.html +5 -0
- package/docs/llm.md +5 -2
- package/docs/manual-tests.md +3 -0
- package/docs/media.md +3 -1
- package/docs/model-auto.md +2 -2
- package/docs/model-provider-resolution.md +57 -0
- package/docs/site/index.html +5 -0
- package/docs/slides-rendering-flow.md +46 -0
- package/docs/slides.md +5 -5
- package/docs/smoketest.md +1 -1
- package/docs/transcript-provider-flow.md +66 -0
- package/docs/website.md +1 -0
- package/docs/youtube.md +4 -2
- package/package.json +34 -41
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.12.0 - Unreleased
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Models: add `nvidia/...` provider alias (uses `NVIDIA_API_KEY` + optional `NVIDIA_BASE_URL`) for NVIDIA OpenAI-compatible endpoints.
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- Transcription: add AssemblyAI as a first-class remote provider across direct media, podcast/RSS, and yt-dlp YouTube fallback; refactor remote fallback ordering, expand config/env support (`ASSEMBLYAI_API_KEY`, legacy `apiKeys.assemblyai`), and add AssemblyAI unit + live coverage (#126).
|
|
12
|
+
- X/Twitter: prefer `xurl` for tweet extraction when installed, fall back to `bird`, preserve long-form/article text plus media URLs, add live `xurl` extraction/media coverage, and replace the stale dead-`bird` install tip with a current X CLI recommendation (#70).
|
|
13
|
+
- Models: make daemon agent `artifacts` schemas Gemini-safe, improve Google empty-response handling with preview-to-stable fallback, and switch CLI/auto Gemini defaults away from brittle preview behavior (#82, #96).
|
|
14
|
+
- Agents: expand model auto-resolution errors with checked models, missing env/CLI setup, and daemon restart guidance (#107).
|
|
15
|
+
- Daemon: support multiple saved extension tokens, migrate legacy single-token configs, and accept any configured token for auth (#116).
|
|
16
|
+
- Chrome extension: harden side-panel slides so SSE keepalives no longer false-time out, seeded placeholders no longer block pending/cached slide runs, retries can start a fresh summarize+slides run, and reruns replace stale slide state.
|
|
17
|
+
- Chrome extension: refactor side-panel navigation/run attachment policy so late summary/slide runs no longer attach to the wrong page after tab or URL switches, and expand headless regression coverage for pending-run resume and slide-mode transitions.
|
|
18
|
+
- Chrome extension: default fresh installs to slide mode, keep passive tab navigation out of chat, and align slide cards with CLI `--slides` by preferring per-slide summary text over raw transcript/OCR fallback.
|
|
19
|
+
- Chrome extension tests: add stronger YouTube slide E2E coverage for loaded images, summary-backed slide text, and switching between videos mid-analysis without stale slide-summary bleed.
|
|
20
|
+
- Chrome extension: isolate slide-summary stream callbacks per run and harden Playwright settings hydration so late events no longer blank slide text when switching videos mid-analysis.
|
|
21
|
+
- Transcription: add Gemini audio/video transcription support across direct media, podcast/RSS, and yt-dlp YouTube fallback, including Files API uploads for larger media plus new Gemini live coverage (#89).
|
|
22
|
+
- npm packaging: publish CLI with `pnpm publish` so `@steipete/summarize-core` is version-pinned in published metadata (no `workspace:*` in registry package).
|
|
23
|
+
- Slides: detect WezTerm as an iTerm-compatible terminal for inline slide images in `--slides` mode. (#133) — thanks @doodaaatimmy-creator.
|
|
24
|
+
- CLI help: surface `summarize refresh-free` in `summarize help` output.
|
|
25
|
+
- CLI: report CLI provider timeouts explicitly, including the duration, command, and a `--timeout` hint instead of collapsing them into generic exec failures (#100, thanks @christophsturm).
|
|
26
|
+
- Daemon: restrict CORS responses to trusted extension and localhost origins, with regression coverage for allowed and denied `Origin` headers (#108, thanks @sebastiondev).
|
|
27
|
+
- Transcription: chunk oversized Groq Whisper uploads with ffmpeg in file mode instead of failing out on files above the 30MB limit (#134, thanks @WinnCook).
|
|
28
|
+
- Docs: tighten landing-page mobile layout so hero, cards, code blocks, and nav stay readable on narrow screens (#118, thanks @Acidias).
|
|
29
|
+
- Release: build macOS x64 Bun artifacts and add regression coverage for Homebrew formula rewrites during dual-arch releases (#122, thanks @androidshu).
|
|
30
|
+
- YouTube: tighten hostname validation across core, slides, and extension helpers so attacker-controlled lookalike hosts are no longer treated as YouTube URLs (#91, thanks @RinZ27).
|
|
31
|
+
- Config: honor `zai.baseUrl` config fallback for blank env values and keep Z.AI base URL overrides working outside the summary flow (#102, thanks @liuy).
|
|
32
|
+
- Chrome extension: tighten options and sidepanel UI spacing, copy actions, and advanced-controls layout for a cleaner panel experience (#86, thanks @morozRed).
|
|
33
|
+
- Slides: warn in summary mode when `--slides` dependencies are missing, and document required local installs for `ffmpeg`, `yt-dlp`, and optional `tesseract`.
|
|
34
|
+
- Docs: fix broken docs index links by setting an empty Jekyll `baseurl` (#113, thanks @Youpen-y).
|
|
35
|
+
- Models: preserve model id casing after the provider prefix so OpenAI-compatible proxies can route exact names correctly (#128, thanks @WinnCook).
|
|
36
|
+
- Cache: give extract entries with unavailable transcripts the same short retry TTL as negative transcript cache entries, so transient Apify failures can recover (#115, thanks @gluneau).
|
|
37
|
+
- Daemon: apply the saved env snapshot to `process.env` before `daemon run` starts so child tools inherit the right PATH and API/tool config under launchd/systemd (#99, thanks @heyalchang).
|
|
38
|
+
- Chrome automation: require sidepanel arming before debugger-backed native input can run in a tab, and auto-disarm after browser JS execution ends (#129, thanks @omnicoder9).
|
|
39
|
+
- Media setup: fix the local whisper.cpp install hint to use the current Homebrew formula name `whisper-cpp` (#92, thanks @zerone0x).
|
|
40
|
+
- CLI output: cap markdown render width on very wide terminals by default, with a `--width` override for manual control (#119, thanks @howardpen9).
|
|
41
|
+
- Slides: size inline slide images from terminal width instead of keeping them pinned to 32 columns, capped at 2x the previous width while preserving `COLUMNS` fallback behavior (#125, #135, thanks @WinnCook).
|
|
42
|
+
- Shell completions: add Fish shell completions for the current CLI flags and option values (#95, thanks @fbehrens).
|
|
43
|
+
- Bun fetch: only opt into compressed HTML/YouTube responses when running under Bun, and retry link-preview fetches with `Accept-Encoding: identity` after Bun decompression failures (#105, thanks @maciej).
|
|
44
|
+
- Daemon: support `cli/...` models in chat and agent endpoints, including CLI auto-fallback when no API-key transport is available (#109, thanks @jetm).
|
|
45
|
+
|
|
46
|
+
## 0.11.0 - 2026-02-14
|
|
4
47
|
|
|
5
48
|
### Highlights
|
|
6
49
|
|
package/README.md
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
# Summarize 📝 — Chrome Side Panel + CLI
|
|
2
2
|
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
<!-- Created with GitHub Repo Banner by Waren Gonzaga: https://ghrb.waren.build -->
|
|
6
|
-
|
|
7
3
|
Fast summaries from URLs, files, and media. Works in the terminal, a Chrome Side Panel and Firefox Sidebar.
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## 0.11.0 preview highlights (most interesting first)
|
|
5
|
+
## Highlights
|
|
12
6
|
|
|
13
7
|
- Chrome Side Panel **chat** (streaming agent + history) inside the sidebar.
|
|
14
8
|
- **YouTube slides**: screenshots + OCR + transcript cards, timestamped seek, OCR/Transcript toggle.
|
|
@@ -20,7 +14,7 @@ Fast summaries from URLs, files, and media. Works in the terminal, a Chrome Side
|
|
|
20
14
|
|
|
21
15
|
- URLs, files, and media: web pages, PDFs, images, audio/video, YouTube, podcasts, RSS.
|
|
22
16
|
- Slide extraction for video sources (YouTube/direct media) with OCR + timestamped cards.
|
|
23
|
-
- Transcript-first media flow: published transcripts when available,
|
|
17
|
+
- Transcript-first media flow: published transcripts when available, then Groq/ONNX/whisper.cpp/AssemblyAI/Gemini/OpenAI/FAL transcription fallback when not.
|
|
24
18
|
- Streaming output with Markdown rendering, metrics, and cache-aware status.
|
|
25
19
|
- Local, paid, and free models: OpenAI‑compatible local endpoints, paid providers, plus an OpenRouter free preset.
|
|
26
20
|
- Output modes: Markdown/text, JSON diagnostics, extract-only, metrics, timing, and cost estimates.
|
|
@@ -58,7 +52,7 @@ Notes:
|
|
|
58
52
|
|
|
59
53
|
- Summarization only runs when the Side Panel is open.
|
|
60
54
|
- Auto mode summarizes on navigation (incl. SPAs); otherwise use the button.
|
|
61
|
-
- Daemon is localhost-only and requires a shared token.
|
|
55
|
+
- 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.
|
|
62
56
|
- Autostart: macOS (launchd), Linux (systemd user), Windows (Scheduled Task).
|
|
63
57
|
- Tip: configure `free` via `summarize refresh-free` (needs `OPENROUTER_API_KEY`). Add `--set-default` to set model=`free`.
|
|
64
58
|
|
|
@@ -124,7 +118,31 @@ import { createLinkPreviewClient } from "@steipete/summarize-core/content";
|
|
|
124
118
|
brew install steipete/tap/summarize
|
|
125
119
|
```
|
|
126
120
|
|
|
127
|
-
|
|
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.
|
|
123
|
+
|
|
124
|
+
### Optional local dependencies
|
|
125
|
+
|
|
126
|
+
Install these if you want media-heavy features:
|
|
127
|
+
|
|
128
|
+
- `ffmpeg`: required for `--slides` and many local media/transcription flows
|
|
129
|
+
- `yt-dlp`: required for YouTube slide extraction and some remote media flows
|
|
130
|
+
- `tesseract`: optional OCR for `--slides-ocr`
|
|
131
|
+
- Optional cloud transcription providers:
|
|
132
|
+
- `GROQ_API_KEY`
|
|
133
|
+
- `ASSEMBLYAI_API_KEY`
|
|
134
|
+
- `GEMINI_API_KEY` / `GOOGLE_GENERATIVE_AI_API_KEY` / `GOOGLE_API_KEY`
|
|
135
|
+
- `OPENAI_API_KEY`
|
|
136
|
+
- `FAL_KEY`
|
|
137
|
+
|
|
138
|
+
macOS (Homebrew):
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
brew install ffmpeg yt-dlp
|
|
142
|
+
brew install tesseract # optional, for --slides-ocr
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
If `--slides` is enabled and these tools are missing, Summarize warns and continues without slides.
|
|
128
146
|
|
|
129
147
|
### CLI vs extension
|
|
130
148
|
|
|
@@ -142,8 +160,8 @@ summarize "https://example.com"
|
|
|
142
160
|
URLs or local paths:
|
|
143
161
|
|
|
144
162
|
```bash
|
|
145
|
-
summarize "/path/to/file.pdf" --model google/gemini-3-flash
|
|
146
|
-
summarize "https://example.com/report.pdf" --model google/gemini-3-flash
|
|
163
|
+
summarize "/path/to/file.pdf" --model google/gemini-3-flash
|
|
164
|
+
summarize "https://example.com/report.pdf" --model google/gemini-3-flash
|
|
147
165
|
summarize "/path/to/audio.mp3"
|
|
148
166
|
summarize "/path/to/video.mp4"
|
|
149
167
|
```
|
|
@@ -238,7 +256,7 @@ Examples:
|
|
|
238
256
|
- `openai/gpt-5-mini`
|
|
239
257
|
- `anthropic/claude-sonnet-4-5`
|
|
240
258
|
- `xai/grok-4-fast-non-reasoning`
|
|
241
|
-
- `google/gemini-3-flash
|
|
259
|
+
- `google/gemini-3-flash`
|
|
242
260
|
- `zai/glm-4.7`
|
|
243
261
|
- `openrouter/openai/gpt-5-mini` (force OpenRouter)
|
|
244
262
|
|
|
@@ -382,7 +400,8 @@ Non-YouTube URLs go through a fetch -> extract pipeline. When direct fetch/extra
|
|
|
382
400
|
|
|
383
401
|
1. Apify (if `APIFY_API_TOKEN` is set): uses a scraping actor (`faVsWy9VTSNVIhWpR`)
|
|
384
402
|
2. yt-dlp + Whisper (if `yt-dlp` is available): downloads audio, then transcribes with local `whisper.cpp` when installed
|
|
385
|
-
(preferred), otherwise falls back to
|
|
403
|
+
(preferred), otherwise falls back to Groq (`GROQ_API_KEY`), AssemblyAI (`ASSEMBLYAI_API_KEY`), Gemini
|
|
404
|
+
(`GEMINI_API_KEY` / Google aliases), OpenAI (`OPENAI_API_KEY`), then FAL (`FAL_KEY`)
|
|
386
405
|
|
|
387
406
|
Environment variables for yt-dlp mode:
|
|
388
407
|
|
|
@@ -390,6 +409,9 @@ Environment variables for yt-dlp mode:
|
|
|
390
409
|
- `SUMMARIZE_WHISPER_CPP_MODEL_PATH` - optional override for the local `whisper.cpp` model file
|
|
391
410
|
- `SUMMARIZE_WHISPER_CPP_BINARY` - optional override for the local binary (default: `whisper-cli`)
|
|
392
411
|
- `SUMMARIZE_DISABLE_LOCAL_WHISPER_CPP=1` - disable local whisper.cpp (force remote)
|
|
412
|
+
- `GROQ_API_KEY` - Groq Whisper transcription
|
|
413
|
+
- `ASSEMBLYAI_API_KEY` - AssemblyAI transcription
|
|
414
|
+
- `GEMINI_API_KEY` - Gemini transcription (`GOOGLE_GENERATIVE_AI_API_KEY` / `GOOGLE_API_KEY` also work)
|
|
393
415
|
- `OPENAI_API_KEY` - OpenAI Whisper transcription
|
|
394
416
|
- `OPENAI_WHISPER_BASE_URL` - optional OpenAI-compatible Whisper endpoint override
|
|
395
417
|
- `FAL_KEY` - FAL AI Whisper fallback
|
|
@@ -400,6 +422,12 @@ Apify costs money but tends to be more reliable when captions exist.
|
|
|
400
422
|
|
|
401
423
|
Extract slide screenshots (scene detection via `ffmpeg`) and optional OCR:
|
|
402
424
|
|
|
425
|
+
Requirements:
|
|
426
|
+
|
|
427
|
+
- `ffmpeg` for scene detection and frame extraction
|
|
428
|
+
- `yt-dlp` for YouTube video download/stream resolution
|
|
429
|
+
- `tesseract` only when using `--slides-ocr`
|
|
430
|
+
|
|
403
431
|
```bash
|
|
404
432
|
summarize "https://www.youtube.com/watch?v=..." --slides
|
|
405
433
|
summarize "https://www.youtube.com/watch?v=..." --slides --slides-ocr
|
|
@@ -425,7 +453,7 @@ summarize "https://www.youtube.com/watch?v=..." --extract --format md --markdown
|
|
|
425
453
|
|
|
426
454
|
Local audio/video files are transcribed first, then summarized. `--video-mode transcript` forces
|
|
427
455
|
direct media URLs (and embedded media) through Whisper first. Prefers local `whisper.cpp` when available; otherwise requires
|
|
428
|
-
`
|
|
456
|
+
one of `GROQ_API_KEY`, `ASSEMBLYAI_API_KEY`, `GEMINI_API_KEY` (or Google aliases), `OPENAI_API_KEY`, or `FAL_KEY`.
|
|
429
457
|
|
|
430
458
|
### Local ONNX transcription (Parakeet/Canary)
|
|
431
459
|
|
|
@@ -449,7 +477,7 @@ Run: `summarize <url>`
|
|
|
449
477
|
- RSS feeds (Podcasting 2.0 transcripts when available)
|
|
450
478
|
- Embedded YouTube podcast pages (e.g. JREPodcast)
|
|
451
479
|
|
|
452
|
-
Transcription: prefers local `whisper.cpp` when installed; otherwise uses OpenAI
|
|
480
|
+
Transcription: prefers local `whisper.cpp` when installed; otherwise uses Groq, AssemblyAI, Gemini, OpenAI, or FAL when keys are set.
|
|
453
481
|
|
|
454
482
|
### Translation paths
|
|
455
483
|
|
|
@@ -463,7 +491,7 @@ When the input is audio/video, the CLI needs a transcript first. The transcript
|
|
|
463
491
|
2. Whisper transcription (fallback)
|
|
464
492
|
- YouTube: falls back to yt-dlp (audio download) + Whisper transcription when configured; Apify is a last resort.
|
|
465
493
|
- Prefers local `whisper.cpp` when installed + model available.
|
|
466
|
-
- Otherwise uses cloud
|
|
494
|
+
- Otherwise uses cloud transcription in this order: Groq (`GROQ_API_KEY`) → AssemblyAI (`ASSEMBLYAI_API_KEY`) → Gemini (`GEMINI_API_KEY` / Google aliases) → OpenAI (`OPENAI_API_KEY`) → FAL (`FAL_KEY`).
|
|
467
495
|
|
|
468
496
|
For direct media URLs, use `--video-mode transcript` to force transcribe -> summarize:
|
|
469
497
|
|
|
@@ -552,6 +580,7 @@ Set the key matching your chosen `--model`:
|
|
|
552
580
|
- legacy `"apiKeys"` still works (mapped to env names)
|
|
553
581
|
|
|
554
582
|
- `OPENAI_API_KEY` (for `openai/...`)
|
|
583
|
+
- `NVIDIA_API_KEY` (for `nvidia/...`)
|
|
555
584
|
- `ANTHROPIC_API_KEY` (for `anthropic/...`)
|
|
556
585
|
- `XAI_API_KEY` (for `xai/...`)
|
|
557
586
|
- `Z_AI_API_KEY` (for `zai/...`; supports `ZAI_API_KEY` alias)
|
|
@@ -610,6 +639,7 @@ Example:
|
|
|
610
639
|
|
|
611
640
|
```bash
|
|
612
641
|
OPENROUTER_API_KEY=sk-or-... summarize "https://example.com" --model openrouter/meta-llama/llama-3.1-8b-instruct:free
|
|
642
|
+
OPENROUTER_API_KEY=sk-or-... summarize "https://example.com" --model openrouter/minimax/minimax-m2.5
|
|
613
643
|
```
|
|
614
644
|
|
|
615
645
|
If your OpenRouter account enforces an allowed-provider list, make sure at least one provider
|
|
@@ -617,6 +647,18 @@ is allowed for the selected model. When routing fails, `summarize` prints the ex
|
|
|
617
647
|
|
|
618
648
|
Legacy: `OPENAI_BASE_URL=https://openrouter.ai/api/v1` (and either `OPENAI_API_KEY` or `OPENROUTER_API_KEY`) also works.
|
|
619
649
|
|
|
650
|
+
NVIDIA API Catalog (OpenAI-compatible; free credits):
|
|
651
|
+
|
|
652
|
+
- Set `NVIDIA_API_KEY=...`
|
|
653
|
+
- Optional: `NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1`
|
|
654
|
+
- Credits: API Catalog trial starts with 1000 free API credits on signup (up to 5000 total via “Request More” in the API Catalog profile)
|
|
655
|
+
- Pick a model id from `/v1/models` (examples: fast `stepfun-ai/step-3.5-flash`, strong but slower `z-ai/glm5`)
|
|
656
|
+
|
|
657
|
+
```bash
|
|
658
|
+
export NVIDIA_API_KEY="nvapi-..."
|
|
659
|
+
summarize "https://example.com" --model nvidia/stepfun-ai/step-3.5-flash
|
|
660
|
+
```
|
|
661
|
+
|
|
620
662
|
Z.AI (OpenAI-compatible):
|
|
621
663
|
|
|
622
664
|
- `Z_AI_API_KEY=...` (or `ZAI_API_KEY=...`)
|
|
@@ -626,6 +668,10 @@ Optional services:
|
|
|
626
668
|
|
|
627
669
|
- `FIRECRAWL_API_KEY` (website extraction fallback)
|
|
628
670
|
- `YT_DLP_PATH` (path to yt-dlp binary for audio extraction)
|
|
671
|
+
- `GROQ_API_KEY` (Groq Whisper transcription)
|
|
672
|
+
- `ASSEMBLYAI_API_KEY` (AssemblyAI transcription)
|
|
673
|
+
- `GEMINI_API_KEY` / `GOOGLE_GENERATIVE_AI_API_KEY` / `GOOGLE_API_KEY` (Gemini transcription)
|
|
674
|
+
- `OPENAI_API_KEY` / `OPENAI_WHISPER_BASE_URL` (OpenAI Whisper transcription)
|
|
629
675
|
- `FAL_KEY` (FAL AI API key for audio transcription via Whisper)
|
|
630
676
|
- `APIFY_API_TOKEN` (YouTube transcript fallback)
|
|
631
677
|
|
package/dist/cli.js
CHANGED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export function hashString(value) {
|
|
3
|
+
return createHash("sha256").update(value).digest("hex");
|
|
4
|
+
}
|
|
5
|
+
export function hashJson(value) {
|
|
6
|
+
return hashString(JSON.stringify(value));
|
|
7
|
+
}
|
|
8
|
+
export function normalizeContentForHash(content) {
|
|
9
|
+
return content.replaceAll("\r\n", "\n").trim();
|
|
10
|
+
}
|
|
11
|
+
export function extractTaggedBlock(prompt, tag) {
|
|
12
|
+
const open = `<${tag}>`;
|
|
13
|
+
const close = `</${tag}>`;
|
|
14
|
+
const start = prompt.indexOf(open);
|
|
15
|
+
if (start === -1)
|
|
16
|
+
return null;
|
|
17
|
+
const end = prompt.indexOf(close, start + open.length);
|
|
18
|
+
if (end === -1)
|
|
19
|
+
return null;
|
|
20
|
+
return prompt.slice(start + open.length, end).trim();
|
|
21
|
+
}
|
|
22
|
+
export function buildPromptHash(prompt) {
|
|
23
|
+
const instructions = extractTaggedBlock(prompt, "instructions") ?? prompt;
|
|
24
|
+
return hashString(instructions.trim());
|
|
25
|
+
}
|
|
26
|
+
export function buildPromptContentHash({ prompt, fallbackContent, }) {
|
|
27
|
+
const content = extractTaggedBlock(prompt, "content") ?? fallbackContent ?? null;
|
|
28
|
+
if (!content || content.trim().length === 0)
|
|
29
|
+
return null;
|
|
30
|
+
return hashString(normalizeContentForHash(content));
|
|
31
|
+
}
|
|
32
|
+
export function buildLengthKey(lengthArg) {
|
|
33
|
+
return lengthArg.kind === "preset"
|
|
34
|
+
? `preset:${lengthArg.preset}`
|
|
35
|
+
: `chars:${lengthArg.maxCharacters}`;
|
|
36
|
+
}
|
|
37
|
+
export function buildLanguageKey(outputLanguage) {
|
|
38
|
+
return outputLanguage.kind === "auto" ? "auto" : outputLanguage.tag;
|
|
39
|
+
}
|
|
40
|
+
export function buildExtractCacheKeyValue({ url, options, formatVersion, }) {
|
|
41
|
+
return hashJson({ url, options, formatVersion });
|
|
42
|
+
}
|
|
43
|
+
export function buildSummaryCacheKeyValue({ contentHash, promptHash, model, lengthKey, languageKey, formatVersion, }) {
|
|
44
|
+
return hashJson({
|
|
45
|
+
contentHash,
|
|
46
|
+
promptHash,
|
|
47
|
+
model,
|
|
48
|
+
lengthKey,
|
|
49
|
+
languageKey,
|
|
50
|
+
formatVersion,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function buildSlidesCacheKeyValue({ url, settings, formatVersion, }) {
|
|
54
|
+
return hashJson({
|
|
55
|
+
url,
|
|
56
|
+
settings: {
|
|
57
|
+
ocr: settings.ocr,
|
|
58
|
+
outputDir: settings.outputDir,
|
|
59
|
+
sceneThreshold: settings.sceneThreshold,
|
|
60
|
+
autoTuneThreshold: settings.autoTuneThreshold,
|
|
61
|
+
maxSlides: settings.maxSlides,
|
|
62
|
+
minDurationSeconds: settings.minDurationSeconds,
|
|
63
|
+
},
|
|
64
|
+
formatVersion,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export function buildTranscriptCacheKeyValue({ url, namespace, formatVersion, fileMtime, }) {
|
|
68
|
+
return hashJson({
|
|
69
|
+
url,
|
|
70
|
+
namespace,
|
|
71
|
+
fileMtime: fileMtime ?? null,
|
|
72
|
+
formatVersion,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cache-keys.js.map
|
|
@@ -0,0 +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,CAAC,MAAc,EAAE,GAA+B;IAChF,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC;IAC1E,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,MAAM,EACN,eAAe,GAIhB;IACC,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC;IACjF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAChC,CAAC,CAAC,UAAU,SAAS,CAAC,MAAM,EAAE;QAC9B,CAAC,CAAC,SAAS,SAAS,CAAC,aAAa,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,cAA8B;IAC7D,OAAO,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACxC,GAAG,EACH,OAAO,EACP,aAAa,GAKd;IACC,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACxC,WAAW,EACX,UAAU,EACV,KAAK,EACL,SAAS,EACT,WAAW,EACX,aAAa,GAQd;IACC,OAAO,QAAQ,CAAC;QACd,WAAW;QACX,UAAU;QACV,KAAK;QACL,SAAS;QACT,WAAW;QACX,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EACvC,GAAG,EACH,QAAQ,EACR,aAAa,GAYd;IACC,OAAO,QAAQ,CAAC;QACd,GAAG;QACH,QAAQ,EAAE;YACR,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;SAChD;QACD,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,GAAG,EACH,SAAS,EACT,aAAa,EACb,SAAS,GAMV;IACC,OAAO,QAAQ,CAAC;QACd,GAAG;QACH,SAAS;QACT,SAAS,EAAE,SAAS,IAAI,IAAI;QAC5B,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { rmSync } from "node:fs";
|
|
2
|
+
import { isAbsolute, join, resolve as resolvePath, sep as pathSep } from "node:path";
|
|
3
|
+
function normalizeAbsolutePath(value) {
|
|
4
|
+
if (typeof value !== "string")
|
|
5
|
+
return null;
|
|
6
|
+
const trimmed = value.trim();
|
|
7
|
+
if (!trimmed)
|
|
8
|
+
return null;
|
|
9
|
+
const resolved = resolvePath(trimmed);
|
|
10
|
+
return isAbsolute(resolved) ? resolved : null;
|
|
11
|
+
}
|
|
12
|
+
export function cleanupSlidesPayload(raw) {
|
|
13
|
+
let payload;
|
|
14
|
+
try {
|
|
15
|
+
payload = JSON.parse(raw);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!payload || typeof payload !== "object")
|
|
21
|
+
return;
|
|
22
|
+
const slidesDir = normalizeAbsolutePath(payload.slidesDir);
|
|
23
|
+
const slides = Array.isArray(payload.slides)
|
|
24
|
+
? payload.slides
|
|
25
|
+
: [];
|
|
26
|
+
if (!slidesDir)
|
|
27
|
+
return;
|
|
28
|
+
const dirPrefix = slidesDir.endsWith(pathSep) ? slidesDir : `${slidesDir}${pathSep}`;
|
|
29
|
+
const safeRemove = (target) => {
|
|
30
|
+
try {
|
|
31
|
+
rmSync(target, { force: true });
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// ignore
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
for (const slide of slides) {
|
|
38
|
+
const imagePath = normalizeAbsolutePath(slide?.imagePath);
|
|
39
|
+
if (!imagePath)
|
|
40
|
+
continue;
|
|
41
|
+
if (!imagePath.startsWith(dirPrefix))
|
|
42
|
+
continue;
|
|
43
|
+
safeRemove(imagePath);
|
|
44
|
+
}
|
|
45
|
+
safeRemove(join(slidesDir, "slides.json"));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=cache-slides-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-slides-cleanup.js","sourceRoot":"","sources":["../../src/cache-slides-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAErF,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO;IACpD,MAAM,SAAS,GAAG,qBAAqB,CAAE,OAAmC,CAAC,SAAS,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAE,OAAgC,CAAC,MAAM,CAAC;QACpE,CAAC,CAAG,OAAgC,CAAC,MAAyC;QAC9E,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;IACrF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAC/C,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/esm/cache.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
1
|
import { existsSync, mkdirSync, rmSync, statSync } from "node:fs";
|
|
3
|
-
import { dirname, isAbsolute, join,
|
|
2
|
+
import { dirname, isAbsolute, join, resolve as resolvePath } from "node:path";
|
|
3
|
+
import { buildExtractCacheKeyValue, buildSlidesCacheKeyValue, buildSummaryCacheKeyValue, buildTranscriptCacheKeyValue, } from "./cache-keys.js";
|
|
4
|
+
export { buildExtractCacheKeyValue, buildLanguageKey, buildLengthKey, buildPromptContentHash, buildPromptHash, buildSlidesCacheKeyValue, buildSummaryCacheKeyValue, buildTranscriptCacheKeyValue, hashJson, hashString, normalizeContentForHash, extractTaggedBlock, } from "./cache-keys.js";
|
|
5
|
+
import { cleanupSlidesPayload } from "./cache-slides-cleanup.js";
|
|
4
6
|
export const CACHE_FORMAT_VERSION = 1;
|
|
5
7
|
export const DEFAULT_CACHE_MAX_MB = 512;
|
|
6
8
|
export const DEFAULT_CACHE_TTL_DAYS = 30;
|
|
@@ -60,50 +62,6 @@ function resolveHomeDir(env) {
|
|
|
60
62
|
const home = env.HOME?.trim() || env.USERPROFILE?.trim();
|
|
61
63
|
return home || null;
|
|
62
64
|
}
|
|
63
|
-
function normalizeAbsolutePath(value) {
|
|
64
|
-
if (typeof value !== "string")
|
|
65
|
-
return null;
|
|
66
|
-
const trimmed = value.trim();
|
|
67
|
-
if (!trimmed)
|
|
68
|
-
return null;
|
|
69
|
-
const resolved = resolvePath(trimmed);
|
|
70
|
-
return isAbsolute(resolved) ? resolved : null;
|
|
71
|
-
}
|
|
72
|
-
function cleanupSlidesPayload(raw) {
|
|
73
|
-
let payload;
|
|
74
|
-
try {
|
|
75
|
-
payload = JSON.parse(raw);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (!payload || typeof payload !== "object")
|
|
81
|
-
return;
|
|
82
|
-
const slidesDir = normalizeAbsolutePath(payload.slidesDir);
|
|
83
|
-
const slides = Array.isArray(payload.slides)
|
|
84
|
-
? payload.slides
|
|
85
|
-
: [];
|
|
86
|
-
if (!slidesDir)
|
|
87
|
-
return;
|
|
88
|
-
const dirPrefix = slidesDir.endsWith(pathSep) ? slidesDir : `${slidesDir}${pathSep}`;
|
|
89
|
-
const safeRemove = (target) => {
|
|
90
|
-
try {
|
|
91
|
-
rmSync(target, { force: true });
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
// ignore
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
for (const slide of slides) {
|
|
98
|
-
const imagePath = normalizeAbsolutePath(slide?.imagePath);
|
|
99
|
-
if (!imagePath)
|
|
100
|
-
continue;
|
|
101
|
-
if (!imagePath.startsWith(dirPrefix))
|
|
102
|
-
continue;
|
|
103
|
-
safeRemove(imagePath);
|
|
104
|
-
}
|
|
105
|
-
safeRemove(join(slidesDir, "slides.json"));
|
|
106
|
-
}
|
|
107
65
|
export function resolveCachePath({ env, cachePath, }) {
|
|
108
66
|
const home = resolveHomeDir(env);
|
|
109
67
|
const raw = cachePath?.trim();
|
|
@@ -298,43 +256,15 @@ export function clearCacheFiles(path) {
|
|
|
298
256
|
rmSync(`${path}-wal`, { force: true });
|
|
299
257
|
rmSync(`${path}-shm`, { force: true });
|
|
300
258
|
}
|
|
301
|
-
export function hashString(value) {
|
|
302
|
-
return createHash("sha256").update(value).digest("hex");
|
|
303
|
-
}
|
|
304
|
-
export function hashJson(value) {
|
|
305
|
-
return hashString(JSON.stringify(value));
|
|
306
|
-
}
|
|
307
|
-
export function normalizeContentForHash(content) {
|
|
308
|
-
return content.replaceAll("\r\n", "\n").trim();
|
|
309
|
-
}
|
|
310
|
-
export function extractTaggedBlock(prompt, tag) {
|
|
311
|
-
const open = `<${tag}>`;
|
|
312
|
-
const close = `</${tag}>`;
|
|
313
|
-
const start = prompt.indexOf(open);
|
|
314
|
-
if (start === -1)
|
|
315
|
-
return null;
|
|
316
|
-
const end = prompt.indexOf(close, start + open.length);
|
|
317
|
-
if (end === -1)
|
|
318
|
-
return null;
|
|
319
|
-
return prompt.slice(start + open.length, end).trim();
|
|
320
|
-
}
|
|
321
|
-
export function buildPromptHash(prompt) {
|
|
322
|
-
const instructions = extractTaggedBlock(prompt, "instructions") ?? prompt;
|
|
323
|
-
return hashString(instructions.trim());
|
|
324
|
-
}
|
|
325
|
-
export function buildLengthKey(lengthArg) {
|
|
326
|
-
return lengthArg.kind === "preset"
|
|
327
|
-
? `preset:${lengthArg.preset}`
|
|
328
|
-
: `chars:${lengthArg.maxCharacters}`;
|
|
329
|
-
}
|
|
330
|
-
export function buildLanguageKey(outputLanguage) {
|
|
331
|
-
return outputLanguage.kind === "auto" ? "auto" : outputLanguage.tag;
|
|
332
|
-
}
|
|
333
259
|
export function buildExtractCacheKey({ url, options, }) {
|
|
334
|
-
return
|
|
260
|
+
return buildExtractCacheKeyValue({
|
|
261
|
+
url,
|
|
262
|
+
options,
|
|
263
|
+
formatVersion: CACHE_FORMAT_VERSION,
|
|
264
|
+
});
|
|
335
265
|
}
|
|
336
266
|
export function buildSummaryCacheKey({ contentHash, promptHash, model, lengthKey, languageKey, }) {
|
|
337
|
-
return
|
|
267
|
+
return buildSummaryCacheKeyValue({
|
|
338
268
|
contentHash,
|
|
339
269
|
promptHash,
|
|
340
270
|
model,
|
|
@@ -344,24 +274,17 @@ export function buildSummaryCacheKey({ contentHash, promptHash, model, lengthKey
|
|
|
344
274
|
});
|
|
345
275
|
}
|
|
346
276
|
export function buildSlidesCacheKey({ url, settings, }) {
|
|
347
|
-
return
|
|
277
|
+
return buildSlidesCacheKeyValue({
|
|
348
278
|
url,
|
|
349
|
-
settings
|
|
350
|
-
ocr: settings.ocr,
|
|
351
|
-
outputDir: settings.outputDir,
|
|
352
|
-
sceneThreshold: settings.sceneThreshold,
|
|
353
|
-
autoTuneThreshold: settings.autoTuneThreshold,
|
|
354
|
-
maxSlides: settings.maxSlides,
|
|
355
|
-
minDurationSeconds: settings.minDurationSeconds,
|
|
356
|
-
},
|
|
279
|
+
settings,
|
|
357
280
|
formatVersion: CACHE_FORMAT_VERSION,
|
|
358
281
|
});
|
|
359
282
|
}
|
|
360
283
|
export function buildTranscriptCacheKey({ url, namespace, formatVersion, fileMtime, }) {
|
|
361
|
-
return
|
|
284
|
+
return buildTranscriptCacheKeyValue({
|
|
362
285
|
url,
|
|
363
286
|
namespace,
|
|
364
|
-
fileMtime
|
|
287
|
+
fileMtime,
|
|
365
288
|
formatVersion: formatVersion ?? CACHE_FORMAT_VERSION,
|
|
366
289
|
});
|
|
367
290
|
}
|
package/dist/esm/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const LEGACY_API_KEY_ENV_MAP = {
|
|
2
|
+
openai: "OPENAI_API_KEY",
|
|
3
|
+
nvidia: "NVIDIA_API_KEY",
|
|
4
|
+
anthropic: "ANTHROPIC_API_KEY",
|
|
5
|
+
google: "GEMINI_API_KEY",
|
|
6
|
+
xai: "XAI_API_KEY",
|
|
7
|
+
openrouter: "OPENROUTER_API_KEY",
|
|
8
|
+
zai: "Z_AI_API_KEY",
|
|
9
|
+
apify: "APIFY_API_TOKEN",
|
|
10
|
+
firecrawl: "FIRECRAWL_API_KEY",
|
|
11
|
+
fal: "FAL_KEY",
|
|
12
|
+
groq: "GROQ_API_KEY",
|
|
13
|
+
assemblyai: "ASSEMBLYAI_API_KEY",
|
|
14
|
+
};
|
|
15
|
+
function resolveLegacyApiKeysEnv(apiKeys) {
|
|
16
|
+
if (!apiKeys)
|
|
17
|
+
return {};
|
|
18
|
+
const mapped = {};
|
|
19
|
+
for (const [key, envKey] of Object.entries(LEGACY_API_KEY_ENV_MAP)) {
|
|
20
|
+
const value = apiKeys[key];
|
|
21
|
+
if (typeof value === "string")
|
|
22
|
+
mapped[envKey] = value;
|
|
23
|
+
}
|
|
24
|
+
return mapped;
|
|
25
|
+
}
|
|
26
|
+
export function resolveConfigEnv(config) {
|
|
27
|
+
if (!config)
|
|
28
|
+
return {};
|
|
29
|
+
return {
|
|
30
|
+
...resolveLegacyApiKeysEnv(config.apiKeys),
|
|
31
|
+
...(config.env ?? {}),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function mergeConfigEnv({ env, config, }) {
|
|
35
|
+
const configEnv = resolveConfigEnv(config);
|
|
36
|
+
if (Object.keys(configEnv).length === 0)
|
|
37
|
+
return env;
|
|
38
|
+
let changed = false;
|
|
39
|
+
const merged = { ...env };
|
|
40
|
+
for (const [key, value] of Object.entries(configEnv)) {
|
|
41
|
+
const current = merged[key];
|
|
42
|
+
if (typeof current === "string" && current.trim().length > 0)
|
|
43
|
+
continue;
|
|
44
|
+
merged[key] = value;
|
|
45
|
+
changed = true;
|
|
46
|
+
}
|
|
47
|
+
return changed ? merged : env;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAEA,MAAM,sBAAsB,GAAG;IAC7B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;IAClB,UAAU,EAAE,oBAAoB;IAChC,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,oBAAoB;CACsB,CAAC;AAEzD,SAAS,uBAAuB,CAAC,OAAkC;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAEhE,EAAE,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA0C;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACL,GAAG,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,GAAG,EACH,MAAM,GAIP;IACC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAuC,EAAE,GAAG,GAAG,EAAE,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACvE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC"}
|